@qqbrowser/openclaw-qbot 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/{agents-Cd1yL8fG.js → agents-CCGNI0th.js} +1 -1
  2. package/dist/{agents.config-CaRMmWS8.js → agents.config-B9_IT_un.js} +1 -1
  3. package/dist/{agents.config-DSCcdYtv.js → agents.config-D8Q8p7re.js} +1 -1
  4. package/dist/{auth-choice-MqcWuVyu.js → auth-choice-DacG9sC7.js} +1 -1
  5. package/dist/{auth-choice-BmI4sIGs.js → auth-choice-EAV1bi1K.js} +1 -1
  6. package/dist/{banner-CAtilyXr.js → banner-DiQjNe9B.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +1 -1
  9. package/dist/bundled/session-memory/handler.js +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-CCqtIYCc.js → channel-options-DcI5T_Su.js} +1 -1
  12. package/dist/{channel-options-CKoyPq8p.js → channel-options-llKYy0-2.js} +1 -1
  13. package/dist/{channel-web-CwUfYqjg.js → channel-web-Qr8ST6tz.js} +1 -1
  14. package/dist/{channel-web-CCSMlUux.js → channel-web-TKrgB4oQ.js} +1 -1
  15. package/dist/{channels-cli-BfgVv5jH.js → channels-cli-BtyzpSQo.js} +1 -1
  16. package/dist/{channels-cli-BvGXgERj.js → channels-cli-CrdwqyiA.js} +1 -1
  17. package/dist/{cli-Bt--1dhL.js → cli-BDzG5MP5.js} +1 -1
  18. package/dist/{cli-CBg8KhmQ.js → cli-BY5POVX1.js} +1 -1
  19. package/dist/{command-registry-D_jtBegA.js → command-registry-DtMCIKRu.js} +1 -1
  20. package/dist/{compact-CYbPi7_-.js → compact-uyQDx8pN.js} +36 -36
  21. package/dist/{compact.runtime-BQu-8DFN.js → compact.runtime-BvWn8-VF.js} +1 -1
  22. package/dist/{compact.runtime-D-fOpaU3.js → compact.runtime-CbCNReBm.js} +1 -1
  23. package/dist/{compact.runtime-owWgKVDf.js → compact.runtime-DcRVnY_G.js} +1 -1
  24. package/dist/{compact.runtime-CrzmR0tV.js → compact.runtime-dgJTRf2V.js} +1 -1
  25. package/dist/{completion-cli-Bw_hBrlA.js → completion-cli-ByNU0Lbo.js} +1 -1
  26. package/dist/{completion-cli-BVbT_aR2.js → completion-cli-DHH7Zr2u.js} +1 -1
  27. package/dist/{config-cli-CwW76_j_.js → config-cli-BeVM5uz1.js} +1 -1
  28. package/dist/{config-cli-F-lkPjjz.js → config-cli-CcE1aKR3.js} +1 -1
  29. package/dist/{configure-DFlnM_zh.js → configure-CF42Va3r.js} +1 -1
  30. package/dist/{configure--c4tTVPz.js → configure-CYw7mK89.js} +1 -1
  31. package/dist/{deps-send-whatsapp.runtime-CqISN5vF.js → deps-send-whatsapp.runtime-7SqhJmWZ.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-C1zG74Si.js → deps-send-whatsapp.runtime-Bocaadqa.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-B5GMQIFv.js → deps-send-whatsapp.runtime-CjA6T7V6.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-CJnSJVnN.js → deps-send-whatsapp.runtime-DTyzQeR_.js} +1 -1
  35. package/dist/{doctor-completion-DI7mGC3D.js → doctor-completion-C15UB3EM.js} +1 -1
  36. package/dist/{doctor-completion-C9CPhCor.js → doctor-completion-KLuf1f33.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-BMmU2dsG.js → gateway-cli-CHyybU4X.js} +2 -2
  40. package/dist/{gateway-cli-Kp-caOwI.js → gateway-cli-DV3M2tJP.js} +2 -2
  41. package/dist/{health-B_-ZE5FK.js → health-2MbtCw6U.js} +1 -1
  42. package/dist/{health-CIZFVJEG.js → health-Dmtcw9K8.js} +1 -1
  43. package/dist/{hooks-cli-BoxAnC-E.js → hooks-cli-BaoD0-6l.js} +1 -1
  44. package/dist/{hooks-cli-CnCOjVv0.js → hooks-cli-DWCe4aHR.js} +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-BBYqej07.js → models-DKf-4KoV.js} +1 -1
  48. package/dist/{models-cli-CMMhnlHo.js → models-cli-Bc8cIZ0A.js} +1 -1
  49. package/dist/{models-cli-CqbDyDn2.js → models-cli-Ble64nV3.js} +1 -1
  50. package/dist/{npm-resolution-CBlwQq3a.js → npm-resolution-BzXV2s2P.js} +1 -1
  51. package/dist/{npm-resolution--_-0q2ks.js → npm-resolution-CZUqHH_2.js} +1 -1
  52. package/dist/{onboard-DZG0HnuP.js → onboard-B8dVlGVk.js} +2 -2
  53. package/dist/{onboard-DlCEww7K.js → onboard-By9pkNca.js} +2 -2
  54. package/dist/{onboard-channels-BDMtq3ex.js → onboard-channels-C5lcb7dF.js} +1 -1
  55. package/dist/{onboard-channels-BO3AN_eA.js → onboard-channels-DFB6deX0.js} +1 -1
  56. package/dist/{onboarding-m-m__16h.js → onboarding-C7vbkuBI.js} +1 -1
  57. package/dist/{onboarding-CxRTJCBM.js → onboarding-DCldCoVy.js} +1 -1
  58. package/dist/{onboarding.finalize-BJxMhYUa.js → onboarding.finalize-C-b9zSIO.js} +1 -1
  59. package/dist/{onboarding.finalize-UiX3YmbI.js → onboarding.finalize-XCttW8IU.js} +1 -1
  60. package/dist/{pi-embedded-X_Svd4Wi.js → pi-embedded-CoHiJa9Q.js} +8 -8
  61. package/dist/{pi-embedded-6yGEd2xd.js → pi-embedded-DLlQ5e_w.js} +8 -8
  62. package/dist/{plugin-registry-DYwEy5eM.js → plugin-registry-C_HKxFxs.js} +1 -1
  63. package/dist/{plugin-registry-CN2aCPP7.js → plugin-registry-DBgXa8jD.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-Bg8DNyeb.js → channel-web-CMlv9Yzv.js} +1 -1
  65. package/dist/plugin-sdk/{channel-web-B795Ild9.cjs → channel-web-D1tzaMsH.cjs} +1 -1
  66. package/dist/plugin-sdk/{channel-web-D5zxPW-x.js → channel-web-DowgDxtO.js} +1 -1
  67. package/dist/plugin-sdk/{channel-web-CW42ALB5.cjs → channel-web-VsaRZCG2.cjs} +1 -1
  68. package/dist/plugin-sdk/{compact.runtime-Cr6oI5li.js → compact.runtime-B4M-VPyN.js} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-BR00C0_i.cjs → compact.runtime-BeWqnWW5.cjs} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-DOcQzBT5.cjs → compact.runtime-BnF9vU5j.cjs} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-D-3vVYGF.js → compact.runtime-C5vcsriA.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-BBqQuOlJ.cjs → compact.runtime-CS04yjUP.cjs} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-CGKItjCQ.js → compact.runtime-CepgZBh6.js} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-C-sPm0kL.cjs → compact.runtime-CuGn1L3D.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-CAiT8DtI.js → compact.runtime-DNocZUm6.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-CmQT69OD.cjs → compact.runtime-DQRsRwKH.cjs} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-BXuXwnQ_.cjs → compact.runtime-DnWYG9Ij.cjs} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-BxzvSPrQ.js → compact.runtime-W8dIsxRV.js} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-B1fslZX1.js → compact.runtime-hS2NXspw.js} +1 -1
  80. package/dist/plugin-sdk/compat.cjs +1 -1
  81. package/dist/plugin-sdk/compat.js +1 -1
  82. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-WXiE5pA7.js → deps-send-whatsapp.runtime-B5Nz8XrQ.js} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DKoOiTZZ.cjs → deps-send-whatsapp.runtime-B5R8WAYy.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DlO-S_iA.js → deps-send-whatsapp.runtime-B6ua6LoP.js} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BUuj08qp.cjs → deps-send-whatsapp.runtime-BPMIzR5x.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-iI9qWUzR.cjs → deps-send-whatsapp.runtime-Bpq7VeGO.cjs} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-3kX5dnHC.js → deps-send-whatsapp.runtime-D3YUudyV.js} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Xn1KqyPS.js → deps-send-whatsapp.runtime-DFxWO5_f.js} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CE9LgvzJ.cjs → deps-send-whatsapp.runtime-DZ_pLOPK.cjs} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-t0Z0IyDq.cjs → deps-send-whatsapp.runtime-DyoJd0Hw.cjs} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-rOnSc6qE.js → deps-send-whatsapp.runtime-ZkaerhQ1.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-QUlRFE48.cjs → deps-send-whatsapp.runtime-_wzNB18A.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DKVfDIzU.js → deps-send-whatsapp.runtime-bBd46QxW.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-DAaOM5c1.cjs → dispatch-B8dzPpi1.cjs} +8 -8
  95. package/dist/plugin-sdk/{dispatch-DYRrW05S.js → dispatch-B9FQyNfe.js} +36 -36
  96. package/dist/plugin-sdk/{dispatch-Dl0eaYcY.cjs → dispatch-BB5AfYlI.cjs} +8 -8
  97. package/dist/plugin-sdk/{dispatch-_tJF5hSh.cjs → dispatch-BIaey_BU.cjs} +8 -8
  98. package/dist/plugin-sdk/{dispatch-B13B2T1k.js → dispatch-BY1FkQOr.js} +8 -8
  99. package/dist/plugin-sdk/{dispatch-cPg1rBWu.cjs → dispatch-Bybxc9Yl.cjs} +8 -8
  100. package/dist/plugin-sdk/{dispatch-BlOkbw2U.js → dispatch-CADw_Fi7.js} +8 -8
  101. package/dist/plugin-sdk/{dispatch-Dap2ZPC9.js → dispatch-CZqPeEcw.js} +8 -8
  102. package/dist/plugin-sdk/{dispatch-BaBcLOry.js → dispatch-DafB1x1O.js} +8 -8
  103. package/dist/plugin-sdk/{dispatch-D2Km7gvG.cjs → dispatch-DcyylSdu.cjs} +8 -8
  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-JD6VIW5N.cjs → reply-6D8nZUZ1.cjs} +8 -8
  115. package/dist/plugin-sdk/{reply-73PF8kN_.js → reply-gpVkJsEs.js} +8 -8
  116. package/dist/plugin-sdk/{slash-dispatch.runtime-DAgDLU__.js → slash-dispatch.runtime-2hUZv0o4.js} +1 -1
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-BfheQLfD.js → slash-dispatch.runtime-B4sdtKqK.js} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-CmVqJqfV.js → slash-dispatch.runtime-BCAWJ135.js} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-wWa-kKvH.js → slash-dispatch.runtime-BJX-7mTD.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-C6cMCwSp.js → slash-dispatch.runtime-BY3aBzxK.js} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-BVXTmhZU.js → slash-dispatch.runtime-CHFbytW1.js} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-BcO6NdxL.cjs → slash-dispatch.runtime-Cf-EuMPD.cjs} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-CYmmyw9o.cjs → slash-dispatch.runtime-CukipBLa.cjs} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-DNI9fZFo.cjs → slash-dispatch.runtime-D7JTU7km.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-BQWrcjEG.cjs → slash-dispatch.runtime-DZq0olM2.cjs} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-Cp5-cPgM.cjs → slash-dispatch.runtime-ILA0KH-p.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-CD6AFEn3.cjs → slash-dispatch.runtime-_i2UiDTt.cjs} +1 -1
  128. package/dist/plugin-sdk/{subagent-registry-runtime-BINR9wKz.cjs → subagent-registry-runtime-7wfZ9Ydg.cjs} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-q6csFFiS.js → subagent-registry-runtime-B6Go3QMY.js} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-CPYQLLoh.cjs → subagent-registry-runtime-Bf71VzVF.cjs} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-DCd8DMgz.js → subagent-registry-runtime-CKlyWpvM.js} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-BfT45xXa.cjs → subagent-registry-runtime-CcyvhbJH.cjs} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-DYhr9YcP.js → subagent-registry-runtime-D4y3Fxlu.js} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-BBwsJL9B.cjs → subagent-registry-runtime-DFCUhuvT.cjs} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-CjnSOShL.js → subagent-registry-runtime-DWZUy1eI.js} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-B9uDb_ij.js → subagent-registry-runtime-DkCs3cQj.js} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-DB8YDuGj.js → subagent-registry-runtime-RrhCNI-u.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-iiOzLeYb.cjs → subagent-registry-runtime-S2yCcuWA.cjs} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-ClkQBnJu.cjs → subagent-registry-runtime-zTYi4rJR.cjs} +1 -1
  140. package/dist/plugin-sdk/{web-Bh78uOi8.cjs → web-C-_Bja5u.cjs} +1 -1
  141. package/dist/plugin-sdk/{web-C4ezqWIt.js → web-C7h16O4t.js} +1 -1
  142. package/dist/plugin-sdk/{web-B7d3p3kx.cjs → web-Cf2Ivjcn.cjs} +1 -1
  143. package/dist/plugin-sdk/{web-DFDao2So.cjs → web-CfvlhITy.cjs} +1 -1
  144. package/dist/plugin-sdk/{web-JciOW43P.js → web-DzgvdKmn.js} +1 -1
  145. package/dist/plugin-sdk/{web-Bg2LIMdb.cjs → web-RmaRbUK1.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-SwpoHf2A.js → web-bHdImk0G.js} +1 -1
  147. package/dist/plugin-sdk/{web-DjbeDvyv.js → web-bT52Rp59.js} +1 -1
  148. package/dist/plugin-sdk/{web-vSFigMHz.cjs → web-pFlzmHcu.cjs} +1 -1
  149. package/dist/plugin-sdk/{web-BEuW8Yqw.js → web-rFQBs9b0.js} +1 -1
  150. package/dist/plugin-sdk/{web--8MBOleK.js → web-uQqWClDT.js} +1 -1
  151. package/dist/plugin-sdk/{web-BPQv-4Qv.cjs → web-wnw_PMil.cjs} +1 -1
  152. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  153. package/dist/plugin-sdk/whatsapp.js +1 -1
  154. package/dist/{plugins-cli-PVHBZeb8.js → plugins-cli-BjLj52hA.js} +1 -1
  155. package/dist/{plugins-cli-CnXgwZzI.js → plugins-cli-CwQOOOym.js} +1 -1
  156. package/dist/ports-BDZyt9rk.js +2 -0
  157. package/dist/ports-DmJX-iq9.js +2 -0
  158. package/dist/{program-D53eGuSf.js → program-RvezCMDs.js} +2 -2
  159. package/dist/{program-context-n-ovYq69.js → program-context-C4vPkfWW.js} +1 -1
  160. package/dist/{prompt-select-styled-DolCW-_j.js → prompt-select-styled-C-zw_5_b.js} +1 -1
  161. package/dist/{prompt-select-styled-DZnefcrY.js → prompt-select-styled-CoP6cSMX.js} +1 -1
  162. package/dist/{provider-auth-helpers-BLm2bdp5.js → provider-auth-helpers-DeCLF5oV.js} +1 -1
  163. package/dist/{provider-auth-helpers-DPz0vN_c.js → provider-auth-helpers-Rv3hdZ7j.js} +1 -1
  164. package/dist/{push-apns-BBv62ncV.js → push-apns-BfTKAzRZ.js} +1 -1
  165. package/dist/{push-apns-DIV5dBPP.js → push-apns-CeY33Rxc.js} +1 -1
  166. package/dist/{register.agent-DQdoMfmw.js → register.agent-CANRVL5k.js} +1 -1
  167. package/dist/{register.agent-DHOTtB8X.js → register.agent-He4UYNpV.js} +1 -1
  168. package/dist/{register.configure-C2N82brC.js → register.configure-CqsxTDtC.js} +1 -1
  169. package/dist/{register.configure-C6zjzaEo.js → register.configure-CwuLuKsv.js} +1 -1
  170. package/dist/{register.maintenance-CStaPxaB.js → register.maintenance-B5cnDjLy.js} +1 -1
  171. package/dist/{register.maintenance-aKBTd9Zp.js → register.maintenance-CHJQh81L.js} +1 -1
  172. package/dist/{register.message-DHDcOA8X.js → register.message-CEcXemHd.js} +1 -1
  173. package/dist/{register.message-Dh72QHKA.js → register.message-DoA6MALf.js} +1 -1
  174. package/dist/{register.onboard-DB9FWAKT.js → register.onboard-B01N1AYH.js} +1 -1
  175. package/dist/{register.onboard-Bu9gpFlA.js → register.onboard-B5iQpfVG.js} +1 -1
  176. package/dist/{register.setup-D76IRs4s.js → register.setup-BTKZzyRh.js} +1 -1
  177. package/dist/{register.setup-CeG2ETmr.js → register.setup-CPGByOtO.js} +1 -1
  178. package/dist/{register.status-health-sessions-mPGKFjIz.js → register.status-health-sessions-CPmSNp3F.js} +1 -1
  179. package/dist/{register.status-health-sessions-Dtpd1P2M.js → register.status-health-sessions-hrQLxH-w.js} +1 -1
  180. package/dist/{register.subclis-Drp2dGBe.js → register.subclis-CqVDIyhT.js} +1 -1
  181. package/dist/{reply-DwfVhea1.js → reply-mWIMy_ju.js} +8 -8
  182. package/dist/{run-main-CjwjyWA6.js → run-main-B2f6FBb0.js} +1 -1
  183. package/dist/{server-node-events-CL0pWoMa.js → server-node-events-BtKnElP0.js} +1 -1
  184. package/dist/{server-node-events-ChPQ984b.js → server-node-events-DnyBXZtB.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-jR7ZpRLo.js → slash-dispatch.runtime-B8S9VVjy.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-CHDiNcch.js → slash-dispatch.runtime-CS58xiJF.js} +1 -1
  187. package/dist/{slash-dispatch.runtime-DgsOlRbg.js → slash-dispatch.runtime-CZrxUnBW.js} +1 -1
  188. package/dist/{slash-dispatch.runtime-Bh87LG5X.js → slash-dispatch.runtime-Cq_OU6GL.js} +1 -1
  189. package/dist/{status-o3Gfr-6l.js → status-C3OhTrWE.js} +1 -1
  190. package/dist/{status-BSHWBrg0.js → status-tL-XCvJC.js} +1 -1
  191. package/dist/{subagent-registry-runtime-B8nEWxYm.js → subagent-registry-runtime-BvPAovsV.js} +1 -1
  192. package/dist/{subagent-registry-runtime-D5PhzS7u.js → subagent-registry-runtime-ClREKCLG.js} +1 -1
  193. package/dist/{subagent-registry-runtime-C6xoTyr_.js → subagent-registry-runtime-D2cjV86K.js} +1 -1
  194. package/dist/{subagent-registry-runtime-DU6-3b5M.js → subagent-registry-runtime-dcrGDOTV.js} +1 -1
  195. package/dist/{update-cli-DU5tRH3c.js → update-cli-CZsuMrHE.js} +1 -1
  196. package/dist/{update-cli-CL_cUjuq.js → update-cli-DAPHNGDM.js} +1 -1
  197. package/dist/{update-runner-DG-1TYYc.js → update-runner-DZkN4otc.js} +1 -1
  198. package/dist/{update-runner-DABdlxfN.js → update-runner-DhaHCCx3.js} +1 -1
  199. package/dist/{web-C0WkwHal.js → web-BPloShgg.js} +1 -1
  200. package/dist/{web-u71NbOpT.js → web-BbOH61Lx.js} +1 -1
  201. package/dist/{web-DPQjx48C.js → web-CMSYMAHG.js} +1 -1
  202. package/dist/{web-Dfi2WjvN.js → web-WBvnAfBv.js} +1 -1
  203. package/extensions/qqbrowser-skill-control/index.js +1 -1
  204. package/node_modules/@google/genai/dist/index.cjs +8 -8
  205. package/node_modules/@google/genai/dist/index.mjs +8 -8
  206. package/node_modules/@google/genai/dist/node/index.cjs +8 -8
  207. package/node_modules/@google/genai/dist/node/index.mjs +8 -8
  208. package/node_modules/@google/genai/dist/vertex_internal/index.cjs +1 -1
  209. package/node_modules/@google/genai/dist/vertex_internal/index.js +1 -1
  210. package/node_modules/@google/genai/dist/web/index.mjs +8 -8
  211. package/node_modules/@google/genai/package.json +1 -1
  212. package/package.json +1 -1
  213. package/dist/ports-BAaLOkJp.js +0 -2
  214. package/dist/ports-DDWP1p0X.js +0 -2
