@termix-it/cryptoclaw 1.0.1 → 1.0.2

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 (137) hide show
  1. package/CHANGELOG.md +93 -93
  2. package/assets/favicon.svg +22 -0
  3. package/dist/{acp-cli-Bsrf851G.js → acp-cli-CBFKSvET.js} +2 -2
  4. package/dist/{acp-cli-C9D24JzU.js → acp-cli-CEPAR8vh.js} +2 -2
  5. package/dist/{agent-BH-rLX4t.js → agent-8dTCwA-D.js} +2 -2
  6. package/dist/{agent-mns7e_gL.js → agent-sjalTGVA.js} +2 -2
  7. package/dist/build-info.json +3 -3
  8. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  9. package/dist/{channel-options-CUOi5M0r.js → channel-options-B951pKy8.js} +1 -1
  10. package/dist/{channel-options-B3XNSAJG.js → channel-options-DJsSCLD8.js} +1 -1
  11. package/dist/{channels-cli-BRxxmnVq.js → channels-cli-Fv9FTQXn.js} +6 -6
  12. package/dist/{channels-cli-xTlvzb2Z.js → channels-cli-Lq6EWRJ9.js} +5 -5
  13. package/dist/cli/daemon-cli.js +1 -1
  14. package/dist/{cli-B7NiNFc2.js → cli-Bzyu6rQE.js} +2 -2
  15. package/dist/{cli-6yV4qEGI.js → cli-DJnpasWd.js} +2 -2
  16. package/dist/{command-options-DeWanQ_1.js → command-options-DBpEhnW5.js} +1 -1
  17. package/dist/{completion-cli-DyiCPCwN.js → completion-cli-Bd5FrGHg.js} +25 -25
  18. package/dist/{completion-cli-BIA4Amxj.js → completion-cli-Cs-B1hk7.js} +1 -1
  19. package/dist/{config-guard-C4vrsjgm.js → config-guard-Csl9Ubn5.js} +36 -36
  20. package/dist/{configure-BupCndyG.js → configure-CeTzu0Ed.js} +14 -14
  21. package/dist/{configure-B28_m98z.js → configure-CxPJaP8X.js} +14 -14
  22. package/dist/control-ui/apple-touch-icon.png +0 -0
  23. package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
  24. package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
  25. package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
  26. package/dist/control-ui/favicon-32.png +0 -0
  27. package/dist/control-ui/favicon.ico +0 -0
  28. package/dist/control-ui/favicon.svg +4 -4
  29. package/dist/control-ui/index.html +2 -2
  30. package/dist/{cron-cli-CaCwFGvb.js → cron-cli-D8gKivN0.js} +2 -2
  31. package/dist/{cron-cli-v8FMB7_N.js → cron-cli-yC5Cy77c.js} +2 -2
  32. package/dist/{daemon-cli-JZ9ONoBh.js → daemon-cli-BM8zb09s.js} +5 -5
  33. package/dist/{daemon-cli-D24Obngu.js → daemon-cli-D8AC0Q_A.js} +5 -5
  34. package/dist/{deps-DY5l__pK.js → deps-BhcPiVuz.js} +1 -1
  35. package/dist/{deps-BDQ4UyT5.js → deps-ZGqhOjkR.js} +1 -1
  36. package/dist/{directory-cli-B8IA2RSF.js → directory-cli--IOOMz66.js} +2 -2
  37. package/dist/{directory-cli-C9y2B84i.js → directory-cli-DGFlpQ4T.js} +2 -2
  38. package/dist/{dns-cli-DoO4a6op.js → dns-cli-DkhYuREi.js} +2 -2
  39. package/dist/{dns-cli-DJUkN_WU.js → dns-cli-fQ4wu1HJ.js} +2 -2
  40. package/dist/{docs-cli-CcQ9shjL.js → docs-cli-BgnDzmFT.js} +5 -5
  41. package/dist/{docs-cli-CPus_TqL.js → docs-cli-CPaJzUSD.js} +5 -5
  42. package/dist/{doctor-D3VWObNR.js → doctor-D6M3Hc0a.js} +3 -3
  43. package/dist/{doctor-ClJURW58.js → doctor-DRRL31R4.js} +3 -3
  44. package/dist/entry.js +1 -1
  45. package/dist/{exec-approvals-cli-DC9v48w9.js → exec-approvals-cli-BhEdzGao.js} +3 -3
  46. package/dist/{exec-approvals-cli-Djev4HNk.js → exec-approvals-cli-DHMroOAh.js} +3 -3
  47. package/dist/extensionAPI.js +8 -8
  48. package/dist/{gateway-cli-CHZrqsVp.js → gateway-cli-CbQ4xoXp.js} +14 -14
  49. package/dist/{gateway-cli--xOlaN5f.js → gateway-cli-DO7lIBZ5.js} +15 -15
  50. package/dist/{github-copilot-auth-CLh6feLw.js → github-copilot-auth-D6I2MUxi.js} +1 -1
  51. package/dist/{github-copilot-auth-CeBZ5KDq.js → github-copilot-auth-DvShXmvU.js} +1 -1
  52. package/dist/{health-format-QWTDdHdV.js → health-format-DlvTEKqI.js} +1 -1
  53. package/dist/{health-format-D0ylScGO.js → health-format-SZpheYuf.js} +1 -1
  54. package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
  55. package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
  56. package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
  57. package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
  58. package/dist/{hooks-cli-IS7KFMZy.js → hooks-cli-CedlcxxR.js} +4 -4
  59. package/dist/{hooks-cli-C9066q7q.js → hooks-cli-DRarvOK2.js} +4 -4
  60. package/dist/index.js +38 -38
  61. package/dist/{links-DXtV_A64.js → links-Dv1EDiwa.js} +1 -1
  62. package/dist/{links-KcaRpMJg.js → links-kbubTyay.js} +1 -1
  63. package/dist/{loader-BNqYr2Am.js → loader-DE_vKAH5.js} +10 -10
  64. package/dist/{logs-cli-BRQOdLoD.js → logs-cli-_DHuOrR4.js} +2 -2
  65. package/dist/{logs-cli-D08L6RIX.js → logs-cli-emy-Mg4S.js} +2 -2
  66. package/dist/{models-cli-CovM2RsI.js → models-cli-CdrDfutq.js} +4 -4
  67. package/dist/{models-cli-D0bxf-ID.js → models-cli-CgIqfTHx.js} +4 -4
  68. package/dist/{node-cli-whSrpDNN.js → node-cli-Bsn9lQ6O.js} +2 -2
  69. package/dist/{node-cli-DoMmvbg-.js → node-cli-Ckvs6bcI.js} +2 -2
  70. package/dist/{nodes-cli-CeMIAaHZ.js → nodes-cli-BELOAYB6.js} +2 -2
  71. package/dist/{nodes-cli-DRmkJeRw.js → nodes-cli-CTQPoAcf.js} +2 -2
  72. package/dist/{onboard-channels-uZ5vLniX.js → onboard-channels-B5qHfMk8.js} +2 -2
  73. package/dist/{onboard-channels-xteKATz4.js → onboard-channels-BgchLTab.js} +2 -2
  74. package/dist/{onboard-skills-tUnJDYV8.js → onboard-skills-CyG0xbsu.js} +7 -7
  75. package/dist/{onboard-skills-CKpZ4Xwu.js → onboard-skills-DEnuz7z3.js} +7 -7
  76. package/dist/{onboarding-DX15S5UW.js → onboarding-B6aTF0nd.js} +18 -18
  77. package/dist/{pairing-cli-Oq8UZJRJ.js → pairing-cli-C_PnyRzK.js} +2 -2
  78. package/dist/{pairing-cli-B7Bji_j_.js → pairing-cli-CocCRLzF.js} +2 -2
  79. package/dist/plugin-sdk/index.js +1 -1
  80. package/dist/{plugins-cli-BVoSu7m7.js → plugins-cli-DB1NYN9W.js} +5 -5
  81. package/dist/{plugins-cli-ChkSbzKF.js → plugins-cli-Dn9I2nvT.js} +5 -5
  82. package/dist/{program-DpxSYPmu.js → program-CL1V1uQh.js} +18 -18
  83. package/dist/{register.subclis-DG215F73.js → register.subclis-Bf9yES9h.js} +26 -26
  84. package/dist/{reply-3TWXjNUA.js → reply-qWVVjmhR.js} +10 -10
  85. package/dist/{run-main-D43qwCZX.js → run-main-C12Z921D.js} +19 -19
  86. package/dist/{sandbox-cli-BPdnq1hk.js → sandbox-cli-DVfJ38Q2.js} +4 -4
  87. package/dist/{sandbox-cli-a3oEVi7W.js → sandbox-cli-DqrtTHAP.js} +4 -4
  88. package/dist/{security-cli-Devsjfv_.js → security-cli-2AAajc4y.js} +2 -2
  89. package/dist/{security-cli-C1XbzHNF.js → security-cli-YL2ZTkkR.js} +2 -2
  90. package/dist/{server-node-events-BVLdeCJU.js → server-node-events-uUSBf7hZ.js} +4 -4
  91. package/dist/{server-node-events-DLZj55Ir.js → server-node-events-x6ZMjAs1.js} +4 -4
  92. package/dist/{skills-cli-DnSEVLxn.js → skills-cli-CYZbvr7O.js} +2 -2
  93. package/dist/{skills-cli-g1nC-Yz9.js → skills-cli-eDUNGpwb.js} +2 -2
  94. package/dist/{status-D09U-Iku.js → status-BnbwLzB2.js} +1 -1
  95. package/dist/{status-1TQxVU1M.js → status-CN2V3fan.js} +18 -18
  96. package/dist/{status-CbMg399g.js → status-DCrBN9vJ.js} +1 -1
  97. package/dist/{system-cli-D3UizeGy.js → system-cli-BEmIixtY.js} +2 -2
  98. package/dist/{system-cli-DJ_e6msK.js → system-cli-ZxnlO0-v.js} +2 -2
  99. package/dist/{tui-cli-PKJ39Zsl.js → tui-cli-B9iCyCn2.js} +2 -2
  100. package/dist/{tui-cli-DPhl5a66.js → tui-cli-iakTIAvk.js} +2 -2
  101. package/dist/{update-cli-C5x50A17.js → update-cli-DUO4CVNB.js} +12 -12
  102. package/dist/{update-cli-DKLyK_Tu.js → update-cli-DlXzjuIc.js} +11 -11
  103. package/dist/{update-runner-DotP-T6Y.js → update-runner-L1EJYQRF.js} +2 -2
  104. package/dist/{update-runner-vOge0-Wj.js → update-runner-eJ773fp-.js} +2 -2
  105. package/dist/{webhooks-cli-DEqtDAwW.js → webhooks-cli-BLHZn_at.js} +2 -2
  106. package/dist/{webhooks-cli-ORjumqe4.js → webhooks-cli-UhujyhVU.js} +2 -2
  107. package/docs/assets/pixel-lobster.svg +3 -3
  108. package/docs/blockchain/aave.md +72 -0
  109. package/docs/blockchain/agent-identity.md +73 -0
  110. package/docs/blockchain/contracts.md +96 -0
  111. package/docs/blockchain/defi.md +61 -0
  112. package/docs/blockchain/index.md +92 -0
  113. package/docs/blockchain/market-data.md +98 -0
  114. package/docs/blockchain/nft.md +44 -0
  115. package/docs/blockchain/portfolio.md +57 -0
  116. package/docs/blockchain/security.md +83 -0
  117. package/docs/blockchain/swap.md +89 -0
  118. package/docs/blockchain/wallet.md +77 -0
  119. package/docs/concepts/features.md +29 -10
  120. package/docs/docs.json +76 -6
  121. package/docs/index.md +44 -44
  122. package/docs/start/getting-started.md +10 -9
  123. package/docs/zh-CN/blockchain/aave.md +63 -0
  124. package/docs/zh-CN/blockchain/agent-identity.md +62 -0
  125. package/docs/zh-CN/blockchain/contracts.md +64 -0
  126. package/docs/zh-CN/blockchain/defi.md +49 -0
  127. package/docs/zh-CN/blockchain/index.md +92 -0
  128. package/docs/zh-CN/blockchain/market-data.md +68 -0
  129. package/docs/zh-CN/blockchain/nft.md +43 -0
  130. package/docs/zh-CN/blockchain/portfolio.md +49 -0
  131. package/docs/zh-CN/blockchain/security.md +75 -0
  132. package/docs/zh-CN/blockchain/swap.md +68 -0
  133. package/docs/zh-CN/blockchain/wallet.md +71 -0
  134. package/extensions/voice-call/README.md +2 -2
  135. package/extensions/voice-call/src/cli.ts +1 -1
  136. package/package.json +1 -1
  137. package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- Docs: https://docs.cryptoclaw.ai
