UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

27 lines (26 loc) 1.72 kB
import { n as normalizeProfileName } from "./profile-utils-Bkq2PPxE.js"; import { n as resolveCliName, t as replaceCliName } from "./cli-name-CVj-3DWf.js"; //#region src/cli/command-format.ts const CLI_PREFIX_RE = /^(?:pnpm|npm|bunx|npx)\s+openclaw\b|^openclaw\b/; const CONTAINER_FLAG_RE = /(?:^|\s)--container(?:\s|=|$)/; const PROFILE_FLAG_RE = /(?:^|\s)--profile(?:\s|=|$)/; const DEV_FLAG_RE = /(?:^|\s)--dev(?:\s|$)/; const UPDATE_RE = /^(?:\s+--(?:dev|no-color|(?:profile|log-level)[=\s]+\S+))*\s+update(?:\s|$)/; const CONTAINER_HINT_RE = /^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$/; /** Add active root options to a displayed command without duplicating explicit flags. */ function formatCliCommand(command, env = process.env) { const cliName = resolveCliName(); const normalizedCommand = replaceCliName(command, cliName); const rawContainer = env.OPENCLAW_CONTAINER_HINT?.trim(); const container = rawContainer && CONTAINER_HINT_RE.test(rawContainer) ? rawContainer : void 0; const profile = normalizeProfileName(env.OPENCLAW_PROFILE); if (!container && !profile) return normalizedCommand; if (!CLI_PREFIX_RE.test(normalizedCommand)) return normalizedCommand; const additions = []; if (container && !CONTAINER_FLAG_RE.test(normalizedCommand) && !UPDATE_RE.test(normalizedCommand.replace(CLI_PREFIX_RE, ""))) additions.push(`--container ${container}`); if (!container && profile && !PROFILE_FLAG_RE.test(normalizedCommand) && !DEV_FLAG_RE.test(normalizedCommand)) additions.push(`--profile ${profile}`); if (additions.length === 0) return normalizedCommand; return normalizedCommand.replace(CLI_PREFIX_RE, (match) => `${match} ${additions.join(" ")}`); } //#endregion export { formatCliCommand as t };