fix(runtime-fallback): preserve agent variant and reasoningEffort on model fallback (fixes #2621)
When runtime fallback switches to a different model, the agent's configured variant and reasoningEffort were lost because buildRetryModelPayload only extracted variant from the fallback model string itself. Now buildRetryModelPayload accepts optional agentSettings and uses the agent's variant as fallback when the model string doesn't include one. reasoningEffort is also passed through. 🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,24 +2,29 @@ import { parseModelString } from "../../tools/delegate-task/model-string-parser"
|
||||
|
||||
export function buildRetryModelPayload(
|
||||
model: string,
|
||||
): { model: { providerID: string; modelID: string }; variant?: string } | undefined {
|
||||
agentSettings?: { variant?: string; reasoningEffort?: string },
|
||||
): { model: { providerID: string; modelID: string }; variant?: string; reasoningEffort?: string } | undefined {
|
||||
const parsedModel = parseModelString(model)
|
||||
if (!parsedModel) {
|
||||
return undefined
|
||||
}
|
||||
|
||||
return parsedModel.variant
|
||||
? {
|
||||
model: {
|
||||
providerID: parsedModel.providerID,
|
||||
modelID: parsedModel.modelID,
|
||||
},
|
||||
variant: parsedModel.variant,
|
||||
}
|
||||
: {
|
||||
model: {
|
||||
providerID: parsedModel.providerID,
|
||||
modelID: parsedModel.modelID,
|
||||
},
|
||||
}
|
||||
const variant = parsedModel.variant ?? agentSettings?.variant
|
||||
const reasoningEffort = agentSettings?.reasoningEffort
|
||||
|
||||
const payload: { model: { providerID: string; modelID: string }; variant?: string; reasoningEffort?: string } = {
|
||||
model: {
|
||||
providerID: parsedModel.providerID,
|
||||
modelID: parsedModel.modelID,
|
||||
},
|
||||
}
|
||||
|
||||
if (variant) {
|
||||
payload.variant = variant
|
||||
}
|
||||
if (reasoningEffort) {
|
||||
payload.reasoningEffort = reasoningEffort
|
||||
}
|
||||
|
||||
return payload
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user