diff --git a/packages/opencode/src/session/llm-native.ts b/packages/opencode/src/session/llm-native.ts index 6bb2159412..1c359dcf9d 100644 --- a/packages/opencode/src/session/llm-native.ts +++ b/packages/opencode/src/session/llm-native.ts @@ -27,6 +27,7 @@ const DEFAULT_BASE_URL: Record = { "@ai-sdk/anthropic": "https://api.anthropic.com/v1", "@ai-sdk/google": "https://generativelanguage.googleapis.com/v1beta", "@ai-sdk/amazon-bedrock": "https://bedrock-runtime.us-east-1.amazonaws.com", + "@openrouter/ai-sdk-provider": "https://openrouter.ai/api/v1", } const ROUTE: Record = { @@ -36,7 +37,7 @@ const ROUTE: Record = { "@ai-sdk/google": "gemini", "@ai-sdk/amazon-bedrock": "bedrock-converse", "@ai-sdk/openai-compatible": "openai-compatible-chat", - "@openrouter/ai-sdk-provider": "openai-compatible-chat", + "@openrouter/ai-sdk-provider": "openrouter", } const isRecord = (value: unknown): value is Record => diff --git a/packages/opencode/test/session/llm-native.test.ts b/packages/opencode/test/session/llm-native.test.ts index 9a8e003d1f..81d4a13119 100644 --- a/packages/opencode/test/session/llm-native.test.ts +++ b/packages/opencode/test/session/llm-native.test.ts @@ -199,13 +199,28 @@ describe("session.llm-native.request", () => { }) test("selects native routes from existing provider packages", () => { - expect(LLMNative.model({ ...baseModel, api: { ...baseModel.api, npm: "@ai-sdk/anthropic" } }).route).toBe( - "anthropic-messages", - ) - expect(LLMNative.model({ ...baseModel, api: { ...baseModel.api, npm: "@ai-sdk/google" } }).route).toBe("gemini") - expect(LLMNative.model({ ...baseModel, api: { ...baseModel.api, npm: "@ai-sdk/openai-compatible" } }).route).toBe( - "openai-compatible-chat", - ) + expect( + LLMNative.model({ ...baseModel, api: { ...baseModel.api, url: "", npm: "@ai-sdk/anthropic" } }), + ).toMatchObject({ + route: "anthropic-messages", + baseURL: "https://api.anthropic.com/v1", + }) + expect(LLMNative.model({ ...baseModel, api: { ...baseModel.api, url: "", npm: "@ai-sdk/google" } })).toMatchObject({ + route: "gemini", + baseURL: "https://generativelanguage.googleapis.com/v1beta", + }) + expect( + LLMNative.model({ ...baseModel, api: { ...baseModel.api, npm: "@ai-sdk/openai-compatible" } }), + ).toMatchObject({ + route: "openai-compatible-chat", + baseURL: "https://api.openai.com/v1", + }) + expect( + LLMNative.model({ ...baseModel, api: { ...baseModel.api, url: "", npm: "@openrouter/ai-sdk-provider" } }), + ).toMatchObject({ + route: "openrouter", + baseURL: "https://openrouter.ai/api/v1", + }) }) test("fails fast for unsupported provider packages", () => {