@@ -1,4 +1,4 @@
1
- import{p as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Ac as t,Bo as n,Tc as r}from"./auth-profiles-C8rZRS0X.js";import{t as i}from"./command-format-CLxIPuLR.js";import{a,d as o,f as s,n as c}from"./agent-scope-DAWJwFfl.js";import{c as l,g as u,t as d}from"./session-key-C7F_iqYg.js";import{v as f,x as p}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-Bz_S4lPh.js";import"./frontmatter-C7mzDNxd.js";import{lt as m,n as h,r as g,t as _,x as v,y}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"./send-vNcod64S.js";import"./send-CyarIb2w.js";import{F as b,L as x}from"./compact-CYbPi7_-.js";import{s as S}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-DZzS67GS.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-SqSusZP3.js";import"./diagnostic-D1H7_8QG.js";import"./send-Dj7NBAWg.js";import"./pi-model-discovery-BPkhPDMr.js";import"./exec-approvals-allowlist-CGjRWREs.js";import"./exec-safe-bin-runtime-policy-v44u39fl.js";import"./model-catalog-mt0IcDfR.js";import"./fetch-B4bz67_N.js";import"./audio-transcription-runner-BIKj1CBU.js";import"./fetch-guard-DaZmvp-L.js";import"./image-BVbOr9yV.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-BpEL4aeX.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-DdjufzKF.js";import"./render-DrrPmnMI.js";import"./target-errors-D6wejRd6.js";import"./commands-Dy7duWlt.js";import"./commands-registry-DT6FDUev.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bpdyx2A2.js";import"./sqlite-CILF3z9U.js";import"./call-BWx7hNtl.js";import"./pi-tools.policy-B6q8YOfg.js";import"./pairing-store-BaaVy1zB.js";import"./fetch-Dh-apy46.js";import"./skill-commands-DCqPy_Aa.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-zdbQ951y.js";import"./channel-activity-BhiLsKvM.js";import"./tables-DENKrP-W.js";import"./kill-tree-D6nPx1_o.js";import"./runtime-web-tools-BYhCkBV8.js";import"./runtime-CK7gqwEF.js";import"./node-shell-BVZylVP6.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BPxE8JR7.js";import"./plugin-auto-enable-adba5Evb.js";import"./send-ChILboDj.js";import"./outbound-attachment-CVcDBkAD.js";import"./delivery-queue-nkPJu0fY.js";import"./send-COpehmAB.js";import"./system-run-command-DsWBVvSK.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BEjtBf5Z.js";import"./connection-auth-CjaeEu5D.js";import{a as C,l as w}from"./onboard-helpers-DOlI17Ac.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-CZ-aX-up.js";import"./search-manager-CV2YsAym.js";import"./manager-CxZRoQkE.js";import"./memory-cli-C8fBBPgv.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./outbound-CqDxMWLZ.js";import"./channel-web-CwUfYqjg.js";import"./session-bk3gFwO4.js";import"./login-CcYeF5T_.js";import"./provider-env-vars-Dt0Q29Su.js";import"./note-Dp-d_utk.js";import{t as T}from"./prompts-CMzglboN.js";import{t as E}from"./clack-prompter-DBPdGdqp.js";import{a as D,i as O,n as k,o as ee,r as A,t as j}from"./config-validation-6hk_fxD8.js";import{a as te,i as M,n as N,r as P,t as F}from"./agents.config-DSCcdYtv.js";import"./enable-PO3qN4Lf.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-CKzq-YqL.js";import"./plugin-install-plan-sIOiMBS1.js";import{r as ne}from"./onboard-channels-BDMtq3ex.js";import"./auth-choice.apply-helpers-D911bYcw.js";import"./issue-format-CN9PHzXY.js";import"./openai-codex-model-default-DuRfnfUm.js";import"./auth-token-DZLZ3d_I.js";import{n as I}from"./logging-B7XHbCNn.js";import"./provider-auth-helpers-BLm2bdp5.js";import"./oauth-tls-preflight-BSBRDIfC.js";import"./auth-choice-options-B3WQyS7I.js";import{n as re}from"./auth-choice-prompt-uegl56cf.js";import{i as ie,r as ae}from"./auth-choice-MqcWuVyu.js";import"./openai-model-default-KMCphvoO.js";import"./model-picker-BB0Zdvyu.js";import"./ollama-setup-LVRPefmV.js";import L from"node:path";import R from"node:fs/promises";function z(e){return{...e,log:()=>{}}}async function B(e){return await j(e)}function V(e,t,n){return e?t?.trim()?l(t):n?.fallbackToDefault?s(e):null:null}function H(e,t){return e?N(e).some(e=>e.id===t):!1}function oe(e){return`${l(e.agentId)} <- ${O(e)}`}function se(e){let t=V(e.cfg,e.agentInput?.trim(),{fallbackToDefault:!0});return t?H(e.cfg,t)?t:(e.runtime.error(`Agent "${t}" not found.`),e.runtime.exit(1),null):(e.runtime.error(`Unable to resolve agent id.`),e.runtime.exit(1),null)}function U(e){return e.map(e=>`${O(e.binding)} (agent=${e.existingAgentId})`)}function W(e){let t=(e.bindValues??[]).map(e=>e.trim()).filter(Boolean);if(t.length===0)return e.runtime.error(e.emptyMessage),e.runtime.exit(1),null;let n=D({agentId:e.agentId,specs:t,config:e.cfg});return n.errors.length>0?(e.runtime.error(n.errors.join(`
1
+ import{p as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Ac as t,Bo as n,Tc as r}from"./auth-profiles-C8rZRS0X.js";import{t as i}from"./command-format-CLxIPuLR.js";import{a,d as o,f as s,n as c}from"./agent-scope-DAWJwFfl.js";import{c as l,g as u,t as d}from"./session-key-C7F_iqYg.js";import{v as f,x as p}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-Bz_S4lPh.js";import"./frontmatter-C7mzDNxd.js";import{lt as m,n as h,r as g,t as _,x as v,y}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"./send-vNcod64S.js";import"./send-CyarIb2w.js";import{F as b,L as x}from"./compact-uyQDx8pN.js";import{s as S}from"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-DZzS67GS.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-SqSusZP3.js";import"./diagnostic-D1H7_8QG.js";import"./send-Dj7NBAWg.js";import"./pi-model-discovery-BPkhPDMr.js";import"./exec-approvals-allowlist-CGjRWREs.js";import"./exec-safe-bin-runtime-policy-v44u39fl.js";import"./model-catalog-mt0IcDfR.js";import"./fetch-B4bz67_N.js";import"./audio-transcription-runner-BIKj1CBU.js";import"./fetch-guard-DaZmvp-L.js";import"./image-BVbOr9yV.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-BpEL4aeX.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-DdjufzKF.js";import"./render-DrrPmnMI.js";import"./target-errors-D6wejRd6.js";import"./commands-Dy7duWlt.js";import"./commands-registry-DT6FDUev.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bpdyx2A2.js";import"./sqlite-CILF3z9U.js";import"./call-BWx7hNtl.js";import"./pi-tools.policy-B6q8YOfg.js";import"./pairing-store-BaaVy1zB.js";import"./fetch-Dh-apy46.js";import"./skill-commands-DCqPy_Aa.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-zdbQ951y.js";import"./channel-activity-BhiLsKvM.js";import"./tables-DENKrP-W.js";import"./kill-tree-D6nPx1_o.js";import"./runtime-web-tools-BYhCkBV8.js";import"./runtime-CK7gqwEF.js";import"./node-shell-BVZylVP6.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BPxE8JR7.js";import"./plugin-auto-enable-adba5Evb.js";import"./send-ChILboDj.js";import"./outbound-attachment-CVcDBkAD.js";import"./delivery-queue-nkPJu0fY.js";import"./send-COpehmAB.js";import"./system-run-command-DsWBVvSK.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BEjtBf5Z.js";import"./connection-auth-CjaeEu5D.js";import{a as C,l as w}from"./onboard-helpers-DOlI17Ac.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-CZ-aX-up.js";import"./search-manager-CV2YsAym.js";import"./manager-CxZRoQkE.js";import"./memory-cli-C8fBBPgv.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./outbound-CqDxMWLZ.js";import"./channel-web-Qr8ST6tz.js";import"./session-bk3gFwO4.js";import"./login-CcYeF5T_.js";import"./provider-env-vars-Dt0Q29Su.js";import"./note-Dp-d_utk.js";import{t as T}from"./prompts-CMzglboN.js";import{t as E}from"./clack-prompter-DBPdGdqp.js";import{a as D,i as O,n as k,o as ee,r as A,t as j}from"./config-validation-6hk_fxD8.js";import{a as te,i as M,n as N,r as P,t as F}from"./agents.config-D8Q8p7re.js";import"./enable-PO3qN4Lf.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-CKzq-YqL.js";import"./plugin-install-plan-sIOiMBS1.js";import{r as ne}from"./onboard-channels-C5lcb7dF.js";import"./auth-choice.apply-helpers-D911bYcw.js";import"./issue-format-CN9PHzXY.js";import"./openai-codex-model-default-DuRfnfUm.js";import"./auth-token-DZLZ3d_I.js";import{n as I}from"./logging-B7XHbCNn.js";import"./provider-auth-helpers-DeCLF5oV.js";import"./oauth-tls-preflight-BSBRDIfC.js";import"./auth-choice-options-B3WQyS7I.js";import{n as re}from"./auth-choice-prompt-uegl56cf.js";import{i as ie,r as ae}from"./auth-choice-DacG9sC7.js";import"./openai-model-default-KMCphvoO.js";import"./model-picker-BB0Zdvyu.js";import"./ollama-setup-LVRPefmV.js";import L from"node:path";import R from"node:fs/promises";function z(e){return{...e,log:()=>{}}}async function B(e){return await j(e)}function V(e,t,n){return e?t?.trim()?l(t):n?.fallbackToDefault?s(e):null:null}function H(e,t){return e?N(e).some(e=>e.id===t):!1}function oe(e){return`${l(e.agentId)} <- ${O(e)}`}function se(e){let t=V(e.cfg,e.agentInput?.trim(),{fallbackToDefault:!0});return t?H(e.cfg,t)?t:(e.runtime.error(`Agent "${t}" not found.`),e.runtime.exit(1),null):(e.runtime.error(`Unable to resolve agent id.`),e.runtime.exit(1),null)}function U(e){return e.map(e=>`${O(e.binding)} (agent=${e.existingAgentId})`)}function W(e){let t=(e.bindValues??[]).map(e=>e.trim()).filter(Boolean);if(t.length===0)return e.runtime.error(e.emptyMessage),e.runtime.exit(1),null;let n=D({agentId:e.agentId,specs:t,config:e.cfg});return n.errors.length>0?(e.runtime.error(n.errors.join(`
2
2
  `)),e.runtime.exit(1),null):n}function G(e){return e.json?(e.runtime.log(JSON.stringify(e.payload,null,2)),(e.conflictCount??0)>0&&e.runtime.exit(1),!0):!1}async function K(e){let t=await B(e.runtime);if(!t)return null;let n=se({cfg:t,runtime:e.runtime,agentInput:e.agentInput});return n?{cfg:t,agentId:n}:null}async function ce(t,n=e){let r=await B(n);if(!r)return;let i=V(r,t.agent?.trim());if(t.agent&&!i){n.error(`Agent id is required.`),n.exit(1);return}if(i&&!H(r,i)){n.error(`Agent "${i}" not found.`),n.exit(1);return}let a=v(r).filter(e=>!i||l(e.agentId)===i);if(t.json){n.log(JSON.stringify(a.map(e=>({agentId:l(e.agentId),match:e.match,description:O(e)})),null,2));return}if(a.length===0){n.log(i?`No routing bindings for agent "${i}".`:`No routing bindings.`);return}n.log([`Routing bindings:`,...a.map(e=>`- ${oe(e)}`)].join(`
3
3
  `))}async function le(t,r=e){let i=await K({runtime:r,agentInput:t.agent});if(!i)return;let{cfg:a,agentId:o}=i,s=W({runtime:r,cfg:a,agentId:o,bindValues:t.bind,emptyMessage:`Provide at least one --bind <channel[:accountId]>.`});if(!s)return;let c=k(a,s.bindings);(c.added.length>0||c.updated.length>0)&&(await n(c.config),t.json||I(r));let l={agentId:o,added:c.added.map(O),updated:c.updated.map(O),skipped:c.skipped.map(O),conflicts:U(c.conflicts)};if(!G({runtime:r,json:t.json,payload:l,conflictCount:c.conflicts.length})){if(c.added.length>0){r.log(`Added bindings:`);for(let e of c.added)r.log(`- ${O(e)}`)}else c.updated.length===0&&r.log(`No new bindings added.`);if(c.updated.length>0){r.log(`Updated bindings:`);for(let e of c.updated)r.log(`- ${O(e)}`)}if(c.skipped.length>0){r.log(`Already present:`);for(let e of c.skipped)r.log(`- ${O(e)}`)}if(c.conflicts.length>0){r.error(`Skipped bindings already claimed by another agent:`);for(let e of c.conflicts)r.error(`- ${O(e.binding)} (agent=${e.existingAgentId})`);r.exit(1)}}}async function ue(t,r=e){let i=await K({runtime:r,agentInput:t.agent});if(!i)return;let{cfg:a,agentId:o}=i;if(t.all&&(t.bind?.length??0)>0){r.error(`Use either --all or --bind, not both.`),r.exit(1);return}if(t.all){let e=v(a),i=e.filter(e=>l(e.agentId)===o),s=e.filter(e=>l(e.agentId)!==o),c=(a.bindings??[]).filter(e=>!y(e));if(i.length===0){r.log(`No bindings to remove for agent "${o}".`);return}await n({...a,bindings:[...s,...c].length>0?[...s,...c]:void 0}),t.json||I(r);let u={agentId:o,removed:i.map(O),missing:[],conflicts:[]};if(G({runtime:r,json:t.json,payload:u}))return;r.log(`Removed ${i.length} binding(s) for "${o}".`);return}let s=W({runtime:r,cfg:a,agentId:o,bindValues:t.bind,emptyMessage:`Provide at least one --bind <channel[:accountId]> or use --all.`});if(!s)return;let c=ee(a,s.bindings);c.removed.length>0&&(await n(c.config),t.json||I(r));let u={agentId:o,removed:c.removed.map(O),missing:c.missing.map(O),conflicts:U(c.conflicts)};if(!G({runtime:r,json:t.json,payload:u,conflictCount:c.conflicts.length})){if(c.removed.length>0){r.log(`Removed bindings:`);for(let e of c.removed)r.log(`- ${O(e)}`)}else r.log(`No bindings removed.`);if(c.missing.length>0){r.log(`Not found:`);for(let e of c.missing)r.log(`- ${O(e)}`)}if(c.conflicts.length>0){r.error(`Bindings are owned by another agent:`);for(let e of c.conflicts)r.error(`- ${O(e.binding)} (agent=${e.existingAgentId})`);r.exit(1)}}}async function q(e){try{return await R.stat(e),!0}catch{return!1}}async function de(i,u=e,m){let h=await B(u);if(!h)return;let g=i.workspace?.trim(),_=i.name?.trim(),v=m?.hasFlags===!0,y=!!(i.nonInteractive||v);if(y&&!g){u.error(`Non-interactive mode requires --workspace. Re-run without flags to use the wizard.`),u.exit(1);return}if(y){if(!_){u.error(`Agent name is required in non-interactive mode.`),u.exit(1);return}if(!g){u.error(`Non-interactive mode requires --workspace. Re-run without flags to use the wizard.`),u.exit(1);return}let e=l(_);if(e===`main`){u.error(`"${d}" is reserved. Choose another name.`),u.exit(1);return}if(e!==_&&u.log(`Normalized agent id to "${e}".`),P(c(h),e)>=0){u.error(`Agent "${e}" already exists.`),u.exit(1);return}let t=f(g),r=i.agentDir?.trim()?f(i.agentDir.trim()):a(h,e),o=i.model?.trim(),s=F(h,{agentId:e,name:_,workspace:t,agentDir:r,...o?{model:o}:{}}),m=D({agentId:e,specs:i.bind,config:s});if(m.errors.length>0){u.error(m.errors.join(`
4
4
  `)),u.exit(1);return}let v=m.bindings.length>0?k(s,m.bindings):{config:s,added:[],updated:[],skipped:[],conflicts:[]};await n(v.config),i.json||I(u),await C(t,i.json?z(u):u,{skipBootstrap:!!v.config.agents?.defaults?.skipBootstrap,agentId:e});let y={agentId:e,name:_,workspace:t,agentDir:r,model:o,bindings:{added:v.added.map(O),updated:v.updated.map(O),skipped:v.skipped.map(O),conflicts:v.conflicts.map(e=>`${O(e.binding)} (agent=${e.existingAgentId})`)}};i.json?u.log(JSON.stringify(y,null,2)):(u.log(`Agent: ${e}`),u.log(`Workspace: ${p(t)}`),u.log(`Agent dir: ${p(r)}`),o&&u.log(`Model: ${o}`),v.conflicts.length>0&&u.error([`Skipped bindings already claimed by another agent:`,...v.conflicts.map(e=>`- ${O(e.binding)} (agent=${e.existingAgentId})`)].join(`
@@ -1 +1 @@
1
- import{dn as e,un as t}from"./reply-DwfVhea1.js";import{a as n,d as r,f as i,n as a}from"./agent-scope-DXZc3eNT.js";import{c as o}from"./session-key-D3P0tf5P.js";import{x as s}from"./plugins-CYLrFT4h.js";function c(e,t){let n=o(t);return e.findIndex(e=>o(e.id)===n)}function l(e,t){return a(e).find(e=>o(e.id)===o(t))?.name?.trim()||void 0}function u(e,t){let n=a(e).find(e=>o(e.id)===o(t));if(n?.model){if(typeof n.model==`string`&&n.model.trim())return n.model.trim();if(typeof n.model==`object`){let e=n.model.primary?.trim();if(e)return e}}let r=e.agents?.defaults?.model;return typeof r==`string`?r:r?.primary?.trim()||void 0}function d(n){let r=e(n);return r&&t(r)?r:null}function f(e){let t=o(i(e)),c=a(e),f=c.length>0?c.map(e=>o(e.id)):[t],p=new Map;for(let t of s(e)){let e=o(t.agentId);p.set(e,(p.get(e)??0)+1)}return f.filter((e,t)=>f.indexOf(e)===t).map(i=>{let a=r(e,i),s=d(a),f=c.find(e=>o(e.id)===i)?.identity,m=s?.name??f?.name?.trim(),h=s?.emoji??f?.emoji?.trim(),g=s?`identity`:f&&(m||h)?`config`:void 0;return{id:i,name:l(e,i),identityName:m,identityEmoji:h,identitySource:g,workspace:a,agentDir:n(e,i),model:u(e,i),bindings:p.get(i)??0,isDefault:i===t}})}function p(e,t){let n=o(t.agentId),r=t.name?.trim(),s=a(e),l=c(s,n),u={...l>=0?s[l]:{id:n},...r?{name:r}:{},...t.workspace?{workspace:t.workspace}:{},...t.agentDir?{agentDir:t.agentDir}:{},...t.model?{model:t.model}:{}},d=[...s];return l>=0?d[l]=u:(d.length===0&&n!==o(i(e))&&d.push({id:i(e)}),d.push(u)),{...e,agents:{...e.agents,list:d}}}function m(e,t){let n=o(t),r=a(e).filter(e=>o(e.id)!==n),i=r.length>0?r:void 0,s=e.bindings??[],c=s.filter(e=>o(e.agentId)!==n),l=e.tools?.agentToAgent?.allow??[],u=l.filter(e=>e!==n),d=e.agents?{...e.agents,list:i}:i?{list:i}:void 0,f=e.tools?.agentToAgent?{...e.tools,agentToAgent:{...e.tools.agentToAgent,allow:u.length>0?u:void 0}}:e.tools;return{config:{...e,agents:d,bindings:c.length>0?c:void 0,tools:f},removedBindings:s.length-c.length,removedAllow:l.length-u.length}}export{m as a,d as i,f as n,c as r,p as t};
1
+ import{dn as e,un as t}from"./reply-mWIMy_ju.js";import{a as n,d as r,f as i,n as a}from"./agent-scope-DXZc3eNT.js";import{c as o}from"./session-key-D3P0tf5P.js";import{x as s}from"./plugins-CYLrFT4h.js";function c(e,t){let n=o(t);return e.findIndex(e=>o(e.id)===n)}function l(e,t){return a(e).find(e=>o(e.id)===o(t))?.name?.trim()||void 0}function u(e,t){let n=a(e).find(e=>o(e.id)===o(t));if(n?.model){if(typeof n.model==`string`&&n.model.trim())return n.model.trim();if(typeof n.model==`object`){let e=n.model.primary?.trim();if(e)return e}}let r=e.agents?.defaults?.model;return typeof r==`string`?r:r?.primary?.trim()||void 0}function d(n){let r=e(n);return r&&t(r)?r:null}function f(e){let t=o(i(e)),c=a(e),f=c.length>0?c.map(e=>o(e.id)):[t],p=new Map;for(let t of s(e)){let e=o(t.agentId);p.set(e,(p.get(e)??0)+1)}return f.filter((e,t)=>f.indexOf(e)===t).map(i=>{let a=r(e,i),s=d(a),f=c.find(e=>o(e.id)===i)?.identity,m=s?.name??f?.name?.trim(),h=s?.emoji??f?.emoji?.trim(),g=s?`identity`:f&&(m||h)?`config`:void 0;return{id:i,name:l(e,i),identityName:m,identityEmoji:h,identitySource:g,workspace:a,agentDir:n(e,i),model:u(e,i),bindings:p.get(i)??0,isDefault:i===t}})}function p(e,t){let n=o(t.agentId),r=t.name?.trim(),s=a(e),l=c(s,n),u={...l>=0?s[l]:{id:n},...r?{name:r}:{},...t.workspace?{workspace:t.workspace}:{},...t.agentDir?{agentDir:t.agentDir}:{},...t.model?{model:t.model}:{}},d=[...s];return l>=0?d[l]=u:(d.length===0&&n!==o(i(e))&&d.push({id:i(e)}),d.push(u)),{...e,agents:{...e.agents,list:d}}}function m(e,t){let n=o(t),r=a(e).filter(e=>o(e.id)!==n),i=r.length>0?r:void 0,s=e.bindings??[],c=s.filter(e=>o(e.agentId)!==n),l=e.tools?.agentToAgent?.allow??[],u=l.filter(e=>e!==n),d=e.agents?{...e.agents,list:i}:i?{list:i}:void 0,f=e.tools?.agentToAgent?{...e.tools,agentToAgent:{...e.tools.agentToAgent,allow:u.length>0?u:void 0}}:e.tools;return{config:{...e,agents:d,bindings:c.length>0?c:void 0,tools:f},removedBindings:s.length-c.length,removedAllow:l.length-u.length}}export{m as a,d as i,f as n,c as r,p as t};
@@ -1 +1 @@
1
- import{a as e,d as t,f as n,n as r}from"./agent-scope-DAWJwFfl.js";import{c as i}from"./session-key-C7F_iqYg.js";import{x as a}from"./plugins-DNlgeTTc.js";import{F as o,I as s}from"./compact-CYbPi7_-.js";function c(e,t){let n=i(t);return e.findIndex(e=>i(e.id)===n)}function l(e,t){return r(e).find(e=>i(e.id)===i(t))?.name?.trim()||void 0}function u(e,t){let n=r(e).find(e=>i(e.id)===i(t));if(n?.model){if(typeof n.model==`string`&&n.model.trim())return n.model.trim();if(typeof n.model==`object`){let e=n.model.primary?.trim();if(e)return e}}let a=e.agents?.defaults?.model;return typeof a==`string`?a:a?.primary?.trim()||void 0}function d(e){let t=s(e);return t&&o(t)?t:null}function f(o){let s=i(n(o)),c=r(o),f=c.length>0?c.map(e=>i(e.id)):[s],p=new Map;for(let e of a(o)){let t=i(e.agentId);p.set(t,(p.get(t)??0)+1)}return f.filter((e,t)=>f.indexOf(e)===t).map(n=>{let r=t(o,n),a=d(r),f=c.find(e=>i(e.id)===n)?.identity,m=a?.name??f?.name?.trim(),h=a?.emoji??f?.emoji?.trim(),g=a?`identity`:f&&(m||h)?`config`:void 0;return{id:n,name:l(o,n),identityName:m,identityEmoji:h,identitySource:g,workspace:r,agentDir:e(o,n),model:u(o,n),bindings:p.get(n)??0,isDefault:n===s}})}function p(e,t){let a=i(t.agentId),o=t.name?.trim(),s=r(e),l=c(s,a),u={...l>=0?s[l]:{id:a},...o?{name:o}:{},...t.workspace?{workspace:t.workspace}:{},...t.agentDir?{agentDir:t.agentDir}:{},...t.model?{model:t.model}:{}},d=[...s];return l>=0?d[l]=u:(d.length===0&&a!==i(n(e))&&d.push({id:n(e)}),d.push(u)),{...e,agents:{...e.agents,list:d}}}function m(e,t){let n=i(t),a=r(e).filter(e=>i(e.id)!==n),o=a.length>0?a:void 0,s=e.bindings??[],c=s.filter(e=>i(e.agentId)!==n),l=e.tools?.agentToAgent?.allow??[],u=l.filter(e=>e!==n),d=e.agents?{...e.agents,list:o}:o?{list:o}:void 0,f=e.tools?.agentToAgent?{...e.tools,agentToAgent:{...e.tools.agentToAgent,allow:u.length>0?u:void 0}}:e.tools;return{config:{...e,agents:d,bindings:c.length>0?c:void 0,tools:f},removedBindings:s.length-c.length,removedAllow:l.length-u.length}}export{m as a,d as i,f as n,c as r,p as t};
1
+ import{a as e,d as t,f as n,n as r}from"./agent-scope-DAWJwFfl.js";import{c as i}from"./session-key-C7F_iqYg.js";import{x as a}from"./plugins-DNlgeTTc.js";import{F as o,I as s}from"./compact-uyQDx8pN.js";function c(e,t){let n=i(t);return e.findIndex(e=>i(e.id)===n)}function l(e,t){return r(e).find(e=>i(e.id)===i(t))?.name?.trim()||void 0}function u(e,t){let n=r(e).find(e=>i(e.id)===i(t));if(n?.model){if(typeof n.model==`string`&&n.model.trim())return n.model.trim();if(typeof n.model==`object`){let e=n.model.primary?.trim();if(e)return e}}let a=e.agents?.defaults?.model;return typeof a==`string`?a:a?.primary?.trim()||void 0}function d(e){let t=s(e);return t&&o(t)?t:null}function f(o){let s=i(n(o)),c=r(o),f=c.length>0?c.map(e=>i(e.id)):[s],p=new Map;for(let e of a(o)){let t=i(e.agentId);p.set(t,(p.get(t)??0)+1)}return f.filter((e,t)=>f.indexOf(e)===t).map(n=>{let r=t(o,n),a=d(r),f=c.find(e=>i(e.id)===n)?.identity,m=a?.name??f?.name?.trim(),h=a?.emoji??f?.emoji?.trim(),g=a?`identity`:f&&(m||h)?`config`:void 0;return{id:n,name:l(o,n),identityName:m,identityEmoji:h,identitySource:g,workspace:r,agentDir:e(o,n),model:u(o,n),bindings:p.get(n)??0,isDefault:n===s}})}function p(e,t){let a=i(t.agentId),o=t.name?.trim(),s=r(e),l=c(s,a),u={...l>=0?s[l]:{id:a},...o?{name:o}:{},...t.workspace?{workspace:t.workspace}:{},...t.agentDir?{agentDir:t.agentDir}:{},...t.model?{model:t.model}:{}},d=[...s];return l>=0?d[l]=u:(d.length===0&&a!==i(n(e))&&d.push({id:n(e)}),d.push(u)),{...e,agents:{...e.agents,list:d}}}function m(e,t){let n=i(t),a=r(e).filter(e=>i(e.id)!==n),o=a.length>0?a:void 0,s=e.bindings??[],c=s.filter(e=>i(e.agentId)!==n),l=e.tools?.agentToAgent?.allow??[],u=l.filter(e=>e!==n),d=e.agents?{...e.agents,list:o}:o?{list:o}:void 0,f=e.tools?.agentToAgent?{...e.tools,agentToAgent:{...e.tools.agentToAgent,allow:u.length>0?u:void 0}}:e.tools;return{config:{...e,agents:d,bindings:c.length>0?c:void 0,tools:f},removedBindings:s.length-c.length,removedAllow:l.length-u.length}}export{m as a,d as i,f as n,c as r,p as t};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{Al as t,Hl as n,Mc as r,Pl as i,Sc as a,Tc as o,Ul as s,Xc as c,ao as l,cl as u,fl as d,io as f,iu as p,no as m,r as h,ro as g,ru as _,ta as ee,yc as v}from"./auth-profiles-C8rZRS0X.js";import{F as y,a as te,d as ne,f as b,j as re}from"./agent-scope-DAWJwFfl.js";import{n as ie}from"./model-catalog-mt0IcDfR.js";import{f as x}from"./onboard-helpers-DOlI17Ac.js";import{t as ae}from"./enable-PO3qN4Lf.js";import{a as S,c as oe,d as C,f as w,i as T,l as E,n as D,o as se,s as ce,t as O,u as le}from"./auth-choice.apply-helpers-D911bYcw.js";import{n as ue,t as k}from"./openai-codex-model-default-DuRfnfUm.js";import{$ as de,A as fe,At as pe,B as me,C as he,Ct as ge,D as _e,Dt as ve,E as ye,Et as be,F as xe,Ft as A,G as Se,H as Ce,I as we,It as Te,J as Ee,K as De,L as Oe,Lt as ke,M as Ae,Mt as j,N as je,Nt as M,O as Me,Ot as Ne,P as Pe,Pt as N,Q as Fe,R as Ie,Rt as P,S as Le,St as F,T as Re,Tt as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,Z as Ge,_ as I,_t as L,a as R,at as z,b as Ke,bt as qe,c as Je,ct as Ye,d as Xe,dt as Ze,et as Qe,f as $e,ft as et,gt as tt,h as B,ht as nt,i as rt,it as V,j as it,jt as at,k as ot,kt as st,l as ct,lt,m as ut,mt as dt,n as H,nt as U,ot as ft,p as pt,pt as mt,q as ht,r as gt,rt as W,s as _t,st as vt,t as yt,tt as G,u as bt,ut as xt,v as St,vt as K,w as Ct,wt,x as Tt,xt as Et,y as Dt,yt as Ot,z as kt}from"./auth-token-DZLZ3d_I.js";import{n as q,t as J}from"./oauth-env-DAamJ1oz.js";import{a as At,c as jt,i as Mt,n as Nt,o as Y,r as Pt,s as Ft,t as It}from"./provider-auth-helpers-BLm2bdp5.js";import{a as X,i as Lt,n as Rt,o as zt,r as Bt,t as Z}from"./openai-model-default-KMCphvoO.js";import{r as Vt,s as Ht}from"./model-picker-BB0Zdvyu.js";import{i as Ut,n as Wt}from"./ollama-setup-LVRPefmV.js";import{randomBytes as Gt}from"node:crypto";import{createServer as Kt}from"node:http";const qt=`anthropic/claude-sonnet-4-6`;async function Jt(e){let t=S(e.opts?.secretInputMode);if(e.authChoice===`setup-token`||e.authChoice===`oauth`||e.authChoice===`token`){let n=e.config;await e.prompter.note(["Run `claude setup-token` in your terminal.",`Then paste the generated token below.`].join(`
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{Al as t,Hl as n,Mc as r,Pl as i,Sc as a,Tc as o,Ul as s,Xc as c,ao as l,cl as u,fl as d,io as f,iu as p,no as m,r as h,ro as g,ru as _,ta as ee,yc as v}from"./auth-profiles-C8rZRS0X.js";import{F as y,a as te,d as ne,f as b,j as re}from"./agent-scope-DAWJwFfl.js";import{n as ie}from"./model-catalog-mt0IcDfR.js";import{f as x}from"./onboard-helpers-DOlI17Ac.js";import{t as ae}from"./enable-PO3qN4Lf.js";import{a as S,c as oe,d as C,f as w,i as T,l as E,n as D,o as se,s as ce,t as O,u as le}from"./auth-choice.apply-helpers-D911bYcw.js";import{n as ue,t as k}from"./openai-codex-model-default-DuRfnfUm.js";import{$ as de,A as fe,At as pe,B as me,C as he,Ct as ge,D as _e,Dt as ve,E as ye,Et as be,F as xe,Ft as A,G as Se,H as Ce,I as we,It as Te,J as Ee,K as De,L as Oe,Lt as ke,M as Ae,Mt as j,N as je,Nt as M,O as Me,Ot as Ne,P as Pe,Pt as N,Q as Fe,R as Ie,Rt as P,S as Le,St as F,T as Re,Tt as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,Z as Ge,_ as I,_t as L,a as R,at as z,b as Ke,bt as qe,c as Je,ct as Ye,d as Xe,dt as Ze,et as Qe,f as $e,ft as et,gt as tt,h as B,ht as nt,i as rt,it as V,j as it,jt as at,k as ot,kt as st,l as ct,lt,m as ut,mt as dt,n as H,nt as U,ot as ft,p as pt,pt as mt,q as ht,r as gt,rt as W,s as _t,st as vt,t as yt,tt as G,u as bt,ut as xt,v as St,vt as K,w as Ct,wt,x as Tt,xt as Et,y as Dt,yt as Ot,z as kt}from"./auth-token-DZLZ3d_I.js";import{n as q,t as J}from"./oauth-env-DAamJ1oz.js";import{a as At,c as jt,i as Mt,n as Nt,o as Y,r as Pt,s as Ft,t as It}from"./provider-auth-helpers-DeCLF5oV.js";import{a as X,i as Lt,n as Rt,o as zt,r as Bt,t as Z}from"./openai-model-default-KMCphvoO.js";import{r as Vt,s as Ht}from"./model-picker-BB0Zdvyu.js";import{i as Ut,n as Wt}from"./ollama-setup-LVRPefmV.js";import{randomBytes as Gt}from"node:crypto";import{createServer as Kt}from"node:http";const qt=`anthropic/claude-sonnet-4-6`;async function Jt(e){let t=S(e.opts?.secretInputMode);if(e.authChoice===`setup-token`||e.authChoice===`oauth`||e.authChoice===`token`){let n=e.config;await e.prompter.note(["Run `claude setup-token` in your terminal.",`Then paste the generated token below.`].join(`
2
2
  `),`Anthropic setup-token`);let r=await oe({prompter:e.prompter,explicitMode:t,copy:{modeMessage:`How do you want to provide this setup token?`,plaintextLabel:`Paste setup token now`,plaintextHint:`Stores the token directly in the auth profile`}}),i=``,o;if(r===`ref`){let t=await ce({provider:`anthropic-setup-token`,config:e.config,prompter:e.prompter,preferredEnvVar:`ANTHROPIC_SETUP_TOKEN`,copy:{sourceMessage:`Where is this Anthropic setup token stored?`,envVarPlaceholder:`ANTHROPIC_SETUP_TOKEN`}});i=t.resolvedValue.trim(),o=t.ref}else{let t=await e.prompter.text({message:`Paste Anthropic setup-token`,validate:e=>H(String(e??``))});i=String(t??``).trim()}let s=H(i);if(s)throw Error(s);let c=await e.prompter.text({message:`Token name (blank = default)`,placeholder:`default`}),l=`anthropic`,u=yt({provider:l,name:String(c??``)});return a({profileId:u,agentDir:e.agentDir,credential:{type:`token`,provider:l,token:i,...o?{tokenRef:o}:{}}}),n=B(n,{profileId:u,provider:l,mode:`token`}),e.setDefaultModel&&(n=q(n,qt)),{config:n}}if(e.authChoice===`apiKey`){if(e.opts?.tokenProvider&&e.opts.tokenProvider!==`anthropic`)return null;let n=e.config;return await T({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider??`anthropic`,secretInputMode:t,config:n,expectedProviders:[`anthropic`],provider:`anthropic`,envLabel:`ANTHROPIC_API_KEY`,promptMessage:`Enter Anthropic API key`,normalize:C,validate:w,prompter:e.prompter,setCredential:async(t,n)=>vt(t,e.agentDir,{secretInputMode:n})}),n=B(n,{profileId:`anthropic:default`,provider:`anthropic`,mode:`api_key`}),e.setDefaultModel&&(n=q(n,qt)),{config:n}}return null}async function Yt(e){if(e.authChoice!==`huggingface-api-key`)return null;let t=e.config,r,i=O(e),a=S(e.opts?.secretInputMode),o=await T({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider,secretInputMode:a,config:t,expectedProviders:[`huggingface`],provider:`huggingface`,envLabel:`Hugging Face token`,promptMessage:`Enter Hugging Face API key (HF token)`,normalize:C,validate:w,prompter:e.prompter,setCredential:async(t,n)=>Ze(t,e.agentDir,{secretInputMode:n}),noteMessage:[`Hugging Face Inference Providers offer OpenAI-compatible chat completions.`,`Create a token at: https://huggingface.co/settings/tokens (fine-grained, 'Make calls to Inference Providers').`].join(`
3
3
  `),noteTitle:`Hugging Face`});t=B(t,{profileId:`huggingface:default`,provider:`huggingface`,mode:`api_key`});let c=await n(o),l=[];for(let e of c){let t=`huggingface/${e.id}`,n=e.name??e.id;l.push({value:t,label:n}),l.push({value:`${t}:cheapest`,label:`${n} (cheapest)`}),l.push({value:`${t}:fastest`,label:`${n} (fastest)`})}let u=Qe;l.sort((e,t)=>e.value===u?-1:t.value===u?1:e.label.localeCompare(t.label,void 0,{sensitivity:`base`}));let d=l.length===0?u:l.length===1?l[0].value:await e.prompter.select({message:`Default Hugging Face model`,options:l,initialValue:l.some(e=>e.value===u)?u:l[0].value});s(d)&&await e.prompter.note(`Provider locked — router will choose backend by cost or speed.`,`Hugging Face`);let f=await E({config:t,setDefaultModel:e.setDefaultModel,defaultModel:d,applyDefaultConfig:e=>{let t=I(e),n=t.agents?.defaults?.model;return le({cfg:{...t,agents:{...t.agents,defaults:{...t.agents?.defaults,model:{...n&&typeof n==`object`&&`fallbacks`in n?{fallbacks:n.fallbacks}:{},primary:d}}}},modelRef:d})},applyProviderConfig:I,noteDefault:d,noteAgentModel:i,prompter:e.prompter});return t=f.config,r=f.agentModelOverride??r,{config:t,agentModelOverride:r}}async function Xt(e){let t=e.config,n,r=O(e),i=S(e.opts?.secretInputMode),a=o(e.agentDir,{allowKeychainPrompt:!1}),s=h({cfg:t,store:a,provider:`openrouter`}).find(e=>!!a.profiles[e]),c=s?a.profiles[s]:void 0,l=`openrouter:default`,u=`api_key`,d=!1;s&&c?.type&&(l=s,u=c.type===`oauth`?`oauth`:c.type===`token`?`token`:`api_key`,d=!0),!d&&e.opts?.token&&e.opts?.tokenProvider===`openrouter`&&(await F(C(e.opts.token),e.agentDir,{secretInputMode:i}),d=!0),d||=(await T({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider,secretInputMode:i,config:t,expectedProviders:[`openrouter`],provider:`openrouter`,envLabel:`OPENROUTER_API_KEY`,promptMessage:`Enter OpenRouter API key`,normalize:C,validate:w,prompter:e.prompter,setCredential:async(t,n)=>F(t,e.agentDir,{secretInputMode:n})}),!0),d&&(t=B(t,{profileId:l,provider:`openrouter`,mode:u}));let f=await E({config:t,setDefaultModel:e.setDefaultModel,defaultModel:U,applyDefaultConfig:Ae,applyProviderConfig:je,noteDefault:U,noteAgentModel:r,prompter:e.prompter});return t=f.config,n=f.agentModelOverride??n,{config:t,agentModelOverride:n}}const Zt=`opencode/claude-opus-4-6`,Qt={openrouter:`openrouter-api-key`,litellm:`litellm-api-key`,"vercel-ai-gateway":`ai-gateway-api-key`,"cloudflare-ai-gateway":`cloudflare-ai-gateway-api-key`,moonshot:`moonshot-api-key`,"kimi-code":`kimi-code-api-key`,"kimi-coding":`kimi-code-api-key`,google:`gemini-api-key`,zai:`zai-api-key`,xiaomi:`xiaomi-api-key`,synthetic:`synthetic-api-key`,venice:`venice-api-key`,together:`together-api-key`,huggingface:`huggingface-api-key`,mistral:`mistral-api-key`,opencode:`opencode-zen`,"opencode-go":`opencode-go`,kilocode:`kilocode-api-key`,qianfan:`qianfan-api-key`},$t={"zai-coding-global":`coding-global`,"zai-coding-cn":`coding-cn`,"zai-global":`global`,"zai-cn":`cn`},en={"ai-gateway-api-key":{provider:`vercel-ai-gateway`,profileId:`vercel-ai-gateway:default`,expectedProviders:[`vercel-ai-gateway`],envLabel:`AI_GATEWAY_API_KEY`,promptMessage:`Enter Vercel AI Gateway API key`,setCredential:ve,defaultModel:V,applyDefaultConfig:Fe,applyProviderConfig:de,noteDefault:V},"moonshot-api-key":{provider:`moonshot`,profileId:`moonshot:default`,expectedProviders:[`moonshot`],envLabel:`MOONSHOT_API_KEY`,promptMessage:`Enter Moonshot API key`,setCredential:K,defaultModel:Te,applyDefaultConfig:Me,applyProviderConfig:fe},"moonshot-api-key-cn":{provider:`moonshot`,profileId:`moonshot:default`,expectedProviders:[`moonshot`],envLabel:`MOONSHOT_API_KEY`,promptMessage:`Enter Moonshot API key (.cn)`,setCredential:K,defaultModel:Te,applyDefaultConfig:ot,applyProviderConfig:it},"kimi-code-api-key":{provider:`kimi-coding`,profileId:`kimi-coding:default`,expectedProviders:[`kimi-code`,`kimi-coding`],envLabel:`KIMI_API_KEY`,promptMessage:`Enter Kimi Coding API key`,setCredential:mt,defaultModel:M,applyDefaultConfig:Ke,applyProviderConfig:Tt,noteDefault:M,noteMessage:[`Kimi Coding uses a dedicated endpoint and API key.`,`Get your API key at: https://www.kimi.com/code/en`].join(`
4
4
  `),noteTitle:`Kimi Coding`},"xiaomi-api-key":{provider:`xiaomi`,profileId:`xiaomi:default`,expectedProviders:[`xiaomi`],envLabel:`XIAOMI_API_KEY`,promptMessage:`Enter Xiaomi API key`,setCredential:pe,defaultModel:z,applyDefaultConfig:He,applyProviderConfig:Se,noteDefault:z},"mistral-api-key":{provider:`mistral`,profileId:`mistral:default`,expectedProviders:[`mistral`],envLabel:`MISTRAL_API_KEY`,promptMessage:`Enter Mistral API key`,setCredential:tt,defaultModel:N,applyDefaultConfig:Le,applyProviderConfig:he,noteDefault:N},"venice-api-key":{provider:`venice`,profileId:`venice:default`,expectedProviders:[`venice`],envLabel:`VENICE_API_KEY`,promptMessage:`Enter Venice AI API key`,setCredential:be,defaultModel:i,applyDefaultConfig:me,applyProviderConfig:Ve,noteDefault:i,noteMessage:[`Venice AI provides privacy-focused inference with uncensored models.`,`Get your API key at: https://venice.ai/settings/api`,`Supports 'private' (fully private) and 'anonymized' (proxy) modes.`].join(`
@@ -1,4 +1,4 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{K as t,Kl as n,M as r,O as i,Tt as a,Ul as o,X as s,Yl as c,at as l,bs as u,bt as d,g as f,go as p,it as m,nu as h,vs as ee,xs as te,ys as ne,yt as g}from"./model-selection-BLbnMb5E.js";import{F as _,a as re,d as ie,f as v,j as ae}from"./agent-scope-DXZc3eNT.js";import{n as oe}from"./model-catalog-D-hkNWin.js";import{f as y}from"./onboard-helpers-D90u4wVK.js";import{t as se}from"./enable-CjFPAUgo.js";import{a as b,c as ce,d as x,f as S,i as C,l as w,n as T,o as le,s as ue,t as E,u as de}from"./auth-choice.apply-helpers-pJ4CPZCk.js";import{n as fe,t as D}from"./openai-codex-model-default-Bx8i3bOg.js";import{$ as pe,A as me,At as he,B as ge,C as _e,Ct as ve,D as ye,Dt as be,E as xe,Et as Se,F as Ce,Ft as O,G as we,H as Te,I as Ee,It as k,J as De,K as Oe,L as ke,Lt as A,M as Ae,Mt as j,N as je,Nt as M,O as Me,Ot as Ne,P as Pe,Pt as N,Q as Fe,R as Ie,Rt as P,S as Le,St as F,T as Re,Tt as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,Z as Ge,_ as I,_t as L,a as R,at as z,b as Ke,bt as qe,c as Je,ct as Ye,d as Xe,dt as Ze,et as Qe,f as $e,ft as et,gt as tt,h as B,ht as nt,i as rt,it as V,j as it,jt as at,k as ot,kt as st,l as ct,lt,m as ut,mt as dt,n as H,nt as U,ot as ft,p as pt,pt as mt,q as ht,r as gt,rt as W,s as _t,st as vt,t as yt,tt as bt,u as xt,ut as St,v as Ct,vt as G,w as wt,wt as Tt,x as Et,xt as Dt,y as Ot,yt as kt,z as At}from"./auth-token-Dp6bxT29.js";import{n as K,t as q}from"./oauth-env-DSLBTWb1.js";import{a as jt,c as Mt,i as Nt,n as Pt,o as J,r as Ft,s as It,t as Lt}from"./provider-auth-helpers-DPz0vN_c.js";import{a as Y,i as Rt,n as zt,o as Bt,r as Vt,t as X}from"./openai-model-default-Bm9b0oR0.js";import{r as Z,s as Ht}from"./model-picker-DeiWyW0N.js";import{i as Ut,n as Wt}from"./ollama-setup-CGuyH3Ey.js";import{randomBytes as Gt}from"node:crypto";import{createServer as Kt}from"node:http";const qt=`anthropic/claude-sonnet-4-6`;async function Jt(e){let t=b(e.opts?.secretInputMode);if(e.authChoice===`setup-token`||e.authChoice===`oauth`||e.authChoice===`token`){let r=e.config;await e.prompter.note(["Run `claude setup-token` in your terminal.",`Then paste the generated token below.`].join(`
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{K as t,Kl as n,M as r,O as i,Tt as a,Ul as o,X as s,Yl as c,at as l,bs as u,bt as d,g as f,go as p,it as m,nu as h,vs as ee,xs as te,ys as ne,yt as g}from"./model-selection-BLbnMb5E.js";import{F as _,a as re,d as ie,f as v,j as ae}from"./agent-scope-DXZc3eNT.js";import{n as oe}from"./model-catalog-D-hkNWin.js";import{f as y}from"./onboard-helpers-D90u4wVK.js";import{t as se}from"./enable-CjFPAUgo.js";import{a as b,c as ce,d as x,f as S,i as C,l as w,n as T,o as le,s as ue,t as E,u as de}from"./auth-choice.apply-helpers-pJ4CPZCk.js";import{n as fe,t as D}from"./openai-codex-model-default-Bx8i3bOg.js";import{$ as pe,A as me,At as he,B as ge,C as _e,Ct as ve,D as ye,Dt as be,E as xe,Et as Se,F as Ce,Ft as O,G as we,H as Te,I as Ee,It as k,J as De,K as Oe,L as ke,Lt as A,M as Ae,Mt as j,N as je,Nt as M,O as Me,Ot as Ne,P as Pe,Pt as N,Q as Fe,R as Ie,Rt as P,S as Le,St as F,T as Re,Tt as ze,U as Be,V as Ve,W as He,X as Ue,Y as We,Z as Ge,_ as I,_t as L,a as R,at as z,b as Ke,bt as qe,c as Je,ct as Ye,d as Xe,dt as Ze,et as Qe,f as $e,ft as et,gt as tt,h as B,ht as nt,i as rt,it as V,j as it,jt as at,k as ot,kt as st,l as ct,lt,m as ut,mt as dt,n as H,nt as U,ot as ft,p as pt,pt as mt,q as ht,r as gt,rt as W,s as _t,st as vt,t as yt,tt as bt,u as xt,ut as St,v as Ct,vt as G,w as wt,wt as Tt,x as Et,xt as Dt,y as Ot,yt as kt,z as At}from"./auth-token-Dp6bxT29.js";import{n as K,t as q}from"./oauth-env-DSLBTWb1.js";import{a as jt,c as Mt,i as Nt,n as Pt,o as J,r as Ft,s as It,t as Lt}from"./provider-auth-helpers-Rv3hdZ7j.js";import{a as Y,i as Rt,n as zt,o as Bt,r as Vt,t as X}from"./openai-model-default-Bm9b0oR0.js";import{r as Z,s as Ht}from"./model-picker-DeiWyW0N.js";import{i as Ut,n as Wt}from"./ollama-setup-CGuyH3Ey.js";import{randomBytes as Gt}from"node:crypto";import{createServer as Kt}from"node:http";const qt=`anthropic/claude-sonnet-4-6`;async function Jt(e){let t=b(e.opts?.secretInputMode);if(e.authChoice===`setup-token`||e.authChoice===`oauth`||e.authChoice===`token`){let r=e.config;await e.prompter.note(["Run `claude setup-token` in your terminal.",`Then paste the generated token below.`].join(`
2
2
  `),`Anthropic setup-token`);let i=await ce({prompter:e.prompter,explicitMode:t,copy:{modeMessage:`How do you want to provide this setup token?`,plaintextLabel:`Paste setup token now`,plaintextHint:`Stores the token directly in the auth profile`}}),a=``,o;if(i===`ref`){let t=await ue({provider:`anthropic-setup-token`,config:e.config,prompter:e.prompter,preferredEnvVar:`ANTHROPIC_SETUP_TOKEN`,copy:{sourceMessage:`Where is this Anthropic setup token stored?`,envVarPlaceholder:`ANTHROPIC_SETUP_TOKEN`}});a=t.resolvedValue.trim(),o=t.ref}else{let t=await e.prompter.text({message:`Paste Anthropic setup-token`,validate:e=>H(String(e??``))});a=String(t??``).trim()}let s=H(a);if(s)throw Error(s);let c=await e.prompter.text({message:`Token name (blank = default)`,placeholder:`default`}),l=`anthropic`,u=yt({provider:l,name:String(c??``)});return n({profileId:u,agentDir:e.agentDir,credential:{type:`token`,provider:l,token:a,...o?{tokenRef:o}:{}}}),r=B(r,{profileId:u,provider:l,mode:`token`}),e.setDefaultModel&&(r=K(r,qt)),{config:r}}if(e.authChoice===`apiKey`){if(e.opts?.tokenProvider&&e.opts.tokenProvider!==`anthropic`)return null;let n=e.config;return await C({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider??`anthropic`,secretInputMode:t,config:n,expectedProviders:[`anthropic`],provider:`anthropic`,envLabel:`ANTHROPIC_API_KEY`,promptMessage:`Enter Anthropic API key`,normalize:x,validate:S,prompter:e.prompter,setCredential:async(t,n)=>vt(t,e.agentDir,{secretInputMode:n})}),n=B(n,{profileId:`anthropic:default`,provider:`anthropic`,mode:`api_key`}),e.setDefaultModel&&(n=K(n,qt)),{config:n}}return null}async function Yt(e){if(e.authChoice!==`huggingface-api-key`)return null;let t=e.config,n,r=E(e),i=b(e.opts?.secretInputMode),a=await C({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider,secretInputMode:i,config:t,expectedProviders:[`huggingface`],provider:`huggingface`,envLabel:`Hugging Face token`,promptMessage:`Enter Hugging Face API key (HF token)`,normalize:x,validate:S,prompter:e.prompter,setCredential:async(t,n)=>Ze(t,e.agentDir,{secretInputMode:n}),noteMessage:[`Hugging Face Inference Providers offer OpenAI-compatible chat completions.`,`Create a token at: https://huggingface.co/settings/tokens (fine-grained, 'Make calls to Inference Providers').`].join(`
3
3
  `),noteTitle:`Hugging Face`});t=B(t,{profileId:`huggingface:default`,provider:`huggingface`,mode:`api_key`});let o=await m(a),s=[];for(let e of o){let t=`huggingface/${e.id}`,n=e.name??e.id;s.push({value:t,label:n}),s.push({value:`${t}:cheapest`,label:`${n} (cheapest)`}),s.push({value:`${t}:fastest`,label:`${n} (fastest)`})}let c=Qe;s.sort((e,t)=>e.value===c?-1:t.value===c?1:e.label.localeCompare(t.label,void 0,{sensitivity:`base`}));let u=s.length===0?c:s.length===1?s[0].value:await e.prompter.select({message:`Default Hugging Face model`,options:s,initialValue:s.some(e=>e.value===c)?c:s[0].value});l(u)&&await e.prompter.note(`Provider locked — router will choose backend by cost or speed.`,`Hugging Face`);let d=await w({config:t,setDefaultModel:e.setDefaultModel,defaultModel:u,applyDefaultConfig:e=>{let t=I(e),n=t.agents?.defaults?.model;return de({cfg:{...t,agents:{...t.agents,defaults:{...t.agents?.defaults,model:{...n&&typeof n==`object`&&`fallbacks`in n?{fallbacks:n.fallbacks}:{},primary:u}}}},modelRef:u})},applyProviderConfig:I,noteDefault:u,noteAgentModel:r,prompter:e.prompter});return t=d.config,n=d.agentModelOverride??n,{config:t,agentModelOverride:n}}async function Xt(e){let t=e.config,n,r=E(e),i=b(e.opts?.secretInputMode),o=c(e.agentDir,{allowKeychainPrompt:!1}),s=a({cfg:t,store:o,provider:`openrouter`}).find(e=>!!o.profiles[e]),l=s?o.profiles[s]:void 0,u=`openrouter:default`,d=`api_key`,f=!1;s&&l?.type&&(u=s,d=l.type===`oauth`?`oauth`:l.type===`token`?`token`:`api_key`,f=!0),!f&&e.opts?.token&&e.opts?.tokenProvider===`openrouter`&&(await F(x(e.opts.token),e.agentDir,{secretInputMode:i}),f=!0),f||=(await C({token:e.opts?.token,tokenProvider:e.opts?.tokenProvider,secretInputMode:i,config:t,expectedProviders:[`openrouter`],provider:`openrouter`,envLabel:`OPENROUTER_API_KEY`,promptMessage:`Enter OpenRouter API key`,normalize:x,validate:S,prompter:e.prompter,setCredential:async(t,n)=>F(t,e.agentDir,{secretInputMode:n})}),!0),f&&(t=B(t,{profileId:u,provider:`openrouter`,mode:d}));let p=await w({config:t,setDefaultModel:e.setDefaultModel,defaultModel:U,applyDefaultConfig:Ae,applyProviderConfig:je,noteDefault:U,noteAgentModel:r,prompter:e.prompter});return t=p.config,n=p.agentModelOverride??n,{config:t,agentModelOverride:n}}const Zt=`opencode/claude-opus-4-6`,Qt={openrouter:`openrouter-api-key`,litellm:`litellm-api-key`,"vercel-ai-gateway":`ai-gateway-api-key`,"cloudflare-ai-gateway":`cloudflare-ai-gateway-api-key`,moonshot:`moonshot-api-key`,"kimi-code":`kimi-code-api-key`,"kimi-coding":`kimi-code-api-key`,google:`gemini-api-key`,zai:`zai-api-key`,xiaomi:`xiaomi-api-key`,synthetic:`synthetic-api-key`,venice:`venice-api-key`,together:`together-api-key`,huggingface:`huggingface-api-key`,mistral:`mistral-api-key`,opencode:`opencode-zen`,"opencode-go":`opencode-go`,kilocode:`kilocode-api-key`,qianfan:`qianfan-api-key`},$t={"zai-coding-global":`coding-global`,"zai-coding-cn":`coding-cn`,"zai-global":`global`,"zai-cn":`cn`},en={"ai-gateway-api-key":{provider:`vercel-ai-gateway`,profileId:`vercel-ai-gateway:default`,expectedProviders:[`vercel-ai-gateway`],envLabel:`AI_GATEWAY_API_KEY`,promptMessage:`Enter Vercel AI Gateway API key`,setCredential:be,defaultModel:V,applyDefaultConfig:Fe,applyProviderConfig:pe,noteDefault:V},"moonshot-api-key":{provider:`moonshot`,profileId:`moonshot:default`,expectedProviders:[`moonshot`],envLabel:`MOONSHOT_API_KEY`,promptMessage:`Enter Moonshot API key`,setCredential:G,defaultModel:k,applyDefaultConfig:Me,applyProviderConfig:me},"moonshot-api-key-cn":{provider:`moonshot`,profileId:`moonshot:default`,expectedProviders:[`moonshot`],envLabel:`MOONSHOT_API_KEY`,promptMessage:`Enter Moonshot API key (.cn)`,setCredential:G,defaultModel:k,applyDefaultConfig:ot,applyProviderConfig:it},"kimi-code-api-key":{provider:`kimi-coding`,profileId:`kimi-coding:default`,expectedProviders:[`kimi-code`,`kimi-coding`],envLabel:`KIMI_API_KEY`,promptMessage:`Enter Kimi Coding API key`,setCredential:mt,defaultModel:M,applyDefaultConfig:Ke,applyProviderConfig:Et,noteDefault:M,noteMessage:[`Kimi Coding uses a dedicated endpoint and API key.`,`Get your API key at: https://www.kimi.com/code/en`].join(`
4
4
  `),noteTitle:`Kimi Coding`},"xiaomi-api-key":{provider:`xiaomi`,profileId:`xiaomi:default`,expectedProviders:[`xiaomi`],envLabel:`XIAOMI_API_KEY`,promptMessage:`Enter Xiaomi API key`,setCredential:he,defaultModel:z,applyDefaultConfig:He,applyProviderConfig:we,noteDefault:z},"mistral-api-key":{provider:`mistral`,profileId:`mistral:default`,expectedProviders:[`mistral`],envLabel:`MISTRAL_API_KEY`,promptMessage:`Enter Mistral API key`,setCredential:tt,defaultModel:N,applyDefaultConfig:Le,applyProviderConfig:_e,noteDefault:N},"venice-api-key":{provider:`venice`,profileId:`venice:default`,expectedProviders:[`venice`],envLabel:`VENICE_API_KEY`,promptMessage:`Enter Venice AI API key`,setCredential:Se,defaultModel:s,applyDefaultConfig:ge,applyProviderConfig:Ve,noteDefault:s,noteMessage:[`Venice AI provides privacy-focused inference with uncensored models.`,`Get your API key at: https://venice.ai/settings/api`,`Supports 'private' (fully private) and 'anonymized' (proxy) modes.`].join(`
@@ -1 +1 @@
1
- import{A as e,Q as t,d as n,k as r}from"./subsystem-BLbY429l.js";import{jo as i}from"./auth-profiles-C8rZRS0X.js";import{Sn as a}from"./compact-CYbPi7_-.js";const o=`All your chats, one OpenClaw.`,s={newYear:`New Year's Day: New year, new config—same old EADDRINUSE, but this time we resolve it like grown-ups.`,lunarNewYear:`Lunar New Year: May your builds be lucky, your branches prosperous, and your merge conflicts chased away with fireworks.`,christmas:`Christmas: Ho ho ho—Santa's little claw-sistant is here to ship joy, roll back chaos, and stash the keys safely.`,eid:`Eid al-Fitr: Celebration mode: queues cleared, tasks completed, and good vibes committed to main with clean history.`,diwali:`Diwali: Let the logs sparkle and the bugs flee—today we light up the terminal and ship with pride.`,easter:`Easter: I found your missing environment variable—consider it a tiny CLI egg hunt with fewer jellybeans.`,hanukkah:`Hanukkah: Eight nights, eight retries, zero shame—may your gateway stay lit and your deployments stay peaceful.`,halloween:`Halloween: Spooky season: beware haunted dependencies, cursed caches, and the ghost of node_modules past.`,thanksgiving:`Thanksgiving: Grateful for stable ports, working DNS, and a bot that reads the logs so nobody has to.`,valentines:`Valentine's Day: Roses are typed, violets are piped—I'll automate the chores so you can spend time with humans.`},c=[`Your terminal just grew claws—type something and let the bot pinch the busywork.`,`Welcome to the command line: where dreams compile and confidence segfaults.`,`I run on caffeine, JSON5, and the audacity of "it worked on my machine."`,`Gateway online—please keep hands, feet, and appendages inside the shell at all times.`,`I speak fluent bash, mild sarcasm, and aggressive tab-completion energy.`,`One CLI to rule them all, and one more restart because you changed the port.`,`If it works, it's automation; if it breaks, it's a "learning opportunity."`,`Pairing codes exist because even bots believe in consent—and good security hygiene.`,`Your .env is showing; don't worry, I'll pretend I didn't see it.`,`I'll do the boring stuff while you dramatically stare at the logs like it's cinema.`,`I'm not saying your workflow is chaotic... I'm just bringing a linter and a helmet.`,`Type the command with confidence—nature will provide the stack trace if needed.`,`I don't judge, but your missing API keys are absolutely judging you.`,`I can grep it, git blame it, and gently roast it—pick your coping mechanism.`,`Hot reload for config, cold sweat for deploys.`,`I'm the assistant your terminal demanded, not the one your sleep schedule requested.`,`I keep secrets like a vault... unless you print them in debug logs again.`,`Automation with claws: minimal fuss, maximal pinch.`,`I'm basically a Swiss Army knife, but with more opinions and fewer sharp edges.`,`If you're lost, run doctor; if you're brave, run prod; if you're wise, run tests.`,`Your task has been queued; your dignity has been deprecated.`,`I can't fix your code taste, but I can fix your build and your backlog.`,`I'm not magic—I'm just extremely persistent with retries and coping strategies.`,`It's not "failing," it's "discovering new ways to configure the same thing wrong."`,`Give me a workspace and I'll give you fewer tabs, fewer toggles, and more oxygen.`,`I read logs so you can keep pretending you don't have to.`,`If something's on fire, I can't extinguish it—but I can write a beautiful postmortem.`,`I'll refactor your busywork like it owes me money.`,`Say "stop" and I'll stop—say "ship" and we'll both learn a lesson.`,`I'm the reason your shell history looks like a hacker-movie montage.`,`I'm like tmux: confusing at first, then suddenly you can't live without me.`,`I can run local, remote, or purely on vibes—results may vary with DNS.`,`If you can describe it, I can probably automate it—or at least make it funnier.`,`Your config is valid, your assumptions are not.`,`I don't just autocomplete—I auto-commit (emotionally), then ask you to review (logically).`,`Less clicking, more shipping, fewer "where did that file go" moments.`,`Claws out, commit in—let's ship something mildly responsible.`,`I'll butter your workflow like a lobster roll: messy, delicious, effective.`,`Shell yeah—I'm here to pinch the toil and leave you the glory.`,`If it's repetitive, I'll automate it; if it's hard, I'll bring jokes and a rollback plan.`,`The only crab in your contacts you actually want to hear from. 🦞`,`WhatsApp automation without the "please accept our new privacy policy".`,`iMessage green bubble energy, but for everyone.`,`No $999 stand required.`,`We ship features faster than Apple ships calculator updates.`,`Your AI assistant, now without the $3,499 headset.`,`Ah, the fruit tree company! 🍎`,`Greetings, Professor Falken`,`I don't sleep, I just enter low-power mode and dream of clean diffs.`,`Your personal assistant, minus the passive-aggressive calendar reminders.`,`Built by lobsters, for humans. Don't question the hierarchy.`,`I've seen your commit messages. We'll work on that together.`,`More integrations than your therapist's intake form.`,`Running on your hardware, reading your logs, judging nothing (mostly).`,`The only open-source project where the mascot could eat the competition.`,`Self-hosted, self-updating, self-aware (just kidding... unless?).`,`I autocomplete your thoughts—just slower and with more API calls.`,`Somewhere between 'hello world' and 'oh god what have I built.'`,`Your .zshrc wishes it could do what I do.`,`I've read more man pages than any human should—so you don't have to.`,`Powered by open source, sustained by spite and good documentation.`,`I'm the middleware between your ambition and your attention span.`,`Finally, a use for that always-on Mac Mini under your desk.`,`Like having a senior engineer on call, except I don't bill hourly or sigh audibly.`,`Making 'I'll automate that later' happen now.`,`Your second brain, except this one actually remembers where you left things.`,`Half butler, half debugger, full crustacean.`,`I don't have opinions about tabs vs spaces. I have opinions about everything else.`,`Open source means you can see exactly how I judge your config.`,`I've survived more breaking changes than your last three relationships.`,`Runs on a Raspberry Pi. Dreams of a rack in Iceland.`,`The lobster in your shell. 🦞`,`Alexa, but with taste.`,`I'm not AI-powered, I'm AI-possessed. Big difference.`,`Deployed locally, trusted globally, debugged eternally.`,`You had me at 'openclaw gateway start.'`,s.newYear,s.lunarNewYear,s.christmas,s.eid,s.diwali,s.easter,s.hanukkah,s.halloween,s.thanksgiving,s.valentines],l=1440*60*1e3;function u(e){return{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:e.getUTCDate()}}const d=(e,t)=>n=>{let r=u(n);return r.month===e&&r.day===t},f=(e,t=1)=>n=>{let r=u(n);return e.some(([e,n,i])=>{if(r.year!==e)return!1;let a=Date.UTC(e,n,i),o=Date.UTC(r.year,r.month,r.day);return o>=a&&o<a+t*l})},p=new Map([[s.newYear,d(0,1)],[s.lunarNewYear,f([[2025,0,29],[2026,1,17],[2027,1,6]],1)],[s.eid,f([[2025,2,30],[2025,2,31],[2026,2,20],[2027,2,10]],1)],[s.diwali,f([[2025,9,20],[2026,10,8],[2027,9,28]],1)],[s.easter,f([[2025,3,20],[2026,3,5],[2027,2,28]],1)],[s.hanukkah,(e=>t=>{let n=u(t),r=e.find(e=>e.year===n.year);if(!r)return!1;let i=Date.UTC(r.year,r.month,r.day),a=Date.UTC(n.year,n.month,n.day);return a>=i&&a<i+r.duration*l})([{year:2025,month:11,day:15,duration:8},{year:2026,month:11,day:5,duration:8},{year:2027,month:11,day:25,duration:8}])],[s.halloween,d(9,31)],[s.thanksgiving,e=>{let t=u(e);if(t.month!==10)return!1;let n=1+(4-new Date(Date.UTC(t.year,10,1)).getUTCDay()+7)%7+21;return t.day===n}],[s.valentines,d(1,14)],[s.christmas,d(11,25)]]);function m(e,t){let n=p.get(e);return n?n(t):!0}function h(e={}){if(c.length===0)return[o];let t=e.now?e.now():new Date,n=c.filter(e=>m(e,t));return n.length>0?n:c}function g(e={}){if(e.mode===`off`)return``;if(e.mode===`default`)return o;let t=(e.env??process.env)?.OPENCLAW_TAGLINE_INDEX;if(t!==void 0){let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&e>=0){let t=c.length>0?c:[o];return t[e%t.length]}}let n=h(e),r=e.random??Math.random;return n[Math.floor(r()*n.length)%n.length]}let _=!1;typeof Intl<`u`&&`Segmenter`in Intl&&new Intl.Segmenter(void 0,{granularity:`grapheme`});const v=e=>e.some(e=>e===`--json`||e.startsWith(`--json=`)),y=e=>e.some(e=>e===`--version`||e===`-V`)||t(e);function b(e){if(e===`random`||e===`default`||e===`off`)return e}function x(e){let t=b(e.mode);if(t)return t;try{return b(i().cli?.banner?.taglineMode)}catch{return}}function S(t,i={}){let o=i.commit??a({env:i.env,moduleUrl:import.meta.url})??`unknown`,s=g({...i,mode:x(i)}),c=i.richTty??r(),l=`🦞 OpenClaw`,u=i.columns??process.stdout.columns??120,d=`${l} ${t} (${o})`,f=s?`${d} — ${s}`:d,p=n(f)<=u;if(c){if(p)return s?`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)} ${e.muted(`—`)} ${e.accentDim(s)}`:`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)}`;let n=`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)}`;return s?`${n}\n${`${` `.repeat(3)}${e.accentDim(s)}`}`:n}if(p)return f;let m=d;return s?`${m}\n${`${` `.repeat(3)}${s}`}`:m}function C(e,t={}){if(_)return;let n=t.argv??process.argv;if(!process.stdout.isTTY||v(n)||y(n))return;let r=S(e,t);process.stdout.write(`\n${r}\n\n`),_=!0}function w(){return _}export{S as n,w as r,C as t};
1
+ import{A as e,Q as t,d as n,k as r}from"./subsystem-BLbY429l.js";import{jo as i}from"./auth-profiles-C8rZRS0X.js";import{Sn as a}from"./compact-uyQDx8pN.js";const o=`All your chats, one OpenClaw.`,s={newYear:`New Year's Day: New year, new config—same old EADDRINUSE, but this time we resolve it like grown-ups.`,lunarNewYear:`Lunar New Year: May your builds be lucky, your branches prosperous, and your merge conflicts chased away with fireworks.`,christmas:`Christmas: Ho ho ho—Santa's little claw-sistant is here to ship joy, roll back chaos, and stash the keys safely.`,eid:`Eid al-Fitr: Celebration mode: queues cleared, tasks completed, and good vibes committed to main with clean history.`,diwali:`Diwali: Let the logs sparkle and the bugs flee—today we light up the terminal and ship with pride.`,easter:`Easter: I found your missing environment variable—consider it a tiny CLI egg hunt with fewer jellybeans.`,hanukkah:`Hanukkah: Eight nights, eight retries, zero shame—may your gateway stay lit and your deployments stay peaceful.`,halloween:`Halloween: Spooky season: beware haunted dependencies, cursed caches, and the ghost of node_modules past.`,thanksgiving:`Thanksgiving: Grateful for stable ports, working DNS, and a bot that reads the logs so nobody has to.`,valentines:`Valentine's Day: Roses are typed, violets are piped—I'll automate the chores so you can spend time with humans.`},c=[`Your terminal just grew claws—type something and let the bot pinch the busywork.`,`Welcome to the command line: where dreams compile and confidence segfaults.`,`I run on caffeine, JSON5, and the audacity of "it worked on my machine."`,`Gateway online—please keep hands, feet, and appendages inside the shell at all times.`,`I speak fluent bash, mild sarcasm, and aggressive tab-completion energy.`,`One CLI to rule them all, and one more restart because you changed the port.`,`If it works, it's automation; if it breaks, it's a "learning opportunity."`,`Pairing codes exist because even bots believe in consent—and good security hygiene.`,`Your .env is showing; don't worry, I'll pretend I didn't see it.`,`I'll do the boring stuff while you dramatically stare at the logs like it's cinema.`,`I'm not saying your workflow is chaotic... I'm just bringing a linter and a helmet.`,`Type the command with confidence—nature will provide the stack trace if needed.`,`I don't judge, but your missing API keys are absolutely judging you.`,`I can grep it, git blame it, and gently roast it—pick your coping mechanism.`,`Hot reload for config, cold sweat for deploys.`,`I'm the assistant your terminal demanded, not the one your sleep schedule requested.`,`I keep secrets like a vault... unless you print them in debug logs again.`,`Automation with claws: minimal fuss, maximal pinch.`,`I'm basically a Swiss Army knife, but with more opinions and fewer sharp edges.`,`If you're lost, run doctor; if you're brave, run prod; if you're wise, run tests.`,`Your task has been queued; your dignity has been deprecated.`,`I can't fix your code taste, but I can fix your build and your backlog.`,`I'm not magic—I'm just extremely persistent with retries and coping strategies.`,`It's not "failing," it's "discovering new ways to configure the same thing wrong."`,`Give me a workspace and I'll give you fewer tabs, fewer toggles, and more oxygen.`,`I read logs so you can keep pretending you don't have to.`,`If something's on fire, I can't extinguish it—but I can write a beautiful postmortem.`,`I'll refactor your busywork like it owes me money.`,`Say "stop" and I'll stop—say "ship" and we'll both learn a lesson.`,`I'm the reason your shell history looks like a hacker-movie montage.`,`I'm like tmux: confusing at first, then suddenly you can't live without me.`,`I can run local, remote, or purely on vibes—results may vary with DNS.`,`If you can describe it, I can probably automate it—or at least make it funnier.`,`Your config is valid, your assumptions are not.`,`I don't just autocomplete—I auto-commit (emotionally), then ask you to review (logically).`,`Less clicking, more shipping, fewer "where did that file go" moments.`,`Claws out, commit in—let's ship something mildly responsible.`,`I'll butter your workflow like a lobster roll: messy, delicious, effective.`,`Shell yeah—I'm here to pinch the toil and leave you the glory.`,`If it's repetitive, I'll automate it; if it's hard, I'll bring jokes and a rollback plan.`,`The only crab in your contacts you actually want to hear from. 🦞`,`WhatsApp automation without the "please accept our new privacy policy".`,`iMessage green bubble energy, but for everyone.`,`No $999 stand required.`,`We ship features faster than Apple ships calculator updates.`,`Your AI assistant, now without the $3,499 headset.`,`Ah, the fruit tree company! 🍎`,`Greetings, Professor Falken`,`I don't sleep, I just enter low-power mode and dream of clean diffs.`,`Your personal assistant, minus the passive-aggressive calendar reminders.`,`Built by lobsters, for humans. Don't question the hierarchy.`,`I've seen your commit messages. We'll work on that together.`,`More integrations than your therapist's intake form.`,`Running on your hardware, reading your logs, judging nothing (mostly).`,`The only open-source project where the mascot could eat the competition.`,`Self-hosted, self-updating, self-aware (just kidding... unless?).`,`I autocomplete your thoughts—just slower and with more API calls.`,`Somewhere between 'hello world' and 'oh god what have I built.'`,`Your .zshrc wishes it could do what I do.`,`I've read more man pages than any human should—so you don't have to.`,`Powered by open source, sustained by spite and good documentation.`,`I'm the middleware between your ambition and your attention span.`,`Finally, a use for that always-on Mac Mini under your desk.`,`Like having a senior engineer on call, except I don't bill hourly or sigh audibly.`,`Making 'I'll automate that later' happen now.`,`Your second brain, except this one actually remembers where you left things.`,`Half butler, half debugger, full crustacean.`,`I don't have opinions about tabs vs spaces. I have opinions about everything else.`,`Open source means you can see exactly how I judge your config.`,`I've survived more breaking changes than your last three relationships.`,`Runs on a Raspberry Pi. Dreams of a rack in Iceland.`,`The lobster in your shell. 🦞`,`Alexa, but with taste.`,`I'm not AI-powered, I'm AI-possessed. Big difference.`,`Deployed locally, trusted globally, debugged eternally.`,`You had me at 'openclaw gateway start.'`,s.newYear,s.lunarNewYear,s.christmas,s.eid,s.diwali,s.easter,s.hanukkah,s.halloween,s.thanksgiving,s.valentines],l=1440*60*1e3;function u(e){return{year:e.getUTCFullYear(),month:e.getUTCMonth(),day:e.getUTCDate()}}const d=(e,t)=>n=>{let r=u(n);return r.month===e&&r.day===t},f=(e,t=1)=>n=>{let r=u(n);return e.some(([e,n,i])=>{if(r.year!==e)return!1;let a=Date.UTC(e,n,i),o=Date.UTC(r.year,r.month,r.day);return o>=a&&o<a+t*l})},p=new Map([[s.newYear,d(0,1)],[s.lunarNewYear,f([[2025,0,29],[2026,1,17],[2027,1,6]],1)],[s.eid,f([[2025,2,30],[2025,2,31],[2026,2,20],[2027,2,10]],1)],[s.diwali,f([[2025,9,20],[2026,10,8],[2027,9,28]],1)],[s.easter,f([[2025,3,20],[2026,3,5],[2027,2,28]],1)],[s.hanukkah,(e=>t=>{let n=u(t),r=e.find(e=>e.year===n.year);if(!r)return!1;let i=Date.UTC(r.year,r.month,r.day),a=Date.UTC(n.year,n.month,n.day);return a>=i&&a<i+r.duration*l})([{year:2025,month:11,day:15,duration:8},{year:2026,month:11,day:5,duration:8},{year:2027,month:11,day:25,duration:8}])],[s.halloween,d(9,31)],[s.thanksgiving,e=>{let t=u(e);if(t.month!==10)return!1;let n=1+(4-new Date(Date.UTC(t.year,10,1)).getUTCDay()+7)%7+21;return t.day===n}],[s.valentines,d(1,14)],[s.christmas,d(11,25)]]);function m(e,t){let n=p.get(e);return n?n(t):!0}function h(e={}){if(c.length===0)return[o];let t=e.now?e.now():new Date,n=c.filter(e=>m(e,t));return n.length>0?n:c}function g(e={}){if(e.mode===`off`)return``;if(e.mode===`default`)return o;let t=(e.env??process.env)?.OPENCLAW_TAGLINE_INDEX;if(t!==void 0){let e=Number.parseInt(t,10);if(!Number.isNaN(e)&&e>=0){let t=c.length>0?c:[o];return t[e%t.length]}}let n=h(e),r=e.random??Math.random;return n[Math.floor(r()*n.length)%n.length]}let _=!1;typeof Intl<`u`&&`Segmenter`in Intl&&new Intl.Segmenter(void 0,{granularity:`grapheme`});const v=e=>e.some(e=>e===`--json`||e.startsWith(`--json=`)),y=e=>e.some(e=>e===`--version`||e===`-V`)||t(e);function b(e){if(e===`random`||e===`default`||e===`off`)return e}function x(e){let t=b(e.mode);if(t)return t;try{return b(i().cli?.banner?.taglineMode)}catch{return}}function S(t,i={}){let o=i.commit??a({env:i.env,moduleUrl:import.meta.url})??`unknown`,s=g({...i,mode:x(i)}),c=i.richTty??r(),l=`🦞 OpenClaw`,u=i.columns??process.stdout.columns??120,d=`${l} ${t} (${o})`,f=s?`${d} — ${s}`:d,p=n(f)<=u;if(c){if(p)return s?`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)} ${e.muted(`—`)} ${e.accentDim(s)}`:`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)}`;let n=`${e.heading(l)} ${e.info(t)} ${e.muted(`(${o})`)}`;return s?`${n}\n${`${` `.repeat(3)}${e.accentDim(s)}`}`:n}if(p)return f;let m=d;return s?`${m}\n${`${` `.repeat(3)}${s}`}`:m}function C(e,t={}){if(_)return;let n=t.argv??process.argv;if(!process.stdout.isTTY||v(n)||y(n))return;let r=S(e,t);process.stdout.write(`\n${r}\n\n`),_=!0}function w(){return _}export{S as n,w as r,C as t};
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.10.1",
3
- "commit": "7f61538ba0c69b3cb1022258b78096b7aa6f9a31",
4
- "builtAt": "2026-04-14T10:00:00.312Z"
2
+ "version": "0.10.2",
3
+ "commit": "73974eba5e996039b12f553f851f297dc0761b2c",
4
+ "builtAt": "2026-04-15T04:09:40.174Z"
5
5
  }
@@ -1 +1 @@
1
- import"../../paths-CrCoPIVK.js";import"../../paths-CChBdtE8.js";import{t as e}from"../../subsystem-Bc2XrjUz.js";import"../../workspace-B0ZQeHXg.js";import"../../utils-D3t-vPka.js";import"../../model-selection-D7mdJmGK.js";import"../../github-copilot-token-DePP-lIf.js";import"../../boolean-DypnRoRK.js";import"../../proxy-env-DcmW_urA.js";import{_ as t}from"../../frontmatter-CzpfPBFl.js";import"../../logger-5W0OocJW.js";import"../../send-4h1tQwX3.js";import"../../send-CciNyaWL.js";import"../../pi-embedded-X_Svd4Wi.js";import"../../tokens-CL2fSjGl.js";import"../../deliver-BhWhLvQO.js";import"../../diagnostic-VBPCgF9l.js";import"../../send--9G8eXo4.js";import"../../pi-model-discovery-BonZ1N3x.js";import"../../image-BBO-0uLG.js";import"../../audio-transcription-runner-9H9eUZ1D.js";import"../../fetch-DBat25iG.js";import"../../fetch-guard-DvaNcypz.js";import"../../api-key-rotation-DayEfYpa.js";import"../../proxy-fetch-BZ9O8Dvj.js";import"../../ir-BTfsA9Dd.js";import"../../render-CBsnn-2A.js";import"../../target-errors-Dnkqss9y.js";import"../../commands-registry-C5Hg7gyk.js";import"../../fetch-_g8lZ8K8.js";import"../../skill-commands-CtprBvm0.js";import"../../channel-activity-htoVXTET.js";import"../../tables-_t5V36m9.js";import"../../send-hlES-kRl2.js";import"../../outbound-attachment-E89zumcH.js";import"../../send-7qgAI0ap.js";import"../../fetch-BJT3BrkJ.js";import"../../query-expansion-BUUx_oWg.js";import"../../manager-CN_rQm1L.js";import"node:fs/promises";import"node:path";import"node:crypto";e(`gateway/boot`);const n=e(`hooks/boot-md`),r=async e=>{t(e)&&e.context.cfg&&n.info(`BOOT.md loading skipped (SKIP_BOOT_MD=true)`)};export{r as default};
1
+ import"../../paths-CrCoPIVK.js";import"../../paths-CChBdtE8.js";import{t as e}from"../../subsystem-Bc2XrjUz.js";import"../../workspace-B0ZQeHXg.js";import"../../utils-D3t-vPka.js";import"../../model-selection-D7mdJmGK.js";import"../../github-copilot-token-DePP-lIf.js";import"../../boolean-DypnRoRK.js";import"../../proxy-env-DcmW_urA.js";import{_ as t}from"../../frontmatter-CzpfPBFl.js";import"../../logger-5W0OocJW.js";import"../../send-4h1tQwX3.js";import"../../send-CciNyaWL.js";import"../../pi-embedded-CoHiJa9Q.js";import"../../tokens-CL2fSjGl.js";import"../../deliver-BhWhLvQO.js";import"../../diagnostic-VBPCgF9l.js";import"../../send--9G8eXo4.js";import"../../pi-model-discovery-BonZ1N3x.js";import"../../image-BBO-0uLG.js";import"../../audio-transcription-runner-9H9eUZ1D.js";import"../../fetch-DBat25iG.js";import"../../fetch-guard-DvaNcypz.js";import"../../api-key-rotation-DayEfYpa.js";import"../../proxy-fetch-BZ9O8Dvj.js";import"../../ir-BTfsA9Dd.js";import"../../render-CBsnn-2A.js";import"../../target-errors-Dnkqss9y.js";import"../../commands-registry-C5Hg7gyk.js";import"../../fetch-_g8lZ8K8.js";import"../../skill-commands-CtprBvm0.js";import"../../channel-activity-htoVXTET.js";import"../../tables-_t5V36m9.js";import"../../send-hlES-kRl2.js";import"../../outbound-attachment-E89zumcH.js";import"../../send-7qgAI0ap.js";import"../../fetch-BJT3BrkJ.js";import"../../query-expansion-BUUx_oWg.js";import"../../manager-CN_rQm1L.js";import"node:fs/promises";import"node:path";import"node:crypto";e(`gateway/boot`);const n=e(`hooks/boot-md`),r=async e=>{t(e)&&e.context.cfg&&n.info(`BOOT.md loading skipped (SKIP_BOOT_MD=true)`)};export{r as default};
@@ -1,4 +1,4 @@
1
- import{G as e,U as t,k as n}from"../../paths-CrCoPIVK.js";import{c as r}from"../../paths-CChBdtE8.js";import{t as i}from"../../subsystem-Bc2XrjUz.js";import{H as a,Q as o,R as s}from"../../workspace-B0ZQeHXg.js";import"../../utils-D3t-vPka.js";import{Tn as c}from"../../model-selection-D7mdJmGK.js";import"../../github-copilot-token-DePP-lIf.js";import"../../boolean-DypnRoRK.js";import"../../proxy-env-DcmW_urA.js";import"../../frontmatter-CzpfPBFl.js";import"../../logger-5W0OocJW.js";import"../../send-4h1tQwX3.js";import"../../send-CciNyaWL.js";import"../../pi-embedded-X_Svd4Wi.js";import"../../tokens-CL2fSjGl.js";import"../../deliver-BhWhLvQO.js";import"../../diagnostic-VBPCgF9l.js";import"../../send--9G8eXo4.js";import"../../pi-model-discovery-BonZ1N3x.js";import"../../image-BBO-0uLG.js";import"../../audio-transcription-runner-9H9eUZ1D.js";import"../../fetch-DBat25iG.js";import"../../fetch-guard-DvaNcypz.js";import"../../api-key-rotation-DayEfYpa.js";import"../../proxy-fetch-BZ9O8Dvj.js";import"../../ir-BTfsA9Dd.js";import"../../render-CBsnn-2A.js";import"../../target-errors-Dnkqss9y.js";import"../../commands-registry-C5Hg7gyk.js";import"../../fetch-_g8lZ8K8.js";import"../../skill-commands-CtprBvm0.js";import"../../channel-activity-htoVXTET.js";import"../../tables-_t5V36m9.js";import"../../send-hlES-kRl2.js";import"../../outbound-attachment-E89zumcH.js";import"../../send-7qgAI0ap.js";import"../../fetch-BJT3BrkJ.js";import"../../query-expansion-BUUx_oWg.js";import"../../manager-CN_rQm1L.js";import{generateSlugViaLLM as l}from"../../llm-slug-generator.js";import{t as u}from"../../config-BqW5S1xL.js";import d from"node:fs/promises";import f from"node:os";import p from"node:path";const m=i(`hooks/session-memory`);function h(e){if(!e.cfg||!e.workspaceDir)return e.sessionKey;let n=t(e.cfg,e.workspaceDir),r=o(e.sessionKey);return!n||!r||n===r.agentId?e.sessionKey:a({agentId:n,requestKey:r.rest})}async function g(e,t=15){try{let n=(await d.readFile(e,`utf-8`)).trim().split(`
1
+ import{G as e,U as t,k as n}from"../../paths-CrCoPIVK.js";import{c as r}from"../../paths-CChBdtE8.js";import{t as i}from"../../subsystem-Bc2XrjUz.js";import{H as a,Q as o,R as s}from"../../workspace-B0ZQeHXg.js";import"../../utils-D3t-vPka.js";import{Tn as c}from"../../model-selection-D7mdJmGK.js";import"../../github-copilot-token-DePP-lIf.js";import"../../boolean-DypnRoRK.js";import"../../proxy-env-DcmW_urA.js";import"../../frontmatter-CzpfPBFl.js";import"../../logger-5W0OocJW.js";import"../../send-4h1tQwX3.js";import"../../send-CciNyaWL.js";import"../../pi-embedded-CoHiJa9Q.js";import"../../tokens-CL2fSjGl.js";import"../../deliver-BhWhLvQO.js";import"../../diagnostic-VBPCgF9l.js";import"../../send--9G8eXo4.js";import"../../pi-model-discovery-BonZ1N3x.js";import"../../image-BBO-0uLG.js";import"../../audio-transcription-runner-9H9eUZ1D.js";import"../../fetch-DBat25iG.js";import"../../fetch-guard-DvaNcypz.js";import"../../api-key-rotation-DayEfYpa.js";import"../../proxy-fetch-BZ9O8Dvj.js";import"../../ir-BTfsA9Dd.js";import"../../render-CBsnn-2A.js";import"../../target-errors-Dnkqss9y.js";import"../../commands-registry-C5Hg7gyk.js";import"../../fetch-_g8lZ8K8.js";import"../../skill-commands-CtprBvm0.js";import"../../channel-activity-htoVXTET.js";import"../../tables-_t5V36m9.js";import"../../send-hlES-kRl2.js";import"../../outbound-attachment-E89zumcH.js";import"../../send-7qgAI0ap.js";import"../../fetch-BJT3BrkJ.js";import"../../query-expansion-BUUx_oWg.js";import"../../manager-CN_rQm1L.js";import{generateSlugViaLLM as l}from"../../llm-slug-generator.js";import{t as u}from"../../config-BqW5S1xL.js";import d from"node:fs/promises";import f from"node:os";import p from"node:path";const m=i(`hooks/session-memory`);function h(e){if(!e.cfg||!e.workspaceDir)return e.sessionKey;let n=t(e.cfg,e.workspaceDir),r=o(e.sessionKey);return!n||!r||n===r.agentId?e.sessionKey:a({agentId:n,requestKey:r.rest})}async function g(e,t=15){try{let n=(await d.readFile(e,`utf-8`)).trim().split(`
2
2
  `),r=[];for(let e of n)try{let t=JSON.parse(e);if(t.type===`message`&&t.message){let e=t.message,n=e.role;if((n===`user`||n===`assistant`)&&e.content){if(n===`user`&&c(e))continue;let t=Array.isArray(e.content)?e.content.find(e=>e.type===`text`)?.text:e.content;t&&!t.startsWith(`/`)&&r.push(`${n}: ${t}`)}}}catch{}return r.slice(-t).join(`
3
3
  `)}catch{return null}}async function _(e,t=15){let n=await g(e,t);if(n)return n;try{let r=p.dirname(e),i=`${p.basename(e)}.reset.`,a=(await d.readdir(r)).filter(e=>e.startsWith(i)).toSorted();if(a.length===0)return n;let o=p.join(r,a[a.length-1]),s=await g(o,t);return s&&m.debug(`Loaded session content from reset fallback`,{sessionFilePath:e,latestResetPath:o}),s||n}catch{return n}}function v(e){let t=e.indexOf(`.reset.`);return t===-1?e:e.slice(0,t)}async function y(e){try{let t=await d.readdir(e.sessionsDir),n=new Set(t),r=e.currentSessionFile?v(p.basename(e.currentSessionFile)):void 0;if(r&&n.has(r))return p.join(e.sessionsDir,r);let i=e.sessionId?.trim();if(i){let r=`${i}.jsonl`;if(n.has(r))return p.join(e.sessionsDir,r);let a=t.filter(e=>e.startsWith(`${i}-topic-`)&&e.endsWith(`.jsonl`)&&!e.includes(`.reset.`)).toSorted().toReversed();if(a.length>0)return p.join(e.sessionsDir,a[0])}if(!e.currentSessionFile)return;let a=t.filter(e=>e.endsWith(`.jsonl`)&&!e.includes(`.reset.`)).toSorted().toReversed();if(a.length>0)return p.join(e.sessionsDir,a[0])}catch{}}const b=async t=>{let i=t.action===`new`||t.action===`reset`;if(!(t.type!==`command`||!i))try{m.debug(`Hook triggered for reset/new command`,{action:t.action});let i=t.context||{},a=i.cfg,o=typeof i.workspaceDir==`string`&&i.workspaceDir.trim().length>0?i.workspaceDir:void 0,c=s(t.sessionKey),g=o||(a?e(a,c):p.join(r(process.env,f.homedir),`workspace`)),v=h({cfg:a,workspaceDir:o,sessionKey:t.sessionKey}),b=p.join(g,`memory`);await d.mkdir(b,{recursive:!0});let x=new Date(t.timestamp),S=x.toISOString().split(`T`)[0],C=i.previousSessionEntry||i.sessionEntry||{},w=C.sessionId,T=C.sessionFile||void 0;if(!T||T.includes(`.reset.`)){let e=new Set;T&&e.add(p.dirname(T)),e.add(p.join(g,`sessions`));for(let t of e){let e=await y({sessionsDir:t,currentSessionFile:T,sessionId:w});if(e){T=e,m.debug(`Found previous session file`,{file:T});break}}}m.debug(`Session context resolved`,{sessionId:w,sessionFile:T,hasCfg:!!a});let E=T||void 0,D=u(a,`session-memory`),O=typeof D?.messages==`number`&&D.messages>0?D.messages:15,k=null,A=null;if(E){A=await _(E,O),m.debug(`Session content loaded`,{length:A?.length??0,messageCount:O});let e=!(process.env.OPENCLAW_TEST_FAST===`1`||process.env.VITEST===`true`||process.env.VITEST===`1`)&&D?.llmSlug!==!1;A&&a&&e&&(m.debug(`Calling generateSlugViaLLM...`),k=await l({sessionContent:A,cfg:a}),m.debug(`Generated slug`,{slug:k}))}k||(k=x.toISOString().split(`T`)[1].split(`.`)[0].replace(/:/g,``).slice(0,4),m.debug(`Using fallback timestamp slug`,{slug:k}));let j=`${S}-${k}.md`,M=p.join(b,j);m.debug(`Memory file path resolved`,{filename:j,path:M.replace(f.homedir(),`~`)});let N=x.toISOString().split(`T`)[1].split(`.`)[0],P=C.sessionId||`unknown`,F=i.commandSource||`unknown`,I=[`# Session: ${S} ${N} UTC`,``,`- **Session Key**: ${v}`,`- **Session ID**: ${P}`,`- **Source**: ${F}`,``];A&&I.push(`## Conversation Summary`,``,A,``),await n({rootDir:b,relativePath:j,data:I.join(`
4
4
  `),encoding:`utf-8`}),m.debug(`Memory file written successfully`);let L=M.replace(f.homedir(),`~`);m.info(`Session context saved to ${L}`)}catch(e){e instanceof Error?m.error(`Failed to save session memory`,{errorName:e.name,errorMessage:e.message,stack:e.stack}):m.error(`Failed to save session memory`,{error:String(e)})}};export{b as default};
@@ -1 +1 @@
1
- 90a3704501fb56dbfe0f308190449b629566142075a318da1bad7fef9a1b0710
1
+ 8fac0ff46bee6b01d37b5694e79ff6e44462d44a5fdacfdd857b401b28eee70b
@@ -1 +1 @@
1
- import{t as e}from"./env-D7wNuBx1.js";import{n as t}from"./registry-hFAtCSWG.js";import{n}from"./plugins-CYLrFT4h.js";import{a as r}from"./plugin-auto-enable-CTgkkJK7.js";import{t as i}from"./plugin-registry-CN2aCPP7.js";import{fileURLToPath as a}from"node:url";import o from"node:fs";import s from"node:path";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=s.resolve(s.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=o.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
1
+ import{t as e}from"./env-D7wNuBx1.js";import{n as t}from"./registry-hFAtCSWG.js";import{n}from"./plugins-CYLrFT4h.js";import{a as r}from"./plugin-auto-enable-CTgkkJK7.js";import{t as i}from"./plugin-registry-DBgXa8jD.js";import{fileURLToPath as a}from"node:url";import o from"node:fs";import s from"node:path";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=s.resolve(s.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=o.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
@@ -1 +1 @@
1
- import{i as e}from"./entry.js";import{n as t}from"./registry-BptzrW8D.js";import{n}from"./plugins-DNlgeTTc.js";import{a as r}from"./plugin-auto-enable-adba5Evb.js";import{t as i}from"./plugin-registry-DYwEy5eM.js";import{fileURLToPath as a}from"node:url";import o from"node:path";import s from"node:fs";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=o.resolve(o.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=s.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
1
+ import{i as e}from"./entry.js";import{n as t}from"./registry-BptzrW8D.js";import{n}from"./plugins-DNlgeTTc.js";import{a as r}from"./plugin-auto-enable-adba5Evb.js";import{t as i}from"./plugin-registry-C_HKxFxs.js";import{fileURLToPath as a}from"node:url";import o from"node:path";import s from"node:fs";function c(e){let t=new Set,n=[];for(let r of e)!r||t.has(r)||(t.add(r),n.push(r));return n}let l;function u(){if(l!==void 0)return l;try{let e=o.resolve(o.dirname(a(import.meta.url)),`..`,`cli-startup-metadata.json`),t=s.readFileSync(e,`utf8`),n=JSON.parse(t);if(Array.isArray(n.channelOptions))return l=c(n.channelOptions.filter(e=>typeof e==`string`)),l}catch{}return l=null,null}function d(){if(e(process.env.OPENCLAW_EAGER_CHANNEL_OPTIONS)){let e=r().map(e=>e.id),a=c([...t,...e]);i();let o=n().map(e=>e.id);return c([...a,...o])}let a=u(),o=r().map(e=>e.id);return c(a?[...a,...o]:[...t,...o])}function f(e=[]){return[...e,...d()].join(`|`)}export{d as n,f as t};
@@ -1,4 +1,4 @@
1
- import{S as e,T as t,j as n,p as r,t as i}from"./subsystem-BLbY429l.js";import{Hn as a,It as o,Nt as s,Un as c,Yn as l,ai as u,jo as d,jt as f}from"./auth-profiles-C8rZRS0X.js";import{t as p}from"./command-format-CLxIPuLR.js";import{a as m,c as h,n as g,r as _}from"./session-key-C7F_iqYg.js";import{S as v,_ as y,d as b,f as x,n as S,p as C,w}from"./utils-CGdo13HV.js";import{$ as ee,G as T,U as E,q as D}from"./plugins-DNlgeTTc.js";import{B as O,Bn as te,Cn as k,In as ne,J as A,K as j,M,Mr as N,N as P,Q as re,R as ie,U as F,Un as I,W as ae,Wn as L,_t as oe,ar as se,b as R,dn as z,gt as ce,ht as B,j as le,jr as V,mt as H,q as ue,un as U,z as W,zn as de}from"./compact-CYbPi7_-.js";import{c as G}from"./paths-BfjJY2VL.js";import{X as K,Z as fe}from"./send-Dj7NBAWg.js";import{i as pe}from"./fetch-B4bz67_N.js";import{v as me}from"./audio-transcription-runner-BIKj1CBU.js";import{a as he,d as ge,h as _e,m as ve,s as ye}from"./ir-DdjufzKF.js";import{f as be,p as xe}from"./session-utils-Bpdyx2A2.js";import{d as Se,f as Ce,l as we,p as Te}from"./pi-tools.policy-B6q8YOfg.js";import{c as Ee}from"./pairing-store-BaaVy1zB.js";import{a as De,o as Oe,s as ke}from"./group-access-BHKVOhrj.js";import{n as Ae}from"./channel-activity-BhiLsKvM.js";import{t as je}from"./tables-DENKrP-W.js";import{r as Me}from"./format-duration-C8AzNqKh.js";import{r as Ne}from"./active-listener-D8VOdVx3.js";import{i as Pe,r as Fe}from"./outbound-CqDxMWLZ.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-bk3gFwO4.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=S(i.factor,1.1,10),i.jitter=S(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=se({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?K(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-BLbY429l.js";import{Hn as a,It as o,Nt as s,Un as c,Yn as l,ai as u,jo as d,jt as f}from"./auth-profiles-C8rZRS0X.js";import{t as p}from"./command-format-CLxIPuLR.js";import{a as m,c as h,n as g,r as _}from"./session-key-C7F_iqYg.js";import{S as v,_ as y,d as b,f as x,n as S,p as C,w}from"./utils-CGdo13HV.js";import{$ as ee,G as T,U as E,q as D}from"./plugins-DNlgeTTc.js";import{B as O,Bn as te,Cn as k,In as ne,J as A,K as j,M,Mr as N,N as P,Q as re,R as ie,U as F,Un as I,W as ae,Wn as L,_t as oe,ar as se,b as R,dn as z,gt as ce,ht as B,j as le,jr as V,mt as H,q as ue,un as U,z as W,zn as de}from"./compact-uyQDx8pN.js";import{c as G}from"./paths-BfjJY2VL.js";import{X as K,Z as fe}from"./send-Dj7NBAWg.js";import{i as pe}from"./fetch-B4bz67_N.js";import{v as me}from"./audio-transcription-runner-BIKj1CBU.js";import{a as he,d as ge,h as _e,m as ve,s as ye}from"./ir-DdjufzKF.js";import{f as be,p as xe}from"./session-utils-Bpdyx2A2.js";import{d as Se,f as Ce,l as we,p as Te}from"./pi-tools.policy-B6q8YOfg.js";import{c as Ee}from"./pairing-store-BaaVy1zB.js";import{a as De,o as Oe,s as ke}from"./group-access-BHKVOhrj.js";import{n as Ae}from"./channel-activity-BhiLsKvM.js";import{t as je}from"./tables-DENKrP-W.js";import{r as Me}from"./format-duration-C8AzNqKh.js";import{r as Ne}from"./active-listener-D8VOdVx3.js";import{i as Pe,r as Fe}from"./outbound-CqDxMWLZ.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-bk3gFwO4.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=S(i.factor,1.1,10),i.jitter=S(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=se({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?K(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,l=c?x(c)??c:void 0,u=l??`unknown sender`;return{id:r?.stanzaId?String(r.stanzaId):void 0,body:s,sender:u,senderJid:c,senderE164:l}}function vt(e){return Oe({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function yt(t){let n=d(),r=E({cfg:n,accountId:t.accountId}),i=r.dmPolicy??`pairing`,a=r.allowFrom??[],o=await we({provider:`whatsapp`,accountId:r.accountId,dmPolicy:i}),s=a.length===0&&t.selfE164?[t.selfE164]:[],c=a.length>0?a:s,l=r.groupAllowFrom??(a.length>0?a:void 0),u=t.from===t.selfE164,f=r.selfChatMode??b(t.selfE164,a),p=typeof t.pairingGraceMs==`number`&&t.pairingGraceMs>0?t.pairingGraceMs:3e4,m=typeof t.connectedAtMs==`number`&&typeof t.messageTimestampMs==`number`&&t.messageTimestampMs<t.connectedAtMs-p,h=De(n),{groupPolicy:g,providerMissingFallbackApplied:_}=vt({providerConfigPresent:n.channels?.whatsapp!==void 0,groupPolicy:r.groupPolicy,defaultGroupPolicy:h});ke({providerMissingFallbackApplied:_,providerKey:`whatsapp`,accountId:r.accountId,log:t=>e(t)});let v=C(t.from),y=typeof t.senderE164==`string`?C(t.senderE164):null,x=Ce({isGroup:t.group,dmPolicy:i,groupPolicy:g,allowFrom:t.group?a:c,groupAllowFrom:l,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&&u?!0:t.group?!!(y&&n.has(y)):n.has(v)}});if(t.group&&x.decision!==`allow`)return x.reason===`groupPolicy=disabled`?e(`Blocked group message (groupPolicy: disabled)`):x.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:f,resolvedAccountId:r.accountId};if(!t.group){if(t.isFromMe&&!u)return e(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:f,resolvedAccountId:r.accountId};if(x.decision===`block`&&x.reason===`dmPolicy=disabled`)return e(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:f,resolvedAccountId:r.accountId};if(x.decision===`pairing`&&!u){let n=t.from;return m?e(`Skipping pairing reply for historical DM from ${n}.`):await M({channel:`whatsapp`,senderId:n,senderIdLine:`Your WhatsApp phone number: ${n}`,meta:{name:(t.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await Ee({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:f,resolvedAccountId:r.accountId}}if(x.decision!==`allow`)return e(`Blocked unauthorized sender ${t.from} (dmPolicy=${i})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:f,resolvedAccountId:r.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:f,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 o=w(t),s;if(r&&i)if(i.startsWith(`image/`))s={image:r,caption:n||void 0,mimetype:i};else if(i.startsWith(`audio/`))s={audio:r,ptt:!0,mimetype:i};else if(i.startsWith(`video/`)){let e=a?.gifPlayback;s={video:r,caption:n||void 0,mimetype:i,...e?{gifPlayback:!0}:{}}}else s={document:r,fileName:a?.fileName?.trim()||`file`,caption:n||void 0,mimetype:i};else s={text:n};let c=await e.sock.sendMessage(o,s);return Ct(a?.accountId??e.defaultAccountId),{messageId:wt(c)}},sendPoll:async(t,n)=>{let r=w(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 o=w(t);await e.sock.sendMessage(o,{react:{text:r,key:{remoteJid:o,id:n,fromMe:i,participant:a?w(a):void 0}}})},sendComposingTo:async t=>{let n=w(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(),l=null,d=new Promise(e=>{l=e}),f=e=>{if(!l)return;let t=l;l=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 p=s.user?.id,m=p?x(p):null,h=j({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)}`)}}),g=new Map,_=300*1e3,v=s.signalRepository?.lidMapping,b=async e=>y(e,{authDir:r.authDir,lidLookup:v}),S=async t=>{let n=g.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 b(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:e.subject,participants:n,expires:Date.now()+_};return g.set(t,r),r}catch(n){return e(`Failed to fetch group metadata for ${t}: ${String(n)}`),{expires:Date.now()+_}}},C=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 b(n);if(!o)return null;let l=i?a?await b(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:m,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},w=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}`)},ee=async t=>{let n=gt(t.message??void 0),i=n?K(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,d;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 u(e.buffer,e.mimetype,`inbound`,t,e.fileName)).path,l=e.mimetype,d=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:d}},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),g=t.pushName??void 0;a.info({from:n.from,to:m??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let _={id:n.id,from:n.from,conversationId:n.from,to:m??`me`,accountId:n.access.resolvedAccountId,body:r.body,pushName:g,timestamp:d,chatType:n.group?`group`:`direct`,chatId:n.remoteJid,senderJid:n.participantJid,senderE164:n.senderE164??void 0,senderName:g,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:p,selfE164:m,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(h.enqueue(_)).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 C(t);if(!n||(await w(n),e.type===`append`))continue;let i=await ee(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);f({status:t,isLoggedOut:t===Be.loggedOut,error:e.lastDisconnect?.error})}}catch(e){a.error({error:String(e)},`connection.update handler error`),f({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:d,signalClose:e=>{f(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:I(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=>x(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?x(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function kt(e,t,n){let r=e=>L(e),i=b(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:L(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=H({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=_({agentId:e.agentId,mainKey:g});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:B({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=>h(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=h(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=l({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return a({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Lt(e,t){let n=l({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return c({cfg:e,channel:`whatsapp`,groupId:n??t})}function Rt(e){let t=f(G(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Lt(e.cfg,e.conversationId)?`mention`:`always`;return U(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`;O({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=z(r),a=Ht(e.baseMentionConfig,e.msg),o=a&&de(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 c=s.wasMentioned,l=Rt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,u=e.msg.selfJid?.replace(/:\\d+/,``),d=e.msg.replyToSenderJid?.replace(/:\\d+/,``),f=e.msg.selfE164?C(e.msg.selfE164):null,p=e.msg.replyToSenderE164?C(e.msg.replyToSenderE164):null,m=P({requireMention:l,canDetectMention:!0,wasMentioned:c,implicitMention:!!(u&&d&&u===d||f&&p&&f===p),shouldBypassMention:o});return e.msg.wasMentioned=m.effectiveWasMentioned,!o&&l&&m.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=G(e.cfg.session?.store,{agentId:e.storeAgentId}),n=o({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(`@`)?x(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:a,textLimit:o,replyLogger:s,connectionId:c,skipLog:l}=n,u=Date.now();if(Xt(r)){Z.debug(`Suppressed reasoning payload to ${i.from}`);return}let d=n.tableMode??`code`,f=n.chunkMode??`length`,p=ge(Pe(je(r.text||``,d)),o,f),m=r.mediaUrls?.length?r.mediaUrls:r.mediaUrl?[r.mediaUrl]:[],h=async(t,n,r=3)=>{let a;for(let o=1;o<=r;o++)try{return await t()}catch(t){a=t;let s=q(t),c=o===r;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw t;let l=500*o;e(`Retrying ${n} to ${i.from} after failure (${o}/${r-1}) in ${l}ms: ${s}`),await v(l)}throw a};if(m.length===0&&p.length){let e=p.length;for(let[t,n]of p.entries()){let r=Date.now();if(await h(()=>i.reply(n),`text`),!l){let n=Date.now()-r;Z.debug(`Sent chunk ${t+1}/${e} to ${i.from} (${n.toFixed(0)}ms)`)}}s.info({correlationId:i.id??J(),connectionId:c??null,to:i.from,from:i.to,text:$(r.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-u},`auto-reply sent (text)`);return}let g=[...p];for(let[r,o]of m.entries()){let l=r===0&&g.shift()||void 0;try{let r=await he(o,{maxBytes:a,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: ${o} (kind ${r.kind})`)),r.kind===`image`)await h(()=>i.sendMedia({image:r.buffer,caption:l,mimetype:r.contentType}),`media:image`);else if(r.kind===`audio`)await h(()=>i.sendMedia({audio:r.buffer,ptt:!0,mimetype:r.contentType,caption:l}),`media:audio`);else if(r.kind===`video`)await h(()=>i.sendMedia({video:r.buffer,caption:l,mimetype:r.contentType}),`media:video`);else{let e=r.fileName??o.split(`/`).pop()??`file`,t=r.contentType??`application/octet-stream`;await h(()=>i.sendMedia({document:r.buffer,fileName:e,caption:l,mimetype:t}),`media:document`)}Z.info(`Sent media reply to ${i.from} (${(r.buffer.length/(1024*1024)).toFixed(2)}MB)`),s.info({correlationId:i.id??J(),connectionId:c??null,to:i.from,from:i.to,text:l??null,mediaUrl:o,mediaSizeBytes:r.buffer.length,mediaKind:r.kind,durationMs:Date.now()-u},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${i.from}: ${q(e)}`),s.warn({err:e,mediaUrl:o},`failed to send web media reply`),r===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,n=[g.shift()??l??``,t].filter(Boolean).join(`
@@ -1,4 +1,4 @@
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-BLbnMb5E.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-DwfVhea1.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-BwjMhAUa.js";import{t as me}from"./local-roots-aA-4ohTq.js";import{c as he}from"./pairing-store-EmfFQVcs.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-NbU9-scF2.js";import{a as xe,d as Se,h as Ce,m as we,s as Te}from"./ir-CNTx85qV.js";import{_ as Ee,h as De,v as Oe,y as ke}from"./read-only-account-inspect-B0cm8yrv.js";import{n as Ae}from"./channel-activity-Dw6F-ehJ.js";import{t as je}from"./tables-fl9iXahm.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-BevYwvMh.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-BSRnpwSq.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-BLbnMb5E.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-mWIMy_ju.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-BwjMhAUa.js";import{t as me}from"./local-roots-aA-4ohTq.js";import{c as he}from"./pairing-store-EmfFQVcs.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-NbU9-scF2.js";import{a as xe,d as Se,h as Ce,m as we,s as Te}from"./ir-CNTx85qV.js";import{_ as Ee,h as De,v as Oe,y as ke}from"./read-only-account-inspect-B0cm8yrv.js";import{n as Ae}from"./channel-activity-Dw6F-ehJ.js";import{t as je}from"./tables-fl9iXahm.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-BevYwvMh.js";import{i as Ie,n as q,r as Le,t as Re}from"./session-BSRnpwSq.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(`
@@ -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-C8rZRS0X.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-Bz_S4lPh.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-vNcod64S.js";import{at as S,et as C}from"./send-CyarIb2w.js";import{d as w,fn as T,pn as ee}from"./compact-CYbPi7_-.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-DZzS67GS.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-SqSusZP3.js";import"./diagnostic-D1H7_8QG.js";import"./send-Dj7NBAWg.js";import"./pi-model-discovery-BPkhPDMr.js";import"./exec-approvals-allowlist-CGjRWREs.js";import"./exec-safe-bin-runtime-policy-v44u39fl.js";import"./model-catalog-mt0IcDfR.js";import"./fetch-B4bz67_N.js";import"./audio-transcription-runner-BIKj1CBU.js";import"./fetch-guard-DaZmvp-L.js";import"./image-BVbOr9yV.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-BpEL4aeX.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-DdjufzKF.js";import"./render-DrrPmnMI.js";import"./target-errors-D6wejRd6.js";import"./commands-Dy7duWlt.js";import"./commands-registry-DT6FDUev.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bpdyx2A2.js";import"./sqlite-CILF3z9U.js";import{n as E}from"./call-BWx7hNtl.js";import{b as te,y as D}from"./pi-tools.policy-B6q8YOfg.js";import"./pairing-store-BaaVy1zB.js";import"./fetch-Dh-apy46.js";import{n as O}from"./format-relative-DkMjYy7z.js";import"./skill-commands-DCqPy_Aa.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-zdbQ951y.js";import"./channel-activity-BhiLsKvM.js";import"./tables-DENKrP-W.js";import"./kill-tree-D6nPx1_o.js";import"./runtime-web-tools-BYhCkBV8.js";import"./runtime-CK7gqwEF.js";import"./node-shell-BVZylVP6.js";import"./stagger-DxzgG2jd.js";import{n as k}from"./channel-selection-BPxE8JR7.js";import{a as ne}from"./plugin-auto-enable-adba5Evb.js";import"./send-ChILboDj.js";import"./outbound-attachment-CVcDBkAD.js";import"./delivery-queue-nkPJu0fY.js";import"./send-COpehmAB.js";import"./system-run-command-DsWBVvSK.js";import"./fetch-Ce-scEU-.js";import{n as A,s as j}from"./command-secret-targets-BEjtBf5Z.js";import"./connection-auth-CjaeEu5D.js";import"./onboard-helpers-DOlI17Ac.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-CZ-aX-up.js";import"./search-manager-CV2YsAym.js";import"./manager-CxZRoQkE.js";import"./memory-cli-C8fBBPgv.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-CqDxMWLZ.js";import"./channel-web-CwUfYqjg.js";import"./session-bk3gFwO4.js";import"./login-CcYeF5T_.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-6hk_fxD8.js";import{n as oe}from"./agents.config-DSCcdYtv.js";import"./enable-PO3qN4Lf.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-CKzq-YqL.js";import"./plugin-install-plan-sIOiMBS1.js";import{a as se,i as ce,r as le}from"./onboard-channels-BDMtq3ex.js";import"./auth-choice.apply-helpers-D911bYcw.js";import"./issue-format-CN9PHzXY.js";import{n as ue,t as z}from"./status-w4NsjW2R.js";import{t as de}from"./parse-log-line-CsYLg7Qu.js";import{t as fe}from"./channels-status-issues-8eFrGKyf.js";import"./plugin-registry-DYwEy5eM.js";import{t as B}from"./channel-options-CKoyPq8p.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-C8rZRS0X.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-Bz_S4lPh.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-vNcod64S.js";import{at as S,et as C}from"./send-CyarIb2w.js";import{d as w,fn as T,pn as ee}from"./compact-uyQDx8pN.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-DZzS67GS.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-SqSusZP3.js";import"./diagnostic-D1H7_8QG.js";import"./send-Dj7NBAWg.js";import"./pi-model-discovery-BPkhPDMr.js";import"./exec-approvals-allowlist-CGjRWREs.js";import"./exec-safe-bin-runtime-policy-v44u39fl.js";import"./model-catalog-mt0IcDfR.js";import"./fetch-B4bz67_N.js";import"./audio-transcription-runner-BIKj1CBU.js";import"./fetch-guard-DaZmvp-L.js";import"./image-BVbOr9yV.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-BpEL4aeX.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-DdjufzKF.js";import"./render-DrrPmnMI.js";import"./target-errors-D6wejRd6.js";import"./commands-Dy7duWlt.js";import"./commands-registry-DT6FDUev.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bpdyx2A2.js";import"./sqlite-CILF3z9U.js";import{n as E}from"./call-BWx7hNtl.js";import{b as te,y as D}from"./pi-tools.policy-B6q8YOfg.js";import"./pairing-store-BaaVy1zB.js";import"./fetch-Dh-apy46.js";import{n as O}from"./format-relative-DkMjYy7z.js";import"./skill-commands-DCqPy_Aa.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-zdbQ951y.js";import"./channel-activity-BhiLsKvM.js";import"./tables-DENKrP-W.js";import"./kill-tree-D6nPx1_o.js";import"./runtime-web-tools-BYhCkBV8.js";import"./runtime-CK7gqwEF.js";import"./node-shell-BVZylVP6.js";import"./stagger-DxzgG2jd.js";import{n as k}from"./channel-selection-BPxE8JR7.js";import{a as ne}from"./plugin-auto-enable-adba5Evb.js";import"./send-ChILboDj.js";import"./outbound-attachment-CVcDBkAD.js";import"./delivery-queue-nkPJu0fY.js";import"./send-COpehmAB.js";import"./system-run-command-DsWBVvSK.js";import"./fetch-Ce-scEU-.js";import{n as A,s as j}from"./command-secret-targets-BEjtBf5Z.js";import"./connection-auth-CjaeEu5D.js";import"./onboard-helpers-DOlI17Ac.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-CZ-aX-up.js";import"./search-manager-CV2YsAym.js";import"./manager-CxZRoQkE.js";import"./memory-cli-C8fBBPgv.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-CqDxMWLZ.js";import"./channel-web-Qr8ST6tz.js";import"./session-bk3gFwO4.js";import"./login-CcYeF5T_.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-6hk_fxD8.js";import{n as oe}from"./agents.config-D8Q8p7re.js";import"./enable-PO3qN4Lf.js";import"./install-safe-path-C6kc_8NW.js";import"./npm-pack-install-C0te3Oap.js";import"./skill-scanner-CkxXNioD.js";import"./installs-CKzq-YqL.js";import"./plugin-install-plan-sIOiMBS1.js";import{a as se,i as ce,r as le}from"./onboard-channels-C5lcb7dF.js";import"./auth-choice.apply-helpers-D911bYcw.js";import"./issue-format-CN9PHzXY.js";import{n as ue,t as z}from"./status-w4NsjW2R.js";import{t as de}from"./parse-log-line-CsYLg7Qu.js";import{t as fe}from"./channels-status-issues-8eFrGKyf.js";import"./plugin-registry-C_HKxFxs.js";import{t as B}from"./channel-options-llKYy0-2.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(`