openclaw 2026.5.20-beta.2 → 2026.5.20

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 (120) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/{channel-t53RF5Uo.d.ts → channel-PUUcipBP.d.ts} +2 -2
  4. package/dist/cli-startup-metadata.json +9 -9
  5. package/dist/{components-Cpu75Pfx.d.ts → components-B50DuT1D.d.ts} +1 -1
  6. package/dist/{components.modal-glHG-y8o.d.ts → components.modal-F1ooc12a.d.ts} +18 -18
  7. package/dist/{contracts-testkit-Cr7ew9hC.d.ts → contracts-testkit-CSUh7x7y.d.ts} +1 -0
  8. package/dist/control-ui/assets/{agents-xO0I72RQ.js → agents-BEdVHjJO.js} +2 -2
  9. package/dist/control-ui/assets/{channel-config-extras-DegI8f2n.js → channel-config-extras-BESl0um4.js} +2 -2
  10. package/dist/control-ui/assets/{channels-BuQ5ZXMO.js → channels-BKBMKXZ9.js} +2 -2
  11. package/dist/control-ui/assets/{cron-DKkVCn18.js → cron-BG199yeW.js} +2 -2
  12. package/dist/control-ui/assets/{debug-CUcp57fH.js → debug-DXtodFp8.js} +2 -2
  13. package/dist/control-ui/assets/{index-CsbvMbET.js → index-DIlhMoR6.js} +4 -4
  14. package/dist/control-ui/assets/{instances-DQiCem8S.js → instances-C0QIi0ao.js} +2 -2
  15. package/dist/control-ui/assets/{logs-3sA2GqLG.js → logs-B4-FEoBE.js} +2 -2
  16. package/dist/control-ui/assets/{nodes-DrVzf253.js → nodes-C8FbhhtC.js} +2 -2
  17. package/dist/control-ui/assets/{sessions-DyUoPE8k.js → sessions-S2t2Kvq8.js} +2 -2
  18. package/dist/control-ui/assets/{skills-DMsCDdSV.js → skills--92IhCm5.js} +2 -2
  19. package/dist/control-ui/assets/{skills-shared-COO5rY4m.js → skills-shared-ox0NI8xx.js} +2 -2
  20. package/dist/control-ui/index.html +1 -1
  21. package/dist/control-ui/sw.js +1 -1
  22. package/dist/extensions/admin-http-rpc/package.json +1 -1
  23. package/dist/extensions/alibaba/package.json +1 -1
  24. package/dist/extensions/anthropic/package.json +1 -1
  25. package/dist/extensions/arcee/package.json +1 -1
  26. package/dist/extensions/azure-speech/package.json +1 -1
  27. package/dist/extensions/bonjour/package.json +1 -1
  28. package/dist/extensions/browser/package.json +1 -1
  29. package/dist/extensions/byteplus/package.json +1 -1
  30. package/dist/extensions/canvas/package.json +1 -1
  31. package/dist/extensions/cerebras/package.json +1 -1
  32. package/dist/extensions/chutes/package.json +1 -1
  33. package/dist/extensions/clickclack/package.json +2 -2
  34. package/dist/extensions/cloudflare-ai-gateway/package.json +1 -1
  35. package/dist/extensions/comfy/package.json +1 -1
  36. package/dist/extensions/copilot-proxy/package.json +1 -1
  37. package/dist/extensions/deepgram/package.json +1 -1
  38. package/dist/extensions/deepinfra/package.json +1 -1
  39. package/dist/extensions/deepseek/package.json +1 -1
  40. package/dist/extensions/document-extract/package.json +1 -1
  41. package/dist/extensions/duckduckgo/package.json +1 -1
  42. package/dist/extensions/elevenlabs/package.json +1 -1
  43. package/dist/extensions/exa/package.json +1 -1
  44. package/dist/extensions/fal/package.json +1 -1
  45. package/dist/extensions/file-transfer/package.json +1 -1
  46. package/dist/extensions/firecrawl/package.json +1 -1
  47. package/dist/extensions/fireworks/package.json +1 -1
  48. package/dist/extensions/github-copilot/package.json +1 -1
  49. package/dist/extensions/google/package.json +1 -1
  50. package/dist/extensions/gradium/package.json +1 -1
  51. package/dist/extensions/groq/package.json +1 -1
  52. package/dist/extensions/huggingface/package.json +1 -1
  53. package/dist/extensions/image-generation-core/package.json +1 -1
  54. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  55. package/dist/extensions/imessage/package.json +3 -3
  56. package/dist/extensions/inworld/package.json +1 -1
  57. package/dist/extensions/irc/package.json +1 -1
  58. package/dist/extensions/kilocode/package.json +1 -1
  59. package/dist/extensions/kimi-coding/package.json +1 -1
  60. package/dist/extensions/litellm/package.json +1 -1
  61. package/dist/extensions/llm-task/openclaw.plugin.json +1 -1
  62. package/dist/extensions/llm-task/package.json +1 -1
  63. package/dist/extensions/lmstudio/package.json +1 -1
  64. package/dist/extensions/mattermost/package.json +2 -2
  65. package/dist/extensions/media-understanding-core/package.json +1 -1
  66. package/dist/extensions/memory-core/package.json +2 -2
  67. package/dist/extensions/memory-wiki/package.json +2 -2
  68. package/dist/extensions/microsoft/package.json +1 -1
  69. package/dist/extensions/microsoft-foundry/package.json +1 -1
  70. package/dist/extensions/migrate-claude/package.json +2 -2
  71. package/dist/extensions/migrate-hermes/package.json +2 -2
  72. package/dist/extensions/minimax/package.json +1 -1
  73. package/dist/extensions/mistral/package.json +1 -1
  74. package/dist/extensions/moonshot/package.json +1 -1
  75. package/dist/extensions/nvidia/package.json +1 -1
  76. package/dist/extensions/oc-path/package.json +2 -2
  77. package/dist/extensions/ollama/package.json +1 -1
  78. package/dist/extensions/open-prose/package.json +1 -1
  79. package/dist/extensions/openai/package.json +1 -1
  80. package/dist/extensions/opencode/package.json +1 -1
  81. package/dist/extensions/opencode-go/package.json +1 -1
  82. package/dist/extensions/openrouter/package.json +1 -1
  83. package/dist/extensions/perplexity/package.json +1 -1
  84. package/dist/extensions/policy/package.json +2 -2
  85. package/dist/extensions/qianfan/package.json +1 -1
  86. package/dist/extensions/qwen/package.json +1 -1
  87. package/dist/extensions/runway/package.json +1 -1
  88. package/dist/extensions/searxng/package.json +1 -1
  89. package/dist/extensions/senseaudio/package.json +1 -1
  90. package/dist/extensions/sglang/package.json +1 -1
  91. package/dist/extensions/signal/package.json +1 -1
  92. package/dist/extensions/skill-workshop/package.json +1 -1
  93. package/dist/extensions/speech-core/package.json +1 -1
  94. package/dist/extensions/stepfun/package.json +1 -1
  95. package/dist/extensions/synthetic/package.json +1 -1
  96. package/dist/extensions/tavily/package.json +1 -1
  97. package/dist/extensions/telegram/package.json +1 -1
  98. package/dist/extensions/tencent/package.json +1 -1
  99. package/dist/extensions/together/package.json +1 -1
  100. package/dist/extensions/tokenjuice/package.json +1 -1
  101. package/dist/extensions/tts-local-cli/package.json +1 -1
  102. package/dist/extensions/venice/package.json +1 -1
  103. package/dist/extensions/vercel-ai-gateway/package.json +1 -1
  104. package/dist/extensions/video-generation-core/package.json +1 -1
  105. package/dist/extensions/vllm/package.json +1 -1
  106. package/dist/extensions/volcengine/package.json +1 -1
  107. package/dist/extensions/voyage/package.json +1 -1
  108. package/dist/extensions/vydra/package.json +1 -1
  109. package/dist/extensions/web-readability/package.json +1 -1
  110. package/dist/extensions/webhooks/package.json +1 -1
  111. package/dist/extensions/xai/package.json +1 -1
  112. package/dist/extensions/xiaomi/package.json +1 -1
  113. package/dist/extensions/zai/package.json +1 -1
  114. package/dist/music-generation-core-DVZTX0ns.d.ts +13 -0
  115. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  116. package/dist/postinstall-inventory.json +19 -19
  117. package/dist/{runtime-api.monitor-qVUHLAUf.d.ts → runtime-api.monitor-Cq9MEqA4.d.ts} +1 -1
  118. package/dist/{runtime-api.send-1ft4cCyS.d.ts → runtime-api.send-CtIIXMdk.d.ts} +1 -1
  119. package/package.json +1 -1
  120. package/dist/types-DmtQKWjk.d.ts +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.5.20-beta.2",
