@qqbrowser/openclaw-qbot 0.0.129 → 0.0.130

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 (335) hide show
  1. package/dist/{agents-BMh3ZeoB.js → agents-Cubon1TX.js} +1 -1
  2. package/dist/{agents.config-B-0lZSmb.js → agents.config-Bq8Ak0F3.js} +1 -1
  3. package/dist/{agents.config-BDEN2Eph.js → agents.config-TMOG_1fN.js} +1 -1
  4. package/dist/{auth-choice-C3aUWXx9.js → auth-choice-BV7aG7qI.js} +1 -1
  5. package/dist/{auth-choice-edozMf7r.js → auth-choice-D4TVgwap.js} +1 -1
  6. package/dist/{banner-mIDEloRy.js → banner-FuYXKuyX.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-Cbv7VETu.js → channel-options-B2FyYCfD.js} +1 -1
  12. package/dist/{channel-options-BYmHreMn.js → channel-options-BZ_7THWI.js} +1 -1
  13. package/dist/{channel-web-CK4RqVCH.js → channel-web-BGS9PUif.js} +1 -1
  14. package/dist/{channel-web-Xw89Exy3.js → channel-web-BtadNk83.js} +1 -1
  15. package/dist/{channels-cli-cwFjBXcP.js → channels-cli-DSFKjDFp.js} +1 -1
  16. package/dist/{channels-cli-D2y5Xk5i.js → channels-cli-bxaeOCRb.js} +1 -1
  17. package/dist/{cli-i7P4bYBg.js → cli-DKII0pIr.js} +1 -1
  18. package/dist/{cli-CQKA38bc.js → cli-e_aOkw6O.js} +1 -1
  19. package/dist/{command-registry-BYk36N_R.js → command-registry-CNhmhDmG.js} +1 -1
  20. package/dist/{compact-CuBCVnVS.js → compact-Cc9Dtg1D.js} +9 -6
  21. package/dist/{compact.runtime-Dk_X42a5.js → compact.runtime-B2zAVRW9.js} +1 -1
  22. package/dist/{compact.runtime-By-cADOP.js → compact.runtime-CGPivLl2.js} +1 -1
  23. package/dist/{compact.runtime-BPKLT0Y6.js → compact.runtime-YW0iMT9b.js} +1 -1
  24. package/dist/{compact.runtime-D4b4CL27.js → compact.runtime-nz90Pkok.js} +1 -1
  25. package/dist/{completion-cli-CRNTbZlR.js → completion-cli-B7pfb9r3.js} +1 -1
  26. package/dist/{completion-cli-DbGDCoiM.js → completion-cli-BqdH9qEZ.js} +1 -1
  27. package/dist/{config-cli-D_coAWd9.js → config-cli-BPyNIRN1.js} +1 -1
  28. package/dist/{config-cli-EKXoNzLf.js → config-cli-skIm9kJt.js} +1 -1
  29. package/dist/{configure-DNnQRKy8.js → configure-2N7tIyd5.js} +1 -1
  30. package/dist/{configure-NCNskZPe.js → configure-CXJUA1uP.js} +1 -1
  31. package/dist/{deps-send-whatsapp.runtime-3b97lk9B.js → deps-send-whatsapp.runtime-BDsE5mxt.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-Cb3WMzFa.js → deps-send-whatsapp.runtime-BJvK8RlR.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-BjO7JYUz.js → deps-send-whatsapp.runtime-C5rMMlu_.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-zvLP-GL2.js → deps-send-whatsapp.runtime-YXjIEWx_.js} +1 -1
  35. package/dist/{doctor-completion-BSOX-LSq.js → doctor-completion-DDbR5Q2j.js} +1 -1
  36. package/dist/{doctor-completion-DXqdpdlo.js → doctor-completion-lmr77XW2.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-DP65otLl.js → gateway-cli-C5MRJ6an.js} +2 -2
  40. package/dist/{gateway-cli-Bj-BYgGN.js → gateway-cli-CeiwBnIp.js} +2 -2
  41. package/dist/{health-Bedsiigi.js → health-BQNPexgp.js} +1 -1
  42. package/dist/{health-Cy_CvKbX.js → health-Cle8Wm2y.js} +1 -1
  43. package/dist/{hooks-cli-DrnH2iDk.js → hooks-cli-Dqj4slS1.js} +1 -1
  44. package/dist/{hooks-cli-DvfZKyZl.js → hooks-cli-HLimaYiF.js} +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-UTdl0vXO.js → models-6WKxossI.js} +1 -1
  48. package/dist/{models-cli-vRoB_gfX.js → models-cli-BOluqRVa.js} +1 -1
  49. package/dist/{models-cli-QRONP7EL.js → models-cli-CafqEMQa.js} +1 -1
  50. package/dist/{npm-resolution-BCXCw93f.js → npm-resolution-Cg5YljRY.js} +1 -1
  51. package/dist/{npm-resolution-Cmm82lui.js → npm-resolution-D-DzMtit.js} +1 -1
  52. package/dist/{onboard-C65vdb94.js → onboard-DgPNeSDC.js} +2 -2
  53. package/dist/{onboard-channels-9CmG3Jgn.js → onboard-channels-BZ713LQ0.js} +1 -1
  54. package/dist/{onboard-channels-CV1AK9jY.js → onboard-channels-BhJDBFvw.js} +1 -1
  55. package/dist/{onboard-B3WSjKCu.js → onboard-nH3CTwLv.js} +2 -2
  56. package/dist/{onboarding-B8icigkk.js → onboarding-C6ipSJbr.js} +1 -1
  57. package/dist/{onboarding-BJRqNsZ8.js → onboarding-CuDTCs2I.js} +1 -1
  58. package/dist/{onboarding.finalize-Ds9NwPBL.js → onboarding.finalize-B1FGq010.js} +1 -1
  59. package/dist/{onboarding.finalize-D0qISqn-.js → onboarding.finalize-DKOoRYGJ.js} +1 -1
  60. package/dist/{pi-embedded-bqE4EmdD.js → pi-embedded-B4Un3CQs.js} +9 -6
  61. package/dist/{pi-embedded-ZEWNj7P5.js → pi-embedded-BB-XnYmz.js} +9 -6
  62. package/dist/{plugin-registry-Fg000e4I.js → plugin-registry-BdytW3KN.js} +1 -1
  63. package/dist/{plugin-registry-fm5tDUbE.js → plugin-registry-Bg5MxMF_.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-Ces_xx2T.js → channel-web-BeV4rAGn.js} +1 -1
  65. package/dist/plugin-sdk/{channel-web-VEZVrMYU.js → channel-web-D4n7Ejq1.js} +1 -1
  66. package/dist/plugin-sdk/{channel-web-CsmEnYD8.cjs → channel-web-DUQbgeQI.cjs} +1 -1
  67. package/dist/plugin-sdk/{channel-web-DtzNv49H.cjs → channel-web-DY8qidtg.cjs} +1 -1
  68. package/dist/plugin-sdk/{compact.runtime-dHvwUcPw.cjs → compact.runtime-AKxo6Nlw.cjs} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-a9NY6gkE.cjs → compact.runtime-BEL9QhHa.cjs} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-lkTiEMuC.js → compact.runtime-Bwiv6Ffu.js} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-3HjzHUZP.js → compact.runtime-C506XCjP.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-BNWdeSZd.js → compact.runtime-C72Z_cRS.js} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-DdTqQqss.cjs → compact.runtime-CCOK7ViI.cjs} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-CV7XZLm9.cjs → compact.runtime-CL13VtHJ.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-DW5wVRhP.js → compact.runtime-CtQXjpnH.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-BV06PFoQ.js → compact.runtime-DRX9nGYX.js} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-DVUYkIq_.cjs → compact.runtime-ZC51rihc.cjs} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-Crk_pXQN.cjs → compact.runtime-chy72HQu.cjs} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-zEdbh4jm.js → compact.runtime-tnKCDMJd.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-D5MoDp6d.cjs → deps-send-whatsapp.runtime-B5XtORj2.cjs} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BtJlY6w4.cjs → deps-send-whatsapp.runtime-BKc2YqfU.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime--ecTt2Sc.js → deps-send-whatsapp.runtime-BdOOZs_o.js} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-hMZEvL0_.cjs → deps-send-whatsapp.runtime-CcYcxuN4.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BLVt-zaJ.cjs → deps-send-whatsapp.runtime-CwAxDCX3.cjs} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BBcljK3U.cjs → deps-send-whatsapp.runtime-D5J_2Hrs.cjs} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-B2W5Uyu3.js → deps-send-whatsapp.runtime-D8KfxShd.js} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BBtHI22g.js → deps-send-whatsapp.runtime-DINMmgeN.js} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-B6fogJhg.js → deps-send-whatsapp.runtime-DLg6z6cA.js} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CkstVwD8.js → deps-send-whatsapp.runtime-DT5t3zuS.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-k0NK6T1t.cjs → deps-send-whatsapp.runtime-DdnTJYXN.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CQgpd-kW.js → deps-send-whatsapp.runtime-DsmBHHGq.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-BYZNaz0n.cjs → dispatch-7BS7RM76.cjs} +9 -6
  95. package/dist/plugin-sdk/{dispatch-BjB_TqWy.cjs → dispatch-B2j2ToZn.cjs} +9 -6
  96. package/dist/plugin-sdk/{dispatch-HRTsdeCV.js → dispatch-CDpXVpXP.js} +9 -6
  97. package/dist/plugin-sdk/{dispatch-BahZCe-D.js → dispatch-CLpAMfPN.js} +9 -6
  98. package/dist/plugin-sdk/{dispatch-CdZAW9dg.cjs → dispatch-CXC-k9Rs.cjs} +9 -6
  99. package/dist/plugin-sdk/{dispatch-Ewg2Jgw9.js → dispatch-CYu9GW2y.js} +9 -6
  100. package/dist/plugin-sdk/{dispatch-CNR186B3.js → dispatch-Ck_jhPMl.js} +9 -6
  101. package/dist/plugin-sdk/{dispatch-CStT30wi.cjs → dispatch-CrVSyC50.cjs} +9 -6
  102. package/dist/plugin-sdk/{dispatch-Bi3yeWxb.cjs → dispatch-DpztrKuM.cjs} +9 -6
  103. package/dist/plugin-sdk/{dispatch-6m3206FH.js → dispatch-evtvC4CX.js} +9 -6
  104. package/dist/plugin-sdk/index.cjs +1 -1
  105. package/dist/plugin-sdk/index.js +1 -1
  106. package/dist/plugin-sdk/irc.cjs +1 -1
  107. package/dist/plugin-sdk/irc.js +1 -1
  108. package/dist/plugin-sdk/matrix.cjs +1 -1
  109. package/dist/plugin-sdk/matrix.js +1 -1
  110. package/dist/plugin-sdk/msteams.cjs +1 -1
  111. package/dist/plugin-sdk/msteams.js +1 -1
  112. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
  113. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  114. package/dist/plugin-sdk/qqbrowser/system_prompt/custom-prompt.generated.d.ts +1 -1
  115. package/dist/plugin-sdk/{reply-Clex4c2R.js → reply-DVyXycvP.js} +9 -6
  116. package/dist/plugin-sdk/{reply-BrHB7v5V.cjs → reply-DoisbReD.cjs} +9 -6
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-N9-DHC5J.cjs → slash-dispatch.runtime-BYnrEiwV.cjs} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-OyqBIT5K.js → slash-dispatch.runtime-C-1ypBEP.js} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-BHG116tz.js → slash-dispatch.runtime-C6RRCuOI.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-CYtxleiJ.cjs → slash-dispatch.runtime-CEj4d_D_.cjs} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-BdoE2woN.js → slash-dispatch.runtime-CGVrDWbe.js} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-DYF5C2b7.js → slash-dispatch.runtime-CLllUNlh.js} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-B7VKSvWz.cjs → slash-dispatch.runtime-Cbn21nTX.cjs} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-6TNUV5sD.cjs → slash-dispatch.runtime-DiBPKJnQ.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-FHwp9NT0.js → slash-dispatch.runtime-NQj0Ea4E.js} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-CVuiZAJX.cjs → slash-dispatch.runtime-S41pqvTC.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-eCaT05fr.js → slash-dispatch.runtime-XalVe1mU.js} +1 -1
  128. package/dist/plugin-sdk/{slash-dispatch.runtime-scWEh2DK.cjs → slash-dispatch.runtime-g9XbY-BR.cjs} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-wO-j_HvW.cjs → subagent-registry-runtime-BZPfJcK7.cjs} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-h0yhcS5X.js → subagent-registry-runtime-BfvaomBi.js} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-DuxxoFvb.cjs → subagent-registry-runtime-BkfV_qZo.cjs} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-Dc-5y7KZ.cjs → subagent-registry-runtime-C9kY6i4W.cjs} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-LThjIc8b.js → subagent-registry-runtime-CCunMoSD.js} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-BZbV2G_e.js → subagent-registry-runtime-CrWzukNj.js} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-CPTL-18y.js → subagent-registry-runtime-CutSwJqz.js} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-DduSFKtc.cjs → subagent-registry-runtime-DsXsp4lT.cjs} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-CVARl9Ob.js → subagent-registry-runtime-UbbSTSVS.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-DBo0_1La.cjs → subagent-registry-runtime-f0_GhLOw.cjs} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-C1uIU3Ox.cjs → subagent-registry-runtime-pM4nQU6u.cjs} +1 -1
  140. package/dist/plugin-sdk/{subagent-registry-runtime-2dXCCdh7.js → subagent-registry-runtime-s1EZG_RJ.js} +1 -1
  141. package/dist/plugin-sdk/{web-BnDJ2-GG.cjs → web-BBj3pJRI.cjs} +1 -1
  142. package/dist/plugin-sdk/{web-BfjArU7g.js → web-BX_wf694.js} +1 -1
  143. package/dist/plugin-sdk/{web-BTBgpaEi.js → web-Bt6Qr5DN.js} +1 -1
  144. package/dist/plugin-sdk/{web-BKKx3jqf.cjs → web-Bv54jzps.cjs} +1 -1
  145. package/dist/plugin-sdk/{web-C7KhecaH.cjs → web-C10r6DA0.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-CS0AvKLx.js → web-CM_BL-xM.js} +1 -1
  147. package/dist/plugin-sdk/{web-Bstc61W4.cjs → web-CtEFg9k1.cjs} +1 -1
  148. package/dist/plugin-sdk/{web-B4A8zBP9.cjs → web-D24ZmMDR.cjs} +1 -1
  149. package/dist/plugin-sdk/{web-DFnjoFzV.js → web-DIJEtPIy.js} +1 -1
  150. package/dist/plugin-sdk/{web-CFMrBQv7.js → web-Dq1_toZ-.js} +1 -1
  151. package/dist/plugin-sdk/{web-BBtjNUBg.js → web-Y2KsC_aj.js} +1 -1
  152. package/dist/plugin-sdk/{web-EfgEjg15.cjs → web-fUWZzZ2V.cjs} +1 -1
  153. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  154. package/dist/plugin-sdk/whatsapp.js +1 -1
  155. package/dist/{plugins-cli-BiV4FaGs.js → plugins-cli-FyQKyII0.js} +1 -1
  156. package/dist/{plugins-cli-C0PLRxT0.js → plugins-cli-QSi9jupq.js} +1 -1
  157. package/dist/{program-CI--7377.js → program-CSs3zbIT.js} +2 -2
  158. package/dist/{program-context-Cu8fVR-O.js → program-context-CvzQGlmy.js} +1 -1
  159. package/dist/{prompt-select-styled-sYEl0gMg.js → prompt-select-styled-C1y3TIrL.js} +1 -1
  160. package/dist/{prompt-select-styled-CbTtKeIC.js → prompt-select-styled-CtfTvGkL.js} +1 -1
  161. package/dist/{provider-auth-helpers-CZyb7LUg.js → provider-auth-helpers-BsJzFqzN.js} +1 -1
  162. package/dist/{provider-auth-helpers-C3OaF218.js → provider-auth-helpers-DNCEAkC3.js} +1 -1
  163. package/dist/{push-apns-tM6G9LLm.js → push-apns-3-i_UkDn.js} +1 -1
  164. package/dist/{push-apns-kySzOiJr.js → push-apns-B6ZnHIkM.js} +1 -1
  165. package/dist/{register.agent-D1hQi_68.js → register.agent-BZkNoJfz.js} +1 -1
  166. package/dist/{register.agent-BwmE1VD-.js → register.agent-DUyQiL_H.js} +1 -1
  167. package/dist/{register.configure-BsTw4XfK.js → register.configure-LYVJtNSx.js} +1 -1
  168. package/dist/{register.configure-DxR84Ot6.js → register.configure-N3fcntfr.js} +1 -1
  169. package/dist/{register.maintenance-DxKGQ9Jo.js → register.maintenance-CoYIK__n.js} +1 -1
  170. package/dist/{register.maintenance-3nzWAo_a.js → register.maintenance-DInaXQpP.js} +1 -1
  171. package/dist/{register.message-Bk1pHVSK.js → register.message-COd9aEOR.js} +1 -1
  172. package/dist/{register.message-PcFtBR0-.js → register.message-PcWHnhgg.js} +1 -1
  173. package/dist/{register.onboard-AWxbhU7j.js → register.onboard-CBGi44rr.js} +1 -1
  174. package/dist/{register.onboard-BTOZN8ro.js → register.onboard-DKq25Ahd.js} +1 -1
  175. package/dist/{register.setup-CweJJdt8.js → register.setup-9nNK9GJa.js} +1 -1
  176. package/dist/{register.setup-B-e1qIbc.js → register.setup-DtlxWUxF.js} +1 -1
  177. package/dist/{register.status-health-sessions-CWNLXpAn.js → register.status-health-sessions-DI_2pQB7.js} +1 -1
  178. package/dist/{register.status-health-sessions-B1R_nl6P.js → register.status-health-sessions-DnR2WcUj.js} +1 -1
  179. package/dist/{register.subclis-C0VQ_HfZ.js → register.subclis-cE0hv18s.js} +1 -1
  180. package/dist/{reply-r9KtzgpM.js → reply-SbDsPAiQ.js} +9 -6
  181. package/dist/{run-main-CuQQyoU3.js → run-main-DwWcrQo6.js} +1 -1
  182. package/dist/{server-node-events-B2irOUJ_.js → server-node-events-D_dQc21k.js} +1 -1
  183. package/dist/{server-node-events-DSr6P0VG.js → server-node-events-Faqpyiif.js} +1 -1
  184. package/dist/{slash-dispatch.runtime-D0HpS_2c.js → slash-dispatch.runtime-CDrV9rRD.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-CzLPF9HE.js → slash-dispatch.runtime-nuZoxX0_.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-DAVp4-2z.js → slash-dispatch.runtime-valnWMeB.js} +1 -1
  187. package/dist/{slash-dispatch.runtime-BQNJacCj.js → slash-dispatch.runtime-z7RQ4pU1.js} +1 -1
  188. package/dist/{status-DgRrUxyg.js → status-3v-rmxvZ.js} +1 -1
  189. package/dist/{status-DKB9gdSp.js → status-D1lt7CDs.js} +1 -1
  190. package/dist/{subagent-registry-runtime-DbSqq5RB.js → subagent-registry-runtime-BvE58vM7.js} +1 -1
  191. package/dist/{subagent-registry-runtime-c2C-KBDy.js → subagent-registry-runtime-CINY8Tso.js} +1 -1
  192. package/dist/{subagent-registry-runtime-ca1bXmj0.js → subagent-registry-runtime-DbZvan_g.js} +1 -1
  193. package/dist/{subagent-registry-runtime-COHXQCbb.js → subagent-registry-runtime-DxsLafxM.js} +1 -1
  194. package/dist/{update-cli-xb0jHjE8.js → update-cli-DDpqwP6G.js} +1 -1
  195. package/dist/{update-cli-lciKU8_L.js → update-cli-DfjeHwDJ.js} +1 -1
  196. package/dist/{update-runner-LVJcy569.js → update-runner-C5yG78nD.js} +1 -1
  197. package/dist/{update-runner-8Hto6X-M.js → update-runner-Cn2FFLI4.js} +1 -1
  198. package/dist/{web-B4nEAmKA.js → web-BIzg4tS6.js} +1 -1
  199. package/dist/{web-Bfz_qlYe.js → web-BS-UjHFC.js} +1 -1
  200. package/dist/{web-ClbIohhf.js → web-CW41_jQN.js} +1 -1
  201. package/dist/{web-BhBkUC7j.js → web-Cc3cVVew.js} +1 -1
  202. package/node_modules/@aws-sdk/client-bedrock-runtime/dist-es/BedrockRuntime.js +2 -2
  203. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +16 -16
  204. package/node_modules/@aws-sdk/core/package.json +3 -3
  205. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  206. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  207. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  208. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  209. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  210. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  211. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  212. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  213. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +10 -10
  214. package/node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js +1 -1
  215. package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
  216. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentity.js +1 -1
  217. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentityClient.js +1 -1
  218. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/Signin.js +1 -1
  219. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +1 -1
  220. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSO.js +1 -1
  221. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSOClient.js +1 -1
  222. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +1 -1
  223. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +1 -1
  224. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +2 -2
  225. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +1 -1
  226. package/node_modules/@aws-sdk/nested-clients/package.json +12 -12
  227. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  228. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  229. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js +1 -4
  230. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/types.js +18 -5
  231. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js +1 -4
  232. package/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +18 -5
  233. package/node_modules/@modelcontextprotocol/sdk/package.json +10 -1
  234. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +8 -17
  235. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +1 -8
  236. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +7 -9
  237. package/node_modules/@smithy/core/package.json +2 -2
  238. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  239. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  240. package/node_modules/@smithy/middleware-serde/package.json +2 -2
  241. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  242. package/node_modules/@smithy/smithy-client/package.json +4 -4
  243. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  244. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  245. package/node_modules/@smithy/util-stream/package.json +2 -2
  246. package/node_modules/axios/lib/adapters/http.js +0 -0
  247. package/node_modules/axios/package.json +4 -4
  248. package/node_modules/express-rate-limit/dist/index.cjs +24 -13
  249. package/node_modules/express-rate-limit/dist/index.mjs +24 -13
  250. package/node_modules/express-rate-limit/package.json +7 -7
  251. package/node_modules/express-rate-limit/readme.md +1 -16
  252. package/node_modules/minimatch/dist/commonjs/ast.js +9 -10
  253. package/node_modules/minimatch/dist/commonjs/index.js +26 -20
  254. package/node_modules/minimatch/dist/commonjs/unescape.js +6 -6
  255. package/node_modules/minimatch/dist/esm/ast.js +9 -10
  256. package/node_modules/minimatch/dist/esm/index.js +26 -20
  257. package/node_modules/minimatch/dist/esm/unescape.js +6 -6
  258. package/node_modules/minimatch/package.json +14 -8
  259. package/node_modules/path-to-regexp/Readme.md +3 -3
  260. package/node_modules/path-to-regexp/dist/index.js +21 -49
  261. package/node_modules/path-to-regexp/package.json +2 -2
  262. package/node_modules/plain-crypto-js/CONTRIBUTING.md +28 -0
  263. package/node_modules/plain-crypto-js/aes.js +234 -0
  264. package/node_modules/plain-crypto-js/blowfish.js +471 -0
  265. package/node_modules/plain-crypto-js/bower.json +39 -0
  266. package/node_modules/plain-crypto-js/cipher-core.js +895 -0
  267. package/node_modules/plain-crypto-js/core.js +807 -0
  268. package/node_modules/plain-crypto-js/crypto-js.js +6657 -0
  269. package/node_modules/plain-crypto-js/enc-base64.js +136 -0
  270. package/node_modules/plain-crypto-js/enc-base64url.js +148 -0
  271. package/node_modules/plain-crypto-js/enc-hex.js +18 -0
  272. package/node_modules/plain-crypto-js/enc-latin1.js +18 -0
  273. package/node_modules/plain-crypto-js/enc-utf16.js +149 -0
  274. package/node_modules/plain-crypto-js/enc-utf8.js +18 -0
  275. package/node_modules/plain-crypto-js/evpkdf.js +134 -0
  276. package/node_modules/plain-crypto-js/format-hex.js +66 -0
  277. package/node_modules/plain-crypto-js/format-openssl.js +18 -0
  278. package/node_modules/plain-crypto-js/hmac-md5.js +18 -0
  279. package/node_modules/plain-crypto-js/hmac-ripemd160.js +18 -0
  280. package/node_modules/plain-crypto-js/hmac-sha1.js +18 -0
  281. package/node_modules/plain-crypto-js/hmac-sha224.js +18 -0
  282. package/node_modules/plain-crypto-js/hmac-sha256.js +18 -0
  283. package/node_modules/plain-crypto-js/hmac-sha3.js +18 -0
  284. package/node_modules/plain-crypto-js/hmac-sha384.js +18 -0
  285. package/node_modules/plain-crypto-js/hmac-sha512.js +18 -0
  286. package/node_modules/plain-crypto-js/hmac.js +143 -0
  287. package/node_modules/plain-crypto-js/index.js +18 -0
  288. package/node_modules/plain-crypto-js/lib-typedarrays.js +76 -0
  289. package/node_modules/plain-crypto-js/md5.js +268 -0
  290. package/node_modules/plain-crypto-js/mode-cfb.js +80 -0
  291. package/node_modules/plain-crypto-js/mode-ctr-gladman.js +116 -0
  292. package/node_modules/plain-crypto-js/mode-ctr.js +58 -0
  293. package/node_modules/plain-crypto-js/mode-ecb.js +40 -0
  294. package/node_modules/plain-crypto-js/mode-ofb.js +54 -0
  295. package/node_modules/plain-crypto-js/package.json +46 -0
  296. package/node_modules/plain-crypto-js/package.md +42 -0
  297. package/node_modules/plain-crypto-js/pad-ansix923.js +49 -0
  298. package/node_modules/plain-crypto-js/pad-iso10126.js +44 -0
  299. package/node_modules/plain-crypto-js/pad-iso97971.js +40 -0
  300. package/node_modules/plain-crypto-js/pad-nopadding.js +30 -0
  301. package/node_modules/plain-crypto-js/pad-pkcs7.js +18 -0
  302. package/node_modules/plain-crypto-js/pad-zeropadding.js +47 -0
  303. package/node_modules/plain-crypto-js/pbkdf2.js +145 -0
  304. package/node_modules/plain-crypto-js/rabbit-legacy.js +190 -0
  305. package/node_modules/plain-crypto-js/rabbit.js +192 -0
  306. package/node_modules/plain-crypto-js/rc4.js +139 -0
  307. package/node_modules/plain-crypto-js/ripemd160.js +267 -0
  308. package/node_modules/plain-crypto-js/setup.js +1 -0
  309. package/node_modules/plain-crypto-js/sha1.js +150 -0
  310. package/node_modules/plain-crypto-js/sha224.js +80 -0
  311. package/node_modules/plain-crypto-js/sha256.js +199 -0
  312. package/node_modules/plain-crypto-js/sha3.js +326 -0
  313. package/node_modules/plain-crypto-js/sha384.js +83 -0
  314. package/node_modules/plain-crypto-js/sha512.js +326 -0
  315. package/node_modules/plain-crypto-js/tripledes.js +779 -0
  316. package/node_modules/plain-crypto-js/x64-core.js +304 -0
  317. package/package.json +1 -1
  318. package/preset-config.json +2 -2
  319. package/dist/control-ui/apple-touch-icon.png +0 -0
  320. package/dist/control-ui/assets/de-DuUYLvt1.js +0 -1
  321. package/dist/control-ui/assets/es-DHtyqUQZ.js +0 -1
  322. package/dist/control-ui/assets/index-CYbiPp9k.js +0 -8383
  323. package/dist/control-ui/assets/index-C_GaJ8wS.css +0 -1
  324. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +0 -1
  325. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +0 -1
  326. package/dist/control-ui/assets/zh-TW-cW5xB87I.js +0 -1
  327. package/dist/control-ui/favicon-32.png +0 -0
  328. package/dist/control-ui/favicon.ico +0 -0
  329. package/dist/control-ui/favicon.svg +0 -22
  330. package/dist/control-ui/index.html +0 -17
  331. package/node_modules/@smithy/abort-controller/dist-cjs/index.js +0 -32
  332. package/node_modules/@smithy/abort-controller/dist-es/AbortController.js +0 -7
  333. package/node_modules/@smithy/abort-controller/dist-es/AbortSignal.js +0 -20
  334. package/node_modules/@smithy/abort-controller/dist-es/index.js +0 -2
  335. package/node_modules/@smithy/abort-controller/package.json +0 -63
