fix(model-resolver): return variant from fallback chain, handle model name normalization
- Add variant to ModelResolutionResult return type - Return variant from matched fallback entry - Add normalizeModelName() for Claude model hyphen/period differences - Add transformModelForProvider() for github-copilot model names - Update delegate-task to use resolved variant (user config takes priority) - Fix test expectations for new fallback behavior
This commit is contained in:
@@ -16,6 +16,7 @@ export type ModelSource =
|
||||
export type ModelResolutionResult = {
|
||||
model: string
|
||||
source: ModelSource
|
||||
variant?: string
|
||||
}
|
||||
|
||||
export type ExtendedModelResolutionInput = {
|
||||
@@ -57,8 +58,8 @@ export function resolveModelWithFallback(
|
||||
const fullModel = `${provider}/${entry.model}`
|
||||
const match = fuzzyMatchModel(fullModel, availableModels, [provider])
|
||||
if (match) {
|
||||
log("Model resolved via fallback chain (availability confirmed)", { provider, model: entry.model, match })
|
||||
return { model: match, source: "provider-fallback" }
|
||||
log("Model resolved via fallback chain (availability confirmed)", { provider, model: entry.model, match, variant: entry.variant })
|
||||
return { model: match, source: "provider-fallback", variant: entry.variant }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -68,8 +69,8 @@ export function resolveModelWithFallback(
|
||||
const firstEntry = fallbackChain[0]
|
||||
if (firstEntry.providers.length > 0) {
|
||||
const fallbackModel = `${firstEntry.providers[0]}/${firstEntry.model}`
|
||||
log("Model resolved via fallback chain first entry (no availability match)", { model: fallbackModel })
|
||||
return { model: fallbackModel, source: "provider-fallback" }
|
||||
log("Model resolved via fallback chain first entry (no availability match)", { model: fallbackModel, variant: firstEntry.variant })
|
||||
return { model: fallbackModel, source: "provider-fallback", variant: firstEntry.variant }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user