Files
openclaw/src/plugins/status.ts

36 lines
1.1 KiB
TypeScript
Raw Normal View History

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";
import { createSubsystemLogger } from "../logging/subsystem.js";
2026-01-30 03:15:10 +01:00
import { loadOpenClawPlugins } from "./loader.js";
import { createPluginLoaderLogger } from "./logger.js";
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,
logger: createPluginLoaderLogger(log),
2026-01-11 12:11:12 +00:00
});
return {
workspaceDir,
...registry,
};
}