@termix-it/cryptoclaw 1.0.0 → 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 (282) hide show
  1. package/CHANGELOG.md +93 -93
  2. package/README.md +1 -1
  3. package/assets/favicon.svg +22 -0
  4. package/dist/{accounts-CIGHxE7R.js → accounts-BIh6Lgjl.js} +1 -1
  5. package/dist/{accounts-BPjR5SyC.js → accounts-DA-4bmd_.js} +1 -1
  6. package/dist/{acp-cli-DG9nygBk.js → acp-cli-CBFKSvET.js} +8 -8
  7. package/dist/{acp-cli-DBWmJpUJ.js → acp-cli-CEPAR8vh.js} +8 -8
  8. package/dist/{agent-3MZVCC-N.js → agent-8dTCwA-D.js} +10 -10
  9. package/dist/{agent-scope-DBl1We79.js → agent-scope-BJucHu4R.js} +2 -2
  10. package/dist/{agent-scope-e_oNRhGi.js → agent-scope-DzpuqcS9.js} +5 -1
  11. package/dist/{agent-scope-DLfFOxP6.js → agent-scope-GUoze5gc.js} +2 -2
  12. package/dist/{agent-IDE9krld.js → agent-sjalTGVA.js} +10 -10
  13. package/dist/{audit-jaTyyQX1.js → audit-BMzW1G5a.js} +10 -10
  14. package/dist/{audit-Bj_dxNaD.js → audit-DQsCrYXQ.js} +10 -10
  15. package/dist/{auth-health-CCM6Z3vK.js → auth-health-Cr8ib9nm.js} +1 -1
  16. package/dist/{auth-health-BlspzqyF.js → auth-health-Dc-ImENT.js} +1 -1
  17. package/dist/{auth-profiles-DoD7YxsD.js → auth-profiles-CVShF1K6.js} +2 -2
  18. package/dist/build-info.json +3 -3
  19. package/dist/{call-D2DXG0AC.js → call-D-Kvee3W.js} +2 -2
  20. package/dist/{call-DqxlETxE.js → call-QEaFjVBF.js} +2 -2
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-options-DUkxROTo.js → channel-options-B951pKy8.js} +5 -5
  23. package/dist/{channel-options-BHpXOBuP.js → channel-options-DJsSCLD8.js} +3 -3
  24. package/dist/{channel-selection-BdigfMZZ.js → channel-selection-BWiz5Osx.js} +1 -1
  25. package/dist/{channel-selection-D7jFTFec.js → channel-selection-ChOffLk2.js} +1 -1
  26. package/dist/{channel-summary-DS0kcHm2.js → channel-summary-BQMoWZQ1.js} +5 -5
  27. package/dist/{channel-summary-CobMoKN6.js → channel-summary-C4kSR_wu.js} +5 -5
  28. package/dist/{channels-cli-DBwffwqw.js → channels-cli-Fv9FTQXn.js} +34 -34
  29. package/dist/{channels-cli-D7ZNRrq7.js → channels-cli-Lq6EWRJ9.js} +33 -33
  30. package/dist/{channels-status-issues-C2UGSPvH.js → channels-status-issues-BwOdQrU9.js} +1 -1
  31. package/dist/{channels-status-issues-Dxmd7zYk.js → channels-status-issues-DouPXVa3.js} +1 -1
  32. package/dist/{chrome-CwbWzmh4.js → chrome-D0L5ufqO.js} +1 -1
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-C9xiWnx9.js → cli-Bzyu6rQE.js} +27 -27
  35. package/dist/{cli-D6C9z94O.js → cli-DJnpasWd.js} +27 -27
  36. package/dist/{command-options-DL1PhuUF.js → command-options-DBpEhnW5.js} +3 -3
  37. package/dist/{commands-Dpeoos11.js → commands-B0LiAJsa.js} +3 -3
  38. package/dist/{completion-cli-CZ8zPqPs.js → completion-cli-Bd5FrGHg.js} +27 -27
  39. package/dist/{completion-cli-B5nR7jt8.js → completion-cli-Cs-B1hk7.js} +1 -1
  40. package/dist/{config-dQK4rbfx.js → config-D1wc31Qf.js} +4 -4
  41. package/dist/{config-DSpb2aMV.js → config-DBZqAqbe.js} +4 -4
  42. package/dist/{config-IwiWafT3.js → config-fXndcfb4.js} +2 -2
  43. package/dist/{config-guard-DwIb5Y-v.js → config-guard-Csl9Ubn5.js} +48 -48
  44. package/dist/{configure-CivCcvkA.js → configure-CeTzu0Ed.js} +20 -20
  45. package/dist/{configure-7M9mLC4o.js → configure-CxPJaP8X.js} +20 -20
  46. package/dist/{control-service-BXC31sNw.js → control-service-BBeopea3.js} +4 -4
  47. package/dist/{control-service-lVzEzp9f.js → control-service-CWGGzqpN.js} +4 -4
  48. package/dist/control-ui/apple-touch-icon.png +0 -0
  49. package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
  50. package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
  51. package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
  52. package/dist/control-ui/favicon-32.png +0 -0
  53. package/dist/control-ui/favicon.ico +0 -0
  54. package/dist/control-ui/favicon.svg +4 -4
  55. package/dist/control-ui/index.html +2 -2
  56. package/dist/{cron-cli-DS8ytfYQ.js → cron-cli-D8gKivN0.js} +11 -11
  57. package/dist/{cron-cli-Djb3HUdz.js → cron-cli-yC5Cy77c.js} +11 -11
  58. package/dist/{daemon-cli-KoaJ2nJX.js → daemon-cli-BM8zb09s.js} +12 -12
  59. package/dist/{daemon-cli-ZQIKLvAO.js → daemon-cli-D8AC0Q_A.js} +12 -12
  60. package/dist/{daemon-runtime-CHWbAfKs.js → daemon-runtime-BMAJ_2LE.js} +1 -1
  61. package/dist/{daemon-runtime-DEjUQVjL.js → daemon-runtime-CD5XPuxz.js} +1 -1
  62. package/dist/{deliver-sPBfRlXT.js → deliver-CNKlQLWI.js} +6 -6
  63. package/dist/{deliver-OfX6bSYR.js → deliver-D8Yt4jkc.js} +6 -6
  64. package/dist/{deliver-DVRzRmNN.js → deliver-Doq_iIoh.js} +3 -3
  65. package/dist/{deps-CZOfeWEp.js → deps-BhcPiVuz.js} +2 -2
  66. package/dist/{deps-BSdWD2wF.js → deps-ZGqhOjkR.js} +2 -2
  67. package/dist/{devices-cli-b9iF_uOi.js → devices-cli-BcIB2VyK.js} +7 -7
  68. package/dist/{devices-cli-DHSpDnCS.js → devices-cli-BcznR9RO.js} +7 -7
  69. package/dist/{directory-cli-qniSxsHo.js → directory-cli--IOOMz66.js} +11 -11
  70. package/dist/{directory-cli-D0dTuAem.js → directory-cli-DGFlpQ4T.js} +11 -11
  71. package/dist/{dispatcher-DA3u3CwV.js → dispatcher-cp7uHiyX.js} +1 -1
  72. package/dist/{dns-cli-DwwMpMuN.js → dns-cli-DkhYuREi.js} +9 -9
  73. package/dist/{dns-cli-C0JUNb9O.js → dns-cli-fQ4wu1HJ.js} +9 -9
  74. package/dist/{docs-cli-BlFHCHDz.js → docs-cli-BgnDzmFT.js} +8 -8
  75. package/dist/{docs-cli-BpSPrY3Y.js → docs-cli-CPaJzUSD.js} +8 -8
  76. package/dist/{doctor-Da1XgFcW.js → doctor-D6M3Hc0a.js} +21 -21
  77. package/dist/{doctor-qrtookj-.js → doctor-DRRL31R4.js} +21 -21
  78. package/dist/entry.js +1 -1
  79. package/dist/{errors--S5IAxQx.js → errors-DpH6VpWK.js} +1 -1
  80. package/dist/{exec-approvals-cli-Csgqkksl.js → exec-approvals-cli-BhEdzGao.js} +12 -12
  81. package/dist/{exec-approvals-cli-Dk4yHE2L.js → exec-approvals-cli-DHMroOAh.js} +12 -12
  82. package/dist/extensionAPI.js +25 -25
  83. package/dist/{gateway-cli-CJ7H2DgV.js → gateway-cli-CbQ4xoXp.js} +183 -108
  84. package/dist/{gateway-cli-CrKl-bIH.js → gateway-cli-DO7lIBZ5.js} +185 -110
  85. package/dist/{gateway-rpc-BPfCU2Vi.js → gateway-rpc-0hjEbkzc.js} +1 -1
  86. package/dist/{gateway-rpc--CH0NWWR.js → gateway-rpc-anmk3tbT.js} +1 -1
  87. package/dist/{github-copilot-auth-CcPEEb3Q.js → github-copilot-auth-D6I2MUxi.js} +6 -6
  88. package/dist/{github-copilot-auth-h3beCc_l.js → github-copilot-auth-DvShXmvU.js} +6 -6
  89. package/dist/{gmail-setup-utils-pZ9NnOvB.js → gmail-setup-utils-CAfk_F1J.js} +2 -2
  90. package/dist/{gmail-setup-utils-CnVYPhaQ.js → gmail-setup-utils-CJ1pbsWv.js} +2 -2
  91. package/dist/{health-format-BcsR5dtU.js → health-format-DlvTEKqI.js} +8 -8
  92. package/dist/{health-format-Pl8qK65t.js → health-format-SZpheYuf.js} +8 -8
  93. package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
  94. package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
  95. package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
  96. package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
  97. package/dist/{hooks-cli-zkLY25DX.js → hooks-cli-CedlcxxR.js} +31 -31
  98. package/dist/{hooks-cli-BKHTdsn4.js → hooks-cli-DRarvOK2.js} +31 -31
  99. package/dist/{hooks-status-BETsyuUR.js → hooks-status-B4cP-W7z.js} +3 -3
  100. package/dist/{hooks-status-nPgxLL-x.js → hooks-status-n8jKv3Fm.js} +3 -3
  101. package/dist/{image-DAsWVn7Q.js → image-C6tw3aWy.js} +4 -4
  102. package/dist/{image-CC_YKDB-.js → image-CBqp4iA0.js} +3 -3
  103. package/dist/{image-BFNcQzKp.js → image-CQgVMkgf.js} +4 -4
  104. package/dist/index.js +79 -79
  105. package/dist/{installs-Byb3s_8P.js → installs-BhPUpyE9.js} +2 -2
  106. package/dist/{installs-CELeuogN.js → installs-CWAe2dOG.js} +2 -2
  107. package/dist/{links-cf9h8BXu.js → links-Dv1EDiwa.js} +2 -2
  108. package/dist/{links-Brcj2Oc-.js → links-kbubTyay.js} +2 -2
  109. package/dist/{loader-CU4bkeKe.js → loader-DE_vKAH5.js} +44 -44
  110. package/dist/{logging-BJRQDTME.js → logging-B65tlzu3.js} +2 -2
  111. package/dist/{logging-CD55MXc7.js → logging-C3Y3mzWS.js} +2 -2
  112. package/dist/{login-qr-BCr2GKX6.js → login-qr-BTMkosTm.js} +1 -1
  113. package/dist/{login-qr-HIPJAnbT.js → login-qr-BpdHxT8l.js} +3 -3
  114. package/dist/{login-qr-BMbekoZW.js → login-qr-C_Vv7Cqc.js} +3 -3
  115. package/dist/{logs-cli-CM7-XOcZ.js → logs-cli-_DHuOrR4.js} +9 -9
  116. package/dist/{logs-cli-aqjT7oHu.js → logs-cli-emy-Mg4S.js} +9 -9
  117. package/dist/{manager-CtGvmGvM.js → manager-CNk2RhQo.js} +3 -3
  118. package/dist/{manager-DpZlm3gk.js → manager-Cu-KA-wA.js} +3 -3
  119. package/dist/{manager-C5m5qpB0.js → manager-bvW7170C.js} +3 -3
  120. package/dist/{manifest-registry-BdTzIlta.js → manifest-registry-CBbBh2FT.js} +1 -1
  121. package/dist/{manifest-registry-DVQHMj0y.js → manifest-registry-CmLtWVRR.js} +1 -1
  122. package/dist/{model-selection-DuI_Ue9Q.js → model-selection-BVTyreim.js} +1 -1
  123. package/dist/{model-selection-Av0fLq51.js → model-selection-DmO3rB3w.js} +2 -2
  124. package/dist/{models-cli-gmkzOpbq.js → models-cli-CdrDfutq.js} +32 -32
  125. package/dist/{models-cli-C0JOZ5oP.js → models-cli-CgIqfTHx.js} +32 -32
  126. package/dist/{node-cli-BND9LLkM.js → node-cli-Bsn9lQ6O.js} +13 -13
  127. package/dist/{node-cli-DNRB94ib.js → node-cli-Ckvs6bcI.js} +13 -13
  128. package/dist/{nodes-cli-BCWlqHyR.js → nodes-cli-BELOAYB6.js} +10 -10
  129. package/dist/{nodes-cli-DWSo5dX7.js → nodes-cli-CTQPoAcf.js} +10 -10
  130. package/dist/{onboard-channels-DJz2TusQ.js → onboard-channels-B5qHfMk8.js} +6 -6
  131. package/dist/{onboard-channels-B75LjjVZ.js → onboard-channels-BgchLTab.js} +6 -6
  132. package/dist/{onboard-skills-ByHkU9nx.js → onboard-skills-CyG0xbsu.js} +17 -17
  133. package/dist/{onboard-skills-Wknr7pxR.js → onboard-skills-DEnuz7z3.js} +17 -17
  134. package/dist/{onboarding-BejDjkx5.js → onboarding-B6aTF0nd.js} +37 -37
  135. package/dist/{openclaw-root-_zPXSqgo.js → openclaw-root-Cx_l_MXP.js} +6 -2
  136. package/dist/{openclaw-root-YSGWCNem.js → openclaw-root-DJB4AQtF.js} +6 -2
  137. package/dist/{pairing-cli-Cn5vt4oI.js → pairing-cli-C_PnyRzK.js} +11 -11
  138. package/dist/{pairing-cli-CFqD3IdI.js → pairing-cli-CocCRLzF.js} +11 -11
  139. package/dist/{pairing-store-BHzy16_t.js → pairing-store-Dbotpoz6.js} +1 -1
  140. package/dist/{pairing-store-BOhO49Bi.js → pairing-store-cC0TwSYc.js} +1 -1
  141. package/dist/{paths-Dlp4VNXa.js → paths-B7p98Wg9.js} +1 -1
  142. package/dist/{pi-embedded-helpers-CQ9sq3Uu.js → pi-embedded-helpers-Bmu_uE8Y.js} +4 -4
  143. package/dist/{pi-embedded-helpers-B7ARjDEK.js → pi-embedded-helpers-CT7w1pYd.js} +2 -2
  144. package/dist/{pi-embedded-helpers-FPVRDeKf.js → pi-embedded-helpers-DRK9Qub7.js} +2 -2
  145. package/dist/{pi-tools.policy-Du4RZy9R.js → pi-tools.policy-BjgXXFkH.js} +3 -3
  146. package/dist/{plugin-auto-enable-RwRwIUKC.js → plugin-auto-enable-BmBAQgRq.js} +4 -4
  147. package/dist/{plugin-auto-enable-EBxTHjFJ.js → plugin-auto-enable-CBfM3u2p.js} +4 -4
  148. package/dist/plugin-sdk/index.js +1 -1
  149. package/dist/{plugins-BI-p2ba9.js → plugins-CB4Xjrgb.js} +2 -2
  150. package/dist/{plugins-Dk4UBZwz.js → plugins-CQ1FUoTO.js} +2 -2
  151. package/dist/{plugins-cli-CMg0G56J.js → plugins-cli-DB1NYN9W.js} +33 -33
  152. package/dist/{plugins-cli-CX7QeUjq.js → plugins-cli-Dn9I2nvT.js} +33 -33
  153. package/dist/{ports-nXmd4Efh.js → ports-CcCvup-Y.js} +2 -2
  154. package/dist/{program-EAMJAB_2.js → program-CL1V1uQh.js} +58 -58
  155. package/dist/{pw-ai-D6JUaD41.js → pw-ai-CQDH40p5.js} +2 -2
  156. package/dist/{pw-ai-D2jD_dho.js → pw-ai-DUv3Smif.js} +2 -2
  157. package/dist/{qmd-manager-B-ijyM7o.js → qmd-manager-DJdGKjf-.js} +2 -2
  158. package/dist/{qmd-manager-xo4abL0u.js → qmd-manager-DqhsQHr6.js} +2 -2
  159. package/dist/{qmd-manager-C_Jah5eo.js → qmd-manager-ym3oBzzR.js} +2 -2
  160. package/dist/{register.subclis-CJGimm3-.js → register.subclis-Bf9yES9h.js} +28 -28
  161. package/dist/{reply-DfepuqG0.js → reply-qWVVjmhR.js} +44 -44
  162. package/dist/{routes-DkckwrRx.js → routes-C49H9SW5.js} +4 -4
  163. package/dist/{routes-Q42qtNl1.js → routes-DzL6l-Oq.js} +4 -4
  164. package/dist/{rpc-B4lvrGrD.js → rpc-BEKdRxnk.js} +1 -1
  165. package/dist/{rpc-CbWcXAQK.js → rpc-jU_lA6zf.js} +1 -1
  166. package/dist/{run-main-JFY3X4Xh.js → run-main-C12Z921D.js} +59 -59
  167. package/dist/{sandbox-BGqDfFaH.js → sandbox-Cfvpk8Q8.js} +9 -9
  168. package/dist/{sandbox-D_Tt3WRq.js → sandbox-DcPAdlhA.js} +9 -9
  169. package/dist/{sandbox-cli-CaxqKiTq.js → sandbox-cli-DVfJ38Q2.js} +16 -16
  170. package/dist/{sandbox-cli-DA0Cbrzl.js → sandbox-cli-DqrtTHAP.js} +16 -16
  171. package/dist/{security-cli-Ct-pfF2h.js → security-cli-2AAajc4y.js} +18 -18
  172. package/dist/{security-cli-BZjA_GAD.js → security-cli-YL2ZTkkR.js} +18 -18
  173. package/dist/{server-context-C53lhEx_.js → server-context-9SLnBBRW.js} +4 -4
  174. package/dist/{server-context-B9ez46MY.js → server-context-BG54Dk0A.js} +4 -4
  175. package/dist/{server-node-events-Cb6QOeDH.js → server-node-events-uUSBf7hZ.js} +29 -29
  176. package/dist/{server-node-events-DONmQvJg.js → server-node-events-x6ZMjAs1.js} +29 -29
  177. package/dist/{service-audit-AsnhO40e.js → service-audit-BsDPEKdd.js} +1 -1
  178. package/dist/{service-audit-BM-iyLL7.js → service-audit-CCg0o0UZ.js} +1 -1
  179. package/dist/{skills-7V483a6m.js → skills-DaDm2aTV.js} +3 -3
  180. package/dist/{skills-CsZRBUj0.js → skills-DryIpWLj.js} +3 -3
  181. package/dist/{skills-cli-DQaq5LBX.js → skills-cli-CYZbvr7O.js} +10 -10
  182. package/dist/{skills-cli-dVugbaAb.js → skills-cli-eDUNGpwb.js} +10 -10
  183. package/dist/{skills-status-4_4zVBvV.js → skills-status-D9G4-4sK.js} +2 -2
  184. package/dist/{skills-status-cD4rfMR9.js → skills-status-dTiH79uI.js} +2 -2
  185. package/dist/{status-DSoYX3Ep.js → status-BnbwLzB2.js} +3 -3
  186. package/dist/{status-DHPz4Mg_.js → status-CN2V3fan.js} +37 -37
  187. package/dist/{status-BakhDLuG.js → status-DCrBN9vJ.js} +3 -3
  188. package/dist/{system-cli-CUQswQPX.js → system-cli-BEmIixtY.js} +9 -9
  189. package/dist/{system-cli-Cz7in_Xr.js → system-cli-ZxnlO0-v.js} +9 -9
  190. package/dist/{table-DDQGlZSe.js → table--L48nql9.js} +2 -2
  191. package/dist/{table-DAOPkdc_.js → table-C1Xupkjv.js} +2 -2
  192. package/dist/{tool-display-Zbh1CRw5.js → tool-display-7o4pgXYF.js} +1 -1
  193. package/dist/{tool-display-B2rS2o6B.js → tool-display-B9G_vqLX.js} +1 -1
  194. package/dist/{tui-qPHLsB-x.js → tui-3eD-E_iD.js} +6 -6
  195. package/dist/{tui-DFVs6pRO.js → tui-BGSteZzU.js} +6 -6
  196. package/dist/{tui-cli-CBKZVd1C.js → tui-cli-B9iCyCn2.js} +19 -19
  197. package/dist/{tui-cli-DexeJOgZ.js → tui-cli-iakTIAvk.js} +19 -19
  198. package/dist/{update-cli-BPUtZjbl.js → update-cli-DUO4CVNB.js} +48 -48
  199. package/dist/{update-cli-ehTYbpaU.js → update-cli-DlXzjuIc.js} +47 -47
  200. package/dist/{update-B2q3duJD.js → update-lGuOUiyd.js} +3 -3
  201. package/dist/{update-runner-DAeygRSU.js → update-runner-L1EJYQRF.js} +5 -5
  202. package/dist/{update-runner-BfncKnU6.js → update-runner-eJ773fp-.js} +5 -5
  203. package/dist/{update-DNnej3C6.js → update-zm4_acQX.js} +3 -3
  204. package/dist/{utils-D7jskKIf.js → utils-CGterW74.js} +1 -7
  205. package/dist/{utils-7IMqr8vR.js → utils-DV2rghi_.js} +1 -7
  206. package/dist/{webhooks-cli-C0CV-1jG.js → webhooks-cli-BLHZn_at.js} +10 -10
  207. package/dist/{webhooks-cli-DT16BygW.js → webhooks-cli-UhujyhVU.js} +10 -10
  208. package/dist/{widearea-dns-Dk82I4Xa.js → widearea-dns-BKbb6W_z.js} +1 -1
  209. package/dist/{widearea-dns-BJZTAyT3.js → widearea-dns-CVZf20c2.js} +1 -1
  210. package/dist/{wsl-C24YfxH9.js → wsl-DntkIGSe.js} +1 -1
  211. package/docs/assets/pixel-lobster.svg +3 -3
  212. package/docs/blockchain/aave.md +72 -0
  213. package/docs/blockchain/agent-identity.md +73 -0
  214. package/docs/blockchain/contracts.md +96 -0
  215. package/docs/blockchain/defi.md +61 -0
  216. package/docs/blockchain/index.md +92 -0
  217. package/docs/blockchain/market-data.md +98 -0
  218. package/docs/blockchain/nft.md +44 -0
  219. package/docs/blockchain/portfolio.md +57 -0
  220. package/docs/blockchain/security.md +83 -0
  221. package/docs/blockchain/swap.md +89 -0
  222. package/docs/blockchain/wallet.md +77 -0
  223. package/docs/concepts/features.md +29 -10
  224. package/docs/docs.json +76 -6
  225. package/docs/index.md +44 -44
  226. package/docs/start/getting-started.md +10 -9
  227. package/docs/zh-CN/blockchain/aave.md +63 -0
  228. package/docs/zh-CN/blockchain/agent-identity.md +62 -0
  229. package/docs/zh-CN/blockchain/contracts.md +64 -0
  230. package/docs/zh-CN/blockchain/defi.md +49 -0
  231. package/docs/zh-CN/blockchain/index.md +92 -0
  232. package/docs/zh-CN/blockchain/market-data.md +68 -0
  233. package/docs/zh-CN/blockchain/nft.md +43 -0
  234. package/docs/zh-CN/blockchain/portfolio.md +49 -0
  235. package/docs/zh-CN/blockchain/security.md +75 -0
  236. package/docs/zh-CN/blockchain/swap.md +68 -0
  237. package/docs/zh-CN/blockchain/wallet.md +71 -0
  238. package/extensions/copilot-proxy/README.md +3 -3
  239. package/extensions/copilot-proxy/package.json +1 -1
  240. package/extensions/diagnostics-otel/package.json +1 -1
  241. package/extensions/diagnostics-otel/src/service.test.ts +12 -12
  242. package/extensions/diagnostics-otel/src/service.ts +79 -79
  243. package/extensions/discord/package.json +1 -1
  244. package/extensions/imessage/package.json +1 -1
  245. package/extensions/memory-core/package.json +1 -1
  246. package/extensions/memory-lancedb/config.ts +3 -3
  247. package/extensions/memory-lancedb/{openclaw.plugin.json → cryptoclaw.plugin.json} +1 -1
  248. package/extensions/memory-lancedb/index.test.ts +2 -2
  249. package/extensions/memory-lancedb/index.ts +1 -1
  250. package/extensions/memory-lancedb/package.json +1 -1
  251. package/extensions/nostr/README.md +5 -5
  252. package/extensions/nostr/package.json +1 -1
  253. package/extensions/nostr/src/channel.ts +1 -1
  254. package/extensions/nostr/src/nostr-state-store.test.ts +1 -1
  255. package/extensions/signal/package.json +1 -1
  256. package/extensions/slack/package.json +1 -1
  257. package/extensions/telegram/package.json +1 -1
  258. package/extensions/voice-call/README.md +14 -14
  259. package/extensions/voice-call/package.json +1 -1
  260. package/extensions/voice-call/src/cli.ts +1 -1
  261. package/extensions/voice-call/src/core-bridge.ts +1 -1
  262. package/extensions/voice-call/src/manager.test.ts +6 -6
  263. package/extensions/voice-call/src/manager.ts +1 -1
  264. package/extensions/voice-call/src/response-generator.ts +1 -1
  265. package/extensions/whatsapp/package.json +1 -1
  266. package/package.json +1 -1
  267. package/skills/aave-bsc/SKILL.md +6 -0
  268. package/skills/coding-agent/SKILL.md +5 -5
  269. package/skills/discord/SKILL.md +6 -6
  270. package/skills/tmux/SKILL.md +6 -6
  271. package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
  272. /package/extensions/copilot-proxy/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  273. /package/extensions/diagnostics-otel/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  274. /package/extensions/discord/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  275. /package/extensions/imessage/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  276. /package/extensions/memory-core/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  277. /package/extensions/nostr/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  278. /package/extensions/signal/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  279. /package/extensions/slack/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  280. /package/extensions/telegram/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  281. /package/extensions/voice-call/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  282. /package/extensions/whatsapp/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
