From 643d1cd3af4a6043b1e159fd987e76088e4ba012 Mon Sep 17 00:00:00 2001 From: Christiaan Arnoldus Date: Wed, 29 Jul 2026 17:13:42 +0200 Subject: [PATCH 1/2] fix(ai-gateway): expose Sakana Fugu Ultra --- .../ai-gateway/providers/openrouter/index.test.ts | 14 ++++++++++++++ .../lib/ai-gateway/providers/openrouter/index.ts | 7 +------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts b/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts index 1c4df57b2e..965cd2beab 100644 --- a/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts +++ b/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts @@ -295,6 +295,20 @@ describe('auto models', () => { expect(models.data.some(model => model.id === 'vendor/model')).toBe(true); expect(models.data.some(model => model.id === 'vendor/model:batch')).toBe(false); }); + + it('includes Sakana Fugu Ultra in the public model list', async () => { + global.fetch = jest.fn(() => + Promise.resolve( + createMockResponse({ + jsonData: { data: [buildModel({ id: 'sakana/fugu' })] }, + }) + ) + ) as unknown as typeof fetch; + + const models = await getEnhancedOpenRouterModels(); + + expect(models.data.some(model => model.id === 'sakana/fugu')).toBe(true); + }); }); describe('disabled paid Kilo-exclusive model fallback', () => { diff --git a/apps/web/src/lib/ai-gateway/providers/openrouter/index.ts b/apps/web/src/lib/ai-gateway/providers/openrouter/index.ts index 8ae8923f3c..d0b809ae89 100644 --- a/apps/web/src/lib/ai-gateway/providers/openrouter/index.ts +++ b/apps/web/src/lib/ai-gateway/providers/openrouter/index.ts @@ -136,10 +136,6 @@ export function shouldSuppressOpenRouterModel(model: KiloExclusiveModel): boolea return model.status !== 'disabled' || model.pricing === null; } -const unavailableModels = [ - 'sakana/fugu', // this model is not available in the EU -]; - async function enhancedModelList(models: OpenRouterModel[]) { const autoModels = buildAutoModels(); const endpointsMetadata = await getOpenRouterModelsMetadataFromDatabase(); @@ -152,8 +148,7 @@ async function enhancedModelList(models: OpenRouterModel[]) { m => m.public_id === model.id && shouldSuppressOpenRouterModel(m) ) && !isForbiddenFreeModel(model.id) && - !model.id.endsWith(':batch') && - !unavailableModels.some(unavailableId => model.id.includes(unavailableId)) + !model.id.endsWith(':batch') ) .map(model => { const preferredProvider = getPreferredProviderOrder(model.id).at(0); From a939eb60dae7f85c81249a5262d4116c7538799c Mon Sep 17 00:00:00 2001 From: Christiaan Arnoldus Date: Wed, 29 Jul 2026 17:27:26 +0200 Subject: [PATCH 2/2] test(ai-gateway): drop Fugu catalog assertion --- .../ai-gateway/providers/openrouter/index.test.ts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts b/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts index 965cd2beab..1c4df57b2e 100644 --- a/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts +++ b/apps/web/src/lib/ai-gateway/providers/openrouter/index.test.ts @@ -295,20 +295,6 @@ describe('auto models', () => { expect(models.data.some(model => model.id === 'vendor/model')).toBe(true); expect(models.data.some(model => model.id === 'vendor/model:batch')).toBe(false); }); - - it('includes Sakana Fugu Ultra in the public model list', async () => { - global.fetch = jest.fn(() => - Promise.resolve( - createMockResponse({ - jsonData: { data: [buildModel({ id: 'sakana/fugu' })] }, - }) - ) - ) as unknown as typeof fetch; - - const models = await getEnhancedOpenRouterModels(); - - expect(models.data.some(model => model.id === 'sakana/fugu')).toBe(true); - }); }); describe('disabled paid Kilo-exclusive model fallback', () => {