* feat(llmtr): complete chat-route coverage with 27 remaining models
Adds the LLMTR chat routes not covered by #3038. Provider entries are
override-only on top of models/ lab metadata; six lab entries are added
where the underlying model had no models/<lab>/ file yet.
Costs and context windows come from https://llmtr.com/api/models.
reasoning_options were measured against POST /v1/chat/completions rather
than inferred: the gateway reports its per-model thinking control in the
400 body for an unsupported reasoning_effort value.
Models whose lab facts could not be established from the lab's own
documentation or an existing first-party entry are deliberately left out.
* fix(llmtr): re-measure reasoning controls across every request surface
Review feedback: reasoning_effort is only one of the surfaces this gateway
forwards, so an effort-only probe cannot justify reasoning_options = [].
Re-probed every entry across nine request shapes (reasoning_effort top-level
and nested, reasoning true/false, :think and :fast suffixes,
reasoning.max_tokens, thinkingConfig.thinkingBudget, thinking_budget,
enable_thinking, thinking.type), temperature 0, each result reproduced.
The real control on Qwen routes is Alibaba's native enable_thinking, which the
gateway forwards. Seven routes previously marked [] are genuine toggles:
qwen-plus, qwen-flash, qwen3-vl-plus, qwen3.5-plus, qwen3.5-397b-a17b,
qwen3.6-plus and qwen3-max. qwen3-max additionally overrides reasoning = true,
since it emits reasoning on demand despite the base entry saying otherwise.
gemini-2.5-flash-lite, mimo-v2.5, mimo-v2.5-pro and sonar-deep-research keep []
after testing all nine surfaces; each now records that evidence in its header.
The perplexity low|medium|high|fast|pro|auto suffixes are search_type controls,
not reasoning - the gateway names the parameter in its own rejection.
Wire-path comments moved into the leading header block on all ten files that
carry reasoning_options, since sync strips mid-file comments.
Drops qwen3.6-27b-free: its reasoning surface could not be measured because the
key's daily free-model quota was exhausted, and an unverified [] is exactly what
this change is correcting.
* llmtr: align solar-pro2 reasoning effort with the Upstage baseline
* llmtr: align solar-pro3 reasoning effort with the Upstage baseline
* llmtr: add measured thinking_budget control to qwen/qwen-flash
* llmtr: add measured thinking_budget control to qwen/qwen-plus
* llmtr: add measured thinking_budget control to qwen/qwen3-max
* llmtr: add measured thinking_budget control to qwen/qwen3-vl-plus
* llmtr: add measured thinking_budget control to qwen/qwen3.5-397b-a17b
* llmtr: add measured thinking_budget control to qwen/qwen3.5-plus
* llmtr: add measured thinking_budget control to qwen/qwen3.6-flash
* llmtr: add measured thinking_budget control to qwen/qwen3.6-plus
* llmtr: add measured thinking_budget control to qwen/qwen3.7-plus
* llmtr: align solar-pro4 effort wire comment with the measured field
* llmtr: correct gemma-4 context, pricing, modalities and tool calling
* llmtr: pin qwen3-6-35b tool_call to the measured value
* llmtr: correct magibu-11b-v8 pricing
* llmtr: mark medgemma-4b deprecated and correct its output cap
* llmtr: drop sincap, retired upstream on 2026-08-04
* llmtr: replace trendyol-7b with the model it now aliases
* llmtr: add trendyol-asure-12b
* llmtr: add muse-glimmer-30b-tr
* llmtr: tidy muse-glimmer-30b-tr source comment
* llmtr: point muse-glimmer-30b-tr at the Meta lab entry
* trendyol: add Asure 12B lab entry
* llmtr: point trendyol-asure-12b at the new lab entry
* Add Crusoe provider
* Remove pricing; add Nemotron-3-Ultra-550B
* Address review: declare reasoning_options, theme-adaptive logo
- Add reasoning_options = [] to the 12 reasoning-model TOMLs: Crusoe's
OpenAI-compatible endpoint documents no caller-side reasoning controls
(docs.crusoecloud.com defers to the generic OpenAI API reference), so
an empty declaration is correct per the validate schema.
- logo.svg: drop fixed width/height, use fill="currentColor" so the
wordmark adapts to light/dark themes.
bun validate passes locally.
* Move reasoning_options rationale comments above first key
* Restore trailing newlines in reasoning-model TOMLs
* fix(crusoe): set reasoning config from live endpoint probe
Probed api.inference.crusoecloud.com on 2026-08-13 with reasoning_effort
low/medium/high/none/max plus tool-call interleaving checks per model.
- gpt-oss-120b: effort low/medium/high (reasoning length scales; none/max
return 400), interleaved with tool calls
- GLM-5.2, Kimi-K2.6, Nemotron-3-Nano-Omni-Reasoning: toggle (effort
"none" disables reasoning; low/medium/high inert), interleaved
- GLM-5.1: reasoning always on, no working caller-side control
- Reasoning arrives in the message field named "reasoning", so the
boolean interleaved form is used
- Drop reasoning_options = [] from non-reasoning models
- Remove six models whose IDs drifted from the live /v1/models catalog
or whose reasoning deployment is unverified; follow-up will re-add
* fix(crusoe): gemma-4-31b-it reasoning toggle
Base model has reasoning = true so reasoning_options is required by the
schema. Probe shows reasoning_effort acts as an enable/disable toggle on
this deployment (off by default, "none" disables, other values enable).
* feat(crusoe): add per-model pricing
Source: https://www.crusoe.ai/cloud/pricing (accessed 2026-08-13).
Input, output, and cached-read rates per million tokens for all eight
models. Nemotron Omni carries a separate audio input rate (0.50) via
cost.input_audio; its text/image/video input rate is 0.30.
* feat(models): add Meta Muse Glimmer 30B lab metadata
Add the lab model so OpenRouter, Vercel, Kilo, and other hosts can
base_model onto meta/muse-glimmer-30b instead of shipping standalone
copies.
* fix: map Muse Glimmer hosts onto the Meta lab model
Factor OpenRouter and Vercel onto base_model = meta/muse-glimmer-30b
and keep only host cost plus the documented low/medium/high/xhigh
reasoning_effort controls.
* fix(pioneer): filter API alias dupes, derive cost, honor base-model reasoning
Pioneer /v1/models returns each served model twice: once under its real
id and once under a duplicate "anthropic/pioneer/<id>" alias. Drop the
aliases so the sync no longer authors phantom "anthropic/pioneer/*" TOMLs.
Also derive cost from the API's per-1M-token prices for newly created
models (previously cost was only preserved from an existing file), and
trust the base model's authored reasoning flag instead of Pioneer's
boilerplate reasoning levels, which are identical for every model and
were wrongly marking non-reasoning models (e.g. Pixtral) as reasoning.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(pioneer): add frontier and open models via base_model inheritance
Add 26 Pioneer models, each inheriting provider-agnostic facts through
base_model rather than duplicating them inline.
New model metadata entries:
- anthropic/claude-opus-5 (released 2026-07-24)
- alibaba/qwen2.5-coder-0.5b, alibaba/qwen3-235b-a22b-instruct-2507
- deepseek/deepseek-v3, deepseek/deepseek-v3.1
- meta/llama-3.2-1b, meta/llama-3.2-3b
- mistral/codestral-22b-v0.1, mistral/magistral-small-2506,
mistral/ministral-8b-instruct-2410
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(qwen): set tool_call=false for Qwen2.5-Coder-0.5B base model
The served id and weights are the base (pretrained) checkpoint, not the
Instruct variant. The Qwen model card states base models are not
recommended for conversation and documents no tool/function calling, so
tool_call=true was inaccurate. Matches the Llama base entries in this PR.
---------
Co-authored-by: Samrath <samrath@Samraths-MacBook-Pro-6.local>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Model APIs now include thinkingmachines/inkling-small. Add provider-agnostic
metadata so the Baseten sync can map the slug (it was previously skipped), a
Baseten entry inheriting via base_model, and refresh Inkling's effort values
to include the newly documented "max" level.
Co-authored-by: Your Name <you@example.com>
* feat: add Claude Opus 5 across Anthropic and cloud providers
Add Claude Opus 5 (claude-opus-5) released 2026-07-24: base metadata,
Anthropic API with effort + fast mode, Amazon Bedrock (global/US/EU/AU/JP),
Google Vertex, Azure Foundry, OpenCode, and GitHub Copilot.
* fix: drop Claude Opus 5 from opencode provider
Not confirmed supported on OpenCode yet.
* fix: drop Claude Opus 5 from github-copilot
Not listed in GitHub Copilot supported models yet.
These three model files set attachment = false while their own description and
modalities.input both say the model is multimodal, so the flag contradicts the
record it sits next to:
- alibaba/qwen3.7-plus - description: "Multimodal Qwen workhorse for long-context
agents, visual inputs, and coding"; input = ["text", "image"]; attachment = false.
- alibaba/qwen3.6-plus - description: "Earlier Qwen multimodal workhorse...";
input = ["text", "image", "video"]; attachment = false.
- moonshotai/kimi-k2.5 - description: "...coding, and multimodal work";
input = ["text", "image", "video"]; attachment = false.
Sibling models that are already correct (qwen3.8-max-preview, qwen3.6-flash,
kimi-k2.6, kimi-k2.7-code) all pair image/video input with attachment = true.
This change makes these three consistent with that convention and with their own
declared modalities.
qwen3.7-plus also gains "video" input. Its siblings qwen3.6-plus and qwen3.6-flash
already list video, its description says "visual inputs", and I verified it live:
against the Alibaba/Qwen Cloud Token Plan gateway (Singapore, 2026-07-24)
qwen3.7-plus accepted a real image and a 10-second video and described both
correctly, on the same endpoint where the text-only sibling qwen3.7-max returns
"Unexpected item type in content".
bun validate passes; git diff --check clean. Only attachment (x3) and one
modalities.input line changed.