From 1056a9ea81d8ac7d18be9e84e72e40e0cc2508f8 Mon Sep 17 00:00:00 2001 From: Shakker Date: Mon, 27 Apr 2026 16:28:40 +0100 Subject: [PATCH] refactor: reuse manifest catalog provider refs --- src/model-catalog/manifest-planner.ts | 37 +++++++++++---------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/src/model-catalog/manifest-planner.ts b/src/model-catalog/manifest-planner.ts index 62b0c8a2672..8f42bcf798c 100644 --- a/src/model-catalog/manifest-planner.ts +++ b/src/model-catalog/manifest-planner.ts @@ -176,6 +176,19 @@ function buildModelCatalogProviderAliasTargets( return aliasesByTargetProvider; } +function buildModelCatalogProviderRefs(plugin: ManifestModelCatalogPlugin): ReadonlySet { + const ownedProviders = buildOwnedProviderSet(plugin); + const refs = new Set(ownedProviders); + for (const [rawAlias, alias] of Object.entries(plugin.modelCatalog?.aliases ?? {})) { + const aliasProvider = normalizeModelCatalogProviderId(rawAlias); + const targetProvider = normalizeModelCatalogProviderId(alias.provider); + if (aliasProvider && targetProvider && ownedProviders.has(targetProvider)) { + refs.add(aliasProvider); + } + } + return refs; +} + function applyModelCatalogAliasOverrides(params: { rows: readonly NormalizedModelCatalogRow[]; alias?: ModelCatalogAlias; @@ -190,27 +203,6 @@ function applyModelCatalogAliasOverrides(params: { })); } -function pluginOwnsModelCatalogProviderRef(params: { - plugin: ManifestModelCatalogPlugin; - provider: string; -}): boolean { - const provider = normalizeModelCatalogProviderId(params.provider); - if (!provider) { - return false; - } - const ownedProviders = buildOwnedProviderSet(params.plugin); - if (ownedProviders.has(provider)) { - return true; - } - return Object.entries(params.plugin.modelCatalog?.aliases ?? {}).some(([rawAlias, alias]) => { - const aliasProvider = normalizeModelCatalogProviderId(rawAlias); - const targetProvider = normalizeModelCatalogProviderId(alias.provider); - return ( - aliasProvider === provider && Boolean(targetProvider) && ownedProviders.has(targetProvider) - ); - }); -} - export function planManifestModelCatalogSuppressions(params: { registry: ManifestModelCatalogRegistry; providerFilter?: string; @@ -224,6 +216,7 @@ export function planManifestModelCatalogSuppressions(params: { : undefined; const suppressions: ManifestModelCatalogSuppressionEntry[] = []; for (const plugin of params.registry.plugins) { + const providerRefs = buildModelCatalogProviderRefs(plugin); for (const suppression of plugin.modelCatalog?.suppressions ?? []) { const provider = normalizeModelCatalogProviderId(suppression.provider); const model = normalizeLowercaseStringOrEmpty(suppression.model); @@ -236,7 +229,7 @@ export function planManifestModelCatalogSuppressions(params: { if (modelFilter && model !== modelFilter) { continue; } - if (!pluginOwnsModelCatalogProviderRef({ plugin, provider })) { + if (!providerRefs.has(provider)) { continue; } suppressions.push({