diff --git a/apps/web/src/lib/ai-gateway/AGENTS.md b/apps/web/src/lib/ai-gateway/AGENTS.md index 3954200870..3c1121b6a9 100644 --- a/apps/web/src/lib/ai-gateway/AGENTS.md +++ b/apps/web/src/lib/ai-gateway/AGENTS.md @@ -6,4 +6,4 @@ Custom LLM models ([`custom-llm/`](./custom-llm)) and direct BYOK models ([`prov ## Forbidden free models -When a free Kilo-exclusive model is removed, add its public ID to `forbiddenFreeModelIds` in [`forbidden-free-models.ts`](./forbidden-free-models.ts) so stale clients cannot keep invoking it directly. +When a free Kilo-exclusive model is removed from the code base (not just disabled), add its public ID to `forbiddenFreeModelIds` in [`forbidden-free-models.ts`](./forbidden-free-models.ts) so stale clients get an appropriate error message. diff --git a/apps/web/src/lib/ai-gateway/models.test.ts b/apps/web/src/lib/ai-gateway/models.test.ts index 3f47e3a3f8..274d24fba8 100644 --- a/apps/web/src/lib/ai-gateway/models.test.ts +++ b/apps/web/src/lib/ai-gateway/models.test.ts @@ -36,9 +36,6 @@ describe('isFreeModel', () => { m => m.status === 'public' && !m.pricing ); - // Should have at least some enabled free models - expect(enabledFreeModels.length).toBeGreaterThan(0); - // All enabled free models should be detected as free for (const model of enabledFreeModels) { expect(await isFreeModel(model.public_id)).toBe(true); diff --git a/apps/web/src/lib/ai-gateway/providers/xai.ts b/apps/web/src/lib/ai-gateway/providers/xai.ts index 45c5283af1..9942978c49 100644 --- a/apps/web/src/lib/ai-gateway/providers/xai.ts +++ b/apps/web/src/lib/ai-gateway/providers/xai.ts @@ -8,7 +8,7 @@ export const grok_code_fast_1_optimized_free_model: KiloExclusiveModel = { 'An optimized variant of Grok Code Fast 1, provided free of charge for a limited time. Going away May 15, 2026. **Note:** All prompts and completions for this model are logged by the provider and may be used to improve their services.', context_length: 256_000, max_completion_tokens: 10_000, - status: 'public', + status: 'disabled', flags: ['reasoning', 'stealth'], gateway: 'martian', internal_id: 'x-ai/grok-code-fast-1:optimized',