fix(ai): enable adaptive thinking for sonnet 4.6 and clamp xhigh effort (#1548)

* fix(ai): enable adaptive thinking for sonnet 4.6 and clamp xhigh effort

* chore(ai): drop changelog edit from contribution

---------

Co-authored-by: tctev <224793535+tctev@users.noreply.github.com>
This commit is contained in:
tctev
2026-02-26 00:34:06 +01:00
committed by GitHub
parent cf656c169c
commit e9d0074fa6
2 changed files with 32 additions and 18 deletions

View File

@@ -371,13 +371,21 @@ function handleContentBlockStop(
}
/**
* Check if the model supports adaptive thinking (Opus 4.6+).
* Check if the model supports adaptive thinking (Opus 4.6 and Sonnet 4.6).
*/
function supportsAdaptiveThinking(modelId: string): boolean {
return modelId.includes("opus-4-6") || modelId.includes("opus-4.6");
return (
modelId.includes("opus-4-6") ||
modelId.includes("opus-4.6") ||
modelId.includes("sonnet-4-6") ||
modelId.includes("sonnet-4.6")
);
}
function mapThinkingLevelToEffort(level: SimpleStreamOptions["reasoning"]): "low" | "medium" | "high" | "max" {
function mapThinkingLevelToEffort(
level: SimpleStreamOptions["reasoning"],
modelId: string,
): "low" | "medium" | "high" | "max" {
switch (level) {
case "minimal":
case "low":
@@ -387,7 +395,7 @@ function mapThinkingLevelToEffort(level: SimpleStreamOptions["reasoning"]): "low
case "high":
return "high";
case "xhigh":
return "max";
return modelId.includes("opus-4-6") || modelId.includes("opus-4.6") ? "max" : "high";
default:
return "high";
}
@@ -668,7 +676,7 @@ function buildAdditionalModelRequestFields(
const result: Record<string, any> = supportsAdaptiveThinking(model.id)
? {
thinking: { type: "adaptive" },
output_config: { effort: mapThinkingLevelToEffort(options.reasoning) },
output_config: { effort: mapThinkingLevelToEffort(options.reasoning, model.id) },
}
: (() => {
const defaultBudgets: Record<ThinkingLevel, number> = {