diff --git a/open-sse/executors/github.ts b/open-sse/executors/github.ts index 24587b17ec..f8379fbcf6 100644 --- a/open-sse/executors/github.ts +++ b/open-sse/executors/github.ts @@ -90,6 +90,10 @@ export class GithubExecutor extends BaseExecutor { delete modifiedBody.response_format; } + if (Array.isArray(modifiedBody.tools) && modifiedBody.tools.length > 128) { + modifiedBody.tools = modifiedBody.tools.slice(0, 128); + } + return modifiedBody; } diff --git a/open-sse/executors/opencode.ts b/open-sse/executors/opencode.ts index 99a591d7d0..9788cd53d0 100644 --- a/open-sse/executors/opencode.ts +++ b/open-sse/executors/opencode.ts @@ -62,4 +62,22 @@ export class OpencodeExecutor extends BaseExecutor { return headers; } + + transformRequest( + model: string, + body: any, + stream: boolean, + credentials: ProviderCredentials + ): any { + const modifiedBody = super.transformRequest(model, body, stream, credentials); + if ( + modifiedBody && + typeof modifiedBody === "object" && + Array.isArray(modifiedBody.tools) && + modifiedBody.tools.length > 128 + ) { + modifiedBody.tools = modifiedBody.tools.slice(0, 128); + } + return modifiedBody; + } }