@qqbrowser/openclaw-qbot 0.10.4 → 0.10.5

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 (201) hide show
  1. package/dist/{agents-uUms0egI.js → agents-6IxtknW5.js} +1 -1
  2. package/dist/{agents.config-BkB-gDby.js → agents.config-BP_dS899.js} +1 -1
  3. package/dist/{agents.config-Brf_8LyQ.js → agents.config-CQVkG48F.js} +1 -1
  4. package/dist/{auth-choice-CCPa_U3z.js → auth-choice-Baa2-mnd.js} +1 -1
  5. package/dist/{auth-choice-hlkl-WTV.js → auth-choice-Cw_bwgkr.js} +1 -1
  6. package/dist/{banner-DEPUY9RS.js → banner-CLI1ZxLT.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +1 -1
  9. package/dist/bundled/session-memory/handler.js +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-DqUyBMZF.js → channel-options-BmkYp9PQ.js} +1 -1
  12. package/dist/{channel-options-BbvCeuF4.js → channel-options-LL0twjcr.js} +1 -1
  13. package/dist/{channel-web-B7Dzfxgr.js → channel-web-DBxLlMxt.js} +1 -1
  14. package/dist/{channel-web-DztiTFmw.js → channel-web-DCbW654e.js} +1 -1
  15. package/dist/{channels-cli-B167LkN_.js → channels-cli-BDMHUXO6.js} +1 -1
  16. package/dist/{channels-cli-DqI5sufA.js → channels-cli-BomYL9U-.js} +1 -1
  17. package/dist/{cli-5w9Cs17g.js → cli-6GYOgeyE.js} +1 -1
  18. package/dist/{cli-odx2Ou54.js → cli-DcG2OfeS.js} +1 -1
  19. package/dist/{command-registry-kuOSuxH9.js → command-registry-B-1wiWIV.js} +1 -1
  20. package/dist/{compact-DutiJiBy.js → compact-B5m4267P.js} +6 -6
  21. package/dist/{compact.runtime-Cg-ayyOY.js → compact.runtime-BIprdRVY.js} +1 -1
  22. package/dist/{compact.runtime-CPJx43fM.js → compact.runtime-Bjmb9uWf.js} +1 -1
  23. package/dist/{compact.runtime-Cr0LrigW.js → compact.runtime-CC5tXNMI.js} +1 -1
  24. package/dist/{compact.runtime-8jjZMOn5.js → compact.runtime-CbiLGd2R.js} +1 -1
  25. package/dist/{completion-cli-Dk4i8AEs.js → completion-cli-BxTvZFra.js} +1 -1
  26. package/dist/{completion-cli-Btm1nzLM.js → completion-cli-CXSmC7Nh.js} +1 -1
  27. package/dist/{config-cli-C_Ep8Cqd.js → config-cli-CutpYl0W.js} +1 -1
  28. package/dist/{config-cli-GxgWLhZj.js → config-cli-_D9OjHjN.js} +1 -1
  29. package/dist/{configure-BGXAqK0_.js → configure-B7A-Gjbn.js} +1 -1
  30. package/dist/{configure-Bf9CYm_s.js → configure-GlFIJmRr.js} +1 -1
  31. package/dist/{deps-send-whatsapp.runtime-zwmhmYbD.js → deps-send-whatsapp.runtime-0CVkFH3c.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-BvP4xsTU.js → deps-send-whatsapp.runtime-CF7vGOV-.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-B0YhL8Lo.js → deps-send-whatsapp.runtime-CZWj9whB.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-DM3gFV5P.js → deps-send-whatsapp.runtime-CpRUDATB.js} +1 -1
  35. package/dist/{doctor-completion-Bp4r91Mj.js → doctor-completion-C5fxcbh9.js} +1 -1
  36. package/dist/{doctor-completion-DSlo6bQA.js → doctor-completion-CjAt0IBL.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-xHMUWDWx.js → gateway-cli-B4--4Rdp.js} +2 -2
  40. package/dist/{gateway-cli-C_zcjGt1.js → gateway-cli-LXL-gdmD.js} +2 -2
  41. package/dist/{health-vy-C49Dw.js → health-CIBrUBhW.js} +1 -1
  42. package/dist/{health-DWAEDZ8p.js → health-dTYbHKsD.js} +1 -1
  43. package/dist/{hooks-cli-DkjR_IzY.js → hooks-cli-B8zLSVkT.js} +1 -1
  44. package/dist/{hooks-cli-B0xRT8IB.js → hooks-cli-CQiuXLiA.js} +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-CYk2Mf4W.js → models-DfPjqkxA.js} +1 -1
  48. package/dist/{models-cli-DPcl8k5z.js → models-cli-Crhj5KsH.js} +1 -1
  49. package/dist/{models-cli-BS5KD1m7.js → models-cli-DIeJKv20.js} +1 -1
  50. package/dist/{npm-resolution-BRKzOuRX.js → npm-resolution-BsQW2Kgr.js} +1 -1
  51. package/dist/{npm-resolution-B4ClzLA9.js → npm-resolution-wJ9PVAU8.js} +1 -1
  52. package/dist/{onboard-DtvFX5YS.js → onboard-CkDnD6Va.js} +2 -2
  53. package/dist/{onboard-DKohpAhM.js → onboard-DbFfuUgN.js} +2 -2
  54. package/dist/{onboard-channels-CO9FE0CA.js → onboard-channels-BW1eMy7S.js} +1 -1
  55. package/dist/{onboard-channels-B1Cta60W.js → onboard-channels-C0PAtk4T.js} +1 -1
  56. package/dist/{onboarding-CSBYu9X2.js → onboarding-DVLGoQj1.js} +1 -1
  57. package/dist/{onboarding-DTE81H7h.js → onboarding-enOGIWg6.js} +1 -1
  58. package/dist/{onboarding.finalize-Bk61Ef85.js → onboarding.finalize-BDLzh4dK.js} +1 -1
  59. package/dist/{onboarding.finalize-BzZq5LCu.js → onboarding.finalize-aguVHE5H.js} +1 -1
  60. package/dist/{pi-embedded-fKs8vr_l.js → pi-embedded-Bv3QACci.js} +6 -6
  61. package/dist/{pi-embedded-CSE8iTcT.js → pi-embedded-DJGgW90C.js} +6 -6
  62. package/dist/{plugin-registry--rKSomNR.js → plugin-registry-Cb3qsabM.js} +1 -1
  63. package/dist/{plugin-registry-BLopxJhs.js → plugin-registry-DgGaQJpH.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-kLUJoIaN.js → channel-web-B69hreZ-.js} +1 -1
  65. package/dist/plugin-sdk/{channel-web-BZwnvMDD.cjs → channel-web-CGYvIoB3.cjs} +1 -1
  66. package/dist/plugin-sdk/{channel-web-BUiDMnQM.js → channel-web-Cg7FoMmy.js} +1 -1
  67. package/dist/plugin-sdk/{channel-web-Dn8Qa28U.cjs → channel-web-yRiw9cOW.cjs} +1 -1
  68. package/dist/plugin-sdk/{compact.runtime-BtnHPGWW.cjs → compact.runtime-6EUZS-nm.cjs} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-PwQ5BH89.cjs → compact.runtime-BCReDZO0.cjs} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-CcAl_7JS.cjs → compact.runtime-BV8EhsZ-.cjs} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-BDSrWIc3.js → compact.runtime-BrTHTIXo.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-WzRsTof6.js → compact.runtime-C-nSnIie.js} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-D6zMtomh.js → compact.runtime-C1HIq_JF.js} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-DrbWVG3U.cjs → compact.runtime-CuU_iabG.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-CB04vm0D.js → compact.runtime-D64Cnn1T.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-BDZgCqEH.cjs → compact.runtime-DEsDlL2e.cjs} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-D4jmyLK_.js → compact.runtime-DyyEYJhk.js} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-DiGElRVu.cjs → compact.runtime-hD-8StlH.cjs} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-DpKoN-EI.js → compact.runtime-nrAibbrs.js} +1 -1
  80. package/dist/plugin-sdk/compat.cjs +1 -1
  81. package/dist/plugin-sdk/compat.js +1 -1
  82. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D9D9oUEf.js → deps-send-whatsapp.runtime-BHSEddX6.js} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DAq8oj_z.cjs → deps-send-whatsapp.runtime-BIcx-YKg.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Du9woGpt.js → deps-send-whatsapp.runtime-BJqrGRfn.js} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Bu592CgI.cjs → deps-send-whatsapp.runtime-BYitkwEt.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CslTgnDb.cjs → deps-send-whatsapp.runtime-BZZlnkSu.cjs} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Ck_Odtet.cjs → deps-send-whatsapp.runtime-C8CHSY5s.cjs} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-C8VavsCw.cjs → deps-send-whatsapp.runtime-Cc_K5nip.cjs} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BIa0po8R.js → deps-send-whatsapp.runtime-CcxJ3x8i.js} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D8utCFrm.js → deps-send-whatsapp.runtime-CtGDGABW.js} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BjCkJL25.js → deps-send-whatsapp.runtime-DKBA8CwU.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D7XufA9p.js → deps-send-whatsapp.runtime-ty7jacKq.js} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Bc3Bslu5.cjs → deps-send-whatsapp.runtime-uvxKpBrR.cjs} +1 -1
  94. package/dist/plugin-sdk/{dispatch-B0bRcI0M.js → dispatch-3RmgaKV0.js} +6 -6
  95. package/dist/plugin-sdk/{dispatch-CXFmGh30.cjs → dispatch-BHwyFTwz.cjs} +6 -6
  96. package/dist/plugin-sdk/{dispatch-CuIxFSWG.js → dispatch-BYn5wxRI.js} +6 -6
  97. package/dist/plugin-sdk/{dispatch-DZFfZ37w.cjs → dispatch-C-qRxvLo.cjs} +6 -6
  98. package/dist/plugin-sdk/{dispatch-CXTBtHYf.cjs → dispatch-CDF-QMLO.cjs} +6 -6
  99. package/dist/plugin-sdk/{dispatch-BzOxEE_U.cjs → dispatch-DBHCub77.cjs} +6 -6
  100. package/dist/plugin-sdk/{dispatch-DgMf2rhn.cjs → dispatch-DCFiq6TV.cjs} +6 -6
  101. package/dist/plugin-sdk/{dispatch-BHQwp2mY.js → dispatch-Dbp8KQt5.js} +6 -6
  102. package/dist/plugin-sdk/{dispatch-CsZWuLFg.js → dispatch-DpHTL-Ha.js} +6 -6
  103. package/dist/plugin-sdk/{dispatch-DXQq-1ND.js → dispatch-t6yxQhjZ.js} +6 -6
  104. package/dist/plugin-sdk/index.cjs +1 -1
  105. package/dist/plugin-sdk/index.js +1 -1
  106. package/dist/plugin-sdk/irc.cjs +1 -1
  107. package/dist/plugin-sdk/irc.js +1 -1
  108. package/dist/plugin-sdk/matrix.cjs +1 -1
  109. package/dist/plugin-sdk/matrix.js +1 -1
  110. package/dist/plugin-sdk/msteams.cjs +1 -1
  111. package/dist/plugin-sdk/msteams.js +1 -1
  112. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
  113. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  114. package/dist/plugin-sdk/{reply-9oEGfJO1.cjs → reply-DYTWptyW.cjs} +6 -6
  115. package/dist/plugin-sdk/{reply-D_sNAum5.js → reply-nXQ3Ihgd.js} +6 -6
  116. package/dist/plugin-sdk/{slash-dispatch.runtime-D6j_HvFC.cjs → slash-dispatch.runtime-BSDBCdoz.cjs} +1 -1
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-C0RwCFKq.js → slash-dispatch.runtime-Boj2xPW5.js} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-B60yTzIf.js → slash-dispatch.runtime-C57opycX.js} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-BERy39cs.js → slash-dispatch.runtime-C9rDQo8o.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-UYaTQwVq.js → slash-dispatch.runtime-CApLdZER.js} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-ASdOu8Cm.js → slash-dispatch.runtime-CG-zjxON.js} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-BuF14A03.js → slash-dispatch.runtime-CTecvuIx.js} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-_BOQ7gkd.cjs → slash-dispatch.runtime-Coe_tdLy.cjs} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-Dg9uQHNW.cjs → slash-dispatch.runtime-CrfGJt-z.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-30IYd84w.cjs → slash-dispatch.runtime-EgX-cRVC.cjs} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-Dq7mPZxr.cjs → slash-dispatch.runtime-KA6_FxIE.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-34q3H9BU.cjs → slash-dispatch.runtime-XTKieQBQ.cjs} +1 -1
  128. package/dist/plugin-sdk/{subagent-registry-runtime-D0_kdCJ8.js → subagent-registry-runtime-B1Lpdh_L.js} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-BpO-8o-v.cjs → subagent-registry-runtime-BTcxp_jJ.cjs} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-DUaC-nXH.js → subagent-registry-runtime-C1W2bBCX.js} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-B4ht4jgI.js → subagent-registry-runtime-CjDQncGB.js} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-C4MYbumf.cjs → subagent-registry-runtime-CsoVFakn.cjs} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-w7CcoTLv.cjs → subagent-registry-runtime-DRUPit2H.cjs} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-_MlLeMWw.js → subagent-registry-runtime-DTlB8Q96.js} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-DfWSD7tl.js → subagent-registry-runtime-DiwikRRl.js} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-CyYJQuSQ.cjs → subagent-registry-runtime-Dj2i9GGj.cjs} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-D_dgSTbs.cjs → subagent-registry-runtime-Djshp0MC.cjs} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-UoI3lad4.js → subagent-registry-runtime-DrbVJw2f.js} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-CKNJbYW5.cjs → subagent-registry-runtime-IVYj5ywH.cjs} +1 -1
  140. package/dist/plugin-sdk/{web-BtgZE8cK.js → web-2PAf1exP.js} +1 -1
  141. package/dist/plugin-sdk/{web-B5xIoXe1.js → web-B6Ox6Cdv.js} +1 -1
  142. package/dist/plugin-sdk/{web-BEIPWO4K.cjs → web-B7WqqsC8.cjs} +1 -1
  143. package/dist/plugin-sdk/{web-GIWXJ0Ba.js → web-BkCy5IQ7.js} +1 -1
  144. package/dist/plugin-sdk/{web-BK1ARWvO.cjs → web-CJcd3JMn.cjs} +1 -1
  145. package/dist/plugin-sdk/{web-D2JuDaoV.js → web-CjilhIQD.js} +1 -1
  146. package/dist/plugin-sdk/{web-C2CF_qbv.cjs → web-CjsJxq4D.cjs} +1 -1
  147. package/dist/plugin-sdk/{web-BZPAL5HS.cjs → web-DCAcFf5b.cjs} +1 -1
  148. package/dist/plugin-sdk/{web-BiZX-XYi.cjs → web-DtH3t5Jt.cjs} +1 -1
  149. package/dist/plugin-sdk/{web-BhnzZsyl.js → web-g-WONVYn.js} +1 -1
  150. package/dist/plugin-sdk/{web-C3K1qs0u.cjs → web-iRzx1ssK.cjs} +1 -1
  151. package/dist/plugin-sdk/{web-CYwIRzDt.js → web-ikfo8GXI.js} +1 -1
  152. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  153. package/dist/plugin-sdk/whatsapp.js +1 -1
  154. package/dist/{plugins-cli-fvYI7MuY.js → plugins-cli-5B5urjU7.js} +1 -1
  155. package/dist/{plugins-cli-D7y5Vl8l.js → plugins-cli-DaxkOvPH.js} +1 -1
  156. package/dist/{program-o1R0ZIeK.js → program-DJxQx1DE.js} +2 -2
  157. package/dist/{program-context-DMLIbH2F.js → program-context-DewOK4jD.js} +1 -1
  158. package/dist/{prompt-select-styled-BghrrnfB.js → prompt-select-styled-U5YlFMbC.js} +1 -1
  159. package/dist/{prompt-select-styled-MKdHaN69.js → prompt-select-styled-VagKVjlJ.js} +1 -1
  160. package/dist/{provider-auth-helpers-B24NjgT2.js → provider-auth-helpers-BEBH5krH.js} +1 -1
  161. package/dist/{provider-auth-helpers-1c048H9l.js → provider-auth-helpers-DKQwlJ25.js} +1 -1
  162. package/dist/{push-apns-BU-NR-pG.js → push-apns-CIV5yU-C.js} +1 -1
  163. package/dist/{push-apns-CrGncT7C.js → push-apns-DOhrdJ5p.js} +1 -1
  164. package/dist/{register.agent-iVmRDz9B.js → register.agent-Q_qYfTfI.js} +1 -1
  165. package/dist/{register.agent-CQHFkB8p.js → register.agent-Zd0TARQm.js} +1 -1
  166. package/dist/{register.configure-CThul7Zy.js → register.configure-A6heJkJh.js} +1 -1
  167. package/dist/{register.configure-q-iauQUk.js → register.configure-CWTGVxwN.js} +1 -1
  168. package/dist/{register.maintenance-C47agRIL.js → register.maintenance-BiqiVyJY.js} +1 -1
  169. package/dist/{register.maintenance-BRTx_TN-.js → register.maintenance-cKlEqSE7.js} +1 -1
  170. package/dist/{register.message-DsJRw5nY.js → register.message-BRfalotn.js} +1 -1
  171. package/dist/{register.message-Dxxzi9kt.js → register.message-CXPAYgVk.js} +1 -1
  172. package/dist/{register.onboard-DcNYm0dn.js → register.onboard-CiK3r6Ar.js} +1 -1
  173. package/dist/{register.onboard-BteLZ-mA.js → register.onboard-g_3bWGn7.js} +1 -1
  174. package/dist/{register.setup-C4lAwlQe.js → register.setup-BgOqtS83.js} +1 -1
  175. package/dist/{register.setup-CeW9lN5-.js → register.setup-BoiX_qRl.js} +1 -1
  176. package/dist/{register.status-health-sessions-C-JabFZz.js → register.status-health-sessions-BIo6bs1r.js} +1 -1
  177. package/dist/{register.status-health-sessions-CZOciUK3.js → register.status-health-sessions-BrcaSoAg.js} +1 -1
  178. package/dist/{register.subclis-DHFqEK6G.js → register.subclis-BmtNNMP2.js} +1 -1
  179. package/dist/{reply-DHtpIWpD.js → reply-HrabJs88.js} +6 -6
  180. package/dist/{run-main-BKA6bL5R.js → run-main-CwKNqqKj.js} +1 -1
  181. package/dist/{server-node-events-DECiuryL.js → server-node-events-D1Pr11u8.js} +1 -1
  182. package/dist/{server-node-events-DQohZYL_.js → server-node-events-DYeHOQG_.js} +1 -1
  183. package/dist/{slash-dispatch.runtime-BltGVp6a.js → slash-dispatch.runtime-5xQBRYan.js} +1 -1
  184. package/dist/{slash-dispatch.runtime-U7BSD9SC.js → slash-dispatch.runtime-BRImHx9I.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-BRh6zgqn.js → slash-dispatch.runtime-Cq5dUL-m.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-BQCIIXIb.js → slash-dispatch.runtime-D_A_iMTY.js} +1 -1
  187. package/dist/{status-CUDtNIry.js → status-DiHX2LOf.js} +1 -1
  188. package/dist/{status-OB55GG25.js → status-m4GFy-Px.js} +1 -1
  189. package/dist/{subagent-registry-runtime-B9Ism-1f.js → subagent-registry-runtime-BhMKhChi.js} +1 -1
  190. package/dist/{subagent-registry-runtime-D2hsQSwB.js → subagent-registry-runtime-C36kHoT7.js} +1 -1
  191. package/dist/{subagent-registry-runtime-CO4i2ZPd.js → subagent-registry-runtime-CrUvIBql.js} +1 -1
  192. package/dist/{subagent-registry-runtime-85RFObHD.js → subagent-registry-runtime-GuXOBC1H.js} +1 -1
  193. package/dist/{update-cli-CkgaoB8p.js → update-cli-CQGioR5x.js} +1 -1
  194. package/dist/{update-cli-BlZnad_S.js → update-cli-ILZhc8_8.js} +1 -1
  195. package/dist/{update-runner-DcWJQ3bh.js → update-runner-1UCWso86.js} +1 -1
  196. package/dist/{update-runner-DWHUl78B.js → update-runner-JT7_BON6.js} +1 -1
  197. package/dist/{web-HSA7Rhwn.js → web-C1e-LYaH.js} +1 -1
  198. package/dist/{web-MgNpzMvd.js → web-DWIIpcnE.js} +1 -1
  199. package/dist/{web-B6OLwGJa.js → web-DaJ1Z41U.js} +1 -1
  200. package/dist/{web-Bam5_EjB.js → web-rxfH6rmG.js} +1 -1
  201. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import{A as e,k as t,p as n,v as r,w as i}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{jo as a,lr as o,ur as s}from"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import{a as c,l}from"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import{t as u}from"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import{Ct as d,Et as f,Kt as p,O as m,dt as h,k as g,qt as _}from"./compact-DutiJiBy.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import{P as v}from"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import{n as y,s as b}from"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as x}from"./links-pHmQCzdF.js";import{n as S}from"./cli-utils-BleB1eys.js";import{t as C}from"./help-format-BSNXPQuE.js";import{n as w}from"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import{t as T}from"./plugin-registry-BLopxJhs.js";import{t as E}from"./helpers-COz1ghcB.js";import{n as D,t as O}from"./table-BiqW4yI5.js";import{t as k}from"./text-format-DEWK6oCT.js";const A=e=>{let t=u(e)?.meta.label;if(t)return t;let n=l(e);return n?c(n).label:e};function j(e,t){if(!t)return`✅ Sent via ${A(e)}. Message ID: unknown`;let n=`✅ Sent via ${A(t.channel)}. Message ID: ${t.messageId}`;return`chatId`in t?`${n} (chat ${t.chatId})`:`channelId`in t?`${n} (channel ${t.channelId})`:`roomId`in t?`${n} (room ${t.roomId})`:`conversationId`in t?`${n} (conversation ${t.conversationId})`:n}function M(e){return`✅ ${e.action??`Sent`} via gateway${e.channel?` (${e.channel})`:``}. Message ID: ${e.messageId??`unknown`}`}const N=e=>u(e)?.meta.label??e;function P(e){if(!e||typeof e!=`object`)return null;let t=e.messageId;if(typeof t==`string`&&t.trim())return t.trim();let n=e.result;if(n&&typeof n==`object`){let e=n.messageId;if(typeof e==`string`&&e.trim())return e.trim()}return null}function F(e){return{action:e.action,channel:e.channel,dryRun:e.dryRun,handledBy:e.handledBy,payload:e.payload}}function I(t,n){if(!t||typeof t!=`object`)return[String(t)];let r=t,i=Object.keys(r);if(i.length===0)return[e.muted(`(empty)`)];let a=i.slice(0,20).map(e=>{let t=r[e];return{Key:e,Value:k(t==null?`null`:Array.isArray(t)?`${t.length} items`:typeof t==`object`?`object`:typeof t==`string`?t:typeof t==`number`?String(t):typeof t==`boolean`?t?`true`:`false`:typeof t==`bigint`||typeof t==`symbol`?t.toString():typeof t==`function`?`function`:`unknown`,96)}});return[D({width:n.width,columns:[{key:`Key`,header:`Key`,minWidth:16},{key:`Value`,header:`Value`,flex:!0,minWidth:24}],rows:a}).trimEnd()]}function L(t,n,r){let i=t.slice(0,25).map(e=>{let t=e,n=typeof t.id==`string`&&t.id||typeof t.ts==`string`&&t.ts||typeof t.messageId==`string`&&t.messageId||``,r=t.author,i=typeof t.authorTag==`string`&&t.authorTag||typeof r?.username==`string`&&r.username||typeof t.user==`string`&&t.user||``,a=typeof t.timestamp==`string`&&t.timestamp||typeof t.ts==`string`&&t.ts||``,o=typeof t.content==`string`&&t.content||typeof t.text==`string`&&t.text||``;return{Time:k(a,28),Author:k(i,22),Text:k(o.replace(/\s+/g,` `).trim(),90),Id:k(n,22)}});return i.length===0?[e.muted(r)]:[D({width:n.width,columns:[{key:`Time`,header:`Time`,minWidth:14},{key:`Author`,header:`Author`,minWidth:10},{key:`Text`,header:`Text`,flex:!0,minWidth:24},{key:`Id`,header:`Id`,minWidth:10}],rows:i}).trimEnd()]}function R(e,t){if(!e||typeof e!=`object`)return null;let n=e.messages;return Array.isArray(n)?L(n,t,`No messages.`):null}function z(e,t){if(!e||typeof e!=`object`)return null;let n=e.pins;return Array.isArray(n)?L(n,t,`No pins.`):null}function B(e){if(!e||typeof e!=`object`)return null;let t=e.messages;if(!Array.isArray(t))return null;let n=[];for(let e of t)Array.isArray(e)&&e.length>0?n.push(e[0]):e&&typeof e==`object`&&n.push(e);return n.length?n:null}function V(t,n){if(!t||typeof t!=`object`)return null;let r=t.reactions;if(!Array.isArray(r))return null;let i=r.slice(0,50).map(e=>{let t=e,n=t.emoji;return{Emoji:typeof n?.raw==`string`&&n.raw||typeof t.name==`string`&&t.name||typeof t.emoji==`string`&&t.emoji||``,Count:typeof t.count==`number`?String(t.count):``,Users:k((Array.isArray(t.users)?t.users.slice(0,8).map(e=>{if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return``;let t=e;return typeof t.tag==`string`&&t.tag||typeof t.username==`string`&&t.username||typeof t.id==`string`&&t.id||``}).filter(Boolean):[]).join(`, `),72)}});return i.length===0?[e.muted(`No reactions.`)]:[D({width:n.width,columns:[{key:`Emoji`,header:`Emoji`,minWidth:8},{key:`Count`,header:`Count`,align:`right`,minWidth:6},{key:`Users`,header:`Users`,flex:!0,minWidth:20}],rows:i}).trimEnd()]}function ee(n){let r=t(),i=t=>r?e.success(t):t,a=t=>r?e.muted(t):t,o=t=>r?e.heading(t):t,s={width:O()};if(n.handledBy===`dry-run`)return[a(`[dry-run] would run ${n.action} via ${n.channel}`)];if(n.kind===`broadcast`){let e=n.payload.results??[],t=e.map(e=>({Channel:N(e.channel),Target:k(d({channel:e.channel,target:e.to}),36),Status:e.ok?`ok`:`error`,Error:e.ok?``:k(e.error??`unknown error`,48)})),r=e.filter(e=>e.ok).length,a=e.length;return[i(`✅ Broadcast complete (${r}/${a} succeeded, ${a-r} failed)`),D({width:s.width,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Target`,header:`Target`,minWidth:12,flex:!0},{key:`Status`,header:`Status`,minWidth:6},{key:`Error`,header:`Error`,minWidth:20,flex:!0}],rows:t.slice(0,50)}).trimEnd()]}if(n.kind===`send`){if(n.handledBy===`core`&&n.sendResult){let e=n.sendResult;if(e.via===`direct`){let t=e.result;return[i(j(e.channel,t))]}let t=e.result;return[i(M({channel:e.channel,messageId:t?.messageId??null}))]}let e=N(n.channel),t=P(n.payload);return[i(`✅ Sent via ${e}.${t?` Message ID: ${t}`:``}`)]}if(n.kind===`poll`){if(n.handledBy===`core`&&n.pollResult){let e=n.pollResult,t=e.result?.pollId,r=e.result?.messageId??null,a=[i(M({action:`Poll sent`,channel:e.channel,messageId:r}))];return t&&a.push(i(`Poll id: ${t}`)),a}let e=N(n.channel),t=P(n.payload);return[i(`✅ Poll sent via ${e}.${t?` Message ID: ${t}`:``}`)]}let c=n.payload,l=[];if(n.action===`react`){let e=c.added,t=c.removed;if(typeof e==`string`&&e.trim())return l.push(i(`✅ Reaction added: ${e.trim()}`)),l;if(typeof t==`string`&&t.trim())return l.push(i(`✅ Reaction removed: ${t.trim()}`)),l;if(Array.isArray(t)){let e=t.map(e=>String(e).trim()).filter(Boolean).join(`, `);return l.push(i(`✅ Reactions removed${e?`: ${e}`:``}`)),l}return l.push(i(`✅ Reaction updated.`)),l}let u=V(c,s);if(u&&n.action===`reactions`)return l.push(o(`Reactions`)),l.push(u[0]??``),l;if(n.action===`read`){let e=R(c,s);if(e)return l.push(o(`Messages`)),l.push(e[0]??``),l}if(n.action===`list-pins`){let e=z(c,s);if(e)return l.push(o(`Pinned messages`)),l.push(e[0]??``),l}if(n.action===`search`){let e=c.results,t=B(e);if(t)return l.push(o(`Search results`)),l.push(L(t,s,`No results.`)[0]??``),l}l.push(i(`✅ ${n.action} via ${N(n.channel)}.`));let f=I(c,s);return f.length&&(l.push(``),l.push(...f),l.push(``),l.push(a(`Tip: use --json for full output.`))),l}async function H(e,t,n){let{resolvedConfig:r,diagnostics:i}=await b({config:a(),commandName:`message`,targetIds:y()});for(let e of i)n.log(`[secrets] ${e}`);let c=(typeof e.action==`string`?e.action.trim():``)||`send`,l=f.find(e=>e.toLowerCase()===c.toLowerCase());if(!l)throw Error(`Unknown message action: ${c}`);let u=l,d=m(t),p=async()=>await h({cfg:r,action:u,params:e,deps:d,gateway:{clientName:s.CLI,mode:o.CLI}}),g=e.json===!0,_=e.dryRun===!0,v=!g&&!_&&(u===`send`||u===`poll`)?await w({label:u===`poll`?`Sending poll...`:`Sending...`,indeterminate:!0,enabled:!0},p):await p();if(g){n.log(JSON.stringify(F(v),null,2));return}for(let e of ee(v))n.log(e)}function U(e){let{account:t,...n}=e;return{...n,accountId:typeof t==`string`?t:void 0}}async function W(){await v({event:{reason:`cli message action complete`},ctx:{},onError:e=>n.error(r(`gateway_stop hook failed: ${String(e)}`))})}function G(e,t){return{withMessageBase:e=>e.option(`--channel <channel>`,`Channel: ${t}`).option(`--account <id>`,`Channel account id (accountId)`).option(`--json`,`Output result as JSON`,!1).option(`--dry-run`,`Print payload and skip sending`,!1).option(`--verbose`,`Verbose logging`,!1),withMessageTarget:e=>e.option(`-t, --target <dest>`,_),withRequiredMessageTarget:e=>e.requiredOption(`-t, --target <dest>`,_),runMessageAction:async(e,t)=>{i(!!t.verbose),T();let a=g(),o=!1;await S(n,async()=>{await H({...U(t),action:e},a,n)},e=>{o=!0,n.error(r(String(e)))}),await W(),n.exit(o?1:0)}}}function K(e,t){t.withMessageBase(e.command(`broadcast`).description(`Broadcast a message to multiple targets`)).requiredOption(`--targets <target...>`,p).option(`--message <text>`,`Message to send`).option(`--media <url>`,`Media URL`).action(async e=>{await t.runMessageAction(`broadcast`,e)})}function q(e,t){let n=e.command(`role`).description(`Role actions`);t.withMessageBase(n.command(`info`).description(`List roles`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`role-info`,e)}),t.withMessageBase(n.command(`add`).description(`Add role to a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-add`,e)}),t.withMessageBase(n.command(`remove`).description(`Remove role from a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-remove`,e)});let r=e.command(`channel`).description(`Channel actions`);t.withMessageBase(t.withRequiredMessageTarget(r.command(`info`).description(`Fetch channel info`))).action(async e=>{await t.runMessageAction(`channel-info`,e)}),t.withMessageBase(r.command(`list`).description(`List channels`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`channel-list`,e)});let i=e.command(`member`).description(`Member actions`);t.withMessageBase(i.command(`info`).description(`Fetch member info`).requiredOption(`--user-id <id>`,`User id`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`member-info`,e)});let a=e.command(`voice`).description(`Voice actions`);t.withMessageBase(a.command(`status`).description(`Fetch voice status`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).action(async e=>{await t.runMessageAction(`voice-status`,e)});let o=e.command(`event`).description(`Event actions`);t.withMessageBase(o.command(`list`).description(`List scheduled events`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`event-list`,e)}),t.withMessageBase(o.command(`create`).description(`Create a scheduled event`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--event-name <name>`,`Event name`).requiredOption(`--start-time <iso>`,`Event start time`)).option(`--end-time <iso>`,`Event end time`).option(`--desc <text>`,`Event description`).option(`--channel-id <id>`,`Channel id`).option(`--location <text>`,`Event location`).option(`--event-type <stage|external|voice>`,`Event type`).action(async e=>{await t.runMessageAction(`event-create`,e)}),t.withMessageBase(e.command(`timeout`).description(`Timeout a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--duration-min <n>`,`Timeout duration minutes`).option(`--until <iso>`,`Timeout until`).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`timeout`,e)}),t.withMessageBase(e.command(`kick`).description(`Kick a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`kick`,e)}),t.withMessageBase(e.command(`ban`).description(`Ban a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).option(`--delete-days <n>`,`Ban delete message days`).action(async e=>{await t.runMessageAction(`ban`,e)})}function J(e,t){let n=e.command(`emoji`).description(`Emoji actions`);t.withMessageBase(n.command(`list`).description(`List emojis`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`emoji-list`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload an emoji`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--emoji-name <name>`,`Emoji name`).requiredOption(`--media <path-or-url>`,`Emoji media (path or URL)`).option(`--role-ids <id>`,`Role id (repeat)`,E,[]).action(async e=>{await t.runMessageAction(`emoji-upload`,e)})}function Y(e,t){let n=e.command(`sticker`).description(`Sticker actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`send`).description(`Send stickers`))).requiredOption(`--sticker-id <id>`,`Sticker id (repeat)`,E).option(`-m, --message <text>`,`Optional message body`).action(async e=>{await t.runMessageAction(`sticker`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload a sticker`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--sticker-name <name>`,`Sticker name`).requiredOption(`--sticker-desc <text>`,`Sticker description`).requiredOption(`--sticker-tags <tags>`,`Sticker tags`).requiredOption(`--media <path-or-url>`,`Sticker media (path or URL)`).action(async e=>{await t.runMessageAction(`sticker-upload`,e)})}function X(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`permissions`).description(`Fetch channel permissions`))).action(async e=>{await t.runMessageAction(`permissions`,e)})}function Z(e,t){t.withMessageBase(e.command(`search`).description(`Search Discord messages`)).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--query <text>`,`Search query`).option(`--channel-id <id>`,`Channel id`).option(`--channel-ids <id>`,`Channel id (repeat)`,E,[]).option(`--author-id <id>`,`Author id`).option(`--author-ids <id>`,`Author id (repeat)`,E,[]).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`search`,e)})}function Q(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`pin`).description(`Pin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`pin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`unpin`).description(`Unpin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`unpin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`pins`).description(`List pinned messages`))).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`list-pins`,e)})}function $(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`poll`).description(`Send a poll`))).requiredOption(`--poll-question <text>`,`Poll question`).option(`--poll-option <choice>`,`Poll option (repeat 2-12 times)`,E,[]).option(`--poll-multi`,`Allow multiple selections`,!1).option(`--poll-duration-hours <n>`,`Poll duration in hours (Discord)`).option(`--poll-duration-seconds <n>`,`Poll duration in seconds (Telegram; 5-600)`).option(`--poll-anonymous`,`Send an anonymous poll (Telegram)`,!1).option(`--poll-public`,`Send a non-anonymous poll (Telegram)`,!1).option(`-m, --message <text>`,`Optional message body`).option(`--silent`,`Send poll silently without notification (Telegram + Discord where supported)`,!1).option(`--thread-id <id>`,`Thread id (Telegram forum topic / Slack thread ts)`).action(async e=>{await t.runMessageAction(`poll`,e)})}function te(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`react`).description(`Add or remove a reaction`))).requiredOption(`--message-id <id>`,`Message id`).option(`--emoji <emoji>`,`Emoji for reactions`).option(`--remove`,`Remove reaction`,!1).option(`--participant <id>`,`WhatsApp reaction participant`).option(`--from-me`,`WhatsApp reaction fromMe`,!1).option(`--target-author <id>`,`Signal reaction target author (uuid or phone)`).option(`--target-author-uuid <uuid>`,`Signal reaction target author uuid`).action(async e=>{await t.runMessageAction(`react`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`reactions`).description(`List reactions on a message`))).requiredOption(`--message-id <id>`,`Message id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`reactions`,e)})}function ne(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`read`).description(`Read recent messages`))).option(`--limit <n>`,`Result limit`).option(`--before <id>`,`Read/search before id`).option(`--after <id>`,`Read/search after id`).option(`--around <id>`,`Read around id`).option(`--include-thread`,`Include thread replies (Discord)`,!1).action(async e=>{await t.runMessageAction(`read`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`edit`).description(`Edit a message`).requiredOption(`--message-id <id>`,`Message id`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).action(async e=>{await t.runMessageAction(`edit`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`delete`).description(`Delete a message`).requiredOption(`--message-id <id>`,`Message id`))).action(async e=>{await t.runMessageAction(`delete`,e)})}function re(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`send`).description(`Send a message`).option(`-m, --message <text>`,`Message body (required unless --media is set)`)).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--buttons <json>`,`Telegram inline keyboard buttons as JSON (array of button rows)`).option(`--components <json>`,`Discord components payload as JSON`).option(`--card <json>`,`Adaptive Card JSON object (when supported by the channel)`).option(`--reply-to <id>`,`Reply-to message id`).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).option(`--gif-playback`,`Treat video media as GIF playback (WhatsApp only).`,!1).option(`--silent`,`Send message silently without notification (Telegram + Discord)`,!1)).action(async e=>{await t.runMessageAction(`send`,e)})}function ie(e,t){let n=e.command(`thread`).description(`Thread actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`create`).description(`Create a thread`).requiredOption(`--thread-name <name>`,`Thread name`))).option(`--message-id <id>`,`Message id (optional)`).option(`-m, --message <text>`,`Initial thread message text`).option(`--auto-archive-min <n>`,`Thread auto-archive minutes`).action(async e=>{await t.runMessageAction(`thread-create`,e)}),t.withMessageBase(n.command(`list`).description(`List threads`).requiredOption(`--guild-id <id>`,`Guild id`)).option(`--channel-id <id>`,`Channel id`).option(`--include-archived`,`Include archived threads`,!1).option(`--before <id>`,`Read/search before id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`thread-list`,e)}),t.withMessageBase(t.withRequiredMessageTarget(n.command(`reply`).description(`Reply in a thread`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--reply-to <id>`,`Reply-to message id`).action(async e=>{await t.runMessageAction(`thread-reply`,e)})}function ae(t,n){let r=t.command(`message`).description(`Send, read, and manage messages and channel actions`).addHelpText(`after`,()=>`
