























@@ -163,19 +163,6 @@ function resolveAutoCapabilityFallbackRefs(params: {
163163});
164164}
165165166-function providerMatchesId(provider: CapabilityProviderCandidate, providerId: string): boolean {
167-const normalizedProviderId = normalizeOptionalString(providerId);
168-if (!normalizedProviderId) {
169-return false;
170-}
171-return (
172-normalizeOptionalString(provider.id) === normalizedProviderId ||
173-(provider.aliases ?? []).some(
174-(alias) => normalizeOptionalString(alias) === normalizedProviderId,
175-)
176-);
177-}
178-179166function resolveProviderModelOnlyRef(params: {
180167raw: string;
181168providers: CapabilityProviderCandidate[];
@@ -207,16 +194,19 @@ export function resolveCapabilityModelCandidates(params: {
207194providers ??= params.listProviders?.(params.cfg) ?? [];
208195return providers;
209196};
210-const add = (raw: string | undefined) => {
197+const resolveCandidate = (raw: string | undefined, options: { useProviderMetadata: boolean }) => {
211198const trimmed = normalizeOptionalString(raw);
212199if (!trimmed) {
213-return;
200+return null;
214201}
215202const parsed = params.parseModelRef(raw);
216-const candidate =
217-parsed && getProviders().some((provider) => providerMatchesId(provider, parsed.provider))
218- ? parsed
219- : (resolveProviderModelOnlyRef({ raw: trimmed, providers: getProviders() }) ?? parsed);
203+if (!options.useProviderMetadata) {
204+return parsed;
205+}
206+return resolveProviderModelOnlyRef({ raw: trimmed, providers: getProviders() }) ?? parsed;
207+};
208+const add = (raw: string | undefined, options: { useProviderMetadata: boolean }) => {
209+const candidate = resolveCandidate(raw, options);
220210if (!candidate) {
221211return;
222212}
@@ -229,34 +219,29 @@ export function resolveCapabilityModelCandidates(params: {
229219};
230220231221const override = (() => {
232-const raw = normalizeOptionalString(params.modelOverride);
233-if (!raw) {
234-return null;
235-}
236-const parsed = params.parseModelRef(raw);
237-return parsed && getProviders().some((provider) => providerMatchesId(provider, parsed.provider))
238- ? parsed
239- : (resolveProviderModelOnlyRef({ raw, providers: getProviders() }) ?? parsed);
222+return resolveCandidate(params.modelOverride, { useProviderMetadata: true });
240223})();
241224if (override) {
242225return [override];
243226}
244227245-add(params.modelOverride);
246-add(resolveAgentModelPrimaryValue(params.modelConfig));
247-for (const fallback of resolveAgentModelFallbackValues(params.modelConfig)) {
248-add(fallback);
249-}
250228const autoProviderFallbackEnabled =
251229params.autoProviderFallback ??
252230params.cfg.agents?.defaults?.mediaGenerationAutoProviderFallback !== false;
231+add(params.modelOverride, { useProviderMetadata: true });
232+add(resolveAgentModelPrimaryValue(params.modelConfig), {
233+useProviderMetadata: autoProviderFallbackEnabled,
234+});
235+for (const fallback of resolveAgentModelFallbackValues(params.modelConfig)) {
236+add(fallback, { useProviderMetadata: autoProviderFallbackEnabled });
237+}
253238if (autoProviderFallbackEnabled && params.listProviders) {
254239for (const candidate of resolveAutoCapabilityFallbackRefs({
255240cfg: params.cfg,
256241agentDir: params.agentDir,
257242listProviders: () => getProviders(),
258243})) {
259-add(candidate);
244+add(candidate, { useProviderMetadata: false });
260245}
261246}
262247return candidates;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。