Model-name post-processing is rebuilt around an explicit trailing @key:value modifier syntax (thinking/effort/temperature/topp) that overrides request fields, survives model mapping, and records conversion diagnostics on the consume log. - Legacy naked aliases (-thinking, -nothinking, -thinking-<budget>, effort tails) now parse only for positively matched families (gpt-*/o-series, claude-*, gemini-*, incl. vendor/ namespaces); names like qwen-max stay opaque. EffortTailModelIDs remains the escape hatch for real in-family IDs such as gpt-5.1-codex-max. - Billing identity resolves once in ModelPriceHelper via a ladder: configured request name first (legacy wildcard entries intact), then canonical billing names rebuilt from parsed intent (base@effort:E@thinking:S, then base@thinking:S; order, duplicates, and budget values are irrelevant; temperature/topp never priced), then base. Routing and token limits fall back through RoutingMatchModelName; pricing lookups stay wildcard-only. - Pass-through stays byte-identical: modifiers and aliases are neither parsed nor validated there and forward verbatim for the upstream (or a chained gateway) to interpret. - Unknown modifier keys and invalid known-key values are rejected with 400; models whose real names contain @tag:value are exempted via the thinking-suffix blacklist, which now supports re:-prefixed Go regex entries. - Claude reasoning render coerces unsupported combinations (disable, adaptive, budgets) with warning diagnostics instead of erroring; native-protocol requests without host syntax pass through untouched. BREAKING(openrouter): drop the host-invented "-thinking" model-name alias (added in 4f6d16e3) that trimmed any *-thinking model on OpenRouter channels and injected reasoning.enabled. It matched too broadly and mangled real model IDs such as kimi-k2-thinking. Migration: use some-model@thinking:on, or keep the old public name via a channel model mapping {"some-model-thinking": "some-model@thinking:on"}. Claude/Gemini family aliases (incl. anthropic/claude-*-thinking) keep working via the family whitelist.
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| audit.go | Loading commit data... | |
| auth.go | Loading commit data... | |
| auth_origin.go | Loading commit data... | |
| auth_origin_test.go | Loading commit data... | |
| auth_test.go | Loading commit data... | |
| body_cleanup.go | Loading commit data... | |
| cache.go | Loading commit data... | |
| cors.go | Loading commit data... | |
| disable-cache.go | Loading commit data... | |
| distributor.go | Loading commit data... | |
| distributor_test.go | Loading commit data... | |
| email-verification-rate-limit.go | Loading commit data... | |
| gzip.go | Loading commit data... | |
| header_nav.go | Loading commit data... | |
| header_nav_test.go | Loading commit data... | |
| i18n.go | Loading commit data... | |
| logger.go | Loading commit data... | |
| model-rate-limit.go | Loading commit data... | |
| model_rate_limit_test.go | Loading commit data... | |
| performance.go | Loading commit data... | |
| rate-limit.go | Loading commit data... | |
| rate_limit_test.go | Loading commit data... | |
| recover.go | Loading commit data... | |
| request-id.go | Loading commit data... | |
| request_body_limit.go | Loading commit data... | |
| secure_verification.go | Loading commit data... | |
| stats.go | Loading commit data... | |
| task_artifact_access.go | Loading commit data... | |
| task_artifact_access_test.go | Loading commit data... | |
| task_plugin.go | Loading commit data... | |
| task_plugin_model.go | Loading commit data... | |
| task_plugin_origin_task_test.go | Loading commit data... | |
| task_plugin_test.go | Loading commit data... | |
| token_auto_groups_context_test.go | Loading commit data... | |
| trusted_proxies.go | Loading commit data... | |
| trusted_proxies_test.go | Loading commit data... | |
| turnstile-check.go | Loading commit data... | |
| utils.go | Loading commit data... |