

























@@ -11,7 +11,9 @@ import {
1111modelKey,
1212normalizeModelRef,
1313normalizeProviderId,
14+parseConfiguredModelVisibilityEntries,
1415resolvePersistedOverrideModelRef,
16+resolveAllowedModelSelection,
1517resolveReasoningDefault,
1618resolveThinkingDefault,
1719} from "../../agents/model-selection.js";
@@ -126,11 +128,20 @@ export async function createModelSelectionState(params: {
126128let model = params.model;
127129128130const hasAllowlist = agentCfg?.models && Object.keys(agentCfg.models).length > 0;
131+const visibility = parseConfiguredModelVisibilityEntries({ cfg });
132+const defaultProviderVisibleByWildcard = visibility.providerWildcards.has(
133+normalizeProviderId(defaultProvider),
134+);
129135const configuredModelCatalog = buildConfiguredModelCatalog({ cfg });
130-const needsModelCatalog = params.hasModelDirective;
136+const needsModelCatalog =
137+params.hasModelDirective ||
138+Boolean(
139+hasAllowlist && visibility.providerWildcards.size > 0 && !defaultProviderVisibleByWildcard,
140+);
131141132142let allowedModelKeys = new Set<string>();
133143let allowedModelCatalog: ModelCatalog = configuredModelCatalog;
144+let allowAnyModel = !hasAllowlist;
134145let modelCatalog: ModelCatalog | null = null;
135146let resetModelOverride = false;
136147let resetModelOverrideRef: string | undefined;
@@ -153,6 +164,7 @@ export async function createModelSelectionState(params: {
153164});
154165allowedModelCatalog = allowed.allowedCatalog;
155166allowedModelKeys = allowed.allowedKeys;
167+allowAnyModel = allowed.allowAny;
156168logStage(
157169"allowlist-built",
158170`allowed=${allowedModelCatalog.length} keys=${allowedModelKeys.size}`,
@@ -167,6 +179,7 @@ export async function createModelSelectionState(params: {
167179});
168180allowedModelCatalog = allowed.allowedCatalog;
169181allowedModelKeys = allowed.allowedKeys;
182+allowAnyModel = allowed.allowAny;
170183logStage(
171184"configured-allowlist-built",
172185`allowed=${allowedModelCatalog.length} keys=${allowedModelKeys.size}`,
@@ -175,6 +188,21 @@ export async function createModelSelectionState(params: {
175188logStage("configured-catalog-ready", `entries=${configuredModelCatalog.length}`);
176189}
177190191+const allowedInitialSelection = resolveAllowedModelSelection({
192+ provider,
193+ model,
194+allowAny: allowAnyModel,
195+allowedKeys: allowedModelKeys,
196+allowedCatalog: allowedModelCatalog,
197+});
198+if (!allowedInitialSelection) {
199+throw new Error(
200+`Configured default model "${modelKey(provider, model)}" is not allowed by agents.defaults.models, and no allowed model is available.`,
201+);
202+}
203+provider = allowedInitialSelection.provider;
204+model = allowedInitialSelection.model;
205+178206if (sessionEntry && sessionStore && sessionKey && directStoredOverride) {
179207const normalizedOverride = normalizeModelRef(
180208directStoredOverride.provider,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。