@@ -1,55 +1,55 @@
1
- import { A as parseImageSizeError, B as normalizeElevatedLevel, C as isFailoverAssistantError, D as isRawApiErrorPayload, E as isRateLimitAssistantError, F as sanitizeGoogleTurnOrdering, G as resolveResponseUsageMode, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, M as buildBootstrapContextFiles, N as ensureSessionHeader, O as isTimeoutErrorMessage, P as resolveBootstrapMaxChars, S as isContextOverflowError, T as isLikelyContextOverflowError, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel, _ as getApiErrorPayloadFingerprint, a as isMessagingToolDuplicateNormalized, b as isCloudCodeAssistFormatError, c as sanitizeImageBlocks, d as isAntigravityClaude, f as isGoogleModelApi, g as formatRawAssistantErrorForUi, h as formatAssistantErrorText, j as sanitizeUserFacingText, k as parseImageDimensionError, l as sanitizeToolResultImages, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as isAuthAssistantError, w as isFailoverErrorMessage, x as isCompactionFailureError, y as isBillingAssistantError } from "./pi-embedded-helpers-B7ARjDEK.js";
1
+ import { A as parseImageSizeError, B as normalizeElevatedLevel, C as isFailoverAssistantError, D as isRawApiErrorPayload, E as isRateLimitAssistantError, F as sanitizeGoogleTurnOrdering, G as resolveResponseUsageMode, H as normalizeThinkLevel, I as formatThinkingLevels, K as supportsXHighThinking, L as formatXHighModelHint, M as buildBootstrapContextFiles, N as ensureSessionHeader, O as isTimeoutErrorMessage, P as resolveBootstrapMaxChars, S as isContextOverflowError, T as isLikelyContextOverflowError, U as normalizeUsageDisplay, V as normalizeReasoningLevel, W as normalizeVerboseLevel, _ as getApiErrorPayloadFingerprint, a as isMessagingToolDuplicateNormalized, b as isCloudCodeAssistFormatError, c as sanitizeImageBlocks, d as isAntigravityClaude, f as isGoogleModelApi, g as formatRawAssistantErrorForUi, h as formatAssistantErrorText, j as sanitizeUserFacingText, k as parseImageDimensionError, l as sanitizeToolResultImages, m as classifyFailoverReason, n as validateGeminiTurns, o as normalizeTextForComparison, p as BILLING_ERROR_USER_MESSAGE, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as downgradeOpenAIReasoningBlocks, v as isAuthAssistantError, w as isFailoverErrorMessage, x as isCompactionFailureError, y as isBillingAssistantError } from "./pi-embedded-helpers-CT7w1pYd.js";
2
2
  import { _ as resolveStateDir, r as STATE_DIR, t as CONFIG_PATH } from "./paths-CGrNQEMk.js";
