2026-01-14 14:31:43 +00:00
|
|
|
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
2026-01-11 12:11:12 +00:00
|
|
|
import { resolveDefaultAgentWorkspaceDir } from "../agents/workspace.js";
|
|
|
|
|
import { loadConfig } from "../config/config.js";
|
2026-01-18 23:24:17 +00:00
|
|
|
import { createSubsystemLogger } from "../logging/subsystem.js";
|
2026-01-30 03:15:10 +01:00
|
|
|
import { loadOpenClawPlugins } from "./loader.js";
|
2026-02-18 23:47:59 +00:00
|
|
|
import { createPluginLoaderLogger } from "./logger.js";
|
2026-02-18 01:34:35 +00:00
|
|
|
import type { PluginRegistry } from "./registry.js";
|
2026-01-11 12:11:12 +00:00
|
|
|
|
|
|
|
|
export type PluginStatusReport = PluginRegistry & {
|
|
|
|
|
workspaceDir?: string;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const log = createSubsystemLogger("plugins");
|
|
|
|
|
|
|
|
|
|
export function buildPluginStatusReport(params?: {
|
|
|
|
|
config?: ReturnType<typeof loadConfig>;
|
|
|
|
|
workspaceDir?: string;
|
|
|
|
|
}): PluginStatusReport {
|
|
|
|
|
const config = params?.config ?? loadConfig();
|
|
|
|
|
const workspaceDir = params?.workspaceDir
|
|
|
|
|
? params.workspaceDir
|
|
|
|
|
: (resolveAgentWorkspaceDir(config, resolveDefaultAgentId(config)) ??
|
|
|
|
|
resolveDefaultAgentWorkspaceDir());
|
|
|
|
|
|
2026-01-30 03:15:10 +01:00
|
|
|
const registry = loadOpenClawPlugins({
|
2026-01-11 12:11:12 +00:00
|
|
|
config,
|
|
|
|
|
workspaceDir,
|
2026-02-18 23:47:59 +00:00
|
|
|
logger: createPluginLoaderLogger(log),
|
2026-01-11 12:11:12 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
workspaceDir,
|
|
|
|
|
...registry,
|
|
|
|
|
};
|
|
|
|
|
}
|