UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

71 lines (70 loc) 3.28 kB
import { n as collectUniqueCommandDescriptors } from "./command-descriptor-utils-DII8rwLT.js"; import { t as normalizePluginPolicyId } from "./plugin-policy-id-4QxPdFqy.js"; import { i as isInstalledPluginEnabled } from "./installed-plugin-index-wrDsjyMD.js"; import { r as hasKind } from "./slots-CQdAEuat.js"; import { l as normalizePluginsConfig, p as resolveMemorySlotDecision } from "./config-state-BkU1frVq.js"; import { h as validatePluginConfig } from "./loader-shared-_jCvj6B_.js"; import { t as buildPluginRuntimeLoadOptions } from "./load-context-BdeWeJHL.js"; import { t as resolvePluginRuntimeLoadContext } from "./load-context.resolve-O967gh1f.js"; //#region src/plugins/cli-root-descriptors.ts /** Resolves root CLI help from process-stable manifests before plugin code loads. */ const quietLogger = { info: () => {}, warn: () => {}, error: () => {}, debug: () => {} }; async function getPluginCliCommandDescriptors(cfg, env, loaderOptions) { const descriptorGroups = []; try { const context = resolvePluginRuntimeLoadContext({ config: cfg, env, logger: quietLogger }); const snapshot = context.metadataSnapshot; if (!snapshot) return []; const legacyExternalPluginIds = []; const seenPluginIds = /* @__PURE__ */ new Set(); let selectedMemoryPluginId = null; const memorySlot = context.config.plugins?.slots?.memory; const normalizedConfig = normalizePluginsConfig(context.config.plugins); const sourceConfig = normalizePluginsConfig(context.activationSourceConfig.plugins); for (const plugin of snapshot.plugins) { if (seenPluginIds.has(plugin.id)) continue; seenPluginIds.add(plugin.id); if (!isInstalledPluginEnabled(snapshot.index, plugin.id, context.config, context.env)) continue; const pluginConfig = normalizedConfig.entries[normalizePluginPolicyId(plugin.id)]?.config; if (!validatePluginConfig({ origin: plugin.origin, schema: plugin.configSchema, cacheKey: plugin.schemaCacheKey, value: pluginConfig, sourceValue: plugin.configContracts?.secretInputs ? sourceConfig.entries[normalizePluginPolicyId(plugin.id)]?.config : void 0 }).ok) continue; const memoryDecision = resolveMemorySlotDecision({ id: plugin.id, kind: plugin.kind, slot: memorySlot, selectedId: selectedMemoryPluginId }); if (!memoryDecision.enabled) continue; if (memoryDecision.selected && hasKind(plugin.kind, "memory")) selectedMemoryPluginId = plugin.id; if (plugin.cliCommands) descriptorGroups.push(plugin.cliCommands); else if (plugin.origin !== "bundled" && plugin.format !== "bundle") legacyExternalPluginIds.push(plugin.id); } if (legacyExternalPluginIds.length > 0) { const { loadOpenClawPluginCliRegistry } = await import("./plugins/loader.js"); const registry = await loadOpenClawPluginCliRegistry(buildPluginRuntimeLoadOptions(context, { ...loaderOptions, onlyPluginIds: legacyExternalPluginIds })); descriptorGroups.push(...registry.cliRegistrars.filter((entry) => (entry.parentPath ?? []).length === 0).map((entry) => entry.descriptors)); } return collectUniqueCommandDescriptors(descriptorGroups); } catch { return collectUniqueCommandDescriptors(descriptorGroups); } } //#endregion export { getPluginCliCommandDescriptors as t };