diff --git a/packages/core/src/sync/providers/openrouter.ts b/packages/core/src/sync/providers/openrouter.ts index 2aeb1e01be..d35cc3f978 100644 --- a/packages/core/src/sync/providers/openrouter.ts +++ b/packages/core/src/sync/providers/openrouter.ts @@ -178,7 +178,7 @@ export function buildOpenRouterModel( const reasoning_options = existing?.reasoning_options?.length ? existing.reasoning_options : openRouterReasoningOptions(model.reasoning) ?? existing?.reasoning_options; - const context = model.top_provider.context_length ?? model.context_length; + const context = model.context_length; const family = inferFamily(model, name); const releaseDate = dateFromTimestamp(model.created); const familyValue = existing?.family === "o" && family !== "o" diff --git a/packages/core/test/sync.test.ts b/packages/core/test/sync.test.ts index 8bb40288e0..61bb21792c 100644 --- a/packages/core/test/sync.test.ts +++ b/packages/core/test/sync.test.ts @@ -738,6 +738,23 @@ test("syncs OpenRouter reasoning efforts from model metadata", () => { }); }); +test("uses OpenRouter model context when top provider reports a shorter context", () => { + const model = buildOpenRouterModel(openRouterModel({ + context_length: 1_048_576, + top_provider: { + context_length: 32_000, + max_completion_tokens: 8_192, + }, + }), undefined); + + expect(model).toMatchObject({ + limit: { + context: 1_048_576, + output: 8_192, + }, + }); +}); + test("factors OpenRouter Pro routes against canonical OpenAI metadata", () => { const model = buildOpenRouterModel(openRouterModel({ id: "openai/gpt-5.6-sol-pro", diff --git a/providers/openrouter/models/xiaomi/mimo-v2.5.toml b/providers/openrouter/models/xiaomi/mimo-v2.5.toml index 741832ed73..4e5f84fe55 100644 --- a/providers/openrouter/models/xiaomi/mimo-v2.5.toml +++ b/providers/openrouter/models/xiaomi/mimo-v2.5.toml @@ -11,6 +11,3 @@ type = "toggle" input = 0.105 output = 0.28 cache_read = 0.028 - -[limit] -context = 32_000