3
- "commit": "bb00b2eee2bc31f408b8fc3c50e67e2799e9b018",
4
- "builtAt": "2026-05-21T15:12:44.499Z"
2
+ "version": "2026.5.20",
3
+ "commit": "e510042870cf248c0e0461b6f8d427326266141d",
4
+ "builtAt": "2026-05-21T19:47:15.657Z"
5
5
  }
@@ -1 +1 @@
1
- b09b70ba7fa19e7ae149b363f3d18ff0c5a4e0e7c7a9d042e9b1e562da513f58
1
+ 814dbe1a79f3d48ac213f00dd60375c280e1267fc76b85ff46fc0ad4a3e0c3bc
@@ -131,8 +131,8 @@ declare const FeishuConfigSchema: ZodObject<{
131
131
  }, $strict>>;
132
132
  renderMode: ZodOptional<ZodEnum<{
133
133
  raw: "raw";
134
- card: "card";
135
134
  auto: "auto";
135
+ card: "card";
136
136
  }>>;
137
137
  streaming: ZodOptional<ZodBoolean>;
138
138
  tools: ZodOptional<ZodObject<{
@@ -303,8 +303,8 @@ declare const FeishuConfigSchema: ZodObject<{
303
303
  }, $strict>>;
304
304
  renderMode: ZodOptional<ZodEnum<{
305
305
  raw: "raw";
306
- card: "card";
307
306
  auto: "auto";
307
+ card: "card";
308
308
  }>>;
309
309
  streaming: ZodOptional<ZodBoolean>;
310
310
  tools: ZodOptional<ZodObject<{
@@ -25,20 +25,20 @@
25
25
  "qqbot",
26
26
  "twitch"
27
27
  ],
28
- "channelCatalogSignature": "fe7ee48505e69a0ddff92663584c3d703aec0554",
28
+ "channelCatalogSignature": "31d441ac626e3a3843275306d379dbb3de22b844",
29
29
  "rootHelpBundleSignature": "4a3e30a21bcb1680e5fa237c00cb9bd8b1670db3",
30
30
  "browserHelpSourceSignature": "a1942ea656221b8d553e6dee0c8adb2f68e7c99c",
31
31
  "secretsHelpSourceSignature": "0e778221bee321677a45d3c2292d177c74d836a1",
32
32
  "nodesHelpSourceSignature": "7d524b230349ab730441b1dfcd7ff51bfac13bd8",
33
33
  "subcommandHelpSourceSignature": "16ffee911139d307e1f98b9152e78a6c3582c421",
34
- "browserHelpText": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\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",
35
- "secretsHelpText": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw secrets [options] [command]\n\nSecrets runtime controls\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n apply Apply a previously generated secrets plan\n audit Audit plaintext secrets, unresolved refs, and precedence drift\n configure Interactive secrets helper (provider setup + SecretRef mapping +\n preflight)\n help Display help for command\n reload Re-resolve secret references and atomically swap runtime snapshot\n\nDocs: https://docs.openclaw.ai/gateway/security\n\n",
36
- "nodesHelpText": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw nodes [options] [command]\n\nManage gateway-owned nodes (pairing, status, invoke, and media)\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n approve Approve a pending pairing request\n camera Capture camera media from a paired node\n canvas Capture or render canvas content from a paired node\n describe Describe a node (capabilities + supported invoke commands)\n help Display help for command\n invoke Invoke a command on a paired node\n list List pending and paired nodes\n location Fetch location from a paired node\n notify Send a local notification on a node (mac only)\n pending List pending pairing requests\n push Send an APNs test push to an iOS node\n reject Reject a pending pairing request\n remove Remove a paired node entry\n rename Rename a paired node (display name override)\n screen Capture screen recordings from a paired node\n status List known nodes with connection status and capabilities\n\nExamples:\n openclaw nodes status\n List known nodes with live status.\n openclaw nodes pairing pending\n Show pending node pairing requests.\n openclaw nodes remove --node <id|name|ip>\n Remove a stale paired node entry.\n openclaw nodes invoke --node <id> --command system.which --params '{\"name\":\"uname\"}'\n Invoke a node command directly.\n openclaw nodes camera snap --node <id>\n Capture a photo from a node camera.\n\nDocs: https://docs.openclaw.ai/cli/nodes\n\n",
34
+ "browserHelpText": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\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",
35
+ "secretsHelpText": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw secrets [options] [command]\n\nSecrets runtime controls\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n apply Apply a previously generated secrets plan\n audit Audit plaintext secrets, unresolved refs, and precedence drift\n configure Interactive secrets helper (provider setup + SecretRef mapping +\n preflight)\n help Display help for command\n reload Re-resolve secret references and atomically swap runtime snapshot\n\nDocs: https://docs.openclaw.ai/gateway/security\n\n",
36
+ "nodesHelpText": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw nodes [options] [command]\n\nManage gateway-owned nodes (pairing, status, invoke, and media)\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n approve Approve a pending pairing request\n camera Capture camera media from a paired node\n canvas Capture or render canvas content from a paired node\n describe Describe a node (capabilities + supported invoke commands)\n help Display help for command\n invoke Invoke a command on a paired node\n list List pending and paired nodes\n location Fetch location from a paired node\n notify Send a local notification on a node (mac only)\n pending List pending pairing requests\n push Send an APNs test push to an iOS node\n reject Reject a pending pairing request\n remove Remove a paired node entry\n rename Rename a paired node (display name override)\n screen Capture screen recordings from a paired node\n status List known nodes with connection status and capabilities\n\nExamples:\n openclaw nodes status\n List known nodes with live status.\n openclaw nodes pairing pending\n Show pending node pairing requests.\n openclaw nodes remove --node <id|name|ip>\n Remove a stale paired node entry.\n openclaw nodes invoke --node <id> --command system.which --params '{\"name\":\"uname\"}'\n Invoke a node command directly.\n openclaw nodes camera snap --node <id>\n Capture a photo from a node camera.\n\nDocs: https://docs.openclaw.ai/cli/nodes\n\n",
37
37
  "subcommandHelpText": {
38
- "doctor": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw doctor [options]\n\nHealth checks + quick fixes for the gateway and channels\n\nOptions:\n --deep Scan system services for extra gateway installs\n (default: false)\n --fix Apply recommended repairs (alias for --repair)\n (default: false)\n --force Apply aggressive repairs (overwrites custom\n service config) (default: false)\n --generate-gateway-token Generate and configure a gateway token (default:\n false)\n -h, --help Display help for command\n --json With --lint: emit JSON findings instead of human\n output (default: false)\n --lint Run read-only health checks and report findings\n (default: false)\n --no-workspace-suggestions Disable workspace memory system suggestions\n --non-interactive Run without prompts (safe migrations only)\n (default: false)\n --only <id> With --lint: run only the specified check id\n (repeatable) (default: [])\n --repair Apply recommended repairs without prompting\n (default: false)\n --severity-min <level> With --lint: drop findings below this severity\n (info|warning|error)\n --skip <id> With --lint: skip a specific check id (repeatable)\n (default: [])\n --yes Accept defaults without prompting (default: false)\n\nDocs: https://docs.openclaw.ai/cli/doctor\n\n",
39
- "gateway": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw gateway [options] [command]\n\nRun, inspect, and query the WebSocket Gateway\n\nOptions:\n --allow-unconfigured Allow gateway start without enforcing\n gateway.mode=local in config (does not repair\n config) (default: false)\n --auth <mode> Gateway auth mode\n (\"none\"|\"token\"|\"password\"|\"trusted-proxy\")\n --bind <mode> Bind mode\n (\"loopback\"|\"lan\"|\"tailnet\"|\"auto\"|\"custom\").\n Defaults to config gateway.bind (or loopback).\n --claude-cli-logs Deprecated alias for --cli-backend-logs (default:\n false)\n --cli-backend-logs Only show CLI backend logs in the console (includes\n stdout/stderr) (default: false)\n --compact Alias for \"--ws-log compact\" (default: false)\n --dev Create a dev config + workspace if missing (no\n BOOTSTRAP.md) (default: false)\n --force Kill any existing listener on the target port\n before starting (default: false)\n -h, --help Display help for command\n --password <password> Password for auth mode=password\n --password-file <path> Read gateway password from file\n --port <port> Port for the gateway WebSocket\n --raw-stream Log raw model stream events to jsonl (default:\n false)\n --raw-stream-path <path> Raw stream jsonl path\n --reset Reset dev config + credentials + sessions +\n workspace (requires --dev) (default: false)\n --tailscale <mode> Tailscale exposure mode (\"off\"|\"serve\"|\"funnel\")\n --tailscale-reset-on-exit Reset Tailscale serve/funnel configuration on\n shutdown (default: false)\n --token <token> Shared token required in connect.params.auth.token\n (default: OPENCLAW_GATEWAY_TOKEN env if set)\n --verbose Verbose logging to stdout/stderr (default: false)\n --ws-log <style> WebSocket log style (\"auto\"|\"full\"|\"compact\")\n (default: \"auto\")\n\nCommands:\n call Call a Gateway method\n diagnostics Export local support diagnostics\n discover Discover gateways via Bonjour (local + wide-area if\n configured)\n health Fetch Gateway health\n install Install the Gateway service\n (launchd/systemd/schtasks)\n probe Show gateway reachability, auth capability, and\n read-probe summary (local + remote)\n restart Restart the Gateway service\n (launchd/systemd/schtasks)\n run Run the WebSocket Gateway (foreground)\n stability Fetch payload-free Gateway stability diagnostics\n start Start the Gateway service\n (launchd/systemd/schtasks)\n status Show gateway service status + probe\n connectivity/capability\n stop Stop the Gateway service (launchd/systemd/schtasks)\n uninstall Uninstall the Gateway service\n (launchd/systemd/schtasks)\n usage-cost Fetch usage cost summary from session logs\n\nExamples:\n openclaw gateway run\n Run the gateway in the foreground.\n openclaw gateway status\n Show service status plus connectivity/capability.\n openclaw gateway discover\n Find local and wide-area gateway beacons.\n openclaw gateway stability\n Show recent stability diagnostics.\n openclaw gateway call health\n Call a gateway RPC method directly.\n\nDocs: https://docs.openclaw.ai/cli/gateway\n\n",
40
- "models": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw models [options] [command]\n\nModel discovery, scanning, and configuration\n\nOptions:\n --agent <id> Agent id to inspect (overrides\n OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)\n -h, --help Display help for command\n --status-json Output JSON (alias for `models status --json`) (default:\n false)\n --status-plain Plain output (alias for `models status --plain`) (default:\n false)\n\nCommands:\n aliases Manage model aliases\n auth Manage model auth profiles\n fallbacks Manage model fallback list\n image-fallbacks Manage image model fallback list\n list List models (configured by default)\n scan Scan OpenRouter free models for tools + images\n set Set the default model\n set-image Set the image model\n status Show configured model state\n\nDocs: https://docs.openclaw.ai/cli/models\n\n",
41
- "plugins": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\n\nUsage: openclaw plugins [options] [command]\n\nManage OpenClaw plugins and extensions\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n build Generate simple tool plugin metadata\n disable Disable a plugin in config\n doctor Report plugin load issues\n enable Enable a plugin in config\n init Create a simple tool plugin project\n inspect Inspect plugin details\n install Install a plugin or hook pack (path, archive, npm spec, git repo,\n clawhub:package, or marketplace entry)\n list List discovered plugins\n marketplace Inspect Claude-compatible plugin marketplaces\n registry Inspect or rebuild the persisted plugin registry\n search Search ClawHub plugin packages\n uninstall Uninstall a plugin\n update Update installed plugins and tracked hook packs\n validate Validate simple tool plugin metadata\n\nDocs: https://docs.openclaw.ai/cli/plugins\n\n"
38
+ "doctor": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw doctor [options]\n\nHealth checks + quick fixes for the gateway and channels\n\nOptions:\n --deep Scan system services for extra gateway installs\n (default: false)\n --fix Apply recommended repairs (alias for --repair)\n (default: false)\n --force Apply aggressive repairs (overwrites custom\n service config) (default: false)\n --generate-gateway-token Generate and configure a gateway token (default:\n false)\n -h, --help Display help for command\n --json With --lint: emit JSON findings instead of human\n output (default: false)\n --lint Run read-only health checks and report findings\n (default: false)\n --no-workspace-suggestions Disable workspace memory system suggestions\n --non-interactive Run without prompts (safe migrations only)\n (default: false)\n --only <id> With --lint: run only the specified check id\n (repeatable) (default: [])\n --repair Apply recommended repairs without prompting\n (default: false)\n --severity-min <level> With --lint: drop findings below this severity\n (info|warning|error)\n --skip <id> With --lint: skip a specific check id (repeatable)\n (default: [])\n --yes Accept defaults without prompting (default: false)\n\nDocs: https://docs.openclaw.ai/cli/doctor\n\n",
39
+ "gateway": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw gateway [options] [command]\n\nRun, inspect, and query the WebSocket Gateway\n\nOptions:\n --allow-unconfigured Allow gateway start without enforcing\n gateway.mode=local in config (does not repair\n config) (default: false)\n --auth <mode> Gateway auth mode\n (\"none\"|\"token\"|\"password\"|\"trusted-proxy\")\n --bind <mode> Bind mode\n (\"loopback\"|\"lan\"|\"tailnet\"|\"auto\"|\"custom\").\n Defaults to config gateway.bind (or loopback).\n --claude-cli-logs Deprecated alias for --cli-backend-logs (default:\n false)\n --cli-backend-logs Only show CLI backend logs in the console (includes\n stdout/stderr) (default: false)\n --compact Alias for \"--ws-log compact\" (default: false)\n --dev Create a dev config + workspace if missing (no\n BOOTSTRAP.md) (default: false)\n --force Kill any existing listener on the target port\n before starting (default: false)\n -h, --help Display help for command\n --password <password> Password for auth mode=password\n --password-file <path> Read gateway password from file\n --port <port> Port for the gateway WebSocket\n --raw-stream Log raw model stream events to jsonl (default:\n false)\n --raw-stream-path <path> Raw stream jsonl path\n --reset Reset dev config + credentials + sessions +\n workspace (requires --dev) (default: false)\n --tailscale <mode> Tailscale exposure mode (\"off\"|\"serve\"|\"funnel\")\n --tailscale-reset-on-exit Reset Tailscale serve/funnel configuration on\n shutdown (default: false)\n --token <token> Shared token required in connect.params.auth.token\n (default: OPENCLAW_GATEWAY_TOKEN env if set)\n --verbose Verbose logging to stdout/stderr (default: false)\n --ws-log <style> WebSocket log style (\"auto\"|\"full\"|\"compact\")\n (default: \"auto\")\n\nCommands:\n call Call a Gateway method\n diagnostics Export local support diagnostics\n discover Discover gateways via Bonjour (local + wide-area if\n configured)\n health Fetch Gateway health\n install Install the Gateway service\n (launchd/systemd/schtasks)\n probe Show gateway reachability, auth capability, and\n read-probe summary (local + remote)\n restart Restart the Gateway service\n (launchd/systemd/schtasks)\n run Run the WebSocket Gateway (foreground)\n stability Fetch payload-free Gateway stability diagnostics\n start Start the Gateway service\n (launchd/systemd/schtasks)\n status Show gateway service status + probe\n connectivity/capability\n stop Stop the Gateway service (launchd/systemd/schtasks)\n uninstall Uninstall the Gateway service\n (launchd/systemd/schtasks)\n usage-cost Fetch usage cost summary from session logs\n\nExamples:\n openclaw gateway run\n Run the gateway in the foreground.\n openclaw gateway status\n Show service status plus connectivity/capability.\n openclaw gateway discover\n Find local and wide-area gateway beacons.\n openclaw gateway stability\n Show recent stability diagnostics.\n openclaw gateway call health\n Call a gateway RPC method directly.\n\nDocs: https://docs.openclaw.ai/cli/gateway\n\n",
40
+ "models": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw models [options] [command]\n\nModel discovery, scanning, and configuration\n\nOptions:\n --agent <id> Agent id to inspect (overrides\n OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)\n -h, --help Display help for command\n --status-json Output JSON (alias for `models status --json`) (default:\n false)\n --status-plain Plain output (alias for `models status --plain`) (default:\n false)\n\nCommands:\n aliases Manage model aliases\n auth Manage model auth profiles\n fallbacks Manage model fallback list\n image-fallbacks Manage image model fallback list\n list List models (configured by default)\n scan Scan OpenRouter free models for tools + images\n set Set the default model\n set-image Set the image model\n status Show configured model state\n\nDocs: https://docs.openclaw.ai/cli/models\n\n",
41
+ "plugins": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\n\nUsage: openclaw plugins [options] [command]\n\nManage OpenClaw plugins and extensions\n\nOptions:\n -h, --help Display help for command\n\nCommands:\n build Generate simple tool plugin metadata\n disable Disable a plugin in config\n doctor Report plugin load issues\n enable Enable a plugin in config\n init Create a simple tool plugin project\n inspect Inspect plugin details\n install Install a plugin or hook pack (path, archive, npm spec, git repo,\n clawhub:package, or marketplace entry)\n list List discovered plugins\n marketplace Inspect Claude-compatible plugin marketplaces\n registry Inspect or rebuild the persisted plugin registry\n search Search ClawHub plugin packages\n uninstall Uninstall a plugin\n update Update installed plugins and tracked hook packs\n validate Validate simple tool plugin metadata\n\nDocs: https://docs.openclaw.ai/cli/plugins\n\n"
42
42
  },
43
- "rootHelpText": "\nOpenClaw 2026.5.20-beta.2 (bb00b2e) — All your chats, one OpenClaw.\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 * Run and manage ACP-backed coding agents\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 capability commands (fallback alias: infer)\n channels * Add, remove, login, and inspect messaging channels\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 interactive setup and repair assistant\n cron * Schedule and inspect Gateway background jobs\n daemon * Manage the 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 Diagnose and repair config, Gateway, plugin, and channel\n problems\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the OpenClaw Gateway\n health Fetch detailed health from the running Gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed model, media, search, and embedding\n commands\n logs Tail Gateway logs locally or 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 channel messages\n migrate * Import state from another agent system\n models * List, scan, and set model providers\n node * Run and manage the headless node host service\n nodes * Pair nodes and run node-host commands through the Gateway\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Install, enable, disable, and inspect 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 * Audit, apply, and reload SecretRef-backed credentials\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and an agent workspace\n skills * List, inspect, and install agent skills\n status Show Gateway, channel, model, and recent-session status\n system * System events, heartbeat, and presence\n tasks * Inspect durable background tasks and flows\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 onboard\n Run guided setup for a local Gateway, workspace, auth, and channels.\n openclaw setup\n Create the baseline config, workspace, and session folders.\n openclaw configure\n Change models, Gateway, channels, plugins, skills, and health checks.\n openclaw status\n Check Gateway, channel, model, and recent-session status.\n openclaw doctor --fix\n Repair common config, service, plugin, and channel problems.\n openclaw channels add\n Add or update a chat channel account with guided prompts.\n openclaw channels status\n See connected messaging accounts and login state.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway run --force\n Start the Gateway and replace anything bound to its port.\n openclaw models status\n Show model/provider auth health before running agents.\n openclaw plugins list\n Inspect enabled, disabled, and installed plugins.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Run one agent turn through the Gateway and optionally deliver the 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"
43
+ "rootHelpText": "\nOpenClaw 2026.5.20 (e510042) — All your chats, one OpenClaw.\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 * Run and manage ACP-backed coding agents\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 capability commands (fallback alias: infer)\n channels * Add, remove, login, and inspect messaging channels\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 interactive setup and repair assistant\n cron * Schedule and inspect Gateway background jobs\n daemon * Manage the 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 Diagnose and repair config, Gateway, plugin, and channel\n problems\n exec-policy * Show or synchronize requested exec policy with host\n approvals\n gateway * Run, inspect, and query the OpenClaw Gateway\n health Fetch detailed health from the running Gateway\n help Display help for command\n hooks * Manage internal agent hooks\n infer * Run provider-backed model, media, search, and embedding\n commands\n logs Tail Gateway logs locally or 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 channel messages\n migrate * Import state from another agent system\n models * List, scan, and set model providers\n node * Run and manage the headless node host service\n nodes * Pair nodes and run node-host commands through the Gateway\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Install, enable, disable, and inspect 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 * Audit, apply, and reload SecretRef-backed credentials\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and an agent workspace\n skills * List, inspect, and install agent skills\n status Show Gateway, channel, model, and recent-session status\n system * System events, heartbeat, and presence\n tasks * Inspect durable background tasks and flows\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 onboard\n Run guided setup for a local Gateway, workspace, auth, and channels.\n openclaw setup\n Create the baseline config, workspace, and session folders.\n openclaw configure\n Change models, Gateway, channels, plugins, skills, and health checks.\n openclaw status\n Check Gateway, channel, model, and recent-session status.\n openclaw doctor --fix\n Repair common config, service, plugin, and channel problems.\n openclaw channels add\n Add or update a chat channel account with guided prompts.\n openclaw channels status\n See connected messaging accounts and login state.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway run --force\n Start the Gateway and replace anything bound to its port.\n openclaw models status\n Show model/provider auth health before running agents.\n openclaw plugins list\n Inspect enabled, disabled, and installed plugins.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Run one agent turn through the Gateway and optionally deliver the 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"
44
44
  }
@@ -1,6 +1,6 @@
1
1
  import { m as InteractiveReply } from "./get-reply-options.types-CMrlJhRZ.js";
2
2
  import { n as TopLevelComponents } from "./payload-U2icqU80.js";
3
- import { n as Modal, o as ComponentParserResult, r as TextDisplay, t as Label } from "./components.modal-glHG-y8o.js";
3
+ import { n as Modal, o as ComponentParserResult, r as TextDisplay, t as Label } from "./components.modal-F1ooc12a.js";
4
4
  //#region extensions/discord/src/component-custom-id.d.ts
5
5
  declare const DISCORD_COMPONENT_CUSTOM_ID_KEY = "occomp";
6
6
  declare const DISCORD_MODAL_CUSTOM_ID_KEY = "ocmodal";
@@ -506,14 +506,7 @@ declare abstract class Label extends BaseModalComponent {
506
506
  type: ComponentType;
507
507
  label: string;
508
508
  description: string | undefined;
509
- component: {
510
- custom_id: string;
511
- placeholder: string | undefined;
512
- min_values: number | undefined;
513
- max_values: number | undefined;
514
- disabled: true | undefined;
515
- required: boolean | undefined;
516
- } | APITextInputComponent | {
509
+ component: APITextInputComponent | {
517
510
  type: number;
518
511
  custom_id: string;
519
512
  options: {
@@ -525,6 +518,13 @@ declare abstract class Label extends BaseModalComponent {
525
518
  required: boolean | undefined;
526
519
  min_values: number | undefined;
527
520
  max_values: number | undefined;
521
+ } | {
522
+ custom_id: string;
523
+ placeholder: string | undefined;
524
+ min_values: number | undefined;
525
+ max_values: number | undefined;
526
+ disabled: true | undefined;
527
+ required: boolean | undefined;
528
528
  } | undefined;
529
529
  };
530
530
  }
@@ -537,18 +537,11 @@ declare abstract class Modal {
537
537
  serialize(): {
538
538
  title: string;
539
539
  custom_id: string;
540
- components: (APITextDisplayComponent | {
540
+ components: ({
541
541
  type: ComponentType;
542
542
  label: string;
543
543
  description: string | undefined;
544
- component: {
545
- custom_id: string;
546
- placeholder: string | undefined;
547
- min_values: number | undefined;
548
- max_values: number | undefined;
549
- disabled: true | undefined;
550
- required: boolean | undefined;
551
- } | APITextInputComponent | {
544
+ component: APITextInputComponent | {
552
545
  type: number;
553
546
  custom_id: string;
554
547
  options: {
@@ -560,8 +553,15 @@ declare abstract class Modal {
560
553
  required: boolean | undefined;
561
554
  min_values: number | undefined;
562
555
  max_values: number | undefined;
556
+ } | {
557
+ custom_id: string;
558
+ placeholder: string | undefined;
559
+ min_values: number | undefined;
560
+ max_values: number | undefined;
561
+ disabled: true | undefined;
562
+ required: boolean | undefined;
563
563
  } | undefined;
564
- })[];
564
+ } | APITextDisplayComponent)[];
565
565
  };
566
566
  }
567
567
  //#endregion
@@ -11,6 +11,7 @@ import { a as PluginRegistryParams, i as PluginRegistry, o as PluginTextTransfor
11
11
  import { E as registerInternalHook } from "./internal-hooks-DRn1UxBb.js";
12
12
  import { n as createPluginRegistry } from "./registry-2euYqlRV.js";
13
13
  import { t as provider_catalog_runtime_d_exports } from "./provider-catalog-runtime-Ux32Y0yS.js";
14
+
14
15
  //#region src/plugin-sdk/test-helpers/public-surface-loader.d.ts
15
16
  type AsyncBundledPluginPublicSurfaceLoader = <T extends object>(params: {
16
17
  pluginId: string;
@@ -1,4 +1,4 @@
1
- import{$ as e,B as t,F as n,G as r,H as i,I as a,J as o,K as s,L as c,M as l,N as u,P as d,R as f,U as p,V as m,W as h,_ as g,a as _,b as v,g as y,h as b,it as x,j as S,k as C,n as ee,nt as w,q as te,r as T,rt as E,t as D,tt as O,x as ne,y as k,z as A}from"./index-CsbvMbET.js";import{r as j}from"./channel-config-extras-DegI8f2n.js";import{i as M,n as N,r as P,t as re}from"./skills-shared-COO5rY4m.js";var ie=k(class extends v{constructor(){super(...arguments),this.key=E}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(ne(e),this.key=t),n}});function ae(e){let{agent:n,configForm:r,agentFilesList:a,configLoading:o,configSaving:s,configDirty:c,onConfigReload:l,onConfigSave:d,onModelChange:g,onModelFallbacksChange:_,onSelectPanel:v}=e,y=!!(e.defaultId&&n.id===e.defaultId),b=t(r,n.id),S=n.model,C=(a&&a.agentId===n.id?a.workspace:null)||b.entry?.workspace||b.defaults?.workspace||n.workspace||`default`,ee=b.entry?.model?p(b.entry?.model):b.defaults?.model?p(b.defaults?.model):p(S),w=m(n.agentRuntime),te=p(b.defaults?.model??S),T=h(b.entry?.model),D=h(b.defaults?.model)||(te===`-`?null:f(te))||(r?null:h(S)),ne=T??D??null,k=y?ne:T,j=i(b.entry?.model)??i(b.defaults?.model)??(r?null:i(S))??[],M=Array.isArray(b.entry?.skills)?b.entry?.skills:null,N=M?.length??null,P=!r||o||s,re=e=>{let t=j.filter((t,n)=>n!==e);_(n.id,t)};return x`
1
+ import{$ as e,B as t,F as n,G as r,H as i,I as a,J as o,K as s,L as c,M as l,N as u,P as d,R as f,U as p,V as m,W as h,_ as g,a as _,b as v,g as y,h as b,it as x,j as S,k as C,n as ee,nt as w,q as te,r as T,rt as E,t as D,tt as O,x as ne,y as k,z as A}from"./index-DIlhMoR6.js";import{r as j}from"./channel-config-extras-BESl0um4.js";import{i as M,n as N,r as P,t as re}from"./skills-shared-ox0NI8xx.js";var ie=k(class extends v{constructor(){super(...arguments),this.key=E}render(e,t){return this.key=e,t}update(e,[t,n]){return t!==this.key&&(ne(e),this.key=t),n}});function ae(e){let{agent:n,configForm:r,agentFilesList:a,configLoading:o,configSaving:s,configDirty:c,onConfigReload:l,onConfigSave:d,onModelChange:g,onModelFallbacksChange:_,onSelectPanel:v}=e,y=!!(e.defaultId&&n.id===e.defaultId),b=t(r,n.id),S=n.model,C=(a&&a.agentId===n.id?a.workspace:null)||b.entry?.workspace||b.defaults?.workspace||n.workspace||`default`,ee=b.entry?.model?p(b.entry?.model):b.defaults?.model?p(b.defaults?.model):p(S),w=m(n.agentRuntime),te=p(b.defaults?.model??S),T=h(b.entry?.model),D=h(b.defaults?.model)||(te===`-`?null:f(te))||(r?null:h(S)),ne=T??D??null,k=y?ne:T,j=i(b.entry?.model)??i(b.defaults?.model)??(r?null:i(S))??[],M=Array.isArray(b.entry?.skills)?b.entry?.skills:null,N=M?.length??null,P=!r||o||s,re=e=>{let t=j.filter((t,n)=>n!==e);_(n.id,t)};return x`
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>
@@ -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{wn as renderAgents};
1008
- //# sourceMappingURL=agents-xO0I72RQ.js.map
1008
+ //# sourceMappingURL=agents-BEdVHjJO.js.map
@@ -1,2 +1,2 @@
1
- import{tt as e}from"./index-CsbvMbET.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-DegI8f2n.js.map
1
+ import{tt as e}from"./index-DIlhMoR6.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-BESl0um4.js.map
@@ -1,4 +1,4 @@
1
- import{A as e,X as t,Z as n,c as r,it as i,k as a,l as o,rt as s,tt as c}from"./index-CsbvMbET.js";import{n as l,t as u}from"./channel-config-extras-DegI8f2n.js";function d(e,t){let r=e;for(let e of t){if(!r)return null;let t=n(r);if(t===`object`){let t=r.properties??{};if(typeof e==`string`&&t[e]){r=t[e];continue}let n=r.additionalProperties;if(typeof e==`string`&&n&&typeof n==`object`){r=n;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;r=(Array.isArray(r.items)?r.items[0]:r.items)??null;continue}return null}return r}function f(e,t){return l(e,t)??{}}var p=[`groupPolicy`,`streamMode`,`dmPolicy`];function m(e){let t=p.flatMap(t=>t in e?[[t,e[t]]]:[]);return t.length===0?null:i`
1
+ import{A as e,X as t,Z as n,c as r,it as i,k as a,l as o,rt as s,tt as c}from"./index-DIlhMoR6.js";import{n as l,t as u}from"./channel-config-extras-BESl0um4.js";function d(e,t){let r=e;for(let e of t){if(!r)return null;let t=n(r);if(t===`object`){let t=r.properties??{};if(typeof e==`string`&&t[e]){r=t[e];continue}let n=r.additionalProperties;if(typeof e==`string`&&n&&typeof n==`object`){r=n;continue}return null}if(t===`array`){if(typeof e!=`number`)return null;r=(Array.isArray(r.items)?r.items[0]:r.items)??null;continue}return null}return r}function f(e,t){return l(e,t)??{}}var p=[`groupPolicy`,`streamMode`,`dmPolicy`];function m(e){let t=p.flatMap(t=>t in e?[[t,e[t]]]:[]);return t.length===0?null:i`
2
2
  <div class="status-list" style="margin-top: 12px;">
3
3
  ${t.map(([e,t])=>i`
4
4
  <div>
@@ -364,4 +364,4 @@ ${e.snapshot?JSON.stringify(e.snapshot,null,2):c(`channels.health.noSnapshotYet`
364
364
  </div>
365
365
  </div>
366
366
  `}export{F as renderChannels};
367
- //# sourceMappingURL=channels-BuQ5ZXMO.js.map
367
+ //# sourceMappingURL=channels-BKBMKXZ9.js.map
@@ -1,4 +1,4 @@
1
- import{C as e,D as t,S as n,Y as r,a as i,g as a,it as o,k as s,m as c,n as l,rt as u,tt as d}from"./index-CsbvMbET.js";function f(){return[{value:`ok`,label:d(`cron.runs.runStatusOk`)},{value:`error`,label:d(`cron.runs.runStatusError`)},{value:`skipped`,label:d(`cron.runs.runStatusSkipped`)}]}function p(){return[{value:`delivered`,label:d(`cron.runs.deliveryDelivered`)},{value:`not-delivered`,label:d(`cron.runs.deliveryNotDelivered`)},{value:`unknown`,label:d(`cron.runs.deliveryUnknown`)},{value:`not-requested`,label:d(`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(e){return o`
1
+ import{C as e,D as t,S as n,Y as r,a as i,g as a,it as o,k as s,m as c,n as l,rt as u,tt as d}from"./index-DIlhMoR6.js";function f(){return[{value:`ok`,label:d(`cron.runs.runStatusOk`)},{value:`error`,label:d(`cron.runs.runStatusError`)},{value:`skipped`,label:d(`cron.runs.runStatusSkipped`)}]}function p(){return[{value:`delivered`,label:d(`cron.runs.deliveryDelivered`)},{value:`not-delivered`,label:d(`cron.runs.deliveryNotDelivered`)},{value:`unknown`,label:d(`cron.runs.deliveryUnknown`)},{value:`not-requested`,label:d(`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(e){return o`
2
2
  <div class="field cron-filter-dropdown" data-filter=${e.id}>
3
3
  <span>${e.title}</span>
4
4
  <details class="cron-filter-dropdown__details">
@@ -1010,4 +1010,4 @@ import{C as e,D as t,S as n,Y as r,a as i,g as a,it as o,k as s,m as c,n as l,rt
1010
1010
  </div>
1011
1011
  </div>
1012
1012
  `}export{E as renderCron};
1013
- //# sourceMappingURL=cron-DKkVCn18.js.map
1013
+ //# sourceMappingURL=cron-BG199yeW.js.map
@@ -1,4 +1,4 @@
1
- import{i as e,it as t,rt as n,tt as r}from"./index-CsbvMbET.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?r(`debug.security.critical`,{count:String(o)}):s>0?r(`debug.security.warnings`,{count:String(s)}):r(`debug.security.noCriticalIssues`);return t`
1
+ import{i as e,it as t,rt as n,tt as r}from"./index-DIlhMoR6.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?r(`debug.security.critical`,{count:String(o)}):s>0?r(`debug.security.warnings`,{count:String(s)}):r(`debug.security.noCriticalIssues`);return t`
2
2
  <section class="grid">
3
3
  <div class="card">
4
4
  <div class="row" style="justify-content: space-between;">
@@ -94,4 +94,4 @@ ${e(n.payload)}</pre
94
94
  `}
95
95
  </section>
96
96
  `}export{i as renderDebug};
97
- //# sourceMappingURL=debug-CUcp57fH.js.map
97
+ //# sourceMappingURL=debug-DXtodFp8.js.map