mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 23:40:45 +00:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
|
import { resolveDefaultAgentWorkspaceDir } from "../agents/workspace.js";
|
|
import { loadConfig } from "../config/config.js";
|
|
import { createSubsystemLogger } from "../logging/subsystem.js";
|
|
import { loadOpenClawPlugins } from "./loader.js";
|
|
import { createPluginLoaderLogger } from "./logger.js";
|
|
import type { PluginRegistry } from "./registry.js";
|
|
|
|
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());
|
|
|
|
const registry = loadOpenClawPlugins({
|
|
config,
|
|
workspaceDir,
|
|
logger: createPluginLoaderLogger(log),
|
|
});
|
|
|
|
return {
|
|
workspaceDir,
|
|
...registry,
|
|
};
|
|
}
|