openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
97 lines (96 loc) • 3.97 kB
JavaScript
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 };