

























@@ -73,6 +73,52 @@ function shouldUseInstalledManifestRegistryCache(params: {
7373return !params.env.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE?.trim();
7474}
757576+function buildInstalledManifestRegistryIndexKey(index: InstalledPluginIndex) {
77+return {
78+version: index.version,
79+hostContractVersion: index.hostContractVersion,
80+compatRegistryVersion: index.compatRegistryVersion,
81+migrationVersion: index.migrationVersion,
82+policyHash: index.policyHash,
83+installRecords: index.installRecords,
84+diagnostics: index.diagnostics,
85+plugins: index.plugins.map((record) => {
86+const packageJsonPath = resolvePackageJsonPath(record);
87+return {
88+pluginId: record.pluginId,
89+packageName: record.packageName,
90+packageVersion: record.packageVersion,
91+installRecord: record.installRecord,
92+installRecordHash: record.installRecordHash,
93+packageInstall: record.packageInstall,
94+packageChannel: record.packageChannel,
95+manifestPath: record.manifestPath,
96+manifestHash: record.manifestHash,
97+manifestFile: safeFileSignature(record.manifestPath),
98+format: record.format,
99+bundleFormat: record.bundleFormat,
100+source: record.source,
101+setupSource: record.setupSource,
102+packageJson: record.packageJson,
103+packageJsonFile: safeFileSignature(packageJsonPath),
104+rootDir: record.rootDir,
105+origin: record.origin,
106+enabled: record.enabled,
107+enabledByDefault: record.enabledByDefault,
108+syntheticAuthRefs: record.syntheticAuthRefs,
109+startup: record.startup,
110+compat: record.compat,
111+};
112+}),
113+};
114+}
115+116+export function resolveInstalledManifestRegistryIndexFingerprint(
117+index: InstalledPluginIndex,
118+): string {
119+return hashJson(buildInstalledManifestRegistryIndexKey(index));
120+}
121+76122function buildInstalledManifestRegistryCacheKey(params: {
77123index: InstalledPluginIndex;
78124config?: OpenClawConfig;
@@ -82,43 +128,7 @@ function buildInstalledManifestRegistryCacheKey(params: {
82128includeDisabled?: boolean;
83129}): string {
84130return hashJson({
85-index: {
86-version: params.index.version,
87-hostContractVersion: params.index.hostContractVersion,
88-compatRegistryVersion: params.index.compatRegistryVersion,
89-migrationVersion: params.index.migrationVersion,
90-policyHash: params.index.policyHash,
91-installRecords: params.index.installRecords,
92-diagnostics: params.index.diagnostics,
93-plugins: params.index.plugins.map((record) => {
94-const packageJsonPath = resolvePackageJsonPath(record);
95-return {
96-pluginId: record.pluginId,
97-packageName: record.packageName,
98-packageVersion: record.packageVersion,
99-installRecord: record.installRecord,
100-installRecordHash: record.installRecordHash,
101-packageInstall: record.packageInstall,
102-packageChannel: record.packageChannel,
103-manifestPath: record.manifestPath,
104-manifestHash: record.manifestHash,
105-manifestFile: safeFileSignature(record.manifestPath),
106-format: record.format,
107-bundleFormat: record.bundleFormat,
108-source: record.source,
109-setupSource: record.setupSource,
110-packageJson: record.packageJson,
111-packageJsonFile: safeFileSignature(packageJsonPath),
112-rootDir: record.rootDir,
113-origin: record.origin,
114-enabled: record.enabled,
115-enabledByDefault: record.enabledByDefault,
116-syntheticAuthRefs: record.syntheticAuthRefs,
117-startup: record.startup,
118-compat: record.compat,
119-};
120-}),
121-},
131+index: buildInstalledManifestRegistryIndexKey(params.index),
122132request: {
123133workspaceDir: params.workspaceDir,
124134pluginIds: normalizePluginIdFilter(params.pluginIds),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。