diff --git a/src/api/providers/__tests__/openrouter.spec.ts b/src/api/providers/__tests__/openrouter.spec.ts index 118be755d7..170cbfc7c6 100644 --- a/src/api/providers/__tests__/openrouter.spec.ts +++ b/src/api/providers/__tests__/openrouter.spec.ts @@ -75,6 +75,7 @@ describe("OpenRouterHandler", () => { "HTTP-Referer": "https://github.com/RooVetGit/Roo-Cline", "X-Title": "Roo Code", "User-Agent": `RooCode/${Package.version}`, + "x-anthropic-beta": "fine-grained-tool-streaming-2025-05-14", }, }) }) diff --git a/src/api/providers/openrouter.ts b/src/api/providers/openrouter.ts index 3db61087ef..2327d8599e 100644 --- a/src/api/providers/openrouter.ts +++ b/src/api/providers/openrouter.ts @@ -72,7 +72,14 @@ export class OpenRouterHandler extends BaseProvider implements SingleCompletionH const baseURL = this.options.openRouterBaseUrl || "https://openrouter.ai/api/v1" const apiKey = this.options.openRouterApiKey ?? "not-provided" - this.client = new OpenAI({ baseURL, apiKey, defaultHeaders: DEFAULT_HEADERS }) + this.client = new OpenAI({ + baseURL, + apiKey, + defaultHeaders: { + ...DEFAULT_HEADERS, + "x-anthropic-beta": "fine-grained-tool-streaming-2025-05-14", + }, + }) // Load models asynchronously to populate cache before getModel() is called this.loadDynamicModels().catch((error) => {