






















@@ -30,13 +30,22 @@ const MODEL_CATALOG_APIS = new Set<string>(MODEL_APIS);
3030const DEFAULT_MODEL_INPUT: ModelCatalogInput[] = ["text"];
3131const DEFAULT_MODEL_STATUS: ModelCatalogStatus = "available";
323233-export type { NormalizedModelCatalogRow } from "./types.js";
34-3533function normalizeSafeRecordKey(value: unknown): string {
3634const key = normalizeOptionalString(value) ?? "";
3735return key && !isBlockedObjectKey(key) ? key : "";
3836}
393738+function normalizeOwnedProviderSet(providers: ReadonlySet<string>): ReadonlySet<string> {
39+const normalized = new Set<string>();
40+for (const provider of providers) {
41+const providerId = normalizeModelCatalogProviderId(provider);
42+if (providerId) {
43+normalized.add(providerId);
44+}
45+}
46+return normalized;
47+}
48+4049function normalizeStringMap(value: unknown): Record<string, string> | undefined {
4150if (!isRecord(value)) {
4251return undefined;
@@ -295,7 +304,7 @@ function normalizeModelCatalogProviders(
295304}
296305const providers: Record<string, ModelCatalogProvider> = {};
297306for (const [rawProviderId, rawProvider] of Object.entries(value)) {
298-const providerId = normalizeSafeRecordKey(rawProviderId);
307+const providerId = normalizeModelCatalogProviderId(rawProviderId);
299308if (!providerId || !ownedProviders.has(providerId)) {
300309continue;
301310}
@@ -316,11 +325,13 @@ function normalizeModelCatalogAliases(
316325}
317326const aliases: Record<string, ModelCatalogAlias> = {};
318327for (const [rawAlias, rawTarget] of Object.entries(value)) {
319-const alias = normalizeSafeRecordKey(rawAlias);
328+const alias = normalizeModelCatalogProviderId(rawAlias);
320329if (!alias || !isRecord(rawTarget)) {
321330continue;
322331}
323-const provider = normalizeOptionalString(rawTarget.provider) ?? "";
332+const provider = normalizeModelCatalogProviderId(
333+normalizeOptionalString(rawTarget.provider) ?? "",
334+);
324335if (!provider || !ownedProviders.has(provider)) {
325336continue;
326337}
@@ -344,7 +355,7 @@ function normalizeModelCatalogSuppressions(value: unknown): ModelCatalogSuppress
344355if (!isRecord(entry)) {
345356continue;
346357}
347-const provider = normalizeOptionalString(entry.provider) ?? "";
358+const provider = normalizeModelCatalogProviderId(normalizeOptionalString(entry.provider) ?? "");
348359const model = normalizeOptionalString(entry.model) ?? "";
349360if (!provider || !model) {
350361continue;
@@ -368,7 +379,7 @@ function normalizeModelCatalogDiscovery(
368379}
369380const discovery: Record<string, ModelCatalogDiscovery> = {};
370381for (const [rawProviderId, rawMode] of Object.entries(value)) {
371-const providerId = normalizeSafeRecordKey(rawProviderId);
382+const providerId = normalizeModelCatalogProviderId(rawProviderId);
372383const mode = normalizeOptionalString(rawMode) ?? "";
373384if (providerId && ownedProviders.has(providerId) && MODEL_CATALOG_DISCOVERY_MODES.has(mode)) {
374385discovery[providerId] = mode as ModelCatalogDiscovery;
@@ -384,10 +395,11 @@ export function normalizeModelCatalog(
384395if (!isRecord(value)) {
385396return undefined;
386397}
387-const providers = normalizeModelCatalogProviders(value.providers, params.ownedProviders);
388-const aliases = normalizeModelCatalogAliases(value.aliases, params.ownedProviders);
398+const ownedProviders = normalizeOwnedProviderSet(params.ownedProviders);
399+const providers = normalizeModelCatalogProviders(value.providers, ownedProviders);
400+const aliases = normalizeModelCatalogAliases(value.aliases, ownedProviders);
389401const suppressions = normalizeModelCatalogSuppressions(value.suppressions);
390-const discovery = normalizeModelCatalogDiscovery(value.discovery, params.ownedProviders);
402+const discovery = normalizeModelCatalogDiscovery(value.discovery, ownedProviders);
391403const catalog = {
392404 ...(providers ? { providers } : {}),
393405 ...(aliases ? { aliases } : {}),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。