| import { createSubsystemLogger } from "../logging/subsystem.js"; | |
| import { loadOpenClawPlugins, type PluginLoadOptions } from "./loader.js"; | |
| import { createPluginLoaderLogger } from "./logger.js"; | |
| import type { ProviderPlugin } from "./types.js"; | |
| const log = createSubsystemLogger("plugins"); | |
| export function resolvePluginProviders(params: { | |
| config?: PluginLoadOptions["config"]; | |
| workspaceDir?: string; | |
| /** Use an explicit env when plugin roots should resolve independently from process.env. */ | |
| env?: PluginLoadOptions["env"]; | |
| }): ProviderPlugin[] { | |
| const registry = loadOpenClawPlugins({ | |
| config: params.config, | |
| workspaceDir: params.workspaceDir, | |
| env: params.env, | |
| logger: createPluginLoaderLogger(log), | |
| }); | |
| return registry.providers.map((entry) => ({ | |
| ...entry.provider, | |
| pluginId: entry.pluginId, | |
| })); | |
| } | |