mirror of
https://github.com/Routstr/routstrd.git
synced 2026-10-29 23:27:47 +00:00
OpenCode 2.0.28 does not honour capabilities.reasoning for a custom provider: openai-compatible collapses to low/medium/high and ignores the effort allowlist, while the responses and anthropic-compatible packages produce no variants at all. Derive explicit per-model `variants` from the daemon's reasoning.supported_efforts instead, mapping each effort to the setting key its package understands (reasoningEffort for the OpenAI-shaped packages, effort for anthropic-compatible). Derived variants replace the previous list on refresh so a level the model no longer accepts cannot linger; when the daemon publishes no allowlist the user's curated variants are preserved. The anthropic /messages package skips none/minimal, which routstr-core rejects there.