3
3
  import { _ as parseAgentSessionKey, a as buildAgentPeerSessionKey, c as normalizeAgentId, d as resolveThreadSessionKeys, f as sanitizeAgentId, g as isSubagentSessionKey, h as isAcpSessionKey, i as buildAgentMainSessionKey, l as normalizeMainKey, n as DEFAULT_AGENT_ID, o as buildGroupHistoryKey, r as DEFAULT_MAIN_KEY, s as normalizeAccountId$2, t as DEFAULT_ACCOUNT_ID, u as resolveAgentIdFromSessionKey, v as resolveThreadParentSessionKey } from "./session-key-CYpWeuht.js";
4
4
  import { A as logVerbose, D as info, E as danger, F as warn, I as colorize, L as isRich, M as setVerbose, N as shouldLogVerbose, P as success, R as theme, T as setActivePluginRegistry, U as normalizeLogLevel, b as normalizeAnyChannelId, c as defaultRuntime, m as CHAT_CHANNEL_ORDER, t as createSubsystemLogger, x as normalizeChannelId, z as getChildLogger } from "./subsystem-Btuh5yZj.js";
5
- import { _ as shortenHomePath, b as toWhatsappJid, d as normalizeE164, g as shortenHomeInString, h as resolveUserPath, l as isSelfChatMode, m as resolveJidToE164, r as clampInt, t as CONFIG_DIR, u as jidToE164, v as sleep, x as truncateUtf16Safe, y as sliceUtf16Safe } from "./utils-D7jskKIf.js";
5
+ import { _ as sliceUtf16Safe, c as jidToE164, f as resolveJidToE164, g as sleep, h as shortenHomePath, l as normalizeE164, m as shortenHomeInString, p as resolveUserPath, r as clampInt, s as isSelfChatMode, t as CONFIG_DIR, v as toWhatsappJid, y as truncateUtf16Safe } from "./utils-CGterW74.js";
6
6
  import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, o as logError, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-CW_QjkBi.js";
