





















@@ -22,21 +22,14 @@ function compareExtractors(
2222return left.id.localeCompare(right.id) || left.pluginId.localeCompare(right.pluginId);
2323}
242425-function resolveBundledDocumentExtractorCompatPluginIds(params: {
26-config?: OpenClawConfig;
27-workspaceDir?: string;
28-env?: NodeJS.ProcessEnv;
25+function listDocumentExtractorPluginIds(params: {
26+plugins: readonly PluginManifestRecord[];
2927onlyPluginIds?: readonly string[];
3028}): string[] {
3129const onlyPluginIdSet =
3230params.onlyPluginIds && params.onlyPluginIds.length > 0 ? new Set(params.onlyPluginIds) : null;
33-return loadPluginManifestRegistryForPluginRegistry({
34-config: params.config,
35-workspaceDir: params.workspaceDir,
36-env: params.env,
37-includeDisabled: true,
38-})
39-.plugins.filter(
31+return params.plugins
32+.filter(
4033(plugin) =>
4134plugin.origin === "bundled" &&
4235(!onlyPluginIdSet || onlyPluginIdSet.has(plugin.id)) &&
@@ -46,6 +39,19 @@ function resolveBundledDocumentExtractorCompatPluginIds(params: {
4639.toSorted((left, right) => left.localeCompare(right));
4740}
484142+function loadDocumentExtractorManifestRecords(params: {
43+config?: OpenClawConfig;
44+workspaceDir?: string;
45+env?: NodeJS.ProcessEnv;
46+}): readonly PluginManifestRecord[] {
47+return loadPluginManifestRegistryForPluginRegistry({
48+config: params.config,
49+workspaceDir: params.workspaceDir,
50+env: params.env,
51+includeDisabled: true,
52+}).plugins;
53+}
54+4955function resolveEnabledBundledDocumentExtractorPlugins(params: {
5056config?: OpenClawConfig;
5157workspaceDir?: string;
@@ -55,6 +61,15 @@ function resolveEnabledBundledDocumentExtractorPlugins(params: {
5561if (params.config?.plugins?.enabled === false) {
5662return [];
5763}
64+let manifestRecords: readonly PluginManifestRecord[] | undefined;
65+const loadManifestRecords = (config?: OpenClawConfig) => {
66+manifestRecords ??= loadDocumentExtractorManifestRecords({
67+ config,
68+workspaceDir: params.workspaceDir,
69+env: params.env,
70+});
71+return manifestRecords;
72+};
58735974const activation = resolveBundledPluginCompatibleLoadValues({
6075rawConfig: params.config,
@@ -67,20 +82,19 @@ function resolveEnabledBundledDocumentExtractorPlugins(params: {
6782enablement: "allowlist",
6883vitest: true,
6984},
70-resolveCompatPluginIds: resolveBundledDocumentExtractorCompatPluginIds,
85+resolveCompatPluginIds: (compatParams) =>
86+listDocumentExtractorPluginIds({
87+plugins: loadManifestRecords(compatParams.config),
88+onlyPluginIds: compatParams.onlyPluginIds,
89+}),
7190});
7291const normalizedPlugins = normalizePluginsConfig(activation.config?.plugins);
7392const activationSource = createPluginActivationSource({
7493config: activation.activationSourceConfig,
7594});
7695const onlyPluginIdSet =
7796params.onlyPluginIds && params.onlyPluginIds.length > 0 ? new Set(params.onlyPluginIds) : null;
78-return loadPluginManifestRegistryForPluginRegistry({
79-config: activation.config,
80-workspaceDir: params.workspaceDir,
81-env: params.env,
82-includeDisabled: true,
83-}).plugins.filter((plugin) => {
97+return loadManifestRecords(activation.config).filter((plugin) => {
8498if (
8599plugin.origin !== "bundled" ||
86100(onlyPluginIdSet && !onlyPluginIdSet.has(plugin.id)) ||
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。