sealclaw 2026.5.63 → 2026.5.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/cli/run-main.js +4 -4
  3. package/dist/cli-startup-metadata.json +2 -2
  4. package/dist/{command-registry-CYh6FZBw.js → command-registry-BLn3Gg4Z.js} +2 -2
  5. package/dist/{command-registry-BLxcaskA.js → command-registry-Dz3BxCWe.js} +2 -2
  6. package/dist/{command-registry-core-DRByw1HB.js → command-registry-core-DDi0TLgQ.js} +1 -1
  7. package/dist/{completion-cli-ChOEHY23.js → completion-cli-ZFDo0Qe6.js} +2 -2
  8. package/dist/control-ui/assets/{agents-BFBvag5a.js → agents-BUEwfsU6.js} +3 -3
  9. package/dist/control-ui/assets/{channel-config-extras-Bajp-1z_.js → channel-config-extras-BDPX04sH.js} +2 -2
  10. package/dist/control-ui/assets/{channels-BosIwfoz.js → channels-CYwgsMNO.js} +2 -2
  11. package/dist/control-ui/assets/{cron-im-_3I8i.js → cron-C15n6oXG.js} +2 -2
  12. package/dist/control-ui/assets/{debug-hPLYITwM.js → debug-C0oZpvZz.js} +2 -2
  13. package/dist/control-ui/assets/{index-B74LLQ9t.js → index-CMLd9dJU.js} +5 -5
  14. package/dist/control-ui/assets/{instances-BVnaTdGH.js → instances-9EHyTeJF.js} +2 -2
  15. package/dist/control-ui/assets/{logs-DRvdkShy.js → logs-Ds-x33Eg.js} +2 -2
  16. package/dist/control-ui/assets/{nodes-CwV1gLNB.js → nodes-qumrVyVH.js} +2 -2
  17. package/dist/control-ui/assets/{sessions-Cp3p_Glu.js → sessions-BI0us7Y0.js} +2 -2
  18. package/dist/control-ui/assets/{skills-Dtqjqb_H.js → skills-NIfJDFKJ.js} +2 -2
  19. package/dist/control-ui/assets/{skills-shared-avJ7q-mG.js → skills-shared-BpE3cfCK.js} +2 -2
  20. package/dist/control-ui/assets/{string-coerce-D1V12xl0.js → string-coerce-Dctr50t9.js} +2 -2
  21. package/dist/control-ui/index.html +7 -7
  22. package/dist/{control-ui-T1AnZasm.js → control-ui-B4WWpCl3.js} +2 -0
  23. package/dist/{gateway-cli-m1nJGIpA.js → gateway-cli-Bp6Xmace.js} +1 -1
  24. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  25. package/dist/postinstall-inventory.json +28 -28
  26. package/dist/{program-DyvHjTc_.js → program-jDjvwHpd.js} +1 -1
  27. package/dist/register.subclis-DDRSGi5L.js +3 -0
  28. package/dist/{register.subclis-onDZnAxG.js → register.subclis-UKyvI2vk.js} +2 -2
  29. package/dist/{register.subclis-core-BDZCU1Zw.js → register.subclis-core-CQOWl-V3.js} +2 -2
  30. package/dist/{run-C_UmAyJs.js → run-Ctnpu5fg.js} +1 -1
  31. package/dist/{run-BcbB-JHR.js → run-DoSaJjRW.js} +1 -1
  32. package/dist/{server-DRo6XQmW.js → server-CbUiBi6d.js} +1 -1
  33. package/dist/{server-runtime-config-BvGFBIJ_.js → server-runtime-config-DPzGTRII.js} +1 -1
  34. package/dist/{server.impl-BmqzHOue.js → server.impl-7Rk7vcnk.js} +2 -2
  35. package/package.json +1 -1
  36. package/dist/register.subclis-hFc1g6Lg.js +0 -3
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.5.63",
2
+ "version": "2026.5.65",
3
3
  "commit": "c1dbfca80d6ffbfb419b79e0dff04ac2e4bc78d2",
4
- "builtAt": "2026-05-06T12:06:08.343Z"
4
+ "builtAt": "2026-05-07T02:12:43.029Z"
5
5
  }
