mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-17 20:52:15 +03:00
Ask 1: add ModelSpec.defaultReasoningEffort ("none"|"low"|"medium"|"high"),
injected as reasoning_effort only when the request carries no reasoning
field of any shape (reasoning_effort/reasoning/thinking). An explicit
client value — including one forwarded verbatim through a combo leg —
always wins. Wired at the OpenAI Chat Completions dispatch chokepoint in
chatCore.ts, after model resolution, so the resolved upstream model's
default applies even when a combo/route substituted it.
Ask 2: applyNoThinkingAlias now sets reasoning_effort:"none" on the OpenAI
path instead of deleting the field, so a thinks-by-default model (measured:
gemini-flash-lite-latest via no-think/ still burned 202 reasoning tokens)
actually stops thinking instead of falling back to its provider default.
The Claude/Messages path is unchanged (thinking:{type:"disabled"}). Lanes
known to reject reasoning_effort still end up with the field removed via
the existing per-lane unsupported-param strip (paramSupport.ts) — same end
state as the old delete-only behavior, correct on more lanes.