























@@ -687,21 +687,47 @@ export function resolveConfiguredDeferredChannelPluginIdsFromRegistry(params: {
687687rootConfig: params.config,
688688};
689689const manifestLookup = createManifestRegistryLookup(params.manifestRegistry);
690+return resolveConfiguredDeferredChannelPluginIdsFromPrepared({
691+config: params.config,
692+index: params.index,
693+ configuredChannelIds,
694+ pluginsConfig,
695+ activationSource,
696+ manifestLookup,
697+});
698+}
699+700+function resolveConfiguredDeferredChannelPluginIdsFromPrepared(params: {
701+config: OpenClawConfig;
702+index: PluginRegistrySnapshot;
703+configuredChannelIds: ReadonlySet<string>;
704+pluginsConfig: ReturnType<typeof normalizePluginsConfigWithRegistry>;
705+activationSource: {
706+plugins: ReturnType<typeof normalizePluginsConfigWithRegistry>;
707+rootConfig?: OpenClawConfig;
708+};
709+manifestLookup: ManifestRegistryLookup;
710+platform?: NodeJS.Platform;
711+}): string[] {
712+if (params.configuredChannelIds.size === 0) {
713+return [];
714+}
690715return params.index.plugins
691716.filter(
692717(plugin) =>
693718hasConfiguredStartupChannel({
694719 plugin,
695- manifestLookup,
696- configuredChannelIds,
720+manifestLookup: params.manifestLookup,
721+configuredChannelIds: params.configuredChannelIds,
697722}) &&
698723plugin.startup.deferConfiguredChannelFullLoadUntilAfterListen &&
699724canStartConfiguredChannelPlugin({
700725 plugin,
701726config: params.config,
702- pluginsConfig,
703- activationSource,
704- manifestLookup,
727+pluginsConfig: params.pluginsConfig,
728+activationSource: params.activationSource,
729+manifestLookup: params.manifestLookup,
730+platform: params.platform,
705731}),
706732)
707733.map((plugin) => plugin.pluginId);
@@ -726,12 +752,6 @@ export function resolveGatewayStartupPluginPlanFromRegistry(params: {
726752const channelPluginIds = resolveChannelPluginIdsFromRegistry({
727753manifestRegistry: params.manifestRegistry,
728754});
729-const configuredDeferredChannelPluginIds = resolveConfiguredDeferredChannelPluginIdsFromRegistry({
730-config: params.config,
731-env: params.env,
732-index: params.index,
733-manifestRegistry: params.manifestRegistry,
734-});
735755const configuredChannelIds = new Set(listPotentialEnabledChannelIds(params.config, params.env));
736756const pluginsConfig = normalizePluginsConfigWithRegistry(params.config.plugins, params.index, {
737757manifestRegistry: params.manifestRegistry,
@@ -749,14 +769,26 @@ export function resolveGatewayStartupPluginPlanFromRegistry(params: {
749769plugins: activationSourcePlugins,
750770rootConfig: activationSourceConfig,
751771};
772+const manifestLookup = createManifestRegistryLookup(params.manifestRegistry);
773+const configuredDeferredChannelPluginIds = resolveConfiguredDeferredChannelPluginIdsFromPrepared({
774+config: params.config,
775+index: params.index,
776+ configuredChannelIds,
777+ pluginsConfig,
778+activationSource: {
779+plugins: pluginsConfig,
780+rootConfig: params.config,
781+},
782+ manifestLookup,
783+platform: params.platform,
784+});
752785const requiredAgentHarnessRuntimes = new Set(
753786collectConfiguredAgentHarnessRuntimes(activationSourceConfig, params.env, {
754787includeEnvRuntime: false,
755788includeLegacyAgentRuntimes: false,
756789}),
757790);
758791const startupDreamingPluginIds = resolveGatewayStartupDreamingPluginIds(params.config);
759-const manifestLookup = createManifestRegistryLookup(params.manifestRegistry);
760792const configuredSpeechProviderIds = collectConfiguredSpeechProviderIds(activationSourceConfig);
761793const configuredWebSearchProviderIds =
762794collectConfiguredWebSearchProviderIds(activationSourceConfig);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。