@@ -155,7 +155,7 @@ async function tryRunGatewayRunFastPath(argv, startupTrace) {
155
155
  if (!isGatewayRunFastPathArgv(argv)) return false;
156
156
  const [{ Command }, { addGatewayRunCommand }, { VERSION }, { emitCliBanner }, { resolveCliStartupPolicy }] = await startupTrace.measure("gateway-run-imports", () => Promise.all([
157
157
  import("commander"),
158
- import("../run-C_UmAyJs.js"),
158
+ import("../run-Ctnpu5fg.js"),
159
159
  import("../version-BRAH1FvD.js"),
160
160
  import("../banner-DmmUHfOl.js"),
161
161
  import("../command-startup-policy-CEZSZ9KO.js")
@@ -407,7 +407,7 @@ async function runCli(argv = process$1.argv) {
407
407
  const { enableConsoleCapture } = await import("../logging-qeGO4CsR.js");
408
408
  enableConsoleCapture();
409
409
  const [{ buildProgram }, { formatUncaughtError }, { runFatalErrorHooks }, { installUnhandledRejectionHandler, isBenignUncaughtExceptionError, isUncaughtExceptionHandled }, { restoreTerminalState }] = await startupTrace.measure("core-imports", () => Promise.all([
410
- import("../program-DyvHjTc_.js"),
410
+ import("../program-jDjvwHpd.js"),
411
411
  import("../infra/errors.js"),
412
412
  import("../fatal-error-hooks-DxqbkWSf.js"),
413
413
  import("../unhandled-rejections-DoVxM7m1.js"),
@@ -435,10 +435,10 @@ async function runCli(argv = process$1.argv) {
435
435
  const { getProgramContext } = await import("../program-context-C5K8gZF9.js");
436
436
  const ctx = getProgramContext(program);
437
437
  if (ctx) {
438
- const { registerCoreCliByName } = await import("../command-registry-CYh6FZBw.js");
438
+ const { registerCoreCliByName } = await import("../command-registry-BLn3Gg4Z.js");
439
439
  await registerCoreCliByName(program, ctx, primary, parseArgv);
440
440
  }
441
- const { registerSubCliByName } = await import("../register.subclis-hFc1g6Lg.js");
441
+ const { registerSubCliByName } = await import("../register.subclis-DDRSGi5L.js");
442
442
  await registerSubCliByName(program, primary, parseArgv);
443
443
  });
444
444
  if (!shouldSkipPluginCommandRegistration({
@@ -28,6 +28,6 @@
28
28
  "channelCatalogSignature": "2caae4c55233549d9d23dd838fe15f6d8b5fbe75",
29
29
  "rootHelpBundleSignature": "c99d0f137791e1b766754b2755b4f7c4fb0a6648",
30
30
  "browserHelpSourceSignature": "842d8a5c425abf1a77cb0ecfe64c9550e2b1535b",
31
- "browserHelpText": "\n🦞 OpenClaw 0.0.0 (c1dbfca) — Your second brain, except this one actually remembers where you left things.\n\nUsage: openclaw browser [options] [command]\n\nManage OpenClaw's dedicated browser (Chrome/Chromium)\n\nOptions:\n --browser-profile <name> Browser profile name (default from config)\n --expect-final Wait for final response (agent) (default: false)\n -h, --help Display help for command\n --json Output machine-readable JSON (default: false)\n --timeout <ms> Timeout in ms (default: \"30000\")\n --token <token> Gateway token (if required)\n --url <url> Gateway WebSocket URL (defaults to\n gateway.remote.url when configured)\n\nCommands:\n click Click an element by ref from snapshot\n click-coords Click viewport coordinates\n close Close a tab (target id optional)\n console Get recent console messages\n cookies Read/write cookies\n create-profile Create a new browser profile\n delete-profile Delete a browser profile\n dialog Arm the next modal dialog (alert/confirm/prompt)\n doctor Check browser plugin readiness\n download Click a ref and save the resulting download\n drag Drag from one ref to another\n errors Get recent page errors\n evaluate Evaluate a function against the page or a ref\n fill Fill a form with JSON field descriptors\n focus Focus a tab by target id, tab id, label, or unique\n target id prefix\n highlight Highlight an element by ref\n hover Hover an element by ai ref\n navigate Navigate the current tab to a URL\n open Open a URL in a new tab\n pdf Save page as PDF\n press Press a key\n profiles List all browser profiles\n requests Get recent network requests (best-effort)\n reset-profile Reset browser profile (moves it to Trash)\n resize Resize the viewport\n responsebody Wait for a network response and return its body\n screenshot Capture a screenshot (MEDIA:<path>)\n scrollintoview Scroll an element into view by ref from snapshot\n select Select option(s) in a select element\n set Browser environment settings\n snapshot Capture a snapshot (default: ai; aria is the\n accessibility tree)\n start Start the browser (no-op if already running)\n status Show browser status\n stop Stop the browser (best-effort)\n storage Read/write localStorage/sessionStorage\n tab Tab shortcuts (index-based)\n tabs List open tabs\n trace Record a Playwright trace\n type Type into an element by ref from snapshot\n upload Arm file upload for the next file chooser\n wait Wait for time, selector, URL, load state, or JS\n conditions\n waitfordownload Wait for the next download (and save it)\n\nExamples:\n openclaw browser status\n openclaw browser start\n openclaw browser start --headless\n openclaw browser stop\n openclaw browser tabs\n openclaw browser open https://example.com\n openclaw browser focus abcd1234\n openclaw browser close abcd1234\n openclaw browser screenshot\n openclaw browser screenshot --full-page\n openclaw browser screenshot --ref 12\n openclaw browser snapshot\n openclaw browser snapshot --format aria --limit 200\n openclaw browser snapshot --efficient\n openclaw browser snapshot --labels\n openclaw browser navigate https://example.com\n openclaw browser resize 1280 720\n openclaw browser click 12 --double\n openclaw browser click-coords 120 340\n openclaw browser type 23 \"hello\" --submit\n openclaw browser press Enter\n openclaw browser hover 44\n openclaw browser drag 10 11\n openclaw browser select 9 OptionA OptionB\n openclaw browser upload /tmp/openclaw/uploads/file.pdf\n openclaw browser fill --fields '[{\"ref\":\"1\",\"value\":\"Ada\"}]'\n openclaw browser dialog --accept\n openclaw browser wait --text \"Done\"\n openclaw browser evaluate --fn '(el) => el.textContent' --ref 7\n openclaw browser console --level error\n openclaw browser pdf\n\nDocs: https://docs.openclaw.ai/cli/browser\n\n",
32
- "rootHelpText": "\n🦞 OpenClaw 2026.5.63 (c1dbfca) — Deployed locally, trusted globally, debugged eternally.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n chat Open a local terminal UI (alias for tui --local)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Open the ring-zero setup and repair helper\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n terminal Open a local terminal UI (alias for tui --local)\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
31
+ "browserHelpText": "\n🦞 OpenClaw 0.0.0 (c1dbfca) — I don't just autocomplete—I auto-commit (emotionally), then ask you to review (logically).\n\nUsage: openclaw browser [options] [command]\n\nManage OpenClaw's dedicated browser (Chrome/Chromium)\n\nOptions:\n --browser-profile <name> Browser profile name (default from config)\n --expect-final Wait for final response (agent) (default: false)\n -h, --help Display help for command\n --json Output machine-readable JSON (default: false)\n --timeout <ms> Timeout in ms (default: \"30000\")\n --token <token> Gateway token (if required)\n --url <url> Gateway WebSocket URL (defaults to\n gateway.remote.url when configured)\n\nCommands:\n click Click an element by ref from snapshot\n click-coords Click viewport coordinates\n close Close a tab (target id optional)\n console Get recent console messages\n cookies Read/write cookies\n create-profile Create a new browser profile\n delete-profile Delete a browser profile\n dialog Arm the next modal dialog (alert/confirm/prompt)\n doctor Check browser plugin readiness\n download Click a ref and save the resulting download\n drag Drag from one ref to another\n errors Get recent page errors\n evaluate Evaluate a function against the page or a ref\n fill Fill a form with JSON field descriptors\n focus Focus a tab by target id, tab id, label, or unique\n target id prefix\n highlight Highlight an element by ref\n hover Hover an element by ai ref\n navigate Navigate the current tab to a URL\n open Open a URL in a new tab\n pdf Save page as PDF\n press Press a key\n profiles List all browser profiles\n requests Get recent network requests (best-effort)\n reset-profile Reset browser profile (moves it to Trash)\n resize Resize the viewport\n responsebody Wait for a network response and return its body\n screenshot Capture a screenshot (MEDIA:<path>)\n scrollintoview Scroll an element into view by ref from snapshot\n select Select option(s) in a select element\n set Browser environment settings\n snapshot Capture a snapshot (default: ai; aria is the\n accessibility tree)\n start Start the browser (no-op if already running)\n status Show browser status\n stop Stop the browser (best-effort)\n storage Read/write localStorage/sessionStorage\n tab Tab shortcuts (index-based)\n tabs List open tabs\n trace Record a Playwright trace\n type Type into an element by ref from snapshot\n upload Arm file upload for the next file chooser\n wait Wait for time, selector, URL, load state, or JS\n conditions\n waitfordownload Wait for the next download (and save it)\n\nExamples:\n openclaw browser status\n openclaw browser start\n openclaw browser start --headless\n openclaw browser stop\n openclaw browser tabs\n openclaw browser open https://example.com\n openclaw browser focus abcd1234\n openclaw browser close abcd1234\n openclaw browser screenshot\n openclaw browser screenshot --full-page\n openclaw browser screenshot --ref 12\n openclaw browser snapshot\n openclaw browser snapshot --format aria --limit 200\n openclaw browser snapshot --efficient\n openclaw browser snapshot --labels\n openclaw browser navigate https://example.com\n openclaw browser resize 1280 720\n openclaw browser click 12 --double\n openclaw browser click-coords 120 340\n openclaw browser type 23 \"hello\" --submit\n openclaw browser press Enter\n openclaw browser hover 44\n openclaw browser drag 10 11\n openclaw browser select 9 OptionA OptionB\n openclaw browser upload /tmp/openclaw/uploads/file.pdf\n openclaw browser fill --fields '[{\"ref\":\"1\",\"value\":\"Ada\"}]'\n openclaw browser dialog --accept\n openclaw browser wait --text \"Done\"\n openclaw browser evaluate --fn '(el) => el.textContent' --ref 7\n openclaw browser console --level error\n openclaw browser pdf\n\nDocs: https://docs.openclaw.ai/cli/browser\n\n",
32
+ "rootHelpText": "\n🦞 OpenClaw 2026.5.65 (c1dbfca) — The only open-source project where the mascot could eat the competition.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n capability * Run provider-backed inference commands (fallback alias:\n infer)\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n chat Open a local terminal UI (alias for tui --local)\n clawbot * Legacy clawbot command aliases\n commitments * List and manage inferred follow-up commitments\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n crestodian Open the ring-zero setup and repair helper\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed inference commands\n logs Tail gateway file logs via RPC\n mcp * Manage OpenClaw MCP config and channel bridge\n memory Search, inspect, and reindex memory files\n message * Send, read, and manage messages\n migrate * Import state from another agent system\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins\n proxy * Run the OpenClaw debug proxy and inspect captured traffic\n qr Generate mobile pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tasks * Inspect durable background task state\n terminal Open a local terminal UI (alias for tui --local)\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
33
33
  }
@@ -1,4 +1,4 @@
1
1
  import "./argv-CSyK6eKz.js";
2
- import { n as registerCoreCliByName } from "./command-registry-core-DRByw1HB.js";
3
- import "./command-registry-BLxcaskA.js";
2
+ import { n as registerCoreCliByName } from "./command-registry-core-DDi0TLgQ.js";
3
+ import "./command-registry-Dz3BxCWe.js";
4
4
  export { registerCoreCliByName };
@@ -1,5 +1,5 @@
1
- import { r as registerCoreCliCommands } from "./command-registry-core-DRByw1HB.js";
2
- import { n as registerSubCliCommands } from "./register.subclis-onDZnAxG.js";
1
+ import { r as registerCoreCliCommands } from "./command-registry-core-DDi0TLgQ.js";
2
+ import { n as registerSubCliCommands } from "./register.subclis-UKyvI2vk.js";
3
3
  //#region src/cli/program/command-registry.ts
4
4
  function registerProgramCommands(program, ctx, argv = process.argv) {
5
5
  registerCoreCliCommands(program, ctx, argv);
@@ -2,7 +2,7 @@ import { _ as getCoreCliCommandDescriptors, v as getCoreCliCommandNames$1 } from
2
2
  import { t as resolveCliArgvInvocation } from "./argv-invocation-OqT8xvzX.js";
3
3
  import { r as shouldRegisterPrimaryCommandOnly } from "./command-registration-policy-CUdNzUaZ.js";
4
4
  import { i as registerCommandGroups, r as registerCommandGroupByName } from "./register-command-groups-n0NSLiG0.js";
5
- import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs } from "./register.subclis-core-BDZCU1Zw.js";
5
+ import { a as defineImportedCommandGroupSpec, i as buildCommandGroupEntries, o as defineImportedProgramCommandGroupSpecs } from "./register.subclis-core-CQOWl-V3.js";
6
6
  //#region src/cli/program/command-registry-core.ts
7
7
  function withProgramOnlySpecs(specs) {
8
8
  return specs.map((spec) => ({
@@ -2,8 +2,8 @@ import { t as formatDocsLink } from "./links-dQIIPEtq.js";
2
2
  import { r as theme } from "./theme-CVJvORNs.js";
3
3
  import { a as routeLogsToStderr } from "./console-phIAbya3.js";
4
4
  import { c as resolveShellFromEnv, i as installCompletion, o as isCompletionShell, s as resolveCompletionCachePath, t as COMPLETION_SHELLS } from "./completion-runtime-Lrc37RAn.js";
5
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-core-BDZCU1Zw.js";
6
- import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-core-DRByw1HB.js";
5
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-core-CQOWl-V3.js";
6
+ import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-core-DDi0TLgQ.js";
7
7
  import { t as getProgramContext } from "./program-context-BVnDI9A9.js";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import{h as e,l as t,o as n,p as r,t as i}from"./string-coerce-D1V12xl0.js";import{n as a,t as o}from"./directive-CXGeywn2.js";import{A as s,C as c,D as l,E as u,F as d,I as f,M as p,N as m,O as ee,P as h,S as g,T as _,U as v,a as y,b,f as x,g as S,j as C,k as te,m as w,n as T,p as E,r as D,t as O,w as ne,x as re,y as k}from"./index-B74LLQ9t.js";import{r as A}from"./channel-config-extras-Bajp-1z_.js";import{i as j,n as ie,r as ae,t as oe}from"./skills-shared-avJ7q-mG.js";var se=o(class extends a{constructor(){super(...arguments),this.key=r}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(S(e),this.key=t),n}});function ce(t){let{agent:i,configForm:a,agentFilesList:o,configLoading:c,configSaving:d,configDirty:f,onConfigReload:m,onConfigSave:h,onModelChange:g,onModelFallbacksChange:_,onSelectPanel:v}=t,y=!!(t.defaultId&&i.id===t.defaultId),b=ee(a,i.id),x=i.model,S=(o&&o.agentId===i.id?o.workspace:null)||b.entry?.workspace||b.defaults?.workspace||i.workspace||`default`,w=b.entry?.model?C(b.entry?.model):b.defaults?.model?C(b.defaults?.model):C(x),T=te(i.agentRuntime),E=C(b.defaults?.model??x),D=p(b.entry?.model),O=p(b.defaults?.model)||(E===`-`?null:u(E))||(a?null:p(x)),ne=D??O??null,k=y?ne:D,A=s(b.entry?.model)??s(b.defaults?.model)??(a?null:s(x))??[],j=Array.isArray(b.entry?.skills)?b.entry?.skills:null,ie=j?.length??null,ae=!a||c||d,oe=e=>{let t=A.filter((t,n)=>n!==e);_(i.id,t)};return e`
1
+ import{h as e,l as t,o as n,p as r,t as i}from"./string-coerce-Dctr50t9.js";import{n as a,t as o}from"./directive-CXGeywn2.js";import{A as s,C as c,D as l,E as u,F as d,I as f,M as p,N as m,O as ee,P as h,S as g,T as _,U as v,a as y,b,f as x,g as S,j as C,k as te,m as w,n as T,p as E,r as D,t as O,w as ne,x as re,y as k}from"./index-CMLd9dJU.js";import{r as A}from"./channel-config-extras-BDPX04sH.js";import{i as j,n as ie,r as ae,t as oe}from"./skills-shared-BpE3cfCK.js";var se=o(class extends a{constructor(){super(...arguments),this.key=r}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(S(e),this.key=t),n}});function ce(t){let{agent:i,configForm:a,agentFilesList:o,configLoading:c,configSaving:d,configDirty:f,onConfigReload:m,onConfigSave:h,onModelChange:g,onModelFallbacksChange:_,onSelectPanel:v}=t,y=!!(t.defaultId&&i.id===t.defaultId),b=ee(a,i.id),x=i.model,S=(o&&o.agentId===i.id?o.workspace:null)||b.entry?.workspace||b.defaults?.workspace||i.workspace||`default`,w=b.entry?.model?C(b.entry?.model):b.defaults?.model?C(b.defaults?.model):C(x),T=te(i.agentRuntime),E=C(b.defaults?.model??x),D=p(b.entry?.model),O=p(b.defaults?.model)||(E===`-`?null:u(E))||(a?null:p(x)),ne=D??O??null,k=y?ne:D,A=s(b.entry?.model)??s(b.defaults?.model)??(a?null:s(x))??[],j=Array.isArray(b.entry?.skills)?b.entry?.skills:null,ie=j?.length??null,ae=!a||c||d,oe=e=>{let t=A.filter((t,n)=>n!==e);_(i.id,t)};return e`
2
2
  <section class="card">
3
3
  <div class="card-title">Overview</div>
4
4
  <div class="card-sub">Workspace paths and identity metadata.</div>
@@ -124,7 +124,7 @@ ${i.map(e=>`<tr>${e.map((e,t)=>`<td${o(t)}>${P(e)}</td>`).join(``)}</tr>`).join(
124
124
  <div class="${n}callout ${n}callout-${r}" role="alert">
125
125
  <strong class="${n}callout-title">${r}</strong>
126
126
  <div class="${n}callout-content">${N(e.content,t)}</div>
127
- </div>`.trim()}function N(e,t){return e.map(e=>Te(e,t)).join(``)}function Te(e,t){let n=P(e.text),r=e.styles;if(r.code&&(n=`<code>${n}</code>`),r.highlight&&(n=`<mark>${n}</mark>`),r.strikethrough&&(n=`<del>${n}</del>`),r.underline&&(n=`<u>${n}</u>`),r.italic&&(n=`<em>${n}</em>`),r.bold&&(n=`<strong>${n}</strong>`),r.link){let e=t.linkTarget===`_blank`?` target="_blank" rel="noopener noreferrer"`:``,i=r.link.title?` title="${P(r.link.title)}"`:``;n=`<a href="${P(r.link.url)}"${i}${e}>${n}</a>`}return n}function P(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}function Ee(e){return[...[1,2,3,4,5,6].map(t=>({tag:`h${t}`,classes:[`${e}heading`,`${e}h${t}`]})),{tag:`p`,classes:[`${e}paragraph`]},{tag:`ul`,classes:[`${e}bullet-list`]},{tag:`ol`,classes:[`${e}numbered-list`]},{tag:`pre`,classes:[`${e}code-block`]},{tag:`blockquote`,classes:[`${e}blockquote`]},{tag:`hr`,classes:[`${e}divider`]},{tag:`table`,classes:[`${e}table`]},{tag:`figure`,classes:[`${e}image`]}]}function De(e,t){let n=t.join(` `),r=/\bclass\s*=\s*"([^"]*)"/i,i=e.match(r);return i?e.replace(r,`class="${n} ${i[1]}"`):e.endsWith(`/>`)?e.slice(0,-2)+` class="${n}" />`:e.slice(0,-1)+` class="${n}">`}function Oe(e,t){return e.replace(/(?<!<figure[^>]*>\s*)(<img\s[^>]*\/?>)(?!\s*<\/figure>)/gi,`<figure class="${t}image">$1</figure>`)}function ke(e,t){let n=t?.classPrefix??`cm-`,r=t?.wrapperClass??`${n}preview`,i=Ee(n),a=e;for(let{tag:e,classes:t}of i){let n=RegExp(`<${e}(\\s[^>]*)?>|<${e}\\s*\\/?>`,`gi`);a=a.replace(n,e=>De(e,t))}return a=Oe(a,n),a=`<div class="${r}">${a}</div>`,typeof t?.sanitize==`function`&&(a=t.sanitize(a)),a}async function Ae(e){try{return(await t(()=>import(`./preview-DP8t6eAW.js`),[],import.meta.url)).parse(e)}catch{throw Error(`@create-markdown/core is required to parse markdown in <markdown-preview>. Install it, or provide pre-parsed blocks via the blocks attribute / setBlocks().`)}}M(class extends HTMLElement{constructor(){super(),M(this,`_shadow`,null),M(this,`plugins`,[]),M(this,`defaultTheme`,`github`),M(this,`styleElement`),M(this,`contentElement`);let e=this.constructor._shadowMode;e!==`none`&&(this._shadow=this.attachShadow({mode:e})),this.styleElement=document.createElement(`style`),this.renderRoot.appendChild(this.styleElement),this.contentElement=document.createElement(`div`),this.contentElement.className=`markdown-preview-content`,this.renderRoot.appendChild(this.contentElement),this.updateStyles()}static get observedAttributes(){return[`theme`,`link-target`,`async`]}get renderRoot(){return this._shadow??this}connectedCallback(){this.render()}attributeChangedCallback(e,t,n){this.render()}setPlugins(e){this.plugins=e,this.render()}setDefaultTheme(e){this.defaultTheme=e,this.render()}getMarkdown(){let e=this.getAttribute(`blocks`);if(e)try{return JSON.parse(e).map(e=>e.content.map(e=>e.text).join(``)).join(`
127
+ </div>`.trim()}function N(e,t){return e.map(e=>Te(e,t)).join(``)}function Te(e,t){let n=P(e.text),r=e.styles;if(r.code&&(n=`<code>${n}</code>`),r.highlight&&(n=`<mark>${n}</mark>`),r.strikethrough&&(n=`<del>${n}</del>`),r.underline&&(n=`<u>${n}</u>`),r.italic&&(n=`<em>${n}</em>`),r.bold&&(n=`<strong>${n}</strong>`),r.link){let e=t.linkTarget===`_blank`?` target="_blank" rel="noopener noreferrer"`:``,i=r.link.title?` title="${P(r.link.title)}"`:``;n=`<a href="${P(r.link.url)}"${i}${e}>${n}</a>`}return n}function P(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#039;`)}function Ee(e){return[...[1,2,3,4,5,6].map(t=>({tag:`h${t}`,classes:[`${e}heading`,`${e}h${t}`]})),{tag:`p`,classes:[`${e}paragraph`]},{tag:`ul`,classes:[`${e}bullet-list`]},{tag:`ol`,classes:[`${e}numbered-list`]},{tag:`pre`,classes:[`${e}code-block`]},{tag:`blockquote`,classes:[`${e}blockquote`]},{tag:`hr`,classes:[`${e}divider`]},{tag:`table`,classes:[`${e}table`]},{tag:`figure`,classes:[`${e}image`]}]}function De(e,t){let n=t.join(` `),r=/\bclass\s*=\s*"([^"]*)"/i,i=e.match(r);return i?e.replace(r,`class="${n} ${i[1]}"`):e.endsWith(`/>`)?e.slice(0,-2)+` class="${n}" />`:e.slice(0,-1)+` class="${n}">`}function Oe(e,t){return e.replace(/(?<!<figure[^>]*>\s*)(<img\s[^>]*\/?>)(?!\s*<\/figure>)/gi,`<figure class="${t}image">$1</figure>`)}function ke(e,t){let n=t?.classPrefix??`cm-`,r=t?.wrapperClass??`${n}preview`,i=Ee(n),a=e;for(let{tag:e,classes:t}of i){let n=RegExp(`<${e}(\\s[^>]*)?>|<${e}\\s*\\/?>`,`gi`);a=a.replace(n,e=>De(e,t))}return a=Oe(a,n),a=`<div class="${r}">${a}</div>`,typeof t?.sanitize==`function`&&(a=t.sanitize(a)),a}async function Ae(e){try{return(await t(()=>import(`./preview-DP8t6eAW.js`),[])).parse(e)}catch{throw Error(`@create-markdown/core is required to parse markdown in <markdown-preview>. Install it, or provide pre-parsed blocks via the blocks attribute / setBlocks().`)}}M(class extends HTMLElement{constructor(){super(),M(this,`_shadow`,null),M(this,`plugins`,[]),M(this,`defaultTheme`,`github`),M(this,`styleElement`),M(this,`contentElement`);let e=this.constructor._shadowMode;e!==`none`&&(this._shadow=this.attachShadow({mode:e})),this.styleElement=document.createElement(`style`),this.renderRoot.appendChild(this.styleElement),this.contentElement=document.createElement(`div`),this.contentElement.className=`markdown-preview-content`,this.renderRoot.appendChild(this.contentElement),this.updateStyles()}static get observedAttributes(){return[`theme`,`link-target`,`async`]}get renderRoot(){return this._shadow??this}connectedCallback(){this.render()}attributeChangedCallback(e,t,n){this.render()}setPlugins(e){this.plugins=e,this.render()}setDefaultTheme(e){this.defaultTheme=e,this.render()}getMarkdown(){let e=this.getAttribute(`blocks`);if(e)try{return JSON.parse(e).map(e=>e.content.map(e=>e.text).join(``)).join(`
128
128
 
129
129
  `)}catch{return``}return this.textContent||``}setMarkdown(e){this.textContent=e,this.render()}setBlocks(e){this.setAttribute(`blocks`,JSON.stringify(e)),this.render()}getOptions(){return{theme:this.getAttribute(`theme`)||this.defaultTheme,linkTarget:this.getAttribute(`link-target`)||`_blank`,plugins:this.plugins}}async getBlocks(){let e=this.getAttribute(`blocks`);if(e)try{return JSON.parse(e)}catch{return console.warn(`Invalid blocks JSON in markdown-preview element`),[]}return Ae(this.textContent||``)}async render(){let e=await this.getBlocks(),t=this.getOptions(),n=this.hasAttribute(`async`)||this.plugins.length>0;try{let r;r=n?await he(e,t):me(e,t),this.contentElement.innerHTML=r}catch(e){console.error(`Error rendering markdown preview:`,e),this.contentElement.innerHTML=`<div class="error">Error rendering content</div>`}}updateStyles(){let e=this.plugins.filter(e=>e.getCSS).map(e=>e.getCSS()).join(`
130
130
 
@@ -1005,4 +1005,4 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
1005
1005
  `)}
1006
1006
  </div>
1007
1007
  `}export{Cn as renderAgents};
1008
- //# sourceMappingURL=agents-BFBvag5a.js.map
1008
+ //# sourceMappingURL=agents-BUEwfsU6.js.map
@@ -1,2 +1,2 @@
1
- import{o as e}from"./string-coerce-D1V12xl0.js";function t(e,t){if(!e)return null;let n=(e.channels??{})[t];if(n&&typeof n==`object`)return n;let r=e[t];return r&&typeof r==`object`?r:null}function n(t){if(t==null)return e(`common.na`);if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return String(t);try{return JSON.stringify(t)}catch{return e(`common.na`)}}function r(e){let r=t(e.configForm,e.channelId);return r?e.fields.flatMap(e=>e in r?[{label:e,value:n(r[e])}]:[]):[]}export{t as n,r,n as t};
2
- //# sourceMappingURL=channel-config-extras-Bajp-1z_.js.map
1
+ import{o as e}from"./string-coerce-Dctr50t9.js";function t(e,t){if(!e)return null;let n=(e.channels??{})[t];if(n&&typeof n==`object`)return n;let r=e[t];return r&&typeof r==`object`?r:null}function n(t){if(t==null)return e(`common.na`);if(typeof t==`string`||typeof t==`number`||typeof t==`boolean`)return String(t);try{return JSON.stringify(t)}catch{return e(`common.na`)}}function r(e){let r=t(e.configForm,e.channelId);return r?e.fields.flatMap(e=>e in r?[{label:e,value:n(r[e])}]:[]):[]}export{t as n,r,n as t};
2
+ //# sourceMappingURL=channel-config-extras-BDPX04sH.js.map
@@ -1,4 +1,4 @@
1
- import{h as e,o as t,p as n}from"./string-coerce-D1V12xl0.js";import{G as r,K as i,U as a,W as o,c as s,l as c}from"./index-B74LLQ9t.js";import{n as l,t as u}from"./channel-config-extras-Bajp-1z_.js";function d(e,t){let n=e;for(let e of t){if(!n)return null;let t=i(n);if(t===`object`){let t=n.properties??{};if(typeof e==`string`&&t[e]){n=t[e];continue}let r=n.additionalProperties;if(typeof e==`string`&&r&&typeof r==`object`){n=r;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;n=(Array.isArray(n.items)?n.items[0]:n.items)??null;continue}return null}return n}function f(e,t){return l(e,t)??{}}var p=[`groupPolicy`,`streamMode`,`dmPolicy`];function m(t){let n=p.flatMap(e=>e in t?[[e,t[e]]]:[]);return n.length===0?null:e`
1
+ import{h as e,o as t,p as n}from"./string-coerce-Dctr50t9.js";import{G as r,K as i,U as a,W as o,c as s,l as c}from"./index-CMLd9dJU.js";import{n as l,t as u}from"./channel-config-extras-BDPX04sH.js";function d(e,t){let n=e;for(let e of t){if(!n)return null;let t=i(n);if(t===`object`){let t=n.properties??{};if(typeof e==`string`&&t[e]){n=t[e];continue}let r=n.additionalProperties;if(typeof e==`string`&&r&&typeof r==`object`){n=r;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;n=(Array.isArray(n.items)?n.items[0]:n.items)??null;continue}return null}return n}function f(e,t){return l(e,t)??{}}var p=[`groupPolicy`,`streamMode`,`dmPolicy`];function m(t){let n=p.flatMap(e=>e in t?[[e,t[e]]]:[]);return n.length===0?null:e`
2
2
  <div class="status-list" style="margin-top: 12px;">
3
3
  ${n.map(([t,n])=>e`
4
4
  <div>
@@ -350,4 +350,4 @@ ${r.snapshot?JSON.stringify(r.snapshot,null,2):t(`channels.health.noSnapshotYet`
350
350
  </div>
351
351
  </div>
352
352
  `}export{F as renderChannels};
353
- //# sourceMappingURL=channels-BosIwfoz.js.map
353
+ //# sourceMappingURL=channels-CYwgsMNO.js.map
@@ -1,4 +1,4 @@
1
- import{h as e,o as t,p as n}from"./string-coerce-D1V12xl0.js";import{L as r,U as i,V as a,_ as o,a as s,d as c,n as l,p as u,v as d}from"./index-B74LLQ9t.js";function f(){return[{value:`ok`,label:t(`cron.runs.runStatusOk`)},{value:`error`,label:t(`cron.runs.runStatusError`)},{value:`skipped`,label:t(`cron.runs.runStatusSkipped`)}]}function p(){return[{value:`delivered`,label:t(`cron.runs.deliveryDelivered`)},{value:`not-delivered`,label:t(`cron.runs.deliveryNotDelivered`)},{value:`unknown`,label:t(`cron.runs.deliveryUnknown`)},{value:`not-requested`,label:t(`cron.runs.deliveryNotRequested`)}]}function m(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function h(e,t){return e.length===0?t:e.length<=2?e.join(`, `):`${e[0]} +${e.length-1}`}function g(e){let t=[`last`,...e.channels.filter(Boolean)],n=e.form.deliveryChannel?.trim();n&&!t.includes(n)&&t.push(n);let r=new Set;return t.filter(e=>r.has(e)?!1:(r.add(e),!0))}function _(e,t){if(t===`last`)return`last`;let n=e.channelMeta?.find(e=>e.id===t);return n?.label?n.label:e.channelLabels?.[t]??t}function v(n){return e`
1
+ import{h as e,o as t,p as n}from"./string-coerce-Dctr50t9.js";import{L as r,U as i,V as a,_ as o,a as s,d as c,n as l,p as u,v as d}from"./index-CMLd9dJU.js";function f(){return[{value:`ok`,label:t(`cron.runs.runStatusOk`)},{value:`error`,label:t(`cron.runs.runStatusError`)},{value:`skipped`,label:t(`cron.runs.runStatusSkipped`)}]}function p(){return[{value:`delivered`,label:t(`cron.runs.deliveryDelivered`)},{value:`not-delivered`,label:t(`cron.runs.deliveryNotDelivered`)},{value:`unknown`,label:t(`cron.runs.deliveryUnknown`)},{value:`not-requested`,label:t(`cron.runs.deliveryNotRequested`)}]}function m(e,t,n){let r=new Set(e);return n?r.add(t):r.delete(t),Array.from(r)}function h(e,t){return e.length===0?t:e.length<=2?e.join(`, `):`${e[0]} +${e.length-1}`}function g(e){let t=[`last`,...e.channels.filter(Boolean)],n=e.form.deliveryChannel?.trim();n&&!t.includes(n)&&t.push(n);let r=new Set;return t.filter(e=>r.has(e)?!1:(r.add(e),!0))}function _(e,t){if(t===`last`)return`last`;let n=e.channelMeta?.find(e=>e.id===t);return n?.label?n.label:e.channelLabels?.[t]??t}function v(n){return e`
2
2
  <div class="field cron-filter-dropdown" data-filter=${n.id}>
3
3
  <span>${n.title}</span>
4
4
  <details class="cron-filter-dropdown__details">
@@ -966,4 +966,4 @@ import{h as e,o as t,p as n}from"./string-coerce-D1V12xl0.js";import{L as r,U as
966
966
  </div>
967
967
  </div>
968
968
  `}export{E as renderCron};
969
- //# sourceMappingURL=cron-im-_3I8i.js.map
969
+ //# sourceMappingURL=cron-C15n6oXG.js.map
@@ -1,4 +1,4 @@
1
- import{h as e,o as t,p as n}from"./string-coerce-D1V12xl0.js";import{i as r}from"./index-B74LLQ9t.js";function i(i){let a=(i.status&&typeof i.status==`object`?i.status.securityAudit:null)?.summary??null,o=a?.critical??0,s=a?.warn??0,c=a?.info??0,l=o>0?`danger`:s>0?`warn`:`success`,u=o>0?t(`debug.security.critical`,{count:String(o)}):s>0?t(`debug.security.warnings`,{count:String(s)}):t(`debug.security.noCriticalIssues`);return e`
1
+ import{h as e,o as t,p as n}from"./string-coerce-Dctr50t9.js";import{i as r}from"./index-CMLd9dJU.js";function i(i){let a=(i.status&&typeof i.status==`object`?i.status.securityAudit:null)?.summary??null,o=a?.critical??0,s=a?.warn??0,c=a?.info??0,l=o>0?`danger`:s>0?`warn`:`success`,u=o>0?t(`debug.security.critical`,{count:String(o)}):s>0?t(`debug.security.warnings`,{count:String(s)}):t(`debug.security.noCriticalIssues`);return e`
2
2
  <section class="grid">
3
3
  <div class="card">
4
4
  <div class="row" style="justify-content: space-between;">
@@ -94,4 +94,4 @@ ${r(t.payload)}</pre
94
94
  `}
95
95
  </section>
96
96
  `}export{i as renderDebug};
97
- //# sourceMappingURL=debug-hPLYITwM.js.map
97
+ //# sourceMappingURL=debug-C0oZpvZz.js.map