7
- import { t as resolveOpenClawPackageRoot } from "./openclaw-root-YSGWCNem.js";
8
- import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-DLfFOxP6.js";
9
- import { $ as resolveApiKeyForProfile, I as resolveEnvApiKey, J as resolveAuthProfileOrder, L as resolveModelAuthMode, M as getCustomProviderApiKey, N as requireApiKey, P as resolveApiKeyForProvider, V as resolveShellEnvFallbackTimeoutMs, X as markAuthProfileFailure, Y as isProfileInCooldown, Z as markAuthProfileUsed, a as isCliProvider, at as listProfilesForProvider, bt as DEFAULT_PROVIDER, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, h as resolveThinkingDefault, ht as resolveAuthProfileDisplayLabel, j as getApiKeyForModel, lt as ensureAuthProfileStore, m as resolveModelRefFromString, mt as resolveOpenClawAgentDir, n as buildConfiguredAllowlistKeys, o as modelKey, ot as markAuthProfileGood, pt as resolveAuthStorePathForDisplay, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, v as normalizeGoogleModelId, vt as DEFAULT_CONTEXT_TOKENS, yt as DEFAULT_MODEL, z as getShellPathFromLoginShell } from "./model-selection-Av0fLq51.js";
7
+ import { t as resolveOpenClawPackageRoot } from "./openclaw-root-Cx_l_MXP.js";
8
+ import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-GUoze5gc.js";
9
+ import { $ as resolveApiKeyForProfile, I as resolveEnvApiKey, J as resolveAuthProfileOrder, L as resolveModelAuthMode, M as getCustomProviderApiKey, N as requireApiKey, P as resolveApiKeyForProvider, V as resolveShellEnvFallbackTimeoutMs, X as markAuthProfileFailure, Y as isProfileInCooldown, Z as markAuthProfileUsed, a as isCliProvider, at as listProfilesForProvider, bt as DEFAULT_PROVIDER, d as resolveConfiguredModelRef, f as resolveDefaultModelForAgent, h as resolveThinkingDefault, ht as resolveAuthProfileDisplayLabel, j as getApiKeyForModel, lt as ensureAuthProfileStore, m as resolveModelRefFromString, mt as resolveOpenClawAgentDir, n as buildConfiguredAllowlistKeys, o as modelKey, ot as markAuthProfileGood, pt as resolveAuthStorePathForDisplay, r as buildModelAliasIndex, s as normalizeProviderId, t as buildAllowedModelSet, v as normalizeGoogleModelId, vt as DEFAULT_CONTEXT_TOKENS, yt as DEFAULT_MODEL, z as getShellPathFromLoginShell } from "./model-selection-DmO3rB3w.js";
10
10
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-hMl1wyZp.js";
11
11
  import { t as formatCliCommand } from "./command-format-9IsYy-9N.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-BsqeuxE6.js";
13
13
  import { t as isTruthyEnvValue } from "./env-B2Cd_6IS.js";