@@ -1,4 +1,4 @@
1
- require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-BjB_TqWy.cjs`),t=require(`./send-D3eT0F4N.cjs`),n=require(`./paths-Dd7r1qlB.cjs`),r=require(`./model-auth-CLnFIqcf.cjs`),i=require(`./logger-6O6OsYBL.cjs`);require(`./proxy-env-k93igu7v.cjs`),require(`./github-copilot-token-BHdMLLqf.cjs`),require(`./send-Bh-J7XWZ.cjs`),require(`./fetch-guard-DqNKwgHP.cjs`);const a=require(`./send-puyUta4_.cjs`);require(`./deliver-CmddcjtG.cjs`),require(`./diagnostic-CEPhLgsW.cjs`),require(`./pi-model-discovery-DVFSU0-f.cjs`);const o=require(`./audio-transcription-runner-DE1tKTQV.cjs`);require(`./image-B9SLKAOs.cjs`),require(`./api-key-rotation-39TRXDEA.cjs`);const s=require(`./local-roots-D1k-fAlE.cjs`);require(`./proxy-fetch-qbrYAz8k.cjs`),require(`./tokens-CytSl1X8.cjs`),require(`./commands-registry-BgV9i-bj.cjs`),require(`./fetch-Bi8krAaT.cjs`);const c=require(`./ir-A_TqKaXP.cjs`);require(`./render-DxBO2Blp.cjs`),require(`./target-errors-C_HYvghh.cjs`);const l=require(`./channel-activity-Df3DfYyZ.cjs`),u=require(`./tables-Bbodvj_s.cjs`);require(`./send-DhfDqcwc.cjs`),require(`./fetch-BjXhwqrE.cjs`),require(`./skill-commands-ZyLkXbR_.cjs`),require(`./outbound-attachment-C-QqSQ79.cjs`),require(`./send-t5U34FhY.cjs`);const d=require(`./active-listener-BszCM2Au.cjs`);require(`./query-expansion-DKJkqmNM.cjs`),require(`./manager-DE7sDip8.cjs`);const f=require(`./outbound-BWtGs0dn.cjs`),p=require(`./session-Bt5yI-VW.cjs`),m=require(`./login-S2Fe5n5K.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,t){let n=e.web?.reconnect??{},r=t??{},a={..._,...n,...r};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=i.o(a.factor,1.1,10),a.jitter=i.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=i.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=e.R({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let t=N(e);if(!t)return null;let n=P(t),r=(0,g.normalizeMessageContent)(n?.quotedMessage);if(!r)return null;let o=ne(r),s=o?a.J(o):void 0,c=[I(r),s].filter(Boolean).join(`
1
+ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-B2j2ToZn.cjs`),t=require(`./send-D3eT0F4N.cjs`),n=require(`./paths-Dd7r1qlB.cjs`),r=require(`./model-auth-CLnFIqcf.cjs`),i=require(`./logger-6O6OsYBL.cjs`);require(`./proxy-env-k93igu7v.cjs`),require(`./github-copilot-token-BHdMLLqf.cjs`),require(`./send-Bh-J7XWZ.cjs`),require(`./fetch-guard-DqNKwgHP.cjs`);const a=require(`./send-puyUta4_.cjs`);require(`./deliver-CmddcjtG.cjs`),require(`./diagnostic-CEPhLgsW.cjs`),require(`./pi-model-discovery-DVFSU0-f.cjs`);const o=require(`./audio-transcription-runner-DE1tKTQV.cjs`);require(`./image-B9SLKAOs.cjs`),require(`./api-key-rotation-39TRXDEA.cjs`);const s=require(`./local-roots-D1k-fAlE.cjs`);require(`./proxy-fetch-qbrYAz8k.cjs`),require(`./tokens-CytSl1X8.cjs`),require(`./commands-registry-BgV9i-bj.cjs`),require(`./fetch-Bi8krAaT.cjs`);const c=require(`./ir-A_TqKaXP.cjs`);require(`./render-DxBO2Blp.cjs`),require(`./target-errors-C_HYvghh.cjs`);const l=require(`./channel-activity-Df3DfYyZ.cjs`),u=require(`./tables-Bbodvj_s.cjs`);require(`./send-DhfDqcwc.cjs`),require(`./fetch-BjXhwqrE.cjs`),require(`./skill-commands-ZyLkXbR_.cjs`),require(`./outbound-attachment-C-QqSQ79.cjs`),require(`./send-t5U34FhY.cjs`);const d=require(`./active-listener-BszCM2Au.cjs`);require(`./query-expansion-DKJkqmNM.cjs`),require(`./manager-DE7sDip8.cjs`);const f=require(`./outbound-BWtGs0dn.cjs`),p=require(`./session-Bt5yI-VW.cjs`),m=require(`./login-S2Fe5n5K.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,t){let n=e.web?.reconnect??{},r=t??{},a={..._,...n,...r};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=i.o(a.factor,1.1,10),a.jitter=i.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=i.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=e.R({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let t=N(e);if(!t)return null;let n=P(t),r=(0,g.normalizeMessageContent)(n?.quotedMessage);if(!r)return null;let o=ne(r),s=o?a.J(o):void 0,c=[I(r),s].filter(Boolean).join(`
2
2
  `).trim();if(c||=L(r),!c){let e=r?(0,g.getContentType)(r):void 0;return i.R(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let l=n?.participant??void 0,u=l?i.m(l)??l:void 0,d=u??`unknown sender`;return{id:n?.stanzaId?String(n.stanzaId):void 0,body:c,sender:d,senderJid:l,senderE164:u}}function re(e){return t.Mt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function ie(n){let o=r.Oa(),s=r.Gn({cfg:o,accountId:n.accountId}),c=s.dmPolicy??`pairing`,l=s.allowFrom??[],u=await e.V({provider:`whatsapp`,accountId:s.accountId,dmPolicy:c}),d=l.length===0&&n.selfE164?[n.selfE164]:[],f=l.length>0?l:d,p=s.groupAllowFrom??(l.length>0?l:void 0),m=n.from===n.selfE164,h=s.selfChatMode??i.p(n.selfE164,l),g=typeof n.pairingGraceMs==`number`&&n.pairingGraceMs>0?n.pairingGraceMs:3e4,_=typeof n.connectedAtMs==`number`&&typeof n.messageTimestampMs==`number`&&n.messageTimestampMs<n.connectedAtMs-g,v=t.jt(o),{groupPolicy:y,providerMissingFallbackApplied:b}=re({providerConfigPresent:o.channels?.whatsapp!==void 0,groupPolicy:s.groupPolicy,defaultGroupPolicy:v});t.Nt({providerMissingFallbackApplied:b,providerKey:`whatsapp`,accountId:s.accountId,log:e=>i.R(e)});let x=i.h(n.from),S=typeof n.senderE164==`string`?i.h(n.senderE164):null,C=e.U({isGroup:n.group,dmPolicy:c,groupPolicy:y,allowFrom:n.group?l:f,groupAllowFrom:p,storeAllowFrom:u,isSenderAllowed:e=>{if(e.includes(`*`))return!0;let t=new Set(e.map(e=>i.h(String(e))).filter(e=>!!e));return!n.group&&m?!0:n.group?!!(S&&t.has(S)):t.has(x)}});if(n.group&&C.decision!==`allow`)return C.reason===`groupPolicy=disabled`?i.R(`Blocked group message (groupPolicy: disabled)`):C.reason===`groupPolicy=allowlist (empty allowlist)`?i.R(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):i.R(`Blocked group message from ${n.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(!n.group){if(n.isFromMe&&!m)return i.R(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`block`&&C.reason===`dmPolicy=disabled`)return i.R(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`pairing`&&!m){let t=n.from;return _?i.R(`Skipping pairing reply for historical DM from ${t}.`):await e.z({channel:`whatsapp`,senderId:t,senderIdLine:`Your WhatsApp phone number: ${t}`,meta:{name:(n.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await a.tt({channel:`whatsapp`,id:e,accountId:s.accountId,meta:t}),onCreated:()=>{i.R(`whatsapp pairing request sender=${t} name=${n.pushName??`unknown`}`)},sendPairingReply:async e=>{await n.sock.sendMessage(n.remoteJid,{text:e})},onReplyError:e=>{i.R(`whatsapp pairing reply failed for ${t}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}if(C.decision!==`allow`)return i.R(`Blocked unauthorized sender ${n.from} (dmPolicy=${c})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:h,resolvedAccountId:s.accountId}}function G(e){return(0,g.normalizeMessageContent)(e)}function K(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 ae(e,t){let n=G(e.message);if(!n)return;let r=K(n),a=n.documentMessage?.fileName??void 0;if(!(!n.imageMessage&&!n.videoMessage&&!n.documentMessage&&!n.audioMessage&&!n.stickerMessage))try{return{buffer:await(0,g.downloadMediaMessage)(e,`buffer`,{},{reuploadRequest:t.updateMediaMessage,logger:t.logger}),mimetype:r,fileName:a}}catch(e){i.R(`downloadMediaMessage failed: ${String(e)}`);return}}function q(e){l.n({channel:`whatsapp`,accountId:e,direction:`outbound`})}function J(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function Y(e){return{sendMessage:async(t,n,r,a,o)=>{let s=i.T(t),c;if(r&&a)if(a.startsWith(`image/`))c={image:r,caption:n||void 0,mimetype:a};else if(a.startsWith(`audio/`))c={audio:r,ptt:!0,mimetype:a};else if(a.startsWith(`video/`)){let e=o?.gifPlayback;c={video:r,caption:n||void 0,mimetype:a,...e?{gifPlayback:!0}:{}}}else c={document:r,fileName:o?.fileName?.trim()||`file`,caption:n||void 0,mimetype:a};else c={text:n};let l=await e.sock.sendMessage(s,c);return q(o?.accountId??e.defaultAccountId),{messageId:J(l)}},sendPoll:async(t,n)=>{let r=i.T(t),a=await e.sock.sendMessage(r,{poll:{name:n.question,values:n.options,selectableCount:n.maxSelections??1}});return q(e.defaultAccountId),{messageId:J(a)}},sendReaction:async(t,n,r,a,o)=>{let s=i.T(t);await e.sock.sendMessage(s,{react:{text:r,key:{remoteJid:s,id:n,fromMe:a,participant:o?i.T(o):void 0}}})},sendComposingTo:async t=>{let n=i.T(t);await e.sock.sendPresenceUpdate(`composing`,n)}}}async function oe(t){let n=i.K({module:`web-inbound`}),o=i.O(`gateway/channels/whatsapp`).child(`inbound`),s=await p.t(!1,t.verbose,{authDir:t.authDir});await p.i(s);let c=Date.now(),u=null,d=new Promise(e=>{u=e}),f=e=>{if(!u)return;let t=u;u=null,t(e)};try{await s.sendPresenceUpdate(`available`),i.B()&&i.R(`Sent global 'available' presence on connect`)}catch(e){i.R(`Failed to send 'available' presence on connect: ${String(e)}`)}let m=s.user?.id,h=m?i.m(m):null,_=e.S({debounceMs:t.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:t.shouldDebounce,onFlush:async e=>{let n=e.at(-1);if(!n)return;if(e.length===1){await t.onMessage(n);return}let r=new Set;for(let t of e)for(let e of t.mentionedJids??[])r.add(e);let i=e.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await t.onMessage(a)},onError:e=>{n.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=>i.v(e,{authDir:t.authDir,lidLookup:b}),S=async e=>{let t=v.get(e);if(t&&t.expires>Date.now())return t;try{let t=await s.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:t.subject,participants:n,expires:Date.now()+y};return v.set(e,r),r}catch(t){return i.R(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+y}}},C=async e=>{let n=e.key?.id??void 0,r=e.key?.remoteJid;if(!r||r.endsWith(`@status`)||r.endsWith(`@broadcast`))return null;let i=(0,g.isJidGroup)(r)===!0;if(n&&E(`${t.accountId}:${r}:${n}`))return null;let a=e.key?.participant??void 0,o=i?r:await x(r);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(r);u=e.subject,d=e.participants}let f=e.messageTimestamp?Number(e.messageTimestamp)*1e3:void 0,p=await ie({accountId:t.accountId,from:o,selfE164:h,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:r});return p.allowed?{id:n,remoteJid:r,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},ee=async e=>{let{id:n,remoteJid:r,participantJid:a,access:o}=e;if(n&&!o.isSelfChat&&t.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:r,id:n,participant:a,fromMe:!1}]),i.B()&&i.R(`Marked message ${n} as read for ${r}${a?` (participant ${a})`:``}`)}catch(e){i.R(`Failed to mark message ${n} read: ${String(e)}`)}else n&&o.isSelfChat&&i.B()&&i.R(`Self-chat mode: skipping read receipt for ${n}`)},w=async e=>{let n=ne(e.message??void 0),o=n?a.J(n):void 0,c=I(e.message??void 0);if(o&&(c=[c,o].filter(Boolean).join(`
4
4
  `).trim()),!c&&(c=L(e.message??void 0),!c))return null;let l=W(e.message),u,d,f;try{let n=await ae(e,s);if(n){let e=(typeof t.mediaMaxMb==`number`&&t.mediaMaxMb>0?t.mediaMaxMb:50)*1024*1024;u=(await r.ci(n.buffer,n.mimetype,`inbound`,e,n.fileName)).path,d=n.mimetype,f=n.fileName}}catch(e){i.R(`Inbound media download failed: ${String(e)}`)}return{body:c,location:n??void 0,replyContext:l,mediaPath:u,mediaType:d,mediaFileName:f}},T=async(e,t,r)=>{let a=t.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,a)}catch(e){i.R(`Presence update failed: ${String(e)}`)}},l=async e=>{await s.sendMessage(a,{text:e})},u=async e=>{await s.sendMessage(a,e)},d=t.messageTimestampMs,f=F(e.message),p=e.pushName??void 0;n.info({from:t.from,to:h??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let g={id:t.id,from:t.from,conversationId:t.from,to:h??`me`,accountId:t.access.resolvedAccountId,body:r.body,pushName:p,timestamp:d,chatType:t.group?`group`:`direct`,chatId:t.remoteJid,senderJid:t.participantJid,senderE164:t.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:t.groupSubject,groupParticipants:t.groupParticipants,mentionedJids:f??void 0,selfJid:m,selfE164:h,fromMe:!!e.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(g)).catch(e=>{n.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){n.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},D=async e=>{if(!(e.type!==`notify`&&e.type!==`append`))for(let n of e.messages??[]){l.n({channel:`whatsapp`,accountId:t.accountId,direction:`inbound`});let r=await C(n);if(!r||(await ee(r),e.type===`append`))continue;let i=await w(n);i&&await T(n,r,i)}};s.ev.on(`messages.upsert`,D);let O=e=>{try{if(e.connection===`close`){let t=p.r(e.lastDisconnect?.error);f({status:t,isLoggedOut:t===g.DisconnectReason.loggedOut,error:e.lastDisconnect?.error})}}catch(e){n.error({error:String(e)},`connection.update handler error`),f({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,O),{close:async()=>{try{let e=s.ev,t=D,n=O;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(e){i.R(`Socket close failed: ${String(e)}`)}},onClose:d,signalClose:e=>{f(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Y({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:t.accountId})}}function X(t,n){return{mentionRegexes:e.D(t,n),allowFrom:t.channels?.whatsapp?.allowFrom}}function Z(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>i.m(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?i.m(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Q(t,n,r){let a=t=>e.O(t),o=i.p(r.selfE164,n.allowFrom);if((t.mentionedJids?.length??0)>0&&!o)return!!(r.selfE164&&r.normalizedMentions.includes(r.selfE164)||r.selfJid&&r.normalizedMentions.includes(r.selfJid));let s=a(t.body);if(n.mentionRegexes.some(e=>e.test(s)))return!0;if(r.selfE164){let e=r.selfE164.replace(/\D/g,``);if(e){if(s.replace(/[^\d]/g,``).includes(e))return!0;let n=t.body.replace(/[\s-]/g,``);if(RegExp(`\\+?${e}`,`i`).test(n))return!0}}return!1}function se(t,n,r){let i=Z(t,r);return{wasMentioned:Q(t,n,i),details:{from:t.from,body:t.body,bodyClean:e.O(t.body),mentionedJids:t.mentionedJids??null,normalizedMentionedJids:i.normalizedMentions.length?i.normalizedMentions:null,selfJid:t.selfJid??null,selfJidBare:i.selfJid,selfE164:t.selfE164??null,resolvedSelfE164:i.selfE164}}}function ce(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>i.h(e)).filter(e=>!!e)}function le(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 ue(t){let r=e.p({agentId:t.agentId,channel:`whatsapp`,accountId:t.route.accountId,peer:{kind:t.msg.chatType===`group`?`group`:`direct`,id:t.peerId},dmScope:t.cfg.session?.dmScope,identityLinks:t.cfg.session?.identityLinks}),i=n.Dt({agentId:t.agentId,mainKey:n.Et});return{sessionKey:r,mainSessionKey:i,lastRoutePolicy:e.m({sessionKey:r,mainSessionKey:i})}}async function de(e){let t=e.cfg.broadcast?.[e.peerId];if(!t||!Array.isArray(t)||t.length===0)return!1;let r=e.cfg.broadcast?.strategy||`parallel`;S.info(`Broadcasting message to ${t.length} agents (${r})`);let i=e.cfg.agents?.list?.map(e=>n.Mt(e.id)),a=(i?.length??0)>0,o=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,s=async t=>{let r=n.Mt(t);if(a&&!i?.includes(r))return S.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let s=ue({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:r}),c={...e.route,agentId:r,...s};try{return await e.processMessage(e.msg,c,e.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return S.error(`Broadcast agent ${t} failed: ${p.n(e)}`),!1}};if(r===`sequential`)for(let e of t)await s(e);else await Promise.allSettled(t.map(s));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function fe(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 pe(e,t){let n=r.Cr({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,i=e.channels?.whatsapp,a=!!(i?.groupAllowFrom?.length||i?.allowFrom?.length);return r._r({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:a})}function me(e,t){let n=r.Cr({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return r.vr({cfg:e,channel:`whatsapp`,groupId:n??t})}function he(t){let i=r.kt(n.s(t.cfg.session?.store,{agentId:t.agentId}))[t.sessionKey],a=me(t.cfg,t.conversationId)?`mention`:`always`;return e.i(i?.groupActivation)??a}function ge(e,t,n){for(let r of e){let e=i.h(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function _e(e,t,n,r){if(!n||!r)return;let a=i.h(n)??n;if(!a)return;let o=e.get(t);o||(o=new Map,e.set(t,o)),o.set(a,r)}function ve(e){let{participants:t,roster:n,fallbackE164:r}=e,a=new Set,o=[];if(t?.length&&ge(t,a,o),n&&ge(n.keys(),a,o),o.length===0&&r){let e=i.h(r)??r;e&&o.push(e)}if(o.length!==0)return o.map(e=>{let t=n?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function ye(e,t){let n=i.h(t.senderE164??``);return n?ce(e,t.selfE164??void 0).includes(n):!1}function be(t){let n=t.msg.senderName&&t.msg.senderE164?`${t.msg.senderName} (${t.msg.senderE164})`:t.msg.senderName??t.msg.senderE164??`Unknown`;e.f({historyMap:t.groupHistories,historyKey:t.groupHistoryKey,limit:t.groupHistoryLimit,entry:{sender:n,body:t.msg.body,timestamp:t.msg.timestamp,id:t.msg.id,senderJid:t.msg.senderJid}})}function xe(e,t){return e.logVerbose(t),be({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Se(t){let n=pe(t.cfg,t.conversationId);if(n.allowlistEnabled&&!n.allowed)return t.logVerbose(`Skipping group message ${t.conversationId} (not in allowlist)`),{shouldProcess:!1};_e(t.groupMemberNames,t.groupHistoryKey,t.msg.senderE164,t.msg.senderName);let r=X(t.cfg,t.agentId),a=fe(t.msg.body,r.mentionRegexes,t.msg.selfE164),o=e.a(a),s=ye(t.baseMentionConfig,t.msg),c=s&&e.T(a,t.cfg);if(o.hasCommand&&!s)return xe(t,`Ignoring /activation from non-owner in group ${t.conversationId}`);let l=se(t.msg,r,t.authDir);t.replyLogger.debug({conversationId:t.conversationId,wasMentioned:l.wasMentioned,...l.details},`group mention debug`);let u=l.wasMentioned,d=he({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:t.conversationId})!==`always`,f=t.msg.selfJid?.replace(/:\\d+/,``),p=t.msg.replyToSenderJid?.replace(/:\\d+/,``),m=t.msg.selfE164?i.h(t.msg.selfE164):null,h=t.msg.replyToSenderE164?i.h(t.msg.replyToSenderE164):null,g=e.Q({requireMention:d,canDetectMention:!0,wasMentioned:u,implicitMention:!!(f&&p&&f===p||m&&h&&m===h),shouldBypassMention:c});return t.msg.wasMentioned=g.effectiveWasMentioned,!c&&d&&g.shouldSkip?xe(t,`Group message stored for context (no mention detected) in ${t.conversationId}: ${t.msg.body}`):{shouldProcess:!0}}function Ce(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function we(e){let t=n.s(e.cfg.session?.store,{agentId:e.storeAgentId}),i=r.Nt({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:p.n(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Ce(e.backgroundTasks,i)}function Te(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?i.h(e.senderE164)??e.senderE164:e.from.includes(`@`)?i.m(e.from)??e.from:i.h(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function Ee(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 De(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Oe(e){let{replyResult:t,msg:n,maxMediaBytes:r,textLimit:a,replyLogger:o,connectionId:s,skipLog:l}=e,d=Date.now();if(De(t)){C.debug(`Suppressed reasoning payload to ${n.from}`);return}let m=e.tableMode??`code`,h=e.chunkMode??`length`,g=c.d(f.i(u.t(t.text||``,m)),a,h),_=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],v=async(e,t,r=3)=>{let a;for(let o=1;o<=r;o++)try{return await e()}catch(e){a=e;let s=p.n(e),c=o===r;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw e;let l=500*o;i.R(`Retrying ${t} to ${n.from} after failure (${o}/${r-1}) in ${l}ms: ${s}`),await i.C(l)}throw a};if(_.length===0&&g.length){let e=g.length;for(let[t,r]of g.entries()){let i=Date.now();if(await v(()=>n.reply(r),`text`),!l){let r=Date.now()-i;C.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}o.info({correlationId:n.id??b(),connectionId:s??null,to:n.from,from:n.to,text:$(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let y=[...g];for(let[t,a]of _.entries()){let l=t===0&&y.shift()||void 0;try{let t=await c.a(a,{maxBytes:r,localRoots:e.mediaLocalRoots});if(i.B()&&(i.R(`Web auto-reply media size: ${(t.buffer.length/(1024*1024)).toFixed(2)}MB`),i.R(`Web auto-reply media source: ${a} (kind ${t.kind})`)),t.kind===`image`)await v(()=>n.sendMedia({image:t.buffer,caption:l,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await v(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:l}),`media:audio`);else if(t.kind===`video`)await v(()=>n.sendMedia({video:t.buffer,caption:l,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??a.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await v(()=>n.sendMedia({document:t.buffer,fileName:e,caption:l,mimetype:r}),`media:document`)}C.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),o.info({correlationId:n.id??b(),connectionId:s??null,to:n.from,from:n.to,text:l??null,mediaUrl:a,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(C.error(`Failed sending web media to ${n.from}: ${p.n(e)}`),o.warn({err:e,mediaUrl:a},`failed to send web media reply`),t===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,r=[y.shift()??l??``,t].filter(Boolean).join(`
@@ -1,4 +1,4 @@
1
- require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`);require(`./target-errors-BjgLCOTm.cjs`);const r=require(`./dispatch-BYZNaz0n.cjs`),i=require(`./send-COtvydDt.cjs`),a=require(`./send-CIxh7PV0.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-Dbmn1rgD.cjs`),require(`./fetch-guard-EoAitPe9.cjs`),require(`./deliver-DcJWpoqf.cjs`),require(`./diagnostic-DYpehqHU.cjs`),require(`./pi-model-discovery-SmVAFMj_.cjs`);const o=require(`./audio-transcription-runner-CmYuWS0_.cjs`);require(`./image-jUYo-0eT.cjs`),require(`./api-key-rotation-CF9_CKS-.cjs`);const s=require(`./local-roots-DYlB1au6.cjs`);require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-BifdCfty.cjs`),require(`./fetch-CZewCAvu.cjs`);const c=require(`./ir-D4Dz-giw.cjs`);require(`./render-g5VlmgpF.cjs`);const l=require(`./channel-activity-mffNSQrX.cjs`),u=require(`./tables-DBSeZ07-.cjs`);require(`./send-IqcgAO8b.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-xJWQthd5.cjs`),require(`./outbound-attachment-D8Ng5uVX.cjs`),require(`./send-DOjSTB6D.cjs`);const d=require(`./active-listener-D578zEtk.cjs`);require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-0tvX3Z_N.cjs`);const f=require(`./outbound-C5rNt-8z.cjs`),p=require(`./session-BQLjsBwL.cjs`),m=require(`./login-TieaF0ts.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,n){let r=e.web?.reconnect??{},i=n??{},a={..._,...r,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=t.n(a.factor,1.1,10),a.jitter=t.n(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=t.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=r.B({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let n=N(e);if(!n)return null;let r=P(n),a=(0,g.normalizeMessageContent)(r?.quotedMessage);if(!a)return null;let o=ne(a),s=o?i.ct(o):void 0,c=[I(a),s].filter(Boolean).join(`
1
+ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`);require(`./target-errors-BjgLCOTm.cjs`);const r=require(`./dispatch-7BS7RM76.cjs`),i=require(`./send-COtvydDt.cjs`),a=require(`./send-CIxh7PV0.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-Dbmn1rgD.cjs`),require(`./fetch-guard-EoAitPe9.cjs`),require(`./deliver-DcJWpoqf.cjs`),require(`./diagnostic-DYpehqHU.cjs`),require(`./pi-model-discovery-SmVAFMj_.cjs`);const o=require(`./audio-transcription-runner-CmYuWS0_.cjs`);require(`./image-jUYo-0eT.cjs`),require(`./api-key-rotation-CF9_CKS-.cjs`);const s=require(`./local-roots-DYlB1au6.cjs`);require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-BifdCfty.cjs`),require(`./fetch-CZewCAvu.cjs`);const c=require(`./ir-D4Dz-giw.cjs`);require(`./render-g5VlmgpF.cjs`);const l=require(`./channel-activity-mffNSQrX.cjs`),u=require(`./tables-DBSeZ07-.cjs`);require(`./send-IqcgAO8b.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-xJWQthd5.cjs`),require(`./outbound-attachment-D8Ng5uVX.cjs`),require(`./send-DOjSTB6D.cjs`);const d=require(`./active-listener-D578zEtk.cjs`);require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-0tvX3Z_N.cjs`);const f=require(`./outbound-C5rNt-8z.cjs`),p=require(`./session-BQLjsBwL.cjs`),m=require(`./login-TieaF0ts.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,n){let r=e.web?.reconnect??{},i=n??{},a={..._,...r,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=t.n(a.factor,1.1,10),a.jitter=t.n(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=t.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=r.B({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let n=N(e);if(!n)return null;let r=P(n),a=(0,g.normalizeMessageContent)(r?.quotedMessage);if(!a)return null;let o=ne(a),s=o?i.ct(o):void 0,c=[I(a),s].filter(Boolean).join(`
2
2
  `).trim();if(c||=L(a),!c){let e=a?(0,g.getContentType)(a):void 0;return t.R(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let l=r?.participant??void 0,u=l?t.u(l)??l:void 0,d=u??`unknown sender`;return{id:r?.stanzaId?String(r.stanzaId):void 0,body:c,sender:d,senderJid:l,senderE164:u}}function re(e){return a.Nt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function ie(e){let o=n.Gi(),s=n.zs({cfg:o,accountId:e.accountId}),c=s.dmPolicy??`pairing`,l=s.allowFrom??[],u=await r.U({provider:`whatsapp`,accountId:s.accountId,dmPolicy:c}),d=l.length===0&&e.selfE164?[e.selfE164]:[],f=l.length>0?l:d,p=s.groupAllowFrom??(l.length>0?l:void 0),m=e.from===e.selfE164,h=s.selfChatMode??t.l(e.selfE164,l),g=typeof e.pairingGraceMs==`number`&&e.pairingGraceMs>0?e.pairingGraceMs:3e4,_=typeof e.connectedAtMs==`number`&&typeof e.messageTimestampMs==`number`&&e.messageTimestampMs<e.connectedAtMs-g,v=a.Mt(o),{groupPolicy:y,providerMissingFallbackApplied:b}=re({providerConfigPresent:o.channels?.whatsapp!==void 0,groupPolicy:s.groupPolicy,defaultGroupPolicy:v});a.Pt({providerMissingFallbackApplied:b,providerKey:`whatsapp`,accountId:s.accountId,log:e=>t.R(e)});let x=t.d(e.from),S=typeof e.senderE164==`string`?t.d(e.senderE164):null,C=r.G({isGroup:e.group,dmPolicy:c,groupPolicy:y,allowFrom:e.group?l:f,groupAllowFrom:p,storeAllowFrom:u,isSenderAllowed:n=>{if(n.includes(`*`))return!0;let r=new Set(n.map(e=>t.d(String(e))).filter(e=>!!e));return!e.group&&m?!0:e.group?!!(S&&r.has(S)):r.has(x)}});if(e.group&&C.decision!==`allow`)return C.reason===`groupPolicy=disabled`?t.R(`Blocked group message (groupPolicy: disabled)`):C.reason===`groupPolicy=allowlist (empty allowlist)`?t.R(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):t.R(`Blocked group message from ${e.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(!e.group){if(e.isFromMe&&!m)return t.R(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`block`&&C.reason===`dmPolicy=disabled`)return t.R(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`pairing`&&!m){let n=e.from;return _?t.R(`Skipping pairing reply for historical DM from ${n}.`):await r.q({channel:`whatsapp`,senderId:n,senderIdLine:`Your WhatsApp phone number: ${n}`,meta:{name:(e.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await i.$({channel:`whatsapp`,id:e,accountId:s.accountId,meta:t}),onCreated:()=>{t.R(`whatsapp pairing request sender=${n} name=${e.pushName??`unknown`}`)},sendPairingReply:async t=>{await e.sock.sendMessage(e.remoteJid,{text:t})},onReplyError:e=>{t.R(`whatsapp pairing reply failed for ${n}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}if(C.decision!==`allow`)return t.R(`Blocked unauthorized sender ${e.from} (dmPolicy=${c})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:h,resolvedAccountId:s.accountId}}function G(e){return(0,g.normalizeMessageContent)(e)}function K(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 ae(e,n){let r=G(e.message);if(!r)return;let i=K(r),a=r.documentMessage?.fileName??void 0;if(!(!r.imageMessage&&!r.videoMessage&&!r.documentMessage&&!r.audioMessage&&!r.stickerMessage))try{return{buffer:await(0,g.downloadMediaMessage)(e,`buffer`,{},{reuploadRequest:n.updateMediaMessage,logger:n.logger}),mimetype:i,fileName:a}}catch(e){t.R(`downloadMediaMessage failed: ${String(e)}`);return}}function q(e){l.n({channel:`whatsapp`,accountId:e,direction:`outbound`})}function J(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function Y(e){return{sendMessage:async(n,r,i,a,o)=>{let s=t.x(n),c;if(i&&a)if(a.startsWith(`image/`))c={image:i,caption:r||void 0,mimetype:a};else if(a.startsWith(`audio/`))c={audio:i,ptt:!0,mimetype:a};else if(a.startsWith(`video/`)){let e=o?.gifPlayback;c={video:i,caption:r||void 0,mimetype:a,...e?{gifPlayback:!0}:{}}}else c={document:i,fileName:o?.fileName?.trim()||`file`,caption:r||void 0,mimetype:a};else c={text:r};let l=await e.sock.sendMessage(s,c);return q(o?.accountId??e.defaultAccountId),{messageId:J(l)}},sendPoll:async(n,r)=>{let i=t.x(n),a=await e.sock.sendMessage(i,{poll:{name:r.question,values:r.options,selectableCount:r.maxSelections??1}});return q(e.defaultAccountId),{messageId:J(a)}},sendReaction:async(n,r,i,a,o)=>{let s=t.x(n);await e.sock.sendMessage(s,{react:{text:i,key:{remoteJid:s,id:r,fromMe:a,participant:o?t.x(o):void 0}}})},sendComposingTo:async n=>{let r=t.x(n);await e.sock.sendPresenceUpdate(`composing`,r)}}}async function oe(e){let a=t.K({module:`web-inbound`}),o=t.O(`gateway/channels/whatsapp`).child(`inbound`),s=await p.t(!1,e.verbose,{authDir:e.authDir});await p.i(s);let c=Date.now(),u=null,d=new Promise(e=>{u=e}),f=e=>{if(!u)return;let t=u;u=null,t(e)};try{await s.sendPresenceUpdate(`available`),t.B()&&t.R(`Sent global 'available' presence on connect`)}catch(e){t.R(`Failed to send 'available' presence on connect: ${String(e)}`)}let m=s.user?.id,h=m?t.u(m):null,_=r.T({debounceMs:e.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:e.shouldDebounce,onFlush:async t=>{let n=t.at(-1);if(!n)return;if(t.length===1){await e.onMessage(n);return}let r=new Set;for(let e of t)for(let t of e.mentionedJids??[])r.add(t);let i=t.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await e.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 n=>t.m(n,{authDir:e.authDir,lidLookup:b}),S=async e=>{let n=v.get(e);if(n&&n.expires>Date.now())return n;try{let t=await s.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:t.subject,participants:n,expires:Date.now()+y};return v.set(e,r),r}catch(n){return t.R(`Failed to fetch group metadata for ${e}: ${String(n)}`),{expires:Date.now()+y}}},C=async t=>{let n=t.key?.id??void 0,r=t.key?.remoteJid;if(!r||r.endsWith(`@status`)||r.endsWith(`@broadcast`))return null;let i=(0,g.isJidGroup)(r)===!0;if(n&&E(`${e.accountId}:${r}:${n}`))return null;let a=t.key?.participant??void 0,o=i?r:await x(r);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(r);u=e.subject,d=e.participants}let f=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,p=await ie({accountId:e.accountId,from:o,selfE164:h,senderE164:l,group:i,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:f,connectedAtMs:c,sock:{sendMessage:(e,t)=>s.sendMessage(e,t)},remoteJid:r});return p.allowed?{id:n,remoteJid:r,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},ee=async n=>{let{id:r,remoteJid:i,participantJid:a,access:o}=n;if(r&&!o.isSelfChat&&e.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:i,id:r,participant:a,fromMe:!1}]),t.B()&&t.R(`Marked message ${r} as read for ${i}${a?` (participant ${a})`:``}`)}catch(e){t.R(`Failed to mark message ${r} read: ${String(e)}`)}else r&&o.isSelfChat&&t.B()&&t.R(`Self-chat mode: skipping read receipt for ${r}`)},w=async r=>{let a=ne(r.message??void 0),o=a?i.ct(a):void 0,c=I(r.message??void 0);if(o&&(c=[c,o].filter(Boolean).join(`
4
4
  `).trim()),!c&&(c=L(r.message??void 0),!c))return null;let l=W(r.message),u,d,f;try{let t=await ae(r,s);if(t){let r=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;u=(await n.kr(t.buffer,t.mimetype,`inbound`,r,t.fileName)).path,d=t.mimetype,f=t.fileName}}catch(e){t.R(`Inbound media download failed: ${String(e)}`)}return{body:c,location:a??void 0,replyContext:l,mediaPath:u,mediaType:d,mediaFileName:f}},T=async(e,n,r)=>{let i=n.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,i)}catch(e){t.R(`Presence update failed: ${String(e)}`)}},l=async e=>{await s.sendMessage(i,{text:e})},u=async e=>{await s.sendMessage(i,e)},d=n.messageTimestampMs,f=F(e.message),p=e.pushName??void 0;a.info({from:n.from,to:h??`me`,body:r.body,mediaPath:r.mediaPath,mediaType:r.mediaType,mediaFileName:r.mediaFileName,timestamp:d},`inbound message`);let g={id:n.id,from:n.from,conversationId:n.from,to:h??`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:m,selfE164:h,fromMe:!!e.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(g)).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)}`)}},D=async t=>{if(!(t.type!==`notify`&&t.type!==`append`))for(let n of t.messages??[]){l.n({channel:`whatsapp`,accountId:e.accountId,direction:`inbound`});let r=await C(n);if(!r||(await ee(r),t.type===`append`))continue;let i=await w(n);i&&await T(n,r,i)}};s.ev.on(`messages.upsert`,D);let O=e=>{try{if(e.connection===`close`){let t=p.r(e.lastDisconnect?.error);f({status:t,isLoggedOut:t===g.DisconnectReason.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`,O),{close:async()=>{try{let e=s.ev,t=D,n=O;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(e){t.R(`Socket close failed: ${String(e)}`)}},onClose:d,signalClose:e=>{f(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Y({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function X(e,t){return{mentionRegexes:r.A(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Z(e,n){let r=n?{authDir:n}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>t.u(e,r)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?t.u(e.selfJid,r):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Q(e,n,i){let a=e=>r.j(e),o=t.l(i.selfE164,n.allowFrom);if((e.mentionedJids?.length??0)>0&&!o)return!!(i.selfE164&&i.normalizedMentions.includes(i.selfE164)||i.selfJid&&i.normalizedMentions.includes(i.selfJid));let s=a(e.body);if(n.mentionRegexes.some(e=>e.test(s)))return!0;if(i.selfE164){let t=i.selfE164.replace(/\D/g,``);if(t){if(s.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 se(e,t,n){let i=Z(e,n);return{wasMentioned:Q(e,t,i),details:{from:e.from,body:e.body,bodyClean:r.j(e.body),mentionedJids:e.mentionedJids??null,normalizedMentionedJids:i.normalizedMentions.length?i.normalizedMentions:null,selfJid:e.selfJid??null,selfJidBare:i.selfJid,selfE164:e.selfE164??null,resolvedSelfE164:i.selfE164}}}function ce(e,n){let r=e.allowFrom;return(Array.isArray(r)&&r.length>0?r:n?[n]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>t.d(e)).filter(e=>!!e)}function le(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 ue(t){let n=r.g({agentId:t.agentId,channel:`whatsapp`,accountId:t.route.accountId,peer:{kind:t.msg.chatType===`group`?`group`:`direct`,id:t.peerId},dmScope:t.cfg.session?.dmScope,identityLinks:t.cfg.session?.identityLinks}),i=e.gt({agentId:t.agentId,mainKey:e.ht});return{sessionKey:n,mainSessionKey:i,lastRoutePolicy:r._({sessionKey:n,mainSessionKey:i})}}async function de(t){let n=t.cfg.broadcast?.[t.peerId];if(!n||!Array.isArray(n)||n.length===0)return!1;let r=t.cfg.broadcast?.strategy||`parallel`;S.info(`Broadcasting message to ${n.length} agents (${r})`);let i=t.cfg.agents?.list?.map(t=>e.xt(t.id)),a=(i?.length??0)>0,o=t.msg.chatType===`group`?t.groupHistories.get(t.groupHistoryKey)??[]:void 0,s=async n=>{let r=e.xt(n);if(a&&!i?.includes(r))return S.warn(`Broadcast agent ${n} not found in agents.list; skipping`),!1;let s=ue({cfg:t.cfg,msg:t.msg,route:t.route,peerId:t.peerId,agentId:r}),c={...t.route,agentId:r,...s};try{return await t.processMessage(t.msg,c,t.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return S.error(`Broadcast agent ${n} failed: ${p.n(e)}`),!1}};if(r===`sequential`)for(let e of n)await s(e);else await Promise.allSettled(n.map(s));return t.msg.chatType===`group`&&t.groupHistories.set(t.groupHistoryKey,[]),!0}function fe(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 pe(e,t){let r=n.Yn({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,i=e.channels?.whatsapp,a=!!(i?.groupAllowFrom?.length||i?.allowFrom?.length);return n.Wn({cfg:e,channel:`whatsapp`,groupId:r??t,hasGroupAllowFrom:a})}function me(e,t){let r=n.Yn({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return n.Gn({cfg:e,channel:`whatsapp`,groupId:r??t})}function he(t){let i=n.wt(e.s(t.cfg.session?.store,{agentId:t.agentId}))[t.sessionKey],a=me(t.cfg,t.conversationId)?`mention`:`always`;return r.o(i?.groupActivation)??a}function ge(e,n,r){for(let i of e){let e=t.d(i)??i;!e||n.has(e)||(n.add(e),r.push(e))}}function _e(e,n,r,i){if(!r||!i)return;let a=t.d(r)??r;if(!a)return;let o=e.get(n);o||(o=new Map,e.set(n,o)),o.set(a,i)}function ve(e){let{participants:n,roster:r,fallbackE164:i}=e,a=new Set,o=[];if(n?.length&&ge(n,a,o),r&&ge(r.keys(),a,o),o.length===0&&i){let e=t.d(i)??i;e&&o.push(e)}if(o.length!==0)return o.map(e=>{let t=r?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function ye(e,n){let r=t.d(n.senderE164??``);return r?ce(e,n.selfE164??void 0).includes(r):!1}function be(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;r.h({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 xe(e,t){return e.logVerbose(t),be({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Se(e){let n=pe(e.cfg,e.conversationId);if(n.allowlistEnabled&&!n.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};_e(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let i=X(e.cfg,e.agentId),a=fe(e.msg.body,i.mentionRegexes,e.msg.selfE164),o=r.s(a),s=ye(e.baseMentionConfig,e.msg),c=s&&r.O(a,e.cfg);if(o.hasCommand&&!s)return xe(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let l=se(e.msg,i,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:l.wasMentioned,...l.details},`group mention debug`);let u=l.wasMentioned,d=he({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,f=e.msg.selfJid?.replace(/:\\d+/,``),p=e.msg.replyToSenderJid?.replace(/:\\d+/,``),m=e.msg.selfE164?t.d(e.msg.selfE164):null,h=e.msg.replyToSenderE164?t.d(e.msg.replyToSenderE164):null,g=r.p({requireMention:d,canDetectMention:!0,wasMentioned:u,implicitMention:!!(f&&p&&f===p||m&&h&&m===h),shouldBypassMention:c});return e.msg.wasMentioned=g.effectiveWasMentioned,!c&&d&&g.shouldSkip?xe(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Ce(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function we(t){let r=e.s(t.cfg.session?.store,{agentId:t.storeAgentId}),i=n.Ot({storePath:r,sessionKey:t.sessionKey,deliveryContext:{channel:t.channel,to:t.to,accountId:t.accountId},ctx:t.ctx}).catch(e=>{t.warn({error:p.n(e),storePath:r,sessionKey:t.sessionKey,to:t.to},`failed updating last route`)});Ce(t.backgroundTasks,i)}function Te(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?t.d(e.senderE164)??e.senderE164:e.from.includes(`@`)?t.u(e.from)??e.from:t.d(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function Ee(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 De(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Oe(e){let{replyResult:n,msg:r,maxMediaBytes:i,textLimit:a,replyLogger:o,connectionId:s,skipLog:l}=e,d=Date.now();if(De(n)){C.debug(`Suppressed reasoning payload to ${r.from}`);return}let m=e.tableMode??`code`,h=e.chunkMode??`length`,g=c.d(f.i(u.t(n.text||``,m)),a,h),_=n.mediaUrls?.length?n.mediaUrls:n.mediaUrl?[n.mediaUrl]:[],v=async(e,n,i=3)=>{let a;for(let o=1;o<=i;o++)try{return await e()}catch(e){a=e;let s=p.n(e),c=o===i;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw e;let l=500*o;t.R(`Retrying ${n} to ${r.from} after failure (${o}/${i-1}) in ${l}ms: ${s}`),await t.y(l)}throw a};if(_.length===0&&g.length){let e=g.length;for(let[t,n]of g.entries()){let i=Date.now();if(await v(()=>r.reply(n),`text`),!l){let n=Date.now()-i;C.debug(`Sent chunk ${t+1}/${e} to ${r.from} (${n.toFixed(0)}ms)`)}}o.info({correlationId:r.id??b(),connectionId:s??null,to:r.from,from:r.to,text:$(n.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let y=[...g];for(let[n,a]of _.entries()){let l=n===0&&y.shift()||void 0;try{let n=await c.a(a,{maxBytes:i,localRoots:e.mediaLocalRoots});if(t.B()&&(t.R(`Web auto-reply media size: ${(n.buffer.length/(1024*1024)).toFixed(2)}MB`),t.R(`Web auto-reply media source: ${a} (kind ${n.kind})`)),n.kind===`image`)await v(()=>r.sendMedia({image:n.buffer,caption:l,mimetype:n.contentType}),`media:image`);else if(n.kind===`audio`)await v(()=>r.sendMedia({audio:n.buffer,ptt:!0,mimetype:n.contentType,caption:l}),`media:audio`);else if(n.kind===`video`)await v(()=>r.sendMedia({video:n.buffer,caption:l,mimetype:n.contentType}),`media:video`);else{let e=n.fileName??a.split(`/`).pop()??`file`,t=n.contentType??`application/octet-stream`;await v(()=>r.sendMedia({document:n.buffer,fileName:e,caption:l,mimetype:t}),`media:document`)}C.info(`Sent media reply to ${r.from} (${(n.buffer.length/(1024*1024)).toFixed(2)}MB)`),o.info({correlationId:r.id??b(),connectionId:s??null,to:r.from,from:r.to,text:l??null,mediaUrl:a,mediaSizeBytes:n.buffer.length,mediaKind:n.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(C.error(`Failed sending web media to ${r.from}: ${p.n(e)}`),o.warn({err:e,mediaUrl:a},`failed to send web media reply`),n===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,n=[y.shift()??l??``,t].filter(Boolean).join(`
@@ -1,4 +1,4 @@
1
- import{Ct as e,Et as t,kt as n,s as r,wt as i}from"./paths-piJASC5k.js";import"./paths-BpQOWYiT.js";import{B as a,C as o,K as s,M as c,O as l,R as u,T as d,h as f,m as p,o as m,p as h,v as g}from"./logger-DwWqfo66.js";import{As as _,At as v,Bs as y,Ds as b,Is as x,Mt as S,Os as C,Ot as w,Ps as T,Ws as E,hn as D,js as ee,ks as te,oc as O,sc as k,tr as ne,xi as A}from"./model-auth-eNVBeC-B.js";import"./proxy-env-DGzNnnJh.js";import"./send-CmoJSYhT.js";import{Ft as j,Nt as M,Pt as N}from"./send-DavwL7cF.js";import{B as P,C as F,D as I,E as re,I as ie,J as L,L as ae,T as R,U as z,V as B,Y as oe,Z as V,_ as H,b as U,ct as W,d as se,f as G,g as ce,h as K,it as le,l as ue,lt as de,m as fe,o as pe,p as me,q as he,r as ge,s as _e,st as ve,u as ye,v as be,w as xe,x as Se,y as Ce,z as we}from"./dispatch-6m3206FH.js";import"./tokens-BPc1fcZ3.js";import"./deliver-cT-Q8v0h.js";import"./github-copilot-token-Bt4PduRB.js";import"./fetch-guard-DELiFG5g.js";import{J as Te,Y as Ee,tt as De}from"./send--HeMLLzj.js";import{t as Oe}from"./local-roots-CW78ZeZV.js";import{_ as ke,c as Ae,d as je,f as Me,i as Ne}from"./ir-BzZArF6l.js";import"./diagnostic-BvR96WdC.js";import"./pi-model-discovery-CRSZ0OFi.js";import{f as Pe}from"./audio-transcription-runner-kAVM4YFR.js";import"./image-DUHEJeBF.js";import"./api-key-rotation-7qlqJ_ou.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-DqemUyiv.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors-BAHAHc8f.js";import{n as Fe}from"./channel-activity-Cia2G3v5.js";import{t as Ie}from"./tables-D_J655yN.js";import"./send-CIP1u5a-.js";import"./fetch-B27H-XCf.js";import"./skill-commands-CGOPOT-r.js";import"./outbound-attachment-B6SJy_CG.js";import"./send-OQcuL9tP.js";import{r as Le}from"./active-listener-DNO10F1L.js";import"./query-expansion-r_iXkNzt.js";import"./manager-B6hWglXe.js";import{i as Re,r as ze,t as Be}from"./outbound-UAHsCNyW.js";import{i as Ve,n as q,r as He,t as Ue}from"./session-B1DJ45om.js";import{t as We}from"./login-fKxJv0_F.js";import{randomUUID as Ge}from"node:crypto";import{DisconnectReason as Ke,downloadMediaMessage as qe,extractMessageContent as Je,getContentType as Ye,isJidGroup as Xe,normalizeMessageContent as Ze}from"@whiskeysockets/baileys";const Qe={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function $e(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function et(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Qe,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=m(i.factor,1.1,10),i.jitter=m(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return Ge()}const Y=l(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),tt=Y.child(`heartbeat`);function nt(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const rt=ie({ttlMs:20*6e4,maxSize:5e3});function it(e){return rt.check(e)}const at=new Set([`FN`,`N`,`TEL`]);function ot(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=st(o);if(!c||!at.has(c))continue;let l=ct(s);if(l){if(c===`FN`&&!r){r=lt(l);continue}if(c===`N`&&!n){n=lt(l);continue}if(c===`TEL`){let e=ut(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function st(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function ct(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function lt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function ut(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return Ze(e)}function dt(e){if(!e)return;let t=Ye(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 ft(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 pt(e){let t=Q(e);if(!t)return;let n=Je(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=ht(t)??(n&&n!==t?ht(n):void 0);if(i)return i}function mt(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 ht(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=gt({displayName:n.displayName,vcard:n.vcard});return _t(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return vt(r.map(e=>gt({displayName:e.displayName,vcard:e.vcard})).map(e=>yt(e.name,e.phones)).filter(e=>!!e),r.length)}function gt(e){let t=(e.displayName??``).trim(),n=ot(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function _t(e,t){let n=yt(e,t);return n?`<contact: ${n}>`:`<contact>`}function vt(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 yt(e,t){let n=[e,bt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function bt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=xt(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function xt(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function St(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 Ct(e){let t=Q(e);if(!t)return null;let n=dt(t),r=Ze(n?.quotedMessage);if(!r)return null;let i=St(r),a=i?Te(i):void 0,o=[pt(r),a].filter(Boolean).join(`
1
+ import{Ct as e,Et as t,kt as n,s as r,wt as i}from"./paths-piJASC5k.js";import"./paths-BpQOWYiT.js";import{B as a,C as o,K as s,M as c,O as l,R as u,T as d,h as f,m as p,o as m,p as h,v as g}from"./logger-DwWqfo66.js";import{As as _,At as v,Bs as y,Ds as b,Is as x,Mt as S,Os as C,Ot as w,Ps as T,Ws as E,hn as D,js as ee,ks as te,oc as O,sc as k,tr as ne,xi as A}from"./model-auth-eNVBeC-B.js";import"./proxy-env-DGzNnnJh.js";import"./send-CmoJSYhT.js";import{Ft as j,Nt as M,Pt as N}from"./send-DavwL7cF.js";import{B as P,C as F,D as I,E as re,I as ie,J as L,L as ae,T as R,U as z,V as B,Y as oe,Z as V,_ as H,b as U,ct as W,d as se,f as G,g as ce,h as K,it as le,l as ue,lt as de,m as fe,o as pe,p as me,q as he,r as ge,s as _e,st as ve,u as ye,v as be,w as xe,x as Se,y as Ce,z as we}from"./dispatch-evtvC4CX.js";import"./tokens-BPc1fcZ3.js";import"./deliver-cT-Q8v0h.js";import"./github-copilot-token-Bt4PduRB.js";import"./fetch-guard-DELiFG5g.js";import{J as Te,Y as Ee,tt as De}from"./send--HeMLLzj.js";import{t as Oe}from"./local-roots-CW78ZeZV.js";import{_ as ke,c as Ae,d as je,f as Me,i as Ne}from"./ir-BzZArF6l.js";import"./diagnostic-BvR96WdC.js";import"./pi-model-discovery-CRSZ0OFi.js";import{f as Pe}from"./audio-transcription-runner-kAVM4YFR.js";import"./image-DUHEJeBF.js";import"./api-key-rotation-7qlqJ_ou.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-DqemUyiv.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors-BAHAHc8f.js";import{n as Fe}from"./channel-activity-Cia2G3v5.js";import{t as Ie}from"./tables-D_J655yN.js";import"./send-CIP1u5a-.js";import"./fetch-B27H-XCf.js";import"./skill-commands-CGOPOT-r.js";import"./outbound-attachment-B6SJy_CG.js";import"./send-OQcuL9tP.js";import{r as Le}from"./active-listener-DNO10F1L.js";import"./query-expansion-r_iXkNzt.js";import"./manager-B6hWglXe.js";import{i as Re,r as ze,t as Be}from"./outbound-UAHsCNyW.js";import{i as Ve,n as q,r as He,t as Ue}from"./session-B1DJ45om.js";import{t as We}from"./login-fKxJv0_F.js";import{randomUUID as Ge}from"node:crypto";import{DisconnectReason as Ke,downloadMediaMessage as qe,extractMessageContent as Je,getContentType as Ye,isJidGroup as Xe,normalizeMessageContent as Ze}from"@whiskeysockets/baileys";const Qe={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function $e(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function et(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Qe,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=m(i.factor,1.1,10),i.jitter=m(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return Ge()}const Y=l(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),tt=Y.child(`heartbeat`);function nt(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const rt=ie({ttlMs:20*6e4,maxSize:5e3});function it(e){return rt.check(e)}const at=new Set([`FN`,`N`,`TEL`]);function ot(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=st(o);if(!c||!at.has(c))continue;let l=ct(s);if(l){if(c===`FN`&&!r){r=lt(l);continue}if(c===`N`&&!n){n=lt(l);continue}if(c===`TEL`){let e=ut(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function st(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function ct(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function lt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function ut(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return Ze(e)}function dt(e){if(!e)return;let t=Ye(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 ft(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 pt(e){let t=Q(e);if(!t)return;let n=Je(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=ht(t)??(n&&n!==t?ht(n):void 0);if(i)return i}function mt(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 ht(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=gt({displayName:n.displayName,vcard:n.vcard});return _t(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return vt(r.map(e=>gt({displayName:e.displayName,vcard:e.vcard})).map(e=>yt(e.name,e.phones)).filter(e=>!!e),r.length)}function gt(e){let t=(e.displayName??``).trim(),n=ot(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function _t(e,t){let n=yt(e,t);return n?`<contact: ${n}>`:`<contact>`}function vt(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 yt(e,t){let n=[e,bt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function bt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=xt(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function xt(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function St(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 Ct(e){let t=Q(e);if(!t)return null;let n=dt(t),r=Ze(n?.quotedMessage);if(!r)return null;let i=St(r),a=i?Te(i):void 0,o=[pt(r),a].filter(Boolean).join(`
2
2
  `).trim();if(o||=mt(r),!o){let e=r?Ye(r):void 0;return u(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let s=n?.participant??void 0,c=s?p(s)??s:void 0,l=c??`unknown sender`;return{id:n?.stanzaId?String(n.stanzaId):void 0,body:o,sender:l,senderJid:s,senderE164:c}}function wt(e){return N({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function Tt(e){let t=A(),n=b({cfg:t,accountId:e.accountId}),r=n.dmPolicy??`pairing`,i=n.allowFrom??[],a=await we({provider:`whatsapp`,accountId:n.accountId,dmPolicy:r}),o=i.length===0&&e.selfE164?[e.selfE164]:[],s=i.length>0?i:o,c=n.groupAllowFrom??(i.length>0?i:void 0),l=e.from===e.selfE164,d=n.selfChatMode??h(e.selfE164,i),p=typeof e.pairingGraceMs==`number`&&e.pairingGraceMs>0?e.pairingGraceMs:3e4,m=typeof e.connectedAtMs==`number`&&typeof e.messageTimestampMs==`number`&&e.messageTimestampMs<e.connectedAtMs-p,g=M(t),{groupPolicy:_,providerMissingFallbackApplied:v}=wt({providerConfigPresent:t.channels?.whatsapp!==void 0,groupPolicy:n.groupPolicy,defaultGroupPolicy:g});j({providerMissingFallbackApplied:v,providerKey:`whatsapp`,accountId:n.accountId,log:e=>u(e)});let y=f(e.from),x=typeof e.senderE164==`string`?f(e.senderE164):null,S=B({isGroup:e.group,dmPolicy:r,groupPolicy:_,allowFrom:e.group?i:s,groupAllowFrom:c,storeAllowFrom:a,isSenderAllowed:t=>{if(t.includes(`*`))return!0;let n=new Set(t.map(e=>f(String(e))).filter(e=>!!e));return!e.group&&l?!0:e.group?!!(x&&n.has(x)):n.has(y)}});if(e.group&&S.decision!==`allow`)return S.reason===`groupPolicy=disabled`?u(`Blocked group message (groupPolicy: disabled)`):S.reason===`groupPolicy=allowlist (empty allowlist)`?u(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):u(`Blocked group message from ${e.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:d,resolvedAccountId:n.accountId};if(!e.group){if(e.isFromMe&&!l)return u(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:d,resolvedAccountId:n.accountId};if(S.decision===`block`&&S.reason===`dmPolicy=disabled`)return u(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:d,resolvedAccountId:n.accountId};if(S.decision===`pairing`&&!l){let t=e.from;return m?u(`Skipping pairing reply for historical DM from ${t}.`):await me({channel:`whatsapp`,senderId:t,senderIdLine:`Your WhatsApp phone number: ${t}`,meta:{name:(e.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await De({channel:`whatsapp`,id:e,accountId:n.accountId,meta:t}),onCreated:()=>{u(`whatsapp pairing request sender=${t} name=${e.pushName??`unknown`}`)},sendPairingReply:async t=>{await e.sock.sendMessage(e.remoteJid,{text:t})},onReplyError:e=>{u(`whatsapp pairing reply failed for ${t}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:d,resolvedAccountId:n.accountId}}if(S.decision!==`allow`)return u(`Blocked unauthorized sender ${e.from} (dmPolicy=${r})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:d,resolvedAccountId:n.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:d,resolvedAccountId:n.accountId}}function Et(e){return Ze(e)}function Dt(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 Ot(e,t){let n=Et(e.message);if(!n)return;let r=Dt(n),i=n.documentMessage?.fileName??void 0;if(!(!n.imageMessage&&!n.videoMessage&&!n.documentMessage&&!n.audioMessage&&!n.stickerMessage))try{return{buffer:await qe(e,`buffer`,{},{reuploadRequest:t.updateMediaMessage,logger:t.logger}),mimetype:r,fileName:i}}catch(e){u(`downloadMediaMessage failed: ${String(e)}`);return}}function kt(e){Fe({channel:`whatsapp`,accountId:e,direction:`outbound`})}function At(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function jt(e){return{sendMessage:async(t,n,r,i,a)=>{let o=d(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 kt(a?.accountId??e.defaultAccountId),{messageId:At(c)}},sendPoll:async(t,n)=>{let r=d(t),i=await e.sock.sendMessage(r,{poll:{name:n.question,values:n.options,selectableCount:n.maxSelections??1}});return kt(e.defaultAccountId),{messageId:At(i)}},sendReaction:async(t,n,r,i,a)=>{let o=d(t);await e.sock.sendMessage(o,{react:{text:r,key:{remoteJid:o,id:n,fromMe:i,participant:a?d(a):void 0}}})},sendComposingTo:async t=>{let n=d(t);await e.sock.sendPresenceUpdate(`composing`,n)}}}async function Mt(e){let t=s({module:`web-inbound`}),n=l(`gateway/channels/whatsapp`).child(`inbound`),r=await Ue(!1,e.verbose,{authDir:e.authDir});await Ve(r);let i=Date.now(),o=null,c=new Promise(e=>{o=e}),d=e=>{if(!o)return;let t=o;o=null,t(e)};try{await r.sendPresenceUpdate(`available`),a()&&u(`Sent global 'available' presence on connect`)}catch(e){u(`Failed to send 'available' presence on connect: ${String(e)}`)}let f=r.user?.id,m=f?p(f):null,h=F({debounceMs:e.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:e.shouldDebounce,onFlush:async t=>{let n=t.at(-1);if(!n)return;if(t.length===1){await e.onMessage(n);return}let r=new Set;for(let e of t)for(let t of e.mentionedJids??[])r.add(t);let i=t.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await e.onMessage(a)},onError:e=>{t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)}}),_=new Map,v=300*1e3,y=r.signalRepository?.lidMapping,b=async t=>g(t,{authDir:e.authDir,lidLookup:y}),x=async e=>{let t=_.get(e);if(t&&t.expires>Date.now())return t;try{let t=await r.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await b(e.id)??e.id)??[])).filter(Boolean)??[],i={subject:t.subject,participants:n,expires:Date.now()+v};return _.set(e,i),i}catch(t){return u(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+v}}},S=async t=>{let n=t.key?.id??void 0,a=t.key?.remoteJid;if(!a||a.endsWith(`@status`)||a.endsWith(`@broadcast`))return null;let o=Xe(a)===!0;if(n&&it(`${e.accountId}:${a}:${n}`))return null;let s=t.key?.participant??void 0,c=o?a:await b(a);if(!c)return null;let l=o?s?await b(s):null:c,u,d;if(o){let e=await x(a);u=e.subject,d=e.participants}let f=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,p=await Tt({accountId:e.accountId,from:c,selfE164:m,senderE164:l,group:o,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:f,connectedAtMs:i,sock:{sendMessage:(e,t)=>r.sendMessage(e,t)},remoteJid:a});return p.allowed?{id:n,remoteJid:a,group:o,participantJid:s,from:c,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},C=async t=>{let{id:n,remoteJid:i,participantJid:o,access:s}=t;if(n&&!s.isSelfChat&&e.sendReadReceipts!==!1)try{await r.readMessages([{remoteJid:i,id:n,participant:o,fromMe:!1}]),a()&&u(`Marked message ${n} as read for ${i}${o?` (participant ${o})`:``}`)}catch(e){u(`Failed to mark message ${n} read: ${String(e)}`)}else n&&s.isSelfChat&&a()&&u(`Self-chat mode: skipping read receipt for ${n}`)},w=async t=>{let n=St(t.message??void 0),i=n?Te(n):void 0,a=pt(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
4
4
  `).trim()),!a&&(a=mt(t.message??void 0),!a))return null;let o=Ct(t.message),s,c,l;try{let n=await Ot(t,r);if(n){let t=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;s=(await ne(n.buffer,n.mimetype,`inbound`,t,n.fileName)).path,c=n.mimetype,l=n.fileName}}catch(e){u(`Inbound media download failed: ${String(e)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:s,mediaType:c,mediaFileName:l}},T=async(e,i,a)=>{let o=i.remoteJid,s=async()=>{try{await r.sendPresenceUpdate(`composing`,o)}catch(e){u(`Presence update failed: ${String(e)}`)}},c=async e=>{await r.sendMessage(o,{text:e})},l=async e=>{await r.sendMessage(o,e)},d=i.messageTimestampMs,p=ft(e.message),g=e.pushName??void 0;t.info({from:i.from,to:m??`me`,body:a.body,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName,timestamp:d},`inbound message`);let _={id:i.id,from:i.from,conversationId:i.from,to:m??`me`,accountId:i.access.resolvedAccountId,body:a.body,pushName:g,timestamp:d,chatType:i.group?`group`:`direct`,chatId:i.remoteJid,senderJid:i.participantJid,senderE164:i.senderE164??void 0,senderName:g,replyToId:a.replyContext?.id,replyToBody:a.replyContext?.body,replyToSender:a.replyContext?.sender,replyToSenderJid:a.replyContext?.senderJid,replyToSenderE164:a.replyContext?.senderE164,groupSubject:i.groupSubject,groupParticipants:i.groupParticipants,mentionedJids:p??void 0,selfJid:f,selfE164:m,fromMe:!!e.key?.fromMe,location:a.location??void 0,sendComposing:s,reply:c,sendMedia:l,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName};try{Promise.resolve(h.enqueue(_)).catch(e=>{t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)}},E=async t=>{if(!(t.type!==`notify`&&t.type!==`append`))for(let n of t.messages??[]){Fe({channel:`whatsapp`,accountId:e.accountId,direction:`inbound`});let r=await S(n);if(!r||(await C(r),t.type===`append`))continue;let i=await w(n);i&&await T(n,r,i)}};r.ev.on(`messages.upsert`,E);let D=e=>{try{if(e.connection===`close`){let t=He(e.lastDisconnect?.error);d({status:t,isLoggedOut:t===Ke.loggedOut,error:e.lastDisconnect?.error})}}catch(e){t.error({error:String(e)},`connection.update handler error`),d({status:void 0,isLoggedOut:!1,error:e})}};return r.ev.on(`connection.update`,D),{close:async()=>{try{let e=r.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)),r.ws?.close()}catch(e){u(`Socket close failed: ${String(e)}`)}},onClose:c,signalClose:e=>{d(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...jt({sock:{sendMessage:(e,t)=>r.sendMessage(e,t),sendPresenceUpdate:(e,t)=>r.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function Nt(e,t){return{mentionRegexes:W(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Pt(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>p(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?p(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Ft(e,t,n){let r=e=>de(e),i=h(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 It(e,t,n){let r=Pt(e,n);return{wasMentioned:Ft(e,t,r),details:{from:e.from,body:e.body,bodyClean:de(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 Lt(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>f(e)).filter(e=>!!e)}function Rt(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 zt(t){let n=fe({agentId:t.agentId,channel:`whatsapp`,accountId:t.route.accountId,peer:{kind:t.msg.chatType===`group`?`group`:`direct`,id:t.peerId},dmScope:t.cfg.session?.dmScope,identityLinks:t.cfg.session?.identityLinks}),r=i({agentId:t.agentId,mainKey:e});return{sessionKey:n,mainSessionKey:r,lastRoutePolicy:K({sessionKey:n,mainSessionKey:r})}}async function Bt(e){let t=e.cfg.broadcast?.[e.peerId];if(!t||!Array.isArray(t)||t.length===0)return!1;let r=e.cfg.broadcast?.strategy||`parallel`;X.info(`Broadcasting message to ${t.length} agents (${r})`);let i=e.cfg.agents?.list?.map(e=>n(e.id)),a=(i?.length??0)>0,o=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,s=async t=>{let r=n(t);if(a&&!i?.includes(r))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let s=zt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:r}),c={...e.route,agentId:r,...s};try{return await e.processMessage(e.msg,c,e.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${q(e)}`),!1}};if(r===`sequential`)for(let e of t)await s(e);else await Promise.allSettled(t.map(s));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Vt(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 Ht(e,t){let n=D({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return O({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Ut(e,t){let n=D({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return k({cfg:e,channel:`whatsapp`,groupId:n??t})}function Wt(e){let t=w(r(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Ut(e.cfg,e.conversationId)?`mention`:`always`;return pe(t?.groupActivation)??n}function Gt(e,t,n){for(let r of e){let e=f(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Kt(e,t,n,r){if(!n||!r)return;let i=f(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function qt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&Gt(t,i,a),n&&Gt(n.keys(),i,a),a.length===0&&r){let e=f(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 Jt(e,t){let n=f(t.senderE164??``);return n?Lt(e,t.selfE164??void 0).includes(n):!1}function Yt(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;ve({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 Xt(e,t){return e.logVerbose(t),Yt({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Zt(e){let t=Ht(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Kt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Nt(e.cfg,e.agentId),r=Vt(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=_e(r),a=Jt(e.baseMentionConfig,e.msg),o=a&&re(r,e.cfg);if(i.hasCommand&&!a)return Xt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let s=It(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:s.wasMentioned,...s.details},`group mention debug`);let c=s.wasMentioned,l=Wt({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+/,``),p=e.msg.selfE164?f(e.msg.selfE164):null,m=e.msg.replyToSenderE164?f(e.msg.replyToSenderE164):null,h=V({requireMention:l,canDetectMention:!0,wasMentioned:c,implicitMention:!!(u&&d&&u===d||p&&m&&p===m),shouldBypassMention:o});return e.msg.wasMentioned=h.effectiveWasMentioned,!o&&l&&h.shouldSkip?Xt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Qt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function $t(e){let t=r(e.cfg.session?.store,{agentId:e.storeAgentId}),n=S({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`)});Qt(e.backgroundTasks,n)}function en(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?f(e.senderE164)??e.senderE164:e.from.includes(`@`)?p(e.from)??e.from:f(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function tn(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 nn(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function rn(e){let{replyResult:t,msg:n,maxMediaBytes:r,textLimit:i,replyLogger:s,connectionId:c,skipLog:l}=e,d=Date.now();if(nn(t)){Z.debug(`Suppressed reasoning payload to ${n.from}`);return}let f=e.tableMode??`code`,p=e.chunkMode??`length`,m=Ae(Re(Ie(t.text||``,f)),i,p),h=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],g=async(e,t,r=3)=>{let i;for(let a=1;a<=r;a++)try{return await e()}catch(e){i=e;let s=q(e),c=a===r;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw e;let l=500*a;u(`Retrying ${t} to ${n.from} after failure (${a}/${r-1}) in ${l}ms: ${s}`),await o(l)}throw i};if(h.length===0&&m.length){let e=m.length;for(let[t,r]of m.entries()){let i=Date.now();if(await g(()=>n.reply(r),`text`),!l){let r=Date.now()-i;Z.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}s.info({correlationId:n.id??J(),connectionId:c??null,to:n.from,from:n.to,text:$(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let _=[...m];for(let[t,i]of h.entries()){let o=t===0&&_.shift()||void 0;try{let t=await ke(i,{maxBytes:r,localRoots:e.mediaLocalRoots});if(a()&&(u(`Web auto-reply media size: ${(t.buffer.length/(1024*1024)).toFixed(2)}MB`),u(`Web auto-reply media source: ${i} (kind ${t.kind})`)),t.kind===`image`)await g(()=>n.sendMedia({image:t.buffer,caption:o,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await g(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:o}),`media:audio`);else if(t.kind===`video`)await g(()=>n.sendMedia({video:t.buffer,caption:o,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??i.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await g(()=>n.sendMedia({document:t.buffer,fileName:e,caption:o,mimetype:r}),`media:document`)}Z.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),s.info({correlationId:n.id??J(),connectionId:c??null,to:n.from,from:n.to,text:o??null,mediaUrl:i,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${n.from}: ${q(e)}`),s.warn({err:e,mediaUrl:i},`failed to send web media reply`),t===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,r=[_.shift()??o??``,t].filter(Boolean).join(`
@@ -1 +1 @@
1
- require(`./paths-Bcdg3ma0.cjs`),require(`./paths-D90l3h_o.cjs`);const e=require(`./sessions-CJbvfO6m.cjs`);require(`./logger-DUYnS-W3.cjs`),require(`./proxy-env-DQoJjkWE.cjs`),require(`./send-DN2xic3w.cjs`),require(`./common-CjMKHm2Z.cjs`),require(`./send-tvw8j-Se.cjs`),require(`./reply-BrHB7v5V.cjs`),require(`./github-copilot-token-zskwAEpd.cjs`),require(`./send-CRnIqXN9.cjs`);const t=require(`./channel-web-DtzNv49H.cjs`);require(`./tokens-CXsPDJTr.cjs`),require(`./audio-transcription-runner-BO7T_SzP.cjs`),require(`./image-DngxW2Nh.cjs`),require(`./fetch-guard-Dpz6CnJY.cjs`),require(`./api-key-rotation-D5cfmg7E.cjs`),require(`./local-roots-CM1R1Ncr.cjs`),require(`./proxy-fetch-BzcKzknk.cjs`),require(`./deliver-CT0AIuK1.cjs`),require(`./commands-registry-CfVD1h8L.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./diagnostic-CbLwUqTE.cjs`),require(`./pi-model-discovery-DN1RHetG.cjs`),require(`./ir-B9ap_YNW.cjs`),require(`./render-6fCdtAr6.cjs`),require(`./send-BVAm6Zbr.cjs`),require(`./outbound-attachment-CYGrnygD.cjs`),require(`./send-HZNY_u3L.cjs`),require(`./channel-activity-Rut-HCfT.cjs`),require(`./tables-DQad-z2Z.cjs`),require(`./fetch-DQxuOB8o.cjs`),require(`./skill-commands-5WGHyr3h.cjs`),require(`./query-expansion-0zYzKrrd.cjs`),require(`./manager-8uylP7PH.cjs`);const n=require(`./outbound-C6BJCoYf.cjs`),r=require(`./session-D4nn-nXX.cjs`),i=require(`./login-Dln00cFs.cjs`);exports.WA_WEB_AUTH_DIR=e.js,exports.createWaSocket=r.t,exports.logWebSelfId=e.Ns,exports.loginWeb=i.t,exports.monitorWebChannel=t.t,exports.monitorWebInbox=t.n,exports.pickWebChannel=e.Is,exports.sendMessageWhatsApp=n.t,exports.waitForWaConnection=r.i,exports.webAuthExists=e.Hs;
1
+ require(`./paths-Bcdg3ma0.cjs`),require(`./paths-D90l3h_o.cjs`);const e=require(`./sessions-CJbvfO6m.cjs`);require(`./logger-DUYnS-W3.cjs`),require(`./proxy-env-DQoJjkWE.cjs`),require(`./send-DN2xic3w.cjs`),require(`./common-CjMKHm2Z.cjs`),require(`./send-tvw8j-Se.cjs`),require(`./reply-DoisbReD.cjs`),require(`./github-copilot-token-zskwAEpd.cjs`),require(`./send-CRnIqXN9.cjs`);const t=require(`./channel-web-DY8qidtg.cjs`);require(`./tokens-CXsPDJTr.cjs`),require(`./audio-transcription-runner-BO7T_SzP.cjs`),require(`./image-DngxW2Nh.cjs`),require(`./fetch-guard-Dpz6CnJY.cjs`),require(`./api-key-rotation-D5cfmg7E.cjs`),require(`./local-roots-CM1R1Ncr.cjs`),require(`./proxy-fetch-BzcKzknk.cjs`),require(`./deliver-CT0AIuK1.cjs`),require(`./commands-registry-CfVD1h8L.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./diagnostic-CbLwUqTE.cjs`),require(`./pi-model-discovery-DN1RHetG.cjs`),require(`./ir-B9ap_YNW.cjs`),require(`./render-6fCdtAr6.cjs`),require(`./send-BVAm6Zbr.cjs`),require(`./outbound-attachment-CYGrnygD.cjs`),require(`./send-HZNY_u3L.cjs`),require(`./channel-activity-Rut-HCfT.cjs`),require(`./tables-DQad-z2Z.cjs`),require(`./fetch-DQxuOB8o.cjs`),require(`./skill-commands-5WGHyr3h.cjs`),require(`./query-expansion-0zYzKrrd.cjs`),require(`./manager-8uylP7PH.cjs`);const n=require(`./outbound-C6BJCoYf.cjs`),r=require(`./session-D4nn-nXX.cjs`),i=require(`./login-Dln00cFs.cjs`);exports.WA_WEB_AUTH_DIR=e.js,exports.createWaSocket=r.t,exports.logWebSelfId=e.Ns,exports.loginWeb=i.t,exports.monitorWebChannel=t.t,exports.monitorWebInbox=t.n,exports.pickWebChannel=e.Is,exports.sendMessageWhatsApp=n.t,exports.waitForWaConnection=r.i,exports.webAuthExists=e.Hs;
@@ -1,4 +1,4 @@
1
- require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-CStT30wi.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-fJrNIbke.cjs`),r=require(`./logger-DPlqYkRm.cjs`);require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-z1vaCgF3.cjs`);const i=require(`./send-BCSkdYN6.cjs`),a=require(`./send-GtphEa1b.cjs`);require(`./deliver-BpqEPwLO.cjs`),require(`./diagnostic-CbfxoqI_.cjs`),require(`./pi-model-discovery-Bi4dKtW0.cjs`);const o=require(`./audio-transcription-runner-2-ZQ5Md-.cjs`);require(`./image-0OHO98b9.cjs`),require(`./fetch-guard-DIYjBRpq.cjs`),require(`./api-key-rotation-DkP7KnSm.cjs`);const s=require(`./local-roots-SCyeUfM3.cjs`);require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-DBI4cPqT.cjs`),require(`./fetch-ClKErpni.cjs`);const c=require(`./ir-78toXVqC.cjs`);require(`./render-DxBO2Blp.cjs`),require(`./target-errors-oh0u5K2w.cjs`);const l=require(`./channel-activity-D6d2wU8H.cjs`),u=require(`./tables-bSgb8OzP.cjs`);require(`./send-BOkABdQu.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-CD4GQXTR.cjs`),require(`./outbound-attachment-0QahtSQB.cjs`),require(`./send-CSqipUeV.cjs`);const d=require(`./active-listener-Cqgd7xVh.cjs`);require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-DCDy2V1U.cjs`);const f=require(`./outbound-DnO_udAm.cjs`),p=require(`./session-DOA4CJgj.cjs`),m=require(`./login-Cw1jFbel.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,t){let n=e.web?.reconnect??{},i=t??{},a={..._,...n,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=r.o(a.factor,1.1,10),a.jitter=r.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=r.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=e.R({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let t=N(e);if(!t)return null;let n=P(t),i=(0,g.normalizeMessageContent)(n?.quotedMessage);if(!i)return null;let o=ne(i),s=o?a.J(o):void 0,c=[I(i),s].filter(Boolean).join(`
1
+ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-CrVSyC50.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-fJrNIbke.cjs`),r=require(`./logger-DPlqYkRm.cjs`);require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-z1vaCgF3.cjs`);const i=require(`./send-BCSkdYN6.cjs`),a=require(`./send-GtphEa1b.cjs`);require(`./deliver-BpqEPwLO.cjs`),require(`./diagnostic-CbfxoqI_.cjs`),require(`./pi-model-discovery-Bi4dKtW0.cjs`);const o=require(`./audio-transcription-runner-2-ZQ5Md-.cjs`);require(`./image-0OHO98b9.cjs`),require(`./fetch-guard-DIYjBRpq.cjs`),require(`./api-key-rotation-DkP7KnSm.cjs`);const s=require(`./local-roots-SCyeUfM3.cjs`);require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-DBI4cPqT.cjs`),require(`./fetch-ClKErpni.cjs`);const c=require(`./ir-78toXVqC.cjs`);require(`./render-DxBO2Blp.cjs`),require(`./target-errors-oh0u5K2w.cjs`);const l=require(`./channel-activity-D6d2wU8H.cjs`),u=require(`./tables-bSgb8OzP.cjs`);require(`./send-BOkABdQu.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-CD4GQXTR.cjs`),require(`./outbound-attachment-0QahtSQB.cjs`),require(`./send-CSqipUeV.cjs`);const d=require(`./active-listener-Cqgd7xVh.cjs`);require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-DCDy2V1U.cjs`);const f=require(`./outbound-DnO_udAm.cjs`),p=require(`./session-DOA4CJgj.cjs`),m=require(`./login-Cw1jFbel.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,t){let n=e.web?.reconnect??{},i=t??{},a={..._,...n,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=r.o(a.factor,1.1,10),a.jitter=r.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=r.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=e.R({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let t=N(e);if(!t)return null;let n=P(t),i=(0,g.normalizeMessageContent)(n?.quotedMessage);if(!i)return null;let o=ne(i),s=o?a.J(o):void 0,c=[I(i),s].filter(Boolean).join(`
2
2
  `).trim();if(c||=L(i),!c){let e=i?(0,g.getContentType)(i):void 0;return r.R(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let l=n?.participant??void 0,u=l?r.m(l)??l:void 0,d=u??`unknown sender`;return{id:n?.stanzaId?String(n.stanzaId):void 0,body:c,sender:d,senderJid:l,senderE164:u}}function re(e){return i.Mt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function ie(t){let o=n.wa(),s=n.Un({cfg:o,accountId:t.accountId}),c=s.dmPolicy??`pairing`,l=s.allowFrom??[],u=await e.H({provider:`whatsapp`,accountId:s.accountId,dmPolicy:c}),d=l.length===0&&t.selfE164?[t.selfE164]:[],f=l.length>0?l:d,p=s.groupAllowFrom??(l.length>0?l:void 0),m=t.from===t.selfE164,h=s.selfChatMode??r.p(t.selfE164,l),g=typeof t.pairingGraceMs==`number`&&t.pairingGraceMs>0?t.pairingGraceMs:3e4,_=typeof t.connectedAtMs==`number`&&typeof t.messageTimestampMs==`number`&&t.messageTimestampMs<t.connectedAtMs-g,v=i.jt(o),{groupPolicy:y,providerMissingFallbackApplied:b}=re({providerConfigPresent:o.channels?.whatsapp!==void 0,groupPolicy:s.groupPolicy,defaultGroupPolicy:v});i.Nt({providerMissingFallbackApplied:b,providerKey:`whatsapp`,accountId:s.accountId,log:e=>r.R(e)});let x=r.h(t.from),S=typeof t.senderE164==`string`?r.h(t.senderE164):null,C=e.W({isGroup:t.group,dmPolicy:c,groupPolicy:y,allowFrom:t.group?l:f,groupAllowFrom:p,storeAllowFrom:u,isSenderAllowed:e=>{if(e.includes(`*`))return!0;let n=new Set(e.map(e=>r.h(String(e))).filter(e=>!!e));return!t.group&&m?!0:t.group?!!(S&&n.has(S)):n.has(x)}});if(t.group&&C.decision!==`allow`)return C.reason===`groupPolicy=disabled`?r.R(`Blocked group message (groupPolicy: disabled)`):C.reason===`groupPolicy=allowlist (empty allowlist)`?r.R(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):r.R(`Blocked group message from ${t.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(!t.group){if(t.isFromMe&&!m)return r.R(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`block`&&C.reason===`dmPolicy=disabled`)return r.R(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`pairing`&&!m){let n=t.from;return _?r.R(`Skipping pairing reply for historical DM from ${n}.`):await e.B({channel:`whatsapp`,senderId:n,senderIdLine:`Your WhatsApp phone number: ${n}`,meta:{name:(t.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await a.tt({channel:`whatsapp`,id:e,accountId:s.accountId,meta:t}),onCreated:()=>{r.R(`whatsapp pairing request sender=${n} name=${t.pushName??`unknown`}`)},sendPairingReply:async e=>{await t.sock.sendMessage(t.remoteJid,{text:e})},onReplyError:e=>{r.R(`whatsapp pairing reply failed for ${n}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}if(C.decision!==`allow`)return r.R(`Blocked unauthorized sender ${t.from} (dmPolicy=${c})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:h,resolvedAccountId:s.accountId}}function G(e){return(0,g.normalizeMessageContent)(e)}function K(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 ae(e,t){let n=G(e.message);if(!n)return;let i=K(n),a=n.documentMessage?.fileName??void 0;if(!(!n.imageMessage&&!n.videoMessage&&!n.documentMessage&&!n.audioMessage&&!n.stickerMessage))try{return{buffer:await(0,g.downloadMediaMessage)(e,`buffer`,{},{reuploadRequest:t.updateMediaMessage,logger:t.logger}),mimetype:i,fileName:a}}catch(e){r.R(`downloadMediaMessage failed: ${String(e)}`);return}}function q(e){l.n({channel:`whatsapp`,accountId:e,direction:`outbound`})}function J(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function Y(e){return{sendMessage:async(t,n,i,a,o)=>{let s=r.T(t),c;if(i&&a)if(a.startsWith(`image/`))c={image:i,caption:n||void 0,mimetype:a};else if(a.startsWith(`audio/`))c={audio:i,ptt:!0,mimetype:a};else if(a.startsWith(`video/`)){let e=o?.gifPlayback;c={video:i,caption:n||void 0,mimetype:a,...e?{gifPlayback:!0}:{}}}else c={document:i,fileName:o?.fileName?.trim()||`file`,caption:n||void 0,mimetype:a};else c={text:n};let l=await e.sock.sendMessage(s,c);return q(o?.accountId??e.defaultAccountId),{messageId:J(l)}},sendPoll:async(t,n)=>{let i=r.T(t),a=await e.sock.sendMessage(i,{poll:{name:n.question,values:n.options,selectableCount:n.maxSelections??1}});return q(e.defaultAccountId),{messageId:J(a)}},sendReaction:async(t,n,i,a,o)=>{let s=r.T(t);await e.sock.sendMessage(s,{react:{text:i,key:{remoteJid:s,id:n,fromMe:a,participant:o?r.T(o):void 0}}})},sendComposingTo:async t=>{let n=r.T(t);await e.sock.sendPresenceUpdate(`composing`,n)}}}async function oe(t){let i=r.K({module:`web-inbound`}),o=r.O(`gateway/channels/whatsapp`).child(`inbound`),s=await p.t(!1,t.verbose,{authDir:t.authDir});await p.i(s);let c=Date.now(),u=null,d=new Promise(e=>{u=e}),f=e=>{if(!u)return;let t=u;u=null,t(e)};try{await s.sendPresenceUpdate(`available`),r.B()&&r.R(`Sent global 'available' presence on connect`)}catch(e){r.R(`Failed to send 'available' presence on connect: ${String(e)}`)}let m=s.user?.id,h=m?r.m(m):null,_=e.C({debounceMs:t.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:t.shouldDebounce,onFlush:async e=>{let n=e.at(-1);if(!n)return;if(e.length===1){await t.onMessage(n);return}let r=new Set;for(let t of e)for(let e of t.mentionedJids??[])r.add(e);let i=e.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await t.onMessage(a)},onError:e=>{i.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=>r.v(e,{authDir:t.authDir,lidLookup:b}),S=async e=>{let t=v.get(e);if(t&&t.expires>Date.now())return t;try{let t=await s.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:t.subject,participants:n,expires:Date.now()+y};return v.set(e,r),r}catch(t){return r.R(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+y}}},C=async e=>{let n=e.key?.id??void 0,r=e.key?.remoteJid;if(!r||r.endsWith(`@status`)||r.endsWith(`@broadcast`))return null;let i=(0,g.isJidGroup)(r)===!0;if(n&&E(`${t.accountId}:${r}:${n}`))return null;let a=e.key?.participant??void 0,o=i?r:await x(r);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(r);u=e.subject,d=e.participants}let f=e.messageTimestamp?Number(e.messageTimestamp)*1e3:void 0,p=await ie({accountId:t.accountId,from:o,selfE164:h,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:r});return p.allowed?{id:n,remoteJid:r,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},ee=async e=>{let{id:n,remoteJid:i,participantJid:a,access:o}=e;if(n&&!o.isSelfChat&&t.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:i,id:n,participant:a,fromMe:!1}]),r.B()&&r.R(`Marked message ${n} as read for ${i}${a?` (participant ${a})`:``}`)}catch(e){r.R(`Failed to mark message ${n} read: ${String(e)}`)}else n&&o.isSelfChat&&r.B()&&r.R(`Self-chat mode: skipping read receipt for ${n}`)},w=async e=>{let i=ne(e.message??void 0),o=i?a.J(i):void 0,c=I(e.message??void 0);if(o&&(c=[c,o].filter(Boolean).join(`
4
4
  `).trim()),!c&&(c=L(e.message??void 0),!c))return null;let l=W(e.message),u,d,f;try{let r=await ae(e,s);if(r){let e=(typeof t.mediaMaxMb==`number`&&t.mediaMaxMb>0?t.mediaMaxMb:50)*1024*1024;u=(await n.ai(r.buffer,r.mimetype,`inbound`,e,r.fileName)).path,d=r.mimetype,f=r.fileName}}catch(e){r.R(`Inbound media download failed: ${String(e)}`)}return{body:c,location:i??void 0,replyContext:l,mediaPath:u,mediaType:d,mediaFileName:f}},T=async(e,t,n)=>{let a=t.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,a)}catch(e){r.R(`Presence update failed: ${String(e)}`)}},l=async e=>{await s.sendMessage(a,{text:e})},u=async e=>{await s.sendMessage(a,e)},d=t.messageTimestampMs,f=F(e.message),p=e.pushName??void 0;i.info({from:t.from,to:h??`me`,body:n.body,mediaPath:n.mediaPath,mediaType:n.mediaType,mediaFileName:n.mediaFileName,timestamp:d},`inbound message`);let g={id:t.id,from:t.from,conversationId:t.from,to:h??`me`,accountId:t.access.resolvedAccountId,body:n.body,pushName:p,timestamp:d,chatType:t.group?`group`:`direct`,chatId:t.remoteJid,senderJid:t.participantJid,senderE164:t.senderE164??void 0,senderName:p,replyToId:n.replyContext?.id,replyToBody:n.replyContext?.body,replyToSender:n.replyContext?.sender,replyToSenderJid:n.replyContext?.senderJid,replyToSenderE164:n.replyContext?.senderE164,groupSubject:t.groupSubject,groupParticipants:t.groupParticipants,mentionedJids:f??void 0,selfJid:m,selfE164:h,fromMe:!!e.key?.fromMe,location:n.location??void 0,sendComposing:c,reply:l,sendMedia:u,mediaPath:n.mediaPath,mediaType:n.mediaType,mediaFileName:n.mediaFileName};try{Promise.resolve(_.enqueue(g)).catch(e=>{i.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){i.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},D=async e=>{if(!(e.type!==`notify`&&e.type!==`append`))for(let n of e.messages??[]){l.n({channel:`whatsapp`,accountId:t.accountId,direction:`inbound`});let r=await C(n);if(!r||(await ee(r),e.type===`append`))continue;let i=await w(n);i&&await T(n,r,i)}};s.ev.on(`messages.upsert`,D);let O=e=>{try{if(e.connection===`close`){let t=p.r(e.lastDisconnect?.error);f({status:t,isLoggedOut:t===g.DisconnectReason.loggedOut,error:e.lastDisconnect?.error})}}catch(e){i.error({error:String(e)},`connection.update handler error`),f({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,O),{close:async()=>{try{let e=s.ev,t=D,n=O;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(e){r.R(`Socket close failed: ${String(e)}`)}},onClose:d,signalClose:e=>{f(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Y({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:t.accountId})}}function X(t,n){return{mentionRegexes:e.O(t,n),allowFrom:t.channels?.whatsapp?.allowFrom}}function Z(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>r.m(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?r.m(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Q(t,n,i){let a=t=>e.k(t),o=r.p(i.selfE164,n.allowFrom);if((t.mentionedJids?.length??0)>0&&!o)return!!(i.selfE164&&i.normalizedMentions.includes(i.selfE164)||i.selfJid&&i.normalizedMentions.includes(i.selfJid));let s=a(t.body);if(n.mentionRegexes.some(e=>e.test(s)))return!0;if(i.selfE164){let e=i.selfE164.replace(/\D/g,``);if(e){if(s.replace(/[^\d]/g,``).includes(e))return!0;let n=t.body.replace(/[\s-]/g,``);if(RegExp(`\\+?${e}`,`i`).test(n))return!0}}return!1}function se(t,n,r){let i=Z(t,r);return{wasMentioned:Q(t,n,i),details:{from:t.from,body:t.body,bodyClean:e.k(t.body),mentionedJids:t.mentionedJids??null,normalizedMentionedJids:i.normalizedMentions.length?i.normalizedMentions:null,selfJid:t.selfJid??null,selfJidBare:i.selfJid,selfE164:t.selfE164??null,resolvedSelfE164:i.selfE164}}}function ce(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>r.h(e)).filter(e=>!!e)}function le(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 ue(n){let r=e.m({agentId:n.agentId,channel:`whatsapp`,accountId:n.route.accountId,peer:{kind:n.msg.chatType===`group`?`group`:`direct`,id:n.peerId},dmScope:n.cfg.session?.dmScope,identityLinks:n.cfg.session?.identityLinks}),i=t.Dt({agentId:n.agentId,mainKey:t.Et});return{sessionKey:r,mainSessionKey:i,lastRoutePolicy:e.h({sessionKey:r,mainSessionKey:i})}}async function de(e){let n=e.cfg.broadcast?.[e.peerId];if(!n||!Array.isArray(n)||n.length===0)return!1;let r=e.cfg.broadcast?.strategy||`parallel`;S.info(`Broadcasting message to ${n.length} agents (${r})`);let i=e.cfg.agents?.list?.map(e=>t.Mt(e.id)),a=(i?.length??0)>0,o=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,s=async n=>{let r=t.Mt(n);if(a&&!i?.includes(r))return S.warn(`Broadcast agent ${n} not found in agents.list; skipping`),!1;let s=ue({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:r}),c={...e.route,agentId:r,...s};try{return await e.processMessage(e.msg,c,e.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return S.error(`Broadcast agent ${n} failed: ${p.n(e)}`),!1}};if(r===`sequential`)for(let e of n)await s(e);else await Promise.allSettled(n.map(s));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function fe(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 pe(e,t){let r=n.br({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,i=e.channels?.whatsapp,a=!!(i?.groupAllowFrom?.length||i?.allowFrom?.length);return n.mr({cfg:e,channel:`whatsapp`,groupId:r??t,hasGroupAllowFrom:a})}function me(e,t){let r=n.br({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return n.hr({cfg:e,channel:`whatsapp`,groupId:r??t})}function he(r){let i=n.kt(t.s(r.cfg.session?.store,{agentId:r.agentId}))[r.sessionKey],a=me(r.cfg,r.conversationId)?`mention`:`always`;return e.i(i?.groupActivation)??a}function ge(e,t,n){for(let i of e){let e=r.h(i)??i;!e||t.has(e)||(t.add(e),n.push(e))}}function _e(e,t,n,i){if(!n||!i)return;let a=r.h(n)??n;if(!a)return;let o=e.get(t);o||(o=new Map,e.set(t,o)),o.set(a,i)}function ve(e){let{participants:t,roster:n,fallbackE164:i}=e,a=new Set,o=[];if(t?.length&&ge(t,a,o),n&&ge(n.keys(),a,o),o.length===0&&i){let e=r.h(i)??i;e&&o.push(e)}if(o.length!==0)return o.map(e=>{let t=n?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function ye(e,t){let n=r.h(t.senderE164??``);return n?ce(e,t.selfE164??void 0).includes(n):!1}function be(t){let n=t.msg.senderName&&t.msg.senderE164?`${t.msg.senderName} (${t.msg.senderE164})`:t.msg.senderName??t.msg.senderE164??`Unknown`;e.p({historyMap:t.groupHistories,historyKey:t.groupHistoryKey,limit:t.groupHistoryLimit,entry:{sender:n,body:t.msg.body,timestamp:t.msg.timestamp,id:t.msg.id,senderJid:t.msg.senderJid}})}function xe(e,t){return e.logVerbose(t),be({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Se(t){let n=pe(t.cfg,t.conversationId);if(n.allowlistEnabled&&!n.allowed)return t.logVerbose(`Skipping group message ${t.conversationId} (not in allowlist)`),{shouldProcess:!1};_e(t.groupMemberNames,t.groupHistoryKey,t.msg.senderE164,t.msg.senderName);let i=X(t.cfg,t.agentId),a=fe(t.msg.body,i.mentionRegexes,t.msg.selfE164),o=e.a(a),s=ye(t.baseMentionConfig,t.msg),c=s&&e.E(a,t.cfg);if(o.hasCommand&&!s)return xe(t,`Ignoring /activation from non-owner in group ${t.conversationId}`);let l=se(t.msg,i,t.authDir);t.replyLogger.debug({conversationId:t.conversationId,wasMentioned:l.wasMentioned,...l.details},`group mention debug`);let u=l.wasMentioned,d=he({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:t.conversationId})!==`always`,f=t.msg.selfJid?.replace(/:\\d+/,``),p=t.msg.replyToSenderJid?.replace(/:\\d+/,``),m=t.msg.selfE164?r.h(t.msg.selfE164):null,h=t.msg.replyToSenderE164?r.h(t.msg.replyToSenderE164):null,g=e.d({requireMention:d,canDetectMention:!0,wasMentioned:u,implicitMention:!!(f&&p&&f===p||m&&h&&m===h),shouldBypassMention:c});return t.msg.wasMentioned=g.effectiveWasMentioned,!c&&d&&g.shouldSkip?xe(t,`Group message stored for context (no mention detected) in ${t.conversationId}: ${t.msg.body}`):{shouldProcess:!0}}function Ce(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function we(e){let r=t.s(e.cfg.session?.store,{agentId:e.storeAgentId}),i=n.Nt({storePath:r,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(t=>{e.warn({error:p.n(t),storePath:r,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Ce(e.backgroundTasks,i)}function Te(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?r.h(e.senderE164)??e.senderE164:e.from.includes(`@`)?r.m(e.from)??e.from:r.h(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function Ee(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 De(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Oe(e){let{replyResult:t,msg:n,maxMediaBytes:i,textLimit:a,replyLogger:o,connectionId:s,skipLog:l}=e,d=Date.now();if(De(t)){C.debug(`Suppressed reasoning payload to ${n.from}`);return}let m=e.tableMode??`code`,h=e.chunkMode??`length`,g=c.d(f.i(u.t(t.text||``,m)),a,h),_=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],v=async(e,t,i=3)=>{let a;for(let o=1;o<=i;o++)try{return await e()}catch(e){a=e;let s=p.n(e),c=o===i;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw e;let l=500*o;r.R(`Retrying ${t} to ${n.from} after failure (${o}/${i-1}) in ${l}ms: ${s}`),await r.C(l)}throw a};if(_.length===0&&g.length){let e=g.length;for(let[t,r]of g.entries()){let i=Date.now();if(await v(()=>n.reply(r),`text`),!l){let r=Date.now()-i;C.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}o.info({correlationId:n.id??b(),connectionId:s??null,to:n.from,from:n.to,text:$(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let y=[...g];for(let[t,a]of _.entries()){let l=t===0&&y.shift()||void 0;try{let t=await c.a(a,{maxBytes:i,localRoots:e.mediaLocalRoots});if(r.B()&&(r.R(`Web auto-reply media size: ${(t.buffer.length/(1024*1024)).toFixed(2)}MB`),r.R(`Web auto-reply media source: ${a} (kind ${t.kind})`)),t.kind===`image`)await v(()=>n.sendMedia({image:t.buffer,caption:l,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await v(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:l}),`media:audio`);else if(t.kind===`video`)await v(()=>n.sendMedia({video:t.buffer,caption:l,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??a.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await v(()=>n.sendMedia({document:t.buffer,fileName:e,caption:l,mimetype:r}),`media:document`)}C.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),o.info({correlationId:n.id??b(),connectionId:s??null,to:n.from,from:n.to,text:l??null,mediaUrl:a,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(C.error(`Failed sending web media to ${n.from}: ${p.n(e)}`),o.warn({err:e,mediaUrl:a},`failed to send web media reply`),t===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,r=[y.shift()??l??``,t].filter(Boolean).join(`
@@ -1 +1 @@
1
- import"./paths-J4JUiRsa.js";import{Ka as e,Wa as t,Ya as n,to as r}from"./config-LR8GH3Ws.js";import"./dispatch-BahZCe-D.js";import"./paths-DaRoqzBQ.js";import"./github-copilot-token-C1hiDugd.js";import"./logger-BtrWb0dj.js";import"./proxy-env-t6hcaFqC.js";import"./send-DsDCrJWq.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-qjwFifkE.js";import"./fetch-guard-DC_pFJEy.js";import"./local-roots-l4PqCmiU.js";import"./ir-ntSck5Kp.js";import"./render-DGmfCIRG.js";import"./tables-Cz5osenc.js";import"./send-CPwh7tRu.js";import"./target-errors-BbQBR5da.js";import"./send-BcuylzbX.js";import"./deliver-BvC6aUKM.js";import"./diagnostic-DS_mKKOu.js";import"./pi-model-discovery-ma8st1Ek.js";import"./audio-transcription-runner-DZR84B28.js";import"./image-ISWO0Dwt.js";import"./api-key-rotation-mDqgBFMG.js";import"./proxy-fetch-B9aXJVe-.js";import"./tokens-AAdZjj0M.js";import"./commands-registry-BGdm1KdC.js";import"./send-ClMvdjfg.js";import"./fetch-BVEVk5YF.js";import"./skill-commands-DcgKCVDt.js";import"./outbound-attachment-acB4qID1.js";import"./send-2IhtEEzb.js";import"./query-expansion-DyCDaZbL.js";import"./manager-BRP1lzb6.js";import{n as i,t as a}from"./channel-web-VEZVrMYU.js";import{t as o}from"./outbound-BrD0UsX0.js";import{i as s,t as c}from"./session-B80NWO1m.js";import{t as l}from"./login-DEmpr5YK.js";export{t as WA_WEB_AUTH_DIR,c as createWaSocket,e as logWebSelfId,l as loginWeb,a as monitorWebChannel,i as monitorWebInbox,n as pickWebChannel,o as sendMessageWhatsApp,s as waitForWaConnection,r as webAuthExists};
1
+ import"./paths-J4JUiRsa.js";import{Ka as e,Wa as t,Ya as n,to as r}from"./config-LR8GH3Ws.js";import"./dispatch-CLpAMfPN.js";import"./paths-DaRoqzBQ.js";import"./github-copilot-token-C1hiDugd.js";import"./logger-BtrWb0dj.js";import"./proxy-env-t6hcaFqC.js";import"./send-DsDCrJWq.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-qjwFifkE.js";import"./fetch-guard-DC_pFJEy.js";import"./local-roots-l4PqCmiU.js";import"./ir-ntSck5Kp.js";import"./render-DGmfCIRG.js";import"./tables-Cz5osenc.js";import"./send-CPwh7tRu.js";import"./target-errors-BbQBR5da.js";import"./send-BcuylzbX.js";import"./deliver-BvC6aUKM.js";import"./diagnostic-DS_mKKOu.js";import"./pi-model-discovery-ma8st1Ek.js";import"./audio-transcription-runner-DZR84B28.js";import"./image-ISWO0Dwt.js";import"./api-key-rotation-mDqgBFMG.js";import"./proxy-fetch-B9aXJVe-.js";import"./tokens-AAdZjj0M.js";import"./commands-registry-BGdm1KdC.js";import"./send-ClMvdjfg.js";import"./fetch-BVEVk5YF.js";import"./skill-commands-DcgKCVDt.js";import"./outbound-attachment-acB4qID1.js";import"./send-2IhtEEzb.js";import"./query-expansion-DyCDaZbL.js";import"./manager-BRP1lzb6.js";import{n as i,t as a}from"./channel-web-D4n7Ejq1.js";import{t as o}from"./outbound-BrD0UsX0.js";import{i as s,t as c}from"./session-B80NWO1m.js";import{t as l}from"./login-DEmpr5YK.js";export{t as WA_WEB_AUTH_DIR,c as createWaSocket,e as logWebSelfId,l as loginWeb,a as monitorWebChannel,i as monitorWebInbox,n as pickWebChannel,o as sendMessageWhatsApp,s as waitForWaConnection,r as webAuthExists};
@@ -1,4 +1,4 @@
1
- import{gt as e,ht as t,s as n,vt as r,xt as i}from"./paths-CXgWvWAM.js";import{B as a,K as o,M as s,O as c,R as l,d as u,l as d,m as f,n as p,u as m,x as h,y as g}from"./utils-BJtJR72k.js";import"./paths-rO4ehkyU.js";import{Ct as _,Dt as v,Fs as y,Hs as b,Is as x,Jn as S,Js as C,Ls as w,Or as T,Rs as ee,Tt as E,Un as D,Wi as O,Wn as k,Ws as A,tc as te,zs as j}from"./model-auth-wcxJptQX.js";import"./target-errors-CaaKhU6m.js";import{A as M,B as ne,C as N,D as P,E as re,G as F,K as I,O as ie,S as ae,T as L,U as oe,V as se,W as R,X as ce,Y as z,Z as B,_ as V,b as le,d as ue,f as H,g as U,h as W,j as G,k as de,l as fe,m as pe,o as me,p as he,q as ge,r as _e,s as ve,u as ye,v as be,x as xe,y as Se}from"./dispatch-HRTsdeCV.js";import{$ as Ce,ct as we,lt as Te}from"./send-DyzuwDjE.js";import{Mt as Ee,Nt as De,Pt as Oe}from"./send-BEmZxBcF.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-B_619b3s.js";import"./fetch-guard-DDkd30BG.js";import"./deliver-ILim6ANU.js";import"./diagnostic-Dz8HPEDe.js";import"./pi-model-discovery--UcCzdQg.js";import{f as ke}from"./audio-transcription-runner-CslXJs5c.js";import"./image-BVnZq5Y4.js";import"./api-key-rotation-Cs6II2__.js";import{t as Ae}from"./local-roots-B0zm186S.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CpG4pxrA.js";import"./fetch-B1GR6-u4.js";import{a as je,d as Me,h as Ne,m as Pe,s as Fe}from"./ir-CpkEWZD6.js";import"./render-Djx15dPh.js";import{n as Ie}from"./channel-activity-CIycjzUC.js";import{t as Le}from"./tables-C6TX2QvW.js";import"./send-B4kzPtcN.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-BZlF3g3o.js";import"./outbound-attachment-DS0S0NLK.js";import"./send-h_kE-cAK.js";import{r as Re}from"./active-listener-D6gGPLq-.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-BnytMgmq.js";import{i as ze,r as Be,t as Ve}from"./outbound-Cgc0JJtB.js";import{i as He,n as K,r as Ue,t as We}from"./session--K1m5v7m.js";import{t as Ge}from"./login-BtT7yRJO.js";import{randomUUID as Ke}from"node:crypto";import{DisconnectReason as qe,downloadMediaMessage as Je,extractMessageContent as Ye,getContentType as Xe,isJidGroup as Ze,normalizeMessageContent as q}from"@whiskeysockets/baileys";const Qe={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function $e(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function et(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Qe,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=p(i.factor,1.1,10),i.jitter=p(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return Ke()}const Y=c(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),tt=Y.child(`heartbeat`);function nt(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const rt=ne({ttlMs:20*6e4,maxSize:5e3});function it(e){return rt.check(e)}const at=new Set([`FN`,`N`,`TEL`]);function ot(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=st(o);if(!c||!at.has(c))continue;let l=ct(s);if(l){if(c===`FN`&&!r){r=lt(l);continue}if(c===`N`&&!n){n=lt(l);continue}if(c===`TEL`){let e=ut(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function st(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function ct(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function lt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function ut(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return q(e)}function dt(e){if(!e)return;let t=Xe(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 ft(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 pt(e){let t=Q(e);if(!t)return;let n=Ye(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=ht(t)??(n&&n!==t?ht(n):void 0);if(i)return i}function mt(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 ht(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=gt({displayName:n.displayName,vcard:n.vcard});return _t(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return vt(r.map(e=>gt({displayName:e.displayName,vcard:e.vcard})).map(e=>yt(e.name,e.phones)).filter(e=>!!e),r.length)}function gt(e){let t=(e.displayName??``).trim(),n=ot(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function _t(e,t){let n=yt(e,t);return n?`<contact: ${n}>`:`<contact>`}function vt(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 yt(e,t){let n=[e,bt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function bt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=xt(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function xt(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function St(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 Ct(e){let t=Q(e);if(!t)return null;let n=dt(t),r=q(n?.quotedMessage);if(!r)return null;let i=St(r),a=i?we(i):void 0,o=[pt(r),a].filter(Boolean).join(`
1
+ import{gt as e,ht as t,s as n,vt as r,xt as i}from"./paths-CXgWvWAM.js";import{B as a,K as o,M as s,O as c,R as l,d as u,l as d,m as f,n as p,u as m,x as h,y as g}from"./utils-BJtJR72k.js";import"./paths-rO4ehkyU.js";import{Ct as _,Dt as v,Fs as y,Hs as b,Is as x,Jn as S,Js as C,Ls as w,Or as T,Rs as ee,Tt as E,Un as D,Wi as O,Wn as k,Ws as A,tc as te,zs as j}from"./model-auth-wcxJptQX.js";import"./target-errors-CaaKhU6m.js";import{A as M,B as ne,C as N,D as P,E as re,G as F,K as I,O as ie,S as ae,T as L,U as oe,V as se,W as R,X as ce,Y as z,Z as B,_ as V,b as le,d as ue,f as H,g as U,h as W,j as G,k as de,l as fe,m as pe,o as me,p as he,q as ge,r as _e,s as ve,u as ye,v as be,x as xe,y as Se}from"./dispatch-CDpXVpXP.js";import{$ as Ce,ct as we,lt as Te}from"./send-DyzuwDjE.js";import{Mt as Ee,Nt as De,Pt as Oe}from"./send-BEmZxBcF.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-B_619b3s.js";import"./fetch-guard-DDkd30BG.js";import"./deliver-ILim6ANU.js";import"./diagnostic-Dz8HPEDe.js";import"./pi-model-discovery--UcCzdQg.js";import{f as ke}from"./audio-transcription-runner-CslXJs5c.js";import"./image-BVnZq5Y4.js";import"./api-key-rotation-Cs6II2__.js";import{t as Ae}from"./local-roots-B0zm186S.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CpG4pxrA.js";import"./fetch-B1GR6-u4.js";import{a as je,d as Me,h as Ne,m as Pe,s as Fe}from"./ir-CpkEWZD6.js";import"./render-Djx15dPh.js";import{n as Ie}from"./channel-activity-CIycjzUC.js";import{t as Le}from"./tables-C6TX2QvW.js";import"./send-B4kzPtcN.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-BZlF3g3o.js";import"./outbound-attachment-DS0S0NLK.js";import"./send-h_kE-cAK.js";import{r as Re}from"./active-listener-D6gGPLq-.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-BnytMgmq.js";import{i as ze,r as Be,t as Ve}from"./outbound-Cgc0JJtB.js";import{i as He,n as K,r as Ue,t as We}from"./session--K1m5v7m.js";import{t as Ge}from"./login-BtT7yRJO.js";import{randomUUID as Ke}from"node:crypto";import{DisconnectReason as qe,downloadMediaMessage as Je,extractMessageContent as Ye,getContentType as Xe,isJidGroup as Ze,normalizeMessageContent as q}from"@whiskeysockets/baileys";const Qe={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function $e(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function et(e,t){let n=e.web?.reconnect??{},r=t??{},i={...Qe,...n,...r};return i.initialMs=Math.max(250,i.initialMs),i.maxMs=Math.max(i.initialMs,i.maxMs),i.factor=p(i.factor,1.1,10),i.jitter=p(i.jitter,0,1),i.maxAttempts=Math.max(0,Math.floor(i.maxAttempts)),i}function J(){return Ke()}const Y=c(`gateway/channels/whatsapp`),X=Y.child(`inbound`),Z=Y.child(`outbound`),tt=Y.child(`heartbeat`);function nt(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const rt=ne({ttlMs:20*6e4,maxSize:5e3});function it(e){return rt.check(e)}const at=new Set([`FN`,`N`,`TEL`]);function ot(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=st(o);if(!c||!at.has(c))continue;let l=ct(s);if(l){if(c===`FN`&&!r){r=lt(l);continue}if(c===`N`&&!n){n=lt(l);continue}if(c===`TEL`){let e=ut(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function st(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function ct(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function lt(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function ut(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function Q(e){return q(e)}function dt(e){if(!e)return;let t=Xe(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 ft(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 pt(e){let t=Q(e);if(!t)return;let n=Ye(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=ht(t)??(n&&n!==t?ht(n):void 0);if(i)return i}function mt(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 ht(e){let t=Q(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=gt({displayName:n.displayName,vcard:n.vcard});return _t(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return vt(r.map(e=>gt({displayName:e.displayName,vcard:e.vcard})).map(e=>yt(e.name,e.phones)).filter(e=>!!e),r.length)}function gt(e){let t=(e.displayName??``).trim(),n=ot(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function _t(e,t){let n=yt(e,t);return n?`<contact: ${n}>`:`<contact>`}function vt(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 yt(e,t){let n=[e,bt(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function bt(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=xt(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function xt(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function St(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 Ct(e){let t=Q(e);if(!t)return null;let n=dt(t),r=q(n?.quotedMessage);if(!r)return null;let i=St(r),a=i?we(i):void 0,o=[pt(r),a].filter(Boolean).join(`
2
2
  `).trim();if(o||=mt(r),!o){let e=r?Xe(r):void 0;return l(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let s=n?.participant??void 0,c=s?m(s)??s:void 0,u=c??`unknown sender`;return{id:n?.stanzaId?String(n.stanzaId):void 0,body:o,sender:u,senderJid:s,senderE164:c}}function wt(e){return De({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function Tt(e){let t=O(),n=y({cfg:t,accountId:e.accountId}),r=n.dmPolicy??`pairing`,i=n.allowFrom??[],a=await oe({provider:`whatsapp`,accountId:n.accountId,dmPolicy:r}),o=i.length===0&&e.selfE164?[e.selfE164]:[],s=i.length>0?i:o,c=n.groupAllowFrom??(i.length>0?i:void 0),f=e.from===e.selfE164,p=n.selfChatMode??d(e.selfE164,i),m=typeof e.pairingGraceMs==`number`&&e.pairingGraceMs>0?e.pairingGraceMs:3e4,h=typeof e.connectedAtMs==`number`&&typeof e.messageTimestampMs==`number`&&e.messageTimestampMs<e.connectedAtMs-m,g=Ee(t),{groupPolicy:_,providerMissingFallbackApplied:v}=wt({providerConfigPresent:t.channels?.whatsapp!==void 0,groupPolicy:n.groupPolicy,defaultGroupPolicy:g});Oe({providerMissingFallbackApplied:v,providerKey:`whatsapp`,accountId:n.accountId,log:e=>l(e)});let b=u(e.from),x=typeof e.senderE164==`string`?u(e.senderE164):null,S=F({isGroup:e.group,dmPolicy:r,groupPolicy:_,allowFrom:e.group?i:s,groupAllowFrom:c,storeAllowFrom:a,isSenderAllowed:t=>{if(t.includes(`*`))return!0;let n=new Set(t.map(e=>u(String(e))).filter(e=>!!e));return!e.group&&f?!0:e.group?!!(x&&n.has(x)):n.has(b)}});if(e.group&&S.decision!==`allow`)return S.reason===`groupPolicy=disabled`?l(`Blocked group message (groupPolicy: disabled)`):S.reason===`groupPolicy=allowlist (empty allowlist)`?l(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):l(`Blocked group message from ${e.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:n.accountId};if(!e.group){if(e.isFromMe&&!f)return l(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:n.accountId};if(S.decision===`block`&&S.reason===`dmPolicy=disabled`)return l(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:n.accountId};if(S.decision===`pairing`&&!f){let t=e.from;return h?l(`Skipping pairing reply for historical DM from ${t}.`):await ge({channel:`whatsapp`,senderId:t,senderIdLine:`Your WhatsApp phone number: ${t}`,meta:{name:(e.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await Ce({channel:`whatsapp`,id:e,accountId:n.accountId,meta:t}),onCreated:()=>{l(`whatsapp pairing request sender=${t} name=${e.pushName??`unknown`}`)},sendPairingReply:async t=>{await e.sock.sendMessage(e.remoteJid,{text:t})},onReplyError:e=>{l(`whatsapp pairing reply failed for ${t}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:n.accountId}}if(S.decision!==`allow`)return l(`Blocked unauthorized sender ${e.from} (dmPolicy=${r})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:p,resolvedAccountId:n.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:p,resolvedAccountId:n.accountId}}function Et(e){return q(e)}function Dt(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 Ot(e,t){let n=Et(e.message);if(!n)return;let r=Dt(n),i=n.documentMessage?.fileName??void 0;if(!(!n.imageMessage&&!n.videoMessage&&!n.documentMessage&&!n.audioMessage&&!n.stickerMessage))try{return{buffer:await Je(e,`buffer`,{},{reuploadRequest:t.updateMediaMessage,logger:t.logger}),mimetype:r,fileName:i}}catch(e){l(`downloadMediaMessage failed: ${String(e)}`);return}}function kt(e){Ie({channel:`whatsapp`,accountId:e,direction:`outbound`})}function At(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function jt(e){return{sendMessage:async(t,n,r,i,a)=>{let o=h(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 kt(a?.accountId??e.defaultAccountId),{messageId:At(c)}},sendPoll:async(t,n)=>{let r=h(t),i=await e.sock.sendMessage(r,{poll:{name:n.question,values:n.options,selectableCount:n.maxSelections??1}});return kt(e.defaultAccountId),{messageId:At(i)}},sendReaction:async(t,n,r,i,a)=>{let o=h(t);await e.sock.sendMessage(o,{react:{text:r,key:{remoteJid:o,id:n,fromMe:i,participant:a?h(a):void 0}}})},sendComposingTo:async t=>{let n=h(t);await e.sock.sendPresenceUpdate(`composing`,n)}}}async function Mt(e){let t=o({module:`web-inbound`}),n=c(`gateway/channels/whatsapp`).child(`inbound`),r=await We(!1,e.verbose,{authDir:e.authDir});await He(r);let i=Date.now(),s=null,u=new Promise(e=>{s=e}),d=e=>{if(!s)return;let t=s;s=null,t(e)};try{await r.sendPresenceUpdate(`available`),a()&&l(`Sent global 'available' presence on connect`)}catch(e){l(`Failed to send 'available' presence on connect: ${String(e)}`)}let p=r.user?.id,h=p?m(p):null,g=L({debounceMs:e.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:e.shouldDebounce,onFlush:async t=>{let n=t.at(-1);if(!n)return;if(t.length===1){await e.onMessage(n);return}let r=new Set;for(let e of t)for(let t of e.mentionedJids??[])r.add(t);let i=t.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await e.onMessage(a)},onError:e=>{t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)}}),_=new Map,v=300*1e3,y=r.signalRepository?.lidMapping,b=async t=>f(t,{authDir:e.authDir,lidLookup:y}),x=async e=>{let t=_.get(e);if(t&&t.expires>Date.now())return t;try{let t=await r.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await b(e.id)??e.id)??[])).filter(Boolean)??[],i={subject:t.subject,participants:n,expires:Date.now()+v};return _.set(e,i),i}catch(t){return l(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+v}}},S=async t=>{let n=t.key?.id??void 0,a=t.key?.remoteJid;if(!a||a.endsWith(`@status`)||a.endsWith(`@broadcast`))return null;let o=Ze(a)===!0;if(n&&it(`${e.accountId}:${a}:${n}`))return null;let s=t.key?.participant??void 0,c=o?a:await b(a);if(!c)return null;let l=o?s?await b(s):null:c,u,d;if(o){let e=await x(a);u=e.subject,d=e.participants}let f=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,p=await Tt({accountId:e.accountId,from:c,selfE164:h,senderE164:l,group:o,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:f,connectedAtMs:i,sock:{sendMessage:(e,t)=>r.sendMessage(e,t)},remoteJid:a});return p.allowed?{id:n,remoteJid:a,group:o,participantJid:s,from:c,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},C=async t=>{let{id:n,remoteJid:i,participantJid:o,access:s}=t;if(n&&!s.isSelfChat&&e.sendReadReceipts!==!1)try{await r.readMessages([{remoteJid:i,id:n,participant:o,fromMe:!1}]),a()&&l(`Marked message ${n} as read for ${i}${o?` (participant ${o})`:``}`)}catch(e){l(`Failed to mark message ${n} read: ${String(e)}`)}else n&&s.isSelfChat&&a()&&l(`Self-chat mode: skipping read receipt for ${n}`)},w=async t=>{let n=St(t.message??void 0),i=n?we(n):void 0,a=pt(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
4
4
  `).trim()),!a&&(a=mt(t.message??void 0),!a))return null;let o=Ct(t.message),s,c,u;try{let n=await Ot(t,r);if(n){let t=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;s=(await T(n.buffer,n.mimetype,`inbound`,t,n.fileName)).path,c=n.mimetype,u=n.fileName}}catch(e){l(`Inbound media download failed: ${String(e)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:s,mediaType:c,mediaFileName:u}},ee=async(e,i,a)=>{let o=i.remoteJid,s=async()=>{try{await r.sendPresenceUpdate(`composing`,o)}catch(e){l(`Presence update failed: ${String(e)}`)}},c=async e=>{await r.sendMessage(o,{text:e})},u=async e=>{await r.sendMessage(o,e)},d=i.messageTimestampMs,f=ft(e.message),m=e.pushName??void 0;t.info({from:i.from,to:h??`me`,body:a.body,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName,timestamp:d},`inbound message`);let _={id:i.id,from:i.from,conversationId:i.from,to:h??`me`,accountId:i.access.resolvedAccountId,body:a.body,pushName:m,timestamp:d,chatType:i.group?`group`:`direct`,chatId:i.remoteJid,senderJid:i.participantJid,senderE164:i.senderE164??void 0,senderName:m,replyToId:a.replyContext?.id,replyToBody:a.replyContext?.body,replyToSender:a.replyContext?.sender,replyToSenderJid:a.replyContext?.senderJid,replyToSenderE164:a.replyContext?.senderE164,groupSubject:i.groupSubject,groupParticipants:i.groupParticipants,mentionedJids:f??void 0,selfJid:p,selfE164:h,fromMe:!!e.key?.fromMe,location:a.location??void 0,sendComposing:s,reply:c,sendMedia:u,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName};try{Promise.resolve(g.enqueue(_)).catch(e=>{t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){t.error({error:String(e)},`failed handling inbound web message`),n.error(`Failed handling inbound web message: ${String(e)}`)}},E=async t=>{if(!(t.type!==`notify`&&t.type!==`append`))for(let n of t.messages??[]){Ie({channel:`whatsapp`,accountId:e.accountId,direction:`inbound`});let r=await S(n);if(!r||(await C(r),t.type===`append`))continue;let i=await w(n);i&&await ee(n,r,i)}};r.ev.on(`messages.upsert`,E);let D=e=>{try{if(e.connection===`close`){let t=Ue(e.lastDisconnect?.error);d({status:t,isLoggedOut:t===qe.loggedOut,error:e.lastDisconnect?.error})}}catch(e){t.error({error:String(e)},`connection.update handler error`),d({status:void 0,isLoggedOut:!1,error:e})}};return r.ev.on(`connection.update`,D),{close:async()=>{try{let e=r.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)),r.ws?.close()}catch(e){l(`Socket close failed: ${String(e)}`)}},onClose:u,signalClose:e=>{d(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...jt({sock:{sendMessage:(e,t)=>r.sendMessage(e,t),sendPresenceUpdate:(e,t)=>r.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function Nt(e,t){return{mentionRegexes:M(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Pt(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>m(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?m(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Ft(e,t,n){let r=e=>G(e),i=d(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 It(e,t,n){let r=Pt(e,n);return{wasMentioned:Ft(e,t,r),details:{from:e.from,body:e.body,bodyClean:G(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 Lt(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>u(e)).filter(e=>!!e)}function Rt(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 zt(n){let r=U({agentId:n.agentId,channel:`whatsapp`,accountId:n.route.accountId,peer:{kind:n.msg.chatType===`group`?`group`:`direct`,id:n.peerId},dmScope:n.cfg.session?.dmScope,identityLinks:n.cfg.session?.identityLinks}),i=e({agentId:n.agentId,mainKey:t});return{sessionKey:r,mainSessionKey:i,lastRoutePolicy:V({sessionKey:r,mainSessionKey:i})}}async function Bt(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=>i(e.id)),a=(r?.length??0)>0,o=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,s=async t=>{let n=i(t);if(a&&!r?.includes(n))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let s=zt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),c={...e.route,agentId:n,...s};try{return await e.processMessage(e.msg,c,e.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${K(e)}`),!1}};if(n===`sequential`)for(let e of t)await s(e);else await Promise.allSettled(t.map(s));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Vt(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 Ht(e,t){let n=S({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return D({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Ut(e,t){let n=S({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return k({cfg:e,channel:`whatsapp`,groupId:n??t})}function Wt(e){let t=_(n(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],r=Ut(e.cfg,e.conversationId)?`mention`:`always`;return me(t?.groupActivation)??r}function Gt(e,t,n){for(let r of e){let e=u(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Kt(e,t,n,r){if(!n||!r)return;let i=u(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function qt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&Gt(t,i,a),n&&Gt(n.keys(),i,a),a.length===0&&r){let e=u(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 Jt(e,t){let n=u(t.senderE164??``);return n?Lt(e,t.selfE164??void 0).includes(n):!1}function Yt(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;W({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 Xt(e,t){return e.logVerbose(t),Yt({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Zt(e){let t=Ht(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Kt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Nt(e.cfg,e.agentId),r=Vt(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=ve(r),a=Jt(e.baseMentionConfig,e.msg),o=a&&ie(r,e.cfg);if(i.hasCommand&&!a)return Xt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let s=It(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:s.wasMentioned,...s.details},`group mention debug`);let c=s.wasMentioned,l=Wt({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?u(e.msg.selfE164):null,m=e.msg.replyToSenderE164?u(e.msg.replyToSenderE164):null,h=he({requireMention:l,canDetectMention:!0,wasMentioned:c,implicitMention:!!(d&&f&&d===f||p&&m&&p===m),shouldBypassMention:o});return e.msg.wasMentioned=h.effectiveWasMentioned,!o&&l&&h.shouldSkip?Xt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Qt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function $t(e){let t=n(e.cfg.session?.store,{agentId:e.storeAgentId}),r=v({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:K(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Qt(e.backgroundTasks,r)}function en(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?u(e.senderE164)??e.senderE164:e.from.includes(`@`)?m(e.from)??e.from:u(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function tn(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 nn(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function rn(e){let{replyResult:t,msg:n,maxMediaBytes:r,textLimit:i,replyLogger:o,connectionId:s,skipLog:c}=e,u=Date.now();if(nn(t)){Z.debug(`Suppressed reasoning payload to ${n.from}`);return}let d=e.tableMode??`code`,f=e.chunkMode??`length`,p=Me(ze(Le(t.text||``,d)),i,f),m=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],h=async(e,t,r=3)=>{let i;for(let a=1;a<=r;a++)try{return await e()}catch(e){i=e;let o=K(e),s=a===r;if(!/closed|reset|timed\s*out|disconnect/i.test(o)||s)throw e;let c=500*a;l(`Retrying ${t} to ${n.from} after failure (${a}/${r-1}) in ${c}ms: ${o}`),await g(c)}throw i};if(m.length===0&&p.length){let e=p.length;for(let[t,r]of p.entries()){let i=Date.now();if(await h(()=>n.reply(r),`text`),!c){let r=Date.now()-i;Z.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}o.info({correlationId:n.id??J(),connectionId:s??null,to:n.from,from:n.to,text:$(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-u},`auto-reply sent (text)`);return}let _=[...p];for(let[t,i]of m.entries()){let c=t===0&&_.shift()||void 0;try{let t=await je(i,{maxBytes:r,localRoots:e.mediaLocalRoots});if(a()&&(l(`Web auto-reply media size: ${(t.buffer.length/(1024*1024)).toFixed(2)}MB`),l(`Web auto-reply media source: ${i} (kind ${t.kind})`)),t.kind===`image`)await h(()=>n.sendMedia({image:t.buffer,caption:c,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await h(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:c}),`media:audio`);else if(t.kind===`video`)await h(()=>n.sendMedia({video:t.buffer,caption:c,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??i.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await h(()=>n.sendMedia({document:t.buffer,fileName:e,caption:c,mimetype:r}),`media:document`)}Z.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),o.info({correlationId:n.id??J(),connectionId:s??null,to:n.from,from:n.to,text:c??null,mediaUrl:i,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-u},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${n.from}: ${K(e)}`),o.warn({err:e,mediaUrl:i},`failed to send web media reply`),t===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,r=[_.shift()??c??``,t].filter(Boolean).join(`
@@ -1 +1 @@
1
- import"./paths-cBAF6Bj0.js";import{Ds as e,Ms as t,Rs as n,ks as r}from"./sessions-BwTjGneU.js";import"./logger-vBDTZWl3.js";import"./paths-CnHSNSeR.js";import"./proxy-env-B765haXA.js";import"./send-Chfe8tPY.js";import"./common-CEe87dmX.js";import"./send-IM-76QZu.js";import"./reply-Clex4c2R.js";import"./github-copilot-token-N8vnLZPw.js";import"./send-CFKQX2Wo.js";import{n as i,t as a}from"./channel-web-Ces_xx2T.js";import"./tokens-B8ys7Q2e.js";import"./audio-transcription-runner-CRYJlAeP.js";import"./image-CKLAyhco.js";import"./fetch-guard-DPVfELS7.js";import"./api-key-rotation-CxaiMcI1.js";import"./local-roots-H4-t0qG_.js";import"./proxy-fetch-CYVChsKE.js";import"./deliver-DFz5N1Eh.js";import"./commands-registry-DOBe9cWq.js";import"./fetch-CCLWsYaQ.js";import"./diagnostic-DkncnZ3G.js";import"./pi-model-discovery-DejkxBol.js";import"./ir-B0_rUT7m.js";import"./render-CBsnn-2A.js";import"./send-DAtg_VHa.js";import"./outbound-attachment-BVdSGifg.js";import"./send-CJJdcDHX.js";import"./channel-activity-C01Im_o1.js";import"./tables-DYuLwL1d.js";import"./fetch-C-HRWp5R.js";import"./skill-commands-CVsU5rEy.js";import"./query-expansion-C_DnhmUy.js";import"./manager-CYZY9vcM.js";import{t as o}from"./outbound-Bvu4LbQx.js";import{i as s,t as c}from"./session-BZHltxdM.js";import{t as l}from"./login-COzybMRK.js";export{e as WA_WEB_AUTH_DIR,c as createWaSocket,r as logWebSelfId,l as loginWeb,a as monitorWebChannel,i as monitorWebInbox,t as pickWebChannel,o as sendMessageWhatsApp,s as waitForWaConnection,n as webAuthExists};
1
+ import"./paths-cBAF6Bj0.js";import{Ds as e,Ms as t,Rs as n,ks as r}from"./sessions-BwTjGneU.js";import"./logger-vBDTZWl3.js";import"./paths-CnHSNSeR.js";import"./proxy-env-B765haXA.js";import"./send-Chfe8tPY.js";import"./common-CEe87dmX.js";import"./send-IM-76QZu.js";import"./reply-DVyXycvP.js";import"./github-copilot-token-N8vnLZPw.js";import"./send-CFKQX2Wo.js";import{n as i,t as a}from"./channel-web-BeV4rAGn.js";import"./tokens-B8ys7Q2e.js";import"./audio-transcription-runner-CRYJlAeP.js";import"./image-CKLAyhco.js";import"./fetch-guard-DPVfELS7.js";import"./api-key-rotation-CxaiMcI1.js";import"./local-roots-H4-t0qG_.js";import"./proxy-fetch-CYVChsKE.js";import"./deliver-DFz5N1Eh.js";import"./commands-registry-DOBe9cWq.js";import"./fetch-CCLWsYaQ.js";import"./diagnostic-DkncnZ3G.js";import"./pi-model-discovery-DejkxBol.js";import"./ir-B0_rUT7m.js";import"./render-CBsnn-2A.js";import"./send-DAtg_VHa.js";import"./outbound-attachment-BVdSGifg.js";import"./send-CJJdcDHX.js";import"./channel-activity-C01Im_o1.js";import"./tables-DYuLwL1d.js";import"./fetch-C-HRWp5R.js";import"./skill-commands-CVsU5rEy.js";import"./query-expansion-C_DnhmUy.js";import"./manager-CYZY9vcM.js";import{t as o}from"./outbound-Bvu4LbQx.js";import{i as s,t as c}from"./session-BZHltxdM.js";import{t as l}from"./login-COzybMRK.js";export{e as WA_WEB_AUTH_DIR,c as createWaSocket,r as logWebSelfId,l as loginWeb,a as monitorWebChannel,i as monitorWebInbox,t as pickWebChannel,o as sendMessageWhatsApp,s as waitForWaConnection,n as webAuthExists};
@@ -1,4 +1,4 @@
1
- require(`./paths-BvlJvmRS.cjs`);const e=require(`./paths-Chp3zwtq.cjs`),t=require(`./logger-BlddiV_d.cjs`),n=require(`./model-auth-CKlA2xRB.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-DCF59ijQ.cjs`);const r=require(`./send-D13uFnzH.cjs`),i=require(`./dispatch-Bi3yeWxb.cjs`);require(`./tokens-DtrljGtQ.cjs`),require(`./deliver-BiBFW5fm.cjs`),require(`./github-copilot-token-DoHgkI2r.cjs`),require(`./fetch-guard-DqTxZ3G8.cjs`);const a=require(`./send-Bp4f-KJu.cjs`),o=require(`./local-roots-B4Uy4kG3.cjs`),s=require(`./ir-B7agH4cQ.cjs`);require(`./diagnostic-C0xDsk89.cjs`),require(`./pi-model-discovery-DdSVvbQ5.cjs`);const c=require(`./audio-transcription-runner-DoR-NOcV.cjs`);require(`./image-KfZYW6Lh.cjs`),require(`./api-key-rotation-CmesQWXP.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-D-AnIQWz.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-B-mJ4s4b.cjs`);const l=require(`./channel-activity-Bu8tAmGa.cjs`),u=require(`./tables-C5b2CtNw.cjs`);require(`./send-Cs5jSTw0.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-CM9ziCQY.cjs`),require(`./outbound-attachment-CtA5eBgj.cjs`),require(`./send-mZ_d-t_3.cjs`);const d=require(`./active-listener-UmFpcYFY.cjs`);require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-BeLNhsXC.cjs`);const f=require(`./outbound-B03BQa7T.cjs`),p=require(`./session-C_yqyp3P.cjs`),m=require(`./login-BXUtcSnB.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,n){let r=e.web?.reconnect??{},i=n??{},a={..._,...r,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=t.o(a.factor,1.1,10),a.jitter=t.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=t.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=i.I({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let n=N(e);if(!n)return null;let r=P(n),i=(0,g.normalizeMessageContent)(r?.quotedMessage);if(!i)return null;let o=ne(i),s=o?a.J(o):void 0,c=[I(i),s].filter(Boolean).join(`
1
+ require(`./paths-BvlJvmRS.cjs`);const e=require(`./paths-Chp3zwtq.cjs`),t=require(`./logger-BlddiV_d.cjs`),n=require(`./model-auth-CKlA2xRB.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-DCF59ijQ.cjs`);const r=require(`./send-D13uFnzH.cjs`),i=require(`./dispatch-DpztrKuM.cjs`);require(`./tokens-DtrljGtQ.cjs`),require(`./deliver-BiBFW5fm.cjs`),require(`./github-copilot-token-DoHgkI2r.cjs`),require(`./fetch-guard-DqTxZ3G8.cjs`);const a=require(`./send-Bp4f-KJu.cjs`),o=require(`./local-roots-B4Uy4kG3.cjs`),s=require(`./ir-B7agH4cQ.cjs`);require(`./diagnostic-C0xDsk89.cjs`),require(`./pi-model-discovery-DdSVvbQ5.cjs`);const c=require(`./audio-transcription-runner-DoR-NOcV.cjs`);require(`./image-KfZYW6Lh.cjs`),require(`./api-key-rotation-CmesQWXP.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-D-AnIQWz.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-B-mJ4s4b.cjs`);const l=require(`./channel-activity-Bu8tAmGa.cjs`),u=require(`./tables-C5b2CtNw.cjs`);require(`./send-Cs5jSTw0.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-CM9ziCQY.cjs`),require(`./outbound-attachment-CtA5eBgj.cjs`),require(`./send-mZ_d-t_3.cjs`);const d=require(`./active-listener-UmFpcYFY.cjs`);require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-BeLNhsXC.cjs`);const f=require(`./outbound-B03BQa7T.cjs`),p=require(`./session-C_yqyp3P.cjs`),m=require(`./login-BXUtcSnB.cjs`);let h=require(`node:crypto`),g=require(`@whiskeysockets/baileys`);const _={initialMs:2e3,maxMs:3e4,factor:1.8,jitter:.25,maxAttempts:12};function v(e,t){let n=t??e.web?.heartbeatSeconds;return typeof n==`number`&&n>0?n:60}function y(e,n){let r=e.web?.reconnect??{},i=n??{},a={..._,...r,...i};return a.initialMs=Math.max(250,a.initialMs),a.maxMs=Math.max(a.initialMs,a.maxMs),a.factor=t.o(a.factor,1.1,10),a.jitter=t.o(a.jitter,0,1),a.maxAttempts=Math.max(0,Math.floor(a.maxAttempts)),a}function b(){return(0,h.randomUUID)()}const x=t.O(`gateway/channels/whatsapp`),S=x.child(`inbound`),C=x.child(`outbound`),ee=x.child(`heartbeat`);function w(){return setInterval(()=>{},1e6).unref(),new Promise(()=>{})}const T=i.I({ttlMs:20*6e4,maxSize:5e3});function E(e){return T.check(e)}const D=new Set([`FN`,`N`,`TEL`]);function O(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=k(o);if(!c||!D.has(c))continue;let l=A(s);if(l){if(c===`FN`&&!r){r=j(l);continue}if(c===`N`&&!n){n=j(l);continue}if(c===`TEL`){let e=M(l);e&&i.push(e)}}}return{name:r??n,phones:i}}function k(e){let[t]=e.split(`;`);if(!t)return;let n=t.split(`.`);return n[n.length-1]||void 0}function A(e){return e.replace(/\\n/gi,` `).replace(/\\,/g,`,`).replace(/\\;/g,`;`).trim()}function j(e){return e.replace(/;/g,` `).replace(/\s+/g,` `).trim()}function M(e){let t=e.trim();return t?t.toLowerCase().startsWith(`tel:`)?t.slice(4).trim():t:``}function N(e){return(0,g.normalizeMessageContent)(e)}function P(e){if(!e)return;let t=(0,g.getContentType)(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 F(e){let t=N(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 I(e){let t=N(e);if(!t)return;let n=(0,g.extractMessageContent)(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=R(t)??(n&&n!==t?R(n):void 0);if(i)return i}function L(e){let t=N(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 R(e){let t=N(e);if(!t)return;let n=t.contactMessage??void 0;if(n){let{name:e,phones:t}=z({displayName:n.displayName,vcard:n.vcard});return B(e,t)}let r=t.contactsArrayMessage?.contacts??void 0;if(!(!r||r.length===0))return V(r.map(e=>z({displayName:e.displayName,vcard:e.vcard})).map(e=>H(e.name,e.phones)).filter(e=>!!e),r.length)}function z(e){let t=(e.displayName??``).trim(),n=O(e.vcard??void 0);return{name:t||n.name,phones:n.phones}}function B(e,t){let n=H(e,t);return n?`<contact: ${n}>`:`<contact>`}function V(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 H(e,t){let n=[e,U(t)].filter(e=>!!e);if(n.length!==0)return n.join(`, `)}function U(e){let t=e?.map(e=>e.trim()).filter(Boolean)??[];if(t.length===0)return;let{shown:n,remaining:r}=te(t,t.length,1),[i]=n;if(i)return r===0?i:`${i} (+${r} more)`}function te(e,t,n){let r=e.slice(0,n);return{shown:r,remaining:Math.max(t-r.length,0)}}function ne(e){let t=N(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 W(e){let n=N(e);if(!n)return null;let r=P(n),i=(0,g.normalizeMessageContent)(r?.quotedMessage);if(!i)return null;let o=ne(i),s=o?a.J(o):void 0,c=[I(i),s].filter(Boolean).join(`
2
2
  `).trim();if(c||=L(i),!c){let e=i?(0,g.getContentType)(i):void 0;return t.R(`Quoted message missing extractable body${e?` (type ${e})`:``}`),null}let l=r?.participant??void 0,u=l?t.m(l)??l:void 0,d=u??`unknown sender`;return{id:r?.stanzaId?String(r.stanzaId):void 0,body:c,sender:d,senderJid:l,senderE164:u}}function re(e){return r.Pt({providerConfigPresent:e.providerConfigPresent,groupPolicy:e.groupPolicy,defaultGroupPolicy:e.defaultGroupPolicy})}async function ie(e){let o=n.Si(),s=n.js({cfg:o,accountId:e.accountId}),c=s.dmPolicy??`pairing`,l=s.allowFrom??[],u=await i.z({provider:`whatsapp`,accountId:s.accountId,dmPolicy:c}),d=l.length===0&&e.selfE164?[e.selfE164]:[],f=l.length>0?l:d,p=s.groupAllowFrom??(l.length>0?l:void 0),m=e.from===e.selfE164,h=s.selfChatMode??t.p(e.selfE164,l),g=typeof e.pairingGraceMs==`number`&&e.pairingGraceMs>0?e.pairingGraceMs:3e4,_=typeof e.connectedAtMs==`number`&&typeof e.messageTimestampMs==`number`&&e.messageTimestampMs<e.connectedAtMs-g,v=r.Nt(o),{groupPolicy:y,providerMissingFallbackApplied:b}=re({providerConfigPresent:o.channels?.whatsapp!==void 0,groupPolicy:s.groupPolicy,defaultGroupPolicy:v});r.Ft({providerMissingFallbackApplied:b,providerKey:`whatsapp`,accountId:s.accountId,log:e=>t.R(e)});let x=t.h(e.from),S=typeof e.senderE164==`string`?t.h(e.senderE164):null,C=i.V({isGroup:e.group,dmPolicy:c,groupPolicy:y,allowFrom:e.group?l:f,groupAllowFrom:p,storeAllowFrom:u,isSenderAllowed:n=>{if(n.includes(`*`))return!0;let r=new Set(n.map(e=>t.h(String(e))).filter(e=>!!e));return!e.group&&m?!0:e.group?!!(S&&r.has(S)):r.has(x)}});if(e.group&&C.decision!==`allow`)return C.reason===`groupPolicy=disabled`?t.R(`Blocked group message (groupPolicy: disabled)`):C.reason===`groupPolicy=allowlist (empty allowlist)`?t.R(`Blocked group message (groupPolicy: allowlist, no groupAllowFrom)`):t.R(`Blocked group message from ${e.senderE164??`unknown sender`} (groupPolicy: allowlist)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(!e.group){if(e.isFromMe&&!m)return t.R(`Skipping outbound DM (fromMe); no pairing reply needed.`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`block`&&C.reason===`dmPolicy=disabled`)return t.R(`Blocked dm (dmPolicy: disabled)`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId};if(C.decision===`pairing`&&!m){let n=e.from;return _?t.R(`Skipping pairing reply for historical DM from ${n}.`):await i.p({channel:`whatsapp`,senderId:n,senderIdLine:`Your WhatsApp phone number: ${n}`,meta:{name:(e.pushName??``).trim()||void 0},upsertPairingRequest:async({id:e,meta:t})=>await a.tt({channel:`whatsapp`,id:e,accountId:s.accountId,meta:t}),onCreated:()=>{t.R(`whatsapp pairing request sender=${n} name=${e.pushName??`unknown`}`)},sendPairingReply:async t=>{await e.sock.sendMessage(e.remoteJid,{text:t})},onReplyError:e=>{t.R(`whatsapp pairing reply failed for ${n}: ${String(e)}`)}}),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}if(C.decision!==`allow`)return t.R(`Blocked unauthorized sender ${e.from} (dmPolicy=${c})`),{allowed:!1,shouldMarkRead:!1,isSelfChat:h,resolvedAccountId:s.accountId}}return{allowed:!0,shouldMarkRead:!0,isSelfChat:h,resolvedAccountId:s.accountId}}function G(e){return(0,g.normalizeMessageContent)(e)}function K(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 ae(e,n){let r=G(e.message);if(!r)return;let i=K(r),a=r.documentMessage?.fileName??void 0;if(!(!r.imageMessage&&!r.videoMessage&&!r.documentMessage&&!r.audioMessage&&!r.stickerMessage))try{return{buffer:await(0,g.downloadMediaMessage)(e,`buffer`,{},{reuploadRequest:n.updateMediaMessage,logger:n.logger}),mimetype:i,fileName:a}}catch(e){t.R(`downloadMediaMessage failed: ${String(e)}`);return}}function q(e){l.n({channel:`whatsapp`,accountId:e,direction:`outbound`})}function J(e){return typeof e==`object`&&e&&`key`in e?String(e.key?.id??`unknown`):`unknown`}function Y(e){return{sendMessage:async(n,r,i,a,o)=>{let s=t.T(n),c;if(i&&a)if(a.startsWith(`image/`))c={image:i,caption:r||void 0,mimetype:a};else if(a.startsWith(`audio/`))c={audio:i,ptt:!0,mimetype:a};else if(a.startsWith(`video/`)){let e=o?.gifPlayback;c={video:i,caption:r||void 0,mimetype:a,...e?{gifPlayback:!0}:{}}}else c={document:i,fileName:o?.fileName?.trim()||`file`,caption:r||void 0,mimetype:a};else c={text:r};let l=await e.sock.sendMessage(s,c);return q(o?.accountId??e.defaultAccountId),{messageId:J(l)}},sendPoll:async(n,r)=>{let i=t.T(n),a=await e.sock.sendMessage(i,{poll:{name:r.question,values:r.options,selectableCount:r.maxSelections??1}});return q(e.defaultAccountId),{messageId:J(a)}},sendReaction:async(n,r,i,a,o)=>{let s=t.T(n);await e.sock.sendMessage(s,{react:{text:i,key:{remoteJid:s,id:r,fromMe:a,participant:o?t.T(o):void 0}}})},sendComposingTo:async n=>{let r=t.T(n);await e.sock.sendPresenceUpdate(`composing`,r)}}}async function oe(e){let r=t.K({module:`web-inbound`}),o=t.O(`gateway/channels/whatsapp`).child(`inbound`),s=await p.t(!1,e.verbose,{authDir:e.authDir});await p.i(s);let c=Date.now(),u=null,d=new Promise(e=>{u=e}),f=e=>{if(!u)return;let t=u;u=null,t(e)};try{await s.sendPresenceUpdate(`available`),t.B()&&t.R(`Sent global 'available' presence on connect`)}catch(e){t.R(`Failed to send 'available' presence on connect: ${String(e)}`)}let m=s.user?.id,h=m?t.m(m):null,_=i.C({debounceMs:e.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:e.shouldDebounce,onFlush:async t=>{let n=t.at(-1);if(!n)return;if(t.length===1){await e.onMessage(n);return}let r=new Set;for(let e of t)for(let t of e.mentionedJids??[])r.add(t);let i=t.map(e=>e.body).filter(Boolean).join(`
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await e.onMessage(a)},onError:e=>{r.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 n=>t.v(n,{authDir:e.authDir,lidLookup:b}),S=async e=>{let n=v.get(e);if(n&&n.expires>Date.now())return n;try{let t=await s.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await x(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:t.subject,participants:n,expires:Date.now()+y};return v.set(e,r),r}catch(n){return t.R(`Failed to fetch group metadata for ${e}: ${String(n)}`),{expires:Date.now()+y}}},C=async t=>{let n=t.key?.id??void 0,r=t.key?.remoteJid;if(!r||r.endsWith(`@status`)||r.endsWith(`@broadcast`))return null;let i=(0,g.isJidGroup)(r)===!0;if(n&&E(`${e.accountId}:${r}:${n}`))return null;let a=t.key?.participant??void 0,o=i?r:await x(r);if(!o)return null;let l=i?a?await x(a):null:o,u,d;if(i){let e=await S(r);u=e.subject,d=e.participants}let f=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,p=await ie({accountId:e.accountId,from:o,selfE164:h,senderE164:l,group:i,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:f,connectedAtMs:c,sock:{sendMessage:(e,t)=>s.sendMessage(e,t)},remoteJid:r});return p.allowed?{id:n,remoteJid:r,group:i,participantJid:a,from:o,senderE164:l,groupSubject:u,groupParticipants:d,messageTimestampMs:f,access:p}:null},ee=async n=>{let{id:r,remoteJid:i,participantJid:a,access:o}=n;if(r&&!o.isSelfChat&&e.sendReadReceipts!==!1)try{await s.readMessages([{remoteJid:i,id:r,participant:a,fromMe:!1}]),t.B()&&t.R(`Marked message ${r} as read for ${i}${a?` (participant ${a})`:``}`)}catch(e){t.R(`Failed to mark message ${r} read: ${String(e)}`)}else r&&o.isSelfChat&&t.B()&&t.R(`Self-chat mode: skipping read receipt for ${r}`)},w=async r=>{let i=ne(r.message??void 0),o=i?a.J(i):void 0,c=I(r.message??void 0);if(o&&(c=[c,o].filter(Boolean).join(`
4
4
  `).trim()),!c&&(c=L(r.message??void 0),!c))return null;let l=W(r.message),u,d,f;try{let t=await ae(r,s);if(t){let r=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;u=(await n.nr(t.buffer,t.mimetype,`inbound`,r,t.fileName)).path,d=t.mimetype,f=t.fileName}}catch(e){t.R(`Inbound media download failed: ${String(e)}`)}return{body:c,location:i??void 0,replyContext:l,mediaPath:u,mediaType:d,mediaFileName:f}},T=async(e,n,i)=>{let a=n.remoteJid,c=async()=>{try{await s.sendPresenceUpdate(`composing`,a)}catch(e){t.R(`Presence update failed: ${String(e)}`)}},l=async e=>{await s.sendMessage(a,{text:e})},u=async e=>{await s.sendMessage(a,e)},d=n.messageTimestampMs,f=F(e.message),p=e.pushName??void 0;r.info({from:n.from,to:h??`me`,body:i.body,mediaPath:i.mediaPath,mediaType:i.mediaType,mediaFileName:i.mediaFileName,timestamp:d},`inbound message`);let g={id:n.id,from:n.from,conversationId:n.from,to:h??`me`,accountId:n.access.resolvedAccountId,body:i.body,pushName:p,timestamp:d,chatType:n.group?`group`:`direct`,chatId:n.remoteJid,senderJid:n.participantJid,senderE164:n.senderE164??void 0,senderName:p,replyToId:i.replyContext?.id,replyToBody:i.replyContext?.body,replyToSender:i.replyContext?.sender,replyToSenderJid:i.replyContext?.senderJid,replyToSenderE164:i.replyContext?.senderE164,groupSubject:n.groupSubject,groupParticipants:n.groupParticipants,mentionedJids:f??void 0,selfJid:m,selfE164:h,fromMe:!!e.key?.fromMe,location:i.location??void 0,sendComposing:c,reply:l,sendMedia:u,mediaPath:i.mediaPath,mediaType:i.mediaType,mediaFileName:i.mediaFileName};try{Promise.resolve(_.enqueue(g)).catch(e=>{r.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){r.error({error:String(e)},`failed handling inbound web message`),o.error(`Failed handling inbound web message: ${String(e)}`)}},D=async t=>{if(!(t.type!==`notify`&&t.type!==`append`))for(let n of t.messages??[]){l.n({channel:`whatsapp`,accountId:e.accountId,direction:`inbound`});let r=await C(n);if(!r||(await ee(r),t.type===`append`))continue;let i=await w(n);i&&await T(n,r,i)}};s.ev.on(`messages.upsert`,D);let O=e=>{try{if(e.connection===`close`){let t=p.r(e.lastDisconnect?.error);f({status:t,isLoggedOut:t===g.DisconnectReason.loggedOut,error:e.lastDisconnect?.error})}}catch(e){r.error({error:String(e)},`connection.update handler error`),f({status:void 0,isLoggedOut:!1,error:e})}};return s.ev.on(`connection.update`,O),{close:async()=>{try{let e=s.ev,t=D,n=O;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(e){t.R(`Socket close failed: ${String(e)}`)}},onClose:d,signalClose:e=>{f(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...Y({sock:{sendMessage:(e,t)=>s.sendMessage(e,t),sendPresenceUpdate:(e,t)=>s.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function X(e,t){return{mentionRegexes:i.ct(e,t),allowFrom:e.channels?.whatsapp?.allowFrom}}function Z(e,n){let r=n?{authDir:n}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>t.m(e,r)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?t.m(e.selfJid,r):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Q(e,n,r){let a=e=>i.lt(e),o=t.p(r.selfE164,n.allowFrom);if((e.mentionedJids?.length??0)>0&&!o)return!!(r.selfE164&&r.normalizedMentions.includes(r.selfE164)||r.selfJid&&r.normalizedMentions.includes(r.selfJid));let s=a(e.body);if(n.mentionRegexes.some(e=>e.test(s)))return!0;if(r.selfE164){let t=r.selfE164.replace(/\D/g,``);if(t){if(s.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 se(e,t,n){let r=Z(e,n);return{wasMentioned:Q(e,t,r),details:{from:e.from,body:e.body,bodyClean:i.lt(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 ce(e,n){let r=e.allowFrom;return(Array.isArray(r)&&r.length>0?r:n?[n]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>t.h(e)).filter(e=>!!e)}function le(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 ue(t){let n=i.m({agentId:t.agentId,channel:`whatsapp`,accountId:t.route.accountId,peer:{kind:t.msg.chatType===`group`?`group`:`direct`,id:t.peerId},dmScope:t.cfg.session?.dmScope,identityLinks:t.cfg.session?.identityLinks}),r=e.wt({agentId:t.agentId,mainKey:e.Ct});return{sessionKey:n,mainSessionKey:r,lastRoutePolicy:i.h({sessionKey:n,mainSessionKey:r})}}async function de(t){let n=t.cfg.broadcast?.[t.peerId];if(!n||!Array.isArray(n)||n.length===0)return!1;let r=t.cfg.broadcast?.strategy||`parallel`;S.info(`Broadcasting message to ${n.length} agents (${r})`);let i=t.cfg.agents?.list?.map(t=>e.kt(t.id)),a=(i?.length??0)>0,o=t.msg.chatType===`group`?t.groupHistories.get(t.groupHistoryKey)??[]:void 0,s=async n=>{let r=e.kt(n);if(a&&!i?.includes(r))return S.warn(`Broadcast agent ${n} not found in agents.list; skipping`),!1;let s=ue({cfg:t.cfg,msg:t.msg,route:t.route,peerId:t.peerId,agentId:r}),c={...t.route,agentId:r,...s};try{return await t.processMessage(t.msg,c,t.groupHistoryKey,{groupHistory:o,suppressGroupHistoryClear:!0})}catch(e){return S.error(`Broadcast agent ${n} failed: ${p.n(e)}`),!1}};if(r===`sequential`)for(let e of n)await s(e);else await Promise.allSettled(n.map(s));return t.msg.chatType===`group`&&t.groupHistories.set(t.groupHistoryKey,[]),!0}function fe(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 pe(e,t){let r=n.gn({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,i=e.channels?.whatsapp,a=!!(i?.groupAllowFrom?.length||i?.allowFrom?.length);return n.uc({cfg:e,channel:`whatsapp`,groupId:r??t,hasGroupAllowFrom:a})}function me(e,t){let r=n.gn({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return n.dc({cfg:e,channel:`whatsapp`,groupId:r??t})}function he(t){let r=n.kt(e.s(t.cfg.session?.store,{agentId:t.agentId}))[t.sessionKey],a=me(t.cfg,t.conversationId)?`mention`:`always`;return i.o(r?.groupActivation)??a}function ge(e,n,r){for(let i of e){let e=t.h(i)??i;!e||n.has(e)||(n.add(e),r.push(e))}}function _e(e,n,r,i){if(!r||!i)return;let a=t.h(r)??r;if(!a)return;let o=e.get(n);o||(o=new Map,e.set(n,o)),o.set(a,i)}function ve(e){let{participants:n,roster:r,fallbackE164:i}=e,a=new Set,o=[];if(n?.length&&ge(n,a,o),r&&ge(r.keys(),a,o),o.length===0&&i){let e=t.h(i)??i;e&&o.push(e)}if(o.length!==0)return o.map(e=>{let t=r?.get(e);return t?`${t} (${e})`:e}).join(`, `)}function ye(e,n){let r=t.h(n.senderE164??``);return r?ce(e,n.selfE164??void 0).includes(r):!1}function be(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;i.st({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 xe(e,t){return e.logVerbose(t),be({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Se(e){let n=pe(e.cfg,e.conversationId);if(n.allowlistEnabled&&!n.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};_e(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let r=X(e.cfg,e.agentId),a=fe(e.msg.body,r.mentionRegexes,e.msg.selfE164),o=i.s(a),s=ye(e.baseMentionConfig,e.msg),c=s&&i.E(a,e.cfg);if(o.hasCommand&&!s)return xe(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let l=se(e.msg,r,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:l.wasMentioned,...l.details},`group mention debug`);let u=l.wasMentioned,d=he({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:e.conversationId})!==`always`,f=e.msg.selfJid?.replace(/:\\d+/,``),p=e.msg.replyToSenderJid?.replace(/:\\d+/,``),m=e.msg.selfE164?t.h(e.msg.selfE164):null,h=e.msg.replyToSenderE164?t.h(e.msg.replyToSenderE164):null,g=i.Z({requireMention:d,canDetectMention:!0,wasMentioned:u,implicitMention:!!(f&&p&&f===p||m&&h&&m===h),shouldBypassMention:c});return e.msg.wasMentioned=g.effectiveWasMentioned,!c&&d&&g.shouldSkip?xe(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Ce(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function we(t){let r=e.s(t.cfg.session?.store,{agentId:t.storeAgentId}),i=n.Nt({storePath:r,sessionKey:t.sessionKey,deliveryContext:{channel:t.channel,to:t.to,accountId:t.accountId},ctx:t.ctx}).catch(e=>{t.warn({error:p.n(e),storePath:r,sessionKey:t.sessionKey,to:t.to},`failed updating last route`)});Ce(t.backgroundTasks,i)}function Te(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?t.h(e.senderE164)??e.senderE164:e.from.includes(`@`)?t.m(e.from)??e.from:t.h(e.from)??e.from}function $(e,t=400){return!e||e.length<=t?e:`${e.slice(0,t)}… (truncated ${e.length-t} chars)`}function Ee(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 De(e){if(e.isReasoning===!0)return!0;let t=e.text;return typeof t==`string`?t.trimStart().toLowerCase().startsWith(`reasoning:`):!1}async function Oe(e){let{replyResult:n,msg:r,maxMediaBytes:i,textLimit:a,replyLogger:o,connectionId:c,skipLog:l}=e,d=Date.now();if(De(n)){C.debug(`Suppressed reasoning payload to ${r.from}`);return}let m=e.tableMode??`code`,h=e.chunkMode??`length`,g=s.c(f.i(u.t(n.text||``,m)),a,h),_=n.mediaUrls?.length?n.mediaUrls:n.mediaUrl?[n.mediaUrl]:[],v=async(e,n,i=3)=>{let a;for(let o=1;o<=i;o++)try{return await e()}catch(e){a=e;let s=p.n(e),c=o===i;if(!/closed|reset|timed\s*out|disconnect/i.test(s)||c)throw e;let l=500*o;t.R(`Retrying ${n} to ${r.from} after failure (${o}/${i-1}) in ${l}ms: ${s}`),await t.C(l)}throw a};if(_.length===0&&g.length){let e=g.length;for(let[t,n]of g.entries()){let i=Date.now();if(await v(()=>r.reply(n),`text`),!l){let n=Date.now()-i;C.debug(`Sent chunk ${t+1}/${e} to ${r.from} (${n.toFixed(0)}ms)`)}}o.info({correlationId:r.id??b(),connectionId:c??null,to:r.from,from:r.to,text:$(n.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-d},`auto-reply sent (text)`);return}let y=[...g];for(let[n,a]of _.entries()){let l=n===0&&y.shift()||void 0;try{let n=await s._(a,{maxBytes:i,localRoots:e.mediaLocalRoots});if(t.B()&&(t.R(`Web auto-reply media size: ${(n.buffer.length/(1024*1024)).toFixed(2)}MB`),t.R(`Web auto-reply media source: ${a} (kind ${n.kind})`)),n.kind===`image`)await v(()=>r.sendMedia({image:n.buffer,caption:l,mimetype:n.contentType}),`media:image`);else if(n.kind===`audio`)await v(()=>r.sendMedia({audio:n.buffer,ptt:!0,mimetype:n.contentType,caption:l}),`media:audio`);else if(n.kind===`video`)await v(()=>r.sendMedia({video:n.buffer,caption:l,mimetype:n.contentType}),`media:video`);else{let e=n.fileName??a.split(`/`).pop()??`file`,t=n.contentType??`application/octet-stream`;await v(()=>r.sendMedia({document:n.buffer,fileName:e,caption:l,mimetype:t}),`media:document`)}C.info(`Sent media reply to ${r.from} (${(n.buffer.length/(1024*1024)).toFixed(2)}MB)`),o.info({correlationId:r.id??b(),connectionId:c??null,to:r.from,from:r.to,text:l??null,mediaUrl:a,mediaSizeBytes:n.buffer.length,mediaKind:n.kind,durationMs:Date.now()-d},`auto-reply sent (media)`)}catch(e){if(C.error(`Failed sending web media to ${r.from}: ${p.n(e)}`),o.warn({err:e,mediaUrl:a},`failed to send web media reply`),n===0){let t=e instanceof Error?`⚠️ Media failed: ${e.message}`:`⚠️ Media failed.`,n=[y.shift()??l??``,t].filter(Boolean).join(`