Catalog refresh: 40 → 53 models, Claude 5 / GPT-6 / Gemini 3.8 routable, drift now caught by the router itself
2026-09-23
LOCKSTEP TRACEABILITY MATRIX --- api_endpoints: ["GET /v1/intelligence/status (adds catalog_gaps)", "GET /v1/models (more models)"] sdk_methods_updated: ["none — model ids are plain strings in both SDKs"] mcp_tools_updated: ["none"] ---
What We Built
Every provider shipped models in the 4 weeks after the last catalog update (2026-08-27), and BrainstormRouter could route none of them. This release:
- Adds 13 models. Every price comes from the provider's rate card and every limit from the
provider's own models API (Anthropic GET /v1/models/{id}, Gemini GET /v1beta/models/{id}, xAI /v1/language-models, Groq /models/{id}). The GPT-6 family was verified live on Chat Completions. gpt-5.5-pro is Responses-API only (400 on chat), so it is deliberately absent.
- Backfills capability rows for 9 priced models that had none: Gemini 3.5 Flash and 3.1
Flash-Lite, every Grok, gpt-oss-120b, sonar-reasoning-pro and sonar-deep-research. A missing row means a 0 context window, and auto never selects such a model.
- Adds tier priors for Claude 5, gpt-5.6-sol and grok-4.6. These models previously ran on a
price heuristic that ranked Fable 5 below Opus 4.7. 13 dead priors for retired models were removed.
- Adds time-of-day pricing. DeepSeek bills 2x at UTC peak (01–04 and 06–10, Mon–Fri);
computeCost now applies it. Gemini 3.6–3.8 Flash launch prices carry validUntil: 2026-12-31, and a test fails once that date passes.
- Fixes the Anthropic-format
/v1/models. It filtered through a hard-coded 4.5/4.6
allowlist and hid every Claude 5 model. It is now a version floor (≥ 4.5; the Excel add-in rejects older models).
- Fixes dead pins.
- The explain narrator called the pruned
deepseek-chat, so every narration 404'd. - The memory extractor used the retired
claude-3-5-haiku-latest. - The firewall downgrade map targeted the retired
gemini-2.0-flash. - Two Claude 3.x aliases resolved to removed ids.
- Dashboard pickers defaulted to retired models.
Why It Matters
A router that can't route the newest models loses on day one, and prices off by 2x feed wrong numbers into budgets and into cost-aware routing.
How It Works — drift is now detected, not audited
provider-catalog-consistency.test.tsenforces four rules:- every priced model has a capability row;
- every priced model has a tier prior;
- no tier prior points at an unpriced model;
- no time-boxed price is past
validUntil(UTC). findCatalogGapsturns the hourly provider ingestors (which already polled 8 providers'
/models) into catalog_gaps on GET /v1/intelligence/status. A gap is a chat model the provider serves that BR neither prices nor lists in REVIEWED_NOT_CATALOGUED, which records each deliberate omission with its reason (superseded, Responses-only, preview, non-chat). Against the live provider lists on 2026-09-22 the result is 0 gaps. The test pins that gpt-6.1-sol or claude-opus-6 would surface.
Follow-up in the same wave (after the first deploy)
- Grok reasoning was billed $0. xAI reports
reasoning_tokensbesidecompletion_tokens
(total = prompt + completion + reasoning), while OpenAI counts them inside. The OpenAI-compat parser assumed OpenAI semantics, so a Grok reasoning call under-counted output. Whenever reasoning exceeded visible output, Zero Completion Insurance zeroed the charge. The parser now detects the layout from the totals (not by provider name). For the verbatim grok-4.7 usage (1247 + 1 + 57 = 1305, 1152 cached) BR computes $0.001114, which equals xAI's own cost_in_usd_ticks.
- The router's own
catalog_gapsfound two Groq chat models the manual audit had missed:
openai/gpt-oss-20b and qwen/qwen3.8-27b, now added from Groq's models API (55 models). allam-2-7b is on the reviewed-exclusion list. Moonshot's kimi-k2.7-code* stays a visible gap until its pricing can be verified.
Known limits
- xAI publishes no max-output figure; 131072 is UNVERIFIED.
- The Perplexity reasoning and deep-research limits are UNVERIFIED (the account was out of
quota for a live check).
- xAI's ≥200k-token doubled rate and DeepSeek's holiday calendar are not modelled.
Lockstep Checklist
- [x] API Routes:
GET /v1/intelligence/statusgainscatalog_gaps(additive field, no
contract change); GET /v1/models lists the new models.
- [x] TS SDK / Python SDK: no change needed (model ids are strings; the status body is an
open record).
- [x] MCP Schemas: none.
- [ ] Prod verification (post-deploy):
- One real completion per new model through prod.
/v1/modelsreturns 53.- Anthropic-format
/v1/modelsincludesclaude-opus-5-5. catalog_gapsis empty.