Skip to content

feat(providers): add Kyma - #6298

Open
sonpiaz wants to merge 5 commits into
anomalyco:devfrom
kyma-api:kyma-provider
Open

feat(providers): add Kyma#6298
sonpiaz wants to merge 5 commits into
anomalyco:devfrom
kyma-api:kyma-provider

Conversation

@sonpiaz

@sonpiaz sonpiaz commented Sep 4, 2026

Copy link
Copy Markdown

Kyma is an OpenAI-compatible LLM gateway (https://api.kymaapi.com/v1) that gives one
endpoint and one key for open and frontier language models across many labs, plus speech,
embedding, rerank, image and video models. This adds providers/kyma/ with 60 models, each
base_model plus real overrides only, per AGENTS.md.

This supersedes #4019 (opened 2026-08-03, stale-closed 2026-09-03), which the automated
reviewer left two action items on. Both are fixed here:

  1. reasoning_options was a blanket [] on 41 models. Every reasoning = true model here now
    carries real effort levels, sourced from that model's own lab hosting entry under
    models// where one exists, or from the effort set already established by other
    OpenAI-compatible relays in this repo for the same base_model. [] is kept only where the
    model is genuinely always-on with no caller control anywhere in the repo (MiniMax
    M2.5/M2.7, Kimi K2.7 Code, Grok Build, DeepSeek R1, Sonar/Sonar Pro).
  2. Pricing is cited. Every [cost] value comes from https://api.kymaapi.com/v1/models, Kyma's
    public, unauthenticated model catalogue — also linked in a leading comment on each file.

60 of Kyma's 70 per-token chat models are included. 10 are left out because no models//
lab entry exists yet for the exact variant Kyma serves (very recent dated releases,
preview-only variants with no GA lab file, or one creator with no lab directory in this repo
yet) — happy to file those as a follow-up once there's a lab entry to point at, rather than
add stub lab files in the same PR as a new provider.

bun validate passes. logo.svg uses currentColor on a square viewBox, per AGENTS.md.

This entry is generated from the same catalogue that serves Kyma's own /v1/models, so prices
here and prices charged can't drift; happy to add a kyma:sync module in a follow-up if useful.

Maintained by Kyma — contact hello@kymaapi.com or @kyma-api if anything needs adjusting.

Kyma is an OpenAI-compatible gateway (https://api.kymaapi.com/v1). Adds
providers/kyma/ with 60 models, all base_model + real overrides only.

This supersedes anomalyco#4019 (stale-closed 2026-09-03), which the automated
reviewer flagged for two things, both fixed here:

1. reasoning_options was a blanket [] on 41 models. Every reasoning=true
   model here now carries real effort levels sourced from that model's
   own lab hosting entry (models/<lab>/) or, where the lab has no
   first-party listing, the established effort set used by existing
   same-surface OpenAI-compatible relays already in this repo. []
   remains only where the model is genuinely always-on with no known
   caller control anywhere (MiniMax M2.5/M2.7, Kimi K2.7 Code, Grok
   Build, DeepSeek R1, Sonar).

2. Costs are cited: every price in [cost] comes from
   https://api.kymaapi.com/v1/models, Kyma's public, unauthenticated
   model catalogue (also linked per-file in a leading comment).

60 of Kyma's 70 per-token chat models are included; 10 are omitted
because no models/<lab>/ lab entry exists yet for them (very recent
releases, dated preview variants, or a lab not yet in this repo) and
authoring a new lab file felt like a separate PR. Happy to file those
once there's a base to point at.

bun validate passes. logo.svg is providers/kyma/logo.svg (currentColor,
square viewBox, already used on kymaapi.com).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Rok2mujdEZ2yGw8wVfbr9
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kyma/models/deepseek-v4-pro.toml:4 - Check: Relay reasoning_options must follow the lab + same-surface peer baseline for the underlying model. Why: DeepSeek V4 Pro lab and peers use toggle + effort high/max (lab maps low/medium→high). Kyma authors only effort high/max with no toggle, so callers cannot express the real on/off control this model family exposes. Same shape is wrong on deepseek-v4-flash.toml and deepseek-v4-flash-vision-exp.toml; flash lab also includes low. Action: For all three DeepSeek V4 models, author toggle + the lab effort set (high/max, plus low on Flash), with a leading wire comment for the Kyma request field that enables thinking.
  • [high] [violation] providers/kyma/models/claude-haiku-4-5.toml:4 - Check: Do not invent a universal L/M/H effort set; copy lab/peer controls for this model. Why: Anthropic Haiku 4.5 is budget_tokens first-party; established relays use toggle (OpenRouter) or toggle + budget, not graded low/medium/high. Kyma invents GPT-style effort levels that neither the lab nor same-model peers use. Action: Replace with the Kyma-supported subset of lab/peer controls (typically toggle, and budget_tokens only if this host forwards a real reasoning budget), plus a leading toggle wire comment if toggle is kept.
  • [high] [violation] providers/kyma/models/gemini-2.5-flash.toml:4 - Check: Gemini 2.5 Flash reasoning baseline is toggle/budget, not invented effort. Why: Google first-party is toggle + budget_tokens; OpenRouter peer is toggle. Kyma sets effort none/high, which is not the lab or peer surface for this model. Action: Align to toggle (and budget only if Kyma exposes a real reasoning budget), with a leading wire comment for toggle.
  • [high] [violation] providers/kyma/models/qwen-3.6-plus.toml:4 - Check: Qwen hybrid reasoners on relays must not invent none/high in place of lab/peer toggle (and budget when applicable). Why: Alibaba first-party for Qwen3.6 Plus / 3.7 Plus / 3.7 Max / 3.7 Flash / 3-32b is toggle (+ budget_tokens); OpenRouter peers are toggle-based. Kyma flattens these to effort ["none","high"], inventing an off-via-effort control the baseline does not use. Same issue on qwen-3.7-plus.toml, qwen-3.7-max.toml, qwen3.7-flash.toml, qwen-3-32b.toml. Action: Replace with toggle (and budget only if this host forwards thinking_budget/equivalent); do not encode off as effort=none unless Kyma docs/tests show that wire behavior.
  • [high] [violation] providers/kyma/models/qwen3.8-flash.toml:4 - Check: Qwen3.8 Flash lab baseline is toggle + graded effort + optional budget, not binary none/high. Why: Lab (providers/alibaba/models/qwen3.8-flash.toml) is toggle + low/medium/xhigh (+ budget). OpenRouter peer is toggle + budget_tokens. Kyma’s none/high matches neither. Action: Copy the lab/peer intersection Kyma actually forwards (at least toggle; effort and/or budget only if exposed), with a leading toggle wire comment.
  • [high] [violation] providers/kyma/models/kimi-k2.5.toml:4 - Check: Kimi K2.x hybrid models use toggle, not invented none/high effort. Why: Moonshot lab and OpenRouter peers use toggle only for K2.5/K2.6. Kyma authors effort ["none","high"], which invents graded effort and mis-models off. Same on kimi-k2.6.toml. Action: Use { type = "toggle" } (with leading wire comment) unless Kyma documents a different real control set.
  • [high] [violation] providers/kyma/models/kimi-k3.toml:4 - Check: Kimi K3 baseline is toggle + effort low/high/max. Why: Lab is explicit: thinking.type on/off plus adaptive effort low/high/max. Kyma keeps effort but drops toggle, so the separate on/off control is missing. Action: Author toggle + ["low","high","max"] with a leading toggle wire comment matching Kyma’s request syntax.
  • [high] [violation] providers/kyma/models/glm-4.5-air.toml:4 - Check: GLM toggle-only models must not be rewritten as none/high effort. Why: Zhipu first-party uses toggle for GLM-4.5-Air, GLM-4.7-Flash, and GLM-5.1. Kyma invents effort ["none","high"] on all three (glm-4.7-flash.toml, glm-5.1.toml). Action: Use toggle (leading wire comment) unless Kyma documents a different real control.
  • [high] [violation] providers/kyma/models/minimax-m3.toml:4 - Check: MiniMax-M3 lab baseline is toggle-only. Why: providers/minimax/models/MiniMax-M3.toml is { type = "toggle" }. Kyma invents effort ["none","high"]. Action: Match lab toggle (with wire comment) or document a Kyma-specific control that is actually exposed.
  • [high] [violation] providers/kyma/models/mimo-v2.5.toml:4 - Check: MiMo-V2.5 lab baseline is toggle-only. Why: Xiaomi first-party is toggle; Kyma invents effort ["none","high"]. Action: Use toggle with a leading wire comment, or prove Kyma exposes a different control.
  • [high] [violation] providers/kyma/models/gemma-4-31b.toml:4 - Check: Gemma 4 31B IT lab baseline is toggle-only. Why: providers/google/models/gemma-4-31b-it.toml is reasoning_options = [{ type = "toggle" }]. Kyma invents effort ["none","high"]. Action: Align to toggle (wire comment) unless Kyma has a verified different surface.
  • [high] [violation] providers/kyma/models/claude-sonnet-5.toml:4 - Check: Claude Sonnet 5 lab includes a separate thinking toggle plus graded effort. Why: providers/anthropic/models/claude-sonnet-5.toml is toggle + low/medium/high/xhigh/max. Kyma keeps effort but omits toggle, understating the on/off control. Action: Add toggle alongside the effort list and document the Kyma wire path in a leading comment.
  • [medium] [possible mistake] providers/kyma/models/qwen-3.8-max.toml:4 - Check: Qwen3.8 Max lab baseline is toggle + low/medium/xhigh (+ budget), not a full minimal→xhigh effort dump without toggle. Why: Lab is toggle + low/medium/xhigh + budget_tokens. Kyma matches OpenRouter’s broader minimal/low/medium/high/xhigh effort-only set, which drops toggle and adds levels beyond the lab. Action: Verify Kyma’s actual request surface; prefer lab intersection (toggle + real effort levels, budget only if present) over copying an expanded peer enum without host evidence.
  • [medium] [possible mistake] providers/kyma/models/qwen3.8-27b.toml:4 - Check: Qwen3.8-27B peer baseline uses toggle + graded effort, not none inside effort. Why: OpenRouter peer is toggle + low/medium/xhigh. Kyma uses none/low/medium/xhigh with no toggle, which is a different off model than peers. Action: Confirm whether Kyma exposes toggle vs effort=none; align to the real wire control and add a toggle comment if toggle is used.

Addresses the reviewer's action items on anomalyco#6298: 23 models authored an
invented effort-only or effort-with-"none" control where the underlying
model's lab entry (or, where no first-party lab file exists, the
established OpenRouter peer) exposes a separate on/off toggle instead.

- DeepSeek V4 Pro/Flash/Flash-Vision-Exp: toggle + effort (high/max on
  Pro; low/high/max on the two Flash variants, per the lab's own
  low->low vs low->high mapping note).
- Claude Haiku 4.5, Gemini 2.5 Flash, Qwen3.6 Plus, Qwen3.7 Plus,
  Qwen3.7 Max, Qwen3.7 Flash, Qwen3-32B, Qwen3.8 Flash, Kimi K2.5,
  Kimi K2.6, GLM-4.5-Air, GLM-4.7-Flash, GLM-5.1, MiniMax-M3,
  MiMo-V2.5, Gemma 4 31B: toggle only (lab/peer expose no graded
  effort Kyma can distinguish from a plain reasoning_effort string).
- Kimi K3, Claude Sonnet 5: toggle + the lab's real graded effort set.
- Qwen3.8 Max: trimmed to the lab's toggle + low/medium/xhigh (the
  OpenRouter peer's wider 5-level enum is not the lab baseline).
- Qwen3.8-27B: toggle + low/medium/xhigh, matching the OpenRouter peer
  (no first-party Alibaba entry exists for this id).

Each file now carries a leading wire comment stating the mechanism:
reasoning_effort = "none" to disable, other accepted values to select
effort, consistent with the above.dev precedent for the same
qwen3.8-max base_model in this repo.

bun validate passes (exit 0). bun test: same 6 pre-existing failures
as a clean dev checkout, no new failures introduced.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Rok2mujdEZ2yGw8wVfbr9
@sonpiaz

sonpiaz commented Sep 4, 2026

Copy link
Copy Markdown
Author

Addressed every action item in the bot review; reasoning_options now copies the lab entry or the same-surface relay baseline per model instead of an invented effort set:

  • Lab baseline (toggle + the lab's effort levels, budget dropped since Kyma has no numeric budget field): deepseek-v4-pro (high,max), deepseek-v4-flash and -vision-exp (low,high,max), kimi-k3 (low,high,max), claude-sonnet-5 (low,medium,high,xhigh,max), qwen-3.8-max (low,medium,xhigh).
  • Lab baseline, toggle only: qwen-3.6-plus, qwen-3.7-plus, qwen-3.7-max, qwen3.7-flash, qwen-3-32b, kimi-k2.5, kimi-k2.6, glm-4.5-air, glm-4.7-flash, glm-5.1, minimax-m3, mimo-v2.5, gemma-4-31b.
  • Same-surface relay baseline where the lab has no toggle or no entry: claude-haiku-4-5 (toggle), gemini-2.5-flash (toggle), qwen3.8-flash (toggle), qwen3.8-27b (toggle + low,medium,xhigh).

The wire comment on each file states the mechanism as verified today against Kyma's endpoint on qwen-3.6-plus: 200 reasoning tokens by default, 0 with reasoning_effort = "none". bun validate passes.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/kyma/models/gemini-3.7-flash.toml:4 - Check: Reasoning options must match the lab + same-surface peer baseline, not invent levels. Why: Kyma sets effort to ["minimal", "low", "medium", "high"], but Google first-party and OpenRouter both use only ["low", "medium", "high"] for Gemini 3.7 Flash. minimal is not part of this model’s control set. Action: Change to [{ type = "effort", values = ["low", "medium", "high"] }] (same fix for gemini-3.8-flash.toml, which has the same mismatch).
  • [high] [possible mistake] providers/kyma/models/claude-opus-4-7.toml:4 - Check: Multi-model relays should expose the lab/peer control set this host can actually forward. Why: Same-surface peers (e.g. OpenRouter) author toggle + effort for Claude Opus 4.7 / Opus 5 / Sonnet 4.6. Kyma already claims a live reasoning_effort = "none" off path and correctly used toggle (+ effort) on Claude Sonnet 5 and many other models, but these three stay effort-only with no toggle. Action: Either add { type = "toggle" } (with the wire comment) alongside the existing effort lists for claude-opus-4-7, claude-opus-5, and claude-sonnet-4-6 if Kyma honors none/off on those routes, or document host-specific evidence that off is not available for these Claude IDs.
  • [medium] [possible mistake] providers/kyma/models/qwen3.8-flash.toml:4 - Check: Baseline effort from the lab entry for the same model. Why: Alibaba first-party qwen3.8-flash exposes toggle + effort low/medium/xhigh (+ budget). Kyma is toggle-only here, while the same PR already carries lab effort for qwen3.8-max. If Kyma forwards reasoning_effort, graded levels are missing. Action: Align with the lab effort set (toggle + ["low", "medium", "xhigh"]) unless Kyma-specific evidence shows only binary on/off on this ID; do not invent budget_tokens without a real budget field on this host.
  • [medium] [possible mistake] providers/kyma/models/gemini-2.5-flash.toml:12 - Check: Provider limit.output overrides must be real host deltas, not placeholder caps. Why: Many entries force output = 8_192 (Gemini 2.5/3.x Flash family, gpt-5.6-terra, Grok 4.5/4.6, Muse Spark/Glimmer, Step 3.7 Flash, Gemma 4 31B, Hy3, GPT-OSS 120B, etc.) while lab metadata is typically 32k–500k. That pattern looks like a shared default rather than per-model catalogue values. Action: Confirm each limit.output (and the similar reduced contexts) against Kyma’s model catalogue/docs and keep only verified host caps; cite the catalogue field used.
  • [medium] [possible mistake] providers/kyma/models/muse-spark-1.1.toml:14 - Check: [modalities] overrides must reflect this host, not expand lab capability. Why: Lab meta/muse-spark-1.1 is ["text", "image", "pdf", "video"]; Kyma adds audio, which is not on the lab entry. Other modality cuts (dropped pdf/video on Claude/Gemini/Kimi/Qwen/etc.) may be real host limits but are also uncited. Action: Remove audio unless Kyma documents audio input for Muse Spark 1.1; for other modality/limit overrides, keep only verified host deltas and note the source in the leading comment.

…t reasoning sets

Second round of reviewer feedback on anomalyco#6298:

- gemini-3.7-flash.toml, gemini-3.8-flash.toml: reasoning_options effort
  trimmed to exactly low/medium/high (no "minimal" — not in the Google
  first-party or OpenRouter peer control set for these two ids).
- claude-opus-5.toml: added `{ type = "toggle" }` alongside its existing
  effort list. Live-measured 2026-09-04 on api.kymaapi.com (max_tokens=120,
  "What is 17*23? Think step by step."): 32 reasoning tokens by default,
  0 with reasoning_effort="none" — toggle is real on this route.
- claude-opus-4-7.toml, claude-sonnet-4-6.toml: kept effort-only (no
  toggle claimed). Same live measurement on these two ids: 0 reasoning
  tokens by default even with no flag set — thinking is already off by
  default, so there is no observed on->off transition to justify a toggle.
- qwen3.8-flash.toml: reverted to toggle + effort low/medium/xhigh,
  matching Alibaba's first-party entry, now that qwen-3.6-plus's live test
  confirms Kyma forwards reasoning_effort on this route. Budget_tokens
  still omitted — no evidence of a numeric budget field on this host.

- Removed every hand-authored [limit] override (context and output) from
  all 60 Kyma model files. `maxOutputTokens: 8192` (and several other
  round numbers) recur identically across dozens of unrelated model
  families in Kyma's own registry — a shared platform default, not a
  per-model verified host cap — and one case (qwen-3.6-plus, 131,072
  vs the 1,000,000 the route actually serves) is flatly wrong. All 60
  entries now inherit limit.context/limit.output from their base_model.
- Removed every hand-authored [modalities] override for the same reason:
  none of them were independently host-verified (muse-spark-1.1 wrongly
  added "audio" the lab entry does not have). All 60 entries now inherit
  modalities from their base_model.

bun validate passes (exit 0). bun test: same 6 pre-existing failures as
a clean dev checkout, no new failures.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Rok2mujdEZ2yGw8wVfbr9
@sonpiaz

sonpiaz commented Sep 4, 2026

Copy link
Copy Markdown
Author

Round two addressed in cdcf8a6, with host evidence measured on Kyma today (max_tokens 120, "What is 17*23? Think step by step."):

  • claude-opus-5: 32 reasoning tokens by default, 0 with reasoning_effort = "none", so toggle is added next to its effort list.
  • claude-opus-4-7 and claude-sonnet-4-6: 0 reasoning tokens by default on this host; thinking runs only when an effort is requested. Kept effort-only and wrote that measurement into the wire comment rather than claiming a toggle we did not observe.
  • gemini-3.7-flash and gemini-3.8-flash: effort is now exactly low, medium, high.
  • qwen3.8-flash: toggle + low, medium, xhigh per the lab entry; no budget field on this host.
  • Limits: every [limit] override is removed; the entries inherit the lab context and output limits. The values Kyma's catalogue carried were defaults, not host caps, and Kyma imposes none of its own.
  • Modalities: every [modalities] override is removed as well, so muse-spark-1.1 and the others inherit the lab set exactly.

bun validate passes.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

No actionable findings.

@github-actions github-actions Bot added the reviewer: ready Automated review found no actionable items label Sep 4, 2026
…pt-oss-120b and llama-3.3-70b

qwen-3.6-plus already inherits 1,000,000 context / 65,536 output from the
alibaba/qwen3.6-plus lab entry (round 2 dropped the stale 131,072/32,768
override), so no [limit] change is needed. What was missing is modality
scope: the lab entry lists video input, but this route only accepts text
and image — verified live today with an image request that returned a
correct answer, matching what api.kymaapi.com/v1/models publishes for this
id. Adds a [modalities] override to reflect that real host delta.

gpt-oss-120b and llama-3.3-70b already resolve reasoning correctly via
base_model inheritance (openai/gpt-oss-120b = true, meta/llama-3.3-70b-instruct
= false) — no change needed on either file.

deepseek-v3 pointed base_model at deepseek/deepseek-v3, but this id actually
serves DeepSeek V3.2, a hybrid thinking model (release date and behavior
match the V3.2 lab entry, not V3.2's non-thinking predecessor). Re-pointed
base_model to deepseek/deepseek-v3.2 so reasoning correctly resolves to
true. No caller-facing reasoning control is forwarded on this route, so
reasoning_options is empty (same pattern as deepseek-r1 elsewhere in this
PR) rather than an invented toggle.

bun validate passes; bun test shows the same 6 pre-existing failures as a
clean dev checkout (snapshot build artifact + sync-script tests, unrelated
to any provider).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Rok2mujdEZ2yGw8wVfbr9
@github-actions github-actions Bot removed the reviewer: ready Automated review found no actionable items label Sep 5, 2026
@sonpiaz

sonpiaz commented Sep 5, 2026

Copy link
Copy Markdown
Author

Follow-up after a registry audit on our side. Three items:

qwen-3.6-plus — this id already inherits context = 1_000_000 / output = 65_536 from the alibaba/qwen3.6-plus lab entry (round 2 correctly dropped the stale 131_072/32_768 override), so no [limit] change is needed here. What was missing is modality scope: the lab entry lists video input, but this route only accepts text and image. Verified live today: a 532,316-token request returned 200 on this model with cost billed at the lab's >256K pricing tier (confirming the 1M context is real, not just inherited on paper), and a separate image-input request returned a correct answer. A video-input request is not part of this route's surface. Added [modalities] input = ["text", "image"] to reflect that real host delta, matching what our public /v1/models endpoint publishes for this id.

gpt-oss-120b and llama-3.3-70b — checked both against their lab entries (openai/gpt-oss-120b = reasoning = true, meta/llama-3.3-70b-instruct = reasoning = false) and both already resolve correctly via base_model inheritance with no override needed. No change on either file.

deepseek-v3 — this id actually serves DeepSeek V3.2 (hybrid thinking/non-thinking), not the original V3; base_model was pointing at the wrong lab entry (deepseek/deepseek-v3, non-reasoning) instead of deepseek/deepseek-v3.2 (reasoning). Re-pointed it so reasoning correctly resolves to true. We don't forward a caller-facing reasoning toggle on this route, so reasoning_options = [] (same shape as deepseek-r1 elsewhere in this PR) rather than inventing a toggle/effort set we haven't verified.

bun validate passes; bun test shows the same 6 pre-existing failures as a clean dev checkout (snapshot build artifact + sync-script tests, unrelated to any provider).

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Action items

  • [medium] [violation] providers/kyma/models/nemotron-3-ultra-550b.toml:4 - Check: Relay reasoning_options must follow the lab + same-surface peer baseline for that model, not an invented control set. Why: Kyma authors effort none/medium/high. First-party providers/nvidia/models/nvidia/nemotron-3-ultra-550b-a55b.toml is toggle-only; OpenRouter peers use toggle + effort medium/high (plus budget on that surface). The Kyma set matches neither baseline and invents a none-in-effort shape the lab does not expose. Action: Replace with lab/peer-aligned options for this host (typically { type = "toggle" } or toggle + ["medium", "high"] if graded effort is actually forwarded); document the real wire path; do not keep the invented none/medium/high effort-only list.
  • [medium] [possible mistake] providers/kyma/models/deepseek-v3.toml:8 - Check: On relays, reasoning_options = [] means affirmative no caller control, not uncertainty; hybrid DeepSeek V3.2 peers expose an on/off control. Why: base_model = "deepseek/deepseek-v3.2" is correct for a hybrid reasoner, but [] conflicts with established OpenAI-compatible peers (openrouter, novita-ai, tokengo, etc. use toggle) and with this PR’s own claim that Kyma forwards reasoning_effort = "none" on other hybrid routes. Action: Re-check this model id on Kyma; if off/on works, author toggle (with a model-accurate wire comment). Keep [] only with host-specific evidence that this route truly has no control.
  • [low] [possible mistake] providers/kyma/models/claude-haiku-4-5.toml:2 (and the same copied toggle comment on the other non-qwen files that reuse it) - Check: Every toggle needs a leading wire comment for this route; do not claim live verification of a different model id. Why: Comments state “Verified live … on qwen-3.6-plus” on Claude, DeepSeek V4, GLM, Kimi, MiniMax, Gemma, etc. That overstates evidence for those routes and can hide real per-model differences (this PR already treats Claude Opus 4.7 / Sonnet 4.6 differently). Action: Rewrite toggle comments to the host wire field only, or cite verification for the same model id; drop cross-model “verified on qwen-3.6-plus” claims.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant