@qqbrowser/openclaw-qbot 0.0.142 → 0.0.143

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 (257) hide show
  1. package/dist/{agents-Bpp_F5In.js → agents-D3Z05GqK.js} +2 -2
  2. package/dist/{agents.config-DfIJAGcd.js → agents.config-BUQjISaN.js} +2 -2
  3. package/dist/{agents.config-B6LRG9eP.js → agents.config-BvxrGqOT.js} +2 -2
  4. package/dist/{auth-choice-DvTApGhx.js → auth-choice-CYGzLW73.js} +2 -2
  5. package/dist/{auth-choice-EQdNd7jO.js → auth-choice-DJn6683d.js} +2 -2
  6. package/dist/{banner-9u45RL26.js → banner-xQa2kS6O.js} +2 -2
  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-D2syI791.js → channel-options-BurUBfoY.js} +2 -2
  12. package/dist/{channel-options-CEIzjOno.js → channel-options-Ce8uNnAp.js} +2 -2
  13. package/dist/{channel-web-BrElpZAc.js → channel-web-D5TgFlMz.js} +2 -2
  14. package/dist/{channel-web-CxHbET4B.js → channel-web-D7FkrASC.js} +2 -2
  15. package/dist/{channels-cli-BmAJuuRs.js → channels-cli-BfzZrnkt.js} +2 -2
  16. package/dist/{channels-cli-Dgosczr6.js → channels-cli-DFI6F6G0.js} +2 -2
  17. package/dist/{cli-D8T2tphD.js → cli-CMLvfh6N.js} +2 -2
  18. package/dist/{cli-BcnoCo4z.js → cli-MTpYYgjl.js} +2 -2
  19. package/dist/{command-registry-CfuXCRwV.js → command-registry-CPthpEk3.js} +2 -2
  20. package/dist/{compact-Dg66DXx_.js → compact-BEeB6bwq.js} +7 -7
  21. package/dist/{compact.runtime-3mTLUPqu.js → compact.runtime-BC7F7HPJ.js} +1 -1
  22. package/dist/{compact.runtime-DcTdUW4o.js → compact.runtime-BTUQRS-2.js} +1 -1
  23. package/dist/{compact.runtime-Bhewj5vA.js → compact.runtime-C0GyLWem.js} +1 -1
  24. package/dist/{compact.runtime-XXtYlNJN.js → compact.runtime-CrOFsO5D.js} +1 -1
  25. package/dist/{completion-cli-C40TWdsv.js → completion-cli-C4_SZmjl.js} +2 -2
  26. package/dist/{completion-cli-BZi4nuQb.js → completion-cli-DeGEpJri.js} +2 -2
  27. package/dist/{config-cli-CBte2b1h.js → config-cli-B9hEiZsw.js} +2 -2
  28. package/dist/{config-cli-1ojSLwAj.js → config-cli-BNTGUqL_.js} +2 -2
  29. package/dist/{configure-kod4tmZa.js → configure-DForkh7R.js} +2 -2
  30. package/dist/{configure-DJrNDEpR.js → configure-DR77VUCy.js} +2 -2
  31. package/dist/{deps-send-whatsapp.runtime-C4O9crnk.js → deps-send-whatsapp.runtime-BuIiTn5n.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-5Lot99zq.js → deps-send-whatsapp.runtime-C4hGmfeP.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-LiNvHd_E.js → deps-send-whatsapp.runtime-CYlLppMS.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-Bg-_kVX6.js → deps-send-whatsapp.runtime-FY-HuZ5S.js} +1 -1
  35. package/dist/{doctor-completion-DMJhfrtC.js → doctor-completion-APZJ17BJ.js} +2 -2
  36. package/dist/{doctor-completion-BJ6steqx.js → doctor-completion-Bad_h3hm.js} +2 -2
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-CKu0FA7D.js → gateway-cli-CbJj0QhL.js} +3 -3
  40. package/dist/{gateway-cli-C_s9eMlC.js → gateway-cli-tXsBFRlk.js} +3 -3
  41. package/dist/{health-PaRHFItm.js → health-DBu0V1Y-.js} +2 -2
  42. package/dist/{health-BgOggK9k.js → health-RQzDNQwf.js} +2 -2
  43. package/dist/{hooks-cli-CsBrScq0.js → hooks-cli-B3eDoEHO.js} +2 -2
  44. package/dist/{hooks-cli-BzyzTNBx.js → hooks-cli-xgORhqZ2.js} +2 -2
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-C_Vg3Cty.js → models-BEO5lvkx.js} +2 -2
  48. package/dist/{models-cli-CDZliTXq.js → models-cli-BbcJ6A0F.js} +2 -2
  49. package/dist/{models-cli-bGr8jwAb.js → models-cli-Dacwv6BY.js} +2 -2
  50. package/dist/{npm-resolution-DWPloph4.js → npm-resolution-Bui58Ks1.js} +2 -2
  51. package/dist/{npm-resolution-BnJGLwhi.js → npm-resolution-Ct6MRtq6.js} +2 -2
  52. package/dist/{onboard-B0BNCQaO.js → onboard-7i9A1nNd.js} +3 -3
  53. package/dist/{onboard-CjVhdaiR.js → onboard-DSaXIS5U.js} +3 -3
  54. package/dist/{onboard-channels-CZK_7xMR.js → onboard-channels-BXReNh4B.js} +2 -2
  55. package/dist/{onboard-channels-BMIOddLN.js → onboard-channels-CjXCpXI-.js} +2 -2
  56. package/dist/{onboarding-ouEqUuUr.js → onboarding-BRewu6jg.js} +2 -2
  57. package/dist/{onboarding-B6ixWwgp.js → onboarding-RZTEMxl0.js} +2 -2
  58. package/dist/{onboarding.finalize-DsMVlTcH.js → onboarding.finalize-Bi53z1zE.js} +2 -2
  59. package/dist/{onboarding.finalize-Bgat5Npc.js → onboarding.finalize-Bp8ST2z_.js} +2 -2
  60. package/dist/{pi-embedded-BZSn84Bh.js → pi-embedded-B_6OtP8m.js} +7 -7
  61. package/dist/{pi-embedded-Dsz7p3MF.js → pi-embedded-DjX-gdoY.js} +7 -7
  62. package/dist/{plugin-registry-CIBiHZH1.js → plugin-registry-CI5K3iWc.js} +2 -2
  63. package/dist/{plugin-registry-C6dY-Et7.js → plugin-registry-CYlBYbc8.js} +2 -2
  64. package/dist/plugin-sdk/{channel-web-9zn1Itpg.cjs → channel-web-BSUPSLCU.cjs} +2 -2
  65. package/dist/plugin-sdk/{channel-web-4ZQVqsrt.js → channel-web-CeSPyNTh.js} +2 -2
  66. package/dist/plugin-sdk/{channel-web-BrB00HKH.js → channel-web-Cptth4mc.js} +2 -2
  67. package/dist/plugin-sdk/{channel-web-DN5La-Ol.cjs → channel-web-D4x22KPN.cjs} +2 -2
  68. package/dist/plugin-sdk/{compact.runtime-8oUv1ld1.cjs → compact.runtime-BDgWntMu.cjs} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-CmJayEYX.js → compact.runtime-BJFMaTF4.js} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-BjJCBESR.cjs → compact.runtime-BWadwUyE.cjs} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-ALKRoVEG.js → compact.runtime-Bfu2rMai.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-DBlESOSV.cjs → compact.runtime-Cg47oUHq.cjs} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-Dmc0G6Yn.js → compact.runtime-CqK86P7R.js} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-Chumwp0K.cjs → compact.runtime-CqrB25-A.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-Ddfxp3fz.js → compact.runtime-DeATtENL.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-C_dc78Lp.cjs → compact.runtime-GMu30Jmw.cjs} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-ZrApPcrV.js → compact.runtime-YFzugj-k.js} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-BF4SCZ-5.js → compact.runtime-a8Z4_6wu.js} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-CbzQiVEW.cjs → compact.runtime-jGNfnpo2.cjs} +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-BEDFRjff.js → deps-send-whatsapp.runtime-23E2Ab5R.js} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-QY0XTSgX.cjs → deps-send-whatsapp.runtime-B1oA3XBA.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Du_3Rw7K.cjs → deps-send-whatsapp.runtime-C8q_3sOf.cjs} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DMeaTnvE.cjs → deps-send-whatsapp.runtime-CsebM75z.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CrVVnzLl.js → deps-send-whatsapp.runtime-D3mYdwaT.js} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DR4rvUQL.js → deps-send-whatsapp.runtime-DDwUEbJ8.js} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BULlOkpi.cjs → deps-send-whatsapp.runtime-Di3p_3Eh.cjs} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime--uXLMs1C.js → deps-send-whatsapp.runtime-JzRD4jTI.js} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BRjb9631.cjs → deps-send-whatsapp.runtime-gEp895yA.cjs} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-VQXeRmRl.js → deps-send-whatsapp.runtime-iV5E6CHf.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-2Us9O7dL.cjs → deps-send-whatsapp.runtime-k0yGrhs2.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BfV5Q2fx.js → deps-send-whatsapp.runtime-v3sqBoDg.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-C2YTqGlf.js → dispatch-3PrSaGZi.js} +7 -7
  95. package/dist/plugin-sdk/{dispatch-DHbSBeFJ.js → dispatch-Bcf1uPHo.js} +7 -7
  96. package/dist/plugin-sdk/{dispatch-SWyfAZT0.cjs → dispatch-BgGE9usQ.cjs} +7 -7
  97. package/dist/plugin-sdk/{dispatch-BYlcmJ9u.js → dispatch-BhUN9ZDP.js} +7 -7
  98. package/dist/plugin-sdk/{dispatch-DK5ub8qa.cjs → dispatch-C3k8j6Zb.cjs} +7 -7
  99. package/dist/plugin-sdk/{dispatch-DCSwqteL.js → dispatch-C_gJPvbD.js} +7 -7
  100. package/dist/plugin-sdk/{dispatch-5v3v8zzA.js → dispatch-Df8B7owq.js} +7 -7
  101. package/dist/plugin-sdk/{dispatch-CNy3g9ma.cjs → dispatch-YK0qHNtb.cjs} +7 -7
  102. package/dist/plugin-sdk/{dispatch-B6UbZCpL.cjs → dispatch-_fZDA253.cjs} +7 -7
  103. package/dist/plugin-sdk/{dispatch-mR2vLkGa.cjs → dispatch-wEH2eS4y.cjs} +7 -7
  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-0zCEbT4w.cjs → reply-BoWg-IXT.cjs} +7 -7
  115. package/dist/plugin-sdk/{reply-D-f2bbXy.js → reply-bS9U9BwG.js} +7 -7
  116. package/dist/plugin-sdk/{slash-dispatch.runtime-CNhhOTEP.js → slash-dispatch.runtime-4y3z-kPo.js} +1 -1
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-B3b2L4iH.js → slash-dispatch.runtime-BRr9YGOs.js} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-CPPp4KKH.cjs → slash-dispatch.runtime-BtdMVJQe.cjs} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-Dw9M-fvv.js → slash-dispatch.runtime-C6iak1_0.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-BoTYqNiv.js → slash-dispatch.runtime-CMx727dE.js} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-CaWoVNJu.cjs → slash-dispatch.runtime-CXXaAMYa.cjs} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-DbheDKxM.cjs → slash-dispatch.runtime-Cvom2Onl.cjs} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-DpBWBF7J.js → slash-dispatch.runtime-D00kIROj.js} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-DSQ2U0MM.cjs → slash-dispatch.runtime-DEu-D4XB.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-Bu6Gwr3m.cjs → slash-dispatch.runtime-DG7_jQXD.cjs} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-CCEMBSm2.cjs → slash-dispatch.runtime-DVP1q-_z.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-Dm_cVnlq.js → slash-dispatch.runtime-U6qjtCfd.js} +1 -1
  128. package/dist/plugin-sdk/{subagent-registry-runtime-bVH8kl6Y.js → subagent-registry-runtime-BD_DkCmR.js} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-Der4fbZK.cjs → subagent-registry-runtime-BWiMCyG_.cjs} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-Pp_rfnk0.js → subagent-registry-runtime-C6vGkwe9.js} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-B0cZ_eaC.cjs → subagent-registry-runtime-CCcI3vhb.cjs} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-B-P4w-z9.js → subagent-registry-runtime-CDCU--WW.js} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-Ciev9m2W.cjs → subagent-registry-runtime-D98xiwmA.cjs} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-DBPvxiJW.cjs → subagent-registry-runtime-LebBdxD7.cjs} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-BfmeSbXD.cjs → subagent-registry-runtime-MfHdezNY.cjs} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-CL0sdx5J.cjs → subagent-registry-runtime-bMabqk9V.cjs} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-DH_Jx5hU.js → subagent-registry-runtime-h3qrqiJH.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-CEvE9keW.js → subagent-registry-runtime-tmI7JUke.js} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-Du8BhjzJ.js → subagent-registry-runtime-uC8wbfNS.js} +1 -1
  140. package/dist/plugin-sdk/{web-BdnQzLgF.js → web-9Os8v8Cu.js} +2 -2
  141. package/dist/plugin-sdk/{web-pcTha_l7.cjs → web-BQ9hOKe8.cjs} +2 -2
  142. package/dist/plugin-sdk/{web-C9T7tf6w.js → web-Bjk0MWu3.js} +2 -2
  143. package/dist/plugin-sdk/{web-_tj8xNZE.js → web-BsmnVZaX.js} +2 -2
  144. package/dist/plugin-sdk/{web-B2PwjHsu.cjs → web-CUbdclQS.cjs} +2 -2
  145. package/dist/plugin-sdk/{web-CcYBsmAj.cjs → web-C_Vx3mgY.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-BZoOYDwf.js → web-Cdo1e0C7.js} +1 -1
  147. package/dist/plugin-sdk/{web-CODD4ksc.cjs → web-CfTkaUMk.cjs} +2 -2
  148. package/dist/plugin-sdk/{web-24o5tNe3.js → web-DkmdYSZ8.js} +1 -1
  149. package/dist/plugin-sdk/{web-B-QDcVRv.cjs → web-DpGXJ6SQ.cjs} +2 -2
  150. package/dist/plugin-sdk/{web-Czl9vNVv.cjs → web-DuF9udb6.cjs} +1 -1
  151. package/dist/plugin-sdk/{web-CkdCvvR-.js → web-Jr2J55LO.js} +2 -2
  152. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  153. package/dist/plugin-sdk/whatsapp.js +1 -1
  154. package/dist/{plugins-cli-BiVMAr5T.js → plugins-cli-BzJeq-CW.js} +2 -2
  155. package/dist/{plugins-cli-BbjMbzJU.js → plugins-cli-o74CJV4A.js} +2 -2
  156. package/dist/{program-BrAZTwFr.js → program-D9AMAbv6.js} +3 -3
  157. package/dist/{program-context-B9ydtPje.js → program-context-BX9wN65q.js} +2 -2
  158. package/dist/{prompt-select-styled-BeJNbzSa.js → prompt-select-styled-C2c13Ndq.js} +2 -2
  159. package/dist/{prompt-select-styled-DIOWLjl0.js → prompt-select-styled-hxyoyq2i.js} +2 -2
  160. package/dist/{provider-auth-helpers-pBVCjBj9.js → provider-auth-helpers-BzlcSA6U.js} +2 -2
  161. package/dist/{provider-auth-helpers-1lU43eTW.js → provider-auth-helpers-CDIiLD1m.js} +2 -2
  162. package/dist/{push-apns-BGUOmD5M.js → push-apns-CrAWstBo.js} +2 -2
  163. package/dist/{push-apns-B_a2MBJ4.js → push-apns-CrMV74Qs.js} +2 -2
  164. package/dist/{register.agent-CX78s_X9.js → register.agent-CisptTv_.js} +2 -2
  165. package/dist/{register.agent-DLDKQENq.js → register.agent-Dl2Ef-K5.js} +2 -2
  166. package/dist/{register.configure-BA5u9hT3.js → register.configure-CvPihXst.js} +2 -2
  167. package/dist/{register.configure-BhPtf3Qo.js → register.configure-D8bJJ16k.js} +2 -2
  168. package/dist/{register.maintenance-BhsBepKS.js → register.maintenance-AeTvVTtt.js} +2 -2
  169. package/dist/{register.maintenance-r_MzNK3-.js → register.maintenance-BkM8-Ttt.js} +2 -2
  170. package/dist/{register.message-CTF--Z2a.js → register.message-3zVHQZ27.js} +2 -2
  171. package/dist/{register.message-jcZ875be.js → register.message-CM_Qudzn.js} +2 -2
  172. package/dist/{register.onboard-C3yL50_c.js → register.onboard-BY-QLNp9.js} +2 -2
  173. package/dist/{register.onboard-CNwnStUk.js → register.onboard-C-j99DGw.js} +2 -2
  174. package/dist/{register.setup-BRJMzgfU.js → register.setup-DA4HFCro.js} +2 -2
  175. package/dist/{register.setup-BvsS-zgm.js → register.setup-DiAi_1pJ.js} +2 -2
  176. package/dist/{register.status-health-sessions-Dqmkw820.js → register.status-health-sessions-BXiMraHZ.js} +2 -2
  177. package/dist/{register.status-health-sessions-DVc__2pc.js → register.status-health-sessions-Bo9VWxLG.js} +2 -2
  178. package/dist/{register.subclis-D-24j83X.js → register.subclis-smZuHVcv.js} +2 -2
  179. package/dist/{reply-l-Y47HP4.js → reply-CjyZeZ-j.js} +7 -7
  180. package/dist/{run-main-B_YBE_TN.js → run-main-DEZR4lCo.js} +2 -2
  181. package/dist/{server-node-events-CFSY_-4t.js → server-node-events-BWiQg1NL.js} +2 -2
  182. package/dist/{server-node-events-ZFwmPwQ-.js → server-node-events-DicMyck-.js} +2 -2
  183. package/dist/{slash-dispatch.runtime-pdAIQrzR.js → slash-dispatch.runtime-CGgP5dBX.js} +1 -1
  184. package/dist/{slash-dispatch.runtime-CKWXmLO1.js → slash-dispatch.runtime-CknX8Fkv.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-DIR5H2MY.js → slash-dispatch.runtime-CoKGpcpS.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-14ABU-DD.js → slash-dispatch.runtime-pSpPe8qL.js} +1 -1
  187. package/dist/{status-DYqPF0rB.js → status-BoL8-JxA.js} +2 -2
  188. package/dist/{status-JIPeVrsc.js → status-DEAX-TLb.js} +2 -2
  189. package/dist/{subagent-registry-runtime-rPbwTnju.js → subagent-registry-runtime-2Nh6-7ym.js} +1 -1
  190. package/dist/{subagent-registry-runtime-DTVXQJOP.js → subagent-registry-runtime-CG_2Atu3.js} +1 -1
  191. package/dist/{subagent-registry-runtime-Cj4CKKl_.js → subagent-registry-runtime-Cc264UfD.js} +1 -1
  192. package/dist/{subagent-registry-runtime-8_ktZPZB.js → subagent-registry-runtime-CpYm78z3.js} +1 -1
  193. package/dist/{update-cli-BwBMOeP0.js → update-cli-C0qadZEs.js} +2 -2
  194. package/dist/{update-cli-YrBbmw4f.js → update-cli-ISorpxrU.js} +2 -2
  195. package/dist/{update-runner-BvtyRBD2.js → update-runner-CvWH2ZAc.js} +2 -2
  196. package/dist/{update-runner-DYamgo1V.js → update-runner-mMbwEOlU.js} +2 -2
  197. package/dist/{web-DwcxsgH0.js → web-ARUUCMQo.js} +2 -2
  198. package/dist/{web-C15yQ-wI.js → web-C6jRFeYp.js} +1 -1
  199. package/dist/{web-C6So15hm.js → web-CDXYiCsB.js} +1 -1
  200. package/dist/{web-Cq3xWCaD.js → web-CiagxaWr.js} +2 -2
  201. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +42 -42
  202. package/node_modules/@aws-sdk/core/dist-cjs/index.js +17 -0
  203. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +17 -0
  204. package/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js +1 -0
  205. package/node_modules/@aws-sdk/core/dist-es/submodules/client/longPollMiddleware.js +15 -0
  206. package/node_modules/@aws-sdk/core/package.json +11 -11
  207. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  208. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  209. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  210. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  211. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  212. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  213. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  214. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  215. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
  216. package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
  217. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  218. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  219. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  220. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  221. package/node_modules/@aws-sdk/middleware-websocket/package.json +9 -9
  222. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  223. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  224. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  225. package/node_modules/@aws-sdk/types/package.json +2 -2
  226. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  227. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  228. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  229. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  230. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  231. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/dist/index.js +1 -0
  232. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/package.json +1 -1
  233. package/node_modules/content-disposition/index.js +118 -40
  234. package/node_modules/content-disposition/package.json +8 -11
  235. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
  236. package/node_modules/path-expression-matcher/lib/pem.d.cts +18 -0
  237. package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
  238. package/node_modules/path-expression-matcher/package.json +1 -1
  239. package/node_modules/path-expression-matcher/src/Expression.js +2 -2
  240. package/node_modules/path-expression-matcher/src/ExpressionSet.js +24 -4
  241. package/package.json +1 -1
  242. package/preset-config.json +1 -1
  243. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +0 -201
  244. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +0 -62
  245. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +0 -157
  246. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/constants.js +0 -2
  247. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromEnvSigningName.js +0 -16
  248. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +0 -81
  249. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +0 -8
  250. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +0 -11
  251. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +0 -10
  252. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/index.js +0 -4
  253. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js +0 -5
  254. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js +0 -7
  255. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js +0 -7
  256. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js +0 -8
  257. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +0 -70
@@ -1,6 +1,6 @@
1
- import{S as e,T as t,j as n,p as r,t as i}from"./subsystem-C5XF2Fy5.js";import{C as a,T as o,f as s,m as c,p as l,r as u,v as d}from"./utils-UGOV_184.js";import{Hn as f,Wn as p,ba as m,ei as h,qn as g,qs as _,si as v,ti as y}from"./model-selection-BlC_rXAN.js";import{$n as b,$t as x,An as S,Ar as ee,Bn as C,Dn as w,En as T,Hn as E,Sn as D,Vn as O,_n as te,bi as ne,cn as re,dt as ie,er as ae,in as k,ir as A,jn as j,jr as M,kn as N,rn as P,rr as F,sn as I,t as oe,ut as se,vn as L,vr as ce,wt as le,yn as R,zn as z}from"./reply-l-Y47HP4.js";import{a as B,c as V,n as H,r as U}from"./session-key-D3P0tf5P.js";import{t as ue}from"./command-format-BbDT1tlm.js";import{$ as de,G as W,U as G,q as fe}from"./plugins-CYLrFT4h.js";import{c as K}from"./paths-yLEk_25I.js";import{u as pe}from"./audio-transcription-runner-D4Bp6MM7.js";import{t as me}from"./local-roots-6waH0SZ0.js";import{c as he}from"./pairing-store-Cg2UxreQ.js";import{a as ge,o as _e,s as ve}from"./group-access-D2DOYMfr.js";import{X as ye,Z as be}from"./send-B7sHR38c2.js";import{a as xe,d as Se,h as Ce,m as we,s as Te}from"./ir-Dk7OQ4bA.js";import{_ as Ee,h as De,v as Oe,y as ke}from"./read-only-account-inspect-DBwAwB3_.js";import{n as Ae}from"./channel-activity-YjYNzCpJ.js";import{t as je}from"./tables-Oieq7UbT.js";import{r as Me}from"./format-duration-D5AMtmHa.js";import{r as Ne}from"./active-listener-DeKRt_UV.js";import{i as Pe,r as Fe}from"./outbound-Bz8bbrMI.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-CUUGjiV3.js";import{randomUUID as ze}from"node:crypto";import{DisconnectReason as Be,downloadMediaMessage as Ve,extractMessageContent as He,getContentType as Ue,isJidGroup as We,normalizeMessageContent as Ge}from"@whiskeysockets/baileys";const Ke={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function qe(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function Je(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Ke,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=u(i.factor,1.1,10),i.jitter=u(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return ze()}const Y=i(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),Ye=Y.child(`heartbeat`);function Xe(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const Ze=ce({ttlMs:20*6e4,maxSize:5e3});function Qe(e){return Ze.check(e)}const $e=new Set([`FN`,`N`,`TEL`]);function et(e){if(!e)return{phones:[]};let t=e.split(/\r?\n/),n,r,i=[];for(let e of t){let t=e.trim();if(!t)continue;let a=t.indexOf(`:`);if(a===-1)continue;let o=t.slice(0,a).toUpperCase(),s=t.slice(a+1).trim();if(!s)continue;let c=tt(o);if(!c||!$e.has(c))continue;let l=nt(s);if(l){if(c===`FN`&&!r){r=rt(l);continue}if(c===`N`&&!n){n=rt(l);continue}if(c===`TEL`){let e=it(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function tt(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function nt(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function rt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function it(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return Ge(e)}function at(e){if(!e)return;let t=Ue(e),n=t?e[t]:void 0,r=n&&typeof n==`object`&&`contextInfo`in n?n.contextInfo:void 0;if(r)return r;let i=e.extendedTextMessage?.contextInfo??e.imageMessage?.contextInfo??e.videoMessage?.contextInfo??e.documentMessage?.contextInfo??e.audioMessage?.contextInfo??e.stickerMessage?.contextInfo??e.buttonsResponseMessage?.contextInfo??e.listResponseMessage?.contextInfo??e.templateButtonReplyMessage?.contextInfo??e.interactiveResponseMessage?.contextInfo??e.buttonsMessage?.contextInfo??e.listMessage?.contextInfo;if(i)return i;for(let t of Object.values(e)){if(!t||typeof t!=`object`||!(`contextInfo`in t))continue;let e=t.contextInfo;if(e)return e}}function ot(e){let t=Q(e);if(!t)return;let n=[t.extendedTextMessage?.contextInfo?.mentionedJid,t.extendedTextMessage?.contextInfo?.quotedMessage?.extendedTextMessage?.contextInfo?.mentionedJid,t.imageMessage?.contextInfo?.mentionedJid,t.videoMessage?.contextInfo?.mentionedJid,t.documentMessage?.contextInfo?.mentionedJid,t.audioMessage?.contextInfo?.mentionedJid,t.stickerMessage?.contextInfo?.mentionedJid,t.buttonsResponseMessage?.contextInfo?.mentionedJid,t.listResponseMessage?.contextInfo?.mentionedJid].flatMap(e=>e??[]).filter(Boolean);if(n.length!==0)return Array.from(new Set(n))}function st(e){let t=Q(e);if(!t)return;let n=He(t),r=[t,n&&n!==t?n:void 0];for(let e of r){if(!e)continue;if(typeof e.conversation==`string`&&e.conversation.trim())return e.conversation.trim();let t=e.extendedTextMessage?.text;if(t?.trim())return t.trim();let n=e.imageMessage?.caption??e.videoMessage?.caption??e.documentMessage?.caption;if(n?.trim())return n.trim()}let i=lt(t)??(n&&n!==t?lt(n):void 0);if(i)return i}function ct(e){let t=Q(e);if(t){if(t.imageMessage)return`<media:image>`;if(t.videoMessage)return`<media:video>`;if(t.audioMessage)return`<media:audio>`;if(t.documentMessage)return`<media:document>`;if(t.stickerMessage)return`<media:sticker>`}}function lt(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=ut({displayName:n.displayName,vcard:n.vcard});return dt(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return ft(r.map(e=>ut({displayName:e.displayName,vcard:e.vcard})).map(e=>pt(e.name,e.phones)).filter(e=>!!e),r.length)}function ut(e){let t=(e.displayName??``).trim(),n=et(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function dt(e,t){let n=pt(e,t);return n?`<contact: ${n}>`:`<contact>`}function ft(e,t){let n=e.map(e=>e.trim()).filter(Boolean);if(n.length===0)return`<contacts: ${t} ${t===1?`contact`:`contacts`}>`;let r=Math.max(t-n.length,0),i=r>0?` +${r} more`:``;return`<contacts: ${n.join(`, `)}${i}>`}function pt(e,t){let n=[e,mt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function mt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=ht(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function ht(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function gt(e){let t=Q(e);if(!t)return null;let n=t.liveLocationMessage??void 0;if(n){let e=n.degreesLatitude,t=n.degreesLongitude;if(e!=null&&t!=null){let r=Number(e),i=Number(t);if(Number.isFinite(r)&&Number.isFinite(i))return{latitude:r,longitude:i,accuracy:n.accuracyInMeters??void 0,caption:n.caption??void 0,source:`live`,isLive:!0}}}let r=t.locationMessage??void 0;if(r){let e=r.degreesLatitude,t=r.degreesLongitude;if(e!=null&&t!=null){let n=Number(e),i=Number(t);if(Number.isFinite(n)&&Number.isFinite(i)){let e=!!r.isLive;return{latitude:n,longitude:i,accuracy:r.accuracyInMeters??void 0,name:r.name??void 0,address:r.address??void 0,caption:r.comment??void 0,source:e?`live`:r.name||r.address?`place`:`pin`,isLive:e}}}}return null}function _t(t){let n=Q(t);if(!n)return null;let r=at(n),i=Ge(r?.quotedMessage);if(!i)return null;let a=gt(i),o=a?ye(a):void 0,s=[st(i),o].filter(Boolean).join(`
1
+ import{S as e,T as t,j as n,p as r,t as i}from"./subsystem-C5XF2Fy5.js";import{C as a,T as o,f as s,m as c,p as l,r as u,v as d}from"./utils-UGOV_184.js";import{Hn as f,Wn as p,ba as m,ei as h,qn as g,qs as _,si as v,ti as y}from"./model-selection-BlC_rXAN.js";import{$n as b,$t as x,An as S,Ar as ee,Bn as C,Dn as w,En as T,Hn as E,Sn as D,Vn as O,_n as te,bi as ne,cn as re,dt as ie,er as ae,in as k,ir as A,jn as j,jr as M,kn as N,rn as P,rr as F,sn as I,t as oe,ut as se,vn as L,vr as ce,wt as le,yn as R,zn as z}from"./reply-CjyZeZ-j.js";import{a as B,c as V,n as H,r as U}from"./session-key-D3P0tf5P.js";import{t as ue}from"./command-format-BbDT1tlm.js";import{$ as de,G as W,U as G,q as fe}from"./plugins-CYLrFT4h.js";import{c as K}from"./paths-yLEk_25I.js";import{u as pe}from"./audio-transcription-runner-D4Bp6MM7.js";import{t as me}from"./local-roots-6waH0SZ0.js";import{c as he}from"./pairing-store-Cg2UxreQ.js";import{a as ge,o as _e,s as ve}from"./group-access-D2DOYMfr.js";import{X as ye,Z as be}from"./send-B7sHR38c2.js";import{a as xe,d as Se,h as Ce,m as we,s as Te}from"./ir-Dk7OQ4bA.js";import{_ as Ee,h as De,v as Oe,y as ke}from"./read-only-account-inspect-DBwAwB3_.js";import{n as Ae}from"./channel-activity-YjYNzCpJ.js";import{t as je}from"./tables-Oieq7UbT.js";import{r as Me}from"./format-duration-D5AMtmHa.js";import{r as Ne}from"./active-listener-DeKRt_UV.js";import{i as Pe,r as Fe}from"./outbound-Bz8bbrMI.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-CUUGjiV3.js";import{randomUUID as ze}from"node:crypto";import{DisconnectReason as Be,downloadMediaMessage as Ve,extractMessageContent as He,getContentType as Ue,isJidGroup as We,normalizeMessageContent as Ge}from"@whiskeysockets/baileys";const Ke={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function qe(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function Je(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Ke,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=u(i.factor,1.1,10),i.jitter=u(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return ze()}const Y=i(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),Ye=Y.child(`heartbeat`);function Xe(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const Ze=ce({ttlMs:20*6e4,maxSize:5e3});function Qe(e){return Ze.check(e)}const $e=new Set([`FN`,`N`,`TEL`]);function et(e){if(!e)return{phones:[]};let t=e.split(/\r?\n/),n,r,i=[];for(let e of t){let t=e.trim();if(!t)continue;let a=t.indexOf(`:`);if(a===-1)continue;let o=t.slice(0,a).toUpperCase(),s=t.slice(a+1).trim();if(!s)continue;let c=tt(o);if(!c||!$e.has(c))continue;let l=nt(s);if(l){if(c===`FN`&&!r){r=rt(l);continue}if(c===`N`&&!n){n=rt(l);continue}if(c===`TEL`){let e=it(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function tt(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function nt(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function rt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function it(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return Ge(e)}function at(e){if(!e)return;let t=Ue(e),n=t?e[t]:void 0,r=n&&typeof n==`object`&&`contextInfo`in n?n.contextInfo:void 0;if(r)return r;let i=e.extendedTextMessage?.contextInfo??e.imageMessage?.contextInfo??e.videoMessage?.contextInfo??e.documentMessage?.contextInfo??e.audioMessage?.contextInfo??e.stickerMessage?.contextInfo??e.buttonsResponseMessage?.contextInfo??e.listResponseMessage?.contextInfo??e.templateButtonReplyMessage?.contextInfo??e.interactiveResponseMessage?.contextInfo??e.buttonsMessage?.contextInfo??e.listMessage?.contextInfo;if(i)return i;for(let t of Object.values(e)){if(!t||typeof t!=`object`||!(`contextInfo`in t))continue;let e=t.contextInfo;if(e)return e}}function ot(e){let t=Q(e);if(!t)return;let n=[t.extendedTextMessage?.contextInfo?.mentionedJid,t.extendedTextMessage?.contextInfo?.quotedMessage?.extendedTextMessage?.contextInfo?.mentionedJid,t.imageMessage?.contextInfo?.mentionedJid,t.videoMessage?.contextInfo?.mentionedJid,t.documentMessage?.contextInfo?.mentionedJid,t.audioMessage?.contextInfo?.mentionedJid,t.stickerMessage?.contextInfo?.mentionedJid,t.buttonsResponseMessage?.contextInfo?.mentionedJid,t.listResponseMessage?.contextInfo?.mentionedJid].flatMap(e=>e??[]).filter(Boolean);if(n.length!==0)return Array.from(new Set(n))}function st(e){let t=Q(e);if(!t)return;let n=He(t),r=[t,n&&n!==t?n:void 0];for(let e of r){if(!e)continue;if(typeof e.conversation==`string`&&e.conversation.trim())return e.conversation.trim();let t=e.extendedTextMessage?.text;if(t?.trim())return t.trim();let n=e.imageMessage?.caption??e.videoMessage?.caption??e.documentMessage?.caption;if(n?.trim())return n.trim()}let i=lt(t)??(n&&n!==t?lt(n):void 0);if(i)return i}function ct(e){let t=Q(e);if(t){if(t.imageMessage)return`<media:image>`;if(t.videoMessage)return`<media:video>`;if(t.audioMessage)return`<media:audio>`;if(t.documentMessage)return`<media:document>`;if(t.stickerMessage)return`<media:sticker>`}}function lt(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=ut({displayName:n.displayName,vcard:n.vcard});return dt(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return ft(r.map(e=>ut({displayName:e.displayName,vcard:e.vcard})).map(e=>pt(e.name,e.phones)).filter(e=>!!e),r.length)}function ut(e){let t=(e.displayName??``).trim(),n=et(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function dt(e,t){let n=pt(e,t);return n?`<contact: ${n}>`:`<contact>`}function ft(e,t){let n=e.map(e=>e.trim()).filter(Boolean);if(n.length===0)return`<contacts: ${t} ${t===1?`contact`:`contacts`}>`;let r=Math.max(t-n.length,0),i=r>0?` +${r} more`:``;return`<contacts: ${n.join(`, `)}${i}>`}function pt(e,t){let n=[e,mt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function mt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=ht(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function ht(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function gt(e){let t=Q(e);if(!t)return null;let n=t.liveLocationMessage??void 0;if(n){let e=n.degreesLatitude,t=n.degreesLongitude;if(e!=null&&t!=null){let r=Number(e),i=Number(t);if(Number.isFinite(r)&&Number.isFinite(i))return{latitude:r,longitude:i,accuracy:n.accuracyInMeters??void 0,caption:n.caption??void 0,source:`live`,isLive:!0}}}let r=t.locationMessage??void 0;if(r){let e=r.degreesLatitude,t=r.degreesLongitude;if(e!=null&&t!=null){let n=Number(e),i=Number(t);if(Number.isFinite(n)&&Number.isFinite(i)){let e=!!r.isLive;return{latitude:n,longitude:i,accuracy:r.accuracyInMeters??void 0,name:r.name??void 0,address:r.address??void 0,caption:r.comment??void 0,source:e?`live`:r.name||r.address?`place`:`pin`,isLive:e}}}}return null}function _t(t){let n=Q(t);if(!n)return null;let r=at(n),i=Ge(r?.quotedMessage);if(!i)return null;let a=gt(i),o=a?ye(a):void 0,s=[st(i),o].filter(Boolean).join(`
2
2
  `).trim();if(s||=ct(i),!s){let t=i?Ue(i):void 0;return e(`Quoted message missing extractable body${t?` (type ${t})`:``}`),null}let c=r?.participant??void 0,u=c?l(c)??c:void 0,d=u??`unknown sender`;return{id:r?.stanzaId?String(r.stanzaId):void 0,body:s,sender:d,senderJid:c,senderE164:u}}function vt(e){return _e({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function yt(t){let n=_(),r=G({cfg:n,accountId:t.accountId}),i=r.dmPolicy??`pairing`,a=r.allowFrom??[],o=await De({provider:`whatsapp`,accountId:r.accountId,dmPolicy:i}),l=a.length===0&&t.selfE164?[t.selfE164]:[],u=a.length>0?a:l,d=r.groupAllowFrom??(a.length>0?a:void 0),f=t.from===t.selfE164,p=r.selfChatMode??s(t.selfE164,a),m=typeof t.pairingGraceMs==`number`&&t.pairingGraceMs>0?t.pairingGraceMs:3e4,h=typeof t.connectedAtMs==`number`&&typeof t.messageTimestampMs==`number`&&t.messageTimestampMs<t.connectedAtMs-m,g=ge(n),{groupPolicy:v,providerMissingFallbackApplied:y}=vt({providerConfigPresent:n.channels?.whatsapp!==void 0,groupPolicy:r.groupPolicy,defaultGroupPolicy:g});ve({providerMissingFallbackApplied:y,providerKey:`whatsapp`,accountId:r.accountId,log:t=>e(t)});let b=c(t.from),x=typeof t.senderE164==`string`?c(t.senderE164):null,S=Oe({isGroup:t.group,dmPolicy:i,groupPolicy:v,allowFrom:t.group?a:u,groupAllowFrom:d,storeAllowFrom:o,isSenderAllowed:e=>{if(e.includes(`*`))return!0;let n=new Set(e.map(e=>c(String(e))).filter(e=>!!e));return!t.group&&f?!0:t.group?!!(x&&n.has(x)):n.has(b)}});if(t.group&&S.decision!==`allow`)return S.reason===`groupPolicy=disabled`?e(`Blocked group message (groupPolicy: disabled)`):S.reason===`groupPolicy=allowlist (empty allowlist)`?e(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):e(`Blocked group message from ${t.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:r.accountId};if(!t.group){if(t.isFromMe&&!f)return e(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:r.accountId};if(S.decision===`block`&&S.reason===`dmPolicy=disabled`)return e(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:r.accountId};if(S.decision===`pairing`&&!f){let n=t.from;return h?e(`Skipping pairing reply for historical DM from ${n}.`):await I({channel:`whatsapp`,senderId:n,senderIdLine:`Your WhatsApp phone number: ${n}`,meta:{name:(t.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await he({channel:`whatsapp`,id:e,accountId:r.accountId,meta:t}),onCreated:()=>{e(`whatsapp pairing request sender=${n} name=${t.pushName??`unknown`}`)},sendPairingReply:async e=>{await t.sock.sendMessage(t.remoteJid,{text:e})},onReplyError:t=>{e(`whatsapp pairing reply failed for ${n}: ${String(t)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:r.accountId}}if(S.decision!==`allow`)return e(`Blocked unauthorized sender ${t.from} (dmPolicy=${i})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:r.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:p,resolvedAccountId:r.accountId}}function bt(e){return Ge(e)}function xt(e){let t=e.imageMessage?.mimetype??e.videoMessage?.mimetype??e.documentMessage?.mimetype??e.audioMessage?.mimetype??e.stickerMessage?.mimetype??void 0;if(t)return t;if(e.audioMessage)return`audio/ogg; codecs=opus`;if(e.imageMessage)return`image/jpeg`;if(e.videoMessage)return`video/mp4`;if(e.stickerMessage)return`image/webp`}async function St(t,n){let r=bt(t.message);if(!r)return;let i=xt(r),a=r.documentMessage?.fileName??void 0;if(!(!r.imageMessage&&!r.videoMessage&&!r.documentMessage&&!r.audioMessage&&!r.stickerMessage))try{return{buffer:await Ve(t,`buffer`,{},{reuploadRequest:n.updateMediaMessage,logger:n.logger}),mimetype:i,fileName:a}}catch(t){e(`downloadMediaMessage failed: ${String(t)}`);return}}function Ct(e){Ae({channel:`whatsapp`,accountId:e,direction:`outbound`})}function wt(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function Tt(e){return{sendMessage:async(t,n,r,i,a)=>{let s=o(t),c;if(r&&i)if(i.startsWith(`image/`))c={image:r,caption:n||void 0,mimetype:i};else if(i.startsWith(`audio/`))c={audio:r,ptt:!0,mimetype:i};else if(i.startsWith(`video/`)){let e=a?.gifPlayback;c={video:r,caption:n||void 0,mimetype:i,...e?{gifPlayback:!0}:{}}}else c={document:r,fileName:a?.fileName?.trim()||`file`,caption:n||void 0,mimetype:i};else c={text:n};let l=await e.sock.sendMessage(s,c);return Ct(a?.accountId??e.defaultAccountId),{messageId:wt(l)}},sendPoll:async(t,n)=>{let r=o(t),i=await e.sock.sendMessage(r,{poll:{name:n.question,values:n.options,selectableCount:n.maxSelections??1}});return Ct(e.defaultAccountId),{messageId:wt(i)}},sendReaction:async(t,n,r,i,a)=>{let s=o(t);await e.sock.sendMessage(s,{react:{text:r,key:{remoteJid:s,id:n,fromMe:i,participant:a?o(a):void 0}}})},sendComposingTo:async t=>{let n=o(t);await e.sock.sendPresenceUpdate(`composing`,n)}}}async function Et(r){let a=n({module:`web-inbound`}),o=i(`gateway/channels/whatsapp`).child(`inbound`),s=await Re(!1,r.verbose,{authDir:r.authDir});await Ie(s);let c=Date.now(),u=null,f=new Promise(e=>{u=e}),p=e=>{if(!u)return;let t=u;u=null,t(e)};try{await s.sendPresenceUpdate(`available`),t()&&e(`Sent global 'available' presence on connect`)}catch(t){e(`Failed to send 'available' presence on connect: ${String(t)}`)}let h=s.user?.id,g=h?l(h):null,_=N({debounceMs:r.debounceMs??0,buildKey:e=>{let t=e.chatType===`group`?e.senderJid??e.senderE164??e.senderName??e.from:e.from;if(!t)return null;let n=e.chatType===`group`?e.chatId:e.from;return`${e.accountId}:${n}:${t}`},shouldDebounce:r.shouldDebounce,onFlush:async e=>{let t=e.at(-1);if(!t)return;if(e.length===1){await r.onMessage(t);return}let n=new Set;for(let t of e)for(let e of t.mentionedJids??[])n.add(e);let i=e.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...t,body:i,mentionedJids:n.size>0?Array.from(n):void 0};await r.onMessage(a)},onError:e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}}),v=new Map,y=300*1e3,b=s.signalRepository?.lidMapping,x=async e=>d(e,{authDir:r.authDir,lidLookup:b}),S=async t=>{let n=v.get(t);if(n&&n.expires>Date.now())return n;try{let e=await s.groupMetadata(t),n=(await Promise.all(e.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:e.subject,participants:n,expires:Date.now()+y};return v.set(t,r),r}catch(n){return e(`Failed to fetch group metadata for ${t}: ${String(n)}`),{expires:Date.now()+y}}},ee=async e=>{let t=e.key?.id??void 0,n=e.key?.remoteJid;if(!n||n.endsWith(`@status`)||n.endsWith(`@broadcast`))return null;let i=We(n)===!0;if(t&&Qe(`${r.accountId}:${n}:${t}`))return null;let a=e.key?.participant??void 0,o=i?n:await x(n);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(n);u=e.subject,d=e.participants}let f=e.messageTimestamp?Number(e.messageTimestamp)*1e3:void 0,p=await yt({accountId:r.accountId,from:o,selfE164:g,senderE164:l,group:i,pushName:e.pushName??void 0,isFromMe:!!e.key?.fromMe,messageTimestampMs:f,connectedAtMs:c,sock:{sendMessage:(e,t)=>s.sendMessage(e,t)},remoteJid:n});return p.allowed?{id:t,remoteJid:n,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},C=async n=>{let{id:i,remoteJid:a,participantJid:o,access:c}=n;if(i&&!c.isSelfChat&&r.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:a,id:i,participant:o,fromMe:!1}]),t()&&e(`Marked message ${i} as read for ${a}${o?` (participant ${o})`:``}`)}catch(t){e(`Failed to mark message ${i} read: ${String(t)}`)}else i&&c.isSelfChat&&t()&&e(`Self-chat mode: skipping read receipt for ${i}`)},w=async t=>{let n=gt(t.message??void 0),i=n?ye(n):void 0,a=st(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
4
4
  `).trim()),!a&&(a=ct(t.message??void 0),!a))return null;let o=_t(t.message),c,l,u;try{let e=await St(t,s);if(e){let t=(typeof r.mediaMaxMb==`number`&&r.mediaMaxMb>0?r.mediaMaxMb:50)*1024*1024;c=(await m(e.buffer,e.mimetype,`inbound`,t,e.fileName)).path,l=e.mimetype,u=e.fileName}}catch(t){e(`Inbound media download failed: ${String(t)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:c,mediaType:l,mediaFileName:u}},T=async(t,n,r)=>{let i=n.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,i)}catch(t){e(`Presence update failed: ${String(t)}`)}},l=async e=>{await s.sendMessage(i,{text:e})},u=async e=>{await s.sendMessage(i,e)},d=n.messageTimestampMs,f=ot(t.message),p=t.pushName??void 0;a.info({from:n.from,to:g??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let m={id:n.id,from:n.from,conversationId:n.from,to:g??`me`,accountId:n.access.resolvedAccountId,body:r.body,pushName:p,timestamp:d,chatType:n.group?`group`:`direct`,chatId:n.remoteJid,senderJid:n.participantJid,senderE164:n.senderE164??void 0,senderName:p,replyToId:r.replyContext?.id,replyToBody:r.replyContext?.body,replyToSender:r.replyContext?.sender,replyToSenderJid:r.replyContext?.senderJid,replyToSenderE164:r.replyContext?.senderE164,groupSubject:n.groupSubject,groupParticipants:n.groupParticipants,mentionedJids:f??void 0,selfJid:h,selfE164:g,fromMe:!!t.key?.fromMe,location:r.location??void 0,sendComposing:c,reply:l,sendMedia:u,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName};try{Promise.resolve(_.enqueue(m)).catch(e=>{a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){a.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},E=async e=>{if(!(e.type!==`notify`&&e.type!==`append`))for(let t of e.messages??[]){Ae({channel:`whatsapp`,accountId:r.accountId,direction:`inbound`});let n=await ee(t);if(!n||(await C(n),e.type===`append`))continue;let i=await w(t);i&&await T(t,n,i)}};s.ev.on(`messages.upsert`,E);let D=e=>{try{if(e.connection===`close`){let t=Le(e.lastDisconnect?.error);p({status:t,isLoggedOut:t===Be.loggedOut,error:e.lastDisconnect?.error})}}catch(e){a.error({error:String(e)},`connection.update handler error`),p({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,D),{close:async()=>{try{let e=s.ev,t=E,n=D;typeof e.off==`function`?(e.off(`messages.upsert`,t),e.off(`connection.update`,n)):typeof e.removeListener==`function`&&(e.removeListener(`messages.upsert`,t),e.removeListener(`connection.update`,n)),s.ws?.close()}catch(t){e(`Socket close failed: ${String(t)}`)}},onClose:f,signalClose:e=>{p(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Tt({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:r.accountId})}}function Dt(e,t){return{mentionRegexes:F(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Ot(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>l(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?l(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function kt(e,t,n){let r=e=>A(e),i=s(n.selfE164,t.allowFrom);if((e.mentionedJids?.length??0)>0&&!i)return!!(n.selfE164&&n.normalizedMentions.includes(n.selfE164)||n.selfJid&&n.normalizedMentions.includes(n.selfJid));let a=r(e.body);if(t.mentionRegexes.some(e=>e.test(a)))return!0;if(n.selfE164){let t=n.selfE164.replace(/\D/g,``);if(t){if(a.replace(/[^\d]/g,``).includes(t))return!0;let n=e.body.replace(/[\s-]/g,``);if(RegExp(`\\+?${t}`,`i`).test(n))return!0}}return!1}function At(e,t,n){let r=Ot(e,n);return{wasMentioned:kt(e,t,r),details:{from:e.from,body:e.body,bodyClean:A(e.body),mentionedJids:e.mentionedJids??null,normalizedMentionedJids:r.normalizedMentions.length?r.normalizedMentions:null,selfJid:e.selfJid??null,selfJidBare:r.selfJid,selfE164:e.selfE164??null,resolvedSelfE164:r.selfE164}}}function jt(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>c(e)).filter(e=>!!e)}function Mt(e){let t=new Set,n=Math.max(1,e.maxItems??100),r=e=>`combined:${e.sessionKey}:${e.combinedBody}`,i=()=>{for(;t.size>n;){let e=t.values().next().value;if(!e)break;t.delete(e)}};return{rememberText:(n,a)=>{n&&(t.add(n),a.combinedBody&&a.combinedBodySessionKey&&t.add(r({sessionKey:a.combinedBodySessionKey,combinedBody:a.combinedBody})),a.logVerboseMessage&&e.logVerbose?.(`Added to echo detection set (size now: ${t.size}): ${n.substring(0,50)}...`),i())},has:e=>t.has(e),forget:e=>{t.delete(e)},buildCombinedKey:r}}function Nt(e){let t=z({agentId:e.agentId,channel:`whatsapp`,accountId:e.route.accountId,peer:{kind:e.msg.chatType===`group`?`group`:`direct`,id:e.peerId},dmScope:e.cfg.session?.dmScope,identityLinks:e.cfg.session?.identityLinks}),n=U({agentId:e.agentId,mainKey:H});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:C({sessionKey:t,mainSessionKey:n})}}async function Pt(e){let t=e.cfg.broadcast?.[e.peerId];if(!t||!Array.isArray(t)||t.length===0)return!1;let n=e.cfg.broadcast?.strategy||`parallel`;X.info(`Broadcasting message to ${t.length} agents (${n})`);let r=e.cfg.agents?.list?.map(e=>V(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=V(t);if(i&&!r?.includes(n))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let o=Nt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),s={...e.route,agentId:n,...o};try{return await e.processMessage(e.msg,s,e.groupHistoryKey,{groupHistory:a,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${q(e)}`),!1}};if(n===`sequential`)for(let e of t)await o(e);else await Promise.allSettled(t.map(o));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Ft(e,t,n){let r=e;for(let e of t)r=r.replace(e,` `);if(n){let e=n.replace(/\D/g,``);if(e){let t=RegExp(`\\+?${e}`,`g`);r=r.replace(t,` `)}}return r.replace(/\s+/g,` `).trim()}function It(e,t){let n=v({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return h({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Lt(e,t){let n=v({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return y({cfg:e,channel:`whatsapp`,groupId:n??t})}function Rt(e){let t=f(K(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Lt(e.cfg,e.conversationId)?`mention`:`always`;return se(t?.groupActivation)??n}function zt(e,t,n){for(let r of e){let e=c(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Bt(e,t,n,r){if(!n||!r)return;let i=c(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function Vt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&zt(t,i,a),n&&zt(n.keys(),i,a),a.length===0&&r){let e=c(r)??r;e&&a.push(e)}if(a.length!==0)return a.map(e=>{let t=n?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function Ht(e,t){let n=c(t.senderE164??``);return n?jt(e,t.selfE164??void 0).includes(n):!1}function Ut(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;R({historyMap:e.groupHistories,historyKey:e.groupHistoryKey,limit:e.groupHistoryLimit,entry:{sender:t,body:e.msg.body,timestamp:e.msg.timestamp,id:e.msg.id,senderJid:e.msg.senderJid}})}function Wt(e,t){return e.logVerbose(t),Ut({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Gt(e){let t=It(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Bt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Dt(e.cfg,e.agentId),r=Ft(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=ie(r),a=Ht(e.baseMentionConfig,e.msg),o=a&&b(r,e.cfg);if(i.hasCommand&&!a)return Wt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let s=At(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:s.wasMentioned,...s.details},`group mention debug`);let l=s.wasMentioned,u=Rt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,d=e.msg.selfJid?.replace(/:\\d+/,``),f=e.msg.replyToSenderJid?.replace(/:\\d+/,``),p=e.msg.selfE164?c(e.msg.selfE164):null,m=e.msg.replyToSenderE164?c(e.msg.replyToSenderE164):null,h=re({requireMention:u,canDetectMention:!0,wasMentioned:l,implicitMention:!!(d&&f&&d===f||p&&m&&p===m),shouldBypassMention:o});return e.msg.wasMentioned=h.effectiveWasMentioned,!o&&u&&h.shouldSkip?Wt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Kt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function qt(e){let t=K(e.cfg.session?.store,{agentId:e.storeAgentId}),n=g({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:q(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Kt(e.backgroundTasks,n)}function Jt(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?c(e.senderE164)??e.senderE164:e.from.includes(`@`)?l(e.from)??e.from:c(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function Yt(e){let t=(e instanceof Error?`${e.message}\n${e.stack??``}`:(e=>{if(e==null)return``;if(typeof e==`string`)return e;if(e instanceof Error)return`${e.message}\n${e.stack??``}`;if(typeof e==`object`)try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}return typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`?String(e):typeof e==`symbol`?e.description??e.toString():typeof e==`function`?e.name?`[function ${e.name}]`:`[function]`:Object.prototype.toString.call(e)})(e)).toLowerCase();return t.includes(`unsupported state or unable to authenticate data`)||t.includes(`bad mac`)?t.includes(`@whiskeysockets/baileys`)||t.includes(`baileys`)||t.includes(`noise-handler`)||t.includes(`aesdecryptgcm`):!1}function Xt(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Zt(n){let{replyResult:r,msg:i,maxMediaBytes:o,textLimit:s,replyLogger:c,connectionId:l,skipLog:u}=n,d=Date.now();if(Xt(r)){Z.debug(`Suppressed reasoning payload to ${i.from}`);return}let f=n.tableMode??`code`,p=n.chunkMode??`length`,m=Se(Pe(je(r.text||``,f)),s,p),h=r.mediaUrls?.length?r.mediaUrls:r.mediaUrl?[r.mediaUrl]:[],g=async(t,n,r=3)=>{let o;for(let s=1;s<=r;s++)try{return await t()}catch(t){o=t;let c=q(t),l=s===r;if(!/closed|reset|timed\s*out|disconnect/i.test(c)||l)throw t;let u=500*s;e(`Retrying ${n} to ${i.from} after failure (${s}/${r-1}) in ${u}ms: ${c}`),await a(u)}throw o};if(h.length===0&&m.length){let e=m.length;for(let[t,n]of m.entries()){let r=Date.now();if(await g(()=>i.reply(n),`text`),!u){let n=Date.now()-r;Z.debug(`Sent chunk ${t+1}/${e} to ${i.from} (${n.toFixed(0)}ms)`)}}c.info({correlationId:i.id??J(),connectionId:l??null,to:i.from,from:i.to,text:$(r.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let _=[...m];for(let[r,a]of h.entries()){let s=r===0&&_.shift()||void 0;try{let r=await xe(a,{maxBytes:o,localRoots:n.mediaLocalRoots});if(t()&&(e(`Web auto-reply media size: ${(r.buffer.length/(1024*1024)).toFixed(2)}MB`),e(`Web auto-reply media source: ${a} (kind ${r.kind})`)),r.kind===`image`)await g(()=>i.sendMedia({image:r.buffer,caption:s,mimetype:r.contentType}),`media:image`);else if(r.kind===`audio`)await g(()=>i.sendMedia({audio:r.buffer,ptt:!0,mimetype:r.contentType,caption:s}),`media:audio`);else if(r.kind===`video`)await g(()=>i.sendMedia({video:r.buffer,caption:s,mimetype:r.contentType}),`media:video`);else{let e=r.fileName??a.split(`/`).pop()??`file`,t=r.contentType??`application/octet-stream`;await g(()=>i.sendMedia({document:r.buffer,fileName:e,caption:s,mimetype:t}),`media:document`)}Z.info(`Sent media reply to ${i.from} (${(r.buffer.length/(1024*1024)).toFixed(2)}MB)`),c.info({correlationId:i.id??J(),connectionId:l??null,to:i.from,from:i.to,text:s??null,mediaUrl:a,mediaSizeBytes:r.buffer.length,mediaKind:r.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${i.from}: ${q(e)}`),c.warn({err:e,mediaUrl:a},`failed to send web media reply`),r===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,n=[_.shift()??s??``,t].filter(Boolean).join(`
5
5
  `);n&&(Z.warn(`Media skipped; sent text-only to ${i.from}`),await i.reply(n))}}}for(let e of _)await i.reply(e)}function Qt(t){if(!t.msg.id)return;let n=t.cfg.channels?.whatsapp?.ackReaction,r=(n?.emoji??``).trim(),i=n?.direct??!0,a=n?.group??`mentions`,o=t.msg.conversationId??t.msg.from,s=t.msg.chatType===`group`?Rt({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:o}):null;T({emoji:r,isDirect:t.msg.chatType===`direct`,isGroup:t.msg.chatType===`group`,directEnabled:i,groupMode:a,wasMentioned:t.msg.wasMentioned===!0,groupActivated:s===`always`})&&(t.info({chatId:t.msg.chatId,messageId:t.msg.id,emoji:r},`sending ack reaction`),Fe(t.msg.chatId,t.msg.id,r,{verbose:t.verbose,fromMe:!1,participant:t.msg.senderJid,accountId:t.accountId}).catch(n=>{t.warn({error:q(n),chatId:t.msg.chatId,messageId:t.msg.id},`failed to send ack reaction`),e(`WhatsApp ack reaction failed for chat ${t.msg.chatId}: ${q(n)}`)}))}function $t(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function en(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=M(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=$t(n),l=`${s}${n.body}${c?`\n\n${c}`:``}`;return j({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:l,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function tn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,r=c(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!r)return!1;let i=G({cfg:e.cfg,accountId:e.msg.accountId}),a=i.dmPolicy??`pairing`,o=i.groupPolicy??`allowlist`,s=i.allowFrom??[],l=i.groupAllowFrom??(s.length>0?s:void 0),u=n?[]:await De({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:a});return Ee({isGroup:n,dmPolicy:a,groupPolicy:o,allowFrom:s.length>0?s:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:l,storeAllowFrom:u,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>c(String(e))).filter(e=>!!e).includes(r),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function nn(e){let t=G({cfg:e.cfg,accountId:e.msg.accountId});return ke({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>c(e)})}async function rn(n){let r=n.msg.conversationId??n.msg.from,{storePath:i,envelopeOptions:a,previousTimestamp:o}=le({cfg:n.cfg,agentId:n.route.agentId,sessionKey:n.route.sessionKey}),s=en({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,previousTimestamp:o,envelope:a}),u=!1;if(n.msg.chatType===`group`){let e=n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[];e.length>0&&(s=L({entries:e.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:s,excludeLast:!1,formatEntry:e=>j({channel:`WhatsApp`,from:r,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:a})})),u=!(n.suppressGroupHistoryClear??!1)}let d=n.buildCombinedEchoKey({sessionKey:n.route.sessionKey,combinedBody:s});if(n.echoHas(d))return e(`Skipping auto-reply: detected echo for combined message`),n.echoForget(d),!1;Qt({cfg:n.cfg,msg:n.msg,agentId:n.route.agentId,sessionKey:n.route.sessionKey,conversationId:r,verbose:n.verbose,accountId:n.route.accountId,info:n.replyLogger.info.bind(n.replyLogger),warn:n.replyLogger.warn.bind(n.replyLogger)});let f=n.msg.id??J();n.replyLogger.info({connectionId:n.connectionId,correlationId:f,from:n.msg.chatType===`group`?r:n.msg.from,to:n.msg.to,body:$(s,240),mediaType:n.msg.mediaType??null,mediaPath:n.msg.mediaPath??null},`inbound web message`);let m=n.msg.chatType===`group`?r:n.msg.from,h=n.msg.mediaType?`, ${n.msg.mediaType}`:``;X.info(`Inbound message ${m} -> ${n.msg.to} (${n.msg.chatType}${h}, ${s.length} chars)`),t()&&X.debug(`Inbound body: ${$(s,400)}`);let g=n.msg.chatType===`group`?void 0:n.msg.senderE164?c(n.msg.senderE164):n.msg.from.includes(`@`)?l(n.msg.from):c(n.msg.from),_=n.maxMediaTextChunkLimit??Ce(n.cfg,`whatsapp`),v=we(n.cfg,`whatsapp`,n.route.accountId),y=Te({cfg:n.cfg,channel:`whatsapp`,accountId:n.route.accountId}),b=me(n.cfg,n.route.agentId),x=!1,S=!1,C=ae(n.msg.body,n.cfg)?await tn({cfg:n.cfg,msg:n.msg}):void 0,T=n.cfg.messages?.responsePrefix,{onModelSelected:D,...O}=te({cfg:n.cfg,agentId:n.route.agentId,channel:`whatsapp`,accountId:n.route.accountId}),re=n.msg.chatType!==`group`&&!!n.msg.selfE164&&c(n.msg.from)===c(n.msg.selfE164??``),ie=O.responsePrefix??(T===void 0&&re?ee(n.cfg,n.route.agentId):void 0),k=n.msg.chatType===`group`?(n.groupHistory??n.groupHistories.get(n.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,A=ne({Body:s,BodyForAgent:n.msg.body,InboundHistory:k,RawBody:n.msg.body,CommandBody:n.msg.body,From:n.msg.from,To:n.msg.to,SessionKey:n.route.sessionKey,AccountId:n.route.accountId,MessageSid:n.msg.id,ReplyToId:n.msg.replyToId,ReplyToBody:n.msg.replyToBody,ReplyToSender:n.msg.replyToSender,MediaPath:n.msg.mediaPath,MediaUrl:n.msg.mediaUrl,MediaType:n.msg.mediaType,ChatType:n.msg.chatType,ConversationLabel:n.msg.chatType===`group`?r:n.msg.from,GroupSubject:n.msg.groupSubject,GroupMembers:Vt({participants:n.msg.groupParticipants,roster:n.groupMemberNames.get(n.groupHistoryKey),fallbackE164:n.msg.senderE164}),SenderName:n.msg.senderName,SenderId:n.msg.senderJid?.trim()||n.msg.senderE164,SenderE164:n.msg.senderE164,CommandAuthorized:C,WasMentioned:n.msg.wasMentioned,...n.msg.location?be(n.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:n.msg.from}),M=nn({cfg:n.cfg,msg:n.msg}),N=!M||M===g,P=E({route:n.route,sessionKey:n.route.sessionKey});g&&P===n.route.mainSessionKey&&N?qt({cfg:n.cfg,backgroundTasks:n.backgroundTasks,storeAgentId:n.route.agentId,sessionKey:n.route.mainSessionKey,channel:`whatsapp`,to:g,accountId:n.route.accountId,ctx:A,warn:n.replyLogger.warn.bind(n.replyLogger)}):g&&P===n.route.mainSessionKey&&M&&e(`Skipping main-session last route update for ${g} (pinned owner ${M})`);let F=p({storePath:i,sessionKey:n.route.sessionKey,ctx:A}).catch(e=>{n.replyLogger.warn({error:q(e),storePath:i,sessionKey:n.route.sessionKey},`failed updating session meta`)});Kt(n.backgroundTasks,F);let{queuedFinal:I}=await w({ctx:A,cfg:n.cfg,replyResolver:n.replyResolver,dispatcherOptions:{...O,responsePrefix:ie,onHeartbeatStrip:()=>{x||(x=!0,e(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(e,i)=>{if(i.kind!==`final`)return;await Zt({replyResult:e,msg:n.msg,mediaLocalRoots:b,maxMediaBytes:n.maxMediaBytes,textLimit:_,chunkMode:v,replyLogger:n.replyLogger,connectionId:n.connectionId,skipLog:!1,tableMode:y}),S=!0;let a=e.text?!0:void 0;n.rememberSentText(e.text,{combinedBody:s,combinedBodySessionKey:n.route.sessionKey,logVerboseMessage:a});let o=n.msg.chatType===`group`?r:n.msg.from??`unknown`,c=!!(e.mediaUrl||e.mediaUrls?.length);if(Z.info(`Auto-replied to ${o}${c?` (media)`:``}`),t()){let t=e.text==null?`<media>`:$(e.text,400);Z.debug(`Reply body: ${t}${c?` (media)`:``}`)}},onError:(e,t)=>{let i=t.kind===`tool`?`tool update`:t.kind===`block`?`block update`:`auto-reply`;Z.error(`Failed sending web ${i} to ${n.msg.from??r}: ${q(e)}`)},onReplyStart:n.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:D}});return I?(u&&n.groupHistories.set(n.groupHistoryKey,[]),S):(u&&n.groupHistories.set(n.groupHistoryKey,[]),e(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function an(t){let n=async(e,n,r,i)=>rn({cfg:t.cfg,msg:e,route:n,groupHistoryKey:r,groupHistories:t.groupHistories,groupMemberNames:t.groupMemberNames,connectionId:t.connectionId,verbose:t.verbose,maxMediaBytes:t.maxMediaBytes,replyResolver:t.replyResolver,replyLogger:t.replyLogger,backgroundTasks:t.backgroundTasks,rememberSentText:t.echoTracker.rememberText,echoHas:t.echoTracker.has,echoForget:t.echoTracker.forget,buildCombinedEchoKey:t.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async r=>{let i=r.conversationId??r.from,a=Jt(r),o=O({cfg:_(),channel:`whatsapp`,accountId:r.accountId,peer:{kind:r.chatType===`group`?`group`:`direct`,id:a}}),s=r.chatType===`group`?B({channel:`whatsapp`,accountId:o.accountId,peerKind:`group`,peerId:a}):o.sessionKey;if(r.from===r.to&&e(`📱 Same-phone mode detected (from === to: ${r.from})`),t.echoTracker.has(r.body)){e(`Skipping auto-reply: detected echo (message matches recently sent text)`),t.echoTracker.forget(r.body);return}if(r.chatType===`group`){let n={From:r.from,To:r.to,SessionKey:o.sessionKey,AccountId:o.accountId,ChatType:r.chatType,ConversationLabel:i,GroupSubject:r.groupSubject,SenderName:r.senderName,SenderId:r.senderJid?.trim()||r.senderE164,SenderE164:r.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:i};if(qt({cfg:t.cfg,backgroundTasks:t.backgroundTasks,storeAgentId:o.agentId,sessionKey:o.sessionKey,channel:`whatsapp`,to:i,accountId:o.accountId,ctx:n,warn:t.replyLogger.warn.bind(t.replyLogger)}),!Gt({cfg:t.cfg,msg:r,conversationId:i,groupHistoryKey:s,agentId:o.agentId,sessionKey:o.sessionKey,baseMentionConfig:t.baseMentionConfig,authDir:t.account.authDir,groupHistories:t.groupHistories,groupHistoryLimit:t.groupHistoryLimit,groupMemberNames:t.groupMemberNames,logVerbose:e,replyLogger:t.replyLogger}).shouldProcess)return}else !r.senderE164&&a&&a.startsWith(`+`)&&(r.senderE164=c(a)??r.senderE164);await Pt({cfg:t.cfg,msg:r,peerId:a,route:o,groupHistoryKey:s,groupHistories:t.groupHistories,processMessage:n})||await n(r,o,s)}}function on(e){return e===440}async function sn(t,i=Et,a=!0,o=oe,s=r,c,l={}){let u=J(),d=n({module:`web-auto-reply`,runId:u}),f=n({module:`web-heartbeat`,runId:u}),p=n({module:`web-reconnect`,runId:u}),m={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},h=()=>{l.statusSink?.({...m,lastDisconnect:m.lastDisconnect?{...m.lastDisconnect}:null})};h();let g=_(),v=G({cfg:g,accountId:l.accountId}),y={...g,channels:{...g.channels,whatsapp:{...g.channels?.whatsapp,ackReaction:v.ackReaction,messagePrefix:v.messagePrefix,allowFrom:v.allowFrom,groupAllowFrom:v.groupAllowFrom,groupPolicy:v.groupPolicy,textChunkLimit:v.textChunkLimit,chunkMode:v.chunkMode,mediaMaxMb:v.mediaMaxMb,blockStreaming:v.blockStreaming,groups:v.groups}}},ee=W(v),C=qe(y,l.heartbeatSeconds),w=Je(y,l.reconnect),T=Dt(y),E=y.channels?.whatsapp?.accounts?.[l.accountId??``]?.historyLimit??y.channels?.whatsapp?.historyLimit??y.messages?.groupChat?.historyLimit??50,te=new Map,ne=new Map,re=Mt({maxItems:100,logVerbose:e}),ie=l.sleep??((e,t)=>k(e,t??c)),ae=()=>c?.aborted===!0,A=c&&new Promise(e=>c.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),j=process.getMaxListeners?.()??10;process.setMaxListeners&&j<50&&process.setMaxListeners(50);let M=!1,N=()=>{M=!0};process.once(`SIGINT`,N);let F=0;for(;!ae();){let n=J(),r=Date.now(),u=null,g=null,_=null,k=0,j=null,I=l.messageTimeoutMs??1800*1e3,se=l.watchdogCheckMs??60*1e3,L=new Set,ce=an({cfg:y,verbose:t,connectionId:n,maxMediaBytes:ee,groupHistoryLimit:E,groupHistories:te,groupMemberNames:ne,echoTracker:re,backgroundTasks:L,replyResolver:o??oe,replyLogger:d,baseMentionConfig:T,account:v}),le=S({cfg:y,channel:`whatsapp`}),R=await(i??Et)({verbose:t,accountId:v.accountId,authDir:v.authDir,mediaMaxMb:v.mediaMaxMb,sendReadReceipts:v.sendReadReceipts,debounceMs:le,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!b(e.body,y),onMessage:async e=>{k+=1,_=Date.now(),m.lastMessageAt=_,m.lastEventAt=_,h(),await ce(e)}});Object.assign(m,x()),m.lastError=null,h();let{e164:z}=de(v.authDir),B=O({cfg:y,channel:`whatsapp`,accountId:v.accountId});D(`WhatsApp gateway connected${z?` as ${z}`:``}.`,{sessionKey:B.sessionKey}),Ne(v.accountId,R),j=pe(e=>{if(!Yt(e))return!1;let t=q(e);return p.warn({connectionId:n,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),R.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let V=async()=>{Ne(v.accountId,null),j&&=(j(),null),u&&clearInterval(u),g&&clearInterval(g),L.size>0&&(await Promise.allSettled(L),L.clear());try{await R.close()}catch(t){e(`Socket close failed: ${q(t)}`)}};if(a&&(u=setInterval(()=>{let e=fe(v.authDir),t=_?Math.floor((Date.now()-_)/6e4):null,i={connectionId:n,reconnectAttempts:F,messagesHandled:k,lastMessageAt:_,authAgeMs:e,uptimeMs:Date.now()-r,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?f.warn(i,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):f.info(i,`web gateway heartbeat`)},C*1e3),g=setInterval(()=>{if(!_)return;let t=Date.now()-_;if(t<=I)return;let r=Math.floor(t/6e4);f.warn({connectionId:n,minutesSinceLastMessage:r,lastMessageAt:new Date(_),messagesHandled:k},`Message timeout detected - forcing reconnect`),Ye.warn(`No messages received in ${r}m - restarting connection`),V().catch(t=>{e(`Close listener failed: ${q(t)}`)}),R.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},se)),Y.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&Y.raw(`Ctrl+C to stop.`),!a){await V(),process.removeListener(`SIGINT`,N);return}let H=await Promise.race([R.onClose?.catch(e=>(p.error({error:q(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??Xe(),A??Xe()]);if(Date.now()-r>C*1e3&&(F=0),m.reconnectAttempts=F,h(),ae()||M||H===`aborted`){await V();break}let U=(typeof H==`object`&&H&&`status`in H?H.status:void 0)??`unknown`,W=typeof H==`object`&&H&&`isLoggedOut`in H&&H.isLoggedOut,G=q(H);if(m.connected=!1,m.lastEventAt=Date.now(),m.lastDisconnect={at:m.lastEventAt,status:typeof U==`number`?U:void 0,error:G,loggedOut:!!W},m.lastError=G,m.reconnectAttempts=F,h(),p.info({connectionId:n,status:U,loggedOut:W,reconnectAttempts:F,error:G},`web reconnect: connection closed`),D(`WhatsApp gateway disconnected (status ${U??`unknown`})`,{sessionKey:B.sessionKey}),W){s.error(`WhatsApp session logged out. Run \`${ue(`openclaw channels login --channel web`)}\` to relink.`),await V();break}if(on(U)){p.warn({connectionId:n,status:U,error:G},`web reconnect: non-retryable close status; stopping monitor`),s.error(`WhatsApp Web connection closed (status ${U}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${ue(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await V();break}if(F+=1,m.reconnectAttempts=F,h(),w.maxAttempts>0&&F>=w.maxAttempts){p.warn({connectionId:n,status:U,reconnectAttempts:F,maxAttempts:w.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),s.error(`WhatsApp Web reconnect: max attempts reached (${F}/${w.maxAttempts}). Stopping web monitoring.`),await V();break}let K=P(w,F);p.info({connectionId:n,status:U,reconnectAttempts:F,maxAttempts:w.maxAttempts||`unlimited`,delayMs:K},`web reconnect: scheduling retry`),s.error(`WhatsApp Web connection closed (status ${U}). Retry ${F}/${w.maxAttempts||`∞`} in ${Me(K)}… (${G})`),await V();try{await ie(K,c)}catch{break}}m.running=!1,m.connected=!1,m.lastEventAt=Date.now(),h(),process.removeListener(`SIGINT`,N)}export{Et as n,Xe as r,sn as t};
6
- //# sourceMappingURL=channel-web-CxHbET4B.js.map
6
+ //# sourceMappingURL=channel-web-D7FkrASC.js.map
@@ -1,4 +1,4 @@
1
- import{A as e,N as t,p as n,v as r,w as i}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bo as a,Ec as o,Fo as s,jo as c,lr as l,ur as u}from"./auth-profiles-T8DuH3ax.js";import{t as d}from"./command-format-CLxIPuLR.js";import{d as f,f as p}from"./agent-scope-DAWJwFfl.js";import{_ as m}from"./session-key-C7F_iqYg.js";import{u as h}from"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import{lt as g,n as _,r as v,t as y,u as b}from"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import{i as x}from"./send-CW81y5Wz.js";import{at as S,et as C}from"./send-DavpkzhH.js";import{d as w,fn as T,pn as ee}from"./compact-Dg66DXx_.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import{n as E}from"./call-B8Fb4_oh.js";import{b as te,y as D}from"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import{n as O}from"./format-relative-DkMjYy7z.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import{n as k}from"./channel-selection-BBeE1TmB.js";import{a as ne}from"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import{n as A,s as j}from"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import{t as M}from"./links-CBnmRP9D.js";import{n as N}from"./cli-utils-BleB1eys.js";import{t as re}from"./help-format-B4aEI7V9.js";import{n as P}from"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./outbound-BtUeDLjU.js";import"./channel-web-BrElpZAc.js";import"./session-bk3gFwO4.js";import"./login-Do_NA1Je.js";import"./provider-env-vars-Dt0Q29Su.js";import{t as F}from"./command-options-BpOUDl2S.js";import{n as ie}from"./api-BeG0ObSq.js";import"./note-Dp-d_utk.js";import{t as I}from"./clack-prompter-DBPdGdqp.js";import{i as L,n as ae,t as R}from"./config-validation-C1La_IZU.js";import{n as oe}from"./agents.config-DfIJAGcd.js";import"./enable-BhD84GhD.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-C1xQLuby.js";import"./plugin-install-plan-NvDGp0d8.js";import{a as se,i as ce,r as le}from"./onboard-channels-CZK_7xMR.js";import"./auth-choice.apply-helpers-B7S-PcH_.js";import"./issue-format-C_lNzrKa.js";import{n as ue,t as z}from"./status-CeBGmSAz.js";import{t as de}from"./parse-log-line-CsYLg7Qu.js";import{t as fe}from"./channels-status-issues-8eFrGKyf.js";import"./plugin-registry-C6dY-Et7.js";import{t as B}from"./channel-options-D2syI791.js";import V from"node:fs/promises";function pe(e){let t=m(e.accountId),n=y(e.channel)?.setup?.applyAccountName;return n?n({cfg:e.cfg,accountId:t,name:e.name}):e.cfg}function me(e){let t=m(e.accountId),n=y(e.channel)?.setup?.applyAccountConfig;return n?n({cfg:e.cfg,accountId:t,input:e.input}):e.cfg}async function H(e=n,t){let r=await R(e);if(!r)return null;let{resolvedConfig:i,diagnostics:a}=await j({config:r,commandName:t?.commandName??`channels`,targetIds:A(),mode:t?.mode});for(let t of a)e.log(`[secrets] ${t}`);return i}function he(e){let t=e.accountId||`default`;return e.name?.trim()?`${t} (${e.name.trim()})`:t}const U=e=>y(e)?.meta.label??e;function W(e){let t=U(e.channel),n=he({accountId:e.accountId,name:e.name});return`${e.channelStyle?e.channelStyle(t):t} ${e.accountStyle?e.accountStyle(n):n}`}function G(e){return e?.hasFlags===!1}function K(e){if(!e?.trim())return;let t=e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}function ge(e,t){let n=e.trim().toLowerCase();if(n)return ne({workspaceDir:t?f(t,p(t)):void 0}).find(e=>e.id.toLowerCase()===n?!0:(e.meta.aliases??[]).some(e=>e.trim().toLowerCase()===n))}async function _e(e,t=n,r){let i=await H(t);if(!i)return;let o=i;if(G(r)){let e=I(),n=[],r={};await e.intro(`Channel setup`);let o=await le(i,t,e,{allowDisable:!1,allowSignalInstall:!0,promptAccountIds:!0,onSelection:e=>{n=e},onAccountId:(e,t)=>{r[e]=t}});if(n.length===0){await e.outro(`No channels selected.`);return}if(await e.confirm({message:`Add display names for these accounts? (optional)`,initialValue:!1}))for(let t of n){let n=r[t]??`default`,i=y(t),a=i?.config.resolveAccount(o,n),s=i?.config.describeAccount?.(a,o)?.name??a?.name,c=await e.text({message:`${t} account name (${n})`,initialValue:s});c?.trim()&&(o=pe({cfg:o,channel:t,accountId:n,name:c}))}let s=n.map(e=>({channel:e,accountId:r[e]?.trim()})).filter(e=>!!e.accountId);if(s.length>0&&await e.confirm({message:`Bind configured channel accounts to agents now?`,initialValue:!0})){let t=oe(o),n=p(o);for(let r of s){let i=await e.select({message:`Route ${r.channel} account "${r.accountId}" to agent`,options:t.map(e=>({value:e.id,label:e.isDefault?`${e.id} (default)`:e.id})),initialValue:n}),a=ae(o,[{agentId:i,match:{channel:r.channel,accountId:r.accountId}}]);o=a.config,(a.added.length>0||a.updated.length>0)&&await e.note([...a.added.map(e=>`Added: ${L(e)}`),...a.updated.map(e=>`Updated: ${L(e)}`)].join(`
1
+ import{A as e,N as t,p as n,v as r,w as i}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Bo as a,Ec as o,Fo as s,jo as c,lr as l,ur as u}from"./auth-profiles-T8DuH3ax.js";import{t as d}from"./command-format-CLxIPuLR.js";import{d as f,f as p}from"./agent-scope-DAWJwFfl.js";import{_ as m}from"./session-key-C7F_iqYg.js";import{u as h}from"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import{lt as g,n as _,r as v,t as y,u as b}from"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import{i as x}from"./send-CW81y5Wz.js";import{at as S,et as C}from"./send-DavpkzhH.js";import{d as w,fn as T,pn as ee}from"./compact-BEeB6bwq.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import{n as E}from"./call-B8Fb4_oh.js";import{b as te,y as D}from"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import{n as O}from"./format-relative-DkMjYy7z.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import{n as k}from"./channel-selection-BBeE1TmB.js";import{a as ne}from"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import{n as A,s as j}from"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import{t as M}from"./links-CBnmRP9D.js";import{n as N}from"./cli-utils-BleB1eys.js";import{t as re}from"./help-format-B4aEI7V9.js";import{n as P}from"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./outbound-BtUeDLjU.js";import"./channel-web-D5TgFlMz.js";import"./session-bk3gFwO4.js";import"./login-Do_NA1Je.js";import"./provider-env-vars-Dt0Q29Su.js";import{t as F}from"./command-options-BpOUDl2S.js";import{n as ie}from"./api-BeG0ObSq.js";import"./note-Dp-d_utk.js";import{t as I}from"./clack-prompter-DBPdGdqp.js";import{i as L,n as ae,t as R}from"./config-validation-C1La_IZU.js";import{n as oe}from"./agents.config-BUQjISaN.js";import"./enable-BhD84GhD.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-C1xQLuby.js";import"./plugin-install-plan-NvDGp0d8.js";import{a as se,i as ce,r as le}from"./onboard-channels-BXReNh4B.js";import"./auth-choice.apply-helpers-B7S-PcH_.js";import"./issue-format-C_lNzrKa.js";import{n as ue,t as z}from"./status-CeBGmSAz.js";import{t as de}from"./parse-log-line-CsYLg7Qu.js";import{t as fe}from"./channels-status-issues-8eFrGKyf.js";import"./plugin-registry-CYlBYbc8.js";import{t as B}from"./channel-options-BurUBfoY.js";import V from"node:fs/promises";function pe(e){let t=m(e.accountId),n=y(e.channel)?.setup?.applyAccountName;return n?n({cfg:e.cfg,accountId:t,name:e.name}):e.cfg}function me(e){let t=m(e.accountId),n=y(e.channel)?.setup?.applyAccountConfig;return n?n({cfg:e.cfg,accountId:t,input:e.input}):e.cfg}async function H(e=n,t){let r=await R(e);if(!r)return null;let{resolvedConfig:i,diagnostics:a}=await j({config:r,commandName:t?.commandName??`channels`,targetIds:A(),mode:t?.mode});for(let t of a)e.log(`[secrets] ${t}`);return i}function he(e){let t=e.accountId||`default`;return e.name?.trim()?`${t} (${e.name.trim()})`:t}const U=e=>y(e)?.meta.label??e;function W(e){let t=U(e.channel),n=he({accountId:e.accountId,name:e.name});return`${e.channelStyle?e.channelStyle(t):t} ${e.accountStyle?e.accountStyle(n):n}`}function G(e){return e?.hasFlags===!1}function K(e){if(!e?.trim())return;let t=e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}function ge(e,t){let n=e.trim().toLowerCase();if(n)return ne({workspaceDir:t?f(t,p(t)):void 0}).find(e=>e.id.toLowerCase()===n?!0:(e.meta.aliases??[]).some(e=>e.trim().toLowerCase()===n))}async function _e(e,t=n,r){let i=await H(t);if(!i)return;let o=i;if(G(r)){let e=I(),n=[],r={};await e.intro(`Channel setup`);let o=await le(i,t,e,{allowDisable:!1,allowSignalInstall:!0,promptAccountIds:!0,onSelection:e=>{n=e},onAccountId:(e,t)=>{r[e]=t}});if(n.length===0){await e.outro(`No channels selected.`);return}if(await e.confirm({message:`Add display names for these accounts? (optional)`,initialValue:!1}))for(let t of n){let n=r[t]??`default`,i=y(t),a=i?.config.resolveAccount(o,n),s=i?.config.describeAccount?.(a,o)?.name??a?.name,c=await e.text({message:`${t} account name (${n})`,initialValue:s});c?.trim()&&(o=pe({cfg:o,channel:t,accountId:n,name:c}))}let s=n.map(e=>({channel:e,accountId:r[e]?.trim()})).filter(e=>!!e.accountId);if(s.length>0&&await e.confirm({message:`Bind configured channel accounts to agents now?`,initialValue:!0})){let t=oe(o),n=p(o);for(let r of s){let i=await e.select({message:`Route ${r.channel} account "${r.accountId}" to agent`,options:t.map(e=>({value:e.id,label:e.isDefault?`${e.id} (default)`:e.id})),initialValue:n}),a=ae(o,[{agentId:i,match:{channel:r.channel,accountId:r.accountId}}]);o=a.config,(a.added.length>0||a.updated.length>0)&&await e.note([...a.added.map(e=>`Added: ${L(e)}`),...a.updated.map(e=>`Updated: ${L(e)}`)].join(`
2
2
  `),`Routing bindings`),a.conflicts.length>0&&await e.note([`Skipped bindings already claimed by another agent:`,...a.conflicts.map(e=>`- ${L(e.binding)} (agent=${e.existingAgentId})`)].join(`
3
3
  `),`Routing bindings`)}}await a(o),await e.outro(`Channels updated.`);return}let s=String(e.channel??``),c=v(s),l=c?void 0:ge(s,o);if(!c&&l){let e=I(),n=f(o,p(o)),r=await ce({cfg:o,entry:l,prompter:e,runtime:t,workspaceDir:n});if(o=r.cfg,!r.installed)return;se({cfg:o,runtime:t,workspaceDir:n}),c=v(l.id)??l.id}if(!c){let n=l?`Plugin ${l.meta.label} could not be loaded after install.`:`Unknown channel: ${String(e.channel??``)}`;t.error(n),t.exit(1);return}let u=y(c);if(!u?.setup?.applyAccountConfig){t.error(`Channel ${c} does not support add.`),t.exit(1);return}let d=e.useEnv===!0,h=typeof e.initialSyncLimit==`number`?e.initialSyncLimit:typeof e.initialSyncLimit==`string`&&e.initialSyncLimit.trim()?Number.parseInt(e.initialSyncLimit,10):void 0,g=K(e.groupChannels),_=K(e.dmAllowlist),x={name:e.name,token:e.token,tokenFile:e.tokenFile,botToken:e.botToken,appToken:e.appToken,signalNumber:e.signalNumber,cliPath:e.cliPath,dbPath:e.dbPath,service:e.service,region:e.region,authDir:e.authDir,httpUrl:e.httpUrl,httpHost:e.httpHost,httpPort:e.httpPort,webhookPath:e.webhookPath,webhookUrl:e.webhookUrl,audienceType:e.audienceType,audience:e.audience,homeserver:e.homeserver,userId:e.userId,accessToken:e.accessToken,password:e.password,deviceName:e.deviceName,initialSyncLimit:h,useEnv:d,ship:e.ship,url:e.url,code:e.code,groupChannels:g,dmAllowlist:_,autoDiscoverChannels:e.autoDiscoverChannels},S=u.setup.resolveAccountId?.({cfg:o,accountId:e.account,input:x})??m(e.account),C=u.setup.validateInput?.({cfg:o,accountId:S,input:x});if(C){t.error(C),t.exit(1);return}let T=c===`telegram`?b({cfg:o,accountId:S}).token.trim():``;S!==`default`&&(o=ie({cfg:o,channelKey:c})),o=me({cfg:o,channel:c,accountId:S,input:x}),c===`telegram`&&T!==b({cfg:o,accountId:S}).token.trim()&&await w({accountId:S}),await a(o),t.log(`Added ${U(c)} account "${S}".`)}function q(e,t){if(e){if(Array.isArray(e)){for(let n of e)typeof n==`string`&&n.trim()&&t.push(n.trim());return}if(typeof e==`string`){let n=e.trim();if(!n)return;let r=n.split(/[,\s]+/).map(e=>e.trim());for(let e of r)e&&t.push(e);return}if(h(e))for(let n of Object.values(e))(Array.isArray(n)||typeof n==`string`)&&q(n,t)}}function ve(e){return Array.from(new Set(e.map(e=>e.trim()).filter(Boolean))).toSorted()}function ye(e){if(!h(e))return[];let t=[];return q(e.scopes,t),q(e.scope,t),h(e.info)&&(q(e.info.scopes,t),q(e.info.scope,t),q(e.info.user_scopes,t),q(e.info.bot_scopes,t)),ve(t)}function be(e){if(!h(e))return;let t=e.error;return typeof t==`string`&&t.trim()?t.trim():void 0}async function xe(e,t){try{let n=await e.apiCall(t);return h(n)?n:null}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async function J(e,t){let n=x(e,{timeout:t}),r=[`auth.scopes`,`apps.permissions.info`],i=[];for(let e of r){let t=await xe(n,e),r=ye(t);if(r.length>0)return{ok:!0,scopes:r,source:e};let a=be(t);a&&i.push(`${e}: ${a}`)}return{ok:!1,error:i.length>0?i.join(` | `):`no scopes returned`}}const Se=[`ViewChannel`,`SendMessages`],Ce={"ChannelMessage.Read.All":`channel history`,"Chat.Read.All":`chat history`,"Channel.ReadBasic.All":`channel list`,"Team.ReadBasic.All":`team list`,"TeamsActivity.Read.All":`teams activity`,"Sites.Read.All":`files (SharePoint)`,"Files.Read.All":`files (OneDrive)`};function we(e,t=1e4){let n=Number(e);return!Number.isFinite(n)||n<=0?t:n}function Te(e){if(!e)return`unknown`;let t=[];return e.chatTypes?.length&&t.push(`chatTypes=${e.chatTypes.join(`,`)}`),e.polls&&t.push(`polls`),e.reactions&&t.push(`reactions`),e.edit&&t.push(`edit`),e.unsend&&t.push(`unsend`),e.reply&&t.push(`reply`),e.effects&&t.push(`effects`),e.groupManagement&&t.push(`groupManagement`),e.threads&&t.push(`threads`),e.media&&t.push(`media`),e.nativeCommands&&t.push(`nativeCommands`),e.blockStreaming&&t.push(`blockStreaming`),t.length?t.join(` `):`none`}function Ee(e){if(!e)return;let t=S(e,{defaultKind:`channel`});return t?t.kind===`channel`?{raw:e,normalized:t.normalized,kind:`channel`,channelId:t.id}:t.kind===`user`?{raw:e,normalized:t.normalized,kind:`user`}:{raw:e,normalized:t.normalized}:{raw:e}}function De(e){return e?[`messageContent=${e.messageContent??`unknown`}`,`guildMembers=${e.guildMembers??`unknown`}`,`presence=${e.presence??`unknown`}`].join(` `):`unknown`}function Oe(t,n){let r=[];if(!n||typeof n!=`object`)return r;let i=n;if(t===`discord`){let t=i.bot;if(t?.username){let n=t.id?` (${t.id})`:``;r.push(`Bot: ${e.accent(`@${t.username}`)}${n}`)}let n=i.application;n?.intents&&r.push(`Intents: ${De(n.intents)}`)}if(t===`telegram`){let t=i.bot;if(t?.username){let n=t.id?` (${t.id})`:``;r.push(`Bot: ${e.accent(`@${t.username}`)}${n}`)}let n=[],a=t?.canJoinGroups,o=t?.canReadAllGroupMessages,s=t?.supportsInlineQueries;typeof a==`boolean`&&n.push(`joinGroups=${a}`),typeof o==`boolean`&&n.push(`readAllGroupMessages=${o}`),typeof s==`boolean`&&n.push(`inlineQueries=${s}`),n.length>0&&r.push(`Flags: ${n.join(` `)}`);let c=i.webhook;c?.url!==void 0&&r.push(`Webhook: ${c.url||`none`}`)}if(t===`slack`){let t=i.bot,n=i.team;if(t?.name&&r.push(`Bot: ${e.accent(`@${t.name}`)}`),n?.name||n?.id){let e=n?.id?` (${n.id})`:``;r.push(`Team: ${n?.name??`unknown`}${e}`)}}if(t===`signal`){let e=i.version;e&&r.push(`Signal daemon: ${e}`)}if(t===`msteams`){let t=typeof i.appId==`string`?i.appId.trim():``;t&&r.push(`App: ${e.accent(t)}`);let n=i.graph;if(n){let t=Array.isArray(n.roles)?n.roles.map(e=>String(e).trim()).filter(Boolean):[],i=typeof n.scopes==`string`?n.scopes.split(/\s+/).map(e=>e.trim()).filter(Boolean):Array.isArray(n.scopes)?n.scopes.map(e=>String(e).trim()).filter(Boolean):[];if(n.ok===!1)r.push(`Graph: ${e.error(n.error??`failed`)}`);else if(t.length>0||i.length>0){let e=e=>{let t=Ce[e];return t?`${e} (${t})`:e};t.length>0&&r.push(`Graph roles: ${t.map(e).join(`, `)}`),i.length>0&&r.push(`Graph scopes: ${i.map(e).join(`, `)}`)}else n.ok===!0&&r.push(`Graph: ok`)}}let a=typeof i.ok==`boolean`?i.ok:void 0;if(a===!0&&r.length===0&&r.push(`Probe: ok`),a===!1){let t=typeof i.error==`string`&&i.error?` (${i.error})`:``;r.push(`Probe: ${e.error(`failed${t}`)}`)}return r}async function ke(e){let t=Ee(e.target?.trim());if(!t)return{};if(t.kind!==`channel`||!t.channelId)return{target:t,report:{error:`Target looks like a DM user; pass channel:<id> to audit channel permissions.`}};let n=e.account.token?.trim();if(!n)return{target:t,report:{channelId:t.channelId,error:`Discord bot token missing for permission audit.`}};try{let r=await C(t.channelId,{token:n,accountId:e.account.accountId??void 0}),i=Se.filter(e=>!r.permissions.includes(e));return{target:t,report:{channelId:r.channelId,guildId:r.guildId,isDm:r.isDm,channelType:r.channelType,permissions:r.permissions,missingRequired:i.length?i:[],raw:r.raw}}}catch(e){return{target:t,report:{channelId:t.channelId,error:e instanceof Error?e.message:String(e)}}}}async function Ae(e){let{plugin:t,cfg:n,timeoutMs:r}=e,i=e.accountOverride?[e.accountOverride]:(()=>{let e=t.config.listAccountIds(n);return e.length>0?e:[g({plugin:t,cfg:n,accountIds:e})]})(),a=[],o=t.actions?.listActions?.({cfg:n})??[],s=Array.from(new Set([`send`,`broadcast`,...o.map(e=>String(e))]));for(let o of i){let i=t.config.resolveAccount(n,o),c=t.config.isConfigured?await t.config.isConfigured(i,n):!!i,l=t.config.isEnabled?t.config.isEnabled(i,n):i.enabled!==!1,u;if(c&&l&&t.status?.probeAccount)try{u=await t.status.probeAccount({account:i,timeoutMs:r,cfg:n})}catch(e){u={ok:!1,error:e instanceof Error?e.message:String(e)}}let d;if(t.id===`slack`&&c&&l){let e=i.botToken?.trim(),t=i.userToken?.trim(),n=[];e?n.push({tokenType:`bot`,result:await J(e,r)}):n.push({tokenType:`bot`,result:{ok:!1,error:`Slack bot token missing.`}}),t&&n.push({tokenType:`user`,result:await J(t,r)}),d=n}let f,p;if(t.id===`discord`&&e.target){let t=await ke({account:i,target:e.target});f=t.target,p=t.report}a.push({channel:t.id,accountId:o,accountName:typeof i.name==`string`&&i.name?.trim()||void 0,configured:c,enabled:l,support:t.capabilities,probe:u,target:f,channelPermissions:p,actions:s,slackScopes:d})}return a}async function je(t,i=n){let a=await H(i);if(!a)return;let o=we(t.timeout,1e4),s=typeof t.channel==`string`?t.channel.trim().toLowerCase():``,c=typeof t.target==`string`?t.target.trim():``;if(t.account&&(!s||s===`all`)){i.error(r(`--account requires a specific --channel.`)),i.exit(1);return}if(c&&s!==`discord`){i.error(r(`--target requires --channel discord.`)),i.exit(1);return}let l=_(),u=!s||s===`all`?l:(()=>{let e=y(s);return e?[e]:null})();if(!u||u.length===0){i.error(r(`Unknown channel "${s}".`)),i.exit(1);return}let d=[];for(let e of u){let n=t.account?.trim()||void 0;d.push(...await Ae({plugin:e,cfg:a,timeoutMs:o,accountOverride:n,target:c&&e.id===`discord`?c:void 0}))}if(t.json){i.log(JSON.stringify({channels:d},null,2));return}let f=[];for(let t of d){let n=W({channel:t.channel,accountId:t.accountId,name:t.accountName,channelStyle:e.accent,accountStyle:e.heading});if(f.push(e.heading(n)),f.push(`Support: ${Te(t.support)}`),t.actions&&t.actions.length>0&&f.push(`Actions: ${t.actions.join(`, `)}`),t.configured===!1||t.enabled===!1){let e=t.configured===!1?`not configured`:`configured`,n=t.enabled===!1?`disabled`:`enabled`;f.push(`Status: ${e}, ${n}`)}let r=Oe(t.channel,t.probe);if(r.length>0?f.push(...r):t.configured&&t.enabled&&f.push(e.muted(`Probe: unavailable`)),t.channel===`slack`&&t.slackScopes)for(let n of t.slackScopes){let t=n.result.source?` (${n.result.source})`:``,r=n.tokenType===`user`?`User scopes`:`Bot scopes`;n.result.ok&&n.result.scopes?.length?f.push(`${r}${t}: ${n.result.scopes.join(`, `)}`):n.result.error&&f.push(`${r}: ${e.error(n.result.error)}`)}if(t.channel===`discord`&&t.channelPermissions){let n=t.channelPermissions;if(n.error)f.push(`Permissions: ${e.error(n.error)}`);else{let t=n.permissions?.length?n.permissions.join(`, `):`none`,r=n.channelId?` (${n.channelId})`:``;f.push(`Permissions${r}: ${t}`),n.missingRequired&&n.missingRequired.length>0?f.push(`${e.warn(`Missing required:`)} ${n.missingRequired.join(`, `)}`):f.push(e.success(`Missing required: none`))}}else t.channel===`discord`&&c&&!t.channelPermissions&&f.push(e.muted(`Permissions: skipped (no target).`));f.push(``)}i.log(f.join(`
4
4
  `).trimEnd())}const Y=t=>t===`none`?e.error(t):t===`env`?e.accent(t):e.success(t);function Me(t){return t===!1?e.error(`disabled`):e.success(`enabled`)}function Ne(t){return t?e.success(`configured`):e.warn(`not configured`)}function Pe(e){return`token=${Y(e||`none`)}`}function X(e,t){return`${e}=${Y(t||`none`)}`}function Fe(t){return t?e.success(`linked`):e.warn(`not linked`)}function Ie(e){return e.meta.showConfigured!==!1}function Le(t){let{channel:n,snapshot:r}=t,i=W({channel:n.id,accountId:r.accountId,name:r.name,channelStyle:e.accent,accountStyle:e.heading}),a=[];return r.linked!==void 0&&a.push(Fe(r.linked)),Ie(n)&&typeof r.configured==`boolean`&&a.push(Ne(r.configured)),r.tokenSource&&a.push(Pe(r.tokenSource)),r.botTokenSource&&a.push(X(`bot`,r.botTokenSource)),r.appTokenSource&&a.push(X(`app`,r.appTokenSource)),r.baseUrl&&a.push(`base=${e.muted(r.baseUrl)}`),typeof r.enabled==`boolean`&&a.push(Me(r.enabled)),`- ${i}: ${a.join(`, `)}`}async function Re(e){try{return await P({label:`Fetching usage snapshot…`,indeterminate:!0,enabled:!0},async()=>await T())}catch(t){return e.error(String(t)),null}}async function ze(t,r=n){let i=await H(r);if(!i)return;let a=t.usage!==!1,s=_(),c=o(),l=Object.entries(c.profiles).map(([e,t])=>({id:e,provider:t.provider,type:t.type,isExternal:!1}));if(t.json){let e=a?await T():void 0,t={};for(let e of s)t[e.id]=e.config.listAccountIds(i);let n={chat:t,auth:l,...e?{usage:e}:{}};r.log(JSON.stringify(n,null,2));return}let u=[];u.push(e.heading(`Chat channels:`));for(let e of s){let t=e.config.listAccountIds(i);if(!(!t||t.length===0))for(let n of t){let t=await z({plugin:e,cfg:i,accountId:n});u.push(Le({channel:e,snapshot:t}))}}if(u.push(``),u.push(e.heading(`Auth providers (OAuth + API keys):`)),l.length===0)u.push(e.muted(`- none`));else for(let t of l){let n=t.isExternal?e.muted(` (synced)`):``;u.push(`- ${e.accent(t.id)} (${e.success(t.type)}${n})`)}if(r.log(u.join(`
@@ -7,4 +7,4 @@ import{A as e,N as t,p as n,v as r,w as i}from"./subsystem-BLbY429l.js";import".
7
7
  `);return i>0&&(s=s.slice(1)),s.length&&s[s.length-1]===``&&(s=s.slice(0,-1)),s.length>t&&(s=s.slice(s.length-t)),s}finally{await a.close()}}async function We(r,i=n){let a=Ve(r.channel),o=typeof r.lines==`string`?Number(r.lines):r.lines,s=typeof o==`number`&&Number.isFinite(o)&&o>0?Math.floor(o):200,c=t().file,l=(await Ue(c,s*4)).map(de).filter(e=>!!e).filter(e=>He(e,a)),u=l.slice(Math.max(0,l.length-s));if(r.json){i.log(JSON.stringify({file:c,channel:a,lines:u},null,2));return}if(i.log(e.info(`Log file: ${c}`)),a!==`all`&&i.log(e.info(`Channel: ${a}`)),u.length===0){i.log(e.muted(`No matching log lines.`));return}for(let e of u){let t=e.time?`${e.time} `:``,n=e.level?`${e.level.toLowerCase()} `:``;i.log(`${t}${n}${e.message}`.trim())}}function Ge(e,t){let n=y(t);return n?n.config.listAccountIds(e):[]}async function Ke(e,t=n,r){let i=await H(t);if(!i)return;let o=G(r),s=o?I():null,c=v(e.channel),l=m(e.account),u=!!e.delete;if(o&&s){await s.intro(`Remove channel account`);let e=await s.select({message:`Channel`,options:_().map(e=>({value:e.id,label:e.meta.label}))});if(c=e,l=await(async()=>{let t=Ge(i,e);return m(await s.select({message:`Account`,options:t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),initialValue:t[0]??`default`}))})(),!await s.confirm({message:`Disable ${U(e)} account "${l}"? (keeps config)`,initialValue:!0})){await s.outro(`Cancelled.`);return}}else{if(!c){t.error(`Channel is required. Use --channel <name>.`),t.exit(1);return}if(!u&&!await I().confirm({message:`Disable ${U(c)} account "${l}"? (keeps config)`,initialValue:!0}))return}let d=y(c);if(!d){t.error(`Unknown channel: ${c}`),t.exit(1);return}let f=m(l)??g({plugin:d,cfg:i}),p=f||`default`,h={...i};if(u){if(!d.config.deleteAccount){t.error(`Channel ${c} does not support delete.`),t.exit(1);return}h=d.config.deleteAccount({cfg:h,accountId:f}),c===`telegram`&&await w({accountId:f})}else{if(!d.config.setAccountEnabled){t.error(`Channel ${c} does not support disable.`),t.exit(1);return}h=d.config.setAccountEnabled({cfg:h,accountId:f,enabled:!1})}await a(h),o&&s?await s.outro(u?`Deleted ${U(c)} account "${p}".`:`Disabled ${U(c)} account "${p}".`):t.log(u?`Deleted ${U(c)} account "${p}".`:`Disabled ${U(c)} account "${p}".`)}function qe(e){if(!(!e||e===`auto`))return e===`user`?`user`:`group`}function Je(e){let t=e.trim();return t&&(t.startsWith(`@`)||/^<@!?/.test(t)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||/^(user|discord|slack|matrix|msteams|teams|zalo|zalouser|googlechat|google-chat|gchat):/i.test(t))?`user`:`group`}function Ye(e){if(!e.resolved||!e.id)return`${e.input} -> unresolved`;let t=e.name?` (${e.name})`:``,n=e.note?` [${e.note}]`:``;return`${e.input} -> ${e.id}${t}${n}`}async function Xe(e,t){let{resolvedConfig:n,diagnostics:i}=await j({config:c(),commandName:`channels resolve`,targetIds:A(),mode:`operational_readonly`});for(let e of i)t.log(`[secrets] ${e}`);let a=(e.entries??[]).map(e=>e.trim()).filter(Boolean);if(a.length===0)throw Error(`At least one entry is required.`);let o=await k({cfg:n,channel:e.channel??null}),s=y(o.channel);if(!s?.resolver?.resolveTargets)throw Error(`Channel ${o.channel} does not support resolve.`);let l=qe(e.kind),u=[];if(l)u=(await s.resolver.resolveTargets({cfg:n,accountId:e.account??null,inputs:a,kind:l,runtime:t})).map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}));else{let r=new Map;for(let e of a){let t=Je(e);r.set(t,[...r.get(t)??[],e])}let i=[];for(let[a,o]of r.entries()){let r=await s.resolver.resolveTargets({cfg:n,accountId:e.account??null,inputs:o,kind:a,runtime:t});i.push(...r)}let o=new Map(i.map(e=>[e.input,e]));u=a.map(e=>{let t=o.get(e);return{input:e,resolved:t?.resolved??!1,id:t?.id,name:t?.name,note:t?.note}})}if(e.json){t.log(JSON.stringify(u,null,2));return}for(let e of u)e.resolved&&e.id?t.log(Ye(e)):t.error(r(`${e.input} -> unresolved${e.error?` (${e.error})`:e.note?` (${e.note})`:``}`))}function Z(e,t){typeof t.enabled==`boolean`&&e.push(t.enabled?`enabled`:`disabled`),typeof t.configured==`boolean`&&(t.configured?(e.push(`configured`),D(t)&&e.push(`secret unavailable in this command path`)):e.push(`not configured`)),typeof t.linked==`boolean`&&e.push(t.linked?`linked`:`not linked`)}function Ze(e,t){typeof t.mode==`string`&&t.mode.length>0&&e.push(`mode:${t.mode}`)}function Qe(e,t){let n=(n,r,i)=>{let a=t[r];if(typeof a!=`string`||!a||a===`none`)return;let o=t[i]===`configured_unavailable`?` (unavailable)`:``;e.push(`${n}:${a}${o}`)};n(`token`,`tokenSource`,`tokenStatus`),n(`bot`,`botTokenSource`,`botTokenStatus`),n(`app`,`appTokenSource`,`appTokenStatus`),n(`signing`,`signingSecretSource`,`signingSecretStatus`)}function $e(e,t){typeof t.baseUrl==`string`&&t.baseUrl&&e.push(`url:${t.baseUrl}`)}function et(e,t,n){return`- ${W({channel:e,accountId:typeof t.accountId==`string`?t.accountId:`default`,name:(typeof t.name==`string`?t.name.trim():``)||void 0})}: ${n.join(`, `)}`}function tt(t){let n=[];n.push(e.success(`Gateway reachable.`));let r=(e,t)=>t.map(t=>{let n=[];Z(n,t),typeof t.running==`boolean`&&n.push(t.running?`running`:`stopped`),typeof t.connected==`boolean`&&n.push(t.connected?`connected`:`disconnected`);let r=typeof t.lastInboundAt==`number`&&Number.isFinite(t.lastInboundAt)?t.lastInboundAt:null,i=typeof t.lastOutboundAt==`number`&&Number.isFinite(t.lastOutboundAt)?t.lastOutboundAt:null;r&&n.push(`in:${O(Date.now()-r)}`),i&&n.push(`out:${O(Date.now()-i)}`),Ze(n,t);let a=(()=>{let e=t.bot,n=t.probe?.bot,r=e?.username??n?.username??``;if(typeof r!=`string`)return``;let i=r.trim();return i?i.startsWith(`@`)?i:`@${i}`:``})();a&&n.push(`bot:${a}`),typeof t.dmPolicy==`string`&&t.dmPolicy.length>0&&n.push(`dm:${t.dmPolicy}`),Array.isArray(t.allowFrom)&&t.allowFrom.length>0&&n.push(`allow:${t.allowFrom.slice(0,2).join(`,`)}`),Qe(n,t);let o=t.application?.intents?.messageContent;typeof o==`string`&&o.length>0&&o!==`enabled`&&n.push(`intents:content=${o}`),t.allowUnmentionedGroups===!0&&n.push(`groups:unmentioned`),$e(n,t);let s=t.probe;s&&typeof s.ok==`boolean`&&n.push(s.ok?`works`:`probe failed`);let c=t.audit;return c&&typeof c.ok==`boolean`&&n.push(c.ok?`audit ok`:`audit failed`),typeof t.lastError==`string`&&t.lastError&&n.push(`error:${t.lastError}`),et(e,t,n)}),i=_(),a=t.channelAccounts,o={};for(let e of i){let t=a?.[e.id];Array.isArray(t)&&(o[e.id]=t)}for(let e of i){let t=o[e.id];t&&t.length>0&&n.push(...r(e.id,t))}n.push(``);let s=fe(t);if(s.length>0){n.push(e.warn(`Warnings:`));for(let e of s)n.push(`- ${e.channel} ${e.accountId}: ${e.message}${e.fix?` (${e.fix})`:``}`);n.push(`- Run: ${d(`openclaw doctor`)}`),n.push(``)}return n.push(`Tip: ${M(`/cli#status`,`status --deep`)} adds gateway health probes to status output (requires a reachable gateway).`),n}async function nt(t,n,r){let i=[];i.push(e.warn(`Gateway not reachable; showing config-only status.`)),n.path&&i.push(`Config: ${n.path}`),n.mode&&i.push(`Mode: ${n.mode}`),(n.path||n.mode)&&i.push(``);let a=(e,t)=>t.map(t=>{let n=[];return Z(n,t),Ze(n,t),Qe(n,t),$e(n,t),et(e,t,n)}),o=_(),s=r?.sourceConfig??t;for(let e of o){let n=e.config.listAccountIds(t);if(!n.length)continue;let r=[];for(let i of n){let n=await ue({plugin:e,cfg:s,accountId:i}),a=await z({plugin:e,cfg:t,accountId:i});r.push(n&&D(n)&&(!te(a)||n.configured===!0&&a.configured===!1)?n:a)}r.length>0&&i.push(...a(e.id,r))}return i.push(``),i.push(`Tip: ${M(`/cli#status`,`status --deep`)} adds gateway health probes to status output (requires a reachable gateway).`),i}async function rt(e,t=n){let r=Number(e.timeout??1e4),i=e.probe?`Checking channel status (probe)…`:`Checking channel status…`;e.json!==!0&&!process.stderr.isTTY&&t.log(i);try{let n=await P({label:i,indeterminate:!0,enabled:e.json!==!0},async()=>await E({method:`channels.status`,params:{probe:!!e.probe,timeoutMs:r},timeoutMs:r}));if(e.json){t.log(JSON.stringify(n,null,2));return}t.log(tt(n).join(`
8
8
  `))}catch(e){t.error(`Gateway not reachable: ${String(e)}`);let n=await R(t);if(!n)return;let{resolvedConfig:r,diagnostics:i}=await j({config:n,commandName:`channels status`,targetIds:A(),mode:`summary`});for(let e of i)t.log(`[secrets] ${e}`);let a=await s(),o=n.gateway?.mode===`remote`?`remote`:`local`;t.log((await nt(r,{path:a.path,mode:o},{sourceConfig:n})).join(`
9
9
  `))}}async function it(e,t,n){let r=e.channel?.trim()||(await k({cfg:n})).channel,i=v(r);if(!i)throw Error(`Unsupported channel: ${r}`);let a=y(i);if(!(t===`login`?a?.auth?.login:a?.gateway?.logoutAccount))throw Error(`Channel ${i} does not support ${t}`);return{channelInput:r,channelId:i,plugin:a}}function at(e,t,n){return{accountId:t.account?.trim()||g({plugin:e,cfg:n})}}async function ot(e,t=n){let r=c(),{channelInput:a,plugin:o}=await it(e,`login`,r),s=o.auth?.login;if(!s)throw Error(`Channel ${a} does not support login`);i(!!e.verbose);let{accountId:l}=at(o,e,r);await s({cfg:r,accountId:l,runtime:t,verbose:!!e.verbose,channelInput:a})}async function st(e,t=n){let r=c(),{channelInput:i,channelId:a,plugin:o}=await it(e,`logout`,r),s=o.gateway?.logoutAccount;if(!s)throw Error(`Channel ${i} does not support logout`);let{accountId:d}=at(o,e,r);try{await E({method:`channels.logout`,params:{channel:a,accountId:d},timeoutMs:15e3,clientName:u.CLI,mode:l.CLI});return}catch{}await s({cfg:r,accountId:d,account:o.config.resolveAccount(r,d),runtime:t})}const ct=`channel.account.name.token.tokenFile.botToken.appToken.signalNumber.cliPath.dbPath.service.region.authDir.httpUrl.httpHost.httpPort.webhookPath.webhookUrl.audienceType.audience.useEnv.homeserver.userId.accessToken.password.deviceName.initialSyncLimit.ship.url.code.groupChannels.dmAllowlist.autoDiscoverChannels`.split(`.`),lt=[`channel`,`account`,`delete`];function Q(e){return N(n,e)}function $(e,t){return N(n,e,e=>{n.error(r(`${t}: ${String(e)}`)),n.exit(1)})}function ut(t){let r=B(),i=t.command(`channels`).description(`Manage connected chat channels and accounts`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${re([[`openclaw channels list`,`List configured channels and auth profiles.`],[`openclaw channels status --probe`,`Run channel status checks and probes.`],[`openclaw channels add --channel telegram --token <token>`,`Add or update a channel account non-interactively.`],[`openclaw channels login --channel whatsapp`,`Link a WhatsApp Web account.`]])}\n\n${e.muted(`Docs:`)} ${M(`/cli/channels`,`docs.openclaw.ai/cli/channels`)}\n`);i.command(`list`).description(`List configured channels + auth profiles`).option(`--no-usage`,`Skip model provider usage/quota snapshots`).option(`--json`,`Output JSON`,!1).action(async e=>{await Q(async()=>{await ze(e,n)})}),i.command(`status`).description(`Show gateway channel status (use status --deep for local)`).option(`--probe`,`Probe channel credentials`,!1).option(`--timeout <ms>`,`Timeout in ms`,`10000`).option(`--json`,`Output JSON`,!1).action(async e=>{await Q(async()=>{await rt(e,n)})}),i.command(`capabilities`).description(`Show provider capabilities (intents/scopes + supported features)`).option(`--channel <name>`,`Channel (${B([`all`])})`).option(`--account <id>`,`Account id (only with --channel)`).option(`--target <dest>`,`Channel target for permission audit (Discord channel:<id>)`).option(`--timeout <ms>`,`Timeout in ms`,`10000`).option(`--json`,`Output JSON`,!1).action(async e=>{await Q(async()=>{await je(e,n)})}),i.command(`resolve`).description(`Resolve channel/user names to IDs`).argument(`<entries...>`,`Entries to resolve (names or ids)`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (accountId)`).option(`--kind <kind>`,`Target kind (auto|user|group)`,`auto`).option(`--json`,`Output JSON`,!1).action(async(e,t)=>{await Q(async()=>{await Xe({channel:t.channel,account:t.account,kind:t.kind,json:!!t.json,entries:Array.isArray(e)?e:[String(e)]},n)})}),i.command(`logs`).description(`Show recent channel logs from the gateway log file`).option(`--channel <name>`,`Channel (${B([`all`])})`,`all`).option(`--lines <n>`,`Number of lines (default: 200)`,`200`).option(`--json`,`Output JSON`,!1).action(async e=>{await Q(async()=>{await We(e,n)})}),i.command(`add`).description(`Add or update a channel account`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (default when omitted)`).option(`--name <name>`,`Display name for this account`).option(`--token <token>`,`Bot token (Telegram/Discord)`).option(`--token-file <path>`,`Bot token file (Telegram)`).option(`--bot-token <token>`,`Slack bot token (xoxb-...)`).option(`--app-token <token>`,`Slack app token (xapp-...)`).option(`--signal-number <e164>`,`Signal account number (E.164)`).option(`--cli-path <path>`,`CLI path (signal-cli or imsg)`).option(`--db-path <path>`,`iMessage database path`).option(`--service <service>`,`iMessage service (imessage|sms|auto)`).option(`--region <region>`,`iMessage region (for SMS)`).option(`--auth-dir <path>`,`WhatsApp auth directory override`).option(`--http-url <url>`,`Signal HTTP daemon base URL`).option(`--http-host <host>`,`Signal HTTP host`).option(`--http-port <port>`,`Signal HTTP port`).option(`--webhook-path <path>`,`Webhook path (Google Chat/BlueBubbles)`).option(`--webhook-url <url>`,`Google Chat webhook URL`).option(`--audience-type <type>`,`Google Chat audience type (app-url|project-number)`).option(`--audience <value>`,`Google Chat audience value (app URL or project number)`).option(`--homeserver <url>`,`Matrix homeserver URL`).option(`--user-id <id>`,`Matrix user ID`).option(`--access-token <token>`,`Matrix access token`).option(`--password <password>`,`Matrix password`).option(`--device-name <name>`,`Matrix device name`).option(`--initial-sync-limit <n>`,`Matrix initial sync limit`).option(`--ship <ship>`,`Tlon ship name (~sampel-palnet)`).option(`--url <url>`,`Tlon ship URL`).option(`--code <code>`,`Tlon login code`).option(`--group-channels <list>`,`Tlon group channels (comma-separated)`).option(`--dm-allowlist <list>`,`Tlon DM allowlist (comma-separated ships)`).option(`--auto-discover-channels`,`Tlon auto-discover group channels`).option(`--no-auto-discover-channels`,`Disable Tlon auto-discovery`).option(`--use-env`,`Use env token (default account only)`,!1).action(async(e,t)=>{await Q(async()=>{await _e(e,n,{hasFlags:F(t,ct)})})}),i.command(`remove`).description(`Disable or delete a channel account`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (default when omitted)`).option(`--delete`,`Delete config entries (no prompt)`,!1).action(async(e,t)=>{await Q(async()=>{await Ke(e,n,{hasFlags:F(t,lt)})})}),i.command(`login`).description(`Link a channel account (if supported)`).option(`--channel <channel>`,`Channel alias (auto when only one is configured)`).option(`--account <id>`,`Account id (accountId)`).option(`--verbose`,`Verbose connection logs`,!1).action(async e=>{await $(async()=>{await ot({channel:e.channel,account:e.account,verbose:!!e.verbose},n)},`Channel login failed`)}),i.command(`logout`).description(`Log out of a channel session (if supported)`).option(`--channel <channel>`,`Channel alias (auto when only one is configured)`).option(`--account <id>`,`Account id (accountId)`).action(async e=>{await $(async()=>{await st({channel:e.channel,account:e.account},n)},`Channel logout failed`)})}export{ut as registerChannelsCli};
10
- //# sourceMappingURL=channels-cli-BmAJuuRs.js.map
10
+ //# sourceMappingURL=channels-cli-BfzZrnkt.js.map
@@ -1,4 +1,4 @@
1
- import"./paths-B4IRk3wi.js";import{A as e,N as t,p as n,v as r,w as i}from"./subsystem-C5XF2Fy5.js";import{d as a}from"./utils-UGOV_184.js";import{Si as o,Xl as s,Zs as c,nc as l,qs as u,xi as d}from"./model-selection-BlC_rXAN.js";import{ct as f,ft as p,pt as m}from"./reply-l-Y47HP4.js";import{d as h,f as g}from"./agent-scope-DXZc3eNT.js";import{_}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as ee}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import{lt as v,n as y,r as b,t as x,u as S}from"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import{s as C}from"./send-Cgd_VJHR.js";import{at as te,et as ne}from"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import{n as w}from"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import{n as T,r as re}from"./read-only-account-inspect-DBwAwB3_.js";import{n as E}from"./channel-selection-CbNtbAEf.js";import{a as ie}from"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import{n as D}from"./format-relative-B9pSIdGe.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import{n as O,s as k}from"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import{t as A}from"./links-CySwdMcF.js";import{n as j}from"./cli-utils-BY7dLMFy.js";import{t as ae}from"./help-format-BRbF_INg.js";import{n as M}from"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import"./channel-web-CxHbET4B.js";import"./outbound-Bz8bbrMI.js";import"./session-CUUGjiV3.js";import"./login-CkWesqf_.js";import"./plugin-registry-CIBiHZH1.js";import{t as N}from"./channel-options-CEIzjOno.js";import"./provider-env-vars-D8p6Ohpj.js";import{t as P}from"./command-options-Bq5nQxz6.js";import{n as oe}from"./api-Dx8x1KTs.js";import"./note-D4GAwgha.js";import{t as F}from"./clack-prompter-Dq0aY6iM.js";import{i as I,n as se,t as L}from"./config-validation-DviYxW8Y.js";import{n as ce}from"./agents.config-B6LRG9eP.js";import"./enable-Ccf9wSM8.js";import"./install-safe-path-iesxijn2.js";import"./npm-pack-install-B23L-AtF.js";import"./skill-scanner-CUUF3Fvo.js";import"./installs-BNeI_oML.js";import"./plugin-install-plan-BobX0y9S.js";import{a as le,i as ue,r as de}from"./onboard-channels-BMIOddLN.js";import"./auth-choice.apply-helpers-gaL-oSft.js";import"./issue-format-BT7cQEt3.js";import{n as fe,t as R}from"./status-C-9fSiMn.js";import{t as pe}from"./parse-log-line-NV-cipB_.js";import{t as me}from"./channels-status-issues-PRgOT90w.js";import z from"node:fs/promises";function he(e){let t=_(e.accountId),n=x(e.channel)?.setup?.applyAccountName;return n?n({cfg:e.cfg,accountId:t,name:e.name}):e.cfg}function ge(e){let t=_(e.accountId),n=x(e.channel)?.setup?.applyAccountConfig;return n?n({cfg:e.cfg,accountId:t,input:e.input}):e.cfg}async function B(e=n,t){let r=await L(e);if(!r)return null;let{resolvedConfig:i,diagnostics:a}=await k({config:r,commandName:t?.commandName??`channels`,targetIds:O(),mode:t?.mode});for(let t of a)e.log(`[secrets] ${t}`);return i}function _e(e){let t=e.accountId||`default`;return e.name?.trim()?`${t} (${e.name.trim()})`:t}const V=e=>x(e)?.meta.label??e;function H(e){let t=V(e.channel),n=_e({accountId:e.accountId,name:e.name});return`${e.channelStyle?e.channelStyle(t):t} ${e.accountStyle?e.accountStyle(n):n}`}function U(e){return e?.hasFlags===!1}function W(e){if(!e?.trim())return;let t=e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}function ve(e,t){let n=e.trim().toLowerCase();if(n)return ie({workspaceDir:t?h(t,g(t)):void 0}).find(e=>e.id.toLowerCase()===n?!0:(e.meta.aliases??[]).some(e=>e.trim().toLowerCase()===n))}async function ye(e,t=n,r){let i=await B(t);if(!i)return;let a=i;if(U(r)){let e=F(),n=[],r={};await e.intro(`Channel setup`);let a=await de(i,t,e,{allowDisable:!1,allowSignalInstall:!0,promptAccountIds:!0,onSelection:e=>{n=e},onAccountId:(e,t)=>{r[e]=t}});if(n.length===0){await e.outro(`No channels selected.`);return}if(await e.confirm({message:`Add display names for these accounts? (optional)`,initialValue:!1}))for(let t of n){let n=r[t]??`default`,i=x(t),o=i?.config.resolveAccount(a,n),s=i?.config.describeAccount?.(o,a)?.name??o?.name,c=await e.text({message:`${t} account name (${n})`,initialValue:s});c?.trim()&&(a=he({cfg:a,channel:t,accountId:n,name:c}))}let o=n.map(e=>({channel:e,accountId:r[e]?.trim()})).filter(e=>!!e.accountId);if(o.length>0&&await e.confirm({message:`Bind configured channel accounts to agents now?`,initialValue:!0})){let t=ce(a),n=g(a);for(let r of o){let i=await e.select({message:`Route ${r.channel} account "${r.accountId}" to agent`,options:t.map(e=>({value:e.id,label:e.isDefault?`${e.id} (default)`:e.id})),initialValue:n}),o=se(a,[{agentId:i,match:{channel:r.channel,accountId:r.accountId}}]);a=o.config,(o.added.length>0||o.updated.length>0)&&await e.note([...o.added.map(e=>`Added: ${I(e)}`),...o.updated.map(e=>`Updated: ${I(e)}`)].join(`
1
+ import"./paths-B4IRk3wi.js";import{A as e,N as t,p as n,v as r,w as i}from"./subsystem-C5XF2Fy5.js";import{d as a}from"./utils-UGOV_184.js";import{Si as o,Xl as s,Zs as c,nc as l,qs as u,xi as d}from"./model-selection-BlC_rXAN.js";import{ct as f,ft as p,pt as m}from"./reply-CjyZeZ-j.js";import{d as h,f as g}from"./agent-scope-DXZc3eNT.js";import{_}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as ee}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import{lt as v,n as y,r as b,t as x,u as S}from"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import{s as C}from"./send-Cgd_VJHR.js";import{at as te,et as ne}from"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import{n as w}from"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import{n as T,r as re}from"./read-only-account-inspect-DBwAwB3_.js";import{n as E}from"./channel-selection-CbNtbAEf.js";import{a as ie}from"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import{n as D}from"./format-relative-B9pSIdGe.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import{n as O,s as k}from"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import{t as A}from"./links-CySwdMcF.js";import{n as j}from"./cli-utils-BY7dLMFy.js";import{t as ae}from"./help-format-BRbF_INg.js";import{n as M}from"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import"./channel-web-D7FkrASC.js";import"./outbound-Bz8bbrMI.js";import"./session-CUUGjiV3.js";import"./login-CkWesqf_.js";import"./plugin-registry-CI5K3iWc.js";import{t as N}from"./channel-options-Ce8uNnAp.js";import"./provider-env-vars-D8p6Ohpj.js";import{t as P}from"./command-options-Bq5nQxz6.js";import{n as oe}from"./api-Dx8x1KTs.js";import"./note-D4GAwgha.js";import{t as F}from"./clack-prompter-Dq0aY6iM.js";import{i as I,n as se,t as L}from"./config-validation-DviYxW8Y.js";import{n as ce}from"./agents.config-BvxrGqOT.js";import"./enable-Ccf9wSM8.js";import"./install-safe-path-iesxijn2.js";import"./npm-pack-install-B23L-AtF.js";import"./skill-scanner-CUUF3Fvo.js";import"./installs-BNeI_oML.js";import"./plugin-install-plan-BobX0y9S.js";import{a as le,i as ue,r as de}from"./onboard-channels-CjXCpXI-.js";import"./auth-choice.apply-helpers-gaL-oSft.js";import"./issue-format-BT7cQEt3.js";import{n as fe,t as R}from"./status-C-9fSiMn.js";import{t as pe}from"./parse-log-line-NV-cipB_.js";import{t as me}from"./channels-status-issues-PRgOT90w.js";import z from"node:fs/promises";function he(e){let t=_(e.accountId),n=x(e.channel)?.setup?.applyAccountName;return n?n({cfg:e.cfg,accountId:t,name:e.name}):e.cfg}function ge(e){let t=_(e.accountId),n=x(e.channel)?.setup?.applyAccountConfig;return n?n({cfg:e.cfg,accountId:t,input:e.input}):e.cfg}async function B(e=n,t){let r=await L(e);if(!r)return null;let{resolvedConfig:i,diagnostics:a}=await k({config:r,commandName:t?.commandName??`channels`,targetIds:O(),mode:t?.mode});for(let t of a)e.log(`[secrets] ${t}`);return i}function _e(e){let t=e.accountId||`default`;return e.name?.trim()?`${t} (${e.name.trim()})`:t}const V=e=>x(e)?.meta.label??e;function H(e){let t=V(e.channel),n=_e({accountId:e.accountId,name:e.name});return`${e.channelStyle?e.channelStyle(t):t} ${e.accountStyle?e.accountStyle(n):n}`}function U(e){return e?.hasFlags===!1}function W(e){if(!e?.trim())return;let t=e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean);return t.length>0?t:void 0}function ve(e,t){let n=e.trim().toLowerCase();if(n)return ie({workspaceDir:t?h(t,g(t)):void 0}).find(e=>e.id.toLowerCase()===n?!0:(e.meta.aliases??[]).some(e=>e.trim().toLowerCase()===n))}async function ye(e,t=n,r){let i=await B(t);if(!i)return;let a=i;if(U(r)){let e=F(),n=[],r={};await e.intro(`Channel setup`);let a=await de(i,t,e,{allowDisable:!1,allowSignalInstall:!0,promptAccountIds:!0,onSelection:e=>{n=e},onAccountId:(e,t)=>{r[e]=t}});if(n.length===0){await e.outro(`No channels selected.`);return}if(await e.confirm({message:`Add display names for these accounts? (optional)`,initialValue:!1}))for(let t of n){let n=r[t]??`default`,i=x(t),o=i?.config.resolveAccount(a,n),s=i?.config.describeAccount?.(o,a)?.name??o?.name,c=await e.text({message:`${t} account name (${n})`,initialValue:s});c?.trim()&&(a=he({cfg:a,channel:t,accountId:n,name:c}))}let o=n.map(e=>({channel:e,accountId:r[e]?.trim()})).filter(e=>!!e.accountId);if(o.length>0&&await e.confirm({message:`Bind configured channel accounts to agents now?`,initialValue:!0})){let t=ce(a),n=g(a);for(let r of o){let i=await e.select({message:`Route ${r.channel} account "${r.accountId}" to agent`,options:t.map(e=>({value:e.id,label:e.isDefault?`${e.id} (default)`:e.id})),initialValue:n}),o=se(a,[{agentId:i,match:{channel:r.channel,accountId:r.accountId}}]);a=o.config,(o.added.length>0||o.updated.length>0)&&await e.note([...o.added.map(e=>`Added: ${I(e)}`),...o.updated.map(e=>`Updated: ${I(e)}`)].join(`
2
2
  `),`Routing bindings`),o.conflicts.length>0&&await e.note([`Skipped bindings already claimed by another agent:`,...o.conflicts.map(e=>`- ${I(e.binding)} (agent=${e.existingAgentId})`)].join(`
3
3
  `),`Routing bindings`)}}await l(a),await e.outro(`Channels updated.`);return}let o=String(e.channel??``),s=b(o),c=s?void 0:ve(o,a);if(!s&&c){let e=F(),n=h(a,g(a)),r=await ue({cfg:a,entry:c,prompter:e,runtime:t,workspaceDir:n});if(a=r.cfg,!r.installed)return;le({cfg:a,runtime:t,workspaceDir:n}),s=b(c.id)??c.id}if(!s){let n=c?`Plugin ${c.meta.label} could not be loaded after install.`:`Unknown channel: ${String(e.channel??``)}`;t.error(n),t.exit(1);return}let u=x(s);if(!u?.setup?.applyAccountConfig){t.error(`Channel ${s} does not support add.`),t.exit(1);return}let d=e.useEnv===!0,p=typeof e.initialSyncLimit==`number`?e.initialSyncLimit:typeof e.initialSyncLimit==`string`&&e.initialSyncLimit.trim()?Number.parseInt(e.initialSyncLimit,10):void 0,m=W(e.groupChannels),ee=W(e.dmAllowlist),v={name:e.name,token:e.token,tokenFile:e.tokenFile,botToken:e.botToken,appToken:e.appToken,signalNumber:e.signalNumber,cliPath:e.cliPath,dbPath:e.dbPath,service:e.service,region:e.region,authDir:e.authDir,httpUrl:e.httpUrl,httpHost:e.httpHost,httpPort:e.httpPort,webhookPath:e.webhookPath,webhookUrl:e.webhookUrl,audienceType:e.audienceType,audience:e.audience,homeserver:e.homeserver,userId:e.userId,accessToken:e.accessToken,password:e.password,deviceName:e.deviceName,initialSyncLimit:p,useEnv:d,ship:e.ship,url:e.url,code:e.code,groupChannels:m,dmAllowlist:ee,autoDiscoverChannels:e.autoDiscoverChannels},y=u.setup.resolveAccountId?.({cfg:a,accountId:e.account,input:v})??_(e.account),C=u.setup.validateInput?.({cfg:a,accountId:y,input:v});if(C){t.error(C),t.exit(1);return}let te=s===`telegram`?S({cfg:a,accountId:y}).token.trim():``;y!==`default`&&(a=oe({cfg:a,channelKey:s})),a=ge({cfg:a,channel:s,accountId:y,input:v}),s===`telegram`&&te!==S({cfg:a,accountId:y}).token.trim()&&await f({accountId:y}),await l(a),t.log(`Added ${V(s)} account "${y}".`)}function G(e,t){if(e){if(Array.isArray(e)){for(let n of e)typeof n==`string`&&n.trim()&&t.push(n.trim());return}if(typeof e==`string`){let n=e.trim();if(!n)return;let r=n.split(/[,\s]+/).map(e=>e.trim());for(let e of r)e&&t.push(e);return}if(a(e))for(let n of Object.values(e))(Array.isArray(n)||typeof n==`string`)&&G(n,t)}}function be(e){return Array.from(new Set(e.map(e=>e.trim()).filter(Boolean))).toSorted()}function xe(e){if(!a(e))return[];let t=[];return G(e.scopes,t),G(e.scope,t),a(e.info)&&(G(e.info.scopes,t),G(e.info.scope,t),G(e.info.user_scopes,t),G(e.info.bot_scopes,t)),be(t)}function Se(e){if(!a(e))return;let t=e.error;return typeof t==`string`&&t.trim()?t.trim():void 0}async function Ce(e,t){try{let n=await e.apiCall(t);return a(n)?n:null}catch(e){return{ok:!1,error:e instanceof Error?e.message:String(e)}}}async function K(e,t){let n=C(e,{timeout:t}),r=[`auth.scopes`,`apps.permissions.info`],i=[];for(let e of r){let t=await Ce(n,e),r=xe(t);if(r.length>0)return{ok:!0,scopes:r,source:e};let a=Se(t);a&&i.push(`${e}: ${a}`)}return{ok:!1,error:i.length>0?i.join(` | `):`no scopes returned`}}const we=[`ViewChannel`,`SendMessages`],Te={"ChannelMessage.Read.All":`channel history`,"Chat.Read.All":`chat history`,"Channel.ReadBasic.All":`channel list`,"Team.ReadBasic.All":`team list`,"TeamsActivity.Read.All":`teams activity`,"Sites.Read.All":`files (SharePoint)`,"Files.Read.All":`files (OneDrive)`};function Ee(e,t=1e4){let n=Number(e);return!Number.isFinite(n)||n<=0?t:n}function De(e){if(!e)return`unknown`;let t=[];return e.chatTypes?.length&&t.push(`chatTypes=${e.chatTypes.join(`,`)}`),e.polls&&t.push(`polls`),e.reactions&&t.push(`reactions`),e.edit&&t.push(`edit`),e.unsend&&t.push(`unsend`),e.reply&&t.push(`reply`),e.effects&&t.push(`effects`),e.groupManagement&&t.push(`groupManagement`),e.threads&&t.push(`threads`),e.media&&t.push(`media`),e.nativeCommands&&t.push(`nativeCommands`),e.blockStreaming&&t.push(`blockStreaming`),t.length?t.join(` `):`none`}function Oe(e){if(!e)return;let t=te(e,{defaultKind:`channel`});return t?t.kind===`channel`?{raw:e,normalized:t.normalized,kind:`channel`,channelId:t.id}:t.kind===`user`?{raw:e,normalized:t.normalized,kind:`user`}:{raw:e,normalized:t.normalized}:{raw:e}}function ke(e){return e?[`messageContent=${e.messageContent??`unknown`}`,`guildMembers=${e.guildMembers??`unknown`}`,`presence=${e.presence??`unknown`}`].join(` `):`unknown`}function Ae(t,n){let r=[];if(!n||typeof n!=`object`)return r;let i=n;if(t===`discord`){let t=i.bot;if(t?.username){let n=t.id?` (${t.id})`:``;r.push(`Bot: ${e.accent(`@${t.username}`)}${n}`)}let n=i.application;n?.intents&&r.push(`Intents: ${ke(n.intents)}`)}if(t===`telegram`){let t=i.bot;if(t?.username){let n=t.id?` (${t.id})`:``;r.push(`Bot: ${e.accent(`@${t.username}`)}${n}`)}let n=[],a=t?.canJoinGroups,o=t?.canReadAllGroupMessages,s=t?.supportsInlineQueries;typeof a==`boolean`&&n.push(`joinGroups=${a}`),typeof o==`boolean`&&n.push(`readAllGroupMessages=${o}`),typeof s==`boolean`&&n.push(`inlineQueries=${s}`),n.length>0&&r.push(`Flags: ${n.join(` `)}`);let c=i.webhook;c?.url!==void 0&&r.push(`Webhook: ${c.url||`none`}`)}if(t===`slack`){let t=i.bot,n=i.team;if(t?.name&&r.push(`Bot: ${e.accent(`@${t.name}`)}`),n?.name||n?.id){let e=n?.id?` (${n.id})`:``;r.push(`Team: ${n?.name??`unknown`}${e}`)}}if(t===`signal`){let e=i.version;e&&r.push(`Signal daemon: ${e}`)}if(t===`msteams`){let t=typeof i.appId==`string`?i.appId.trim():``;t&&r.push(`App: ${e.accent(t)}`);let n=i.graph;if(n){let t=Array.isArray(n.roles)?n.roles.map(e=>String(e).trim()).filter(Boolean):[],i=typeof n.scopes==`string`?n.scopes.split(/\s+/).map(e=>e.trim()).filter(Boolean):Array.isArray(n.scopes)?n.scopes.map(e=>String(e).trim()).filter(Boolean):[];if(n.ok===!1)r.push(`Graph: ${e.error(n.error??`failed`)}`);else if(t.length>0||i.length>0){let e=e=>{let t=Te[e];return t?`${e} (${t})`:e};t.length>0&&r.push(`Graph roles: ${t.map(e).join(`, `)}`),i.length>0&&r.push(`Graph scopes: ${i.map(e).join(`, `)}`)}else n.ok===!0&&r.push(`Graph: ok`)}}let a=typeof i.ok==`boolean`?i.ok:void 0;if(a===!0&&r.length===0&&r.push(`Probe: ok`),a===!1){let t=typeof i.error==`string`&&i.error?` (${i.error})`:``;r.push(`Probe: ${e.error(`failed${t}`)}`)}return r}async function je(e){let t=Oe(e.target?.trim());if(!t)return{};if(t.kind!==`channel`||!t.channelId)return{target:t,report:{error:`Target looks like a DM user; pass channel:<id> to audit channel permissions.`}};let n=e.account.token?.trim();if(!n)return{target:t,report:{channelId:t.channelId,error:`Discord bot token missing for permission audit.`}};try{let r=await ne(t.channelId,{token:n,accountId:e.account.accountId??void 0}),i=we.filter(e=>!r.permissions.includes(e));return{target:t,report:{channelId:r.channelId,guildId:r.guildId,isDm:r.isDm,channelType:r.channelType,permissions:r.permissions,missingRequired:i.length?i:[],raw:r.raw}}}catch(e){return{target:t,report:{channelId:t.channelId,error:e instanceof Error?e.message:String(e)}}}}async function Me(e){let{plugin:t,cfg:n,timeoutMs:r}=e,i=e.accountOverride?[e.accountOverride]:(()=>{let e=t.config.listAccountIds(n);return e.length>0?e:[v({plugin:t,cfg:n,accountIds:e})]})(),a=[],o=t.actions?.listActions?.({cfg:n})??[],s=Array.from(new Set([`send`,`broadcast`,...o.map(e=>String(e))]));for(let o of i){let i=t.config.resolveAccount(n,o),c=t.config.isConfigured?await t.config.isConfigured(i,n):!!i,l=t.config.isEnabled?t.config.isEnabled(i,n):i.enabled!==!1,u;if(c&&l&&t.status?.probeAccount)try{u=await t.status.probeAccount({account:i,timeoutMs:r,cfg:n})}catch(e){u={ok:!1,error:e instanceof Error?e.message:String(e)}}let d;if(t.id===`slack`&&c&&l){let e=i.botToken?.trim(),t=i.userToken?.trim(),n=[];e?n.push({tokenType:`bot`,result:await K(e,r)}):n.push({tokenType:`bot`,result:{ok:!1,error:`Slack bot token missing.`}}),t&&n.push({tokenType:`user`,result:await K(t,r)}),d=n}let f,p;if(t.id===`discord`&&e.target){let t=await je({account:i,target:e.target});f=t.target,p=t.report}a.push({channel:t.id,accountId:o,accountName:typeof i.name==`string`&&i.name?.trim()||void 0,configured:c,enabled:l,support:t.capabilities,probe:u,target:f,channelPermissions:p,actions:s,slackScopes:d})}return a}async function Ne(t,i=n){let a=await B(i);if(!a)return;let o=Ee(t.timeout,1e4),s=typeof t.channel==`string`?t.channel.trim().toLowerCase():``,c=typeof t.target==`string`?t.target.trim():``;if(t.account&&(!s||s===`all`)){i.error(r(`--account requires a specific --channel.`)),i.exit(1);return}if(c&&s!==`discord`){i.error(r(`--target requires --channel discord.`)),i.exit(1);return}let l=y(),u=!s||s===`all`?l:(()=>{let e=x(s);return e?[e]:null})();if(!u||u.length===0){i.error(r(`Unknown channel "${s}".`)),i.exit(1);return}let d=[];for(let e of u){let n=t.account?.trim()||void 0;d.push(...await Me({plugin:e,cfg:a,timeoutMs:o,accountOverride:n,target:c&&e.id===`discord`?c:void 0}))}if(t.json){i.log(JSON.stringify({channels:d},null,2));return}let f=[];for(let t of d){let n=H({channel:t.channel,accountId:t.accountId,name:t.accountName,channelStyle:e.accent,accountStyle:e.heading});if(f.push(e.heading(n)),f.push(`Support: ${De(t.support)}`),t.actions&&t.actions.length>0&&f.push(`Actions: ${t.actions.join(`, `)}`),t.configured===!1||t.enabled===!1){let e=t.configured===!1?`not configured`:`configured`,n=t.enabled===!1?`disabled`:`enabled`;f.push(`Status: ${e}, ${n}`)}let r=Ae(t.channel,t.probe);if(r.length>0?f.push(...r):t.configured&&t.enabled&&f.push(e.muted(`Probe: unavailable`)),t.channel===`slack`&&t.slackScopes)for(let n of t.slackScopes){let t=n.result.source?` (${n.result.source})`:``,r=n.tokenType===`user`?`User scopes`:`Bot scopes`;n.result.ok&&n.result.scopes?.length?f.push(`${r}${t}: ${n.result.scopes.join(`, `)}`):n.result.error&&f.push(`${r}: ${e.error(n.result.error)}`)}if(t.channel===`discord`&&t.channelPermissions){let n=t.channelPermissions;if(n.error)f.push(`Permissions: ${e.error(n.error)}`);else{let t=n.permissions?.length?n.permissions.join(`, `):`none`,r=n.channelId?` (${n.channelId})`:``;f.push(`Permissions${r}: ${t}`),n.missingRequired&&n.missingRequired.length>0?f.push(`${e.warn(`Missing required:`)} ${n.missingRequired.join(`, `)}`):f.push(e.success(`Missing required: none`))}}else t.channel===`discord`&&c&&!t.channelPermissions&&f.push(e.muted(`Permissions: skipped (no target).`));f.push(``)}i.log(f.join(`
4
4
  `).trimEnd())}const q=t=>t===`none`?e.error(t):t===`env`?e.accent(t):e.success(t);function Pe(t){return t===!1?e.error(`disabled`):e.success(`enabled`)}function Fe(t){return t?e.success(`configured`):e.warn(`not configured`)}function Ie(e){return`token=${q(e||`none`)}`}function J(e,t){return`${e}=${q(t||`none`)}`}function Le(t){return t?e.success(`linked`):e.warn(`not linked`)}function Re(e){return e.meta.showConfigured!==!1}function ze(t){let{channel:n,snapshot:r}=t,i=H({channel:n.id,accountId:r.accountId,name:r.name,channelStyle:e.accent,accountStyle:e.heading}),a=[];return r.linked!==void 0&&a.push(Le(r.linked)),Re(n)&&typeof r.configured==`boolean`&&a.push(Fe(r.configured)),r.tokenSource&&a.push(Ie(r.tokenSource)),r.botTokenSource&&a.push(J(`bot`,r.botTokenSource)),r.appTokenSource&&a.push(J(`app`,r.appTokenSource)),r.baseUrl&&a.push(`base=${e.muted(r.baseUrl)}`),typeof r.enabled==`boolean`&&a.push(Pe(r.enabled)),`- ${i}: ${a.join(`, `)}`}async function Be(e){try{return await M({label:`Fetching usage snapshot…`,indeterminate:!0,enabled:!0},async()=>await p())}catch(t){return e.error(String(t)),null}}async function Ve(t,r=n){let i=await B(r);if(!i)return;let a=t.usage!==!1,o=y(),c=s(),l=Object.entries(c.profiles).map(([e,t])=>({id:e,provider:t.provider,type:t.type,isExternal:!1}));if(t.json){let e=a?await p():void 0,t={};for(let e of o)t[e.id]=e.config.listAccountIds(i);let n={chat:t,auth:l,...e?{usage:e}:{}};r.log(JSON.stringify(n,null,2));return}let u=[];u.push(e.heading(`Chat channels:`));for(let e of o){let t=e.config.listAccountIds(i);if(!(!t||t.length===0))for(let n of t){let t=await R({plugin:e,cfg:i,accountId:n});u.push(ze({channel:e,snapshot:t}))}}if(u.push(``),u.push(e.heading(`Auth providers (OAuth + API keys):`)),l.length===0)u.push(e.muted(`- none`));else for(let t of l){let n=t.isExternal?e.muted(` (synced)`):``;u.push(`- ${e.accent(t.id)} (${e.success(t.type)}${n})`)}if(r.log(u.join(`
@@ -7,4 +7,4 @@ import"./paths-B4IRk3wi.js";import{A as e,N as t,p as n,v as r,w as i}from"./sub
7
7
  `);return i>0&&(s=s.slice(1)),s.length&&s[s.length-1]===``&&(s=s.slice(0,-1)),s.length>t&&(s=s.slice(s.length-t)),s}finally{await a.close()}}async function Ke(r,i=n){let a=Ue(r.channel),o=typeof r.lines==`string`?Number(r.lines):r.lines,s=typeof o==`number`&&Number.isFinite(o)&&o>0?Math.floor(o):200,c=t().file,l=(await Ge(c,s*4)).map(pe).filter(e=>!!e).filter(e=>We(e,a)),u=l.slice(Math.max(0,l.length-s));if(r.json){i.log(JSON.stringify({file:c,channel:a,lines:u},null,2));return}if(i.log(e.info(`Log file: ${c}`)),a!==`all`&&i.log(e.info(`Channel: ${a}`)),u.length===0){i.log(e.muted(`No matching log lines.`));return}for(let e of u){let t=e.time?`${e.time} `:``,n=e.level?`${e.level.toLowerCase()} `:``;i.log(`${t}${n}${e.message}`.trim())}}function qe(e,t){let n=x(t);return n?n.config.listAccountIds(e):[]}async function Je(e,t=n,r){let i=await B(t);if(!i)return;let a=U(r),o=a?F():null,s=b(e.channel),c=_(e.account),u=!!e.delete;if(a&&o){await o.intro(`Remove channel account`);let e=await o.select({message:`Channel`,options:y().map(e=>({value:e.id,label:e.meta.label}))});if(s=e,c=await(async()=>{let t=qe(i,e);return _(await o.select({message:`Account`,options:t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),initialValue:t[0]??`default`}))})(),!await o.confirm({message:`Disable ${V(e)} account "${c}"? (keeps config)`,initialValue:!0})){await o.outro(`Cancelled.`);return}}else{if(!s){t.error(`Channel is required. Use --channel <name>.`),t.exit(1);return}if(!u&&!await F().confirm({message:`Disable ${V(s)} account "${c}"? (keeps config)`,initialValue:!0}))return}let d=x(s);if(!d){t.error(`Unknown channel: ${s}`),t.exit(1);return}let p=_(c)??v({plugin:d,cfg:i}),m=p||`default`,h={...i};if(u){if(!d.config.deleteAccount){t.error(`Channel ${s} does not support delete.`),t.exit(1);return}h=d.config.deleteAccount({cfg:h,accountId:p}),s===`telegram`&&await f({accountId:p})}else{if(!d.config.setAccountEnabled){t.error(`Channel ${s} does not support disable.`),t.exit(1);return}h=d.config.setAccountEnabled({cfg:h,accountId:p,enabled:!1})}await l(h),a&&o?await o.outro(u?`Deleted ${V(s)} account "${m}".`:`Disabled ${V(s)} account "${m}".`):t.log(u?`Deleted ${V(s)} account "${m}".`:`Disabled ${V(s)} account "${m}".`)}function Ye(e){if(!(!e||e===`auto`))return e===`user`?`user`:`group`}function Xe(e){let t=e.trim();return t&&(t.startsWith(`@`)||/^<@!?/.test(t)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)||/^(user|discord|slack|matrix|msteams|teams|zalo|zalouser|googlechat|google-chat|gchat):/i.test(t))?`user`:`group`}function Ze(e){if(!e.resolved||!e.id)return`${e.input} -> unresolved`;let t=e.name?` (${e.name})`:``,n=e.note?` [${e.note}]`:``;return`${e.input} -> ${e.id}${t}${n}`}async function Qe(e,t){let{resolvedConfig:n,diagnostics:i}=await k({config:u(),commandName:`channels resolve`,targetIds:O(),mode:`operational_readonly`});for(let e of i)t.log(`[secrets] ${e}`);let a=(e.entries??[]).map(e=>e.trim()).filter(Boolean);if(a.length===0)throw Error(`At least one entry is required.`);let o=await E({cfg:n,channel:e.channel??null}),s=x(o.channel);if(!s?.resolver?.resolveTargets)throw Error(`Channel ${o.channel} does not support resolve.`);let c=Ye(e.kind),l=[];if(c)l=(await s.resolver.resolveTargets({cfg:n,accountId:e.account??null,inputs:a,kind:c,runtime:t})).map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}));else{let r=new Map;for(let e of a){let t=Xe(e);r.set(t,[...r.get(t)??[],e])}let i=[];for(let[a,o]of r.entries()){let r=await s.resolver.resolveTargets({cfg:n,accountId:e.account??null,inputs:o,kind:a,runtime:t});i.push(...r)}let o=new Map(i.map(e=>[e.input,e]));l=a.map(e=>{let t=o.get(e);return{input:e,resolved:t?.resolved??!1,id:t?.id,name:t?.name,note:t?.note}})}if(e.json){t.log(JSON.stringify(l,null,2));return}for(let e of l)e.resolved&&e.id?t.log(Ze(e)):t.error(r(`${e.input} -> unresolved${e.error?` (${e.error})`:e.note?` (${e.note})`:``}`))}function Y(e,t){typeof t.enabled==`boolean`&&e.push(t.enabled?`enabled`:`disabled`),typeof t.configured==`boolean`&&(t.configured?(e.push(`configured`),T(t)&&e.push(`secret unavailable in this command path`)):e.push(`not configured`)),typeof t.linked==`boolean`&&e.push(t.linked?`linked`:`not linked`)}function X(e,t){typeof t.mode==`string`&&t.mode.length>0&&e.push(`mode:${t.mode}`)}function Z(e,t){let n=(n,r,i)=>{let a=t[r];if(typeof a!=`string`||!a||a===`none`)return;let o=t[i]===`configured_unavailable`?` (unavailable)`:``;e.push(`${n}:${a}${o}`)};n(`token`,`tokenSource`,`tokenStatus`),n(`bot`,`botTokenSource`,`botTokenStatus`),n(`app`,`appTokenSource`,`appTokenStatus`),n(`signing`,`signingSecretSource`,`signingSecretStatus`)}function Q(e,t){typeof t.baseUrl==`string`&&t.baseUrl&&e.push(`url:${t.baseUrl}`)}function $e(e,t,n){return`- ${H({channel:e,accountId:typeof t.accountId==`string`?t.accountId:`default`,name:(typeof t.name==`string`?t.name.trim():``)||void 0})}: ${n.join(`, `)}`}function et(t){let n=[];n.push(e.success(`Gateway reachable.`));let r=(e,t)=>t.map(t=>{let n=[];Y(n,t),typeof t.running==`boolean`&&n.push(t.running?`running`:`stopped`),typeof t.connected==`boolean`&&n.push(t.connected?`connected`:`disconnected`);let r=typeof t.lastInboundAt==`number`&&Number.isFinite(t.lastInboundAt)?t.lastInboundAt:null,i=typeof t.lastOutboundAt==`number`&&Number.isFinite(t.lastOutboundAt)?t.lastOutboundAt:null;r&&n.push(`in:${D(Date.now()-r)}`),i&&n.push(`out:${D(Date.now()-i)}`),X(n,t);let a=(()=>{let e=t.bot,n=t.probe?.bot,r=e?.username??n?.username??``;if(typeof r!=`string`)return``;let i=r.trim();return i?i.startsWith(`@`)?i:`@${i}`:``})();a&&n.push(`bot:${a}`),typeof t.dmPolicy==`string`&&t.dmPolicy.length>0&&n.push(`dm:${t.dmPolicy}`),Array.isArray(t.allowFrom)&&t.allowFrom.length>0&&n.push(`allow:${t.allowFrom.slice(0,2).join(`,`)}`),Z(n,t);let o=t.application?.intents?.messageContent;typeof o==`string`&&o.length>0&&o!==`enabled`&&n.push(`intents:content=${o}`),t.allowUnmentionedGroups===!0&&n.push(`groups:unmentioned`),Q(n,t);let s=t.probe;s&&typeof s.ok==`boolean`&&n.push(s.ok?`works`:`probe failed`);let c=t.audit;return c&&typeof c.ok==`boolean`&&n.push(c.ok?`audit ok`:`audit failed`),typeof t.lastError==`string`&&t.lastError&&n.push(`error:${t.lastError}`),$e(e,t,n)}),i=y(),a=t.channelAccounts,o={};for(let e of i){let t=a?.[e.id];Array.isArray(t)&&(o[e.id]=t)}for(let e of i){let t=o[e.id];t&&t.length>0&&n.push(...r(e.id,t))}n.push(``);let s=me(t);if(s.length>0){n.push(e.warn(`Warnings:`));for(let e of s)n.push(`- ${e.channel} ${e.accountId}: ${e.message}${e.fix?` (${e.fix})`:``}`);n.push(`- Run: ${ee(`openclaw doctor`)}`),n.push(``)}return n.push(`Tip: ${A(`/cli#status`,`status --deep`)} adds gateway health probes to status output (requires a reachable gateway).`),n}async function tt(t,n,r){let i=[];i.push(e.warn(`Gateway not reachable; showing config-only status.`)),n.path&&i.push(`Config: ${n.path}`),n.mode&&i.push(`Mode: ${n.mode}`),(n.path||n.mode)&&i.push(``);let a=(e,t)=>t.map(t=>{let n=[];return Y(n,t),X(n,t),Z(n,t),Q(n,t),$e(e,t,n)}),o=y(),s=r?.sourceConfig??t;for(let e of o){let n=e.config.listAccountIds(t);if(!n.length)continue;let r=[];for(let i of n){let n=await fe({plugin:e,cfg:s,accountId:i}),a=await R({plugin:e,cfg:t,accountId:i});r.push(n&&T(n)&&(!re(a)||n.configured===!0&&a.configured===!1)?n:a)}r.length>0&&i.push(...a(e.id,r))}return i.push(``),i.push(`Tip: ${A(`/cli#status`,`status --deep`)} adds gateway health probes to status output (requires a reachable gateway).`),i}async function nt(e,t=n){let r=Number(e.timeout??1e4),i=e.probe?`Checking channel status (probe)…`:`Checking channel status…`;e.json!==!0&&!process.stderr.isTTY&&t.log(i);try{let n=await M({label:i,indeterminate:!0,enabled:e.json!==!0},async()=>await w({method:`channels.status`,params:{probe:!!e.probe,timeoutMs:r},timeoutMs:r}));if(e.json){t.log(JSON.stringify(n,null,2));return}t.log(et(n).join(`
8
8
  `))}catch(e){t.error(`Gateway not reachable: ${String(e)}`);let n=await L(t);if(!n)return;let{resolvedConfig:r,diagnostics:i}=await k({config:n,commandName:`channels status`,targetIds:O(),mode:`summary`});for(let e of i)t.log(`[secrets] ${e}`);let a=await c(),o=n.gateway?.mode===`remote`?`remote`:`local`;t.log((await tt(r,{path:a.path,mode:o},{sourceConfig:n})).join(`
9
9
  `))}}async function rt(e,t,n){let r=e.channel?.trim()||(await E({cfg:n})).channel,i=b(r);if(!i)throw Error(`Unsupported channel: ${r}`);let a=x(i);if(!(t===`login`?a?.auth?.login:a?.gateway?.logoutAccount))throw Error(`Channel ${i} does not support ${t}`);return{channelInput:r,channelId:i,plugin:a}}function it(e,t,n){return{accountId:t.account?.trim()||v({plugin:e,cfg:n})}}async function at(e,t=n){let r=u(),{channelInput:a,plugin:o}=await rt(e,`login`,r),s=o.auth?.login;if(!s)throw Error(`Channel ${a} does not support login`);i(!!e.verbose);let{accountId:c}=it(o,e,r);await s({cfg:r,accountId:c,runtime:t,verbose:!!e.verbose,channelInput:a})}async function ot(e,t=n){let r=u(),{channelInput:i,channelId:a,plugin:s}=await rt(e,`logout`,r),c=s.gateway?.logoutAccount;if(!c)throw Error(`Channel ${i} does not support logout`);let{accountId:l}=it(s,e,r);try{await w({method:`channels.logout`,params:{channel:a,accountId:l},timeoutMs:15e3,clientName:o.CLI,mode:d.CLI});return}catch{}await c({cfg:r,accountId:l,account:s.config.resolveAccount(r,l),runtime:t})}const st=`channel.account.name.token.tokenFile.botToken.appToken.signalNumber.cliPath.dbPath.service.region.authDir.httpUrl.httpHost.httpPort.webhookPath.webhookUrl.audienceType.audience.useEnv.homeserver.userId.accessToken.password.deviceName.initialSyncLimit.ship.url.code.groupChannels.dmAllowlist.autoDiscoverChannels`.split(`.`),ct=[`channel`,`account`,`delete`];function $(e){return j(n,e)}function lt(e,t){return j(n,e,e=>{n.error(r(`${t}: ${String(e)}`)),n.exit(1)})}function ut(t){let r=N(),i=t.command(`channels`).description(`Manage connected chat channels and accounts`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${ae([[`openclaw channels list`,`List configured channels and auth profiles.`],[`openclaw channels status --probe`,`Run channel status checks and probes.`],[`openclaw channels add --channel telegram --token <token>`,`Add or update a channel account non-interactively.`],[`openclaw channels login --channel whatsapp`,`Link a WhatsApp Web account.`]])}\n\n${e.muted(`Docs:`)} ${A(`/cli/channels`,`docs.openclaw.ai/cli/channels`)}\n`);i.command(`list`).description(`List configured channels + auth profiles`).option(`--no-usage`,`Skip model provider usage/quota snapshots`).option(`--json`,`Output JSON`,!1).action(async e=>{await $(async()=>{await Ve(e,n)})}),i.command(`status`).description(`Show gateway channel status (use status --deep for local)`).option(`--probe`,`Probe channel credentials`,!1).option(`--timeout <ms>`,`Timeout in ms`,`10000`).option(`--json`,`Output JSON`,!1).action(async e=>{await $(async()=>{await nt(e,n)})}),i.command(`capabilities`).description(`Show provider capabilities (intents/scopes + supported features)`).option(`--channel <name>`,`Channel (${N([`all`])})`).option(`--account <id>`,`Account id (only with --channel)`).option(`--target <dest>`,`Channel target for permission audit (Discord channel:<id>)`).option(`--timeout <ms>`,`Timeout in ms`,`10000`).option(`--json`,`Output JSON`,!1).action(async e=>{await $(async()=>{await Ne(e,n)})}),i.command(`resolve`).description(`Resolve channel/user names to IDs`).argument(`<entries...>`,`Entries to resolve (names or ids)`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (accountId)`).option(`--kind <kind>`,`Target kind (auto|user|group)`,`auto`).option(`--json`,`Output JSON`,!1).action(async(e,t)=>{await $(async()=>{await Qe({channel:t.channel,account:t.account,kind:t.kind,json:!!t.json,entries:Array.isArray(e)?e:[String(e)]},n)})}),i.command(`logs`).description(`Show recent channel logs from the gateway log file`).option(`--channel <name>`,`Channel (${N([`all`])})`,`all`).option(`--lines <n>`,`Number of lines (default: 200)`,`200`).option(`--json`,`Output JSON`,!1).action(async e=>{await $(async()=>{await Ke(e,n)})}),i.command(`add`).description(`Add or update a channel account`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (default when omitted)`).option(`--name <name>`,`Display name for this account`).option(`--token <token>`,`Bot token (Telegram/Discord)`).option(`--token-file <path>`,`Bot token file (Telegram)`).option(`--bot-token <token>`,`Slack bot token (xoxb-...)`).option(`--app-token <token>`,`Slack app token (xapp-...)`).option(`--signal-number <e164>`,`Signal account number (E.164)`).option(`--cli-path <path>`,`CLI path (signal-cli or imsg)`).option(`--db-path <path>`,`iMessage database path`).option(`--service <service>`,`iMessage service (imessage|sms|auto)`).option(`--region <region>`,`iMessage region (for SMS)`).option(`--auth-dir <path>`,`WhatsApp auth directory override`).option(`--http-url <url>`,`Signal HTTP daemon base URL`).option(`--http-host <host>`,`Signal HTTP host`).option(`--http-port <port>`,`Signal HTTP port`).option(`--webhook-path <path>`,`Webhook path (Google Chat/BlueBubbles)`).option(`--webhook-url <url>`,`Google Chat webhook URL`).option(`--audience-type <type>`,`Google Chat audience type (app-url|project-number)`).option(`--audience <value>`,`Google Chat audience value (app URL or project number)`).option(`--homeserver <url>`,`Matrix homeserver URL`).option(`--user-id <id>`,`Matrix user ID`).option(`--access-token <token>`,`Matrix access token`).option(`--password <password>`,`Matrix password`).option(`--device-name <name>`,`Matrix device name`).option(`--initial-sync-limit <n>`,`Matrix initial sync limit`).option(`--ship <ship>`,`Tlon ship name (~sampel-palnet)`).option(`--url <url>`,`Tlon ship URL`).option(`--code <code>`,`Tlon login code`).option(`--group-channels <list>`,`Tlon group channels (comma-separated)`).option(`--dm-allowlist <list>`,`Tlon DM allowlist (comma-separated ships)`).option(`--auto-discover-channels`,`Tlon auto-discover group channels`).option(`--no-auto-discover-channels`,`Disable Tlon auto-discovery`).option(`--use-env`,`Use env token (default account only)`,!1).action(async(e,t)=>{await $(async()=>{await ye(e,n,{hasFlags:P(t,st)})})}),i.command(`remove`).description(`Disable or delete a channel account`).option(`--channel <name>`,`Channel (${r})`).option(`--account <id>`,`Account id (default when omitted)`).option(`--delete`,`Delete config entries (no prompt)`,!1).action(async(e,t)=>{await $(async()=>{await Je(e,n,{hasFlags:P(t,ct)})})}),i.command(`login`).description(`Link a channel account (if supported)`).option(`--channel <channel>`,`Channel alias (auto when only one is configured)`).option(`--account <id>`,`Account id (accountId)`).option(`--verbose`,`Verbose connection logs`,!1).action(async e=>{await lt(async()=>{await at({channel:e.channel,account:e.account,verbose:!!e.verbose},n)},`Channel login failed`)}),i.command(`logout`).description(`Log out of a channel session (if supported)`).option(`--channel <channel>`,`Channel alias (auto when only one is configured)`).option(`--account <id>`,`Account id (accountId)`).action(async e=>{await lt(async()=>{await ot({channel:e.channel,account:e.account},n)},`Channel logout failed`)})}export{ut as registerChannelsCli};
10
- //# sourceMappingURL=channels-cli-Dgosczr6.js.map
10
+ //# sourceMappingURL=channels-cli-DFI6F6G0.js.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{jo as t}from"./auth-profiles-T8DuH3ax.js";import{d as n,f as r}from"./agent-scope-DAWJwFfl.js";import"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import{l as i}from"./compact-Dg66DXx_.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";const a=e(`plugins`);function o(e,o){let s=o??t(),c=n(s,r(s)),l={info:e=>a.info(e),warn:e=>a.warn(e),error:e=>a.error(e),debug:e=>a.debug(e)},u=i({config:s,workspaceDir:c,logger:l}),d=new Set(e.commands.map(e=>e.name()));for(let t of u.cliRegistrars){if(t.commands.length>0){let e=t.commands.filter(e=>d.has(e));if(e.length>0){a.debug(`plugin CLI register skipped (${t.pluginId}): command already registered (${e.join(`, `)})`);continue}}try{let n=t.register({program:e,config:s,workspaceDir:c,logger:l});n&&typeof n.then==`function`&&n.catch(e=>{a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)});for(let e of t.commands)d.add(e)}catch(e){a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)}}}export{o as registerPluginCliCommands};
2
- //# sourceMappingURL=cli-D8T2tphD.js.map
1
+ import{t as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{jo as t}from"./auth-profiles-T8DuH3ax.js";import{d as n,f as r}from"./agent-scope-DAWJwFfl.js";import"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import{l as i}from"./compact-BEeB6bwq.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";const a=e(`plugins`);function o(e,o){let s=o??t(),c=n(s,r(s)),l={info:e=>a.info(e),warn:e=>a.warn(e),error:e=>a.error(e),debug:e=>a.debug(e)},u=i({config:s,workspaceDir:c,logger:l}),d=new Set(e.commands.map(e=>e.name()));for(let t of u.cliRegistrars){if(t.commands.length>0){let e=t.commands.filter(e=>d.has(e));if(e.length>0){a.debug(`plugin CLI register skipped (${t.pluginId}): command already registered (${e.join(`, `)})`);continue}}try{let n=t.register({program:e,config:s,workspaceDir:c,logger:l});n&&typeof n.then==`function`&&n.catch(e=>{a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)});for(let e of t.commands)d.add(e)}catch(e){a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)}}}export{o as registerPluginCliCommands};
2
+ //# sourceMappingURL=cli-CMLvfh6N.js.map
@@ -1,2 +1,2 @@
1
- import"./paths-B4IRk3wi.js";import{t as e}from"./subsystem-C5XF2Fy5.js";import"./utils-UGOV_184.js";import{qs as t}from"./model-selection-BlC_rXAN.js";import{ot as n}from"./reply-l-Y47HP4.js";import{d as r,f as i}from"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import"./links-CySwdMcF.js";import"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";const a=e(`plugins`);function o(e,o){let s=o??t(),c=r(s,i(s)),l={info:e=>a.info(e),warn:e=>a.warn(e),error:e=>a.error(e),debug:e=>a.debug(e)},u=n({config:s,workspaceDir:c,logger:l}),d=new Set(e.commands.map(e=>e.name()));for(let t of u.cliRegistrars){if(t.commands.length>0){let e=t.commands.filter(e=>d.has(e));if(e.length>0){a.debug(`plugin CLI register skipped (${t.pluginId}): command already registered (${e.join(`, `)})`);continue}}try{let n=t.register({program:e,config:s,workspaceDir:c,logger:l});n&&typeof n.then==`function`&&n.catch(e=>{a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)});for(let e of t.commands)d.add(e)}catch(e){a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)}}}export{o as registerPluginCliCommands};
2
- //# sourceMappingURL=cli-BcnoCo4z.js.map
1
+ import"./paths-B4IRk3wi.js";import{t as e}from"./subsystem-C5XF2Fy5.js";import"./utils-UGOV_184.js";import{qs as t}from"./model-selection-BlC_rXAN.js";import{ot as n}from"./reply-CjyZeZ-j.js";import{d as r,f as i}from"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import"./links-CySwdMcF.js";import"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";const a=e(`plugins`);function o(e,o){let s=o??t(),c=r(s,i(s)),l={info:e=>a.info(e),warn:e=>a.warn(e),error:e=>a.error(e),debug:e=>a.debug(e)},u=n({config:s,workspaceDir:c,logger:l}),d=new Set(e.commands.map(e=>e.name()));for(let t of u.cliRegistrars){if(t.commands.length>0){let e=t.commands.filter(e=>d.has(e));if(e.length>0){a.debug(`plugin CLI register skipped (${t.pluginId}): command already registered (${e.join(`, `)})`);continue}}try{let n=t.register({program:e,config:s,workspaceDir:c,logger:l});n&&typeof n.then==`function`&&n.catch(e=>{a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)});for(let e of t.commands)d.add(e)}catch(e){a.warn(`plugin CLI register failed (${t.pluginId}): ${String(e)}`)}}}export{o as registerPluginCliCommands};
2
+ //# sourceMappingURL=cli-MTpYYgjl.js.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{J as t,Z as n}from"./subsystem-BLbY429l.js";import{i as r,o as i,s as a}from"./register.subclis-D-24j83X.js";var o=e({getCoreCliCommandNames:()=>u,getCoreCliCommandsWithSubcommands:()=>d,registerCoreCliByName:()=>m,registerCoreCliCommands:()=>h,registerProgramCommands:()=>g});const s=e=>!n(e),c=[{commands:[{name:`setup`,description:`Initialize local config and agent workspace`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.setup-BvsS-zgm.js`)).registerSetupCommand(e)}},{commands:[{name:`onboard`,description:`Interactive onboarding wizard for gateway, workspace, and skills`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.onboard-C3yL50_c.js`)).registerOnboardCommand(e)}},{commands:[{name:`configure`,description:`Interactive setup wizard for credentials, channels, gateway, and agent defaults`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.configure-BA5u9hT3.js`)).registerConfigureCommand(e)}},{commands:[{name:`config`,description:`Non-interactive config helpers (get/set/unset/file/validate). Default: starts setup wizard.`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./config-cli-CBte2b1h.js`)).registerConfigCli(e)}},{commands:[{name:`backup`,description:`Create and verify local backup archives for OpenClaw state`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./register.backup-PzF5rmeU.js`)).registerBackupCommand(e)}},{commands:[{name:`doctor`,description:`Health checks + quick fixes for the gateway and channels`,hasSubcommands:!1},{name:`dashboard`,description:`Open the Control UI with your current token`,hasSubcommands:!1},{name:`reset`,description:`Reset local config/state (keeps the CLI installed)`,hasSubcommands:!1},{name:`uninstall`,description:`Uninstall the gateway service + local data (CLI remains)`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.maintenance-r_MzNK3-.js`)).registerMaintenanceCommands(e)}},{commands:[{name:`message`,description:`Send, read, and manage messages`,hasSubcommands:!0}],register:async({program:e,ctx:t})=>{(await import(`./register.message-jcZ875be.js`)).registerMessageCommands(e,t)}},{commands:[{name:`memory`,description:`Search and reindex memory files`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./memory-cli-XaxtBQm1.js`).then(e=>e.t)).registerMemoryCli(e)}},{commands:[{name:`agent`,description:`Run one agent turn via the Gateway`,hasSubcommands:!1},{name:`agents`,description:`Manage isolated agents (workspaces, auth, routing)`,hasSubcommands:!0}],register:async({program:e,ctx:t})=>{(await import(`./register.agent-CX78s_X9.js`)).registerAgentCommands(e,{agentChannelOptions:t.agentChannelOptions})}},{commands:[{name:`status`,description:`Show channel health and recent session recipients`,hasSubcommands:!1},{name:`health`,description:`Fetch health from the running gateway`,hasSubcommands:!1},{name:`sessions`,description:`List stored conversation sessions`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./register.status-health-sessions-Dqmkw820.js`)).registerStatusHealthSessionsCommands(e)}},{commands:[{name:`browser`,description:`Manage OpenClaw's dedicated browser (Chrome/Chromium)`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./browser-cli-Dt0ds-an.js`)).registerBrowserCli(e)}}];function l(e){let t=new Set,n=[];for(let r of c)for(let i of r.commands)e&&!e(i)||t.has(i.name)||(t.add(i.name),n.push(i.name));return n}function u(){return l()}function d(){return l(e=>e.hasSubcommands)}function f(e,t){for(let n of t.commands)i(e,n.name)}function p(e,t,n,r){let i=e.command(r.name).description(r.description);i.allowUnknownOption(!0),i.allowExcessArguments(!0),i.action(async(...r)=>{f(e,n),await n.register({program:e,ctx:t,argv:process.argv}),await a(e,r)})}async function m(e,t,n,r=process.argv){let i=c.find(e=>e.commands.some(e=>e.name===n));return i?(f(e,i),await i.register({program:e,ctx:t,argv:r}),!0):!1}function h(e,n,r){let i=t(r);if(i&&s(r)){let t=c.find(e=>e.commands.some(e=>e.name===i));if(t){let r=t.commands.find(e=>e.name===i);r&&p(e,n,t,r);return}}for(let t of c)for(let r of t.commands)p(e,n,t,r)}function g(e,t,n=process.argv){h(e,t,n),r(e,n)}export{g as a,m as i,u as n,d as r,o as t};
2
- //# sourceMappingURL=command-registry-CfuXCRwV.js.map
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{J as t,Z as n}from"./subsystem-BLbY429l.js";import{i as r,o as i,s as a}from"./register.subclis-smZuHVcv.js";var o=e({getCoreCliCommandNames:()=>u,getCoreCliCommandsWithSubcommands:()=>d,registerCoreCliByName:()=>m,registerCoreCliCommands:()=>h,registerProgramCommands:()=>g});const s=e=>!n(e),c=[{commands:[{name:`setup`,description:`Initialize local config and agent workspace`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.setup-DiAi_1pJ.js`)).registerSetupCommand(e)}},{commands:[{name:`onboard`,description:`Interactive onboarding wizard for gateway, workspace, and skills`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.onboard-BY-QLNp9.js`)).registerOnboardCommand(e)}},{commands:[{name:`configure`,description:`Interactive setup wizard for credentials, channels, gateway, and agent defaults`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.configure-CvPihXst.js`)).registerConfigureCommand(e)}},{commands:[{name:`config`,description:`Non-interactive config helpers (get/set/unset/file/validate). Default: starts setup wizard.`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./config-cli-B9hEiZsw.js`)).registerConfigCli(e)}},{commands:[{name:`backup`,description:`Create and verify local backup archives for OpenClaw state`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./register.backup-PzF5rmeU.js`)).registerBackupCommand(e)}},{commands:[{name:`doctor`,description:`Health checks + quick fixes for the gateway and channels`,hasSubcommands:!1},{name:`dashboard`,description:`Open the Control UI with your current token`,hasSubcommands:!1},{name:`reset`,description:`Reset local config/state (keeps the CLI installed)`,hasSubcommands:!1},{name:`uninstall`,description:`Uninstall the gateway service + local data (CLI remains)`,hasSubcommands:!1}],register:async({program:e})=>{(await import(`./register.maintenance-BkM8-Ttt.js`)).registerMaintenanceCommands(e)}},{commands:[{name:`message`,description:`Send, read, and manage messages`,hasSubcommands:!0}],register:async({program:e,ctx:t})=>{(await import(`./register.message-CM_Qudzn.js`)).registerMessageCommands(e,t)}},{commands:[{name:`memory`,description:`Search and reindex memory files`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./memory-cli-XaxtBQm1.js`).then(e=>e.t)).registerMemoryCli(e)}},{commands:[{name:`agent`,description:`Run one agent turn via the Gateway`,hasSubcommands:!1},{name:`agents`,description:`Manage isolated agents (workspaces, auth, routing)`,hasSubcommands:!0}],register:async({program:e,ctx:t})=>{(await import(`./register.agent-CisptTv_.js`)).registerAgentCommands(e,{agentChannelOptions:t.agentChannelOptions})}},{commands:[{name:`status`,description:`Show channel health and recent session recipients`,hasSubcommands:!1},{name:`health`,description:`Fetch health from the running gateway`,hasSubcommands:!1},{name:`sessions`,description:`List stored conversation sessions`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./register.status-health-sessions-BXiMraHZ.js`)).registerStatusHealthSessionsCommands(e)}},{commands:[{name:`browser`,description:`Manage OpenClaw's dedicated browser (Chrome/Chromium)`,hasSubcommands:!0}],register:async({program:e})=>{(await import(`./browser-cli-Dt0ds-an.js`)).registerBrowserCli(e)}}];function l(e){let t=new Set,n=[];for(let r of c)for(let i of r.commands)e&&!e(i)||t.has(i.name)||(t.add(i.name),n.push(i.name));return n}function u(){return l()}function d(){return l(e=>e.hasSubcommands)}function f(e,t){for(let n of t.commands)i(e,n.name)}function p(e,t,n,r){let i=e.command(r.name).description(r.description);i.allowUnknownOption(!0),i.allowExcessArguments(!0),i.action(async(...r)=>{f(e,n),await n.register({program:e,ctx:t,argv:process.argv}),await a(e,r)})}async function m(e,t,n,r=process.argv){let i=c.find(e=>e.commands.some(e=>e.name===n));return i?(f(e,i),await i.register({program:e,ctx:t,argv:r}),!0):!1}function h(e,n,r){let i=t(r);if(i&&s(r)){let t=c.find(e=>e.commands.some(e=>e.name===i));if(t){let r=t.commands.find(e=>e.name===i);r&&p(e,n,t,r);return}}for(let t of c)for(let r of t.commands)p(e,n,t,r)}function g(e,t,n=process.argv){h(e,t,n),r(e,n)}export{g as a,m as i,u as n,d as r,o as t};
2
+ //# sourceMappingURL=command-registry-CPthpEk3.js.map