3
+ Docs: https://docs.openclaw.ai
4
4
 
5
5
  ## Unreleased — CryptoClaw
6
6
 
@@ -483,28 +483,28 @@ Docs: https://docs.cryptoclaw.ai
483
483
 
484
484
  ### Highlights
485
485
 
486
- - Providers: Ollama discovery + docs; Venice guide upgrades + cross-links. (#1606) Thanks @abhaymundhara. https://docs.cryptoclaw.ai/providers/ollama https://docs.cryptoclaw.ai/providers/venice
486
+ - Providers: Ollama discovery + docs; Venice guide upgrades + cross-links. (#1606) Thanks @abhaymundhara. https://docs.openclaw.ai/providers/ollama https://docs.openclaw.ai/providers/venice
487
487
  - Channels: LINE plugin (Messaging API) with rich replies + quick replies. (#1630) Thanks @plum-dawg.
488
- - TTS: Edge fallback (keyless) + `/tts` auto modes. (#1668, #1667) Thanks @steipete, @sebslight. https://docs.cryptoclaw.ai/tts
489
- - Exec approvals: approve in-chat via `/approve` across all channels (including plugins). (#1621) Thanks @czekaj. https://docs.cryptoclaw.ai/tools/exec-approvals https://docs.cryptoclaw.ai/tools/slash-commands
490
- - Telegram: DM topics as separate sessions + outbound link preview toggle. (#1597, #1700) Thanks @rohannagpal, @zerone0x. https://docs.cryptoclaw.ai/channels/telegram
488
+ - TTS: Edge fallback (keyless) + `/tts` auto modes. (#1668, #1667) Thanks @steipete, @sebslight. https://docs.openclaw.ai/tts
489
+ - Exec approvals: approve in-chat via `/approve` across all channels (including plugins). (#1621) Thanks @czekaj. https://docs.openclaw.ai/tools/exec-approvals https://docs.openclaw.ai/tools/slash-commands
490
+ - Telegram: DM topics as separate sessions + outbound link preview toggle. (#1597, #1700) Thanks @rohannagpal, @zerone0x. https://docs.openclaw.ai/channels/telegram
491
491
 
492
492
  ### Changes
493
493
 
494
494
  - Channels: add LINE plugin (Messaging API) with rich replies, quick replies, and plugin HTTP registry. (#1630) Thanks @plum-dawg.
495
- - TTS: add Edge TTS provider fallback, defaulting to keyless Edge with MP3 retry on format failures. (#1668) Thanks @steipete. https://docs.cryptoclaw.ai/tts
496
- - TTS: add auto mode enum (off/always/inbound/tagged) with per-session `/tts` override. (#1667) Thanks @sebslight. https://docs.cryptoclaw.ai/tts
495
+ - TTS: add Edge TTS provider fallback, defaulting to keyless Edge with MP3 retry on format failures. (#1668) Thanks @steipete. https://docs.openclaw.ai/tts
496
+ - TTS: add auto mode enum (off/always/inbound/tagged) with per-session `/tts` override. (#1667) Thanks @sebslight. https://docs.openclaw.ai/tts
497
497
  - Telegram: treat DM topics as separate sessions and keep DM history limits stable with thread suffixes. (#1597) Thanks @rohannagpal.
498
- - Telegram: add `channels.telegram.linkPreview` to toggle outbound link previews. (#1700) Thanks @zerone0x. https://docs.cryptoclaw.ai/channels/telegram
499
- - Web search: add Brave freshness filter parameter for time-scoped results. (#1688) Thanks @JonUleis. https://docs.cryptoclaw.ai/tools/web
498
+ - Telegram: add `channels.telegram.linkPreview` to toggle outbound link previews. (#1700) Thanks @zerone0x. https://docs.openclaw.ai/channels/telegram
499
+ - Web search: add Brave freshness filter parameter for time-scoped results. (#1688) Thanks @JonUleis. https://docs.openclaw.ai/tools/web
500
500
  - UI: refresh Control UI dashboard design system (colors, icons, typography). (#1745, #1786) Thanks @EnzeD, @mousberg.
501
- - Exec approvals: forward approval prompts to chat with `/approve` for all channels (including plugins). (#1621) Thanks @czekaj. https://docs.cryptoclaw.ai/tools/exec-approvals https://docs.cryptoclaw.ai/tools/slash-commands
501
+ - Exec approvals: forward approval prompts to chat with `/approve` for all channels (including plugins). (#1621) Thanks @czekaj. https://docs.openclaw.ai/tools/exec-approvals https://docs.openclaw.ai/tools/slash-commands
502
502
  - Gateway: expose config.patch in the gateway tool with safe partial updates + restart sentinel. (#1653) Thanks @Glucksberg.
503
- - Diagnostics: add diagnostic flags for targeted debug logs (config + env override). https://docs.cryptoclaw.ai/diagnostics/flags
503
+ - Diagnostics: add diagnostic flags for targeted debug logs (config + env override). https://docs.openclaw.ai/diagnostics/flags
504
504
  - Docs: expand FAQ (migration, scheduling, concurrency, model recommendations, OpenAI subscription auth, Pi sizing, hackable install, docs SSL workaround).
505
505
  - Docs: add verbose installer troubleshooting guidance.
506
506
  - Docs: add macOS VM guide with local/hosted options + VPS/nodes guidance. (#1693) Thanks @f-trycua.
507
- - Docs: add Bedrock EC2 instance role setup + IAM steps. (#1625) Thanks @sergical. https://docs.cryptoclaw.ai/bedrock
507
+ - Docs: add Bedrock EC2 instance role setup + IAM steps. (#1625) Thanks @sergical. https://docs.openclaw.ai/bedrock
508
508
  - Docs: update Fly.io guide notes.
509
509
  - Dev: add prek pre-commit hooks + dependabot config for weekly updates. (#1720) Thanks @dguido.
510
510
 
@@ -516,11 +516,11 @@ Docs: https://docs.cryptoclaw.ai
516
516
  - Web UI: hide internal `message_id` hints in chat bubbles.
517
517
  - Gateway: allow Control UI token-only auth to skip device pairing even when device identity is present (`gateway.controlUi.allowInsecureAuth`). (#1679) Thanks @steipete.
518
518
  - Matrix: decrypt E2EE media attachments with preflight size guard. (#1744) Thanks @araa47.
519
- - BlueBubbles: route phone-number targets to DMs, avoid leaking routing IDs, and auto-create missing DMs (Private API required). (#1751) Thanks @tyler6204. https://docs.cryptoclaw.ai/channels/bluebubbles
519
+ - BlueBubbles: route phone-number targets to DMs, avoid leaking routing IDs, and auto-create missing DMs (Private API required). (#1751) Thanks @tyler6204. https://docs.openclaw.ai/channels/bluebubbles
520
520
  - BlueBubbles: keep part-index GUIDs in reply tags when short IDs are missing.
521
521
  - iMessage: normalize chat_id/chat_guid/chat_identifier prefixes case-insensitively and keep service-prefixed handles stable. (#1708) Thanks @aaronn.
522
522
  - Signal: repair reaction sends (group/UUID targets + CLI author flags). (#1651) Thanks @vilkasdev.
523
- - Signal: add configurable signal-cli startup timeout + external daemon mode docs. (#1677) https://docs.cryptoclaw.ai/channels/signal
523
+ - Signal: add configurable signal-cli startup timeout + external daemon mode docs. (#1677) https://docs.openclaw.ai/channels/signal
524
524
  - Telegram: set fetch duplex="half" for uploads on Node 22 to avoid sendPhoto failures. (#1684) Thanks @commdata2338.
525
525
  - Telegram: use wrapped fetch for long-polling on Node to normalize AbortSignal handling. (#1639)
526
526
  - Telegram: honor per-account proxy for outbound API calls. (#1774) Thanks @radek-paclt.
@@ -560,26 +560,26 @@ Docs: https://docs.cryptoclaw.ai
560
560
 
561
561
  ### Highlights
562
562
 
563
- - TTS: move Telegram TTS into core + enable model-driven TTS tags by default for expressive audio replies. (#1559) Thanks @Glucksberg. https://docs.cryptoclaw.ai/tts
564
- - Gateway: add `/tools/invoke` HTTP endpoint for direct tool calls (auth + tool policy enforced). (#1575) Thanks @vignesh07. https://docs.cryptoclaw.ai/gateway/tools-invoke-http-api
565
- - Heartbeat: per-channel visibility controls (OK/alerts/indicator). (#1452) Thanks @dlauer. https://docs.cryptoclaw.ai/gateway/heartbeat
566
- - Deploy: add Fly.io deployment support + guide. (#1570) https://docs.cryptoclaw.ai/platforms/fly
567
- - Channels: add Tlon/Urbit channel plugin (DMs, group mentions, thread replies). (#1544) Thanks @wca4a. https://docs.cryptoclaw.ai/channels/tlon
563
+ - TTS: move Telegram TTS into core + enable model-driven TTS tags by default for expressive audio replies. (#1559) Thanks @Glucksberg. https://docs.openclaw.ai/tts
564
+ - Gateway: add `/tools/invoke` HTTP endpoint for direct tool calls (auth + tool policy enforced). (#1575) Thanks @vignesh07. https://docs.openclaw.ai/gateway/tools-invoke-http-api
565
+ - Heartbeat: per-channel visibility controls (OK/alerts/indicator). (#1452) Thanks @dlauer. https://docs.openclaw.ai/gateway/heartbeat
566
+ - Deploy: add Fly.io deployment support + guide. (#1570) https://docs.openclaw.ai/platforms/fly
567
+ - Channels: add Tlon/Urbit channel plugin (DMs, group mentions, thread replies). (#1544) Thanks @wca4a. https://docs.openclaw.ai/channels/tlon
568
568
 
569
569
  ### Changes
570
570
 
571
- - Channels: allow per-group tool allow/deny policies across built-in + plugin channels. (#1546) Thanks @adam91holt. https://docs.cryptoclaw.ai/multi-agent-sandbox-tools
572
- - Agents: add Bedrock auto-discovery defaults + config overrides. (#1553) Thanks @fal3. https://docs.cryptoclaw.ai/bedrock
573
- - CLI: add `openclaw system` for system events + heartbeat controls; remove standalone `wake`. (commit 71203829d) https://docs.cryptoclaw.ai/cli/system
574
- - CLI: add live auth probes to `openclaw models status` for per-profile verification. (commit 40181afde) https://docs.cryptoclaw.ai/cli/models
571
+ - Channels: allow per-group tool allow/deny policies across built-in + plugin channels. (#1546) Thanks @adam91holt. https://docs.openclaw.ai/multi-agent-sandbox-tools
572
+ - Agents: add Bedrock auto-discovery defaults + config overrides. (#1553) Thanks @fal3. https://docs.openclaw.ai/bedrock
573
+ - CLI: add `openclaw system` for system events + heartbeat controls; remove standalone `wake`. (commit 71203829d) https://docs.openclaw.ai/cli/system
574
+ - CLI: add live auth probes to `openclaw models status` for per-profile verification. (commit 40181afde) https://docs.openclaw.ai/cli/models
575
575
  - CLI: restart the gateway by default after `openclaw update`; add `--no-restart` to skip it. (commit 2c85b1b40)
576
576
  - Browser: add node-host proxy auto-routing for remote gateways (configurable per gateway/node). (commit c3cb26f7c)
577
- - Plugins: add optional `llm-task` JSON-only tool for workflows. (#1498) Thanks @vignesh07. https://docs.cryptoclaw.ai/tools/llm-task
577
+ - Plugins: add optional `llm-task` JSON-only tool for workflows. (#1498) Thanks @vignesh07. https://docs.openclaw.ai/tools/llm-task
578
578
  - Markdown: add per-channel table conversion (bullets for Signal/WhatsApp, code blocks elsewhere). (#1495) Thanks @odysseus0.
579
579
  - Agents: keep system prompt time zone-only and move current time to `session_status` for better cache hits. (commit 66eec295b)
580
580
  - Agents: remove redundant bash tool alias from tool registration/display. (#1571) Thanks @Takhoffman.
581
- - Docs: add cron vs heartbeat decision guide (with Lobster workflow notes). (#1533) Thanks @JustYannicc. https://docs.cryptoclaw.ai/automation/cron-vs-heartbeat
582
- - Docs: clarify HEARTBEAT.md empty file skips heartbeats, missing file still runs. (#1535) Thanks @JustYannicc. https://docs.cryptoclaw.ai/gateway/heartbeat
581
+ - Docs: add cron vs heartbeat decision guide (with Lobster workflow notes). (#1533) Thanks @JustYannicc. https://docs.openclaw.ai/automation/cron-vs-heartbeat
582
+ - Docs: clarify HEARTBEAT.md empty file skips heartbeats, missing file still runs. (#1535) Thanks @JustYannicc. https://docs.openclaw.ai/gateway/heartbeat
583
583
 
584
584
  ### Fixes
585
585
 
@@ -661,15 +661,15 @@ Docs: https://docs.cryptoclaw.ai
661
661
 
662
662
  ### Fixes
663
663
 
664
- - Control UI: ignore bootstrap identity placeholder text for avatar values and fall back to the default avatar. https://docs.cryptoclaw.ai/cli/agents https://docs.cryptoclaw.ai/web/control-ui
664
+ - Control UI: ignore bootstrap identity placeholder text for avatar values and fall back to the default avatar. https://docs.openclaw.ai/cli/agents https://docs.openclaw.ai/web/control-ui
665
665
  - Slack: remove deprecated `filetype` field from `files.uploadV2` to eliminate API warnings. (#1447)
666
666
 
667
667
  ## 2026.1.21
668
668
 
669
669
  ### Changes
670
670
 
671
- - Highlight: Lobster optional plugin tool for typed workflows + approval gates. https://docs.cryptoclaw.ai/tools/lobster
672
- - Lobster: allow workflow file args via `argsJson` in the plugin tool. https://docs.cryptoclaw.ai/tools/lobster
671
+ - Highlight: Lobster optional plugin tool for typed workflows + approval gates. https://docs.openclaw.ai/tools/lobster
672
+ - Lobster: allow workflow file args via `argsJson` in the plugin tool. https://docs.openclaw.ai/tools/lobster
673
673
  - Heartbeat: allow running heartbeats in an explicit session key. (#1256) Thanks @zknicker.
674
674
  - CLI: default exec approvals to the local host, add gateway/node targeting flags, and show target details in allowlist output.
675
675
  - CLI: exec approvals mutations render tables instead of raw JSON.
@@ -681,17 +681,17 @@ Docs: https://docs.cryptoclaw.ai
681
681
  - Sessions: add per-channel reset overrides via `session.resetByChannel`. (#1353) Thanks @cash-echo-bot.
682
682
  - Agents: add identity avatar config support and Control UI avatar rendering. (#1329, #1424) Thanks @dlauer.
683
683
  - UI: show per-session assistant identity in the Control UI. (#1420) Thanks @robbyczgw-cla.
684
- - CLI: add `openclaw update wizard` for interactive channel selection and restart prompts. https://docs.cryptoclaw.ai/cli/update
684
+ - CLI: add `openclaw update wizard` for interactive channel selection and restart prompts. https://docs.openclaw.ai/cli/update
685
685
  - Signal: add typing indicators and DM read receipts via signal-cli.
686
686
  - MSTeams: add file uploads, adaptive cards, and attachment handling improvements. (#1410) Thanks @Evizero.
687
687
  - Onboarding: remove the run setup-token auth option (paste setup-token or reuse CLI creds instead).
688
- - Docs: add troubleshooting entry for gateway.mode blocking gateway start. https://docs.cryptoclaw.ai/gateway/troubleshooting
688
+ - Docs: add troubleshooting entry for gateway.mode blocking gateway start. https://docs.openclaw.ai/gateway/troubleshooting
689
689
  - Docs: add /model allowlist troubleshooting note. (#1405)
690
690
  - Docs: add per-message Gmail search example for gog. (#1220) Thanks @mbelinky.
691
691
 
692
692
  ### Breaking
693
693
 
694
- - **BREAKING:** Control UI now rejects insecure HTTP without device identity by default. Use HTTPS (Tailscale Serve) or set `gateway.controlUi.allowInsecureAuth: true` to allow token-only auth. https://docs.cryptoclaw.ai/web/control-ui#insecure-http
694
+ - **BREAKING:** Control UI now rejects insecure HTTP without device identity by default. Use HTTPS (Tailscale Serve) or set `gateway.controlUi.allowInsecureAuth: true` to allow token-only auth. https://docs.openclaw.ai/web/control-ui#insecure-http
695
695
  - **BREAKING:** Envelope and system event timestamps now default to host-local time (was UTC) so agents don’t have to constantly convert.
696
696
 
697
697
  ### Fixes
@@ -719,68 +719,68 @@ Docs: https://docs.cryptoclaw.ai
719
719
 
720
720
  ### Changes
721
721
 
722
- - Control UI: add copy-as-markdown with error feedback. (#1345) https://docs.cryptoclaw.ai/web/control-ui
723
- - Control UI: drop the legacy list view. (#1345) https://docs.cryptoclaw.ai/web/control-ui
724
- - TUI: add syntax highlighting for code blocks. (#1200) https://docs.cryptoclaw.ai/tui
725
- - TUI: session picker shows derived titles, fuzzy search, relative times, and last message preview. (#1271) https://docs.cryptoclaw.ai/tui
726
- - TUI: add a searchable model picker for quicker model selection. (#1198) https://docs.cryptoclaw.ai/tui
727
- - TUI: add input history (up/down) for submitted messages. (#1348) https://docs.cryptoclaw.ai/tui
728
- - ACP: add `openclaw acp` for IDE integrations. https://docs.cryptoclaw.ai/cli/acp
729
- - ACP: add `openclaw acp client` interactive harness for debugging. https://docs.cryptoclaw.ai/cli/acp
730
- - Skills: add download installs with OS-filtered options. https://docs.cryptoclaw.ai/tools/skills
731
- - Skills: add the local sherpa-onnx-tts skill. https://docs.cryptoclaw.ai/tools/skills
732
- - Memory: add hybrid BM25 + vector search (FTS5) with weighted merging and fallback. https://docs.cryptoclaw.ai/concepts/memory
733
- - Memory: add SQLite embedding cache to speed up reindexing and frequent updates. https://docs.cryptoclaw.ai/concepts/memory
734
- - Memory: add OpenAI batch indexing for embeddings when configured. https://docs.cryptoclaw.ai/concepts/memory
735
- - Memory: enable OpenAI batch indexing by default for OpenAI embeddings. https://docs.cryptoclaw.ai/concepts/memory
736
- - Memory: allow parallel OpenAI batch indexing jobs (default concurrency: 2). https://docs.cryptoclaw.ai/concepts/memory
737
- - Memory: render progress immediately, color batch statuses in verbose logs, and poll OpenAI batch status every 2s by default. https://docs.cryptoclaw.ai/concepts/memory
738
- - Memory: add `--verbose` logging for memory status + batch indexing details. https://docs.cryptoclaw.ai/concepts/memory
739
- - Memory: add native Gemini embeddings provider for memory search. (#1151) https://docs.cryptoclaw.ai/concepts/memory
740
- - Browser: allow config defaults for efficient snapshots in the tool/CLI. (#1336) https://docs.cryptoclaw.ai/tools/browser
741
- - Nostr: add the Nostr channel plugin with profile management + onboarding defaults. (#1323) https://docs.cryptoclaw.ai/channels/nostr
742
- - Matrix: migrate to matrix-bot-sdk with E2EE support, location handling, and group allowlist upgrades. (#1298) https://docs.cryptoclaw.ai/channels/matrix
743
- - Slack: add HTTP webhook mode via Bolt HTTP receiver. (#1143) https://docs.cryptoclaw.ai/channels/slack
744
- - Telegram: enrich forwarded-message context with normalized origin details + legacy fallback. (#1090) https://docs.cryptoclaw.ai/channels/telegram
722
+ - Control UI: add copy-as-markdown with error feedback. (#1345) https://docs.openclaw.ai/web/control-ui
723
+ - Control UI: drop the legacy list view. (#1345) https://docs.openclaw.ai/web/control-ui
724
+ - TUI: add syntax highlighting for code blocks. (#1200) https://docs.openclaw.ai/tui
725
+ - TUI: session picker shows derived titles, fuzzy search, relative times, and last message preview. (#1271) https://docs.openclaw.ai/tui
726
+ - TUI: add a searchable model picker for quicker model selection. (#1198) https://docs.openclaw.ai/tui
727
+ - TUI: add input history (up/down) for submitted messages. (#1348) https://docs.openclaw.ai/tui
728
+ - ACP: add `openclaw acp` for IDE integrations. https://docs.openclaw.ai/cli/acp
729
+ - ACP: add `openclaw acp client` interactive harness for debugging. https://docs.openclaw.ai/cli/acp
730
+ - Skills: add download installs with OS-filtered options. https://docs.openclaw.ai/tools/skills
731
+ - Skills: add the local sherpa-onnx-tts skill. https://docs.openclaw.ai/tools/skills
732
+ - Memory: add hybrid BM25 + vector search (FTS5) with weighted merging and fallback. https://docs.openclaw.ai/concepts/memory
733
+ - Memory: add SQLite embedding cache to speed up reindexing and frequent updates. https://docs.openclaw.ai/concepts/memory
734
+ - Memory: add OpenAI batch indexing for embeddings when configured. https://docs.openclaw.ai/concepts/memory
735
+ - Memory: enable OpenAI batch indexing by default for OpenAI embeddings. https://docs.openclaw.ai/concepts/memory
736
+ - Memory: allow parallel OpenAI batch indexing jobs (default concurrency: 2). https://docs.openclaw.ai/concepts/memory
737
+ - Memory: render progress immediately, color batch statuses in verbose logs, and poll OpenAI batch status every 2s by default. https://docs.openclaw.ai/concepts/memory
738
+ - Memory: add `--verbose` logging for memory status + batch indexing details. https://docs.openclaw.ai/concepts/memory
739
+ - Memory: add native Gemini embeddings provider for memory search. (#1151) https://docs.openclaw.ai/concepts/memory
740
+ - Browser: allow config defaults for efficient snapshots in the tool/CLI. (#1336) https://docs.openclaw.ai/tools/browser
741
+ - Nostr: add the Nostr channel plugin with profile management + onboarding defaults. (#1323) https://docs.openclaw.ai/channels/nostr
742
+ - Matrix: migrate to matrix-bot-sdk with E2EE support, location handling, and group allowlist upgrades. (#1298) https://docs.openclaw.ai/channels/matrix
743
+ - Slack: add HTTP webhook mode via Bolt HTTP receiver. (#1143) https://docs.openclaw.ai/channels/slack
744
+ - Telegram: enrich forwarded-message context with normalized origin details + legacy fallback. (#1090) https://docs.openclaw.ai/channels/telegram
745
745
  - Discord: fall back to `/skill` when native command limits are exceeded. (#1287)
746
746
  - Discord: expose `/skill` globally. (#1287)
747
- - Zalouser: add channel dock metadata, config schema, setup wiring, probe, and status issues. (#1219) https://docs.cryptoclaw.ai/plugins/zalouser
748
- - Plugins: require manifest-embedded config schemas with preflight validation warnings. (#1272) https://docs.cryptoclaw.ai/plugins/manifest
749
- - Plugins: move channel catalog metadata into plugin manifests. (#1290) https://docs.cryptoclaw.ai/plugins/manifest
750
- - Plugins: align Nextcloud Talk policy helpers with core patterns. (#1290) https://docs.cryptoclaw.ai/plugins/manifest
751
- - Plugins/UI: let channel plugin metadata drive UI labels/icons and cron channel options. (#1306) https://docs.cryptoclaw.ai/web/control-ui
752
- - Agents/UI: add agent avatar support in identity config, IDENTITY.md, and the Control UI. (#1329) https://docs.cryptoclaw.ai/gateway/configuration
753
- - Plugins: add plugin slots with a dedicated memory slot selector. https://docs.cryptoclaw.ai/plugins/agent-tools
754
- - Plugins: ship the bundled BlueBubbles channel plugin (disabled by default). https://docs.cryptoclaw.ai/channels/bluebubbles
747
+ - Zalouser: add channel dock metadata, config schema, setup wiring, probe, and status issues. (#1219) https://docs.openclaw.ai/plugins/zalouser
748
+ - Plugins: require manifest-embedded config schemas with preflight validation warnings. (#1272) https://docs.openclaw.ai/plugins/manifest
749
+ - Plugins: move channel catalog metadata into plugin manifests. (#1290) https://docs.openclaw.ai/plugins/manifest
750
+ - Plugins: align Nextcloud Talk policy helpers with core patterns. (#1290) https://docs.openclaw.ai/plugins/manifest
751
+ - Plugins/UI: let channel plugin metadata drive UI labels/icons and cron channel options. (#1306) https://docs.openclaw.ai/web/control-ui
752
+ - Agents/UI: add agent avatar support in identity config, IDENTITY.md, and the Control UI. (#1329) https://docs.openclaw.ai/gateway/configuration
753
+ - Plugins: add plugin slots with a dedicated memory slot selector. https://docs.openclaw.ai/plugins/agent-tools
754
+ - Plugins: ship the bundled BlueBubbles channel plugin (disabled by default). https://docs.openclaw.ai/channels/bluebubbles
755
755
  - Plugins: migrate bundled messaging extensions to the plugin SDK and resolve plugin-sdk imports in the loader.
756
- - Plugins: migrate the Zalo plugin to the shared plugin SDK runtime. https://docs.cryptoclaw.ai/channels/zalo
757
- - Plugins: migrate the Zalo Personal plugin to the shared plugin SDK runtime. https://docs.cryptoclaw.ai/plugins/zalouser
758
- - Plugins: allow optional agent tools with explicit allowlists and add the plugin tool authoring guide. https://docs.cryptoclaw.ai/plugins/agent-tools
756
+ - Plugins: migrate the Zalo plugin to the shared plugin SDK runtime. https://docs.openclaw.ai/channels/zalo
757
+ - Plugins: migrate the Zalo Personal plugin to the shared plugin SDK runtime. https://docs.openclaw.ai/plugins/zalouser
758
+ - Plugins: allow optional agent tools with explicit allowlists and add the plugin tool authoring guide. https://docs.openclaw.ai/plugins/agent-tools
759
759
  - Plugins: auto-enable bundled channel/provider plugins when configuration is present.
760
760
  - Plugins: sync plugin sources on channel switches and update npm-installed plugins during `openclaw update`.
761
761
  - Plugins: share npm plugin update logic between `openclaw update` and `openclaw plugins update`.
762
762
 
763
763
  - Gateway/API: add `/v1/responses` (OpenResponses) with item-based input + semantic streaming events. (#1229)
764
764
  - Gateway/API: expand `/v1/responses` to support file/image inputs, tool_choice, usage, and output limits. (#1229)
765
- - Usage: add `/usage cost` summaries and macOS menu cost charts. https://docs.cryptoclaw.ai/reference/api-usage-costs
766
- - Security: warn when <=300B models run without sandboxing while web tools are enabled. https://docs.cryptoclaw.ai/cli/security
767
- - Exec: add host/security/ask routing for gateway + node exec. https://docs.cryptoclaw.ai/tools/exec
768
- - Exec: add `/exec` directive for per-session exec defaults (host/security/ask/node). https://docs.cryptoclaw.ai/tools/exec
769
- - Exec approvals: migrate approvals to `~/.openclaw/exec-approvals.json` with per-agent allowlists + skill auto-allow toggle, and add approvals UI + node exec lifecycle events. https://docs.cryptoclaw.ai/tools/exec-approvals
770
- - Nodes: add headless node host (`openclaw node start`) for `system.run`/`system.which`. https://docs.cryptoclaw.ai/cli/node
771
- - Nodes: add node daemon service install/status/start/stop/restart. https://docs.cryptoclaw.ai/cli/node
765
+ - Usage: add `/usage cost` summaries and macOS menu cost charts. https://docs.openclaw.ai/reference/api-usage-costs
766
+ - Security: warn when <=300B models run without sandboxing while web tools are enabled. https://docs.openclaw.ai/cli/security
767
+ - Exec: add host/security/ask routing for gateway + node exec. https://docs.openclaw.ai/tools/exec
768
+ - Exec: add `/exec` directive for per-session exec defaults (host/security/ask/node). https://docs.openclaw.ai/tools/exec
769
+ - Exec approvals: migrate approvals to `~/.openclaw/exec-approvals.json` with per-agent allowlists + skill auto-allow toggle, and add approvals UI + node exec lifecycle events. https://docs.openclaw.ai/tools/exec-approvals
770
+ - Nodes: add headless node host (`openclaw node start`) for `system.run`/`system.which`. https://docs.openclaw.ai/cli/node
771
+ - Nodes: add node daemon service install/status/start/stop/restart. https://docs.openclaw.ai/cli/node
772
772
  - Bridge: add `skills.bins` RPC to support node host auto-allow skill bins.
773
- - Sessions: add daily reset policy with per-type overrides and idle windows (default 4am local), preserving legacy idle-only configs. (#1146) https://docs.cryptoclaw.ai/concepts/session
774
- - Sessions: allow `sessions_spawn` to override thinking level for sub-agent runs. https://docs.cryptoclaw.ai/tools/subagents
775
- - Channels: unify thread/topic allowlist matching + command/mention gating helpers across core providers. https://docs.cryptoclaw.ai/concepts/groups
776
- - Models: add Qwen Portal OAuth provider support. (#1120) https://docs.cryptoclaw.ai/providers/qwen
777
- - Onboarding: add allowlist prompts and username-to-id resolution across core and extension channels. https://docs.cryptoclaw.ai/start/onboarding
778
- - Docs: clarify allowlist input types and onboarding behavior for messaging channels. https://docs.cryptoclaw.ai/start/onboarding
779
- - Docs: refresh Android node discovery docs for the Gateway WS service type. https://docs.cryptoclaw.ai/platforms/android
780
- - Docs: surface Amazon Bedrock in provider lists and clarify Bedrock auth env vars. (#1289) https://docs.cryptoclaw.ai/bedrock
781
- - Docs: clarify WhatsApp voice notes. https://docs.cryptoclaw.ai/channels/whatsapp
782
- - Docs: clarify Windows WSL portproxy LAN access notes. https://docs.cryptoclaw.ai/platforms/windows
783
- - Docs: refresh bird skill install metadata and usage notes. (#1302) https://docs.cryptoclaw.ai/tools/browser-login
773
+ - Sessions: add daily reset policy with per-type overrides and idle windows (default 4am local), preserving legacy idle-only configs. (#1146) https://docs.openclaw.ai/concepts/session
774
+ - Sessions: allow `sessions_spawn` to override thinking level for sub-agent runs. https://docs.openclaw.ai/tools/subagents
775
+ - Channels: unify thread/topic allowlist matching + command/mention gating helpers across core providers. https://docs.openclaw.ai/concepts/groups
776
+ - Models: add Qwen Portal OAuth provider support. (#1120) https://docs.openclaw.ai/providers/qwen
777
+ - Onboarding: add allowlist prompts and username-to-id resolution across core and extension channels. https://docs.openclaw.ai/start/onboarding
778
+ - Docs: clarify allowlist input types and onboarding behavior for messaging channels. https://docs.openclaw.ai/start/onboarding
779
+ - Docs: refresh Android node discovery docs for the Gateway WS service type. https://docs.openclaw.ai/platforms/android
780
+ - Docs: surface Amazon Bedrock in provider lists and clarify Bedrock auth env vars. (#1289) https://docs.openclaw.ai/bedrock
781
+ - Docs: clarify WhatsApp voice notes. https://docs.openclaw.ai/channels/whatsapp
782
+ - Docs: clarify Windows WSL portproxy LAN access notes. https://docs.openclaw.ai/platforms/windows
783
+ - Docs: refresh bird skill install metadata and usage notes. (#1302) https://docs.openclaw.ai/tools/browser-login
784
784
  - Agents: add local docs path resolution and include docs/mirror/source/community pointers in the system prompt.
785
785
  - Agents: clarify node_modules read-only guidance in agent instructions.
786
786
  - Config: stamp last-touched metadata on write and warn if the config is newer than the running build.
@@ -909,12 +909,12 @@ Thanks @AlexMikhalev, @CoreyH, @John-Rood, @KrauseFx, @MaudeBot, @Nachx639, @Nic
909
909
 
910
910
  ### Highlights
911
911
 
912
- - Hooks: add hooks system with bundled hooks, CLI tooling, and docs. (#1028) — thanks @ThomsenDrake. https://docs.cryptoclaw.ai/hooks
913
- - Media: add inbound media understanding (image/audio/video) with provider + CLI fallbacks. https://docs.cryptoclaw.ai/nodes/media-understanding
914
- - Plugins: add Zalo Personal plugin (`@openclaw/zalouser`) and unify channel directory for plugins. (#1032) — thanks @suminhthanh. https://docs.cryptoclaw.ai/plugins/zalouser
915
- - Models: add Vercel AI Gateway auth choice + onboarding updates. (#1016) — thanks @timolins. https://docs.cryptoclaw.ai/providers/vercel-ai-gateway
916
- - Sessions: add `session.identityLinks` for cross-platform DM session li nking. (#1033) — thanks @thewilloftheshadow. https://docs.cryptoclaw.ai/concepts/session
917
- - Web search: add `country`/`language` parameters (schema + Brave API) and docs. (#1046) — thanks @YuriNachos. https://docs.cryptoclaw.ai/tools/web
912
+ - Hooks: add hooks system with bundled hooks, CLI tooling, and docs. (#1028) — thanks @ThomsenDrake. https://docs.openclaw.ai/hooks
913
+ - Media: add inbound media understanding (image/audio/video) with provider + CLI fallbacks. https://docs.openclaw.ai/nodes/media-understanding
914
+ - Plugins: add Zalo Personal plugin (`@openclaw/zalouser`) and unify channel directory for plugins. (#1032) — thanks @suminhthanh. https://docs.openclaw.ai/plugins/zalouser
915
+ - Models: add Vercel AI Gateway auth choice + onboarding updates. (#1016) — thanks @timolins. https://docs.openclaw.ai/providers/vercel-ai-gateway
916
+ - Sessions: add `session.identityLinks` for cross-platform DM session li nking. (#1033) — thanks @thewilloftheshadow. https://docs.openclaw.ai/concepts/session
917
+ - Web search: add `country`/`language` parameters (schema + Brave API) and docs. (#1046) — thanks @YuriNachos. https://docs.openclaw.ai/tools/web
918
918
 
919
919
  ### Breaking
920
920
 
@@ -922,7 +922,7 @@ Thanks @AlexMikhalev, @CoreyH, @John-Rood, @KrauseFx, @MaudeBot, @Nachx639, @Nic
922
922
  - **BREAKING:** Channel auth now prefers config over env for Discord/Telegram/Matrix (env is fallback only). (#1040) — thanks @thewilloftheshadow.
923
923
  - **BREAKING:** Drop legacy `chatType: "room"` support; use `chatType: "channel"`.
924
924
  - **BREAKING:** remove legacy provider-specific target resolution fallbacks; target resolution is centralized with plugin hints + directory lookups.
925
- - **BREAKING:** `openclaw hooks` is now `openclaw webhooks`; hooks live under `openclaw hooks`. https://docs.cryptoclaw.ai/cli/webhooks
925
+ - **BREAKING:** `openclaw hooks` is now `openclaw webhooks`; hooks live under `openclaw hooks`. https://docs.openclaw.ai/cli/webhooks
926
926
  - **BREAKING:** `openclaw plugins install <path>` now copies into `~/.openclaw/extensions` (use `--link` to keep path-based loading).
927
927
 
928
928
  ### Changes
@@ -934,7 +934,7 @@ Thanks @AlexMikhalev, @CoreyH, @John-Rood, @KrauseFx, @MaudeBot, @Nachx639, @Nic
934
934
  - Tools: send Chrome-like headers by default for `web_fetch` to improve extraction on bot-sensitive sites.
935
935
  - Tools: Firecrawl fallback now uses bot-circumvention + cache by default; remove basic HTML fallback when extraction fails.
936
936
  - Tools: default `exec` exit notifications and auto-migrate legacy `tools.bash` to `tools.exec`.
937
- - Tools: add `exec` PTY support for interactive sessions. https://docs.cryptoclaw.ai/tools/exec
937
+ - Tools: add `exec` PTY support for interactive sessions. https://docs.openclaw.ai/tools/exec
938
938
  - Tools: add tmux-style `process send-keys` and bracketed paste helpers for PTY sessions.
939
939
  - Tools: add `process submit` helper to send CR for PTY sessions.
940
940
  - Tools: respond to PTY cursor position queries to unblock interactive TUIs.
@@ -990,7 +990,7 @@ Thanks @AlexMikhalev, @CoreyH, @John-Rood, @KrauseFx, @MaudeBot, @Nachx639, @Nic
990
990
  - Sessions: hard-stop `sessions.delete` cleanup.
991
991
  - Channels: treat replies to the bot as implicit mentions across supported channels.
992
992
  - Channels: normalize object-format capabilities in channel capability parsing.
993
- - Security: default-deny slash/control commands unless a channel computed `CommandAuthorized` (fixes accidental “open” behavior), and ensure WhatsApp + Zalo plugin channels gate inline `/…` tokens correctly. https://docs.cryptoclaw.ai/gateway/security
993
+ - Security: default-deny slash/control commands unless a channel computed `CommandAuthorized` (fixes accidental “open” behavior), and ensure WhatsApp + Zalo plugin channels gate inline `/…` tokens correctly. https://docs.openclaw.ai/gateway/security
994
994
  - Security: redact sensitive text in gateway WS logs.
995
995
  - Tools: cap pending `exec` process output to avoid unbounded buffers.
996
996
  - CLI: speed up `openclaw sandbox-explain` by avoiding heavy plugin imports when normalizing channel ids.
@@ -0,0 +1,22 @@
1
+ <svg viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <defs>
3
+ <linearGradient id="lobster-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" stop-color="#00e676"/>
5
+ <stop offset="100%" stop-color="#1b5e20"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <!-- Body -->
9
+ <path d="M60 10 C30 10 15 35 15 55 C15 75 30 95 45 100 L45 110 L55 110 L55 100 C55 100 60 102 65 100 L65 110 L75 110 L75 100 C90 95 105 75 105 55 C105 35 90 10 60 10Z" fill="url(#lobster-gradient)"/>
10
+ <!-- Left Claw -->
11
+ <path d="M20 45 C5 40 0 50 5 60 C10 70 20 65 25 55 C28 48 25 45 20 45Z" fill="url(#lobster-gradient)"/>
12
+ <!-- Right Claw -->
13
+ <path d="M100 45 C115 40 120 50 115 60 C110 70 100 65 95 55 C92 48 95 45 100 45Z" fill="url(#lobster-gradient)"/>
14
+ <!-- Antenna -->
15
+ <path d="M45 15 Q35 5 30 8" stroke="#00e676" stroke-width="3" stroke-linecap="round"/>
16
+ <path d="M75 15 Q85 5 90 8" stroke="#00e676" stroke-width="3" stroke-linecap="round"/>
17
+ <!-- Eyes -->
18
+ <circle cx="45" cy="35" r="6" fill="#050810"/>
19
+ <circle cx="75" cy="35" r="6" fill="#050810"/>
20
+ <circle cx="46" cy="34" r="2.5" fill="#00e5cc"/>
21
+ <circle cx="76" cy="34" r="2.5" fill="#00e5cc"/>
22
+ </svg>
@@ -12,7 +12,7 @@ import "./manifest-registry-CmLtWVRR.js";
12
12
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CvHWS3C2.js";
13
13
  import { t as GatewayClient } from "./client-BaTYzXOU.js";
14
14
  import { t as buildGatewayConnectionDetails } from "./call-QEaFjVBF.js";
15
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
15
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
16
16
  import "./tailscale-BY0igR48.js";
17
17
  import { t as isMainModule } from "./is-main-B6kCyqsv.js";
18
18
  import { t as ensureOpenClawCliOnPath } from "./path-env-DQ-mM2ya.js";
@@ -888,7 +888,7 @@ if (isMainModule({ currentFile: fileURLToPath(import.meta.url) })) serveAcpGatew
888
888
  //#region src/cli/acp-cli.ts
889
889
  function registerAcpCli(program) {
890
890
  const acp = program.command("acp").description("Run an ACP bridge backed by the Gateway");
891
- acp.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Default session key (e.g. agent:main:main)").option("--session-label <label>", "Default session label to resolve").option("--require-existing", "Fail if the session key/label does not exist", false).option("--reset-session", "Reset the session key before first use", false).option("--no-prefix-cwd", "Do not prefix prompts with the working directory", false).option("--verbose, -v", "Verbose logging to stderr", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/acp", "docs.cryptoclaw.ai/cli/acp")}\n`).action((opts) => {
891
+ acp.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Default session key (e.g. agent:main:main)").option("--session-label <label>", "Default session label to resolve").option("--require-existing", "Fail if the session key/label does not exist", false).option("--reset-session", "Reset the session key before first use", false).option("--no-prefix-cwd", "Do not prefix prompts with the working directory", false).option("--verbose, -v", "Verbose logging to stderr", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/acp", "docs.openclaw.ai/cli/acp")}\n`).action((opts) => {
892
892
  try {
893
893
  serveAcpGateway({
894
894
  gatewayUrl: opts.url,
@@ -14,7 +14,7 @@ import { t as GatewayClient } from "./client-N6zH1neq.js";
14
14
  import { t as buildGatewayConnectionDetails } from "./call-D-Kvee3W.js";
15
15
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CfYBy4y3.js";
16
16
  import { t as isMainModule } from "./is-main-CBExsRNQ.js";
17
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
17
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
18
18
  import { spawn } from "node:child_process";
19
19
  import { randomUUID } from "node:crypto";
20
20
  import { fileURLToPath } from "node:url";
@@ -886,7 +886,7 @@ if (isMainModule({ currentFile: fileURLToPath(import.meta.url) })) serveAcpGatew
886
886
  //#region src/cli/acp-cli.ts
887
887
  function registerAcpCli(program) {
888
888
  const acp = program.command("acp").description("Run an ACP bridge backed by the Gateway");
889
- acp.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Default session key (e.g. agent:main:main)").option("--session-label <label>", "Default session label to resolve").option("--require-existing", "Fail if the session key/label does not exist", false).option("--reset-session", "Reset the session key before first use", false).option("--no-prefix-cwd", "Do not prefix prompts with the working directory", false).option("--verbose, -v", "Verbose logging to stderr", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/acp", "docs.cryptoclaw.ai/cli/acp")}\n`).action((opts) => {
889
+ acp.option("--url <url>", "Gateway WebSocket URL (defaults to gateway.remote.url when configured)").option("--token <token>", "Gateway token (if required)").option("--password <password>", "Gateway password (if required)").option("--session <key>", "Default session key (e.g. agent:main:main)").option("--session-label <label>", "Default session label to resolve").option("--require-existing", "Fail if the session key/label does not exist", false).option("--reset-session", "Reset the session key before first use", false).option("--no-prefix-cwd", "Do not prefix prompts with the working directory", false).option("--verbose, -v", "Verbose logging to stderr", false).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/acp", "docs.openclaw.ai/cli/acp")}\n`).action((opts) => {
890
890
  try {
891
891
  serveAcpGateway({
892
892
  gatewayUrl: opts.url,
@@ -1,5 +1,5 @@
1
1
  import { H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, W as normalizeVerboseLevel } from "./pi-embedded-helpers-CT7w1pYd.js";
2
- import { A as resolveOutboundTarget, Cn as AGENT_LANE_NESTED, F as runWithModelFallback, Ir as resolveAgentTimeoutMs, Kt as getSkillsSnapshotVersion, Nt as getRemoteSkillEligibility, On as registerAgentRunContext, Tn as emitAgentEvent, c as runEmbeddedPiAgent, gr as applyVerboseOverride, hr as applyModelOverrideToSessionEntry, i as runCliAgent, j as resolveSessionDeliveryTarget, mr as clearSessionAuthProfileOverride, n as getCliSessionId, o as resolveSendPolicy, pr as lookupContextTokens, r as setCliSessionId, wn as clearAgentRunContext, xr as loadModelCatalog } from "./reply-3TWXjNUA.js";
2
+ import { A as resolveOutboundTarget, Cn as AGENT_LANE_NESTED, F as runWithModelFallback, Ir as resolveAgentTimeoutMs, Kt as getSkillsSnapshotVersion, Nt as getRemoteSkillEligibility, On as registerAgentRunContext, Tn as emitAgentEvent, c as runEmbeddedPiAgent, gr as applyVerboseOverride, hr as applyModelOverrideToSessionEntry, i as runCliAgent, j as resolveSessionDeliveryTarget, mr as clearSessionAuthProfileOverride, n as getCliSessionId, o as resolveSendPolicy, pr as lookupContextTokens, r as setCliSessionId, wn as clearAgentRunContext, xr as loadModelCatalog } from "./reply-qWVVjmhR.js";
3
3
  import { c as normalizeAgentId, l as normalizeMainKey, u as resolveAgentIdFromSessionKey } from "./session-key-CYpWeuht.js";
4
4
  import { c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL } from "./subsystem-Btuh5yZj.js";
5
5
  import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride, o as resolveAgentSkillsFilter, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, x as ensureAgentWorkspace } from "./agent-scope-GUoze5gc.js";
@@ -13,7 +13,7 @@ import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatew
13
13
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-C3yk0MGu.js";
14
14
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-CNKlQLWI.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-B3HzifR9.js";
16
- import { t as createDefaultDeps } from "./deps-DY5l__pK.js";
16
+ import { t as createDefaultDeps } from "./deps-BhcPiVuz.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -6,14 +6,14 @@ import { a as resolveAgentModelPrimary, i as resolveAgentModelFallbacksOverride,
6
6
  import { i as loadConfig } from "./config-DBZqAqbe.js";
7
7
  import { a as isInternalMessageChannel, d as resolveMessageChannel, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CfYBy4y3.js";
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CB4Xjrgb.js";
9
- import { Bt as emitAgentEvent, Dt as runEmbeddedPiAgent, Gt as AGENT_LANE_NESTED, H as getCliSessionId, K as resolveSendPolicy, Kt as loadModelCatalog, Rt as resolveAgentTimeoutMs, Tn as runWithModelFallback, U as setCliSessionId, Ut as registerAgentRunContext, W as runCliAgent, bn as resolveOutboundTarget, ct as clearSessionAuthProfileOverride, dn as lookupContextTokens, lt as applyVerboseOverride, ot as getSkillsSnapshotVersion, q as getRemoteSkillEligibility, qt as applyModelOverrideToSessionEntry, xn as resolveSessionDeliveryTarget, zt as clearAgentRunContext } from "./loader-BNqYr2Am.js";
9
+ import { Bt as emitAgentEvent, Dt as runEmbeddedPiAgent, Gt as AGENT_LANE_NESTED, H as getCliSessionId, K as resolveSendPolicy, Kt as loadModelCatalog, Rt as resolveAgentTimeoutMs, Tn as runWithModelFallback, U as setCliSessionId, Ut as registerAgentRunContext, W as runCliAgent, bn as resolveOutboundTarget, ct as clearSessionAuthProfileOverride, dn as lookupContextTokens, lt as applyVerboseOverride, ot as getSkillsSnapshotVersion, q as getRemoteSkillEligibility, qt as applyModelOverrideToSessionEntry, xn as resolveSessionDeliveryTarget, zt as clearAgentRunContext } from "./loader-DE_vKAH5.js";
10
10
  import { n as resolveSessionFilePath, o as resolveStorePath } from "./paths-KUslkJRs.js";
11
11
  import { B as normalizeThinkLevel, F as formatXHighModelHint, H as normalizeVerboseLevel, P as formatThinkingLevels, W as supportsXHighThinking } from "./pi-embedded-helpers-DRK9Qub7.js";
12
12
  import { a as normalizeOutboundPayloadsForJson, i as normalizeOutboundPayloads, r as formatOutboundPayloadLog, t as deliverOutboundPayloads } from "./deliver-D8Yt4jkc.js";
13
13
  import { A as resolveSessionResetType, D as evaluateSessionFreshness, E as resolveSessionKey, F as resolveExplicitAgentSessionKey, O as resolveChannelResetConfig, T as normalizeAccountId, d as loadSessionStore, g as updateSessionStore, k as resolveSessionResetPolicy } from "./sandbox-Cfvpk8Q8.js";
14
14
  import { r as buildWorkspaceSkillSnapshot } from "./skills-DaDm2aTV.js";
15
15
  import { l as hasNonzeroUsage } from "./session-cost-usage-DH3c4xJA.js";
16
- import { t as createDefaultDeps } from "./deps-BDQ4UyT5.js";
16
+ import { t as createDefaultDeps } from "./deps-ZGqhOjkR.js";
17
17
  import crypto from "node:crypto";
18
18
 
19
19
  //#region src/cli/outbound-send-deps.ts
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.1",
3
- "commit": "85d78ffbf16948149d611a765e68e2e7cb41f53b",
4
- "builtAt": "2026-02-07T07:34:42.446Z"
2
+ "version": "1.0.2",
3
+ "commit": "1042ee94272282c783bcf2fdcb6ef331f73f570d",
4
+ "builtAt": "2026-02-07T08:42:40.415Z"
5
5
  }
@@ -1 +1 @@
1
- 467c7ff8bbcc192f3395a6352d4468e78732518c79734335d4ecd96264225c60
1
+ 25c102d97d68b2fdd37ff723e7743dc72a63450918f1e8470174c00f060737fe
@@ -1,4 +1,4 @@
1
- import { rt as loadOpenClawPlugins } from "./reply-3TWXjNUA.js";
1
+ import { rt as loadOpenClawPlugins } from "./reply-qWVVjmhR.js";
2
2
  import { m as CHAT_CHANNEL_ORDER, t as createSubsystemLogger } from "./subsystem-Btuh5yZj.js";
3
3
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-GUoze5gc.js";
4
4
  import { t as isTruthyEnvValue } from "./env-B2Cd_6IS.js";
@@ -1,7 +1,7 @@
1
1
  import { I as CHAT_CHANNEL_ORDER, n as isTruthyEnvValue } from "./entry.js";
2
2
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CBfM3u2p.js";
3
3
  import { n as listChannelPlugins } from "./plugins-CB4Xjrgb.js";
4
- import { n as ensurePluginRegistryLoaded } from "./command-options-DeWanQ_1.js";
4
+ import { n as ensurePluginRegistryLoaded } from "./command-options-DBpEhnW5.js";
5
5
 
6
6
  //#region src/cli/channel-options.ts
7
7
  function dedupe(values) {
@@ -16,18 +16,18 @@ import "./control-service-CWGGzqpN.js";
16
16
  import "./client-N6zH1neq.js";
17
17
  import { n as callGateway } from "./call-D-Kvee3W.js";
18
18
  import "./message-channel-CfYBy4y3.js";
19
- import { t as formatDocsLink } from "./links-KcaRpMJg.js";
19
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
20
20
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-CBfM3u2p.js";
21
21
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CB4Xjrgb.js";
22
22
  import "./logging-5MtSkLpb.js";
23
23
  import "./accounts-BIh6Lgjl.js";
24
- import { Er as createSlackWebClient, Jt as loadProviderUsageSummary, R as fetchChannelPermissionsDiscord, Yt as formatUsageReportLines, _n as parseDiscordTarget } from "./loader-BNqYr2Am.js";
24
+ import { Er as createSlackWebClient, Jt as loadProviderUsageSummary, R as fetchChannelPermissionsDiscord, Yt as formatUsageReportLines, _n as parseDiscordTarget } from "./loader-DE_vKAH5.js";
25
25
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
26
26
  import "./prompt-style-BntC_Eoo.js";
27
27
  import "./note-C5M2AQOP.js";
28
28
  import { t as createClackPrompter } from "./clack-prompter-k_egRADS.js";
29
29
  import { t as resolveChannelDefaultAccountId } from "./helpers-OUt4hxkS.js";
30
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-uZ5vLniX.js";
30
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-B5qHfMk8.js";
31
31
  import "./archive-iT9wNsml.js";
32
32
  import "./skill-scanner-AfOudYI1.js";
33
33
  import "./installs-BhPUpyE9.js";
@@ -53,8 +53,8 @@ import { r as runCommandWithRuntime } from "./cli-utils-B7iQwCY5.js";
53
53
  import { t as buildChannelAccountSnapshot } from "./status-Drziap9H.js";
54
54
  import { t as parseLogLine } from "./parse-log-line-CUrpqe1w.js";
55
55
  import { t as collectChannelStatusIssues } from "./channels-status-issues-DouPXVa3.js";
56
- import { t as hasExplicitOptions } from "./command-options-DeWanQ_1.js";
57
- import { t as formatCliChannelOptions } from "./channel-options-B3XNSAJG.js";
56
+ import { t as hasExplicitOptions } from "./command-options-DBpEhnW5.js";
57
+ import { t as formatCliChannelOptions } from "./channel-options-DJsSCLD8.js";
58
58
  import fs from "node:fs/promises";
59
59
 
60
60
  //#region src/commands/channels/add-mutators.ts
@@ -1348,7 +1348,7 @@ function runChannelsCommandWithDanger(action, label) {
1348
1348
  }
1349
1349
  function registerChannelsCli(program) {
1350
1350
  const channelNames = formatCliChannelOptions();
1351
- const channels = program.command("channels").description("Manage chat channel accounts").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/channels", "docs.cryptoclaw.ai/cli/channels")}\n`);
1351
+ const channels = program.command("channels").description("Manage chat channel accounts").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/channels", "docs.openclaw.ai/cli/channels")}\n`);
1352
1352
  channels.command("list").description("List configured channels + auth profiles").option("--no-usage", "Skip model provider usage/quota snapshots").option("--json", "Output JSON", false).action(async (opts) => {
1353
1353
  await runChannelsCommand(async () => {
1354
1354
  await channelsListCommand(opts, defaultRuntime);
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-CT7w1pYd.js";
2
- import { Mn as createSlackWebClient, at as formatUsageReportLines, gn as fetchChannelPermissionsDiscord, hn as parseDiscordTarget, it as loadProviderUsageSummary } from "./reply-3TWXjNUA.js";
2
+ import { Mn as createSlackWebClient, at as formatUsageReportLines, gn as fetchChannelPermissionsDiscord, hn as parseDiscordTarget, it as loadProviderUsageSummary } from "./reply-qWVVjmhR.js";
3
3
  import "./paths-CGrNQEMk.js";
4
4
  import { s as normalizeAccountId, t as DEFAULT_ACCOUNT_ID } from "./session-key-CYpWeuht.js";
5
5
  import { E as danger, M as setVerbose, R as theme, V as getResolvedLoggerSettings, c as defaultRuntime, h as DEFAULT_CHAT_CHANNEL } from "./subsystem-Btuh5yZj.js";
@@ -36,7 +36,7 @@ import "./client-BaTYzXOU.js";
36
36
  import { n as callGateway } from "./call-QEaFjVBF.js";
37
37
  import "./login-qr-BpdHxT8l.js";
38
38
  import "./pairing-store-Dbotpoz6.js";
39
- import { t as formatDocsLink } from "./links-DXtV_A64.js";
39
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
40
40
  import { r as runCommandWithRuntime } from "./cli-utils-CgOu3WAB.js";
41
41
  import { n as withProgress } from "./progress-DTEUicRP.js";
42
42
  import "./pi-tools.policy-BjgXXFkH.js";
@@ -47,13 +47,13 @@ import { n as resolveMessageChannelSelection } from "./channel-selection-ChOffLk
47
47
  import { t as resolveChannelDefaultAccountId } from "./helpers-CzQjTUbz.js";
48
48
  import "./note-DEz9ZK7G.js";
49
49
  import { t as createClackPrompter } from "./clack-prompter-nSmn5cZ2.js";
50
- import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-xteKATz4.js";
50
+ import { i as reloadOnboardingPluginRegistry, n as setupChannels, r as ensureOnboardingPluginInstalled } from "./onboard-channels-BgchLTab.js";
51
51
  import { i as listChannelPluginCatalogEntries } from "./plugin-auto-enable-BmBAQgRq.js";
52
52
  import "./archive-Dy3Ezb-5.js";
53
53
  import "./skill-scanner-BoGjHXUZ.js";
54
54
  import "./installs-CWAe2dOG.js";
55
55
  import { t as collectChannelStatusIssues } from "./channels-status-issues-BwOdQrU9.js";
56
- import { i as hasExplicitOptions, t as formatCliChannelOptions } from "./channel-options-CUOi5M0r.js";
56
+ import { i as hasExplicitOptions, t as formatCliChannelOptions } from "./channel-options-B951pKy8.js";
57
57
  import { t as buildChannelAccountSnapshot } from "./status-BqtiImKF.js";
58
58
  import { t as parseLogLine } from "./parse-log-line-BxDgv4Uo.js";
59
59
  import fs from "node:fs/promises";
@@ -1349,7 +1349,7 @@ function runChannelsCommandWithDanger(action, label) {
1349
1349
  }
1350
1350
  function registerChannelsCli(program) {
1351
1351
  const channelNames = formatCliChannelOptions();
1352
- const channels = program.command("channels").description("Manage chat channel accounts").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/channels", "docs.cryptoclaw.ai/cli/channels")}\n`);
1352
+ const channels = program.command("channels").description("Manage chat channel accounts").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/channels", "docs.openclaw.ai/cli/channels")}\n`);
1353
1353
  channels.command("list").description("List configured channels + auth profiles").option("--no-usage", "Skip model provider usage/quota snapshots").option("--json", "Output JSON", false).action(async (opts) => {
1354
1354
  await runChannelsCommand(async () => {
1355
1355
  await channelsListCommand(opts, defaultRuntime);
@@ -1,2 +1,2 @@
1
1
  // Legacy shim for pre-tsdown update-cli imports.
2
- export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-D24Obngu.js";
2
+ export { registerDaemonCli, runDaemonInstall, runDaemonRestart, runDaemonStart, runDaemonStatus, runDaemonStop, runDaemonUninstall } from "../daemon-cli-BM8zb09s.js";
@@ -14,11 +14,11 @@ import "./control-service-CWGGzqpN.js";
14
14
  import "./client-N6zH1neq.js";
15
15
  import "./call-D-Kvee3W.js";
16
16
  import "./message-channel-CfYBy4y3.js";
17
- import "./links-KcaRpMJg.js";
17
+ import "./links-kbubTyay.js";
18
18
  import "./plugins-CB4Xjrgb.js";
19
19
  import "./logging-5MtSkLpb.js";
20
20
  import "./accounts-BIh6Lgjl.js";
21
- import { t as loadOpenClawPlugins } from "./loader-BNqYr2Am.js";
21
+ import { t as loadOpenClawPlugins } from "./loader-DE_vKAH5.js";
22
22
  import "./progress-D-Oc-KAH.js";
23
23
  import "./prompt-style-BntC_Eoo.js";
24
24
  import "./manager-bvW7170C.js";
@@ -1,5 +1,5 @@
1
1
  import "./pi-embedded-helpers-CT7w1pYd.js";
2
- import { rt as loadOpenClawPlugins } from "./reply-3TWXjNUA.js";
2
+ import { rt as loadOpenClawPlugins } from "./reply-qWVVjmhR.js";
3
3
  import "./paths-CGrNQEMk.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-Btuh5yZj.js";
5
5
  import "./utils-CGterW74.js";
@@ -34,7 +34,7 @@ import "./client-BaTYzXOU.js";
34
34
  import "./call-QEaFjVBF.js";
35
35
  import "./login-qr-BpdHxT8l.js";
36
36
  import "./pairing-store-Dbotpoz6.js";
37
- import "./links-DXtV_A64.js";
37
+ import "./links-Dv1EDiwa.js";
38
38
  import "./progress-DTEUicRP.js";
39
39
  import "./pi-tools.policy-BjgXXFkH.js";
40
40
  import "./prompt-style-BBlJlXtd.js";