Unify dynamic fallback chains for background subagents
This commit is contained in:
committed by
YeonGyu-Kim
parent
38c925697b
commit
86c6bc7716
@@ -14,6 +14,7 @@ function getExplicitHighBaseModel(model: string): string | null {
|
||||
|
||||
export function resolveModelForDelegateTask(input: {
|
||||
userModel?: string
|
||||
userFallbackModels?: string[]
|
||||
categoryDefaultModel?: string
|
||||
fallbackChain?: FallbackEntry[]
|
||||
availableModels: Set<string>
|
||||
@@ -44,6 +45,28 @@ export function resolveModelForDelegateTask(input: {
|
||||
}
|
||||
}
|
||||
|
||||
const userFallbackModels = input.userFallbackModels
|
||||
if (userFallbackModels && userFallbackModels.length > 0) {
|
||||
if (input.availableModels.size === 0) {
|
||||
const first = normalizeModel(userFallbackModels[0])
|
||||
if (first) {
|
||||
return { model: first }
|
||||
}
|
||||
} else {
|
||||
for (const fallbackModel of userFallbackModels) {
|
||||
const normalizedFallback = normalizeModel(fallbackModel)
|
||||
if (!normalizedFallback) continue
|
||||
|
||||
const parts = normalizedFallback.split("/")
|
||||
const providerHint = parts.length >= 2 ? [parts[0]] : undefined
|
||||
const match = fuzzyMatchModel(normalizedFallback, input.availableModels, providerHint)
|
||||
if (match) {
|
||||
return { model: match }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const fallbackChain = input.fallbackChain
|
||||
if (fallbackChain && fallbackChain.length > 0) {
|
||||
if (input.availableModels.size === 0) {
|
||||
|
||||
Reference in New Issue
Block a user