UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

280 lines (279 loc) 9.89 kB
import { _ as getSubCliEntries$1, y as loadPrivateQaCliModule } from "./argv-CnfL__6a.js"; import { t as resolveCliArgvInvocation } from "./argv-invocation-CxGUjPqA.js"; import { t as createLazyImportLoader } from "./lazy-promise-BONnzNfb.js"; import { i as shouldRegisterPrimarySubcommandOnly, n as shouldEagerRegisterSubcommands } from "./command-registration-policy-Bd8lEuIK.js"; import { t as resolveCliCommandPathPolicy } from "./command-path-policy-B0jd3lsl.js"; import { t as removeCommandByName } from "./command-tree-CA1ToIBK.js"; import { i as registerCommandGroups, r as registerCommandGroupByName } from "./register-command-groups-DKyoKsjD.js"; //#region src/cli/program/command-group-descriptors.ts function buildDescriptorIndex(descriptors) { return new Map(descriptors.map((descriptor) => [descriptor.name, descriptor])); } /** Resolve named command-group specs into descriptor-backed entries. */ function resolveCommandGroupEntries(descriptors, specs) { const descriptorsByName = buildDescriptorIndex(descriptors); return specs.map((spec) => ({ placeholders: spec.commandNames.map((name) => { const descriptor = descriptorsByName.get(name); if (!descriptor) throw new Error(`Unknown command descriptor: ${name}`); return descriptor; }), register: spec.register })); } /** Build lazy command-group entries with a mapped program registrar. */ function buildCommandGroupEntries(descriptors, specs, mapRegister) { return resolveCommandGroupEntries(descriptors, specs).map((entry) => ({ placeholders: entry.placeholders, register: mapRegister(entry.register) })); } /** Define a lazy group that imports its module at registration time. */ function defineImportedCommandGroupSpec(commandNames, loadModule, register) { return { commandNames, register: async (args) => { await register(await loadModule(), args); } }; } /** Map program-level imported command definitions to lazy specs with export validation. */ function defineImportedProgramCommandGroupSpecs(definitions) { return definitions.map((definition) => ({ commandNames: definition.commandNames, register: async (program) => { const register = (await definition.loadModule())[definition.exportName]; if (typeof register !== "function") throw new Error(`Missing program command registrar: ${definition.exportName}`); await register(program); } })); } //#endregion //#region src/cli/program/register.subclis-core.ts const pluginCliLoader = createLazyImportLoader(() => import("./cli-DNuRZvyd.js")); function shouldRegisterGatewayRunOnly(name, argv) { if (name !== "gateway") return false; const invocation = resolveCliArgvInvocation(argv); if (invocation.hasHelpOrVersion || invocation.commandPath[0] !== "gateway") return false; return invocation.commandPath.length === 1 || invocation.commandPath[1] === "run"; } async function registerGatewayRunOnly(program) { const { addGatewayRunCommand } = await import("./run-command-CXNlgGlP.js"); removeCommandByName(program, "gateway"); addGatewayRunCommand(addGatewayRunCommand(program.command("gateway").description("Run, inspect, and query the WebSocket Gateway")).command("run").description("Run the WebSocket Gateway (foreground)")); } async function registerSubCliWithPluginCommands(program, argv, registerSubCli, pluginCliPosition) { const invocation = resolveCliArgvInvocation(argv); const shouldRegisterPluginCommands = !invocation.hasHelpOrVersion && resolveCliCommandPathPolicy(invocation.commandPath).loadPlugins !== "never"; if (pluginCliPosition === "before" && shouldRegisterPluginCommands) { const { registerPluginCliCommandsFromValidatedConfig } = await pluginCliLoader.load(); await registerPluginCliCommandsFromValidatedConfig(program); } await registerSubCli(); if (pluginCliPosition === "after" && shouldRegisterPluginCommands) { const { registerPluginCliCommandsFromValidatedConfig } = await pluginCliLoader.load(); await registerPluginCliCommandsFromValidatedConfig(program); } } const entrySpecs = [ ...defineImportedProgramCommandGroupSpecs([ { commandNames: ["acp"], loadModule: () => import("./acp-cli-BD5WFKxX.js"), exportName: "registerAcpCli" }, { commandNames: ["gateway"], loadModule: () => import("./gateway-cli-CgE8ddDH.js"), exportName: "registerGatewayCli" }, { commandNames: ["daemon"], loadModule: () => import("./cli/daemon-cli.js"), exportName: "registerDaemonCli" }, { commandNames: ["logs"], loadModule: () => import("./logs-cli-CIR2Qi1q.js"), exportName: "registerLogsCli" }, { commandNames: ["system"], loadModule: () => import("./system-cli-DusiR7F-.js"), exportName: "registerSystemCli" }, { commandNames: ["models"], loadModule: () => import("./models-cli-BLJK5I_B.js"), exportName: "registerModelsCli" }, { commandNames: ["infer", "capability"], loadModule: () => import("./capability-cli-Di_AceEW.js"), exportName: "registerCapabilityCli" }, { commandNames: ["approvals"], loadModule: () => import("./exec-approvals-cli-DU-QyiGn.js"), exportName: "registerExecApprovalsCli" }, { commandNames: ["exec-policy"], loadModule: () => import("./exec-policy-cli-DOPvpC_R.js"), exportName: "registerExecPolicyCli" } ]), { commandNames: ["nodes"], register: async (program, argv) => { await (await import("./nodes-cli-BL4_qyIf.js")).registerNodesCli(program, argv); } }, ...defineImportedProgramCommandGroupSpecs([ { commandNames: ["devices"], loadModule: () => import("./devices-cli-RqxH3bZl.js"), exportName: "registerDevicesCli" }, { commandNames: ["node"], loadModule: () => import("./node-cli-C5q_gT_O.js"), exportName: "registerNodeCli" }, { commandNames: ["sandbox"], loadModule: () => import("./sandbox-cli-CfsqjLK7.js"), exportName: "registerSandboxCli" }, { commandNames: [ "tui", "terminal", "chat" ], loadModule: () => import("./tui-cli-BMUFdxBu.js"), exportName: "registerTuiCli" }, { commandNames: ["cron"], loadModule: () => import("./cron-cli-BH_fhUxT.js"), exportName: "registerCronCli" }, { commandNames: ["dns"], loadModule: () => import("./dns-cli-rX9O0C4a.js"), exportName: "registerDnsCli" }, { commandNames: ["docs"], loadModule: () => import("./docs-cli-CgoivJrk.js"), exportName: "registerDocsCli" }, { commandNames: ["qa"], loadModule: loadPrivateQaCliModule, exportName: "registerQaLabCli" }, { commandNames: ["proxy"], loadModule: () => import("./proxy-cli-C2noF5s-.js"), exportName: "registerProxyCli" }, { commandNames: ["hooks"], loadModule: () => import("./hooks-cli-CMKMNvkT.js"), exportName: "registerHooksCli" }, { commandNames: ["webhooks"], loadModule: () => import("./webhooks-cli-EHS9DUCt.js"), exportName: "registerWebhooksCli" }, { commandNames: ["qr"], loadModule: () => import("./qr-cli-CVz9Ciqr.js"), exportName: "registerQrCli" }, { commandNames: ["clawbot"], loadModule: () => import("./clawbot-cli-qA5SLD85.js"), exportName: "registerClawbotCli" } ]), { commandNames: ["pairing"], register: async (program, argv) => { await registerSubCliWithPluginCommands(program, argv, async () => { (await import("./pairing-cli-Cj5cm9za.js")).registerPairingCli(program); }, "before"); } }, { commandNames: ["plugins"], register: async (program, argv) => { await registerSubCliWithPluginCommands(program, argv, async () => { (await import("./plugins-cli-Jk9Y8nw9.js")).registerPluginsCli(program); }, "after"); } }, { commandNames: ["channels"], register: async (program, argv, context) => { await (await import("./channels-cli-UkSxHf9D.js")).registerChannelsCli(program, argv, { includeSetupOptions: context.purpose === "completion" }); } }, ...defineImportedProgramCommandGroupSpecs([ { commandNames: ["directory"], loadModule: () => import("./directory-cli-BgmHFRix.js"), exportName: "registerDirectoryCli" }, { commandNames: ["security"], loadModule: () => import("./security-cli-C4A2vlIr.js"), exportName: "registerSecurityCli" }, { commandNames: ["secrets"], loadModule: () => import("./secrets-cli-D8Cr85ww.js"), exportName: "registerSecretsCli" }, { commandNames: ["skills"], loadModule: () => import("./skills-cli-Cr7Vh8Er.js"), exportName: "registerSkillsCli" }, { commandNames: ["update"], loadModule: () => import("./update-cli-DNPI8hWy.js"), exportName: "registerUpdateCli" } ]) ]; function resolveSubCliCommandGroups(argv, context = {}) { const descriptors = getSubCliEntries$1(); const descriptorNames = new Set(descriptors.map((descriptor) => descriptor.name)); return buildCommandGroupEntries(descriptors, entrySpecs.filter((spec) => spec.commandNames.every((name) => descriptorNames.has(name))), (register) => async (program) => { await register(program, argv, context); }); } function getSubCliEntries() { return getSubCliEntries$1(); } async function registerSubCliByName(program, name, argv = process.argv, context = {}) { if (shouldRegisterGatewayRunOnly(name, argv)) { await registerGatewayRunOnly(program); return true; } return registerCommandGroupByName(program, resolveSubCliCommandGroups(argv, context), name); } function registerSubCliCommands(program, argv = process.argv) { const { primary } = resolveCliArgvInvocation(argv); registerCommandGroups(program, resolveSubCliCommandGroups(argv), { eager: shouldEagerRegisterSubcommands(), primary, registerPrimaryOnly: Boolean(primary && shouldRegisterPrimarySubcommandOnly(argv)) }); } //#endregion export { defineImportedCommandGroupSpec as a, buildCommandGroupEntries as i, registerSubCliByName as n, defineImportedProgramCommandGroupSpecs as o, registerSubCliCommands as r, getSubCliEntries as t };