UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

97 lines (96 loc) 3.97 kB
import { m as resolveAgentWorkspaceDir, y as resolveDefaultAgentId } from "./agent-scope-config-DcbEhP0R.js"; import { t as createSubsystemLogger } from "./subsystem-Dy2tqXOS.js"; import "./agent-scope-DbtJyKUL.js"; import { d as resolveDiscoverableScopedChannelPluginIds, l as resolveConfiguredChannelPluginIds } from "./channel-presence-policy-_eDSlojg.js"; import { t as applyPluginAutoEnable } from "./plugin-auto-enable-Tv_C18cS.js"; import { n as loadPluginRegistryHandle } from "./loader-DPiOPJjR.js"; import "./channel-plugin-ids-DIyH-LxI.js"; import { t as ensureOnboardingPluginInstalled } from "./onboarding-plugin-install-OPRMqWnh.js"; import { t as getTrustedChannelPluginCatalogEntry } from "./trusted-catalog-DHqhhA7d.js"; //#region src/commands/channel-setup/plugin-install.ts function toOnboardingPluginInstallEntry(entry) { return { pluginId: entry.pluginId ?? entry.id, label: entry.meta.label, install: entry.install, ...entry.trustedSourceLinkedOfficialInstall ? { trustedSourceLinkedOfficialInstall: true } : {} }; } /** Install or reuse the plugin package required by a trusted channel catalog entry. */ async function ensureChannelSetupPluginInstalled(params) { const result = await ensureOnboardingPluginInstalled({ cfg: params.cfg, entry: toOnboardingPluginInstallEntry(params.entry), prompter: params.prompter, runtime: params.runtime, workspaceDir: params.workspaceDir, ...params.promptInstall !== void 0 ? { promptInstall: params.promptInstall } : {}, ...params.autoConfirmSingleSource !== void 0 ? { autoConfirmSingleSource: params.autoConfirmSingleSource } : {}, ...params.beforePersistentEffect ? { beforePersistentEffect: params.beforePersistentEffect } : {} }); return { cfg: result.cfg, installed: result.installed, pluginId: result.pluginId, status: result.status }; } function loadChannelSetupPluginRegistry(params) { const autoEnabled = applyPluginAutoEnable({ config: params.cfg, env: process.env }); const resolvedConfig = autoEnabled.config; const workspaceDir = params.workspaceDir ?? resolveAgentWorkspaceDir(resolvedConfig, resolveDefaultAgentId(resolvedConfig)); const onlyPluginIds = params.onlyPluginIds ?? resolveConfiguredChannelPluginIds({ config: resolvedConfig, activationSourceConfig: params.cfg, workspaceDir, env: process.env }); const log = createSubsystemLogger("plugins"); return loadPluginRegistryHandle({ config: resolvedConfig, activationSourceConfig: params.cfg, autoEnabledReasons: autoEnabled.autoEnabledReasons, workspaceDir, cache: false, logger: log, onlyPluginIds, includeSetupOnlyChannelPlugins: true, forceSetupOnlyChannelPlugins: params.forceSetupOnlyChannelPlugins, channelPluginLoadIntent: "setup" }); } function resolveScopedChannelPluginId(params) { const explicitPluginId = params.pluginId?.trim(); if (explicitPluginId) return explicitPluginId; return getTrustedChannelPluginCatalogEntry(params.channel, { cfg: params.cfg, workspaceDir: params.workspaceDir })?.pluginId ?? resolveUniqueManifestScopedChannelPluginId(params); } function resolveUniqueManifestScopedChannelPluginId(params) { const matches = resolveDiscoverableScopedChannelPluginIds({ config: params.cfg, channelIds: [params.channel], workspaceDir: params.workspaceDir, env: process.env }); return matches.length === 1 ? matches[0] : void 0; } /** Load an inactive setup-plugin registry snapshot for resolving a channel without side effects. */ function loadChannelSetupPluginRegistrySnapshotForChannel(params) { const scopedPluginId = resolveScopedChannelPluginId({ cfg: params.cfg, channel: params.channel, pluginId: params.pluginId, workspaceDir: params.workspaceDir }); return loadChannelSetupPluginRegistry({ ...params, ...scopedPluginId ? { onlyPluginIds: [scopedPluginId] } : {} }); } //#endregion export { loadChannelSetupPluginRegistrySnapshotForChannel as n, ensureChannelSetupPluginInstalled as t };