@@ -121,23 +121,23 @@ export function getModelConfig(
121121 * @returns Reasoning configuration
122122 */
123123export function getReasoningConfig (
124- originalModel : string | undefined ,
124+ modelName : string | undefined ,
125125 userConfig : ConfigOptions = { } ,
126126) : ReasoningConfig {
127- const normalizedOriginal = originalModel ?. toLowerCase ( ) ?? "" ;
127+ const normalizedName = modelName ?. toLowerCase ( ) ?? "" ;
128128 const isCodexMax =
129- normalizedOriginal . includes ( "codex-max" ) ||
130- normalizedOriginal . includes ( "codex max" ) ;
129+ normalizedName . includes ( "codex-max" ) ||
130+ normalizedName . includes ( "codex max" ) ;
131131 const isCodexMini =
132- normalizedOriginal . includes ( "codex-mini" ) ||
133- normalizedOriginal . includes ( "codex mini" ) ||
134- normalizedOriginal . includes ( "codex_mini" ) ||
135- normalizedOriginal . includes ( "codex-mini-latest" ) ;
136- const isCodex = normalizedOriginal . includes ( "codex" ) && ! isCodexMini ;
132+ normalizedName . includes ( "codex-mini" ) ||
133+ normalizedName . includes ( "codex mini" ) ||
134+ normalizedName . includes ( "codex_mini" ) ||
135+ normalizedName . includes ( "codex-mini-latest" ) ;
136+ const isCodex = normalizedName . includes ( "codex" ) && ! isCodexMini ;
137137 const isLightweight =
138138 ! isCodexMini &&
139- ( normalizedOriginal . includes ( "nano" ) ||
140- normalizedOriginal . includes ( "mini" ) ) ;
139+ ( normalizedName . includes ( "nano" ) ||
140+ normalizedName . includes ( "mini" ) ) ;
141141
142142 // Default based on model type (Codex CLI defaults)
143143 const defaultEffort : ReasoningConfig [ "effort" ] = isCodexMini
@@ -163,6 +163,11 @@ export function getReasoningConfig(
163163 }
164164 }
165165
166+ // For all non-Codex-Max models, downgrade unsupported xhigh to high
167+ if ( ! isCodexMax && effort === "xhigh" ) {
168+ effort = "high" ;
169+ }
170+
166171 // Normalize "minimal" to "low" for Codex families
167172 // Codex CLI presets are low/medium/high (or xhigh for Codex Max)
168173 if ( isCodex && effort === "minimal" ) {
@@ -437,8 +442,8 @@ export async function transformRequestBody(
437442 }
438443 }
439444
440- // Configure reasoning (use model-specific config)
441- const reasoningConfig = getReasoningConfig ( originalModel , modelConfig ) ;
445+ // Configure reasoning (use normalized model family + model-specific config)
446+ const reasoningConfig = getReasoningConfig ( normalizedModel , modelConfig ) ;
442447 body . reasoning = {
443448 ...body . reasoning ,
444449 ...reasoningConfig ,
0 commit comments