1
+ import{A as e,k as t,p as n,v as r,w as i}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{jo as a,lr as o,ur as s}from"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import{a as c,l}from"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import{t as u}from"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import{Ct as d,Et as f,Kt as p,O as m,dt as h,k as g,qt as _}from"./compact-B5m4267P.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import{P as v}from"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import{n as y,s as b}from"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as x}from"./links-pHmQCzdF.js";import{n as S}from"./cli-utils-BleB1eys.js";import{t as C}from"./help-format-BSNXPQuE.js";import{n as w}from"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import{t as T}from"./plugin-registry-DgGaQJpH.js";import{t as E}from"./helpers-COz1ghcB.js";import{n as D,t as O}from"./table-BiqW4yI5.js";import{t as k}from"./text-format-DEWK6oCT.js";const A=e=>{let t=u(e)?.meta.label;if(t)return t;let n=l(e);return n?c(n).label:e};function j(e,t){if(!t)return`✅ Sent via ${A(e)}. Message ID: unknown`;let n=`✅ Sent via ${A(t.channel)}. Message ID: ${t.messageId}`;return`chatId`in t?`${n} (chat ${t.chatId})`:`channelId`in t?`${n} (channel ${t.channelId})`:`roomId`in t?`${n} (room ${t.roomId})`:`conversationId`in t?`${n} (conversation ${t.conversationId})`:n}function M(e){return`✅ ${e.action??`Sent`} via gateway${e.channel?` (${e.channel})`:``}. Message ID: ${e.messageId??`unknown`}`}const N=e=>u(e)?.meta.label??e;function P(e){if(!e||typeof e!=`object`)return null;let t=e.messageId;if(typeof t==`string`&&t.trim())return t.trim();let n=e.result;if(n&&typeof n==`object`){let e=n.messageId;if(typeof e==`string`&&e.trim())return e.trim()}return null}function F(e){return{action:e.action,channel:e.channel,dryRun:e.dryRun,handledBy:e.handledBy,payload:e.payload}}function I(t,n){if(!t||typeof t!=`object`)return[String(t)];let r=t,i=Object.keys(r);if(i.length===0)return[e.muted(`(empty)`)];let a=i.slice(0,20).map(e=>{let t=r[e];return{Key:e,Value:k(t==null?`null`:Array.isArray(t)?`${t.length} items`:typeof t==`object`?`object`:typeof t==`string`?t:typeof t==`number`?String(t):typeof t==`boolean`?t?`true`:`false`:typeof t==`bigint`||typeof t==`symbol`?t.toString():typeof t==`function`?`function`:`unknown`,96)}});return[D({width:n.width,columns:[{key:`Key`,header:`Key`,minWidth:16},{key:`Value`,header:`Value`,flex:!0,minWidth:24}],rows:a}).trimEnd()]}function L(t,n,r){let i=t.slice(0,25).map(e=>{let t=e,n=typeof t.id==`string`&&t.id||typeof t.ts==`string`&&t.ts||typeof t.messageId==`string`&&t.messageId||``,r=t.author,i=typeof t.authorTag==`string`&&t.authorTag||typeof r?.username==`string`&&r.username||typeof t.user==`string`&&t.user||``,a=typeof t.timestamp==`string`&&t.timestamp||typeof t.ts==`string`&&t.ts||``,o=typeof t.content==`string`&&t.content||typeof t.text==`string`&&t.text||``;return{Time:k(a,28),Author:k(i,22),Text:k(o.replace(/\s+/g,` `).trim(),90),Id:k(n,22)}});return i.length===0?[e.muted(r)]:[D({width:n.width,columns:[{key:`Time`,header:`Time`,minWidth:14},{key:`Author`,header:`Author`,minWidth:10},{key:`Text`,header:`Text`,flex:!0,minWidth:24},{key:`Id`,header:`Id`,minWidth:10}],rows:i}).trimEnd()]}function R(e,t){if(!e||typeof e!=`object`)return null;let n=e.messages;return Array.isArray(n)?L(n,t,`No messages.`):null}function z(e,t){if(!e||typeof e!=`object`)return null;let n=e.pins;return Array.isArray(n)?L(n,t,`No pins.`):null}function B(e){if(!e||typeof e!=`object`)return null;let t=e.messages;if(!Array.isArray(t))return null;let n=[];for(let e of t)Array.isArray(e)&&e.length>0?n.push(e[0]):e&&typeof e==`object`&&n.push(e);return n.length?n:null}function V(t,n){if(!t||typeof t!=`object`)return null;let r=t.reactions;if(!Array.isArray(r))return null;let i=r.slice(0,50).map(e=>{let t=e,n=t.emoji;return{Emoji:typeof n?.raw==`string`&&n.raw||typeof t.name==`string`&&t.name||typeof t.emoji==`string`&&t.emoji||``,Count:typeof t.count==`number`?String(t.count):``,Users:k((Array.isArray(t.users)?t.users.slice(0,8).map(e=>{if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return``;let t=e;return typeof t.tag==`string`&&t.tag||typeof t.username==`string`&&t.username||typeof t.id==`string`&&t.id||``}).filter(Boolean):[]).join(`, `),72)}});return i.length===0?[e.muted(`No reactions.`)]:[D({width:n.width,columns:[{key:`Emoji`,header:`Emoji`,minWidth:8},{key:`Count`,header:`Count`,align:`right`,minWidth:6},{key:`Users`,header:`Users`,flex:!0,minWidth:20}],rows:i}).trimEnd()]}function ee(n){let r=t(),i=t=>r?e.success(t):t,a=t=>r?e.muted(t):t,o=t=>r?e.heading(t):t,s={width:O()};if(n.handledBy===`dry-run`)return[a(`[dry-run] would run ${n.action} via ${n.channel}`)];if(n.kind===`broadcast`){let e=n.payload.results??[],t=e.map(e=>({Channel:N(e.channel),Target:k(d({channel:e.channel,target:e.to}),36),Status:e.ok?`ok`:`error`,Error:e.ok?``:k(e.error??`unknown error`,48)})),r=e.filter(e=>e.ok).length,a=e.length;return[i(`✅ Broadcast complete (${r}/${a} succeeded, ${a-r} failed)`),D({width:s.width,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Target`,header:`Target`,minWidth:12,flex:!0},{key:`Status`,header:`Status`,minWidth:6},{key:`Error`,header:`Error`,minWidth:20,flex:!0}],rows:t.slice(0,50)}).trimEnd()]}if(n.kind===`send`){if(n.handledBy===`core`&&n.sendResult){let e=n.sendResult;if(e.via===`direct`){let t=e.result;return[i(j(e.channel,t))]}let t=e.result;return[i(M({channel:e.channel,messageId:t?.messageId??null}))]}let e=N(n.channel),t=P(n.payload);return[i(`✅ Sent via ${e}.${t?` Message ID: ${t}`:``}`)]}if(n.kind===`poll`){if(n.handledBy===`core`&&n.pollResult){let e=n.pollResult,t=e.result?.pollId,r=e.result?.messageId??null,a=[i(M({action:`Poll sent`,channel:e.channel,messageId:r}))];return t&&a.push(i(`Poll id: ${t}`)),a}let e=N(n.channel),t=P(n.payload);return[i(`✅ Poll sent via ${e}.${t?` Message ID: ${t}`:``}`)]}let c=n.payload,l=[];if(n.action===`react`){let e=c.added,t=c.removed;if(typeof e==`string`&&e.trim())return l.push(i(`✅ Reaction added: ${e.trim()}`)),l;if(typeof t==`string`&&t.trim())return l.push(i(`✅ Reaction removed: ${t.trim()}`)),l;if(Array.isArray(t)){let e=t.map(e=>String(e).trim()).filter(Boolean).join(`, `);return l.push(i(`✅ Reactions removed${e?`: ${e}`:``}`)),l}return l.push(i(`✅ Reaction updated.`)),l}let u=V(c,s);if(u&&n.action===`reactions`)return l.push(o(`Reactions`)),l.push(u[0]??``),l;if(n.action===`read`){let e=R(c,s);if(e)return l.push(o(`Messages`)),l.push(e[0]??``),l}if(n.action===`list-pins`){let e=z(c,s);if(e)return l.push(o(`Pinned messages`)),l.push(e[0]??``),l}if(n.action===`search`){let e=c.results,t=B(e);if(t)return l.push(o(`Search results`)),l.push(L(t,s,`No results.`)[0]??``),l}l.push(i(`✅ ${n.action} via ${N(n.channel)}.`));let f=I(c,s);return f.length&&(l.push(``),l.push(...f),l.push(``),l.push(a(`Tip: use --json for full output.`))),l}async function H(e,t,n){let{resolvedConfig:r,diagnostics:i}=await b({config:a(),commandName:`message`,targetIds:y()});for(let e of i)n.log(`[secrets] ${e}`);let c=(typeof e.action==`string`?e.action.trim():``)||`send`,l=f.find(e=>e.toLowerCase()===c.toLowerCase());if(!l)throw Error(`Unknown message action: ${c}`);let u=l,d=m(t),p=async()=>await h({cfg:r,action:u,params:e,deps:d,gateway:{clientName:s.CLI,mode:o.CLI}}),g=e.json===!0,_=e.dryRun===!0,v=!g&&!_&&(u===`send`||u===`poll`)?await w({label:u===`poll`?`Sending poll...`:`Sending...`,indeterminate:!0,enabled:!0},p):await p();if(g){n.log(JSON.stringify(F(v),null,2));return}for(let e of ee(v))n.log(e)}function U(e){let{account:t,...n}=e;return{...n,accountId:typeof t==`string`?t:void 0}}async function W(){await v({event:{reason:`cli message action complete`},ctx:{},onError:e=>n.error(r(`gateway_stop hook failed: ${String(e)}`))})}function G(e,t){return{withMessageBase:e=>e.option(`--channel <channel>`,`Channel: ${t}`).option(`--account <id>`,`Channel account id (accountId)`).option(`--json`,`Output result as JSON`,!1).option(`--dry-run`,`Print payload and skip sending`,!1).option(`--verbose`,`Verbose logging`,!1),withMessageTarget:e=>e.option(`-t, --target <dest>`,_),withRequiredMessageTarget:e=>e.requiredOption(`-t, --target <dest>`,_),runMessageAction:async(e,t)=>{i(!!t.verbose),T();let a=g(),o=!1;await S(n,async()=>{await H({...U(t),action:e},a,n)},e=>{o=!0,n.error(r(String(e)))}),await W(),n.exit(o?1:0)}}}function K(e,t){t.withMessageBase(e.command(`broadcast`).description(`Broadcast a message to multiple targets`)).requiredOption(`--targets <target...>`,p).option(`--message <text>`,`Message to send`).option(`--media <url>`,`Media URL`).action(async e=>{await t.runMessageAction(`broadcast`,e)})}function q(e,t){let n=e.command(`role`).description(`Role actions`);t.withMessageBase(n.command(`info`).description(`List roles`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`role-info`,e)}),t.withMessageBase(n.command(`add`).description(`Add role to a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-add`,e)}),t.withMessageBase(n.command(`remove`).description(`Remove role from a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-remove`,e)});let r=e.command(`channel`).description(`Channel actions`);t.withMessageBase(t.withRequiredMessageTarget(r.command(`info`).description(`Fetch channel info`))).action(async e=>{await t.runMessageAction(`channel-info`,e)}),t.withMessageBase(r.command(`list`).description(`List channels`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`channel-list`,e)});let i=e.command(`member`).description(`Member actions`);t.withMessageBase(i.command(`info`).description(`Fetch member info`).requiredOption(`--user-id <id>`,`User id`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`member-info`,e)});let a=e.command(`voice`).description(`Voice actions`);t.withMessageBase(a.command(`status`).description(`Fetch voice status`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).action(async e=>{await t.runMessageAction(`voice-status`,e)});let o=e.command(`event`).description(`Event actions`);t.withMessageBase(o.command(`list`).description(`List scheduled events`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`event-list`,e)}),t.withMessageBase(o.command(`create`).description(`Create a scheduled event`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--event-name <name>`,`Event name`).requiredOption(`--start-time <iso>`,`Event start time`)).option(`--end-time <iso>`,`Event end time`).option(`--desc <text>`,`Event description`).option(`--channel-id <id>`,`Channel id`).option(`--location <text>`,`Event location`).option(`--event-type <stage|external|voice>`,`Event type`).action(async e=>{await t.runMessageAction(`event-create`,e)}),t.withMessageBase(e.command(`timeout`).description(`Timeout a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--duration-min <n>`,`Timeout duration minutes`).option(`--until <iso>`,`Timeout until`).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`timeout`,e)}),t.withMessageBase(e.command(`kick`).description(`Kick a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`kick`,e)}),t.withMessageBase(e.command(`ban`).description(`Ban a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).option(`--delete-days <n>`,`Ban delete message days`).action(async e=>{await t.runMessageAction(`ban`,e)})}function J(e,t){let n=e.command(`emoji`).description(`Emoji actions`);t.withMessageBase(n.command(`list`).description(`List emojis`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`emoji-list`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload an emoji`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--emoji-name <name>`,`Emoji name`).requiredOption(`--media <path-or-url>`,`Emoji media (path or URL)`).option(`--role-ids <id>`,`Role id (repeat)`,E,[]).action(async e=>{await t.runMessageAction(`emoji-upload`,e)})}function Y(e,t){let n=e.command(`sticker`).description(`Sticker actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`send`).description(`Send stickers`))).requiredOption(`--sticker-id <id>`,`Sticker id (repeat)`,E).option(`-m, --message <text>`,`Optional message body`).action(async e=>{await t.runMessageAction(`sticker`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload a sticker`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--sticker-name <name>`,`Sticker name`).requiredOption(`--sticker-desc <text>`,`Sticker description`).requiredOption(`--sticker-tags <tags>`,`Sticker tags`).requiredOption(`--media <path-or-url>`,`Sticker media (path or URL)`).action(async e=>{await t.runMessageAction(`sticker-upload`,e)})}function X(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`permissions`).description(`Fetch channel permissions`))).action(async e=>{await t.runMessageAction(`permissions`,e)})}function Z(e,t){t.withMessageBase(e.command(`search`).description(`Search Discord messages`)).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--query <text>`,`Search query`).option(`--channel-id <id>`,`Channel id`).option(`--channel-ids <id>`,`Channel id (repeat)`,E,[]).option(`--author-id <id>`,`Author id`).option(`--author-ids <id>`,`Author id (repeat)`,E,[]).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`search`,e)})}function Q(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`pin`).description(`Pin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`pin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`unpin`).description(`Unpin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`unpin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`pins`).description(`List pinned messages`))).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`list-pins`,e)})}function $(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`poll`).description(`Send a poll`))).requiredOption(`--poll-question <text>`,`Poll question`).option(`--poll-option <choice>`,`Poll option (repeat 2-12 times)`,E,[]).option(`--poll-multi`,`Allow multiple selections`,!1).option(`--poll-duration-hours <n>`,`Poll duration in hours (Discord)`).option(`--poll-duration-seconds <n>`,`Poll duration in seconds (Telegram; 5-600)`).option(`--poll-anonymous`,`Send an anonymous poll (Telegram)`,!1).option(`--poll-public`,`Send a non-anonymous poll (Telegram)`,!1).option(`-m, --message <text>`,`Optional message body`).option(`--silent`,`Send poll silently without notification (Telegram + Discord where supported)`,!1).option(`--thread-id <id>`,`Thread id (Telegram forum topic / Slack thread ts)`).action(async e=>{await t.runMessageAction(`poll`,e)})}function te(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`react`).description(`Add or remove a reaction`))).requiredOption(`--message-id <id>`,`Message id`).option(`--emoji <emoji>`,`Emoji for reactions`).option(`--remove`,`Remove reaction`,!1).option(`--participant <id>`,`WhatsApp reaction participant`).option(`--from-me`,`WhatsApp reaction fromMe`,!1).option(`--target-author <id>`,`Signal reaction target author (uuid or phone)`).option(`--target-author-uuid <uuid>`,`Signal reaction target author uuid`).action(async e=>{await t.runMessageAction(`react`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`reactions`).description(`List reactions on a message`))).requiredOption(`--message-id <id>`,`Message id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`reactions`,e)})}function ne(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`read`).description(`Read recent messages`))).option(`--limit <n>`,`Result limit`).option(`--before <id>`,`Read/search before id`).option(`--after <id>`,`Read/search after id`).option(`--around <id>`,`Read around id`).option(`--include-thread`,`Include thread replies (Discord)`,!1).action(async e=>{await t.runMessageAction(`read`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`edit`).description(`Edit a message`).requiredOption(`--message-id <id>`,`Message id`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).action(async e=>{await t.runMessageAction(`edit`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`delete`).description(`Delete a message`).requiredOption(`--message-id <id>`,`Message id`))).action(async e=>{await t.runMessageAction(`delete`,e)})}function re(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`send`).description(`Send a message`).option(`-m, --message <text>`,`Message body (required unless --media is set)`)).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--buttons <json>`,`Telegram inline keyboard buttons as JSON (array of button rows)`).option(`--components <json>`,`Discord components payload as JSON`).option(`--card <json>`,`Adaptive Card JSON object (when supported by the channel)`).option(`--reply-to <id>`,`Reply-to message id`).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).option(`--gif-playback`,`Treat video media as GIF playback (WhatsApp only).`,!1).option(`--silent`,`Send message silently without notification (Telegram + Discord)`,!1)).action(async e=>{await t.runMessageAction(`send`,e)})}function ie(e,t){let n=e.command(`thread`).description(`Thread actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`create`).description(`Create a thread`).requiredOption(`--thread-name <name>`,`Thread name`))).option(`--message-id <id>`,`Message id (optional)`).option(`-m, --message <text>`,`Initial thread message text`).option(`--auto-archive-min <n>`,`Thread auto-archive minutes`).action(async e=>{await t.runMessageAction(`thread-create`,e)}),t.withMessageBase(n.command(`list`).description(`List threads`).requiredOption(`--guild-id <id>`,`Guild id`)).option(`--channel-id <id>`,`Channel id`).option(`--include-archived`,`Include archived threads`,!1).option(`--before <id>`,`Read/search before id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`thread-list`,e)}),t.withMessageBase(t.withRequiredMessageTarget(n.command(`reply`).description(`Reply in a thread`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--reply-to <id>`,`Reply-to message id`).action(async e=>{await t.runMessageAction(`thread-reply`,e)})}function ae(t,n){let r=t.command(`message`).description(`Send, read, and manage messages and channel actions`).addHelpText(`after`,()=>`
2
2
  ${e.heading(`Examples:`)}
