




















@@ -60,6 +60,7 @@ type WebProviderRuntimeContext = {
6060config: PluginLoadOptions["config"];
6161activationSourceConfig?: PluginLoadOptions["config"];
6262autoEnabledReasons: Record<string, string[]>;
63+loadPluginIds?: string[];
6364onlyPluginIds?: string[];
6465};
6566@@ -69,13 +70,18 @@ function resolveWebProviderRuntimeContext<TEntry>(
6970): WebProviderRuntimeContext {
7071const env = params.env ?? process.env;
7172const workspaceDir = params.workspaceDir ?? getActivePluginRegistryWorkspaceDir();
73+const shouldFilterProviders =
74+params.config !== undefined ||
75+params.onlyPluginIds !== undefined ||
76+params.origin !== undefined ||
77+params.bundledAllowlistCompat === true;
7278const { config, activationSourceConfig, autoEnabledReasons } =
7379deps.resolveBundledResolutionConfig({
7480 ...params,
7581 workspaceDir,
7682 env,
7783});
78-const onlyPluginIds = normalizePluginIdScope(
84+const candidatePluginIds = normalizePluginIdScope(
7985deps.resolveCandidatePluginIds({
8086 config,
8187 workspaceDir,
@@ -84,11 +90,13 @@ function resolveWebProviderRuntimeContext<TEntry>(
8490origin: params.origin,
8591}),
8692);
93+const onlyPluginIds = shouldFilterProviders ? candidatePluginIds : undefined;
8794return {
8895 activationSourceConfig,
8996 autoEnabledReasons,
9097 config,
9198 env,
99+loadPluginIds: candidatePluginIds,
92100 onlyPluginIds,
93101 workspaceDir,
94102};
@@ -110,8 +118,8 @@ function resolveWebProviderLoadOptions(
110118{
111119cache: params.cache ?? true,
112120activate: params.activate ?? false,
113- ...(hasExplicitPluginIdScope(context.onlyPluginIds)
114- ? { onlyPluginIds: context.onlyPluginIds }
121+ ...(hasExplicitPluginIdScope(context.loadPluginIds)
122+ ? { onlyPluginIds: context.loadPluginIds }
115123 : {}),
116124},
117125);
@@ -176,7 +184,7 @@ export function resolvePluginWebProviders<TEntry>(
176184env: context.env,
177185 loadOptions,
178186workspaceDir: context.workspaceDir,
179-requiredPluginIds: context.onlyPluginIds,
187+requiredPluginIds: context.loadPluginIds,
180188});
181189if (compatible) {
182190return deps.mapRegistryProviders({
@@ -192,7 +200,11 @@ export function resolvePluginWebProviders<TEntry>(
192200if (hasExplicitEmptyScope) {
193201return [];
194202}
195-return [];
203+const registry = loadOpenClawPlugins(loadOptions);
204+return deps.mapRegistryProviders({
205+ registry,
206+onlyPluginIds: context.onlyPluginIds,
207+});
196208}
197209198210export function resolveRuntimeWebProviders<TEntry>(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。