14
- import { C as setConfigValueAtPath, S as parseConfigPath, _ as getConfigOverrides, b as unsetConfigOverride, c as writeConfigFile, d as TELEGRAM_COMMAND_NAME_PATTERN, f as normalizeTelegramCommandName, g as validateJsonSchemaValue, h as parseDurationMs, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, m as isSafeExecutableValue, o as readConfigFileSnapshot, p as resolveTelegramCustomCommands, s as resolveConfigSnapshotHash, v as resetConfigOverrides, w as unsetConfigValueAtPath, x as getConfigValueAtPath, y as setConfigOverride } from "./config-dQK4rbfx.js";
15
- import { c as resolveEnableState, l as resolveMemorySlotDecision, n as discoverOpenClawPlugins, s as normalizePluginsConfig, t as loadPluginManifestRegistry } from "./manifest-registry-DVQHMj0y.js";
16
- import { _ as listEnabledDiscordAccounts, a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-Dk4UBZwz.js";
17
- import { A as resolveSessionResetPolicy, C as normalizeDeliveryContext, D as resolveSessionKey$1, H as listChannelDocks, J as resolveIMessageAccount, K as listEnabledSignalAccounts, L as resolveMainSessionKey, M as resolveThreadFlag, N as DEFAULT_RESET_TRIGGERS, O as evaluateSessionFreshness, P as canonicalizeMainSessionAlias, S as mergeDeliveryContext, U as resolveChannelGroupPolicy, V as getChannelDock, W as resolveChannelGroupRequireMention, X as resolveGroupSessionKey, Y as buildGroupDisplayName, Z as resolveSandboxConfigForAgent, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as normalizeToolName, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, d as loadSessionStore, dt as resolveConversationLabel, et as applyOwnerOnlyToolPolicy, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, j as resolveSessionResetType, k as resolveChannelResetConfig, l as appendAssistantMessageToSessionTranscript, nt as collectExplicitAllowlist, o as resolveSandboxContext, ot as resolveToolProfilePolicy, p as recordSessionMetaFromInbound, q as resolveSignalAccount, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1, z as deriveSessionMetaPatch } from "./sandbox-D_Tt3WRq.js";
18
- import { _ as ensureOpenClawModelsJson, a as decodeDataUrl, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as stripDowngradedToolCallText, o as resolveProviderVisionModelFromConfig, p as promoteThinkingTagsToBlocks, r as coerceImageAssistantText, s as extractAssistantText$1, t as describeImageWithModel, u as extractThinkingFromTaggedText, v as minimaxUnderstandImage } from "./image-DAsWVn7Q.js";
14
+ import { C as setConfigValueAtPath, S as parseConfigPath, _ as getConfigOverrides, b as unsetConfigOverride, c as writeConfigFile, d as TELEGRAM_COMMAND_NAME_PATTERN, f as normalizeTelegramCommandName, g as validateJsonSchemaValue, h as parseDurationMs, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, m as isSafeExecutableValue, o as readConfigFileSnapshot, p as resolveTelegramCustomCommands, s as resolveConfigSnapshotHash, v as resetConfigOverrides, w as unsetConfigValueAtPath, x as getConfigValueAtPath, y as setConfigOverride } from "./config-D1wc31Qf.js";
15
+ import { c as resolveEnableState, l as resolveMemorySlotDecision, n as discoverOpenClawPlugins, s as normalizePluginsConfig, t as loadPluginManifestRegistry } from "./manifest-registry-CmLtWVRR.js";
16
+ import { _ as listEnabledDiscordAccounts, a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-CQ1FUoTO.js";
17
+ import { A as resolveSessionResetPolicy, C as normalizeDeliveryContext, D as resolveSessionKey$1, H as listChannelDocks, J as resolveIMessageAccount, K as listEnabledSignalAccounts, L as resolveMainSessionKey, M as resolveThreadFlag, N as DEFAULT_RESET_TRIGGERS, O as evaluateSessionFreshness, P as canonicalizeMainSessionAlias, S as mergeDeliveryContext, U as resolveChannelGroupPolicy, V as getChannelDock, W as resolveChannelGroupRequireMention, X as resolveGroupSessionKey, Y as buildGroupDisplayName, Z as resolveSandboxConfigForAgent, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as normalizeToolName, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, d as loadSessionStore, dt as resolveConversationLabel, et as applyOwnerOnlyToolPolicy, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, j as resolveSessionResetType, k as resolveChannelResetConfig, l as appendAssistantMessageToSessionTranscript, nt as collectExplicitAllowlist, o as resolveSandboxContext, ot as resolveToolProfilePolicy, p as recordSessionMetaFromInbound, q as resolveSignalAccount, rt as expandPolicyWithPluginGroups, st as stripPluginOnlyAllowlist, tt as buildPluginToolGroups, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1, z as deriveSessionMetaPatch } from "./sandbox-DcPAdlhA.js";
18
+ import { _ as ensureOpenClawModelsJson, a as decodeDataUrl, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as stripDowngradedToolCallText, o as resolveProviderVisionModelFromConfig, p as promoteThinkingTagsToBlocks, r as coerceImageAssistantText, s as extractAssistantText$1, t as describeImageWithModel, u as extractThinkingFromTaggedText, v as minimaxUnderstandImage } from "./image-C6tw3aWy.js";
19
19
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-EwKVHlZB.js";
20
- import { E as formatUncaughtError, T as formatErrorMessage, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as extractErrorCode } from "./chrome-CwbWzmh4.js";
21
- import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-CsZRBUj0.js";
22
- import { c as saveMediaBuffer, d as getFileExtension, f as imageMimeFromFormat, g as MAX_IMAGE_BYTES, h as kindFromMime, l as detectMime, m as isGifMedia, o as resizeToJpeg, p as isAudioFileName, r as getImageMetadata, s as getMediaDir, u as extensionForMime, v as mediaKindFromMime, y as SsrFBlockedError } from "./routes-DkckwrRx.js";
23
- import { i as resolveBrowserConfig } from "./server-context-C53lhEx_.js";
20
+ import { E as formatUncaughtError, T as formatErrorMessage, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, w as extractErrorCode } from "./chrome-D0L5ufqO.js";
21
+ import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-DryIpWLj.js";
22
+ import { c as saveMediaBuffer, d as getFileExtension, f as imageMimeFromFormat, g as MAX_IMAGE_BYTES, h as kindFromMime, l as detectMime, m as isGifMedia, o as resizeToJpeg, p as isAudioFileName, r as getImageMetadata, s as getMediaDir, u as extensionForMime, v as mediaKindFromMime, y as SsrFBlockedError } from "./routes-C49H9SW5.js";
23
+ import { i as resolveBrowserConfig } from "./server-context-9SLnBBRW.js";
24
24
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-CvHWS3C2.js";
25
- import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-BPjR5SyC.js";
25
+ import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-DA-4bmd_.js";
26
26
  import { a as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, o as resolveStorePath, r as resolveSessionTranscriptPath } from "./paths-C3yk0MGu.js";
27
27
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-D2kT5WSz.js";
28
28
  import { n as redactSensitiveText } from "./redact-CVRUv382.js";
29
- import { n as resolveToolDisplay } from "./tool-display-Zbh1CRw5.js";
30
- import { A as markdownToIRWithMeta, B as resolveTextChunkLimit, C as signalCheck, D as wrapFetchWithAbortSignal, E as resolveFetch, F as chunkMarkdownText, G as SILENT_REPLY_TOKEN, H as isSafeFenceBreak, I as chunkMarkdownTextWithMode, J as fetchRemoteMedia, K as isSilentReplyText, L as chunkText, M as loadWebMediaRaw, N as resolveMarkdownTableMode, O as chunkMarkdownIR, P as chunkByNewline, R as chunkTextWithMode, S as sendTypingSignal, T as streamSignalEvents, U as parseFenceSpans, V as findFenceSpanAt, W as HEARTBEAT_TOKEN, Y as fetchWithSsrFGuard, _ as parseReplyDirectives, b as sendMessageSignal, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, j as loadWebMedia, k as markdownToIR, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as MediaFetchError, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as splitMediaFromOutput, w as signalRpcRequest, x as sendReadReceiptSignal, y as parseInlineDirectives$1, z as resolveChunkMode } from "./deliver-sPBfRlXT.js";
31
- import { i as getMachineDisplayName, n as isWSL, t as createBrowserRouteDispatcher } from "./dispatcher-DA3u3CwV.js";
32
- import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-CtGvmGvM.js";
29
+ import { n as resolveToolDisplay } from "./tool-display-7o4pgXYF.js";
30
+ import { A as markdownToIRWithMeta, B as resolveTextChunkLimit, C as signalCheck, D as wrapFetchWithAbortSignal, E as resolveFetch, F as chunkMarkdownText, G as SILENT_REPLY_TOKEN, H as isSafeFenceBreak, I as chunkMarkdownTextWithMode, J as fetchRemoteMedia, K as isSilentReplyText, L as chunkText, M as loadWebMediaRaw, N as resolveMarkdownTableMode, O as chunkMarkdownIR, P as chunkByNewline, R as chunkTextWithMode, S as sendTypingSignal, T as streamSignalEvents, U as parseFenceSpans, V as findFenceSpanAt, W as HEARTBEAT_TOKEN, Y as fetchWithSsrFGuard, _ as parseReplyDirectives, b as sendMessageSignal, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as normalizeTargetForProvider, h as normalizeChannelTargetInput, j as loadWebMedia, k as markdownToIR, l as filterMessagingToolDuplicates, m as buildTargetResolverSignature, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as MediaFetchError, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as splitMediaFromOutput, w as signalRpcRequest, x as sendReadReceiptSignal, y as parseInlineDirectives$1, z as resolveChunkMode } from "./deliver-CNKlQLWI.js";
31
+ import { i as getMachineDisplayName, n as isWSL, t as createBrowserRouteDispatcher } from "./dispatcher-cp7uHiyX.js";
32
+ import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-CNk2RhQo.js";
33
33
  import { c as listMemoryFiles, l as normalizeExtraMemoryPaths } from "./sqlite-C4DljFNL.js";
34
- import { C as shouldHandleTextCommands, S as serializeCommandArgs, _ as listNativeCommandSpecsForConfig, b as resolveCommandArgChoices, f as buildCommandTextFromArgs, g as listNativeCommandSpecs, h as listChatCommandsForConfig, m as listChatCommands, o as extractTextFromMessage, p as findCommandByNativeName, t as buildChannelSummary, v as normalizeCommandBody, x as resolveCommandArgMenu, y as parseCommandArgs } from "./channel-summary-CobMoKN6.js";
34
+ import { C as shouldHandleTextCommands, S as serializeCommandArgs, _ as listNativeCommandSpecsForConfig, b as resolveCommandArgChoices, f as buildCommandTextFromArgs, g as listNativeCommandSpecs, h as listChatCommandsForConfig, m as listChatCommands, o as extractTextFromMessage, p as findCommandByNativeName, t as buildChannelSummary, v as normalizeCommandBody, x as resolveCommandArgMenu, y as parseCommandArgs } from "./channel-summary-C4kSR_wu.js";
35
35
  import { Et as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-BaTYzXOU.js";
36
36
  import { t as pickPrimaryTailnetIPv4 } from "./tailnet-D5wOWpOX.js";
37
- import { i as randomIdempotencyKey, n as callGateway } from "./call-DqxlETxE.js";
38
- import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-HIPJAnbT.js";
39
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BHzy16_t.js";
40
- import { t as formatDocsLink } from "./links-Brcj2Oc-.js";
37
+ import { i as randomIdempotencyKey, n as callGateway } from "./call-QEaFjVBF.js";
38
+ import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-BpdHxT8l.js";
39
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-Dbotpoz6.js";
40
+ import { t as formatDocsLink } from "./links-Dv1EDiwa.js";
41
41
  import { i as withManager, t as formatErrorMessage$1 } from "./cli-utils-CgOu3WAB.js";
42
42
  import { n as withProgress, r as withProgressTotals } from "./progress-DTEUicRP.js";
43
- import { a as resolveSubagentToolPolicy, c as resolveNativeSkillsEnabled, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, o as isNativeCommandsExplicitlyDisabled, r as resolveEffectiveToolPolicy, s as resolveNativeCommandsEnabled, t as filterToolsByPolicy } from "./pi-tools.policy-Du4RZy9R.js";
43
+ import { a as resolveSubagentToolPolicy, c as resolveNativeSkillsEnabled, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, o as isNativeCommandsExplicitlyDisabled, r as resolveEffectiveToolPolicy, s as resolveNativeCommandsEnabled, t as filterToolsByPolicy } from "./pi-tools.policy-BjgXXFkH.js";
44
44
  import { r as stylePromptTitle } from "./prompt-style-BBlJlXtd.js";
45
45
  import { c as derivePromptTokens, l as hasNonzeroUsage, n as loadCostUsageSummary, o as extractToolCallNames, r as loadSessionCostSummary, s as hasToolCall, u as normalizeUsage } from "./session-cost-usage-B3HzifR9.js";
46
46
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd$1, t as estimateUsageCost } from "./usage-format-DvowRSs-.js";
47
47
  import { a as evaluateShellAllowlist, d as requiresExecApproval, f as resolveExecApprovals, h as resolveSafeBins, o as maxAsk, p as resolveExecApprovalsFromFile, s as minSecurity, t as addAllowlistEntry, u as recordAllowlistUse } from "./exec-approvals-CuXem6Li.js";
48
48
  import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as buildNodeShellCommand, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-Cok3-EJw.js";
49
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BXC31sNw.js";
49
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BBeopea3.js";
50
50
  import { t as parseAbsoluteTimeMs } from "./parse-BZz5lHzQ.js";
51
51
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-DBvu3LzZ.js";
52
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-D7jFTFec.js";
52
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-ChOffLk2.js";
53
53
  import { t as parseTimeoutMs } from "./parse-timeout-Du-wHHNi.js";
54
54
  import { createRequire } from "node:module";
55
55
  import process$1 from "node:process";
@@ -4391,7 +4391,7 @@ async function createModelSelectionState(params) {
4391
4391
  }
4392
4392
  }
4393
4393
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
4394
- const { ensureAuthProfileStore } = await import("./model-selection-Av0fLq51.js").then((n) => n.q);
4394
+ const { ensureAuthProfileStore } = await import("./model-selection-DmO3rB3w.js").then((n) => n.q);
4395
4395
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
4396
4396
  const providerKey = normalizeProviderId(provider);
4397
4397
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -8167,7 +8167,7 @@ async function getMemorySearchManager(params) {
8167
8167
  const cached = QMD_MANAGER_CACHE.get(cacheKey);
8168
8168
  if (cached) return { manager: cached };
8169
8169
  try {
8170
- const { QmdMemoryManager } = await import("./qmd-manager-xo4abL0u.js");
8170
+ const { QmdMemoryManager } = await import("./qmd-manager-DqhsQHr6.js");
8171
8171
  const primary = await QmdMemoryManager.create({
8172
8172
  cfg: params.cfg,
8173
8173
  agentId: params.agentId,
@@ -8177,7 +8177,7 @@ async function getMemorySearchManager(params) {
8177
8177
  const wrapper = new FallbackMemoryManager({
8178
8178
  primary,
8179
8179
  fallbackFactory: async () => {
8180
- const { MemoryIndexManager } = await import("./manager-CtGvmGvM.js").then((n) => n.t);
8180
+ const { MemoryIndexManager } = await import("./manager-CNk2RhQo.js").then((n) => n.t);
8181
8181
  return await MemoryIndexManager.get(params);
8182
8182
  }
8183
8183
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -8190,7 +8190,7 @@ async function getMemorySearchManager(params) {
8190
8190
  }
8191
8191
  }
8192
8192
  try {
8193
- const { MemoryIndexManager } = await import("./manager-CtGvmGvM.js").then((n) => n.t);
8193
+ const { MemoryIndexManager } = await import("./manager-CNk2RhQo.js").then((n) => n.t);
8194
8194
  return { manager: await MemoryIndexManager.get(params) };
8195
8195
  } catch (err) {
8196
8196
  return {
@@ -11360,7 +11360,7 @@ async function routeReply(params) {
11360
11360
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
11361
11361
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
11362
11362
  try {
11363
- const { deliverOutboundPayloads } = await import("./deliver-sPBfRlXT.js").then((n) => n.n);
11363
+ const { deliverOutboundPayloads } = await import("./deliver-CNKlQLWI.js").then((n) => n.n);
11364
11364
  return {
11365
11365
  ok: true,
11366
11366
  messageId: (await deliverOutboundPayloads({
@@ -16187,7 +16187,7 @@ async function describeStickerImage(params) {
16187
16187
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
16188
16188
  try {
16189
16189
  const buffer = await fs$1.readFile(imagePath);
16190
- const { describeImageWithModel } = await import("./image-DAsWVn7Q.js").then((n) => n.n);
16190
+ const { describeImageWithModel } = await import("./image-C6tw3aWy.js").then((n) => n.n);
16191
16191
  return (await describeImageWithModel({
16192
16192
  buffer,
16193
16193
  fileName: "sticker.webp",
@@ -16544,7 +16544,7 @@ function createWhatsAppLoginTool() {
16544
16544
  force: Type.Optional(Type.Boolean())
16545
16545
  }),
16546
16546
  execute: async (_toolCallId, args) => {
16547
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-HIPJAnbT.js").then((n) => n.t);
16547
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BpdHxT8l.js").then((n) => n.t);
16548
16548
  if ((args?.action ?? "start") === "wait") {
16549
16549
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
16550
16550
  return {
@@ -19540,7 +19540,7 @@ async function runMemoryStatus(opts) {
19540
19540
  }
19541
19541
  }
19542
19542
  function registerMemoryCli(program) {
19543
- const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.cryptoclaw.ai/cli/memory")}\n`);
19543
+ const memory = program.command("memory").description("Memory search tools").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/memory", "docs.openclaw.ai/cli/memory")}\n`);
19544
19544
  memory.command("status").description("Show memory search index status").option("--agent <id>", "Agent id (default: default agent)").option("--json", "Print JSON").option("--deep", "Probe embedding provider availability").option("--index", "Reindex if dirty (implies --deep)").option("--verbose", "Verbose logging", false).action(async (opts) => {
19545
19545
  await runMemoryStatus(opts);
19546
19546
  });
@@ -24463,8 +24463,8 @@ function formatControlUiSshHint(params) {
24463
24463
  "Then open:",
24464
24464
  localUrl,
24465
24465
  "Docs:",
24466
- "https://docs.cryptoclaw.ai/gateway/remote",
24467
- "https://docs.cryptoclaw.ai/web/control-ui"
24466
+ "https://docs.openclaw.ai/gateway/remote",
24467
+ "https://docs.openclaw.ai/web/control-ui"
24468
24468
  ].filter(Boolean).join("\n");
24469
24469
  }
24470
24470
  function resolveSshTargetHint() {
@@ -30070,7 +30070,7 @@ function buildDocsSection(params) {
30070
30070
  return [
30071
30071
  "## Documentation",
30072
30072
  `CryptoClaw docs: ${docsPath}`,
30073
- "Mirror: https://docs.cryptoclaw.ai",
30073
+ "Mirror: https://docs.openclaw.ai",
30074
30074
  "Source: https://github.com/cryptoclaw/cryptoclaw",
30075
30075
  "Community: https://discord.com/invite/clawd",
30076
30076
  "Find new skills: https://clawhub.com",
@@ -47251,12 +47251,12 @@ function missingSearchKeyPayload(provider) {
47251
47251
  if (provider === "perplexity") return {
47252
47252
  error: "missing_perplexity_api_key",
47253
47253
  message: "web_search (perplexity) needs an API key. Set PERPLEXITY_API_KEY or OPENROUTER_API_KEY in the Gateway environment, or configure tools.web.search.perplexity.apiKey.",
47254
- docs: "https://docs.cryptoclaw.ai/tools/web"
47254
+ docs: "https://docs.openclaw.ai/tools/web"
47255
47255
  };
47256
47256
  return {
47257
47257
  error: "missing_brave_api_key",
47258
47258
  message: `web_search needs a Brave Search API key. Run \`${formatCliCommand("cryptoclaw configure --section web")}\` to store it, or set BRAVE_API_KEY in the Gateway environment.`,
47259
- docs: "https://docs.cryptoclaw.ai/tools/web"
47259
+ docs: "https://docs.openclaw.ai/tools/web"
47260
47260
  };
47261
47261
  }
47262
47262
  function resolveSearchProvider(search) {
@@ -47475,13 +47475,13 @@ function createWebSearchTool(options) {
47475
47475
  if (rawFreshness && provider !== "brave") return jsonResult({
47476
47476
  error: "unsupported_freshness",
47477
47477
  message: "freshness is only supported by the Brave web_search provider.",
47478
- docs: "https://docs.cryptoclaw.ai/tools/web"
47478
+ docs: "https://docs.openclaw.ai/tools/web"
47479
47479
  });
47480
47480
  const freshness = rawFreshness ? normalizeFreshness(rawFreshness) : void 0;
47481
47481
  if (rawFreshness && !freshness) return jsonResult({
47482
47482
  error: "invalid_freshness",
47483
47483
  message: "freshness must be one of pd, pw, pm, py, or a range like YYYY-MM-DDtoYYYY-MM-DD.",
47484
- docs: "https://docs.cryptoclaw.ai/tools/web"
47484
+ docs: "https://docs.openclaw.ai/tools/web"
47485
47485
  });
47486
47486
  return jsonResult(await runWebSearch({
47487
47487
  query,
@@ -55052,7 +55052,7 @@ function formatElevatedUnavailableMessage$1(params) {
55052
55052
  return lines.join("\n");
55053
55053
  }
55054
55054
  async function handleBashChatCommand(params) {
55055
- if (params.cfg.commands?.bash !== true) return { text: "⚠️ bash is disabled. Set commands.bash=true to enable. Docs: https://docs.cryptoclaw.ai/tools/slash-commands#config" };
55055
+ if (params.cfg.commands?.bash !== true) return { text: "⚠️ bash is disabled. Set commands.bash=true to enable. Docs: https://docs.openclaw.ai/tools/slash-commands#config" };
55056
55056
  const agentId = params.agentId ?? resolveSessionAgentId({
55057
55057
  sessionKey: params.sessionKey,
55058
55058
  config: params.cfg
@@ -57981,7 +57981,7 @@ function buildSystemPrompt(params) {
57981
57981
  workspaceDir: params.workspaceDir,
57982
57982
  cwd: process.cwd(),
57983
57983
  runtime: {
57984
- host: "openclaw",
57984
+ host: "cryptoclaw",
57985
57985
  os: `${os.type()} ${os.release()}`,
57986
57986
  arch: os.arch(),
57987
57987
  node: process.version,
@@ -1,9 +1,9 @@
1
- import { f as resolveConfigDir } from "./utils-D7jskKIf.js";
1
+ import { u as resolveConfigDir } from "./utils-CGterW74.js";
2
2
  import { n as runExec } from "./exec-CW_QjkBi.js";
3
3
  import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
4
- import { c as writeConfigFile, i as loadConfig } from "./config-dQK4rbfx.js";
5
- import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, a as resolveOpenClawUserDataDir, h as captureScreenshot, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, m as resolveBrowserExecutableForPlatform, y as snapshotAria } from "./chrome-CwbWzmh4.js";
6
- import { a as resolveProfile, c as getUsedColors, d as deriveDefaultBrowserCdpPortRange, f as getPwAiModule$1, l as getUsedPorts, n as movePathToTrash, o as allocateCdpPort, r as parseHttpUrl, s as allocateColor, u as isValidProfileName } from "./server-context-C53lhEx_.js";
4
+ import { c as writeConfigFile, i as loadConfig } from "./config-D1wc31Qf.js";
5
+ import { A as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, O as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, a as resolveOpenClawUserDataDir, h as captureScreenshot, k as DEFAULT_AI_SNAPSHOT_MAX_CHARS, m as resolveBrowserExecutableForPlatform, y as snapshotAria } from "./chrome-D0L5ufqO.js";
6
+ import { a as resolveProfile, c as getUsedColors, d as deriveDefaultBrowserCdpPortRange, f as getPwAiModule$1, l as getUsedPorts, n as movePathToTrash, o as allocateCdpPort, r as parseHttpUrl, s as allocateColor, u as isValidProfileName } from "./server-context-9SLnBBRW.js";
7
7
  import os from "node:os";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs";
@@ -1,9 +1,9 @@
1
1
  import { a as parseBooleanValue } from "./entry.js";
2
- import { d as resolveConfigDir } from "./utils-7IMqr8vR.js";
2
+ import { l as resolveConfigDir } from "./utils-DV2rghi_.js";
3
3
  import { n as runExec } from "./exec-CLQSz0CI.js";
4
- import { c as writeConfigFile, i as loadConfig } from "./config-DSpb2aMV.js";
5
- import { c as allocateColor, d as isValidProfileName, f as deriveDefaultBrowserCdpPortRange, i as parseHttpUrl, l as getUsedColors, n as movePathToTrash, o as resolveProfile, r as getPwAiModule$1, s as allocateCdpPort, u as getUsedPorts } from "./server-context-B9ez46MY.js";
6
- import { D as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, E as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, c as resolveOpenClawUserDataDir, h as captureScreenshot, u as resolveBrowserExecutableForPlatform, w as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, y as snapshotAria } from "./errors--S5IAxQx.js";
4
+ import { c as writeConfigFile, i as loadConfig } from "./config-DBZqAqbe.js";
5
+ import { c as allocateColor, d as isValidProfileName, f as deriveDefaultBrowserCdpPortRange, i as parseHttpUrl, l as getUsedColors, n as movePathToTrash, o as resolveProfile, r as getPwAiModule$1, s as allocateCdpPort, u as getUsedPorts } from "./server-context-BG54Dk0A.js";
6
+ import { D as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, E as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, c as resolveOpenClawUserDataDir, h as captureScreenshot, u as resolveBrowserExecutableForPlatform, w as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, y as snapshotAria } from "./errors-DpH6VpWK.js";
7
7
  import path from "node:path";
8
8
  import os from "node:os";
9
9
  import fs from "node:fs";
@@ -1,4 +1,4 @@
1
- import { n as callGateway } from "./call-D2DXG0AC.js";
1
+ import { n as callGateway } from "./call-D-Kvee3W.js";
2
2
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CfYBy4y3.js";
3
3
  import { n as withProgress } from "./progress-D-Oc-KAH.js";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-CvHWS3C2.js";
2
- import { n as callGateway } from "./call-DqxlETxE.js";
2
+ import { n as callGateway } from "./call-QEaFjVBF.js";
3
3
  import { n as withProgress } from "./progress-DTEUicRP.js";
4
4
 
5
5
  //#region src/cli/nodes-cli/format.ts
@@ -1,84 +1,84 @@
1
1
  import "./paths-D2ytuv-2.js";
2
2
  import { c as enableConsoleCapture, i as normalizeEnv, n as isTruthyEnvValue, p as defaultRuntime } from "./entry.js";
3
- import "./auth-profiles-DoD7YxsD.js";
4
- import { d as resolveConfigDir } from "./utils-7IMqr8vR.js";
3
+ import "./auth-profiles-CVShF1K6.js";
4
+ import { l as resolveConfigDir } from "./utils-DV2rghi_.js";
5
5
  import "./exec-CLQSz0CI.js";
6
- import "./agent-scope-DBl1We79.js";
6
+ import "./agent-scope-BJucHu4R.js";
7
7
  import "./github-copilot-token-C1sArkX4.js";
8
8
  import "./pi-model-discovery-DWTTaAgY.js";
9
- import { j as VERSION } from "./config-DSpb2aMV.js";
10
- import "./manifest-registry-BdTzIlta.js";
11
- import "./server-context-B9ez46MY.js";
12
- import { r as formatUncaughtError } from "./errors--S5IAxQx.js";
13
- import "./control-service-lVzEzp9f.js";
9
+ import { j as VERSION } from "./config-DBZqAqbe.js";
10
+ import "./manifest-registry-CBbBh2FT.js";
11
+ import "./server-context-BG54Dk0A.js";
12
+ import { r as formatUncaughtError } from "./errors-DpH6VpWK.js";
13
+ import "./control-service-CWGGzqpN.js";
14
14
  import { t as ensureOpenClawCliOnPath } from "./path-env-eQ-HoQtS.js";
15
15
  import "./tailscale-CCLcQalf.js";
16
16
  import "./auth-phxCaFNX.js";
17
17
  import "./client-N6zH1neq.js";
18
- import "./call-D2DXG0AC.js";
18
+ import "./call-D-Kvee3W.js";
19
19
  import "./message-channel-CfYBy4y3.js";
20
- import "./links-cf9h8BXu.js";
21
- import "./plugin-auto-enable-EBxTHjFJ.js";
22
- import "./plugins-BI-p2ba9.js";
20
+ import "./links-kbubTyay.js";
21
+ import "./plugin-auto-enable-CBfM3u2p.js";
22
+ import "./plugins-CB4Xjrgb.js";
23
23
  import "./logging-5MtSkLpb.js";
24
- import "./accounts-CIGHxE7R.js";
25
- import { At as installUnhandledRejectionHandler } from "./loader-CU4bkeKe.js";
24
+ import "./accounts-BIh6Lgjl.js";
25
+ import { At as installUnhandledRejectionHandler } from "./loader-DE_vKAH5.js";
26
26
  import "./progress-D-Oc-KAH.js";
27
27
  import "./prompt-style-BntC_Eoo.js";
28
28
  import "./note-C5M2AQOP.js";
29
29
  import "./clack-prompter-k_egRADS.js";
30
- import "./onboard-channels-DJz2TusQ.js";
30
+ import "./onboard-channels-B5qHfMk8.js";
31
31
  import "./archive-iT9wNsml.js";
32
32
  import "./skill-scanner-AfOudYI1.js";
33
- import "./installs-Byb3s_8P.js";
34
- import "./manager-C5m5qpB0.js";
33
+ import "./installs-BhPUpyE9.js";
34
+ import "./manager-bvW7170C.js";
35
35
  import "./paths-KUslkJRs.js";
36
36
  import "./sqlite-CvQzxS7q.js";
37
- import "./routes-Q42qtNl1.js";
38
- import "./pi-embedded-helpers-FPVRDeKf.js";
39
- import "./deliver-OfX6bSYR.js";
40
- import "./sandbox-BGqDfFaH.js";
41
- import "./channel-summary-DS0kcHm2.js";
42
- import "./wsl-C24YfxH9.js";
43
- import "./skills-7V483a6m.js";
44
- import "./image-BFNcQzKp.js";
37
+ import "./routes-DzL6l-Oq.js";
38
+ import "./pi-embedded-helpers-DRK9Qub7.js";
39
+ import "./deliver-D8Yt4jkc.js";
40
+ import "./sandbox-Cfvpk8Q8.js";
41
+ import "./channel-summary-BQMoWZQ1.js";
42
+ import "./wsl-DntkIGSe.js";
43
+ import "./skills-DaDm2aTV.js";
44
+ import "./image-CQgVMkgf.js";
45
45
  import "./redact-1PNP01B_.js";
46
- import "./tool-display-B2rS2o6B.js";
47
- import "./channel-selection-BdigfMZZ.js";
46
+ import "./tool-display-B9G_vqLX.js";
47
+ import "./channel-selection-BWiz5Osx.js";
48
48
  import "./session-cost-usage-DH3c4xJA.js";
49
- import "./commands-Dpeoos11.js";
50
- import "./pairing-store-BOhO49Bi.js";
51
- import "./login-qr-BMbekoZW.js";
52
- import "./channels-status-issues-Dxmd7zYk.js";
53
- import { n as ensurePluginRegistryLoaded } from "./command-options-DL1PhuUF.js";
54
- import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-CJGimm3-.js";
55
- import "./completion-cli-B5nR7jt8.js";
56
- import "./gateway-rpc-BPfCU2Vi.js";
57
- import "./deps-BSdWD2wF.js";
58
- import { h as assertSupportedRuntime } from "./daemon-runtime-CHWbAfKs.js";
49
+ import "./commands-B0LiAJsa.js";
50
+ import "./pairing-store-cC0TwSYc.js";
51
+ import "./login-qr-C_Vv7Cqc.js";
52
+ import "./channels-status-issues-DouPXVa3.js";
53
+ import { n as ensurePluginRegistryLoaded } from "./command-options-DBpEhnW5.js";
54
+ import { a as getCommandPath, c as getPrimaryCommand, d as hasHelpOrVersion } from "./register.subclis-Bf9yES9h.js";
55
+ import "./completion-cli-Cs-B1hk7.js";
56
+ import "./gateway-rpc-0hjEbkzc.js";
57
+ import "./deps-ZGqhOjkR.js";
58
+ import { h as assertSupportedRuntime } from "./daemon-runtime-BMAJ_2LE.js";
59
59
  import "./service-C0ccl5rU.js";
60
60
  import "./systemd-kY3NnWdi.js";
61
- import "./service-audit-BM-iyLL7.js";
62
- import "./table-DDQGlZSe.js";
63
- import "./widearea-dns-BJZTAyT3.js";
64
- import "./audit-Bj_dxNaD.js";
65
- import "./onboard-skills-ByHkU9nx.js";
66
- import "./health-format-BcsR5dtU.js";
67
- import "./update-runner-BfncKnU6.js";
68
- import "./github-copilot-auth-CcPEEb3Q.js";
69
- import "./logging-BJRQDTME.js";
70
- import "./hooks-status-BETsyuUR.js";
71
- import "./status-DHPz4Mg_.js";
72
- import "./skills-status-cD4rfMR9.js";
73
- import "./tui-DFVs6pRO.js";
74
- import "./agent-IDE9krld.js";
61
+ import "./service-audit-CCg0o0UZ.js";
62
+ import "./table--L48nql9.js";
63
+ import "./widearea-dns-CVZf20c2.js";
64
+ import "./audit-DQsCrYXQ.js";
65
+ import "./onboard-skills-CyG0xbsu.js";
66
+ import "./health-format-DlvTEKqI.js";
67
+ import "./update-runner-eJ773fp-.js";
68
+ import "./github-copilot-auth-D6I2MUxi.js";
69
+ import "./logging-B65tlzu3.js";
70
+ import "./hooks-status-B4cP-W7z.js";
71
+ import "./status-CN2V3fan.js";
72
+ import "./skills-status-dTiH79uI.js";
73
+ import "./tui-BGSteZzU.js";
74
+ import "./agent-sjalTGVA.js";
75
75
  import "./node-service-JEBcPQat.js";
76
- import "./auth-health-BlspzqyF.js";
77
- import { a as findRoutedCommand, n as emitCliBanner, t as ensureConfigReady } from "./config-guard-DwIb5Y-v.js";
76
+ import "./auth-health-Dc-ImENT.js";
77
+ import { a as findRoutedCommand, n as emitCliBanner, t as ensureConfigReady } from "./config-guard-Csl9Ubn5.js";
78
78
  import "./help-format-CUnac_bT.js";
79
- import "./configure-CivCcvkA.js";
79
+ import "./configure-CeTzu0Ed.js";
80
80
  import "./systemd-linger-CFK5jDdq.js";
81
- import "./doctor-Da1XgFcW.js";
81
+ import "./doctor-D6M3Hc0a.js";
82
82
  import path from "node:path";
83
83
  import process$1 from "node:process";
84
84
  import fs from "node:fs";
@@ -140,7 +140,7 @@ async function runCli(argv = process$1.argv) {
140
140
  assertSupportedRuntime();
141
141
  if (await tryRouteCli(normalizedArgv)) return;
142
142
  enableConsoleCapture();
143
- const { buildProgram } = await import("./program-EAMJAB_2.js");
143
+ const { buildProgram } = await import("./program-CL1V1uQh.js");
144
144
  const program = buildProgram();
145
145
  installUnhandledRejectionHandler();
146
146
  process$1.on("uncaughtException", (error) => {
@@ -150,12 +150,12 @@ async function runCli(argv = process$1.argv) {
150
150
  const parseArgv = rewriteUpdateFlagArgv(normalizedArgv);
151
151
  const primary = getPrimaryCommand(parseArgv);
152
152
  if (primary) {
153
- const { registerSubCliByName } = await import("./register.subclis-CJGimm3-.js").then((n) => n.i);
153
+ const { registerSubCliByName } = await import("./register.subclis-Bf9yES9h.js").then((n) => n.i);
154
154
  await registerSubCliByName(program, primary);
155
155
  }
156
156
  if (!(!primary && hasHelpOrVersion(parseArgv))) {
157
- const { registerPluginCliCommands } = await import("./cli-C9xiWnx9.js");
158
- const { loadConfig } = await import("./config-DSpb2aMV.js").then((n) => n.t);
157
+ const { registerPluginCliCommands } = await import("./cli-Bzyu6rQE.js");
158
+ const { loadConfig } = await import("./config-DBZqAqbe.js").then((n) => n.t);
159
159
  registerPluginCliCommands(program, loadConfig());
160
160
  }
161
161
  await program.parseAsync(parseArgv);
@@ -2,18 +2,18 @@ import { r as STATE_DIR } from "./paths-D2ytuv-2.js";
2
2
  import { B as getChatChannelMeta, F as CHANNEL_IDS, I as CHAT_CHANNEL_ORDER, K as requireActivePluginRegistry, p as defaultRuntime } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-B0bnyrEA.js";
4
4
  import { c as normalizeAgentId, i as buildAgentMainSessionKey, l as normalizeMainKey, n as DEFAULT_AGENT_ID, s as normalizeAccountId$1, t as DEFAULT_ACCOUNT_ID, u as resolveAgentIdFromSessionKey } from "./session-key-C-ig2pxJ.js";
5
- import { m as resolveUserPath, u as normalizeE164 } from "./utils-7IMqr8vR.js";
6
- import { b as DEFAULT_USER_FILENAME, d as DEFAULT_AGENTS_FILENAME, f as DEFAULT_AGENT_WORKSPACE_DIR, h as DEFAULT_IDENTITY_FILENAME, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, v as DEFAULT_SOUL_FILENAME, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope-DBl1We79.js";
7
- import { i as loadConfig } from "./config-DSpb2aMV.js";
8
- import { o as resolveProfile, t as createBrowserRouteContext } from "./server-context-B9ez46MY.js";
9
- import { O as DEFAULT_BROWSER_EVALUATE_ENABLED, j as DEFAULT_CRYPTOCLAW_BROWSER_PROFILE_NAME, k as DEFAULT_CRYPTOCLAW_BROWSER_COLOR } from "./errors--S5IAxQx.js";
5
+ import { c as normalizeE164, f as resolveUserPath } from "./utils-DV2rghi_.js";
6
+ import { b as DEFAULT_USER_FILENAME, d as DEFAULT_AGENTS_FILENAME, f as DEFAULT_AGENT_WORKSPACE_DIR, h as DEFAULT_IDENTITY_FILENAME, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, v as DEFAULT_SOUL_FILENAME, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope-BJucHu4R.js";
7
+ import { i as loadConfig } from "./config-DBZqAqbe.js";
8
+ import { o as resolveProfile, t as createBrowserRouteContext } from "./server-context-BG54Dk0A.js";
9
+ import { O as DEFAULT_BROWSER_EVALUATE_ENABLED, j as DEFAULT_CRYPTOCLAW_BROWSER_PROFILE_NAME, k as DEFAULT_CRYPTOCLAW_BROWSER_COLOR } from "./errors-DpH6VpWK.js";
10
10
  import { c as listDeliverableMessageChannels, l as normalizeMessageChannel } from "./message-channel-CfYBy4y3.js";
11
- import { _ as normalizeChatType, a as normalizeWhatsAppTarget, c as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, r as normalizeChannelId, y as resolveDiscordAccount } from "./plugins-BI-p2ba9.js";
12
- import { n as resolveWhatsAppAccount } from "./accounts-CIGHxE7R.js";
11
+ import { _ as normalizeChatType, a as normalizeWhatsAppTarget, c as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, r as normalizeChannelId, y as resolveDiscordAccount } from "./plugins-CB4Xjrgb.js";
12
+ import { n as resolveWhatsAppAccount } from "./accounts-BIh6Lgjl.js";
13
13
  import { r as resolveSessionTranscriptPath, t as resolveDefaultSessionStorePath } from "./paths-KUslkJRs.js";
14
14
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-BOK6eOU8.js";
15
- import { t as registerBrowserRoutes } from "./routes-Q42qtNl1.js";
16
- import { o as syncSkillsToWorkspace } from "./skills-7V483a6m.js";
15
+ import { t as registerBrowserRoutes } from "./routes-DzL6l-Oq.js";
16
+ import { o as syncSkillsToWorkspace } from "./skills-DaDm2aTV.js";
17
17
  import { spawn } from "node:child_process";
18
18
  import path from "node:path";
19
19
  import os from "node:os";
@@ -1,17 +1,17 @@
1
1
  import { r as STATE_DIR } from "./paths-CGrNQEMk.js";
2
2
  import { c as normalizeAgentId, i as buildAgentMainSessionKey, l as normalizeMainKey, n as DEFAULT_AGENT_ID, s as normalizeAccountId$1, t as DEFAULT_ACCOUNT_ID, u as resolveAgentIdFromSessionKey } from "./session-key-CYpWeuht.js";
3
3
  import { c as defaultRuntime, m as CHAT_CHANNEL_ORDER, p as CHANNEL_IDS, v as getChatChannelMeta, w as requireActivePluginRegistry } from "./subsystem-Btuh5yZj.js";
4
- import { d as normalizeE164, h as resolveUserPath } from "./utils-D7jskKIf.js";
5
- import { b as DEFAULT_USER_FILENAME, d as DEFAULT_AGENTS_FILENAME, f as DEFAULT_AGENT_WORKSPACE_DIR, h as DEFAULT_IDENTITY_FILENAME, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, v as DEFAULT_SOUL_FILENAME, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope-DLfFOxP6.js";
4
+ import { l as normalizeE164, p as resolveUserPath } from "./utils-CGterW74.js";
5
+ import { b as DEFAULT_USER_FILENAME, d as DEFAULT_AGENTS_FILENAME, f as DEFAULT_AGENT_WORKSPACE_DIR, h as DEFAULT_IDENTITY_FILENAME, l as resolveSessionAgentId, m as DEFAULT_HEARTBEAT_FILENAME, n as resolveAgentConfig, p as DEFAULT_BOOTSTRAP_FILENAME, v as DEFAULT_SOUL_FILENAME, x as ensureAgentWorkspace, y as DEFAULT_TOOLS_FILENAME } from "./agent-scope-GUoze5gc.js";
6
6
  import { t as formatCliCommand } from "./command-format-9IsYy-9N.js";
7
- import { i as loadConfig } from "./config-dQK4rbfx.js";
8
- import { a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, r as normalizeChannelId, v as resolveDiscordAccount } from "./plugins-Dk4UBZwz.js";
9
- import { M as DEFAULT_CRYPTOCLAW_BROWSER_COLOR, P as DEFAULT_CRYPTOCLAW_BROWSER_PROFILE_NAME, j as DEFAULT_BROWSER_EVALUATE_ENABLED } from "./chrome-CwbWzmh4.js";
10
- import { o as syncSkillsToWorkspace } from "./skills-CsZRBUj0.js";
11
- import { t as registerBrowserRoutes } from "./routes-DkckwrRx.js";
12
- import { a as resolveProfile, t as createBrowserRouteContext } from "./server-context-C53lhEx_.js";
7
+ import { i as loadConfig } from "./config-D1wc31Qf.js";
8
+ import { a as normalizeWhatsAppTarget, b as normalizeChatType, c as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, r as normalizeChannelId, v as resolveDiscordAccount } from "./plugins-CQ1FUoTO.js";
9
+ import { M as DEFAULT_CRYPTOCLAW_BROWSER_COLOR, P as DEFAULT_CRYPTOCLAW_BROWSER_PROFILE_NAME, j as DEFAULT_BROWSER_EVALUATE_ENABLED } from "./chrome-D0L5ufqO.js";
10
+ import { o as syncSkillsToWorkspace } from "./skills-DryIpWLj.js";
11
+ import { t as registerBrowserRoutes } from "./routes-C49H9SW5.js";
12
+ import { a as resolveProfile, t as createBrowserRouteContext } from "./server-context-9SLnBBRW.js";
13
13
  import { c as listDeliverableMessageChannels, l as normalizeMessageChannel } from "./message-channel-CvHWS3C2.js";
14
- import { n as resolveWhatsAppAccount } from "./accounts-BPjR5SyC.js";
14
+ import { n as resolveWhatsAppAccount } from "./accounts-DA-4bmd_.js";
15
15
  import { r as resolveSessionTranscriptPath, t as resolveDefaultSessionStorePath } from "./paths-C3yk0MGu.js";
16
16
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-D2kT5WSz.js";
17
17
  import os from "node:os";
@@ -1,30 +1,30 @@
1
1
  import "./paths-D2ytuv-2.js";
2
2
  import { D as colorize, H as normalizeAnyChannelId, O as isRich, k as theme, p as defaultRuntime } from "./entry.js";
3
- import "./auth-profiles-DoD7YxsD.js";
3
+ import "./auth-profiles-CVShF1K6.js";
4
4
  import { t as formatCliCommand } from "./command-format-B0bnyrEA.js";
5
5
  import { _ as parseAgentSessionKey, c as normalizeAgentId, i as buildAgentMainSessionKey, l as normalizeMainKey, u as resolveAgentIdFromSessionKey } from "./session-key-C-ig2pxJ.js";
6
- import "./utils-7IMqr8vR.js";
6
+ import "./utils-DV2rghi_.js";
7
7
  import "./exec-CLQSz0CI.js";
8
- import { n as resolveAgentConfig } from "./agent-scope-DBl1We79.js";
8
+ import { n as resolveAgentConfig } from "./agent-scope-BJucHu4R.js";
9
9
  import "./github-copilot-token-C1sArkX4.js";
10
- import { i as loadConfig } from "./config-DSpb2aMV.js";
11
- import "./manifest-registry-BdTzIlta.js";
12
- import "./server-context-B9ez46MY.js";
13
- import "./errors--S5IAxQx.js";
10
+ import { i as loadConfig } from "./config-DBZqAqbe.js";
11
+ import "./manifest-registry-CBbBh2FT.js";
12
+ import "./server-context-BG54Dk0A.js";
13
+ import "./errors-DpH6VpWK.js";
14
14
  import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-CfYBy4y3.js";
15
- import { t as formatDocsLink } from "./links-cf9h8BXu.js";
16
- import "./plugins-BI-p2ba9.js";
15
+ import { t as formatDocsLink } from "./links-kbubTyay.js";
16
+ import "./plugins-CB4Xjrgb.js";
17
17
  import "./logging-5MtSkLpb.js";
18
- import "./accounts-CIGHxE7R.js";
18
+ import "./accounts-BIh6Lgjl.js";
19
19
  import { o as resolveStorePath } from "./paths-KUslkJRs.js";
20
- import "./routes-Q42qtNl1.js";
21
- import { G as resolveSandboxToolPolicyForAgent, I as resolveMainSessionKey, P as resolveAgentMainSessionKey, U as resolveSandboxConfigForAgent, d as loadSessionStore, i as removeSandboxContainer, n as listSandboxContainers, r as removeSandboxBrowserContainer, t as listSandboxBrowsers } from "./sandbox-BGqDfFaH.js";
22
- import "./skills-7V483a6m.js";
20
+ import "./routes-DzL6l-Oq.js";
21
+ import { G as resolveSandboxToolPolicyForAgent, I as resolveMainSessionKey, P as resolveAgentMainSessionKey, U as resolveSandboxConfigForAgent, d as loadSessionStore, i as removeSandboxContainer, n as listSandboxContainers, r as removeSandboxBrowserContainer, t as listSandboxBrowsers } from "./sandbox-Cfvpk8Q8.js";
22
+ import "./skills-DaDm2aTV.js";
23
23
  import { t as formatHelpExamples } from "./help-format-CUnac_bT.js";
24
24
  import { confirm } from "@clack/prompts";
25
25
 
26
26
  //#region src/commands/sandbox-explain.ts
27
- const SANDBOX_DOCS_URL = "https://docs.cryptoclaw.ai/sandbox";
27
+ const SANDBOX_DOCS_URL = "https://docs.openclaw.ai/sandbox";
28
28
  function normalizeExplainSessionKey(params) {
29
29
  const raw = (params.session ?? "").trim();
30
30
  if (!raw) return resolveAgentMainSessionKey({
@@ -194,7 +194,7 @@ async function sandboxExplainCommand(opts, runtime) {
194
194
  lines.push(heading("Fix-it:"));
195
195
  for (const key of payload.fixIt) lines.push(` - ${key}`);
196
196
  lines.push("");
197
- lines.push(`${key("Docs:")} ${formatDocsLink("/sandbox", "docs.cryptoclaw.ai/sandbox")}`);
197
+ lines.push(`${key("Docs:")} ${formatDocsLink("/sandbox", "docs.openclaw.ai/sandbox")}`);
198
198
  runtime.log(`${lines.join("\n")}\n`);
199
199
  }
200
200
 
@@ -436,7 +436,7 @@ function createRunner(commandFn) {
436
436
  };
437
437
  }
438
438
  function registerSandboxCli(program) {
439
- const sandbox = program.command("sandbox").description("Manage sandbox containers (Docker-based agent isolation)").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples(SANDBOX_EXAMPLES.main)}\n`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/sandbox", "docs.cryptoclaw.ai/cli/sandbox")}\n`).action(() => {
439
+ const sandbox = program.command("sandbox").description("Manage sandbox containers (Docker-based agent isolation)").addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples(SANDBOX_EXAMPLES.main)}\n`).addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/sandbox", "docs.openclaw.ai/cli/sandbox")}\n`).action(() => {
440
440
  sandbox.help({ error: true });
441
441
  });
442
442
  sandbox.command("list").description("List sandbox containers and their status").option("--json", "Output result as JSON", false).option("--browser", "List browser containers only", false).addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples(SANDBOX_EXAMPLES.list)}\n\n${theme.heading("Output includes:")}\n${theme.muted("- Container name and status (running/stopped)")}\n${theme.muted("- Docker image and whether it matches current config")}\n${theme.muted("- Age (time since creation)")}\n${theme.muted("- Idle time (time since last use)")}\n${theme.muted("- Associated session/agent ID")}`).action(createRunner((opts) => sandboxListCommand({