History

Merge pull request #1768 from router-for-me/claude

fix(translator): handle Claude thinking type "auto" like adaptive

Luis Pater committed 8 months ago

Commit 725f4fd2 parents c23e46f b1488205 files · +10 −16Browse files

Unified · Split

5 files
  1. internal/translator/antigravity/claude/antigravity_claude_request.go +2 −8
  2. internal/translator/codex/claude/codex_claude_request.go +2 −2
  3. internal/translator/gemini-cli/claude/gemini-cli_claude_request.go +2 −2
  4. internal/translator/gemini/claude/gemini_claude_request.go +2 −2
  5. internal/translator/openai/claude/openai_claude_request.go +2 −2
internal/translator/antigravity/claude/antigravity_claude_request.go+2−8
@@ -440,14 +440,8 @@ func ConvertClaudeRequestToAntigravity(modelName string, inputRawJSON []byte, _ · 439 unmodified lines
440440 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.thinkingBudget", budget)
441441 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.includeThoughts", true)
442442 }
443− case "auto":
444− // Amp sends thinking.type="auto" — use max budget from model config
445− // Antigravity API for Claude models requires a concrete positive budget,
446− // not -1. Use a high default that ApplyThinking will cap to model max.
447− out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.thinkingBudget", 64000)
448− out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.includeThoughts", true)
449− case "adaptive":
450− // Keep adaptive as a high level sentinel; ApplyThinking resolves it
443+ case "adaptive", "auto":
444+ // Keep adaptive/auto as a high level sentinel; ApplyThinking resolves it
451445 // to model-specific max capability.
452446 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.thinkingLevel", "high")
453447 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.includeThoughts", true)
internal/translator/codex/claude/codex_claude_request.go+2−2
@@ -230,8 +230,8 @@ func ConvertClaudeRequestToCodex(modelName string, inputRawJSON []byte, _ bool) · 229 unmodified lines
230230 reasoningEffort = effort
231231 }
232232 }
233− case "adaptive":
234− // Claude adaptive means "enable with max capacity"; keep it as highest level
233+ case "adaptive", "auto":
234+ // Claude adaptive/auto means "enable with max capacity"; keep it as highest level
235235 // and let ApplyThinking normalize per target model capability.
236236 reasoningEffort = string(thinking.LevelXHigh)
237237 case "disabled":
internal/translator/gemini-cli/claude/gemini-cli_claude_request.go+2−2
@@ -180,8 +180,8 @@ func ConvertClaudeRequestToCLI(modelName string, inputRawJSON []byte, _ bool) [] · 179 unmodified lines
180180 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.thinkingBudget", budget)
181181 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.includeThoughts", true)
182182 }
183− case "adaptive":
184− // Keep adaptive as a high level sentinel; ApplyThinking resolves it
183+ case "adaptive", "auto":
184+ // Keep adaptive/auto as a high level sentinel; ApplyThinking resolves it
185185 // to model-specific max capability.
186186 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.thinkingLevel", "high")
187187 out, _ = sjson.Set(out, "request.generationConfig.thinkingConfig.includeThoughts", true)
internal/translator/gemini/claude/gemini_claude_request.go+2−2
@@ -161,8 +161,8 @@ func ConvertClaudeRequestToGemini(modelName string, inputRawJSON []byte, _ bool) · 160 unmodified lines
161161 out, _ = sjson.Set(out, "generationConfig.thinkingConfig.thinkingBudget", budget)
162162 out, _ = sjson.Set(out, "generationConfig.thinkingConfig.includeThoughts", true)
163163 }
164− case "adaptive":
165− // Keep adaptive as a high level sentinel; ApplyThinking resolves it
164+ case "adaptive", "auto":
165+ // Keep adaptive/auto as a high level sentinel; ApplyThinking resolves it
166166 // to model-specific max capability.
167167 out, _ = sjson.Set(out, "generationConfig.thinkingConfig.thinkingLevel", "high")
168168 out, _ = sjson.Set(out, "generationConfig.thinkingConfig.includeThoughts", true)
internal/translator/openai/claude/openai_claude_request.go+2−2
@@ -75,8 +75,8 @@ func ConvertClaudeRequestToOpenAI(modelName string, inputRawJSON []byte, stream · 74 unmodified lines
7575 out, _ = sjson.Set(out, "reasoning_effort", effort)
7676 }
7777 }
78− case "adaptive":
79− // Claude adaptive means "enable with max capacity"; keep it as highest level
78+ case "adaptive", "auto":
79+ // Claude adaptive/auto means "enable with max capacity"; keep it as highest level
8080 // and let ApplyThinking normalize per target model capability.
8181 out, _ = sjson.Set(out, "reasoning_effort", string(thinking.LevelXHigh))
8282 case "disabled":