UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

108 lines (107 loc) 3.79 kB
import { r as defaultRuntime } from "./runtime-CF2WjnNZ.js"; import { d as readSourceConfigBestEffort } from "./io.runtime-B9iJRs3w.js"; import { t as VERSION } from "./version-v1kuAkGj.js"; import { c as normalizeUpdateChannel, f as resolveUpdateChannelDisplay } from "./update-channels-BcfztK6k.js"; import "./config-Cs0XXL3x.js"; import { r as theme } from "./theme-vjDs9tao.js"; import { a as listUpdateRuns, n as findActiveUpdateRun } from "./update-run-ledger-Dse_-g6v.js"; import { n as renderTable, t as getTerminalTableWidth } from "./table-DzN9OC44.js"; import { n as renderUpdateRunReport } from "./update-run-report-CEiRumC4.js"; import { i as formatGitInstallLabel, t as checkUpdateStatus } from "./update-check-CshgmMpJ.js"; import { c as parseTimeoutMsOrExit, m as resolveUpdateRoot } from "./shared-BVh4WwpA.js"; import { a as resolveUpdateAvailability, i as resolveStatusRegistryUpdateChannel, n as formatUpdateOneLiner, t as formatUpdateAvailableHint } from "./status.update-qWCUzIc2.js"; //#region src/cli/update-cli/status.ts /** Print update status in JSON or table form for scripts and humans. */ async function updateStatusCommand(opts) { const timeoutMs = parseTimeoutMsOrExit(opts.timeout); if (timeoutMs === null) return; const [root, config] = await Promise.all([resolveUpdateRoot(), readSourceConfigBestEffort()]); const configChannel = normalizeUpdateChannel(config.update?.channel); const update = await checkUpdateStatus({ root, timeoutMs: timeoutMs ?? 3500, fetchGit: true, useDetachedDevUpstream: configChannel === "dev", includeRegistry: true, resolveRegistryChannel: ({ installKind, git }) => resolveStatusRegistryUpdateChannel({ configChannel, installKind, git }) }); const channelInfo = resolveUpdateChannelDisplay({ configChannel, currentVersion: VERSION, installKind: update.installKind, gitTag: update.git?.tag ?? null, gitBranch: update.git?.branch ?? null }); const channelLabel = channelInfo.label; const updateAvailability = resolveUpdateAvailability(update); const activeRun = findActiveUpdateRun(); const lastRun = listUpdateRuns({ limit: 1 })[0]; if (opts.json) { defaultRuntime.writeJson({ update, channel: { value: channelInfo.channel, source: channelInfo.source, label: channelLabel, config: configChannel }, availability: updateAvailability, ...activeRun ? { activeRun } : {}, ...lastRun ? { lastRun } : {} }); return; } const gitLabel = formatGitInstallLabel(update); const updateLine = formatUpdateOneLiner(update).replace(/^Update:\s*/i, ""); const tableWidth = getTerminalTableWidth(); const rows = [ { Item: "Install", Value: update.installKind === "git" ? `git (${update.root ?? "unknown"})` : update.installKind === "package" ? update.packageManager : "unknown" }, { Item: "Channel", Value: channelLabel }, ...gitLabel ? [{ Item: "Git", Value: gitLabel }] : [], { Item: "Update", Value: updateAvailability.available ? theme.warn(`available · ${updateLine}`) : updateLine } ]; defaultRuntime.log(theme.heading("OpenClaw update status")); defaultRuntime.log(""); defaultRuntime.log(renderTable({ width: tableWidth, columns: [{ key: "Item", header: "Item", minWidth: 10 }, { key: "Value", header: "Value", flex: true, minWidth: 24 }], rows }).trimEnd()); defaultRuntime.log(""); const run = activeRun ?? lastRun; if (run) { const report = renderUpdateRunReport(run); defaultRuntime.log(report.headline); for (const line of report.lines) defaultRuntime.log(line); defaultRuntime.log(""); } const updateHint = formatUpdateAvailableHint(update); if (updateHint) defaultRuntime.log(theme.warn(updateHint)); } //#endregion export { updateStatusCommand };