Catalog refresh: 40 → 53 models, Claude 5 / GPT-6 / Gemini 3.8 routable, drift now caught by the router itself

2026-09-23

routercatalogpricingauto-selectorintelligence-ingestors

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.ts enforces 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).
  • findCatalogGaps turns 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_tokens beside completion_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_gaps found 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/status gains catalog_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/models returns 53.
  • Anthropic-format /v1/models includes claude-opus-5-5.
  • catalog_gaps is empty.