From c88f48b45d9ac3e2e1b7e3832b3e323cc9d95cf6 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Wed, 26 Nov 2025 22:58:22 +0000 Subject: [PATCH] feat: add x-anthropic-beta header to OpenRouter requests --- src/api/providers/__tests__/openrouter.spec.ts | 1 + src/api/providers/openrouter.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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) => {