




















@@ -1,3 +1,4 @@
1+import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
12import { resolveDefaultAgentWorkspaceDir } from "../agents/workspace.js";
23import { getRuntimeConfig } from "../config/config.js";
34import type { OpenClawConfig } from "../config/types.openclaw.js";
@@ -24,6 +25,7 @@ import type { PluginManifestRecord } from "./manifest-registry.js";
2425import type { PluginDiagnostic } from "./manifest-types.js";
2526import { tracePluginLifecyclePhase } from "./plugin-lifecycle-trace.js";
2627import {
28+loadPluginManifestRegistryForPluginRegistry,
2729loadPluginRegistrySnapshotWithMetadata,
2830type PluginRegistrySnapshotDiagnostic,
2931type PluginRegistrySnapshotSource,
@@ -167,6 +169,7 @@ type PluginReportParams = {
167169/** Use an explicit env when plugin roots should resolve independently from process.env. */
168170env?: NodeJS.ProcessEnv;
169171logger?: PluginLogger;
172+resolvedConfig?: OpenClawConfig;
170173};
171174172175function buildPluginRecordFromInstalledIndex(
@@ -259,21 +262,34 @@ function buildPluginReport(
259262params: PluginReportParams | undefined,
260263loadModules: boolean,
261264): PluginStatusReport {
265+const rawConfig = params?.config ?? getRuntimeConfig();
266+const initialWorkspaceDir =
267+params?.workspaceDir ??
268+resolveAgentWorkspaceDir(rawConfig, resolveDefaultAgentId(rawConfig), params?.env);
269+const manifestRegistry = !loadModules
270+ ? loadPluginManifestRegistryForPluginRegistry({
271+config: rawConfig,
272+env: params?.env,
273+workspaceDir: initialWorkspaceDir,
274+includeDisabled: true,
275+})
276+ : undefined;
262277const baseContext = resolvePluginRuntimeLoadContext({
263-config: params?.config ?? getRuntimeConfig(),
278+config: rawConfig,
264279env: params?.env,
265280logger: params?.logger,
266-workspaceDir: params?.workspaceDir,
281+workspaceDir: initialWorkspaceDir,
282+ manifestRegistry,
267283});
268-const workspaceDir = baseContext.workspaceDir ?? resolveDefaultAgentWorkspaceDir();
284+const workspaceDir =
285+baseContext.workspaceDir ?? initialWorkspaceDir ?? resolveDefaultAgentWorkspaceDir();
269286const context =
270287workspaceDir === baseContext.workspaceDir
271288 ? baseContext
272289 : {
273290 ...baseContext,
274291 workspaceDir,
275292};
276-const rawConfig = context.rawConfig;
277293const config = context.config;
278294279295// Apply bundled-provider allowlist compat so that `plugins list` and `doctor`
@@ -286,6 +302,7 @@ function buildPluginReport(
286302 config,
287303 workspaceDir,
288304env: params?.env,
305+ manifestRegistry,
289306});
290307const effectiveConfig = withBundledPluginAllowlistCompat({
291308 config,
@@ -336,6 +353,8 @@ function buildPluginReport(
336353logger: params?.logger,
337354loadModules: false,
338355 onlyPluginIds,
356+ manifestRegistry,
357+runtimeContext: context,
339358}),
340359{ surface: "status", onlyPluginCount: onlyPluginIds?.length },
341360);
@@ -376,14 +395,17 @@ export function buildPluginInspectReport(params: {
376395env?: NodeJS.ProcessEnv;
377396logger?: PluginLogger;
378397report?: PluginStatusReport;
398+resolvedConfig?: OpenClawConfig;
379399}): PluginInspectReport | null {
380400const rawConfig = params.config ?? getRuntimeConfig();
381-const config = resolvePluginRuntimeLoadContext({
382-config: rawConfig,
383-env: params.env,
384-logger: params.logger,
385-workspaceDir: params.workspaceDir,
386-}).config;
401+const config =
402+params.resolvedConfig ??
403+resolvePluginRuntimeLoadContext({
404+config: rawConfig,
405+env: params.env,
406+logger: params.logger,
407+workspaceDir: params.workspaceDir,
408+}).config;
387409const report =
388410params.report ??
389411buildPluginDiagnosticsReport({
@@ -508,6 +530,12 @@ export function buildAllPluginInspectReports(params?: {
508530report?: PluginStatusReport;
509531}): PluginInspectReport[] {
510532const rawConfig = params?.config ?? getRuntimeConfig();
533+const config = resolvePluginRuntimeLoadContext({
534+config: rawConfig,
535+env: params?.env,
536+logger: params?.logger,
537+workspaceDir: params?.workspaceDir,
538+}).config;
511539const report =
512540params?.report ??
513541buildPluginDiagnosticsReport({
@@ -523,6 +551,9 @@ export function buildAllPluginInspectReports(params?: {
523551id: plugin.id,
524552config: rawConfig,
525553logger: params?.logger,
554+workspaceDir: params?.workspaceDir,
555+env: params?.env,
556+resolvedConfig: config,
526557 report,
527558}),
528559)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。