diff --git a/packages/types/src/providers/openrouter.ts b/packages/types/src/providers/openrouter.ts index 08ffceb1e2..d78199f1e2 100644 --- a/packages/types/src/providers/openrouter.ts +++ b/packages/types/src/providers/openrouter.ts @@ -39,7 +39,6 @@ export const OPEN_ROUTER_PROMPT_CACHING_MODELS = new Set([ "anthropic/claude-3.7-sonnet:thinking", "anthropic/claude-sonnet-4", "anthropic/claude-opus-4", - "google/gemini-2.5-pro-preview", "google/gemini-2.5-flash-preview", "google/gemini-2.5-flash-preview:thinking", "google/gemini-2.5-flash-preview-05-20", diff --git a/src/api/providers/fetchers/__tests__/openrouter.spec.ts b/src/api/providers/fetchers/__tests__/openrouter.spec.ts index 1efe150ab0..bebcff2f6d 100644 --- a/src/api/providers/fetchers/__tests__/openrouter.spec.ts +++ b/src/api/providers/fetchers/__tests__/openrouter.spec.ts @@ -23,12 +23,22 @@ describe("OpenRouter API", () => { const models = await getOpenRouterModels() - expect( - Object.entries(models) - .filter(([_, model]) => model.supportsPromptCache) - .map(([id, _]) => id) - .sort(), - ).toEqual(Array.from(OPEN_ROUTER_PROMPT_CACHING_MODELS).sort()) + const openRouterSupportedCaching = Object.entries(models) + .filter(([_, model]) => model.supportsPromptCache) + .map(([id, _]) => id) + + const ourCachingModels = Array.from(OPEN_ROUTER_PROMPT_CACHING_MODELS) + + // Verify all our caching models are actually supported by OpenRouter + for (const modelId of ourCachingModels) { + expect(openRouterSupportedCaching).toContain(modelId) + } + + // Verify we have all supported models except intentionally excluded ones + const excludedModels = new Set(["google/gemini-2.5-pro-preview"]) // Excluded due to lag issue (#4487) + const expectedCachingModels = openRouterSupportedCaching.filter((id) => !excludedModels.has(id)).sort() + + expect(ourCachingModels.sort()).toEqual(expectedCachingModels) expect( Object.entries(models)