




















@@ -23,7 +23,7 @@ import {
2323createProviderApiKeyResolver,
2424createProviderAuthResolver,
2525} from "./models-config.providers.secrets.js";
26-import { findNormalizedProviderValue } from "./provider-id.js";
26+import { findNormalizedProviderValue, normalizeProviderId } from "./provider-id.js";
27272828const log = createSubsystemLogger("agents/model-providers");
2929@@ -133,18 +133,55 @@ function resolvePluginMetadataProviderOwners(
133133if (!pluginMetadataSnapshot) {
134134return undefined;
135135}
136-const owners = new Set<string>();
137-for (const owner of pluginMetadataSnapshot.owners.providers.get(provider) ?? []) {
138-owners.add(owner);
139-}
140-for (const owner of pluginMetadataSnapshot.owners.cliBackends.get(provider) ?? []) {
141-owners.add(owner);
136+const normalizedProvider = normalizeProviderId(provider);
137+if (!normalizedProvider) {
138+return undefined;
142139}
140+const owners = new Set<string>();
141+appendNormalizedPluginMetadataOwners(
142+owners,
143+pluginMetadataSnapshot.owners.providers,
144+provider,
145+normalizedProvider,
146+);
147+appendNormalizedPluginMetadataOwners(
148+owners,
149+pluginMetadataSnapshot.owners.cliBackends,
150+provider,
151+normalizedProvider,
152+);
143153return owners.size > 0
144154 ? [...owners].toSorted((left, right) => left.localeCompare(right))
145155 : undefined;
146156}
147157158+function appendNormalizedPluginMetadataOwners(
159+target: Set<string>,
160+ownerMap: ReadonlyMap<string, readonly string[]>,
161+provider: string,
162+normalizedProvider: string,
163+): void {
164+for (const owner of ownerMap.get(provider) ?? []) {
165+target.add(owner);
166+}
167+if (normalizedProvider !== provider) {
168+for (const owner of ownerMap.get(normalizedProvider) ?? []) {
169+target.add(owner);
170+}
171+}
172+for (const [ownedId, owners] of ownerMap.entries()) {
173+if (
174+ownedId !== provider &&
175+ownedId !== normalizedProvider &&
176+normalizeProviderId(ownedId) === normalizedProvider
177+) {
178+for (const owner of owners) {
179+target.add(owner);
180+}
181+}
182+}
183+}
184+148185export function resolveProviderDiscoveryFilterForTest(params: {
149186config?: OpenClawConfig;
150187workspaceDir?: string;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。