3
3
  ${C([[`openclaw message send --target +15555550123 --message "Hi"`,`Send a text message.`],[`openclaw message send --target +15555550123 --message "Hi" --media photo.jpg`,`Send a message with media.`],[`openclaw message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi`,`Create a Discord poll.`],[`openclaw message react --channel discord --target 123 --message-id 456 --emoji "✅"`,`React to a message.`]])}
4
4
 
@@ -1 +1 @@
1
- import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import"./model-selection-B2r_LMFb.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./call-BQAAYLj3.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import{t as n}from"./links-jlebCPFf.js";import{n as r}from"./cli-utils-BY7dLMFy.js";import"./progress-Cyn5U745.js";import"./runtime-guard-D_eQ0X84.js";import"./note-PBjA39mC.js";import"./clack-prompter-D1yxUXLU.js";import"./onboarding.secret-input-2vgEb3Ik.js";import"./onboarding-CSBYu9X2.js";import"./logging-Gwc2HmXy.js";import{t as i}from"./onboard-provider-auth-flags-Dvwzdz37.js";import{n as a}from"./auth-choice-options-Dw14noox.js";import{t as o}from"./onboard-DtvFX5YS.js";function s(e,t){if(!e||typeof e!=`object`)return;let n=`getOptionValueSource`in e?e.getOptionValueSource:void 0;if(typeof n==`function`){if(n.call(e,`skipDaemon`)===`cli`)return!1;if(n.call(e,`installDaemon`)===`cli`)return!!t.installDaemon}}const c=a({includeLegacyAliases:!0,includeSkip:!0});function l(a){let l=a.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/onboard`,`docs.openclaw.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace)`).option(`--reset`,`Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)`).option(`--reset-scope <scope>`,`Reset scope: config|config+creds+sessions|full`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth: ${c}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--secret-input-mode <mode>`,`API key persistence mode: plaintext|ref (default: plaintext)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let e of i)l.option(e.cliOption,e.description);l.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-token-ref-env <name>`,`Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-search`,`Skip search provider setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),l.action(async(e,n)=>{await r(t,async()=>{let r=s(n,{installDaemon:!!e.installDaemon}),i=typeof e.gatewayPort==`string`?Number.parseInt(e.gatewayPort,10):void 0;await o({workspace:e.workspace,nonInteractive:!!e.nonInteractive,acceptRisk:!!e.acceptRisk,flow:e.flow,mode:e.mode,authChoice:e.authChoice,tokenProvider:e.tokenProvider,token:e.token,tokenProfileId:e.tokenProfileId,tokenExpiresIn:e.tokenExpiresIn,secretInputMode:e.secretInputMode,anthropicApiKey:e.anthropicApiKey,openaiApiKey:e.openaiApiKey,mistralApiKey:e.mistralApiKey,openrouterApiKey:e.openrouterApiKey,kilocodeApiKey:e.kilocodeApiKey,aiGatewayApiKey:e.aiGatewayApiKey,cloudflareAiGatewayAccountId:e.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:e.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:e.cloudflareAiGatewayApiKey,moonshotApiKey:e.moonshotApiKey,kimiCodeApiKey:e.kimiCodeApiKey,geminiApiKey:e.geminiApiKey,zaiApiKey:e.zaiApiKey,xiaomiApiKey:e.xiaomiApiKey,qianfanApiKey:e.qianfanApiKey,modelstudioApiKeyCn:e.modelstudioApiKeyCn,modelstudioApiKey:e.modelstudioApiKey,minimaxApiKey:e.minimaxApiKey,syntheticApiKey:e.syntheticApiKey,veniceApiKey:e.veniceApiKey,togetherApiKey:e.togetherApiKey,huggingfaceApiKey:e.huggingfaceApiKey,opencodeZenApiKey:e.opencodeZenApiKey,opencodeGoApiKey:e.opencodeGoApiKey,xaiApiKey:e.xaiApiKey,litellmApiKey:e.litellmApiKey,volcengineApiKey:e.volcengineApiKey,byteplusApiKey:e.byteplusApiKey,customBaseUrl:e.customBaseUrl,customApiKey:e.customApiKey,customModelId:e.customModelId,customProviderId:e.customProviderId,customCompatibility:e.customCompatibility,gatewayPort:typeof i==`number`&&Number.isFinite(i)?i:void 0,gatewayBind:e.gatewayBind,gatewayAuth:e.gatewayAuth,gatewayToken:e.gatewayToken,gatewayTokenRefEnv:e.gatewayTokenRefEnv,gatewayPassword:e.gatewayPassword,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken,tailscale:e.tailscale,tailscaleResetOnExit:!!e.tailscaleResetOnExit,reset:!!e.reset,resetScope:e.resetScope,installDaemon:r,daemonRuntime:e.daemonRuntime,skipChannels:!!e.skipChannels,skipSkills:!!e.skipSkills,skipSearch:!!e.skipSearch,skipHealth:!!e.skipHealth,skipUi:!!e.skipUi,nodeManager:e.nodeManager,json:!!e.json},t)})})}export{l as registerOnboardCommand};
1
+ import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import"./model-selection-B2r_LMFb.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./call-BQAAYLj3.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import{t as n}from"./links-jlebCPFf.js";import{n as r}from"./cli-utils-BY7dLMFy.js";import"./progress-Cyn5U745.js";import"./runtime-guard-D_eQ0X84.js";import"./note-PBjA39mC.js";import"./clack-prompter-D1yxUXLU.js";import"./onboarding.secret-input-2vgEb3Ik.js";import"./onboarding-DVLGoQj1.js";import"./logging-Gwc2HmXy.js";import{t as i}from"./onboard-provider-auth-flags-Dvwzdz37.js";import{n as a}from"./auth-choice-options-Dw14noox.js";import{t as o}from"./onboard-CkDnD6Va.js";function s(e,t){if(!e||typeof e!=`object`)return;let n=`getOptionValueSource`in e?e.getOptionValueSource:void 0;if(typeof n==`function`){if(n.call(e,`skipDaemon`)===`cli`)return!1;if(n.call(e,`installDaemon`)===`cli`)return!!t.installDaemon}}const c=a({includeLegacyAliases:!0,includeSkip:!0});function l(a){let l=a.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/onboard`,`docs.openclaw.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace)`).option(`--reset`,`Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)`).option(`--reset-scope <scope>`,`Reset scope: config|config+creds+sessions|full`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth: ${c}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--secret-input-mode <mode>`,`API key persistence mode: plaintext|ref (default: plaintext)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let e of i)l.option(e.cliOption,e.description);l.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-token-ref-env <name>`,`Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-search`,`Skip search provider setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),l.action(async(e,n)=>{await r(t,async()=>{let r=s(n,{installDaemon:!!e.installDaemon}),i=typeof e.gatewayPort==`string`?Number.parseInt(e.gatewayPort,10):void 0;await o({workspace:e.workspace,nonInteractive:!!e.nonInteractive,acceptRisk:!!e.acceptRisk,flow:e.flow,mode:e.mode,authChoice:e.authChoice,tokenProvider:e.tokenProvider,token:e.token,tokenProfileId:e.tokenProfileId,tokenExpiresIn:e.tokenExpiresIn,secretInputMode:e.secretInputMode,anthropicApiKey:e.anthropicApiKey,openaiApiKey:e.openaiApiKey,mistralApiKey:e.mistralApiKey,openrouterApiKey:e.openrouterApiKey,kilocodeApiKey:e.kilocodeApiKey,aiGatewayApiKey:e.aiGatewayApiKey,cloudflareAiGatewayAccountId:e.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:e.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:e.cloudflareAiGatewayApiKey,moonshotApiKey:e.moonshotApiKey,kimiCodeApiKey:e.kimiCodeApiKey,geminiApiKey:e.geminiApiKey,zaiApiKey:e.zaiApiKey,xiaomiApiKey:e.xiaomiApiKey,qianfanApiKey:e.qianfanApiKey,modelstudioApiKeyCn:e.modelstudioApiKeyCn,modelstudioApiKey:e.modelstudioApiKey,minimaxApiKey:e.minimaxApiKey,syntheticApiKey:e.syntheticApiKey,veniceApiKey:e.veniceApiKey,togetherApiKey:e.togetherApiKey,huggingfaceApiKey:e.huggingfaceApiKey,opencodeZenApiKey:e.opencodeZenApiKey,opencodeGoApiKey:e.opencodeGoApiKey,xaiApiKey:e.xaiApiKey,litellmApiKey:e.litellmApiKey,volcengineApiKey:e.volcengineApiKey,byteplusApiKey:e.byteplusApiKey,customBaseUrl:e.customBaseUrl,customApiKey:e.customApiKey,customModelId:e.customModelId,customProviderId:e.customProviderId,customCompatibility:e.customCompatibility,gatewayPort:typeof i==`number`&&Number.isFinite(i)?i:void 0,gatewayBind:e.gatewayBind,gatewayAuth:e.gatewayAuth,gatewayToken:e.gatewayToken,gatewayTokenRefEnv:e.gatewayTokenRefEnv,gatewayPassword:e.gatewayPassword,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken,tailscale:e.tailscale,tailscaleResetOnExit:!!e.tailscaleResetOnExit,reset:!!e.reset,resetScope:e.resetScope,installDaemon:r,daemonRuntime:e.daemonRuntime,skipChannels:!!e.skipChannels,skipSkills:!!e.skipSkills,skipSearch:!!e.skipSearch,skipHealth:!!e.skipHealth,skipUi:!!e.skipUi,nodeManager:e.nodeManager,json:!!e.json},t)})})}export{l as registerOnboardCommand};
@@ -1 +1 @@
1
- import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./call-D5NJXFgu.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import{t as n}from"./links-pHmQCzdF.js";import{n as r}from"./cli-utils-BleB1eys.js";import"./progress-Cy6zNuIC.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./runtime-guard-BFK4A89C.js";import"./onboarding.secret-input-BbwX0Pao.js";import"./onboarding-DTE81H7h.js";import"./logging-Ai_SKvpp.js";import{t as i}from"./onboard-provider-auth-flags-CqbipO7D.js";import{n as a}from"./auth-choice-options-B3WQyS7I.js";import{t as o}from"./onboard-DKohpAhM.js";function s(e,t){if(!e||typeof e!=`object`)return;let n=`getOptionValueSource`in e?e.getOptionValueSource:void 0;if(typeof n==`function`){if(n.call(e,`skipDaemon`)===`cli`)return!1;if(n.call(e,`installDaemon`)===`cli`)return!!t.installDaemon}}const c=a({includeLegacyAliases:!0,includeSkip:!0});function l(a){let l=a.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/onboard`,`docs.openclaw.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace)`).option(`--reset`,`Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)`).option(`--reset-scope <scope>`,`Reset scope: config|config+creds+sessions|full`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth: ${c}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--secret-input-mode <mode>`,`API key persistence mode: plaintext|ref (default: plaintext)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let e of i)l.option(e.cliOption,e.description);l.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-token-ref-env <name>`,`Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-search`,`Skip search provider setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),l.action(async(e,n)=>{await r(t,async()=>{let r=s(n,{installDaemon:!!e.installDaemon}),i=typeof e.gatewayPort==`string`?Number.parseInt(e.gatewayPort,10):void 0;await o({workspace:e.workspace,nonInteractive:!!e.nonInteractive,acceptRisk:!!e.acceptRisk,flow:e.flow,mode:e.mode,authChoice:e.authChoice,tokenProvider:e.tokenProvider,token:e.token,tokenProfileId:e.tokenProfileId,tokenExpiresIn:e.tokenExpiresIn,secretInputMode:e.secretInputMode,anthropicApiKey:e.anthropicApiKey,openaiApiKey:e.openaiApiKey,mistralApiKey:e.mistralApiKey,openrouterApiKey:e.openrouterApiKey,kilocodeApiKey:e.kilocodeApiKey,aiGatewayApiKey:e.aiGatewayApiKey,cloudflareAiGatewayAccountId:e.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:e.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:e.cloudflareAiGatewayApiKey,moonshotApiKey:e.moonshotApiKey,kimiCodeApiKey:e.kimiCodeApiKey,geminiApiKey:e.geminiApiKey,zaiApiKey:e.zaiApiKey,xiaomiApiKey:e.xiaomiApiKey,qianfanApiKey:e.qianfanApiKey,modelstudioApiKeyCn:e.modelstudioApiKeyCn,modelstudioApiKey:e.modelstudioApiKey,minimaxApiKey:e.minimaxApiKey,syntheticApiKey:e.syntheticApiKey,veniceApiKey:e.veniceApiKey,togetherApiKey:e.togetherApiKey,huggingfaceApiKey:e.huggingfaceApiKey,opencodeZenApiKey:e.opencodeZenApiKey,opencodeGoApiKey:e.opencodeGoApiKey,xaiApiKey:e.xaiApiKey,litellmApiKey:e.litellmApiKey,volcengineApiKey:e.volcengineApiKey,byteplusApiKey:e.byteplusApiKey,customBaseUrl:e.customBaseUrl,customApiKey:e.customApiKey,customModelId:e.customModelId,customProviderId:e.customProviderId,customCompatibility:e.customCompatibility,gatewayPort:typeof i==`number`&&Number.isFinite(i)?i:void 0,gatewayBind:e.gatewayBind,gatewayAuth:e.gatewayAuth,gatewayToken:e.gatewayToken,gatewayTokenRefEnv:e.gatewayTokenRefEnv,gatewayPassword:e.gatewayPassword,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken,tailscale:e.tailscale,tailscaleResetOnExit:!!e.tailscaleResetOnExit,reset:!!e.reset,resetScope:e.resetScope,installDaemon:r,daemonRuntime:e.daemonRuntime,skipChannels:!!e.skipChannels,skipSkills:!!e.skipSkills,skipSearch:!!e.skipSearch,skipHealth:!!e.skipHealth,skipUi:!!e.skipUi,nodeManager:e.nodeManager,json:!!e.json},t)})})}export{l as registerOnboardCommand};
1
+ import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./call-D5NJXFgu.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import{t as n}from"./links-pHmQCzdF.js";import{n as r}from"./cli-utils-BleB1eys.js";import"./progress-Cy6zNuIC.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./runtime-guard-BFK4A89C.js";import"./onboarding.secret-input-BbwX0Pao.js";import"./onboarding-enOGIWg6.js";import"./logging-Ai_SKvpp.js";import{t as i}from"./onboard-provider-auth-flags-CqbipO7D.js";import{n as a}from"./auth-choice-options-B3WQyS7I.js";import{t as o}from"./onboard-DbFfuUgN.js";function s(e,t){if(!e||typeof e!=`object`)return;let n=`getOptionValueSource`in e?e.getOptionValueSource:void 0;if(typeof n==`function`){if(n.call(e,`skipDaemon`)===`cli`)return!1;if(n.call(e,`installDaemon`)===`cli`)return!!t.installDaemon}}const c=a({includeLegacyAliases:!0,includeSkip:!0});function l(a){let l=a.command(`onboard`).description(`Interactive wizard to set up the gateway, workspace, and skills`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/onboard`,`docs.openclaw.ai/cli/onboard`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace)`).option(`--reset`,`Reset config + credentials + sessions before running wizard (workspace only with --reset-scope full)`).option(`--reset-scope <scope>`,`Reset scope: config|config+creds+sessions|full`).option(`--non-interactive`,`Run without prompts`,!1).option(`--accept-risk`,`Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)`,!1).option(`--flow <flow>`,`Wizard flow: quickstart|advanced|manual`).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--auth-choice <choice>`,`Auth: ${c}`).option(`--token-provider <id>`,`Token provider id (non-interactive; used with --auth-choice token)`).option(`--token <token>`,`Token value (non-interactive; used with --auth-choice token)`).option(`--token-profile-id <id>`,`Auth profile id (non-interactive; default: <provider>:manual)`).option(`--token-expires-in <duration>`,`Optional token expiry duration (e.g. 365d, 12h)`).option(`--secret-input-mode <mode>`,`API key persistence mode: plaintext|ref (default: plaintext)`).option(`--cloudflare-ai-gateway-account-id <id>`,`Cloudflare Account ID`).option(`--cloudflare-ai-gateway-gateway-id <id>`,`Cloudflare AI Gateway ID`);for(let e of i)l.option(e.cliOption,e.description);l.option(`--custom-base-url <url>`,`Custom provider base URL`).option(`--custom-api-key <key>`,`Custom provider API key (optional)`).option(`--custom-model-id <id>`,`Custom provider model ID`).option(`--custom-provider-id <id>`,`Custom provider ID (optional; auto-derived by default)`).option(`--custom-compatibility <mode>`,`Custom provider API compatibility: openai|anthropic (default: openai)`).option(`--gateway-port <port>`,`Gateway port`).option(`--gateway-bind <mode>`,`Gateway bind: loopback|tailnet|lan|auto|custom`).option(`--gateway-auth <mode>`,`Gateway auth: token|password`).option(`--gateway-token <token>`,`Gateway token (token auth)`).option(`--gateway-token-ref-env <name>`,`Gateway token SecretRef env var name (token auth; e.g. OPENCLAW_GATEWAY_TOKEN)`).option(`--gateway-password <password>`,`Gateway password (password auth)`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).option(`--tailscale <mode>`,`Tailscale: off|serve|funnel`).option(`--tailscale-reset-on-exit`,`Reset tailscale serve/funnel on exit`).option(`--install-daemon`,`Install gateway service`).option(`--no-install-daemon`,`Skip gateway service install`).option(`--skip-daemon`,`Skip gateway service install`).option(`--daemon-runtime <runtime>`,`Daemon runtime: node|bun`).option(`--skip-channels`,`Skip channel setup`).option(`--skip-skills`,`Skip skills setup`).option(`--skip-search`,`Skip search provider setup`).option(`--skip-health`,`Skip health check`).option(`--skip-ui`,`Skip Control UI/TUI prompts`).option(`--node-manager <name>`,`Node manager for skills: npm|pnpm|bun`).option(`--json`,`Output JSON summary`,!1),l.action(async(e,n)=>{await r(t,async()=>{let r=s(n,{installDaemon:!!e.installDaemon}),i=typeof e.gatewayPort==`string`?Number.parseInt(e.gatewayPort,10):void 0;await o({workspace:e.workspace,nonInteractive:!!e.nonInteractive,acceptRisk:!!e.acceptRisk,flow:e.flow,mode:e.mode,authChoice:e.authChoice,tokenProvider:e.tokenProvider,token:e.token,tokenProfileId:e.tokenProfileId,tokenExpiresIn:e.tokenExpiresIn,secretInputMode:e.secretInputMode,anthropicApiKey:e.anthropicApiKey,openaiApiKey:e.openaiApiKey,mistralApiKey:e.mistralApiKey,openrouterApiKey:e.openrouterApiKey,kilocodeApiKey:e.kilocodeApiKey,aiGatewayApiKey:e.aiGatewayApiKey,cloudflareAiGatewayAccountId:e.cloudflareAiGatewayAccountId,cloudflareAiGatewayGatewayId:e.cloudflareAiGatewayGatewayId,cloudflareAiGatewayApiKey:e.cloudflareAiGatewayApiKey,moonshotApiKey:e.moonshotApiKey,kimiCodeApiKey:e.kimiCodeApiKey,geminiApiKey:e.geminiApiKey,zaiApiKey:e.zaiApiKey,xiaomiApiKey:e.xiaomiApiKey,qianfanApiKey:e.qianfanApiKey,modelstudioApiKeyCn:e.modelstudioApiKeyCn,modelstudioApiKey:e.modelstudioApiKey,minimaxApiKey:e.minimaxApiKey,syntheticApiKey:e.syntheticApiKey,veniceApiKey:e.veniceApiKey,togetherApiKey:e.togetherApiKey,huggingfaceApiKey:e.huggingfaceApiKey,opencodeZenApiKey:e.opencodeZenApiKey,opencodeGoApiKey:e.opencodeGoApiKey,xaiApiKey:e.xaiApiKey,litellmApiKey:e.litellmApiKey,volcengineApiKey:e.volcengineApiKey,byteplusApiKey:e.byteplusApiKey,customBaseUrl:e.customBaseUrl,customApiKey:e.customApiKey,customModelId:e.customModelId,customProviderId:e.customProviderId,customCompatibility:e.customCompatibility,gatewayPort:typeof i==`number`&&Number.isFinite(i)?i:void 0,gatewayBind:e.gatewayBind,gatewayAuth:e.gatewayAuth,gatewayToken:e.gatewayToken,gatewayTokenRefEnv:e.gatewayTokenRefEnv,gatewayPassword:e.gatewayPassword,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken,tailscale:e.tailscale,tailscaleResetOnExit:!!e.tailscaleResetOnExit,reset:!!e.reset,resetScope:e.resetScope,installDaemon:r,daemonRuntime:e.daemonRuntime,skipChannels:!!e.skipChannels,skipSkills:!!e.skipSkills,skipSearch:!!e.skipSearch,skipHealth:!!e.skipHealth,skipUi:!!e.skipUi,nodeManager:e.nodeManager,json:!!e.json},t)})})}export{l as registerOnboardCommand};
@@ -1 +1 @@
1
- import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import{S as n}from"./utils-D1PlBTFH.js";import{Ws as r,nc as i}from"./model-selection-B2r_LMFb.js";import{D as a,v as o}from"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import{o as s}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./call-BQAAYLj3.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import{t as c}from"./links-jlebCPFf.js";import{n as l}from"./cli-utils-BY7dLMFy.js";import"./progress-Cyn5U745.js";import"./runtime-guard-D_eQ0X84.js";import{t as u}from"./command-options-Bq5nQxz6.js";import"./note-PBjA39mC.js";import"./clack-prompter-D1yxUXLU.js";import"./onboarding.secret-input-2vgEb3Ik.js";import"./onboarding-CSBYu9X2.js";import{n as d,t as f}from"./logging-Gwc2HmXy.js";import{t as p}from"./onboard-DtvFX5YS.js";import m from"json5";import h from"node:fs/promises";async function g(e){try{let t=await h.readFile(e,`utf-8`),n=m.parse(t);return n&&typeof n==`object`?{exists:!0,parsed:n}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function _(e,c=t){let l=typeof e?.workspace==`string`&&e.workspace.trim()?e.workspace.trim():void 0,u=r().configPath,p=await g(u),m=p.parsed,_=m.agents?.defaults??{},v=l??_.workspace??o,y={...m,agents:{...m.agents,defaults:{..._,workspace:v}},gateway:{...m.gateway,mode:m.gateway?.mode??`local`}};if(!p.exists||_.workspace!==v||m.gateway?.mode!==y.gateway?.mode)if(await i(y),!p.exists)c.log(`Wrote ${f(u)}`);else{let e=[];_.workspace!==v&&e.push(`set agents.defaults.workspace`),m.gateway?.mode!==y.gateway?.mode&&e.push(`set gateway.mode`),d(c,{path:u,suffix:e.length>0?`(${e.join(`, `)})`:void 0})}else c.log(`Config OK: ${f(u)}`);let b=await a({dir:v,ensureBootstrapFiles:!y.agents?.defaults?.skipBootstrap});c.log(`Workspace OK: ${n(b.dir)}`);let x=s();await h.mkdir(x,{recursive:!0}),c.log(`Sessions OK: ${n(x)}`)}function v(n){n.command(`setup`).description(`Initialize ~/.qbotclaw/openclaw.json and the agent workspace`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/setup`,`docs.openclaw.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(e,n)=>{await l(t,async()=>{let r=u(n,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(e.wizard||r){await p({workspace:e.workspace,nonInteractive:!!e.nonInteractive,mode:e.mode,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken},t);return}await _({workspace:e.workspace},t)})})}export{v as registerSetupCommand};
1
+ import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import{S as n}from"./utils-D1PlBTFH.js";import{Ws as r,nc as i}from"./model-selection-B2r_LMFb.js";import{D as a,v as o}from"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import{o as s}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./call-BQAAYLj3.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import{t as c}from"./links-jlebCPFf.js";import{n as l}from"./cli-utils-BY7dLMFy.js";import"./progress-Cyn5U745.js";import"./runtime-guard-D_eQ0X84.js";import{t as u}from"./command-options-Bq5nQxz6.js";import"./note-PBjA39mC.js";import"./clack-prompter-D1yxUXLU.js";import"./onboarding.secret-input-2vgEb3Ik.js";import"./onboarding-DVLGoQj1.js";import{n as d,t as f}from"./logging-Gwc2HmXy.js";import{t as p}from"./onboard-CkDnD6Va.js";import m from"json5";import h from"node:fs/promises";async function g(e){try{let t=await h.readFile(e,`utf-8`),n=m.parse(t);return n&&typeof n==`object`?{exists:!0,parsed:n}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function _(e,c=t){let l=typeof e?.workspace==`string`&&e.workspace.trim()?e.workspace.trim():void 0,u=r().configPath,p=await g(u),m=p.parsed,_=m.agents?.defaults??{},v=l??_.workspace??o,y={...m,agents:{...m.agents,defaults:{..._,workspace:v}},gateway:{...m.gateway,mode:m.gateway?.mode??`local`}};if(!p.exists||_.workspace!==v||m.gateway?.mode!==y.gateway?.mode)if(await i(y),!p.exists)c.log(`Wrote ${f(u)}`);else{let e=[];_.workspace!==v&&e.push(`set agents.defaults.workspace`),m.gateway?.mode!==y.gateway?.mode&&e.push(`set gateway.mode`),d(c,{path:u,suffix:e.length>0?`(${e.join(`, `)})`:void 0})}else c.log(`Config OK: ${f(u)}`);let b=await a({dir:v,ensureBootstrapFiles:!y.agents?.defaults?.skipBootstrap});c.log(`Workspace OK: ${n(b.dir)}`);let x=s();await h.mkdir(x,{recursive:!0}),c.log(`Sessions OK: ${n(x)}`)}function v(n){n.command(`setup`).description(`Initialize ~/.qbotclaw/openclaw.json and the agent workspace`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/setup`,`docs.openclaw.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(e,n)=>{await l(t,async()=>{let r=u(n,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(e.wizard||r){await p({workspace:e.workspace,nonInteractive:!!e.nonInteractive,mode:e.mode,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken},t);return}await _({workspace:e.workspace},t)})})}export{v as registerSetupCommand};
@@ -1 +1 @@
1
- import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bo as n,Oo as r}from"./auth-profiles-e3SmOvON.js";import{D as i,v as a}from"./agent-scope-BKE4M04k.js";import{x as o}from"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import{o as s}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./call-D5NJXFgu.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import{t as c}from"./links-pHmQCzdF.js";import{n as l}from"./cli-utils-BleB1eys.js";import"./progress-Cy6zNuIC.js";import{t as u}from"./command-options-BpOUDl2S.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./runtime-guard-BFK4A89C.js";import"./onboarding.secret-input-BbwX0Pao.js";import"./onboarding-DTE81H7h.js";import{n as d,t as f}from"./logging-Ai_SKvpp.js";import{t as p}from"./onboard-DKohpAhM.js";import m from"json5";import h from"node:fs/promises";async function g(e){try{let t=await h.readFile(e,`utf-8`),n=m.parse(t);return n&&typeof n==`object`?{exists:!0,parsed:n}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function _(e,c=t){let l=typeof e?.workspace==`string`&&e.workspace.trim()?e.workspace.trim():void 0,u=r().configPath,p=await g(u),m=p.parsed,_=m.agents?.defaults??{},v=l??_.workspace??a,y={...m,agents:{...m.agents,defaults:{..._,workspace:v}},gateway:{...m.gateway,mode:m.gateway?.mode??`local`}};if(!p.exists||_.workspace!==v||m.gateway?.mode!==y.gateway?.mode)if(await n(y),!p.exists)c.log(`Wrote ${f(u)}`);else{let e=[];_.workspace!==v&&e.push(`set agents.defaults.workspace`),m.gateway?.mode!==y.gateway?.mode&&e.push(`set gateway.mode`),d(c,{path:u,suffix:e.length>0?`(${e.join(`, `)})`:void 0})}else c.log(`Config OK: ${f(u)}`);let b=await i({dir:v,ensureBootstrapFiles:!y.agents?.defaults?.skipBootstrap});c.log(`Workspace OK: ${o(b.dir)}`);let x=s();await h.mkdir(x,{recursive:!0}),c.log(`Sessions OK: ${o(x)}`)}function v(n){n.command(`setup`).description(`Initialize ~/.qbotclaw/openclaw.json and the agent workspace`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/setup`,`docs.openclaw.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(e,n)=>{await l(t,async()=>{let r=u(n,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(e.wizard||r){await p({workspace:e.workspace,nonInteractive:!!e.nonInteractive,mode:e.mode,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken},t);return}await _({workspace:e.workspace},t)})})}export{v as registerSetupCommand};
1
+ import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bo as n,Oo as r}from"./auth-profiles-e3SmOvON.js";import{D as i,v as a}from"./agent-scope-BKE4M04k.js";import{x as o}from"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import{o as s}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./call-D5NJXFgu.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import{t as c}from"./links-pHmQCzdF.js";import{n as l}from"./cli-utils-BleB1eys.js";import"./progress-Cy6zNuIC.js";import{t as u}from"./command-options-BpOUDl2S.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./runtime-guard-BFK4A89C.js";import"./onboarding.secret-input-BbwX0Pao.js";import"./onboarding-enOGIWg6.js";import{n as d,t as f}from"./logging-Ai_SKvpp.js";import{t as p}from"./onboard-DbFfuUgN.js";import m from"json5";import h from"node:fs/promises";async function g(e){try{let t=await h.readFile(e,`utf-8`),n=m.parse(t);return n&&typeof n==`object`?{exists:!0,parsed:n}:{exists:!0,parsed:{}}}catch{return{exists:!1,parsed:{}}}}async function _(e,c=t){let l=typeof e?.workspace==`string`&&e.workspace.trim()?e.workspace.trim():void 0,u=r().configPath,p=await g(u),m=p.parsed,_=m.agents?.defaults??{},v=l??_.workspace??a,y={...m,agents:{...m.agents,defaults:{..._,workspace:v}},gateway:{...m.gateway,mode:m.gateway?.mode??`local`}};if(!p.exists||_.workspace!==v||m.gateway?.mode!==y.gateway?.mode)if(await n(y),!p.exists)c.log(`Wrote ${f(u)}`);else{let e=[];_.workspace!==v&&e.push(`set agents.defaults.workspace`),m.gateway?.mode!==y.gateway?.mode&&e.push(`set gateway.mode`),d(c,{path:u,suffix:e.length>0?`(${e.join(`, `)})`:void 0})}else c.log(`Config OK: ${f(u)}`);let b=await i({dir:v,ensureBootstrapFiles:!y.agents?.defaults?.skipBootstrap});c.log(`Workspace OK: ${o(b.dir)}`);let x=s();await h.mkdir(x,{recursive:!0}),c.log(`Sessions OK: ${o(x)}`)}function v(n){n.command(`setup`).description(`Initialize ~/.qbotclaw/openclaw.json and the agent workspace`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${c(`/cli/setup`,`docs.openclaw.ai/cli/setup`)}\n`).option(`--workspace <dir>`,`Agent workspace directory (default: ~/.qbotclaw/workspace; stored as agents.defaults.workspace)`).option(`--wizard`,`Run the interactive onboarding wizard`,!1).option(`--non-interactive`,`Run the wizard without prompts`,!1).option(`--mode <mode>`,`Wizard mode: local|remote`).option(`--remote-url <url>`,`Remote Gateway WebSocket URL`).option(`--remote-token <token>`,`Remote Gateway token (optional)`).action(async(e,n)=>{await l(t,async()=>{let r=u(n,[`wizard`,`nonInteractive`,`mode`,`remoteUrl`,`remoteToken`]);if(e.wizard||r){await p({workspace:e.workspace,nonInteractive:!!e.nonInteractive,mode:e.mode,remoteUrl:e.remoteUrl,remoteToken:e.remoteToken},t);return}await _({workspace:e.workspace},t)})})}export{v as registerSetupCommand};
@@ -1 +1 @@
1
- import{A as e,k as t,p as n,w as r}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bt as i,Ht as a,Lt as o,Vt as s,jo as c,jt as l,zt as u}from"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-DutiJiBy.js";import{n as d,r as f}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as p}from"./links-pHmQCzdF.js";import{n as m}from"./cli-utils-BleB1eys.js";import{t as h}from"./help-format-BSNXPQuE.js";import"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./skills-status-Bzj-kJgo.js";import"./dangerous-tools-CFRYQJ6V.js";import"./skill-scanner-B8TBRXeT.js";import"./issue-format-DRHlQPnX.js";import"./channels-status-issues-RPxMYADM.js";import{n as g}from"./helpers-COz1ghcB.js";import"./systemd-2rjzkWWr.js";import"./service-CtJtO2Jl.js";import"./probe-auth-DseDsvEH.js";import"./diagnostics-DnbLdEsy.js";import"./table-BiqW4yI5.js";import{n as _}from"./status-CUDtNIry.js";import{r as v}from"./health-vy-C49Dw.js";import"./channel-account-context-DuBGrKuL.js";import"./node-command-policy-DcnzYib1.js";import"./audit-Brtj4GDg.js";import"./node-service-BAX4XFhG.js";import"./status.update-CdMzKwdx.js";import{a as y,c as b,i as x,n as S,o as C,r as w,s as T,sessionsCommand as E,t as D}from"./sessions-CgJjw9U5.js";import O from"node:fs";function k(e){return e.missingKeys.has(e.key)?`prune-missing`:e.staleKeys.has(e.key)?`prune-stale`:e.cappedKeys.has(e.key)?`cap-overflow`:e.budgetEvictedKeys.has(e.key)?`evict-budget`:`keep`}function A(t,n){let r=t.padEnd(12);return n?t===`keep`?e.muted(r):t===`prune-missing`?e.error(r):t===`prune-stale`?e.warn(r):t===`cap-overflow`?e.accentBright(r):e.error(r):r}function j(e){return T(e.beforeStore).map(t=>({...t,action:k({key:t.key,missingKeys:e.missingKeys,staleKeys:e.staleKeys,cappedKeys:e.cappedKeys,budgetEvictedKeys:e.budgetEvictedKeys})}))}function M(e){let t=f({storePath:e.storePath}),n=0;for(let[r,i]of Object.entries(e.store)){if(!i?.sessionId)continue;let a=d(i.sessionId,i,t);O.existsSync(a)||(delete e.store[r],n+=1,e.onPruned?.(r))}return n}async function N(e){let t=s(),n=l(e.target.storePath,{skipCache:!0}),r=structuredClone(n),o=new Set,c=new Set,d=new Set,f=e.fixMissing===!0?M({store:r,storePath:e.target.storePath,onPruned:e=>{d.add(e)}}):0,p=i(r,t.pruneAfterMs,{log:!1,onPruned:({key:e})=>{o.add(e)}}),m=u(r,t.maxEntries,{log:!1,onCapped:({key:e})=>{c.add(e)}}),h=structuredClone(r),g=await a({store:r,storePath:e.target.storePath,activeSessionKey:e.activeKey,maintenance:t,warnOnly:!1,dryRun:!0}),_=new Set;for(let e of Object.keys(h))Object.hasOwn(r,e)||_.add(e);let v=Object.keys(n).length,y=Object.keys(r).length,b=f>0||p>0||m>0||(g?.removedEntries??0)>0||(g?.removedFiles??0)>0;return{summary:{agentId:e.target.agentId,storePath:e.target.storePath,mode:e.mode,dryRun:e.dryRun,beforeCount:v,afterCount:y,missing:f,pruned:p,capped:m,diskBudget:g,wouldMutate:b},actionRows:j({beforeStore:n,staleKeys:o,cappedKeys:c,budgetEvictedKeys:_,missingKeys:d})}}function P(n){let r=t();if(n.showAgentHeader&&n.runtime.log(`Agent: ${n.summary.agentId}`),n.runtime.log(`Session store: ${n.summary.storePath}`),n.runtime.log(`Maintenance mode: ${n.summary.mode}`),n.runtime.log(`Entries: ${n.summary.beforeCount} -> ${n.summary.afterCount} (remove ${n.summary.beforeCount-n.summary.afterCount})`),n.runtime.log(`Would prune missing transcripts: ${n.summary.missing}`),n.runtime.log(`Would prune stale: ${n.summary.pruned}`),n.runtime.log(`Would cap overflow: ${n.summary.capped}`),n.summary.diskBudget&&n.runtime.log(`Would enforce disk budget: ${n.summary.diskBudget.totalBytesBefore} -> ${n.summary.diskBudget.totalBytesAfter} bytes (files ${n.summary.diskBudget.removedFiles}, entries ${n.summary.diskBudget.removedEntries})`),n.actionRows.length===0)return;n.runtime.log(``),n.runtime.log(`Planned session actions:`);let i=[`Action`.padEnd(12),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Flags`].join(` `);n.runtime.log(r?e.heading(i):i);for(let e of n.actionRows){let t=C(n.cfg,e,n.displayDefaults),i=[A(e.action,r),w(e.key,r),D(e.updatedAt,r),x(t,r),S(e,r)].join(` `);n.runtime.log(i.trimEnd())}}async function F(e,t){let n=c(),r=y(n),i=e.enforce?`enforce`:s().mode,a=b({cfg:n,opts:{store:e.store,agent:e.agent,allAgents:e.allAgents},runtime:t});if(!a)return;let u=[];for(let t of a){let n=await N({target:t,mode:i,dryRun:!!e.dryRun,activeKey:e.activeKey,fixMissing:!!e.fixMissing});u.push(n)}if(e.dryRun){if(e.json){if(u.length===1){t.log(JSON.stringify(u[0]?.summary??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!0,stores:u.map(e=>e.summary)},null,2));return}for(let e=0;e<u.length;e+=1){let i=u[e];e>0&&t.log(``),P({cfg:n,summary:i.summary,actionRows:i.actionRows,displayDefaults:r,runtime:t,showAgentHeader:u.length>1})}return}let d=[];for(let t of a){let n={current:null},r=await o(t.storePath,async n=>e.fixMissing?M({store:n,storePath:t.storePath}):0,{activeSessionKey:e.activeKey,maintenanceOverride:{mode:i},onMaintenanceApplied:e=>{n.current=e}}),a=l(t.storePath,{skipCache:!0}),s=u.find(e=>e.summary.storePath===t.storePath),c=n.current,f=c===null?{...s?.summary??{agentId:t.agentId,storePath:t.storePath,mode:i,dryRun:!1,beforeCount:0,afterCount:0,missing:0,pruned:0,capped:0,diskBudget:null,wouldMutate:!1},dryRun:!1,applied:!0,appliedCount:Object.keys(a).length}:{agentId:t.agentId,storePath:t.storePath,mode:c.mode,dryRun:!1,beforeCount:c.beforeCount,afterCount:c.afterCount,missing:r,pruned:c.pruned,capped:c.capped,diskBudget:c.diskBudget,wouldMutate:r>0||c.pruned>0||c.capped>0||(c.diskBudget?.removedEntries??0)>0||(c.diskBudget?.removedFiles??0)>0,applied:!0,appliedCount:Object.keys(a).length};d.push(f)}if(e.json){if(d.length===1){t.log(JSON.stringify(d[0]??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!1,stores:d},null,2));return}for(let e=0;e<d.length;e+=1){let n=d[e];e>0&&t.log(``),d.length>1&&t.log(`Agent: ${n.agentId}`),t.log(`Session store: ${n.storePath}`),t.log(`Applied maintenance. Current entries: ${n.appliedCount??0}`)}}function I(e){return!!(e.verbose||e.debug)}function L(e){let t=g(e);return e!==void 0&&t===void 0?(n.error(`--timeout must be a positive integer (milliseconds)`),n.exit(1),null):t}async function R(e,t){let i=I(e);r(i);let a=L(e.timeout);a!==null&&await m(n,async()=>{await t({verbose:i,timeoutMs:a})})}function z(t){t.command(`status`).description(`Show channel health and recent session recipients`).option(`--json`,`Output JSON instead of text`,!1).option(`--all`,`Full diagnosis (read-only, pasteable)`,!1).option(`--usage`,`Show model provider usage/quota snapshots`,!1).option(`--deep`,`Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)`,!1).option(`--timeout <ms>`,`Probe timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw status`,`Show channel health + session summary.`],[`openclaw status --all`,`Full diagnosis (read-only).`],[`openclaw status --json`,`Machine-readable output.`],[`openclaw status --usage`,`Show model provider usage/quota snapshots.`],[`openclaw status --deep`,`Run channel probes (WA + Telegram + Discord + Slack + Signal).`],[`openclaw status --deep --timeout 5000`,`Tighten probe timeout.`]])}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/status`,`docs.openclaw.ai/cli/status`)}\n`).action(async e=>{await R(e,async({verbose:t,timeoutMs:r})=>{await _({json:!!e.json,all:!!e.all,deep:!!e.deep,usage:!!e.usage,timeoutMs:r,verbose:t},n)})}),t.command(`health`).description(`Fetch health from the running gateway`).option(`--json`,`Output JSON instead of text`,!1).option(`--timeout <ms>`,`Connection timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/health`,`docs.openclaw.ai/cli/health`)}\n`).action(async e=>{await R(e,async({verbose:t,timeoutMs:r})=>{await v({json:!!e.json,timeoutMs:r,verbose:t},n)})});let i=t.command(`sessions`).description(`List stored conversation sessions`).option(`--json`,`Output as JSON`,!1).option(`--verbose`,`Verbose logging`,!1).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to inspect (default: configured default agent)`).option(`--all-agents`,`Aggregate sessions across all configured agents`,!1).option(`--active <minutes>`,`Only show sessions updated within the past N minutes`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw sessions`,`List all sessions.`],[`openclaw sessions --agent work`,`List sessions for one agent.`],[`openclaw sessions --all-agents`,`Aggregate sessions across agents.`],[`openclaw sessions --active 120`,`Only last 2 hours.`],[`openclaw sessions --json`,`Machine-readable output.`],[`openclaw sessions --store ./tmp/sessions.json`,`Use a specific session store.`]])}\n\n${e.muted(`Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.`)}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/sessions`,`docs.openclaw.ai/cli/sessions`)}\n`).action(async e=>{r(!!e.verbose),await E({json:!!e.json,store:e.store,agent:e.agent,allAgents:!!e.allAgents,active:e.active},n)});i.enablePositionalOptions(),i.command(`cleanup`).description(`Run session-store maintenance now`).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to maintain (default: configured default agent)`).option(`--all-agents`,`Run maintenance across all configured agents`,!1).option(`--dry-run`,`Preview maintenance actions without writing`,!1).option(`--enforce`,`Apply maintenance even when configured mode is warn`,!1).option(`--fix-missing`,`Remove store entries whose transcript files are missing (bypasses age/count retention)`,!1).option(`--active-key <key>`,`Protect this session key from budget-eviction`).option(`--json`,`Output JSON`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw sessions cleanup --dry-run`,`Preview stale/cap cleanup.`],[`openclaw sessions cleanup --dry-run --fix-missing`,`Also preview pruning entries with missing transcript files.`],[`openclaw sessions cleanup --enforce`,`Apply maintenance now.`],[`openclaw sessions cleanup --agent work --dry-run`,`Preview one agent store.`],[`openclaw sessions cleanup --all-agents --dry-run`,`Preview all agent stores.`],[`openclaw sessions cleanup --enforce --store ./tmp/sessions.json`,`Use a specific store.`]])}`).action(async(e,t)=>{let r=t.parent?.opts();await m(n,async()=>{await F({store:e.store??r?.store,agent:e.agent??r?.agent,allAgents:!!(e.allAgents||r?.allAgents),dryRun:!!e.dryRun,enforce:!!e.enforce,fixMissing:!!e.fixMissing,activeKey:e.activeKey,json:!!(e.json||r?.json)},n)})})}export{z as registerStatusHealthSessionsCommands};
1
+ import{A as e,k as t,p as n,w as r}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bt as i,Ht as a,Lt as o,Vt as s,jo as c,jt as l,zt as u}from"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-B5m4267P.js";import{n as d,r as f}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as p}from"./links-pHmQCzdF.js";import{n as m}from"./cli-utils-BleB1eys.js";import{t as h}from"./help-format-BSNXPQuE.js";import"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./skills-status-Bzj-kJgo.js";import"./dangerous-tools-CFRYQJ6V.js";import"./skill-scanner-B8TBRXeT.js";import"./issue-format-DRHlQPnX.js";import"./channels-status-issues-RPxMYADM.js";import{n as g}from"./helpers-COz1ghcB.js";import"./systemd-2rjzkWWr.js";import"./service-CtJtO2Jl.js";import"./probe-auth-DseDsvEH.js";import"./diagnostics-DnbLdEsy.js";import"./table-BiqW4yI5.js";import{n as _}from"./status-DiHX2LOf.js";import{r as v}from"./health-CIBrUBhW.js";import"./channel-account-context-DuBGrKuL.js";import"./node-command-policy-DcnzYib1.js";import"./audit-Brtj4GDg.js";import"./node-service-BAX4XFhG.js";import"./status.update-CdMzKwdx.js";import{a as y,c as b,i as x,n as S,o as C,r as w,s as T,sessionsCommand as E,t as D}from"./sessions-CgJjw9U5.js";import O from"node:fs";function k(e){return e.missingKeys.has(e.key)?`prune-missing`:e.staleKeys.has(e.key)?`prune-stale`:e.cappedKeys.has(e.key)?`cap-overflow`:e.budgetEvictedKeys.has(e.key)?`evict-budget`:`keep`}function A(t,n){let r=t.padEnd(12);return n?t===`keep`?e.muted(r):t===`prune-missing`?e.error(r):t===`prune-stale`?e.warn(r):t===`cap-overflow`?e.accentBright(r):e.error(r):r}function j(e){return T(e.beforeStore).map(t=>({...t,action:k({key:t.key,missingKeys:e.missingKeys,staleKeys:e.staleKeys,cappedKeys:e.cappedKeys,budgetEvictedKeys:e.budgetEvictedKeys})}))}function M(e){let t=f({storePath:e.storePath}),n=0;for(let[r,i]of Object.entries(e.store)){if(!i?.sessionId)continue;let a=d(i.sessionId,i,t);O.existsSync(a)||(delete e.store[r],n+=1,e.onPruned?.(r))}return n}async function N(e){let t=s(),n=l(e.target.storePath,{skipCache:!0}),r=structuredClone(n),o=new Set,c=new Set,d=new Set,f=e.fixMissing===!0?M({store:r,storePath:e.target.storePath,onPruned:e=>{d.add(e)}}):0,p=i(r,t.pruneAfterMs,{log:!1,onPruned:({key:e})=>{o.add(e)}}),m=u(r,t.maxEntries,{log:!1,onCapped:({key:e})=>{c.add(e)}}),h=structuredClone(r),g=await a({store:r,storePath:e.target.storePath,activeSessionKey:e.activeKey,maintenance:t,warnOnly:!1,dryRun:!0}),_=new Set;for(let e of Object.keys(h))Object.hasOwn(r,e)||_.add(e);let v=Object.keys(n).length,y=Object.keys(r).length,b=f>0||p>0||m>0||(g?.removedEntries??0)>0||(g?.removedFiles??0)>0;return{summary:{agentId:e.target.agentId,storePath:e.target.storePath,mode:e.mode,dryRun:e.dryRun,beforeCount:v,afterCount:y,missing:f,pruned:p,capped:m,diskBudget:g,wouldMutate:b},actionRows:j({beforeStore:n,staleKeys:o,cappedKeys:c,budgetEvictedKeys:_,missingKeys:d})}}function P(n){let r=t();if(n.showAgentHeader&&n.runtime.log(`Agent: ${n.summary.agentId}`),n.runtime.log(`Session store: ${n.summary.storePath}`),n.runtime.log(`Maintenance mode: ${n.summary.mode}`),n.runtime.log(`Entries: ${n.summary.beforeCount} -> ${n.summary.afterCount} (remove ${n.summary.beforeCount-n.summary.afterCount})`),n.runtime.log(`Would prune missing transcripts: ${n.summary.missing}`),n.runtime.log(`Would prune stale: ${n.summary.pruned}`),n.runtime.log(`Would cap overflow: ${n.summary.capped}`),n.summary.diskBudget&&n.runtime.log(`Would enforce disk budget: ${n.summary.diskBudget.totalBytesBefore} -> ${n.summary.diskBudget.totalBytesAfter} bytes (files ${n.summary.diskBudget.removedFiles}, entries ${n.summary.diskBudget.removedEntries})`),n.actionRows.length===0)return;n.runtime.log(``),n.runtime.log(`Planned session actions:`);let i=[`Action`.padEnd(12),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Flags`].join(` `);n.runtime.log(r?e.heading(i):i);for(let e of n.actionRows){let t=C(n.cfg,e,n.displayDefaults),i=[A(e.action,r),w(e.key,r),D(e.updatedAt,r),x(t,r),S(e,r)].join(` `);n.runtime.log(i.trimEnd())}}async function F(e,t){let n=c(),r=y(n),i=e.enforce?`enforce`:s().mode,a=b({cfg:n,opts:{store:e.store,agent:e.agent,allAgents:e.allAgents},runtime:t});if(!a)return;let u=[];for(let t of a){let n=await N({target:t,mode:i,dryRun:!!e.dryRun,activeKey:e.activeKey,fixMissing:!!e.fixMissing});u.push(n)}if(e.dryRun){if(e.json){if(u.length===1){t.log(JSON.stringify(u[0]?.summary??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!0,stores:u.map(e=>e.summary)},null,2));return}for(let e=0;e<u.length;e+=1){let i=u[e];e>0&&t.log(``),P({cfg:n,summary:i.summary,actionRows:i.actionRows,displayDefaults:r,runtime:t,showAgentHeader:u.length>1})}return}let d=[];for(let t of a){let n={current:null},r=await o(t.storePath,async n=>e.fixMissing?M({store:n,storePath:t.storePath}):0,{activeSessionKey:e.activeKey,maintenanceOverride:{mode:i},onMaintenanceApplied:e=>{n.current=e}}),a=l(t.storePath,{skipCache:!0}),s=u.find(e=>e.summary.storePath===t.storePath),c=n.current,f=c===null?{...s?.summary??{agentId:t.agentId,storePath:t.storePath,mode:i,dryRun:!1,beforeCount:0,afterCount:0,missing:0,pruned:0,capped:0,diskBudget:null,wouldMutate:!1},dryRun:!1,applied:!0,appliedCount:Object.keys(a).length}:{agentId:t.agentId,storePath:t.storePath,mode:c.mode,dryRun:!1,beforeCount:c.beforeCount,afterCount:c.afterCount,missing:r,pruned:c.pruned,capped:c.capped,diskBudget:c.diskBudget,wouldMutate:r>0||c.pruned>0||c.capped>0||(c.diskBudget?.removedEntries??0)>0||(c.diskBudget?.removedFiles??0)>0,applied:!0,appliedCount:Object.keys(a).length};d.push(f)}if(e.json){if(d.length===1){t.log(JSON.stringify(d[0]??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!1,stores:d},null,2));return}for(let e=0;e<d.length;e+=1){let n=d[e];e>0&&t.log(``),d.length>1&&t.log(`Agent: ${n.agentId}`),t.log(`Session store: ${n.storePath}`),t.log(`Applied maintenance. Current entries: ${n.appliedCount??0}`)}}function I(e){return!!(e.verbose||e.debug)}function L(e){let t=g(e);return e!==void 0&&t===void 0?(n.error(`--timeout must be a positive integer (milliseconds)`),n.exit(1),null):t}async function R(e,t){let i=I(e);r(i);let a=L(e.timeout);a!==null&&await m(n,async()=>{await t({verbose:i,timeoutMs:a})})}function z(t){t.command(`status`).description(`Show channel health and recent session recipients`).option(`--json`,`Output JSON instead of text`,!1).option(`--all`,`Full diagnosis (read-only, pasteable)`,!1).option(`--usage`,`Show model provider usage/quota snapshots`,!1).option(`--deep`,`Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)`,!1).option(`--timeout <ms>`,`Probe timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw status`,`Show channel health + session summary.`],[`openclaw status --all`,`Full diagnosis (read-only).`],[`openclaw status --json`,`Machine-readable output.`],[`openclaw status --usage`,`Show model provider usage/quota snapshots.`],[`openclaw status --deep`,`Run channel probes (WA + Telegram + Discord + Slack + Signal).`],[`openclaw status --deep --timeout 5000`,`Tighten probe timeout.`]])}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/status`,`docs.openclaw.ai/cli/status`)}\n`).action(async e=>{await R(e,async({verbose:t,timeoutMs:r})=>{await _({json:!!e.json,all:!!e.all,deep:!!e.deep,usage:!!e.usage,timeoutMs:r,verbose:t},n)})}),t.command(`health`).description(`Fetch health from the running gateway`).option(`--json`,`Output JSON instead of text`,!1).option(`--timeout <ms>`,`Connection timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/health`,`docs.openclaw.ai/cli/health`)}\n`).action(async e=>{await R(e,async({verbose:t,timeoutMs:r})=>{await v({json:!!e.json,timeoutMs:r,verbose:t},n)})});let i=t.command(`sessions`).description(`List stored conversation sessions`).option(`--json`,`Output as JSON`,!1).option(`--verbose`,`Verbose logging`,!1).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to inspect (default: configured default agent)`).option(`--all-agents`,`Aggregate sessions across all configured agents`,!1).option(`--active <minutes>`,`Only show sessions updated within the past N minutes`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw sessions`,`List all sessions.`],[`openclaw sessions --agent work`,`List sessions for one agent.`],[`openclaw sessions --all-agents`,`Aggregate sessions across agents.`],[`openclaw sessions --active 120`,`Only last 2 hours.`],[`openclaw sessions --json`,`Machine-readable output.`],[`openclaw sessions --store ./tmp/sessions.json`,`Use a specific session store.`]])}\n\n${e.muted(`Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.`)}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${p(`/cli/sessions`,`docs.openclaw.ai/cli/sessions`)}\n`).action(async e=>{r(!!e.verbose),await E({json:!!e.json,store:e.store,agent:e.agent,allAgents:!!e.allAgents,active:e.active},n)});i.enablePositionalOptions(),i.command(`cleanup`).description(`Run session-store maintenance now`).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to maintain (default: configured default agent)`).option(`--all-agents`,`Run maintenance across all configured agents`,!1).option(`--dry-run`,`Preview maintenance actions without writing`,!1).option(`--enforce`,`Apply maintenance even when configured mode is warn`,!1).option(`--fix-missing`,`Remove store entries whose transcript files are missing (bypasses age/count retention)`,!1).option(`--active-key <key>`,`Protect this session key from budget-eviction`).option(`--json`,`Output JSON`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${h([[`openclaw sessions cleanup --dry-run`,`Preview stale/cap cleanup.`],[`openclaw sessions cleanup --dry-run --fix-missing`,`Also preview pruning entries with missing transcript files.`],[`openclaw sessions cleanup --enforce`,`Apply maintenance now.`],[`openclaw sessions cleanup --agent work --dry-run`,`Preview one agent store.`],[`openclaw sessions cleanup --all-agents --dry-run`,`Preview all agent stores.`],[`openclaw sessions cleanup --enforce --store ./tmp/sessions.json`,`Use a specific store.`]])}`).action(async(e,t)=>{let r=t.parent?.opts();await m(n,async()=>{await F({store:e.store??r?.store,agent:e.agent??r?.agent,allAgents:!!(e.allAgents||r?.allAgents),dryRun:!!e.dryRun,enforce:!!e.enforce,fixMissing:!!e.fixMissing,activeKey:e.activeKey,json:!!(e.json||r?.json)},n)})})}export{z as registerStatusHealthSessionsCommands};
@@ -1 +1 @@
1
- import"./paths-B4IRk3wi.js";import{A as e,k as t,p as n,w as r,y as i}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import{$n as a,Fr as o,Hn as s,Jn as c,Qn as l,Xn as u,Zn as d,h as f,qs as p}from"./model-selection-B2r_LMFb.js";import{D as m,P as h,tn as g}from"./reply-DHtpIWpD.js";import{f as _,r as v}from"./agent-scope-DW6ZDCxj.js";import{E as y,c as b}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import{c as x,n as S,r as C}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import{n as ee}from"./format-relative-B9pSIdGe.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as w}from"./links-jlebCPFf.js";import{n as T}from"./cli-utils-BY7dLMFy.js";import{t as E}from"./help-format-Cav62lfS.js";import"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import{n as D}from"./helpers-Cp8gcO6u.js";import"./skills-status-CId4JgRV.js";import"./dangerous-tools-oYCu5wfC.js";import"./skill-scanner-BKP1PUAv.js";import"./issue-format-BM2kAbbw.js";import"./channels-status-issues-hU0uOU87.js";import"./systemd-Dp59-Na4.js";import"./service-BMP0stI7.js";import"./probe-auth-CegC2fDL.js";import"./diagnostics-DxEtFsuc.js";import"./table-CWiulZxe.js";import{t as O}from"./status-OB55GG25.js";import{r as k}from"./health-DWAEDZ8p.js";import"./channel-account-context-kX_5d8CX.js";import"./node-command-policy-Ciy_eQTw.js";import"./audit-kkWTh8s9.js";import"./node-service-CIS6wvT6.js";import"./status.update-ioEIhrgk.js";import A from"node:fs";function j(e){let t=new Map;for(let n of e)t.has(n.storePath)||t.set(n.storePath,n);return[...t.values()]}function M(e,t){let n=_(e),r=!!t.agent?.trim(),i=t.allAgents===!0;if(r&&i)throw Error(`--agent and --all-agents cannot be used together`);if(t.store&&(r||i))throw Error(`--store cannot be combined with --agent or --all-agents`);if(t.store)return[{agentId:n,storePath:x(t.store,{agentId:n})}];if(i)return j(v(e).map(t=>({agentId:t,storePath:x(e.session?.store,{agentId:t})})));if(r){let n=v(e),r=b(t.agent??``);if(!n.includes(r))throw Error(`Unknown agent id "${t.agent}". Use "openclaw agents list" to see configured agents.`);return[{agentId:r,storePath:x(e.session?.store,{agentId:r})}]}return[{agentId:n,storePath:x(e.session?.store,{agentId:n})}]}function N(e){try{return M(e.cfg,e.opts)}catch(t){return e.runtime.error(t instanceof Error?t.message:String(t)),e.runtime.exit(1),null}}function P(e){return Object.entries(e).map(([e,t])=>{let n=t?.updatedAt??null;return{key:e,updatedAt:n,ageMs:n?Date.now()-n:null,sessionId:t?.sessionId,systemSent:t?.systemSent,abortedLastRun:t?.abortedLastRun,thinkingLevel:t?.thinkingLevel,verboseLevel:t?.verboseLevel,reasoningLevel:t?.reasoningLevel,elevatedLevel:t?.elevatedLevel,responseUsage:t?.responseUsage,groupActivation:t?.groupActivation,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens,totalTokens:t?.totalTokens,totalTokensFresh:t?.totalTokensFresh,model:t?.model,modelProvider:t?.modelProvider,providerOverride:t?.providerOverride,modelOverride:t?.modelOverride,contextTokens:t?.contextTokens}}).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0))}function F(e){return{model:f({cfg:e,defaultProvider:`anthropic`,defaultModel:`claude-opus-4-6`}).model??`claude-opus-4-6`}}function I(e,t,n){return h(e,t,y(t.key)?.agentId).model??n.model}function L(e){return e.length<=26?e:`${e.slice(0,16)}...${e.slice(-6)}`}function R(t,n){let r=L(t).padEnd(26);return n?e.accent(r):r}function z(t,n){let r=(t?ee(Date.now()-t):`unknown`).padEnd(9);return n?e.muted(r):r}function B(t,n){let r=(t??`unknown`).padEnd(14);return n?e.info(r):r}function V(t,n){let r=[t.thinkingLevel?`think:${t.thinkingLevel}`:null,t.verboseLevel?`verbose:${t.verboseLevel}`:null,t.reasoningLevel?`reasoning:${t.reasoningLevel}`:null,t.elevatedLevel?`elev:${t.elevatedLevel}`:null,t.responseUsage?`usage:${t.responseUsage}`:null,t.groupActivation?`activation:${t.groupActivation}`:null,t.systemSent?`system`:null,t.abortedLastRun?`aborted`:null,t.sessionId?`id:${t.sessionId}`:null].filter(Boolean).join(` `);return r.length===0?``:n?e.muted(r):r}function H(e){return e.missingKeys.has(e.key)?`prune-missing`:e.staleKeys.has(e.key)?`prune-stale`:e.cappedKeys.has(e.key)?`cap-overflow`:e.budgetEvictedKeys.has(e.key)?`evict-budget`:`keep`}function U(t,n){let r=t.padEnd(12);return n?t===`keep`?e.muted(r):t===`prune-missing`?e.error(r):t===`prune-stale`?e.warn(r):t===`cap-overflow`?e.accentBright(r):e.error(r):r}function W(e){return P(e.beforeStore).map(t=>({...t,action:H({key:t.key,missingKeys:e.missingKeys,staleKeys:e.staleKeys,cappedKeys:e.cappedKeys,budgetEvictedKeys:e.budgetEvictedKeys})}))}function G(e){let t=C({storePath:e.storePath}),n=0;for(let[r,i]of Object.entries(e.store)){if(!i?.sessionId)continue;let a=S(i.sessionId,i,t);A.existsSync(a)||(delete e.store[r],n+=1,e.onPruned?.(r))}return n}async function K(e){let t=l(),n=s(e.target.storePath,{skipCache:!0}),r=structuredClone(n),i=new Set,o=new Set,c=new Set,f=e.fixMissing===!0?G({store:r,storePath:e.target.storePath,onPruned:e=>{c.add(e)}}):0,p=d(r,t.pruneAfterMs,{log:!1,onPruned:({key:e})=>{i.add(e)}}),m=u(r,t.maxEntries,{log:!1,onCapped:({key:e})=>{o.add(e)}}),h=structuredClone(r),g=await a({store:r,storePath:e.target.storePath,activeSessionKey:e.activeKey,maintenance:t,warnOnly:!1,dryRun:!0}),_=new Set;for(let e of Object.keys(h))Object.hasOwn(r,e)||_.add(e);let v=Object.keys(n).length,y=Object.keys(r).length,b=f>0||p>0||m>0||(g?.removedEntries??0)>0||(g?.removedFiles??0)>0;return{summary:{agentId:e.target.agentId,storePath:e.target.storePath,mode:e.mode,dryRun:e.dryRun,beforeCount:v,afterCount:y,missing:f,pruned:p,capped:m,diskBudget:g,wouldMutate:b},actionRows:W({beforeStore:n,staleKeys:i,cappedKeys:o,budgetEvictedKeys:_,missingKeys:c})}}function q(n){let r=t();if(n.showAgentHeader&&n.runtime.log(`Agent: ${n.summary.agentId}`),n.runtime.log(`Session store: ${n.summary.storePath}`),n.runtime.log(`Maintenance mode: ${n.summary.mode}`),n.runtime.log(`Entries: ${n.summary.beforeCount} -> ${n.summary.afterCount} (remove ${n.summary.beforeCount-n.summary.afterCount})`),n.runtime.log(`Would prune missing transcripts: ${n.summary.missing}`),n.runtime.log(`Would prune stale: ${n.summary.pruned}`),n.runtime.log(`Would cap overflow: ${n.summary.capped}`),n.summary.diskBudget&&n.runtime.log(`Would enforce disk budget: ${n.summary.diskBudget.totalBytesBefore} -> ${n.summary.diskBudget.totalBytesAfter} bytes (files ${n.summary.diskBudget.removedFiles}, entries ${n.summary.diskBudget.removedEntries})`),n.actionRows.length===0)return;n.runtime.log(``),n.runtime.log(`Planned session actions:`);let i=[`Action`.padEnd(12),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Flags`].join(` `);n.runtime.log(r?e.heading(i):i);for(let e of n.actionRows){let t=I(n.cfg,e,n.displayDefaults),i=[U(e.action,r),R(e.key,r),z(e.updatedAt,r),B(t,r),V(e,r)].join(` `);n.runtime.log(i.trimEnd())}}async function J(e,t){let n=p(),r=F(n),i=e.enforce?`enforce`:l().mode,a=N({cfg:n,opts:{store:e.store,agent:e.agent,allAgents:e.allAgents},runtime:t});if(!a)return;let o=[];for(let t of a){let n=await K({target:t,mode:i,dryRun:!!e.dryRun,activeKey:e.activeKey,fixMissing:!!e.fixMissing});o.push(n)}if(e.dryRun){if(e.json){if(o.length===1){t.log(JSON.stringify(o[0]?.summary??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!0,stores:o.map(e=>e.summary)},null,2));return}for(let e=0;e<o.length;e+=1){let i=o[e];e>0&&t.log(``),q({cfg:n,summary:i.summary,actionRows:i.actionRows,displayDefaults:r,runtime:t,showAgentHeader:o.length>1})}return}let u=[];for(let t of a){let n={current:null},r=await c(t.storePath,async n=>e.fixMissing?G({store:n,storePath:t.storePath}):0,{activeSessionKey:e.activeKey,maintenanceOverride:{mode:i},onMaintenanceApplied:e=>{n.current=e}}),a=s(t.storePath,{skipCache:!0}),l=o.find(e=>e.summary.storePath===t.storePath),d=n.current,f=d===null?{...l?.summary??{agentId:t.agentId,storePath:t.storePath,mode:i,dryRun:!1,beforeCount:0,afterCount:0,missing:0,pruned:0,capped:0,diskBudget:null,wouldMutate:!1},dryRun:!1,applied:!0,appliedCount:Object.keys(a).length}:{agentId:t.agentId,storePath:t.storePath,mode:d.mode,dryRun:!1,beforeCount:d.beforeCount,afterCount:d.afterCount,missing:r,pruned:d.pruned,capped:d.capped,diskBudget:d.diskBudget,wouldMutate:r>0||d.pruned>0||d.capped>0||(d.diskBudget?.removedEntries??0)>0||(d.diskBudget?.removedFiles??0)>0,applied:!0,appliedCount:Object.keys(a).length};u.push(f)}if(e.json){if(u.length===1){t.log(JSON.stringify(u[0]??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!1,stores:u},null,2));return}for(let e=0;e<u.length;e+=1){let n=u[e];e>0&&t.log(``),u.length>1&&t.log(`Agent: ${n.agentId}`),t.log(`Session store: ${n.storePath}`),t.log(`Applied maintenance. Current entries: ${n.appliedCount??0}`)}}const Y=e=>`${(e/1e3).toFixed(e>=1e4?0:1)}k`,X=(t,n,r)=>!r||n===null?t:n>=95?e.error(t):n>=80?e.warn(t):n>=60?e.success(t):e.muted(t),Z=(t,n,r)=>{if(t===void 0){let t=`unknown/${n?Y(n):`?`} (?%)`;return r?e.muted(t.padEnd(20)):t.padEnd(20)}let i=Y(t),a=n?Y(n):`?`,o=n?Math.min(999,Math.round(t/n*100)):null;return X(`${i}/${a} (${o??`?`}%)`.padEnd(20),o,r)},Q=(t,n)=>{let r=t.padEnd(6);return n?t===`group`?e.accentBright(r):t===`global`?e.warn(r):t===`direct`?e.accent(r):e.muted(r):r};async function te(n,r){let a=n.allAgents===!0,c=p(),l=F(c),u=c.agents?.defaults?.contextTokens??g(l.model)??2e5,d=N({cfg:c,opts:{store:n.store,agent:n.agent,allAgents:n.allAgents},runtime:r});if(!d)return;let f;if(n.active!==void 0){let e=Number.parseInt(String(n.active),10);if(Number.isNaN(e)||e<=0){r.error(`--active must be a positive integer (minutes)`),r.exit(1);return}f=e}let h=d.flatMap(e=>{let t=s(e.storePath);return P(t).map(n=>({...n,agentId:y(n.key)?.agentId??e.agentId,kind:m(n.key,t[n.key])}))}).filter(e=>f===void 0?!0:e.updatedAt?Date.now()-e.updatedAt<=f*6e4:!1).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0));if(n.json){let e=d.length>1,t=a||e;r.log(JSON.stringify({path:t?null:d[0]?.storePath??null,stores:t?d.map(e=>({agentId:e.agentId,path:e.storePath})):void 0,allAgents:a?!0:void 0,count:h.length,activeMinutes:f??null,sessions:h.map(e=>{let t=I(c,e,l);return{...e,totalTokens:o(e)??null,totalTokensFresh:typeof e.totalTokens==`number`?e.totalTokensFresh!==!1:!1,contextTokens:e.contextTokens??g(t)??u??null,model:t}})},null,2));return}if(d.length===1&&!a?r.log(i(`Session store: ${d[0]?.storePath}`)):r.log(i(`Session stores: ${d.length} (${d.map(e=>e.agentId).join(`, `)})`)),r.log(i(`Sessions listed: ${h.length}`)),f&&r.log(i(`Filtered to last ${f} minute(s)`)),h.length===0){r.log(`No sessions found.`);return}let _=t(),v=a||d.length>1,b=[...v?[`Agent`.padEnd(10)]:[],`Kind`.padEnd(6),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Tokens (ctx %)`.padEnd(20),`Flags`].join(` `);r.log(_?e.heading(b):b);for(let t of h){let n=I(c,t,l),i=t.contextTokens??g(n)??u,a=o(t),s=[...v?[_?e.accentBright(t.agentId.padEnd(10)):t.agentId.padEnd(10)]:[],Q(t.kind,_),R(t.key,_),z(t.updatedAt,_),B(n,_),Z(a,i??null,_),V(t,_)].join(` `);r.log(s.trimEnd())}}function ne(e){return!!(e.verbose||e.debug)}function re(e){let t=D(e);return e!==void 0&&t===void 0?(n.error(`--timeout must be a positive integer (milliseconds)`),n.exit(1),null):t}async function $(e,t){let i=ne(e);r(i);let a=re(e.timeout);a!==null&&await T(n,async()=>{await t({verbose:i,timeoutMs:a})})}function ie(t){t.command(`status`).description(`Show channel health and recent session recipients`).option(`--json`,`Output JSON instead of text`,!1).option(`--all`,`Full diagnosis (read-only, pasteable)`,!1).option(`--usage`,`Show model provider usage/quota snapshots`,!1).option(`--deep`,`Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)`,!1).option(`--timeout <ms>`,`Probe timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw status`,`Show channel health + session summary.`],[`openclaw status --all`,`Full diagnosis (read-only).`],[`openclaw status --json`,`Machine-readable output.`],[`openclaw status --usage`,`Show model provider usage/quota snapshots.`],[`openclaw status --deep`,`Run channel probes (WA + Telegram + Discord + Slack + Signal).`],[`openclaw status --deep --timeout 5000`,`Tighten probe timeout.`]])}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/status`,`docs.openclaw.ai/cli/status`)}\n`).action(async e=>{await $(e,async({verbose:t,timeoutMs:r})=>{await O({json:!!e.json,all:!!e.all,deep:!!e.deep,usage:!!e.usage,timeoutMs:r,verbose:t},n)})}),t.command(`health`).description(`Fetch health from the running gateway`).option(`--json`,`Output JSON instead of text`,!1).option(`--timeout <ms>`,`Connection timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/health`,`docs.openclaw.ai/cli/health`)}\n`).action(async e=>{await $(e,async({verbose:t,timeoutMs:r})=>{await k({json:!!e.json,timeoutMs:r,verbose:t},n)})});let i=t.command(`sessions`).description(`List stored conversation sessions`).option(`--json`,`Output as JSON`,!1).option(`--verbose`,`Verbose logging`,!1).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to inspect (default: configured default agent)`).option(`--all-agents`,`Aggregate sessions across all configured agents`,!1).option(`--active <minutes>`,`Only show sessions updated within the past N minutes`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw sessions`,`List all sessions.`],[`openclaw sessions --agent work`,`List sessions for one agent.`],[`openclaw sessions --all-agents`,`Aggregate sessions across agents.`],[`openclaw sessions --active 120`,`Only last 2 hours.`],[`openclaw sessions --json`,`Machine-readable output.`],[`openclaw sessions --store ./tmp/sessions.json`,`Use a specific session store.`]])}\n\n${e.muted(`Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.`)}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/sessions`,`docs.openclaw.ai/cli/sessions`)}\n`).action(async e=>{r(!!e.verbose),await te({json:!!e.json,store:e.store,agent:e.agent,allAgents:!!e.allAgents,active:e.active},n)});i.enablePositionalOptions(),i.command(`cleanup`).description(`Run session-store maintenance now`).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to maintain (default: configured default agent)`).option(`--all-agents`,`Run maintenance across all configured agents`,!1).option(`--dry-run`,`Preview maintenance actions without writing`,!1).option(`--enforce`,`Apply maintenance even when configured mode is warn`,!1).option(`--fix-missing`,`Remove store entries whose transcript files are missing (bypasses age/count retention)`,!1).option(`--active-key <key>`,`Protect this session key from budget-eviction`).option(`--json`,`Output JSON`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw sessions cleanup --dry-run`,`Preview stale/cap cleanup.`],[`openclaw sessions cleanup --dry-run --fix-missing`,`Also preview pruning entries with missing transcript files.`],[`openclaw sessions cleanup --enforce`,`Apply maintenance now.`],[`openclaw sessions cleanup --agent work --dry-run`,`Preview one agent store.`],[`openclaw sessions cleanup --all-agents --dry-run`,`Preview all agent stores.`],[`openclaw sessions cleanup --enforce --store ./tmp/sessions.json`,`Use a specific store.`]])}`).action(async(e,t)=>{let r=t.parent?.opts();await T(n,async()=>{await J({store:e.store??r?.store,agent:e.agent??r?.agent,allAgents:!!(e.allAgents||r?.allAgents),dryRun:!!e.dryRun,enforce:!!e.enforce,fixMissing:!!e.fixMissing,activeKey:e.activeKey,json:!!(e.json||r?.json)},n)})})}export{ie as registerStatusHealthSessionsCommands};
1
+ import"./paths-B4IRk3wi.js";import{A as e,k as t,p as n,w as r,y as i}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import{$n as a,Fr as o,Hn as s,Jn as c,Qn as l,Xn as u,Zn as d,h as f,qs as p}from"./model-selection-B2r_LMFb.js";import{D as m,P as h,tn as g}from"./reply-HrabJs88.js";import{f as _,r as v}from"./agent-scope-DW6ZDCxj.js";import{E as y,c as b}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import{c as x,n as S,r as C}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import{n as ee}from"./format-relative-B9pSIdGe.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as w}from"./links-jlebCPFf.js";import{n as T}from"./cli-utils-BY7dLMFy.js";import{t as E}from"./help-format-Cav62lfS.js";import"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import{n as D}from"./helpers-Cp8gcO6u.js";import"./skills-status-CId4JgRV.js";import"./dangerous-tools-oYCu5wfC.js";import"./skill-scanner-BKP1PUAv.js";import"./issue-format-BM2kAbbw.js";import"./channels-status-issues-hU0uOU87.js";import"./systemd-Dp59-Na4.js";import"./service-BMP0stI7.js";import"./probe-auth-CegC2fDL.js";import"./diagnostics-DxEtFsuc.js";import"./table-CWiulZxe.js";import{t as O}from"./status-m4GFy-Px.js";import{r as k}from"./health-dTYbHKsD.js";import"./channel-account-context-kX_5d8CX.js";import"./node-command-policy-Ciy_eQTw.js";import"./audit-kkWTh8s9.js";import"./node-service-CIS6wvT6.js";import"./status.update-ioEIhrgk.js";import A from"node:fs";function j(e){let t=new Map;for(let n of e)t.has(n.storePath)||t.set(n.storePath,n);return[...t.values()]}function M(e,t){let n=_(e),r=!!t.agent?.trim(),i=t.allAgents===!0;if(r&&i)throw Error(`--agent and --all-agents cannot be used together`);if(t.store&&(r||i))throw Error(`--store cannot be combined with --agent or --all-agents`);if(t.store)return[{agentId:n,storePath:x(t.store,{agentId:n})}];if(i)return j(v(e).map(t=>({agentId:t,storePath:x(e.session?.store,{agentId:t})})));if(r){let n=v(e),r=b(t.agent??``);if(!n.includes(r))throw Error(`Unknown agent id "${t.agent}". Use "openclaw agents list" to see configured agents.`);return[{agentId:r,storePath:x(e.session?.store,{agentId:r})}]}return[{agentId:n,storePath:x(e.session?.store,{agentId:n})}]}function N(e){try{return M(e.cfg,e.opts)}catch(t){return e.runtime.error(t instanceof Error?t.message:String(t)),e.runtime.exit(1),null}}function P(e){return Object.entries(e).map(([e,t])=>{let n=t?.updatedAt??null;return{key:e,updatedAt:n,ageMs:n?Date.now()-n:null,sessionId:t?.sessionId,systemSent:t?.systemSent,abortedLastRun:t?.abortedLastRun,thinkingLevel:t?.thinkingLevel,verboseLevel:t?.verboseLevel,reasoningLevel:t?.reasoningLevel,elevatedLevel:t?.elevatedLevel,responseUsage:t?.responseUsage,groupActivation:t?.groupActivation,inputTokens:t?.inputTokens,outputTokens:t?.outputTokens,totalTokens:t?.totalTokens,totalTokensFresh:t?.totalTokensFresh,model:t?.model,modelProvider:t?.modelProvider,providerOverride:t?.providerOverride,modelOverride:t?.modelOverride,contextTokens:t?.contextTokens}}).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0))}function F(e){return{model:f({cfg:e,defaultProvider:`anthropic`,defaultModel:`claude-opus-4-6`}).model??`claude-opus-4-6`}}function I(e,t,n){return h(e,t,y(t.key)?.agentId).model??n.model}function L(e){return e.length<=26?e:`${e.slice(0,16)}...${e.slice(-6)}`}function R(t,n){let r=L(t).padEnd(26);return n?e.accent(r):r}function z(t,n){let r=(t?ee(Date.now()-t):`unknown`).padEnd(9);return n?e.muted(r):r}function B(t,n){let r=(t??`unknown`).padEnd(14);return n?e.info(r):r}function V(t,n){let r=[t.thinkingLevel?`think:${t.thinkingLevel}`:null,t.verboseLevel?`verbose:${t.verboseLevel}`:null,t.reasoningLevel?`reasoning:${t.reasoningLevel}`:null,t.elevatedLevel?`elev:${t.elevatedLevel}`:null,t.responseUsage?`usage:${t.responseUsage}`:null,t.groupActivation?`activation:${t.groupActivation}`:null,t.systemSent?`system`:null,t.abortedLastRun?`aborted`:null,t.sessionId?`id:${t.sessionId}`:null].filter(Boolean).join(` `);return r.length===0?``:n?e.muted(r):r}function H(e){return e.missingKeys.has(e.key)?`prune-missing`:e.staleKeys.has(e.key)?`prune-stale`:e.cappedKeys.has(e.key)?`cap-overflow`:e.budgetEvictedKeys.has(e.key)?`evict-budget`:`keep`}function U(t,n){let r=t.padEnd(12);return n?t===`keep`?e.muted(r):t===`prune-missing`?e.error(r):t===`prune-stale`?e.warn(r):t===`cap-overflow`?e.accentBright(r):e.error(r):r}function W(e){return P(e.beforeStore).map(t=>({...t,action:H({key:t.key,missingKeys:e.missingKeys,staleKeys:e.staleKeys,cappedKeys:e.cappedKeys,budgetEvictedKeys:e.budgetEvictedKeys})}))}function G(e){let t=C({storePath:e.storePath}),n=0;for(let[r,i]of Object.entries(e.store)){if(!i?.sessionId)continue;let a=S(i.sessionId,i,t);A.existsSync(a)||(delete e.store[r],n+=1,e.onPruned?.(r))}return n}async function K(e){let t=l(),n=s(e.target.storePath,{skipCache:!0}),r=structuredClone(n),i=new Set,o=new Set,c=new Set,f=e.fixMissing===!0?G({store:r,storePath:e.target.storePath,onPruned:e=>{c.add(e)}}):0,p=d(r,t.pruneAfterMs,{log:!1,onPruned:({key:e})=>{i.add(e)}}),m=u(r,t.maxEntries,{log:!1,onCapped:({key:e})=>{o.add(e)}}),h=structuredClone(r),g=await a({store:r,storePath:e.target.storePath,activeSessionKey:e.activeKey,maintenance:t,warnOnly:!1,dryRun:!0}),_=new Set;for(let e of Object.keys(h))Object.hasOwn(r,e)||_.add(e);let v=Object.keys(n).length,y=Object.keys(r).length,b=f>0||p>0||m>0||(g?.removedEntries??0)>0||(g?.removedFiles??0)>0;return{summary:{agentId:e.target.agentId,storePath:e.target.storePath,mode:e.mode,dryRun:e.dryRun,beforeCount:v,afterCount:y,missing:f,pruned:p,capped:m,diskBudget:g,wouldMutate:b},actionRows:W({beforeStore:n,staleKeys:i,cappedKeys:o,budgetEvictedKeys:_,missingKeys:c})}}function q(n){let r=t();if(n.showAgentHeader&&n.runtime.log(`Agent: ${n.summary.agentId}`),n.runtime.log(`Session store: ${n.summary.storePath}`),n.runtime.log(`Maintenance mode: ${n.summary.mode}`),n.runtime.log(`Entries: ${n.summary.beforeCount} -> ${n.summary.afterCount} (remove ${n.summary.beforeCount-n.summary.afterCount})`),n.runtime.log(`Would prune missing transcripts: ${n.summary.missing}`),n.runtime.log(`Would prune stale: ${n.summary.pruned}`),n.runtime.log(`Would cap overflow: ${n.summary.capped}`),n.summary.diskBudget&&n.runtime.log(`Would enforce disk budget: ${n.summary.diskBudget.totalBytesBefore} -> ${n.summary.diskBudget.totalBytesAfter} bytes (files ${n.summary.diskBudget.removedFiles}, entries ${n.summary.diskBudget.removedEntries})`),n.actionRows.length===0)return;n.runtime.log(``),n.runtime.log(`Planned session actions:`);let i=[`Action`.padEnd(12),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Flags`].join(` `);n.runtime.log(r?e.heading(i):i);for(let e of n.actionRows){let t=I(n.cfg,e,n.displayDefaults),i=[U(e.action,r),R(e.key,r),z(e.updatedAt,r),B(t,r),V(e,r)].join(` `);n.runtime.log(i.trimEnd())}}async function J(e,t){let n=p(),r=F(n),i=e.enforce?`enforce`:l().mode,a=N({cfg:n,opts:{store:e.store,agent:e.agent,allAgents:e.allAgents},runtime:t});if(!a)return;let o=[];for(let t of a){let n=await K({target:t,mode:i,dryRun:!!e.dryRun,activeKey:e.activeKey,fixMissing:!!e.fixMissing});o.push(n)}if(e.dryRun){if(e.json){if(o.length===1){t.log(JSON.stringify(o[0]?.summary??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!0,stores:o.map(e=>e.summary)},null,2));return}for(let e=0;e<o.length;e+=1){let i=o[e];e>0&&t.log(``),q({cfg:n,summary:i.summary,actionRows:i.actionRows,displayDefaults:r,runtime:t,showAgentHeader:o.length>1})}return}let u=[];for(let t of a){let n={current:null},r=await c(t.storePath,async n=>e.fixMissing?G({store:n,storePath:t.storePath}):0,{activeSessionKey:e.activeKey,maintenanceOverride:{mode:i},onMaintenanceApplied:e=>{n.current=e}}),a=s(t.storePath,{skipCache:!0}),l=o.find(e=>e.summary.storePath===t.storePath),d=n.current,f=d===null?{...l?.summary??{agentId:t.agentId,storePath:t.storePath,mode:i,dryRun:!1,beforeCount:0,afterCount:0,missing:0,pruned:0,capped:0,diskBudget:null,wouldMutate:!1},dryRun:!1,applied:!0,appliedCount:Object.keys(a).length}:{agentId:t.agentId,storePath:t.storePath,mode:d.mode,dryRun:!1,beforeCount:d.beforeCount,afterCount:d.afterCount,missing:r,pruned:d.pruned,capped:d.capped,diskBudget:d.diskBudget,wouldMutate:r>0||d.pruned>0||d.capped>0||(d.diskBudget?.removedEntries??0)>0||(d.diskBudget?.removedFiles??0)>0,applied:!0,appliedCount:Object.keys(a).length};u.push(f)}if(e.json){if(u.length===1){t.log(JSON.stringify(u[0]??{},null,2));return}t.log(JSON.stringify({allAgents:!0,mode:i,dryRun:!1,stores:u},null,2));return}for(let e=0;e<u.length;e+=1){let n=u[e];e>0&&t.log(``),u.length>1&&t.log(`Agent: ${n.agentId}`),t.log(`Session store: ${n.storePath}`),t.log(`Applied maintenance. Current entries: ${n.appliedCount??0}`)}}const Y=e=>`${(e/1e3).toFixed(e>=1e4?0:1)}k`,X=(t,n,r)=>!r||n===null?t:n>=95?e.error(t):n>=80?e.warn(t):n>=60?e.success(t):e.muted(t),Z=(t,n,r)=>{if(t===void 0){let t=`unknown/${n?Y(n):`?`} (?%)`;return r?e.muted(t.padEnd(20)):t.padEnd(20)}let i=Y(t),a=n?Y(n):`?`,o=n?Math.min(999,Math.round(t/n*100)):null;return X(`${i}/${a} (${o??`?`}%)`.padEnd(20),o,r)},Q=(t,n)=>{let r=t.padEnd(6);return n?t===`group`?e.accentBright(r):t===`global`?e.warn(r):t===`direct`?e.accent(r):e.muted(r):r};async function te(n,r){let a=n.allAgents===!0,c=p(),l=F(c),u=c.agents?.defaults?.contextTokens??g(l.model)??2e5,d=N({cfg:c,opts:{store:n.store,agent:n.agent,allAgents:n.allAgents},runtime:r});if(!d)return;let f;if(n.active!==void 0){let e=Number.parseInt(String(n.active),10);if(Number.isNaN(e)||e<=0){r.error(`--active must be a positive integer (minutes)`),r.exit(1);return}f=e}let h=d.flatMap(e=>{let t=s(e.storePath);return P(t).map(n=>({...n,agentId:y(n.key)?.agentId??e.agentId,kind:m(n.key,t[n.key])}))}).filter(e=>f===void 0?!0:e.updatedAt?Date.now()-e.updatedAt<=f*6e4:!1).toSorted((e,t)=>(t.updatedAt??0)-(e.updatedAt??0));if(n.json){let e=d.length>1,t=a||e;r.log(JSON.stringify({path:t?null:d[0]?.storePath??null,stores:t?d.map(e=>({agentId:e.agentId,path:e.storePath})):void 0,allAgents:a?!0:void 0,count:h.length,activeMinutes:f??null,sessions:h.map(e=>{let t=I(c,e,l);return{...e,totalTokens:o(e)??null,totalTokensFresh:typeof e.totalTokens==`number`?e.totalTokensFresh!==!1:!1,contextTokens:e.contextTokens??g(t)??u??null,model:t}})},null,2));return}if(d.length===1&&!a?r.log(i(`Session store: ${d[0]?.storePath}`)):r.log(i(`Session stores: ${d.length} (${d.map(e=>e.agentId).join(`, `)})`)),r.log(i(`Sessions listed: ${h.length}`)),f&&r.log(i(`Filtered to last ${f} minute(s)`)),h.length===0){r.log(`No sessions found.`);return}let _=t(),v=a||d.length>1,b=[...v?[`Agent`.padEnd(10)]:[],`Kind`.padEnd(6),`Key`.padEnd(26),`Age`.padEnd(9),`Model`.padEnd(14),`Tokens (ctx %)`.padEnd(20),`Flags`].join(` `);r.log(_?e.heading(b):b);for(let t of h){let n=I(c,t,l),i=t.contextTokens??g(n)??u,a=o(t),s=[...v?[_?e.accentBright(t.agentId.padEnd(10)):t.agentId.padEnd(10)]:[],Q(t.kind,_),R(t.key,_),z(t.updatedAt,_),B(n,_),Z(a,i??null,_),V(t,_)].join(` `);r.log(s.trimEnd())}}function ne(e){return!!(e.verbose||e.debug)}function re(e){let t=D(e);return e!==void 0&&t===void 0?(n.error(`--timeout must be a positive integer (milliseconds)`),n.exit(1),null):t}async function $(e,t){let i=ne(e);r(i);let a=re(e.timeout);a!==null&&await T(n,async()=>{await t({verbose:i,timeoutMs:a})})}function ie(t){t.command(`status`).description(`Show channel health and recent session recipients`).option(`--json`,`Output JSON instead of text`,!1).option(`--all`,`Full diagnosis (read-only, pasteable)`,!1).option(`--usage`,`Show model provider usage/quota snapshots`,!1).option(`--deep`,`Probe channels (WhatsApp Web + Telegram + Discord + Slack + Signal)`,!1).option(`--timeout <ms>`,`Probe timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw status`,`Show channel health + session summary.`],[`openclaw status --all`,`Full diagnosis (read-only).`],[`openclaw status --json`,`Machine-readable output.`],[`openclaw status --usage`,`Show model provider usage/quota snapshots.`],[`openclaw status --deep`,`Run channel probes (WA + Telegram + Discord + Slack + Signal).`],[`openclaw status --deep --timeout 5000`,`Tighten probe timeout.`]])}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/status`,`docs.openclaw.ai/cli/status`)}\n`).action(async e=>{await $(e,async({verbose:t,timeoutMs:r})=>{await O({json:!!e.json,all:!!e.all,deep:!!e.deep,usage:!!e.usage,timeoutMs:r,verbose:t},n)})}),t.command(`health`).description(`Fetch health from the running gateway`).option(`--json`,`Output JSON instead of text`,!1).option(`--timeout <ms>`,`Connection timeout in milliseconds`,`10000`).option(`--verbose`,`Verbose logging`,!1).option(`--debug`,`Alias for --verbose`,!1).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/health`,`docs.openclaw.ai/cli/health`)}\n`).action(async e=>{await $(e,async({verbose:t,timeoutMs:r})=>{await k({json:!!e.json,timeoutMs:r,verbose:t},n)})});let i=t.command(`sessions`).description(`List stored conversation sessions`).option(`--json`,`Output as JSON`,!1).option(`--verbose`,`Verbose logging`,!1).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to inspect (default: configured default agent)`).option(`--all-agents`,`Aggregate sessions across all configured agents`,!1).option(`--active <minutes>`,`Only show sessions updated within the past N minutes`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw sessions`,`List all sessions.`],[`openclaw sessions --agent work`,`List sessions for one agent.`],[`openclaw sessions --all-agents`,`Aggregate sessions across agents.`],[`openclaw sessions --active 120`,`Only last 2 hours.`],[`openclaw sessions --json`,`Machine-readable output.`],[`openclaw sessions --store ./tmp/sessions.json`,`Use a specific session store.`]])}\n\n${e.muted(`Shows token usage per session when the agent reports it; set agents.defaults.contextTokens to cap the window and show %.`)}`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${w(`/cli/sessions`,`docs.openclaw.ai/cli/sessions`)}\n`).action(async e=>{r(!!e.verbose),await te({json:!!e.json,store:e.store,agent:e.agent,allAgents:!!e.allAgents,active:e.active},n)});i.enablePositionalOptions(),i.command(`cleanup`).description(`Run session-store maintenance now`).option(`--store <path>`,`Path to session store (default: resolved from config)`).option(`--agent <id>`,`Agent id to maintain (default: configured default agent)`).option(`--all-agents`,`Run maintenance across all configured agents`,!1).option(`--dry-run`,`Preview maintenance actions without writing`,!1).option(`--enforce`,`Apply maintenance even when configured mode is warn`,!1).option(`--fix-missing`,`Remove store entries whose transcript files are missing (bypasses age/count retention)`,!1).option(`--active-key <key>`,`Protect this session key from budget-eviction`).option(`--json`,`Output JSON`,!1).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${E([[`openclaw sessions cleanup --dry-run`,`Preview stale/cap cleanup.`],[`openclaw sessions cleanup --dry-run --fix-missing`,`Also preview pruning entries with missing transcript files.`],[`openclaw sessions cleanup --enforce`,`Apply maintenance now.`],[`openclaw sessions cleanup --agent work --dry-run`,`Preview one agent store.`],[`openclaw sessions cleanup --all-agents --dry-run`,`Preview all agent stores.`],[`openclaw sessions cleanup --enforce --store ./tmp/sessions.json`,`Use a specific store.`]])}`).action(async(e,t)=>{let r=t.parent?.opts();await T(n,async()=>{await J({store:e.store??r?.store,agent:e.agent??r?.agent,allAgents:!!(e.allAgents||r?.allAgents),dryRun:!!e.dryRun,enforce:!!e.enforce,fixMissing:!!e.fixMissing,activeKey:e.activeKey,json:!!(e.json||r?.json)},n)})})}export{ie as registerStatusHealthSessionsCommands};
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{J as t,U as n,Z as r}from"./subsystem-kTFXkQM5.js";import{i}from"./entry.js";import{r as a}from"./helpers-COz1ghcB.js";async function o(e,t){let r=t.at(-1),i=(r?.parent??e).rawArgs,o=a(r),s=r?.name()?[r.name(),...o]:o,c=n({programName:e.name(),rawArgs:i,fallbackArgv:s});await e.parseAsync(c)}function s(e,t){let n=e.commands,r=n.indexOf(t);return r<0?!1:(n.splice(r,1),!0)}function c(e,t){let n=e.commands.find(e=>e.name()===t);return n?s(e,n):!1}var l=e({getSubCliCommandsWithSubcommands:()=>h,getSubCliEntries:()=>m,loadValidatedConfigForPluginRegistration:()=>f,registerSubCliByName:()=>g,registerSubCliCommands:()=>v});const u=e=>!(i(process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS)||r(e)),d=e=>i(process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS),f=async()=>{let e=await import(`./auth-profiles-e3SmOvON.js`).then(e=>e.wo);return(await e.readConfigFileSnapshot()).valid?e.loadConfig():null},p=[{name:`acp`,description:`Agent Control Protocol tools`,hasSubcommands:!0,register:async e=>{(await import(`./acp-cli-Cc6c4eLq.js`)).registerAcpCli(e)}},{name:`gateway`,description:`Run, inspect, and query the WebSocket Gateway`,hasSubcommands:!0,register:async e=>{(await import(`./gateway-cli-xHMUWDWx.js`)).registerGatewayCli(e)}},{name:`daemon`,description:`Gateway service (legacy alias)`,hasSubcommands:!0,register:async e=>{(await import(`./daemon-cli-D8BKkqsL.js`).then(e=>e.t)).registerDaemonCli(e)}},{name:`logs`,description:`Tail gateway file logs via RPC`,hasSubcommands:!1,register:async e=>{(await import(`./logs-cli-Cq1N6UB5.js`)).registerLogsCli(e)}},{name:`system`,description:`System events, heartbeat, and presence`,hasSubcommands:!0,register:async e=>{(await import(`./system-cli-CWxezxuJ.js`)).registerSystemCli(e)}},{name:`models`,description:`Discover, scan, and configure models`,hasSubcommands:!0,register:async e=>{(await import(`./models-cli-BS5KD1m7.js`)).registerModelsCli(e)}},{name:`approvals`,description:`Manage exec approvals (gateway or node host)`,hasSubcommands:!0,register:async e=>{(await import(`./exec-approvals-cli-BRyOWkKo.js`)).registerExecApprovalsCli(e)}},{name:`nodes`,description:`Manage gateway-owned node pairing and node commands`,hasSubcommands:!0,register:async e=>{(await import(`./nodes-cli-COjl6eTa.js`)).registerNodesCli(e)}},{name:`devices`,description:`Device pairing + token management`,hasSubcommands:!0,register:async e=>{(await import(`./devices-cli-BOmBK3Nf.js`)).registerDevicesCli(e)}},{name:`node`,description:`Run and manage the headless node host service`,hasSubcommands:!0,register:async e=>{(await import(`./node-cli-Bohk0G0M.js`)).registerNodeCli(e)}},{name:`sandbox`,description:`Manage sandbox containers for agent isolation`,hasSubcommands:!0,register:async e=>{(await import(`./sandbox-cli-5rQOOP2z.js`)).registerSandboxCli(e)}},{name:`tui`,description:`Open a terminal UI connected to the Gateway`,hasSubcommands:!1,register:async e=>{(await import(`./tui-cli-C-l_cUjv.js`)).registerTuiCli(e)}},{name:`cron`,description:`Manage cron jobs via the Gateway scheduler`,hasSubcommands:!0,register:async e=>{(await import(`./cron-cli-4qy0cYvt.js`)).registerCronCli(e)}},{name:`dns`,description:`DNS helpers for wide-area discovery (Tailscale + CoreDNS)`,hasSubcommands:!0,register:async e=>{(await import(`./dns-cli-BlaabWTx.js`)).registerDnsCli(e)}},{name:`docs`,description:`Search the live OpenClaw docs`,hasSubcommands:!1,register:async e=>{(await import(`./docs-cli-DMr5wYC9.js`)).registerDocsCli(e)}},{name:`hooks`,description:`Manage internal agent hooks`,hasSubcommands:!0,register:async e=>{(await import(`./hooks-cli-B0xRT8IB.js`)).registerHooksCli(e)}},{name:`webhooks`,description:`Webhook helpers and integrations`,hasSubcommands:!0,register:async e=>{(await import(`./webhooks-cli-M4KJ7k8C.js`)).registerWebhooksCli(e)}},{name:`qr`,description:`Generate iOS pairing QR/setup code`,hasSubcommands:!1,register:async e=>{(await import(`./qr-cli-DRoN_kmx.js`)).registerQrCli(e)}},{name:`clawbot`,description:`Legacy clawbot command aliases`,hasSubcommands:!0,register:async e=>{(await import(`./clawbot-cli-CMO7lfXx.js`)).registerClawbotCli(e)}},{name:`pairing`,description:`Secure DM pairing (approve inbound requests)`,hasSubcommands:!0,register:async e=>{let{registerPluginCliCommands:t}=await import(`./cli-odx2Ou54.js`),n=await f();n&&t(e,n),(await import(`./pairing-cli-DKEqBzQE.js`)).registerPairingCli(e)}},{name:`plugins`,description:`Manage OpenClaw plugins and extensions`,hasSubcommands:!0,register:async e=>{(await import(`./plugins-cli-D7y5Vl8l.js`)).registerPluginsCli(e);let{registerPluginCliCommands:t}=await import(`./cli-odx2Ou54.js`),n=await f();n&&t(e,n)}},{name:`channels`,description:`Manage connected chat channels (Telegram, Discord, etc.)`,hasSubcommands:!0,register:async e=>{(await import(`./channels-cli-DqI5sufA.js`)).registerChannelsCli(e)}},{name:`directory`,description:`Lookup contact and group IDs (self, peers, groups) for supported chat channels`,hasSubcommands:!0,register:async e=>{(await import(`./directory-cli-C38jFBRE.js`)).registerDirectoryCli(e)}},{name:`security`,description:`Security tools and local config audits`,hasSubcommands:!0,register:async e=>{(await import(`./security-cli-BYdTkRgj.js`)).registerSecurityCli(e)}},{name:`secrets`,description:`Secrets runtime reload controls`,hasSubcommands:!0,register:async e=>{(await import(`./secrets-cli-CW8Xr5vl.js`)).registerSecretsCli(e)}},{name:`skills`,description:`List and inspect available skills`,hasSubcommands:!0,register:async e=>{(await import(`./skills-cli-D8inpQ0g.js`)).registerSkillsCli(e)}},{name:`update`,description:`Update OpenClaw and inspect update channel status`,hasSubcommands:!0,register:async e=>{(await import(`./update-cli-CkgaoB8p.js`)).registerUpdateCli(e)}},{name:`completion`,description:`Generate shell completion script`,hasSubcommands:!1,register:async e=>{(await import(`./completion-cli-Btm1nzLM.js`).then(e=>e.n)).registerCompletionCli(e)}}];function m(){return p}function h(){return p.filter(e=>e.hasSubcommands).map(e=>e.name)}async function g(e,t){let n=p.find(e=>e.name===t);return n?(c(e,n.name),await n.register(e),!0):!1}function _(e,t){let n=e.command(t.name).description(t.description);n.allowUnknownOption(!0),n.allowExcessArguments(!0),n.action(async(...r)=>{s(e,n),await t.register(e),await o(e,r)})}function v(e,n=process.argv){if(d(n)){for(let t of p)t.register(e);return}let r=t(n);if(r&&u(n)){let t=p.find(e=>e.name===r);if(t){_(e,t);return}}for(let t of p)_(e,t)}export{l as a,v as i,m as n,c as o,g as r,o as s,h as t};
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{J as t,U as n,Z as r}from"./subsystem-kTFXkQM5.js";import{i}from"./entry.js";import{r as a}from"./helpers-COz1ghcB.js";async function o(e,t){let r=t.at(-1),i=(r?.parent??e).rawArgs,o=a(r),s=r?.name()?[r.name(),...o]:o,c=n({programName:e.name(),rawArgs:i,fallbackArgv:s});await e.parseAsync(c)}function s(e,t){let n=e.commands,r=n.indexOf(t);return r<0?!1:(n.splice(r,1),!0)}function c(e,t){let n=e.commands.find(e=>e.name()===t);return n?s(e,n):!1}var l=e({getSubCliCommandsWithSubcommands:()=>h,getSubCliEntries:()=>m,loadValidatedConfigForPluginRegistration:()=>f,registerSubCliByName:()=>g,registerSubCliCommands:()=>v});const u=e=>!(i(process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS)||r(e)),d=e=>i(process.env.OPENCLAW_DISABLE_LAZY_SUBCOMMANDS),f=async()=>{let e=await import(`./auth-profiles-e3SmOvON.js`).then(e=>e.wo);return(await e.readConfigFileSnapshot()).valid?e.loadConfig():null},p=[{name:`acp`,description:`Agent Control Protocol tools`,hasSubcommands:!0,register:async e=>{(await import(`./acp-cli-Cc6c4eLq.js`)).registerAcpCli(e)}},{name:`gateway`,description:`Run, inspect, and query the WebSocket Gateway`,hasSubcommands:!0,register:async e=>{(await import(`./gateway-cli-B4--4Rdp.js`)).registerGatewayCli(e)}},{name:`daemon`,description:`Gateway service (legacy alias)`,hasSubcommands:!0,register:async e=>{(await import(`./daemon-cli-D8BKkqsL.js`).then(e=>e.t)).registerDaemonCli(e)}},{name:`logs`,description:`Tail gateway file logs via RPC`,hasSubcommands:!1,register:async e=>{(await import(`./logs-cli-Cq1N6UB5.js`)).registerLogsCli(e)}},{name:`system`,description:`System events, heartbeat, and presence`,hasSubcommands:!0,register:async e=>{(await import(`./system-cli-CWxezxuJ.js`)).registerSystemCli(e)}},{name:`models`,description:`Discover, scan, and configure models`,hasSubcommands:!0,register:async e=>{(await import(`./models-cli-DIeJKv20.js`)).registerModelsCli(e)}},{name:`approvals`,description:`Manage exec approvals (gateway or node host)`,hasSubcommands:!0,register:async e=>{(await import(`./exec-approvals-cli-BRyOWkKo.js`)).registerExecApprovalsCli(e)}},{name:`nodes`,description:`Manage gateway-owned node pairing and node commands`,hasSubcommands:!0,register:async e=>{(await import(`./nodes-cli-COjl6eTa.js`)).registerNodesCli(e)}},{name:`devices`,description:`Device pairing + token management`,hasSubcommands:!0,register:async e=>{(await import(`./devices-cli-BOmBK3Nf.js`)).registerDevicesCli(e)}},{name:`node`,description:`Run and manage the headless node host service`,hasSubcommands:!0,register:async e=>{(await import(`./node-cli-Bohk0G0M.js`)).registerNodeCli(e)}},{name:`sandbox`,description:`Manage sandbox containers for agent isolation`,hasSubcommands:!0,register:async e=>{(await import(`./sandbox-cli-5rQOOP2z.js`)).registerSandboxCli(e)}},{name:`tui`,description:`Open a terminal UI connected to the Gateway`,hasSubcommands:!1,register:async e=>{(await import(`./tui-cli-C-l_cUjv.js`)).registerTuiCli(e)}},{name:`cron`,description:`Manage cron jobs via the Gateway scheduler`,hasSubcommands:!0,register:async e=>{(await import(`./cron-cli-4qy0cYvt.js`)).registerCronCli(e)}},{name:`dns`,description:`DNS helpers for wide-area discovery (Tailscale + CoreDNS)`,hasSubcommands:!0,register:async e=>{(await import(`./dns-cli-BlaabWTx.js`)).registerDnsCli(e)}},{name:`docs`,description:`Search the live OpenClaw docs`,hasSubcommands:!1,register:async e=>{(await import(`./docs-cli-DMr5wYC9.js`)).registerDocsCli(e)}},{name:`hooks`,description:`Manage internal agent hooks`,hasSubcommands:!0,register:async e=>{(await import(`./hooks-cli-CQiuXLiA.js`)).registerHooksCli(e)}},{name:`webhooks`,description:`Webhook helpers and integrations`,hasSubcommands:!0,register:async e=>{(await import(`./webhooks-cli-M4KJ7k8C.js`)).registerWebhooksCli(e)}},{name:`qr`,description:`Generate iOS pairing QR/setup code`,hasSubcommands:!1,register:async e=>{(await import(`./qr-cli-DRoN_kmx.js`)).registerQrCli(e)}},{name:`clawbot`,description:`Legacy clawbot command aliases`,hasSubcommands:!0,register:async e=>{(await import(`./clawbot-cli-CMO7lfXx.js`)).registerClawbotCli(e)}},{name:`pairing`,description:`Secure DM pairing (approve inbound requests)`,hasSubcommands:!0,register:async e=>{let{registerPluginCliCommands:t}=await import(`./cli-DcG2OfeS.js`),n=await f();n&&t(e,n),(await import(`./pairing-cli-DKEqBzQE.js`)).registerPairingCli(e)}},{name:`plugins`,description:`Manage OpenClaw plugins and extensions`,hasSubcommands:!0,register:async e=>{(await import(`./plugins-cli-DaxkOvPH.js`)).registerPluginsCli(e);let{registerPluginCliCommands:t}=await import(`./cli-DcG2OfeS.js`),n=await f();n&&t(e,n)}},{name:`channels`,description:`Manage connected chat channels (Telegram, Discord, etc.)`,hasSubcommands:!0,register:async e=>{(await import(`./channels-cli-BomYL9U-.js`)).registerChannelsCli(e)}},{name:`directory`,description:`Lookup contact and group IDs (self, peers, groups) for supported chat channels`,hasSubcommands:!0,register:async e=>{(await import(`./directory-cli-C38jFBRE.js`)).registerDirectoryCli(e)}},{name:`security`,description:`Security tools and local config audits`,hasSubcommands:!0,register:async e=>{(await import(`./security-cli-BYdTkRgj.js`)).registerSecurityCli(e)}},{name:`secrets`,description:`Secrets runtime reload controls`,hasSubcommands:!0,register:async e=>{(await import(`./secrets-cli-CW8Xr5vl.js`)).registerSecretsCli(e)}},{name:`skills`,description:`List and inspect available skills`,hasSubcommands:!0,register:async e=>{(await import(`./skills-cli-D8inpQ0g.js`)).registerSkillsCli(e)}},{name:`update`,description:`Update OpenClaw and inspect update channel status`,hasSubcommands:!0,register:async e=>{(await import(`./update-cli-CQGioR5x.js`)).registerUpdateCli(e)}},{name:`completion`,description:`Generate shell completion script`,hasSubcommands:!1,register:async e=>{(await import(`./completion-cli-CXSmC7Nh.js`).then(e=>e.n)).registerCompletionCli(e)}}];function m(){return p}function h(){return p.filter(e=>e.hasSubcommands).map(e=>e.name)}async function g(e,t){let n=p.find(e=>e.name===t);return n?(c(e,n.name),await n.register(e),!0):!1}function _(e,t){let n=e.command(t.name).description(t.description);n.allowUnknownOption(!0),n.allowExcessArguments(!0),n.action(async(...r)=>{s(e,n),await t.register(e),await o(e,r)})}function v(e,n=process.argv){if(d(n)){for(let t of p)t.register(e);return}let r=t(n);if(r&&u(n)){let t=p.find(e=>e.name===r);if(t){_(e,t);return}}for(let t of p)_(e,t)}export{l as a,v as i,m as n,c as o,g as r,o as s,h as t};