fix: default model fallback when provider/model missing (#954) (thanks @roshanasingh4)
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## 2026.1.15 (unreleased)
|
## 2026.1.15 (unreleased)
|
||||||
|
|
||||||
- TBD
|
- Fix: guard model fallback against undefined provider/model values. (#954) — thanks @roshanasingh4.
|
||||||
|
|
||||||
## 2026.1.14-1
|
## 2026.1.14-1
|
||||||
|
|
||||||
|
|||||||
@@ -119,8 +119,6 @@ function resolveFallbackCandidates(params: {
|
|||||||
/** Optional explicit fallbacks list; when provided (even empty), replaces agents.defaults.model.fallbacks. */
|
/** Optional explicit fallbacks list; when provided (even empty), replaces agents.defaults.model.fallbacks. */
|
||||||
fallbacksOverride?: string[];
|
fallbacksOverride?: string[];
|
||||||
}): ModelCandidate[] {
|
}): ModelCandidate[] {
|
||||||
const provider = String(params.provider ?? "").trim() || DEFAULT_PROVIDER;
|
|
||||||
const model = String(params.model ?? "").trim() || DEFAULT_MODEL;
|
|
||||||
const primary = params.cfg
|
const primary = params.cfg
|
||||||
? resolveConfiguredModelRef({
|
? resolveConfiguredModelRef({
|
||||||
cfg: params.cfg,
|
cfg: params.cfg,
|
||||||
@@ -128,11 +126,15 @@ function resolveFallbackCandidates(params: {
|
|||||||
defaultModel: DEFAULT_MODEL,
|
defaultModel: DEFAULT_MODEL,
|
||||||
})
|
})
|
||||||
: null;
|
: 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({
|
const aliasIndex = buildModelAliasIndex({
|
||||||
cfg: params.cfg ?? {},
|
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 seen = new Set<string>();
|
||||||
const candidates: ModelCandidate[] = [];
|
const candidates: ModelCandidate[] = [];
|
||||||
|
|
||||||
@@ -160,7 +162,7 @@ function resolveFallbackCandidates(params: {
|
|||||||
for (const raw of modelFallbacks) {
|
for (const raw of modelFallbacks) {
|
||||||
const resolved = resolveModelRefFromString({
|
const resolved = resolveModelRefFromString({
|
||||||
raw: String(raw ?? ""),
|
raw: String(raw ?? ""),
|
||||||
defaultProvider: DEFAULT_PROVIDER,
|
defaultProvider,
|
||||||
aliasIndex,
|
aliasIndex,
|
||||||
});
|
});
|
||||||
if (!resolved) continue;
|
if (!resolved) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user