fix: default model fallback when provider/model missing (#954) (thanks @roshanasingh4)

This commit is contained in:
Peter Steinberger
2026-01-15 16:58:41 +00:00
parent 0f27cff247
commit c043e9767f
2 changed files with 8 additions and 6 deletions

View File

@@ -2,7 +2,7 @@
## 2026.1.15 (unreleased)
- TBD
- Fix: guard model fallback against undefined provider/model values. (#954) — thanks @roshanasingh4.
## 2026.1.14-1

View File

@@ -119,8 +119,6 @@ function resolveFallbackCandidates(params: {
/** Optional explicit fallbacks list; when provided (even empty), replaces agents.defaults.model.fallbacks. */
fallbacksOverride?: string[];
}): ModelCandidate[] {
const provider = String(params.provider ?? "").trim() || DEFAULT_PROVIDER;
const model = String(params.model ?? "").trim() || DEFAULT_MODEL;
const primary = params.cfg
? resolveConfiguredModelRef({
cfg: params.cfg,
@@ -128,11 +126,15 @@ function resolveFallbackCandidates(params: {
defaultModel: DEFAULT_MODEL,
})
: null;
const defaultProvider = primary?.provider ?? DEFAULT_PROVIDER;
const defaultModel = primary?.model ?? DEFAULT_MODEL;
const provider = String(params.provider ?? "").trim() || defaultProvider;
const model = String(params.model ?? "").trim() || defaultModel;
const aliasIndex = buildModelAliasIndex({
cfg: params.cfg ?? {},
defaultProvider: DEFAULT_PROVIDER,
defaultProvider,
});
const allowlist = buildAllowedModelKeys(params.cfg, DEFAULT_PROVIDER);
const allowlist = buildAllowedModelKeys(params.cfg, defaultProvider);
const seen = new Set<string>();
const candidates: ModelCandidate[] = [];
@@ -160,7 +162,7 @@ function resolveFallbackCandidates(params: {
for (const raw of modelFallbacks) {
const resolved = resolveModelRefFromString({
raw: String(raw ?? ""),
defaultProvider: DEFAULT_PROVIDER,
defaultProvider,
aliasIndex,
});
if (!resolved) continue;