@qqbrowser/openclaw-qbot 0.0.148 → 0.10.1

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 (1698) hide show
  1. package/dist/account-lookup-CW-_CL7y.js +0 -1
  2. package/dist/acp-cli-BHsTg1ac.js +0 -1
  3. package/dist/acp-cli-D_WC9SZX.js +0 -1
  4. package/dist/active-listener-1MJXk3Iq.js +0 -1
  5. package/dist/active-listener-D8VOdVx3.js +0 -1
  6. package/dist/active-listener-D8uP0H5W.js +0 -1
  7. package/dist/active-listener-DeKRt_UV.js +0 -1
  8. package/dist/agent-scope-DAWJwFfl.js +0 -1
  9. package/dist/agent-scope-DXZc3eNT.js +0 -1
  10. package/dist/agents-Cd1yL8fG.js +0 -1
  11. package/dist/agents.config-CaRMmWS8.js +0 -1
  12. package/dist/agents.config-DSCcdYtv.js +0 -1
  13. package/dist/allow-from-B6dI7oz8.js +0 -1
  14. package/dist/allow-from-DEeVIPKS.js +0 -1
  15. package/dist/api-BeG0ObSq.js +0 -1
  16. package/dist/api-Dx8x1KTs.js +0 -1
  17. package/dist/api-key-rotation-BLt5E2Cw.js +0 -1
  18. package/dist/api-key-rotation-BpEL4aeX.js +0 -1
  19. package/dist/api-key-rotation-DayEfYpa.js +0 -1
  20. package/dist/api-key-rotation-Rz2ESQSA.js +0 -1
  21. package/dist/arg-split-BOqSMBuf.js +0 -1
  22. package/dist/arg-split-DE5RqDHq.js +0 -1
  23. package/dist/audio-preflight-8WB1LJBS.js +0 -1
  24. package/dist/audio-preflight-BcPHPfr_.js +0 -1
  25. package/dist/audio-preflight-DTO631Yb.js +0 -1
  26. package/dist/audio-preflight-O-0lDeKh.js +0 -1
  27. package/dist/audio-transcription-runner-9H9eUZ1D.js +0 -1
  28. package/dist/audio-transcription-runner-BIKj1CBU.js +0 -1
  29. package/dist/audio-transcription-runner-BwjMhAUa.js +0 -1
  30. package/dist/audio-transcription-runner-CQ7rq0d_.js +0 -1
  31. package/dist/audit-9I53EvMQ.js +0 -1
  32. package/dist/audit-BGsUfJzD.js +0 -1
  33. package/dist/audit-membership-runtime-BpRsMj5-.js +0 -1
  34. package/dist/audit-membership-runtime-BsfLZNBj.js +0 -1
  35. package/dist/audit-membership-runtime-DRHirRmx.js +0 -1
  36. package/dist/audit-membership-runtime-g0dEWJTp.js +0 -1
  37. package/dist/audit-membership-runtime-kdyToskD.js +0 -1
  38. package/dist/auth-choice-BmI4sIGs.js +0 -1
  39. package/dist/auth-choice-DDsPJF6F.js +0 -1
  40. package/dist/auth-choice-Dy0jIOLV.js +0 -1
  41. package/dist/auth-choice-MqcWuVyu.js +0 -1
  42. package/dist/auth-choice-options-B3WQyS7I.js +0 -1
  43. package/dist/auth-choice-options-Dw14noox.js +0 -1
  44. package/dist/auth-choice-prompt-uegl56cf.js +0 -1
  45. package/dist/auth-choice-prompt-xYj13czb.js +0 -1
  46. package/dist/auth-choice.apply-helpers-D911bYcw.js +0 -1
  47. package/dist/auth-choice.apply-helpers-pJ4CPZCk.js +0 -1
  48. package/dist/auth-profiles-C8rZRS0X.js +0 -1
  49. package/dist/auth-token-DZLZ3d_I.js +0 -1
  50. package/dist/auth-token-Dp6bxT29.js +0 -1
  51. package/dist/banner-CAtilyXr.js +0 -1
  52. package/dist/bonjour-discovery-ClTijpMw.js +0 -1
  53. package/dist/bonjour-discovery-DMB6yrOF.js +0 -1
  54. package/dist/boolean-Ch3DfXPy.js +0 -1
  55. package/dist/boolean-D15s2V33.js +0 -1
  56. package/dist/boolean-DypnRoRK.js +0 -1
  57. package/dist/brew-COcDl8CB.js +0 -1
  58. package/dist/brew-DDPm_HfE.js +0 -1
  59. package/dist/browser-cli-Bf-Pzjxs.js +0 -1
  60. package/dist/browser-cli-DkrBCfYg.js +0 -1
  61. package/dist/build-info.json +3 -3
  62. package/dist/bundled/boot-md/handler.js +0 -1
  63. package/dist/bundled/bootstrap-extra-files/handler.js +0 -1
  64. package/dist/bundled/command-logger/handler.js +0 -1
  65. package/dist/bundled/session-memory/handler.js +0 -1
  66. package/dist/call-BWx7hNtl.js +0 -1
  67. package/dist/call-JB-cGR9n.js +0 -1
  68. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  69. package/dist/channel-account-context-BMPAMZEv.js +0 -1
  70. package/dist/channel-account-context-DAcarnqW.js +0 -1
  71. package/dist/channel-activity-B04WbrrK.js +0 -1
  72. package/dist/channel-activity-BhiLsKvM.js +0 -1
  73. package/dist/channel-activity-DmgWmSAG.js +0 -1
  74. package/dist/channel-activity-Dw6F-ehJ.js +0 -1
  75. package/dist/channel-activity-htoVXTET.js +0 -1
  76. package/dist/channel-options-CCqtIYCc.js +0 -1
  77. package/dist/channel-options-CKoyPq8p.js +0 -1
  78. package/dist/channel-selection-BPxE8JR7.js +0 -1
  79. package/dist/channel-selection-si1OzWyQ.js +0 -1
  80. package/dist/channel-web-CCSMlUux.js +0 -1
  81. package/dist/channel-web-CwUfYqjg.js +0 -1
  82. package/dist/channels/plugins/actions/discord.js +0 -1
  83. package/dist/channels/plugins/actions/signal.js +0 -1
  84. package/dist/channels/plugins/actions/telegram.js +0 -1
  85. package/dist/channels/plugins/agent-tools/whatsapp-login.js +0 -1
  86. package/dist/channels-cli-BfgVv5jH.js +0 -1
  87. package/dist/channels-cli-BvGXgERj.js +0 -1
  88. package/dist/channels-status-issues-8eFrGKyf.js +0 -1
  89. package/dist/channels-status-issues-PRgOT90w.js +0 -1
  90. package/dist/chat-envelope-Bznn2SoS.js +0 -1
  91. package/dist/chat-envelope-HVpKusFc.js +0 -1
  92. package/dist/clack-prompter-DBPdGdqp.js +0 -1
  93. package/dist/clack-prompter-Dq0aY6iM.js +0 -1
  94. package/dist/clawbot-cli-B0iTJ-pm.js +0 -1
  95. package/dist/clawbot-cli-BcEtQbFY.js +0 -1
  96. package/dist/cleanup-utils-BWm70DoD.js +0 -1
  97. package/dist/cleanup-utils-D-RhEX6F.js +0 -1
  98. package/dist/cli-Bt--1dhL.js +0 -1
  99. package/dist/cli-CBg8KhmQ.js +0 -1
  100. package/dist/cli-utils-BY7dLMFy.js +0 -1
  101. package/dist/cli-utils-BleB1eys.js +0 -1
  102. package/dist/clipboard-Bk8cviBt.js +0 -1
  103. package/dist/clipboard-CKT_VIkG.js +0 -1
  104. package/dist/cmd-argv-BBT5l8AV.js +0 -1
  105. package/dist/cmd-argv-Bh-KpaZ0.js +0 -1
  106. package/dist/command-format-BbDT1tlm.js +0 -1
  107. package/dist/command-format-CLxIPuLR.js +0 -1
  108. package/dist/command-options-BpOUDl2S.js +0 -1
  109. package/dist/command-options-Bq5nQxz6.js +0 -1
  110. package/dist/command-poll-backoff-BZLHYB2k.js +0 -1
  111. package/dist/command-poll-backoff-Cww_r-24.js +0 -1
  112. package/dist/command-poll-backoff-Df6cOQrX.js +0 -1
  113. package/dist/command-poll-backoff-endAPdwn.js +0 -1
  114. package/dist/{command-registry-BxNiXs5w.js → command-registry-D_jtBegA.js} +1 -2
  115. package/dist/command-secret-targets-BEjtBf5Z.js +0 -1
  116. package/dist/command-secret-targets-CfXtLkLF.js +0 -1
  117. package/dist/commands-CGpM84iR.js +0 -1
  118. package/dist/commands-Dy7duWlt.js +0 -1
  119. package/dist/commands-registry-C5Hg7gyk.js +0 -1
  120. package/dist/commands-registry-DT6FDUev.js +0 -1
  121. package/dist/commands-registry-DlvNUkXz.js +0 -1
  122. package/dist/commands-registry-gvMK7Pw9.js +0 -1
  123. package/dist/compact-CYbPi7_-.js +0 -1
  124. package/dist/{completion-cli-Yg5BF97F.js → completion-cli-BVbT_aR2.js} +1 -2
  125. package/dist/{completion-cli-BRE0F8Tu.js → completion-cli-Bw_hBrlA.js} +1 -2
  126. package/dist/config-BqW5S1xL.js +0 -1
  127. package/dist/config-Cji73to5.js +0 -1
  128. package/dist/config-cli-CwW76_j_.js +0 -1
  129. package/dist/config-cli-F-lkPjjz.js +0 -1
  130. package/dist/config-guard-0_afzaJz.js +0 -1
  131. package/dist/config-guard-CqUJ8uaF.js +0 -1
  132. package/dist/config-validation-6hk_fxD8.js +0 -1
  133. package/dist/config-validation-BAmmD9p4.js +0 -1
  134. package/dist/configure--c4tTVPz.js +0 -1
  135. package/dist/configure-DFlnM_zh.js +0 -1
  136. package/dist/connection-auth-CjaeEu5D.js +0 -1
  137. package/dist/connection-auth-smZlFWxD.js +0 -1
  138. package/dist/context-window-guard-7crlatf9.js +0 -1
  139. package/dist/context-window-guard-CPChk363.js +0 -1
  140. package/dist/control-ui-assets-BIa0GGDg.js +0 -1
  141. package/dist/control-ui-assets-CTHGGgaX.js +0 -1
  142. package/dist/cron-cli-BKS4L-uW.js +0 -1
  143. package/dist/cron-cli-L9wLLocl.js +0 -1
  144. package/dist/daemon-cli-BdDHNRqp.js +0 -1
  145. package/dist/daemon-cli-CEHkT-54.js +0 -1
  146. package/dist/daemon-cli.js +0 -1
  147. package/dist/daemon-install-CMNtsW5o.js +0 -1
  148. package/dist/daemon-install-D2gMiA0p.js +0 -1
  149. package/dist/daemon-install-plan.shared-BkwZgIAY.js +0 -1
  150. package/dist/daemon-install-plan.shared-Dx3DBXCG.js +0 -1
  151. package/dist/daemon-runtime-DHiDbRuC.js +0 -1
  152. package/dist/daemon-runtime-VcpeBRJV.js +0 -1
  153. package/dist/dangerous-name-matching-BOmvAibz.js +0 -1
  154. package/dist/dangerous-name-matching-DtllRqBD.js +0 -1
  155. package/dist/dangerous-tools-CFRYQJ6V.js +0 -1
  156. package/dist/dangerous-tools-oYCu5wfC.js +0 -1
  157. package/dist/deliver-AM3FP5rj.js +0 -1
  158. package/dist/deliver-BhWhLvQO.js +0 -1
  159. package/dist/deliver-DUNkj4hy.js +0 -1
  160. package/dist/deliver-SqSusZP3.js +0 -1
  161. package/dist/delivery-queue-CKbauSFq.js +0 -1
  162. package/dist/delivery-queue-nkPJu0fY.js +0 -1
  163. package/dist/device-pairing-DAzYy3vX.js +0 -1
  164. package/dist/device-pairing-DknI3IDo.js +0 -1
  165. package/dist/devices-cli-BYD6Sq88.js +0 -1
  166. package/dist/devices-cli-Dl-0fQmR.js +0 -1
  167. package/dist/diagnostic-BEZszppF.js +0 -1
  168. package/dist/diagnostic-D1H7_8QG.js +0 -1
  169. package/dist/diagnostic-DtuQPRbp.js +0 -1
  170. package/dist/diagnostic-VBPCgF9l.js +0 -1
  171. package/dist/diagnostics-BgbeL9KE.js +0 -1
  172. package/dist/diagnostics-Cdctg9K_.js +0 -1
  173. package/dist/directory-cli-CpMjutQb.js +0 -1
  174. package/dist/directory-cli-b_l3qJI_.js +0 -1
  175. package/dist/dns-cli-C7L4RYOm.js +0 -1
  176. package/dist/dns-cli-wKg6nn6f.js +0 -1
  177. package/dist/docs-cli-CwW4sqbC.js +0 -1
  178. package/dist/docs-cli-DnLLU7eX.js +0 -1
  179. package/dist/{doctor-completion-II0Wb435.js → doctor-completion-C9CPhCor.js} +1 -2
  180. package/dist/{doctor-completion-Bu-98ocm.js → doctor-completion-DI7mGC3D.js} +1 -2
  181. package/dist/doctor-config-flow-BVpr8-q9.js +0 -1
  182. package/dist/doctor-config-flow-Dio3s4x6.js +0 -1
  183. package/dist/enable-CjFPAUgo.js +0 -1
  184. package/dist/enable-PO3qN4Lf.js +0 -1
  185. package/dist/entry-status-CCwwKO43.js +0 -1
  186. package/dist/entry-status-CoXkbJcX.js +0 -1
  187. package/dist/entry.js +1 -2
  188. package/dist/env-D7wNuBx1.js +0 -1
  189. package/dist/env-overrides-DHtB4kK3.js +0 -1
  190. package/dist/env-overrides-DXJbFrwI.js +0 -1
  191. package/dist/errors-6SQWM9dj.js +0 -1
  192. package/dist/errors-Bunti32V.js +0 -1
  193. package/dist/exec-B3eleY5O.js +0 -1
  194. package/dist/exec-DHqLtFYt.js +0 -1
  195. package/dist/exec-approvals-BXO9Cezj.js +0 -1
  196. package/dist/exec-approvals-BpBNEy6i.js +0 -1
  197. package/dist/exec-approvals-allowlist-B-Yf6RsU.js +0 -1
  198. package/dist/exec-approvals-allowlist-CGjRWREs.js +0 -1
  199. package/dist/exec-approvals-cli-BokGzWFo.js +0 -1
  200. package/dist/exec-approvals-cli-CsUGu6m3.js +0 -1
  201. package/dist/exec-safe-bin-runtime-policy-CRPHdPbF.js +0 -1
  202. package/dist/exec-safe-bin-runtime-policy-v44u39fl.js +0 -1
  203. package/dist/fetch-B4bz67_N.js +0 -1
  204. package/dist/fetch-BJT3BrkJ.js +0 -1
  205. package/dist/fetch-Bn0mWg6a.js +0 -1
  206. package/dist/fetch-Ce-scEU-.js +0 -1
  207. package/dist/fetch-D0rZDHKO.js +0 -1
  208. package/dist/fetch-D5wrJ0AX.js +0 -1
  209. package/dist/fetch-DBat25iG.js +0 -1
  210. package/dist/fetch-DHo17YmK.js +0 -1
  211. package/dist/fetch-Dh-apy46.js +0 -1
  212. package/dist/fetch-Dikjvc5M.js +0 -1
  213. package/dist/fetch-DsjPfQlp.js +0 -1
  214. package/dist/fetch-_g8lZ8K8.js +0 -1
  215. package/dist/fetch-guard-7BAwnP4a.js +0 -1
  216. package/dist/fetch-guard-DaZmvp-L.js +0 -1
  217. package/dist/fetch-guard-DvaNcypz.js +0 -1
  218. package/dist/fetch-guard-oWKGrwV4.js +0 -1
  219. package/dist/fetch-hy0JKSsm.js +0 -1
  220. package/dist/fetch-timeout-CdYxWG9w.js +0 -1
  221. package/dist/fetch-timeout-Cj8_oAls.js +0 -1
  222. package/dist/fetch-timeout-DoOI_izT.js +0 -1
  223. package/dist/fetch-timeout-u8g99Ax0.js +0 -1
  224. package/dist/format-Bn1bwJKX.js +0 -1
  225. package/dist/format-Ce7I7s-k.js +0 -1
  226. package/dist/format-duration-C8AzNqKh.js +0 -1
  227. package/dist/format-duration-D5AMtmHa.js +0 -1
  228. package/dist/format-relative-B9pSIdGe.js +0 -1
  229. package/dist/format-relative-DkMjYy7z.js +0 -1
  230. package/dist/frontmatter-BkZkwkVO.js +0 -1
  231. package/dist/frontmatter-C7mzDNxd.js +0 -1
  232. package/dist/frontmatter-CzpfPBFl.js +0 -1
  233. package/dist/{gateway-cli-DBjTjdhJ.js → gateway-cli-BMmU2dsG.js} +1 -2
  234. package/dist/{gateway-cli-B-AX4-uD.js → gateway-cli-Kp-caOwI.js} +1 -2
  235. package/dist/gateway-install-token-Dt7hDXoR.js +0 -1
  236. package/dist/gateway-install-token-cSJrfU_1.js +0 -1
  237. package/dist/gateway-rpc-C78PzdZR.js +0 -1
  238. package/dist/gateway-rpc-CecloWA1.js +0 -1
  239. package/dist/github-copilot-token-C79yeDKS.js +0 -1
  240. package/dist/github-copilot-token-DGYAlOmV.js +0 -1
  241. package/dist/github-copilot-token-DePP-lIf.js +0 -1
  242. package/dist/github-copilot-token-wm6mbypz.js +0 -1
  243. package/dist/gmail-setup-utils-CYOH3zzx.js +0 -1
  244. package/dist/gmail-setup-utils-S-MyEGuj.js +0 -1
  245. package/dist/group-access-BHKVOhrj.js +0 -1
  246. package/dist/group-access-D2DOYMfr.js +0 -1
  247. package/dist/health-B_-ZE5FK.js +0 -1
  248. package/dist/health-CIZFVJEG.js +0 -1
  249. package/dist/health-format-B1nj3Wfn.js +0 -1
  250. package/dist/health-format-VBr6LEpt.js +0 -1
  251. package/dist/heartbeat-visibility-BQ_esv2m.js +0 -1
  252. package/dist/heartbeat-visibility-q74UdY8O.js +0 -1
  253. package/dist/help-format-B4aEI7V9.js +0 -1
  254. package/dist/help-format-BRbF_INg.js +0 -1
  255. package/dist/helpers-COz1ghcB.js +0 -1
  256. package/dist/helpers-Cp8gcO6u.js +0 -1
  257. package/dist/hooks-cli-BoxAnC-E.js +0 -1
  258. package/dist/hooks-cli-CnCOjVv0.js +0 -1
  259. package/dist/hooks-status-BHt-Xvh4.js +0 -1
  260. package/dist/hooks-status-CRJ4J0ZW.js +0 -1
  261. package/dist/image-BBO-0uLG.js +0 -1
  262. package/dist/image-BP1cfEh1.js +0 -1
  263. package/dist/image-BVbOr9yV.js +0 -1
  264. package/dist/image-CcsuUB1B.js +0 -1
  265. package/dist/index.js +1 -2
  266. package/dist/inspect-BKV-I1UE.js +0 -1
  267. package/dist/inspect-z59cgmYc.js +0 -1
  268. package/dist/install-safe-path-C6kc_8NW.js +0 -1
  269. package/dist/install-safe-path-iesxijn2.js +0 -1
  270. package/dist/installs-CKzq-YqL.js +0 -1
  271. package/dist/installs-DzSskdtJ.js +0 -1
  272. package/dist/ipv4-B05QVStj.js +0 -1
  273. package/dist/ipv4-SeeyR-DH.js +0 -1
  274. package/dist/ir-B7mdG27k.js +0 -1
  275. package/dist/ir-BTfsA9Dd.js +0 -1
  276. package/dist/ir-CNTx85qV.js +0 -1
  277. package/dist/ir-DdjufzKF.js +0 -1
  278. package/dist/is-main-DG5ueqhF.js +0 -1
  279. package/dist/issue-format-BtMzMXtZ.js +0 -1
  280. package/dist/issue-format-CN9PHzXY.js +0 -1
  281. package/dist/kill-tree-D6nPx1_o.js +0 -1
  282. package/dist/lifecycle-core-B1nrgJCw.js +0 -1
  283. package/dist/lifecycle-core-D_LWJeD_.js +0 -1
  284. package/dist/line/accounts.js +0 -1
  285. package/dist/line/send.js +0 -1
  286. package/dist/line/template-messages.js +0 -1
  287. package/dist/links-CBnmRP9D.js +0 -1
  288. package/dist/links-CySwdMcF.js +0 -1
  289. package/dist/llm-slug-generator.js +0 -1
  290. package/dist/load-options-BsOW74dp.js +0 -1
  291. package/dist/load-options-C7dLuybp.js +0 -1
  292. package/dist/load-options-DV4j6Aqb.js +0 -1
  293. package/dist/load-options-Dwt0CeEg.js +0 -1
  294. package/dist/local-roots-aA-4ohTq.js +0 -1
  295. package/dist/logger-5W0OocJW.js +0 -1
  296. package/dist/logger-Bl8URnrW.js +0 -1
  297. package/dist/logger-DwWqfo66.js +0 -1
  298. package/dist/logger-kQAOe3qp.js +0 -1
  299. package/dist/logging-B7XHbCNn.js +0 -1
  300. package/dist/logging-CbMVr2MA.js +0 -1
  301. package/dist/login-BGLWiksP.js +0 -1
  302. package/dist/login-CcYeF5T_.js +0 -1
  303. package/dist/login-DSZdCiDx.js +0 -1
  304. package/dist/login-DWZzj-P1.js +0 -1
  305. package/dist/login-qr-BGpGVMES.js +0 -1
  306. package/dist/login-qr-BUdgvi3v.js +0 -1
  307. package/dist/login-qr-Bx8skPB-.js +0 -1
  308. package/dist/login-qr-DYUCmP-W.js +0 -1
  309. package/dist/login-qr-_79eoRb4.js +0 -1
  310. package/dist/logs-cli-C52caOop.js +0 -1
  311. package/dist/logs-cli-Ch50TE-J.js +0 -1
  312. package/dist/manager-CI6O4QH6.js +0 -1
  313. package/dist/manager-CN_rQm1L.js +0 -1
  314. package/dist/manager-CxZRoQkE.js +0 -1
  315. package/dist/manager-iFi--Fru.js +0 -1
  316. package/dist/memory-cli-BouV_wyL.js +0 -1
  317. package/dist/memory-cli-C8fBBPgv.js +0 -1
  318. package/dist/model-catalog-D-hkNWin.js +0 -1
  319. package/dist/model-catalog-mt0IcDfR.js +0 -1
  320. package/dist/model-param-b-B0r2cPDw.js +0 -1
  321. package/dist/model-param-b-BqIr5rY5.js +0 -1
  322. package/dist/model-picker-BB0Zdvyu.js +0 -1
  323. package/dist/model-picker-DeiWyW0N.js +0 -1
  324. package/dist/model-selection-BLbnMb5E.js +0 -1
  325. package/dist/model-selection-D7mdJmGK.js +0 -1
  326. package/dist/model-selection-DvekK9rZ.js +0 -1
  327. package/dist/models-BBYqej07.js +0 -1
  328. package/dist/models-cli-CMMhnlHo.js +0 -1
  329. package/dist/models-cli-CqbDyDn2.js +0 -1
  330. package/dist/models-config-BlQ39qlq.js +0 -1
  331. package/dist/models-config-DZzS67GS.js +0 -1
  332. package/dist/mutable-allowlist-detectors-C4rNVag8.js +0 -1
  333. package/dist/mutable-allowlist-detectors-CL0qe54J.js +0 -1
  334. package/dist/node-cli-Bzu1efMB.js +0 -1
  335. package/dist/node-cli-Dv-Eib4o.js +0 -1
  336. package/dist/node-command-policy-D9yZu9zq.js +0 -1
  337. package/dist/node-command-policy-DyWp3Bjz.js +0 -1
  338. package/dist/node-commands-8GBOiktk.js +0 -1
  339. package/dist/node-commands-DdkziOTx.js +0 -1
  340. package/dist/node-resolve-B3BJbmQX.js +0 -1
  341. package/dist/node-resolve-DLZf3-1V.js +0 -1
  342. package/dist/node-service-BRfrNp8l.js +0 -1
  343. package/dist/node-service-C0bl7jcZ.js +0 -1
  344. package/dist/node-shell-BVZylVP6.js +0 -1
  345. package/dist/nodes-cli-B3aNQG30.js +0 -1
  346. package/dist/nodes-cli-DzO6PSFw.js +0 -1
  347. package/dist/nodes-screen-8nRBsfID.js +0 -1
  348. package/dist/note-D4GAwgha.js +0 -1
  349. package/dist/note-Dp-d_utk.js +0 -1
  350. package/dist/npm-pack-install-B23L-AtF.js +0 -1
  351. package/dist/npm-pack-install-C0te3Oap.js +0 -1
  352. package/dist/npm-resolution--_-0q2ks.js +0 -1
  353. package/dist/npm-resolution-CBlwQq3a.js +0 -1
  354. package/dist/oauth-env-DAamJ1oz.js +0 -1
  355. package/dist/oauth-env-DSLBTWb1.js +0 -1
  356. package/dist/oauth-tls-preflight-BSBRDIfC.js +0 -1
  357. package/dist/oauth-tls-preflight-ByNjbUR5.js +0 -1
  358. package/dist/ollama-setup-CGuyH3Ey.js +0 -1
  359. package/dist/ollama-setup-LVRPefmV.js +0 -1
  360. package/dist/{onboard-DMmLqys5.js → onboard-DZG0HnuP.js} +1 -2
  361. package/dist/{onboard-C2Ofvb_A.js → onboard-DlCEww7K.js} +1 -2
  362. package/dist/onboard-channels-BDMtq3ex.js +0 -1
  363. package/dist/onboard-channels-BO3AN_eA.js +0 -1
  364. package/dist/onboard-config-B7U20YRw.js +0 -1
  365. package/dist/onboard-config-DS9dUv8M.js +0 -1
  366. package/dist/onboard-custom--OylwoHQ.js +0 -1
  367. package/dist/onboard-custom-_Df_ciX2.js +0 -1
  368. package/dist/onboard-helpers-D90u4wVK.js +0 -1
  369. package/dist/onboard-helpers-DOlI17Ac.js +0 -1
  370. package/dist/onboard-hooks-CERzXObm.js +0 -1
  371. package/dist/onboard-hooks-gQ3sxBNi.js +0 -1
  372. package/dist/onboard-provider-auth-flags-CqbipO7D.js +0 -1
  373. package/dist/onboard-provider-auth-flags-Dvwzdz37.js +0 -1
  374. package/dist/onboard-remote-B1-SlmUN.js +0 -1
  375. package/dist/onboard-remote-C7Eg49Uf.js +0 -1
  376. package/dist/onboard-search-f2tJD4hg.js +0 -1
  377. package/dist/onboard-search-fslKKhyg.js +0 -1
  378. package/dist/onboard-skills-DCgTr6hW.js +0 -1
  379. package/dist/onboard-skills-_TBzISd2.js +0 -1
  380. package/dist/{onboarding-C82cKKNI.js → onboarding-CxRTJCBM.js} +1 -2
  381. package/dist/{onboarding-M80apW9t.js → onboarding-m-m__16h.js} +1 -2
  382. package/dist/{onboarding.finalize-D9nrrI1J.js → onboarding.finalize-BJxMhYUa.js} +1 -2
  383. package/dist/{onboarding.finalize-CVvwI1Qg.js → onboarding.finalize-UiX3YmbI.js} +1 -2
  384. package/dist/onboarding.gateway-config-CXjzrfwL.js +0 -1
  385. package/dist/onboarding.gateway-config-TSq70E-S.js +0 -1
  386. package/dist/onboarding.secret-input-BSmFS1Px.js +0 -1
  387. package/dist/onboarding.secret-input-CUD0t7Pk.js +0 -1
  388. package/dist/openai-codex-model-default-Bx8i3bOg.js +0 -1
  389. package/dist/openai-codex-model-default-DuRfnfUm.js +0 -1
  390. package/dist/openai-model-default-Bm9b0oR0.js +0 -1
  391. package/dist/openai-model-default-KMCphvoO.js +0 -1
  392. package/dist/openclaw-exec-env-BWbOu_YC.js +0 -1
  393. package/dist/openclaw-root-CnsBf6ZU.js +0 -1
  394. package/dist/openclaw-root-D_0Q6--h.js +0 -1
  395. package/dist/outbound-BevYwvMh.js +0 -1
  396. package/dist/outbound-CqDxMWLZ.js +0 -1
  397. package/dist/outbound-DmwQEFu0.js +0 -1
  398. package/dist/outbound-attachment-9-8VNvRG.js +0 -1
  399. package/dist/outbound-attachment-Bah4dvuM.js +0 -1
  400. package/dist/outbound-attachment-CVcDBkAD.js +0 -1
  401. package/dist/outbound-attachment-E89zumcH.js +0 -1
  402. package/dist/outbound-xlG_RqEu.js +0 -1
  403. package/dist/pairing-cli-ByPhOBWo.js +0 -1
  404. package/dist/pairing-cli-CxJy8LPo.js +0 -1
  405. package/dist/pairing-labels-CZ-aX-up.js +0 -1
  406. package/dist/pairing-labels-PIuZfthz.js +0 -1
  407. package/dist/pairing-store-BaaVy1zB.js +0 -1
  408. package/dist/pairing-store-EmfFQVcs.js +0 -1
  409. package/dist/pairing-token-B8RdfK2y.js +0 -1
  410. package/dist/pairing-token-zdbQ951y.js +0 -1
  411. package/dist/parse-duration-XTjMKl8s.js +0 -1
  412. package/dist/parse-finite-number-DqzUM-_s.js +0 -1
  413. package/dist/parse-finite-number-dBmDLLKL.js +0 -1
  414. package/dist/parse-log-line-CsYLg7Qu.js +0 -1
  415. package/dist/parse-log-line-NV-cipB_.js +0 -1
  416. package/dist/parse-port-Bv1Y9Wk5.js +0 -1
  417. package/dist/parse-port-JVwkxcZ8.js +0 -1
  418. package/dist/parse-timeout-DWSGfCkQ.js +0 -1
  419. package/dist/parse-timeout-Dx4QnVzo.js +0 -1
  420. package/dist/path-alias-guards-kY_ZbWs-.js +0 -1
  421. package/dist/path-alias-guards-mvyLCPlN.js +0 -1
  422. package/dist/path-env-BPd1Yd-i.js +0 -1
  423. package/dist/path-env-emdAQejM.js +0 -1
  424. package/dist/path-safety-BukYK8Kd.js +0 -1
  425. package/dist/path-safety-DaaMJFdt.js +0 -1
  426. package/dist/paths-B4IRk3wi.js +0 -1
  427. package/dist/paths-BfjJY2VL.js +0 -1
  428. package/dist/paths-BjD3T_xq.js +0 -1
  429. package/dist/paths-BpQOWYiT.js +0 -1
  430. package/dist/paths-CChBdtE8.js +0 -1
  431. package/dist/paths-CrCoPIVK.js +0 -1
  432. package/dist/paths-piJASC5k.js +0 -1
  433. package/dist/paths-yLEk_25I.js +0 -1
  434. package/dist/pi-embedded-6yGEd2xd.js +0 -1
  435. package/dist/pi-embedded-X_Svd4Wi.js +0 -1
  436. package/dist/pi-model-discovery-BPkhPDMr.js +0 -1
  437. package/dist/pi-model-discovery-BonZ1N3x.js +0 -1
  438. package/dist/pi-model-discovery-DVKXkQTR.js +0 -1
  439. package/dist/pi-model-discovery-DnJkNRc-.js +0 -1
  440. package/dist/pi-tools.before-tool-call.runtime-2-IJ8xox.js +0 -1
  441. package/dist/pi-tools.before-tool-call.runtime-CNesNgq0.js +0 -1
  442. package/dist/pi-tools.before-tool-call.runtime-CmtITCPP.js +0 -1
  443. package/dist/pi-tools.before-tool-call.runtime-VUjwIYJ7.js +0 -1
  444. package/dist/pi-tools.policy-B6q8YOfg.js +0 -1
  445. package/dist/plugin-auto-enable-CTgkkJK7.js +0 -1
  446. package/dist/plugin-auto-enable-adba5Evb.js +0 -1
  447. package/dist/plugin-install-plan-BmyB3dR1.js +0 -1
  448. package/dist/plugin-install-plan-sIOiMBS1.js +0 -1
  449. package/dist/plugin-registry-CN2aCPP7.js +0 -1
  450. package/dist/plugin-registry-DYwEy5eM.js +0 -1
  451. package/dist/plugin-sdk/account-id.cjs +0 -1
  452. package/dist/plugin-sdk/account-id.js +0 -1
  453. package/dist/plugin-sdk/acpx.cjs +0 -1
  454. package/dist/plugin-sdk/acpx.js +0 -1
  455. package/dist/plugin-sdk/active-listener-B1sd5Yrr.cjs +0 -1
  456. package/dist/plugin-sdk/active-listener-CVvtj4nc.cjs +0 -1
  457. package/dist/plugin-sdk/active-listener-D0Pag-jN.js +0 -1
  458. package/dist/plugin-sdk/active-listener-DIzG1nGC.js +0 -1
  459. package/dist/plugin-sdk/active-listener-DUT4_v5r.cjs +0 -1
  460. package/dist/plugin-sdk/active-listener-D_Cq4Tuy.cjs +0 -1
  461. package/dist/plugin-sdk/active-listener-HBuXCjdG.js +0 -1
  462. package/dist/plugin-sdk/active-listener-V7whA3d_.js +0 -1
  463. package/dist/plugin-sdk/active-listener-YOWDFFGG.js +0 -1
  464. package/dist/plugin-sdk/active-listener-kJidH-KZ.js +0 -1
  465. package/dist/plugin-sdk/active-listener-kmJHqUWY.cjs +0 -1
  466. package/dist/plugin-sdk/active-listener-vpxSd-kW.cjs +0 -1
  467. package/dist/plugin-sdk/api-key-rotation-BEhJdmXN.cjs +0 -1
  468. package/dist/plugin-sdk/api-key-rotation-BcDAQISn.js +0 -1
  469. package/dist/plugin-sdk/api-key-rotation-Bua813IH.cjs +0 -1
  470. package/dist/plugin-sdk/api-key-rotation-C7_ooC3N.js +0 -1
  471. package/dist/plugin-sdk/api-key-rotation-CiFfWYgL.js +0 -1
  472. package/dist/plugin-sdk/api-key-rotation-CrVpqlS6.cjs +0 -1
  473. package/dist/plugin-sdk/api-key-rotation-D-zSLAf_.cjs +0 -1
  474. package/dist/plugin-sdk/api-key-rotation-DInDOH-A.js +0 -1
  475. package/dist/plugin-sdk/api-key-rotation-DKp72Rw4.cjs +0 -1
  476. package/dist/plugin-sdk/api-key-rotation-YRRtbk9Y.cjs +0 -1
  477. package/dist/plugin-sdk/api-key-rotation-tVSHRH8D.js +0 -1
  478. package/dist/plugin-sdk/api-key-rotation-ta953lKF.js +0 -1
  479. package/dist/plugin-sdk/audio-preflight-5ZbcO1qy.js +0 -1
  480. package/dist/plugin-sdk/audio-preflight-BrAX9j6r.js +0 -1
  481. package/dist/plugin-sdk/audio-preflight-C2NpU5hR.cjs +0 -1
  482. package/dist/plugin-sdk/audio-preflight-CtWGsCje.js +0 -1
  483. package/dist/plugin-sdk/audio-preflight-CwjNHDro.cjs +0 -1
  484. package/dist/plugin-sdk/audio-preflight-D22cCCmn.js +0 -1
  485. package/dist/plugin-sdk/audio-preflight-DyK2q8OQ.cjs +0 -1
  486. package/dist/plugin-sdk/audio-preflight-F7lfchEO.cjs +0 -1
  487. package/dist/plugin-sdk/audio-preflight-ItHD-3bi.js +0 -1
  488. package/dist/plugin-sdk/audio-preflight-QWsN9gcK.cjs +0 -1
  489. package/dist/plugin-sdk/audio-preflight-k7Qt2rDs.cjs +0 -1
  490. package/dist/plugin-sdk/audio-preflight-wcMT_iUA.js +0 -1
  491. package/dist/plugin-sdk/audio-transcription-runner-B3bLoVvU.js +0 -1
  492. package/dist/plugin-sdk/audio-transcription-runner-BDfW3xeJ.cjs +0 -1
  493. package/dist/plugin-sdk/audio-transcription-runner-BZLASCWO.cjs +0 -1
  494. package/dist/plugin-sdk/audio-transcription-runner-CiRKTRED.cjs +0 -1
  495. package/dist/plugin-sdk/audio-transcription-runner-Cxs7u0B3.cjs +0 -1
  496. package/dist/plugin-sdk/audio-transcription-runner-D2IxJCfd.cjs +0 -1
  497. package/dist/plugin-sdk/audio-transcription-runner-DA6TwXrV.cjs +0 -1
  498. package/dist/plugin-sdk/audio-transcription-runner-DZIEX1Rl.js +0 -1
  499. package/dist/plugin-sdk/audio-transcription-runner-DZRGn6-f.js +0 -1
  500. package/dist/plugin-sdk/audio-transcription-runner-Dc-WF6zu.js +0 -1
  501. package/dist/plugin-sdk/audio-transcription-runner-DuBgVmcT.js +0 -1
  502. package/dist/plugin-sdk/audio-transcription-runner-nKI1rQ0R.js +0 -1
  503. package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +0 -1
  504. package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +0 -1
  505. package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +0 -1
  506. package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +0 -1
  507. package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +0 -1
  508. package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +0 -1
  509. package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +0 -1
  510. package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +0 -1
  511. package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +0 -1
  512. package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +0 -1
  513. package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +0 -1
  514. package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +0 -1
  515. package/dist/plugin-sdk/bluebubbles.cjs +0 -1
  516. package/dist/plugin-sdk/bluebubbles.js +0 -1
  517. package/dist/plugin-sdk/channel-activity--Ax2m0qQ.js +0 -1
  518. package/dist/plugin-sdk/channel-activity-BCsNxxNa.js +0 -1
  519. package/dist/plugin-sdk/channel-activity-BUieXBdg.cjs +0 -1
  520. package/dist/plugin-sdk/channel-activity-BXffAklf.js +0 -1
  521. package/dist/plugin-sdk/channel-activity-BlYTUiU4.js +0 -1
  522. package/dist/plugin-sdk/channel-activity-Bm-pvlXw.cjs +0 -1
  523. package/dist/plugin-sdk/channel-activity-Bnai3H2M.js +0 -1
  524. package/dist/plugin-sdk/channel-activity-CC3JLAxD.cjs +0 -1
  525. package/dist/plugin-sdk/channel-activity-CTmfXwYn.cjs +0 -1
  526. package/dist/plugin-sdk/channel-activity-D98aY9ZF.js +0 -1
  527. package/dist/plugin-sdk/channel-activity-DymcGybX.cjs +0 -1
  528. package/dist/plugin-sdk/channel-activity-gZBQEyOK.cjs +0 -1
  529. package/dist/plugin-sdk/channel-web-B795Ild9.cjs +0 -1
  530. package/dist/plugin-sdk/channel-web-Bg8DNyeb.js +0 -1
  531. package/dist/plugin-sdk/channel-web-CW42ALB5.cjs +0 -1
  532. package/dist/plugin-sdk/channel-web-D5zxPW-x.js +0 -1
  533. package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +0 -1
  534. package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +0 -1
  535. package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +0 -1
  536. package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +0 -1
  537. package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +0 -1
  538. package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +0 -1
  539. package/dist/plugin-sdk/commands-registry-BIGWymiv.cjs +0 -1
  540. package/dist/plugin-sdk/commands-registry-Bnadsir-.cjs +0 -1
  541. package/dist/plugin-sdk/commands-registry-C1Gb98lg.js +0 -1
  542. package/dist/plugin-sdk/commands-registry-CZcNTwNs.js +0 -1
  543. package/dist/plugin-sdk/commands-registry-CeJQPXIR.js +0 -1
  544. package/dist/plugin-sdk/commands-registry-CehvtLBA.js +0 -1
  545. package/dist/plugin-sdk/commands-registry-Cf8DaBmw.js +0 -1
  546. package/dist/plugin-sdk/commands-registry-Cfv6gDoQ.cjs +0 -1
  547. package/dist/plugin-sdk/commands-registry-D734s8r7.js +0 -1
  548. package/dist/plugin-sdk/commands-registry-DWx89vtR.cjs +0 -1
  549. package/dist/plugin-sdk/commands-registry-DviWu8J8.cjs +0 -1
  550. package/dist/plugin-sdk/commands-registry-wA0CkHGk.cjs +0 -1
  551. package/dist/plugin-sdk/common-BJ0tHoNJ.cjs +0 -1
  552. package/dist/plugin-sdk/common-CxLmdAIn.js +0 -1
  553. package/dist/plugin-sdk/compat.cjs +0 -1
  554. package/dist/plugin-sdk/compat.js +0 -1
  555. package/dist/plugin-sdk/config-C2-9m5-M.cjs +0 -1
  556. package/dist/plugin-sdk/config-Cx3SFBFW.js +0 -1
  557. package/dist/plugin-sdk/copilot-proxy.cjs +0 -1
  558. package/dist/plugin-sdk/copilot-proxy.js +0 -1
  559. package/dist/plugin-sdk/core.cjs +0 -1
  560. package/dist/plugin-sdk/core.js +0 -1
  561. package/dist/plugin-sdk/deliver--pOntbRC.cjs +0 -1
  562. package/dist/plugin-sdk/deliver-BLMe2eBS.js +0 -1
  563. package/dist/plugin-sdk/deliver-BcHzZPc2.js +0 -1
  564. package/dist/plugin-sdk/deliver-CSGTRHt1.js +0 -1
  565. package/dist/plugin-sdk/deliver-Cm8yUsWK.cjs +0 -1
  566. package/dist/plugin-sdk/deliver-DQDZRjZ0.js +0 -1
  567. package/dist/plugin-sdk/deliver-DRintVMn.js +0 -1
  568. package/dist/plugin-sdk/deliver-DehGdLxT.js +0 -1
  569. package/dist/plugin-sdk/deliver-EThzALwn.cjs +0 -1
  570. package/dist/plugin-sdk/deliver-d7VfVmTa.cjs +0 -1
  571. package/dist/plugin-sdk/deliver-rACJj8E9.cjs +0 -1
  572. package/dist/plugin-sdk/deliver-wteCze09.cjs +0 -1
  573. package/dist/plugin-sdk/device-pair.cjs +0 -1
  574. package/dist/plugin-sdk/device-pair.js +0 -1
  575. package/dist/plugin-sdk/diagnostic-BcBlExSy.cjs +0 -1
  576. package/dist/plugin-sdk/diagnostic-Bmp3zWQp.cjs +0 -1
  577. package/dist/plugin-sdk/diagnostic-BvrdTMl3.js +0 -1
  578. package/dist/plugin-sdk/diagnostic-C2jKFixS.cjs +0 -1
  579. package/dist/plugin-sdk/diagnostic-CSfBcIOI.js +0 -1
  580. package/dist/plugin-sdk/diagnostic-CYR5dxDE.cjs +0 -1
  581. package/dist/plugin-sdk/diagnostic-CdNZNyNv.cjs +0 -1
  582. package/dist/plugin-sdk/diagnostic-DE5k6C1E.js +0 -1
  583. package/dist/plugin-sdk/diagnostic-DMpxa640.cjs +0 -1
  584. package/dist/plugin-sdk/diagnostic-DSgf5Z4H.js +0 -1
  585. package/dist/plugin-sdk/diagnostic-DbRdunVt.js +0 -1
  586. package/dist/plugin-sdk/diagnostic-zCrcFAbJ.js +0 -1
  587. package/dist/plugin-sdk/diagnostics-otel.cjs +0 -1
  588. package/dist/plugin-sdk/diagnostics-otel.js +0 -1
  589. package/dist/plugin-sdk/diffs.cjs +0 -1
  590. package/dist/plugin-sdk/diffs.js +0 -1
  591. package/dist/plugin-sdk/discord.cjs +0 -1
  592. package/dist/plugin-sdk/discord.js +0 -1
  593. package/dist/plugin-sdk/dispatch-B13B2T1k.js +0 -1
  594. package/dist/plugin-sdk/dispatch-BaBcLOry.js +0 -1
  595. package/dist/plugin-sdk/dispatch-BlOkbw2U.js +0 -1
  596. package/dist/plugin-sdk/dispatch-D2Km7gvG.cjs +0 -1
  597. package/dist/plugin-sdk/dispatch-DAaOM5c1.cjs +0 -1
  598. package/dist/plugin-sdk/dispatch-DYRrW05S.js +0 -1
  599. package/dist/plugin-sdk/dispatch-Dap2ZPC9.js +0 -1
  600. package/dist/plugin-sdk/dispatch-Dl0eaYcY.cjs +0 -1
  601. package/dist/plugin-sdk/dispatch-_tJF5hSh.cjs +0 -1
  602. package/dist/plugin-sdk/dispatch-cPg1rBWu.cjs +0 -1
  603. package/dist/plugin-sdk/feishu.cjs +0 -1
  604. package/dist/plugin-sdk/feishu.js +0 -1
  605. package/dist/plugin-sdk/fetch-7Iq9POda.js +0 -1
  606. package/dist/plugin-sdk/fetch-B1GR6-u4.js +0 -1
  607. package/dist/plugin-sdk/fetch-B27H-XCf.js +0 -1
  608. package/dist/plugin-sdk/fetch-BMYDLRWo.js +0 -1
  609. package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +0 -1
  610. package/dist/plugin-sdk/fetch-BVEVk5YF.js +0 -1
  611. package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +0 -1
  612. package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +0 -1
  613. package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +0 -1
  614. package/dist/plugin-sdk/fetch-BtZY623f.js +0 -1
  615. package/dist/plugin-sdk/fetch-C-HRWp5R.js +0 -1
  616. package/dist/plugin-sdk/fetch-C3LEMysf.js +0 -1
  617. package/dist/plugin-sdk/fetch-CCLWsYaQ.js +0 -1
  618. package/dist/plugin-sdk/fetch-CZewCAvu.cjs +0 -1
  619. package/dist/plugin-sdk/fetch-ClKErpni.cjs +0 -1
  620. package/dist/plugin-sdk/fetch-DBRI0sKI.js +0 -1
  621. package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +0 -1
  622. package/dist/plugin-sdk/fetch-DUMEaqum.cjs +0 -1
  623. package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +0 -1
  624. package/dist/plugin-sdk/fetch-J0IzopiJ.js +0 -1
  625. package/dist/plugin-sdk/fetch-guard-7tObWdgY.cjs +0 -1
  626. package/dist/plugin-sdk/fetch-guard-ACKeLHgB.js +0 -1
  627. package/dist/plugin-sdk/fetch-guard-BI5z5sCg.cjs +0 -1
  628. package/dist/plugin-sdk/fetch-guard-BUOtcki7.cjs +0 -1
  629. package/dist/plugin-sdk/fetch-guard-BZi5e63X.js +0 -1
  630. package/dist/plugin-sdk/fetch-guard-CVnIQ0nI.cjs +0 -1
  631. package/dist/plugin-sdk/fetch-guard-DKS4LY4o.js +0 -1
  632. package/dist/plugin-sdk/fetch-guard-DcAQBHbg.cjs +0 -1
  633. package/dist/plugin-sdk/fetch-guard-Dj-DlPBS.cjs +0 -1
  634. package/dist/plugin-sdk/fetch-guard-Dm1nAvhl.js +0 -1
  635. package/dist/plugin-sdk/fetch-guard-GfhPo1Fa.js +0 -1
  636. package/dist/plugin-sdk/fetch-guard-nFWUH1s9.js +0 -1
  637. package/dist/plugin-sdk/fetch-lw-aF17e.cjs +0 -1
  638. package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +0 -1
  639. package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +0 -1
  640. package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +0 -1
  641. package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +0 -1
  642. package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +0 -1
  643. package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +0 -1
  644. package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +0 -1
  645. package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +0 -1
  646. package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +0 -1
  647. package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +0 -1
  648. package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +0 -1
  649. package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +0 -1
  650. package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +0 -1
  651. package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +0 -1
  652. package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +0 -1
  653. package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +0 -1
  654. package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +0 -1
  655. package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +0 -1
  656. package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +0 -1
  657. package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +0 -1
  658. package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +0 -1
  659. package/dist/plugin-sdk/google-gemini-cli-auth.cjs +0 -1
  660. package/dist/plugin-sdk/google-gemini-cli-auth.js +0 -1
  661. package/dist/plugin-sdk/googlechat.cjs +0 -1
  662. package/dist/plugin-sdk/googlechat.js +0 -1
  663. package/dist/plugin-sdk/image-BLG2OrjE.cjs +0 -1
  664. package/dist/plugin-sdk/image-BPUmI-kx.cjs +0 -1
  665. package/dist/plugin-sdk/image-Bt_w0o87.js +0 -1
  666. package/dist/plugin-sdk/image-CMeyJO2-.js +0 -1
  667. package/dist/plugin-sdk/image-CMiT6Fvk.cjs +0 -1
  668. package/dist/plugin-sdk/image-CNMuTe0Z.js +0 -1
  669. package/dist/plugin-sdk/image-CO9zxV0G.js +0 -1
  670. package/dist/plugin-sdk/image-CjVyB61p.cjs +0 -1
  671. package/dist/plugin-sdk/image-CkWikcPf.cjs +0 -1
  672. package/dist/plugin-sdk/image-Dk2gzO1U.js +0 -1
  673. package/dist/plugin-sdk/image-Jmj-a1pv.js +0 -1
  674. package/dist/plugin-sdk/image-UKq4Bn2r.cjs +0 -1
  675. package/dist/plugin-sdk/imessage.cjs +0 -1
  676. package/dist/plugin-sdk/imessage.js +0 -1
  677. package/dist/plugin-sdk/index.cjs +0 -1
  678. package/dist/plugin-sdk/index.js +0 -1
  679. package/dist/plugin-sdk/ir-Bg_avpt0.cjs +0 -1
  680. package/dist/plugin-sdk/ir-BiiaNbB9.cjs +0 -1
  681. package/dist/plugin-sdk/ir-CYJPM1_I.cjs +0 -1
  682. package/dist/plugin-sdk/ir-Ca3EdqFl.js +0 -1
  683. package/dist/plugin-sdk/ir-Cl_S_VBR.cjs +0 -1
  684. package/dist/plugin-sdk/ir-Cq7b_9v8.cjs +0 -1
  685. package/dist/plugin-sdk/ir-DcWa7gsX.cjs +0 -1
  686. package/dist/plugin-sdk/ir-DdA08iXJ.js +0 -1
  687. package/dist/plugin-sdk/ir-DqBwrJJd.js +0 -1
  688. package/dist/plugin-sdk/ir-EUD0qDem.js +0 -1
  689. package/dist/plugin-sdk/ir-c1MS26Ci.js +0 -1
  690. package/dist/plugin-sdk/ir-vhCxHELh.js +0 -1
  691. package/dist/plugin-sdk/irc.cjs +0 -1
  692. package/dist/plugin-sdk/irc.js +0 -1
  693. package/dist/plugin-sdk/keyed-async-queue.cjs +0 -1
  694. package/dist/plugin-sdk/keyed-async-queue.js +0 -1
  695. package/dist/plugin-sdk/line.cjs +0 -1
  696. package/dist/plugin-sdk/line.js +0 -1
  697. package/dist/plugin-sdk/llm-task.cjs +0 -1
  698. package/dist/plugin-sdk/llm-task.js +0 -1
  699. package/dist/plugin-sdk/load-options-B9Ss5YOO.js +0 -1
  700. package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +0 -1
  701. package/dist/plugin-sdk/load-options-BXvm8HVv.js +0 -1
  702. package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +0 -1
  703. package/dist/plugin-sdk/load-options-BcSg1ODN.js +0 -1
  704. package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +0 -1
  705. package/dist/plugin-sdk/lobster.cjs +0 -1
  706. package/dist/plugin-sdk/lobster.js +0 -1
  707. package/dist/plugin-sdk/local-roots-2OcKjfzk.js +0 -1
  708. package/dist/plugin-sdk/local-roots-ByrRvVBc.cjs +0 -1
  709. package/dist/plugin-sdk/local-roots-CXPxvx0J.js +0 -1
  710. package/dist/plugin-sdk/local-roots-CzbssMW1.cjs +0 -1
  711. package/dist/plugin-sdk/local-roots-DIijr8mK.cjs +0 -1
  712. package/dist/plugin-sdk/local-roots-DRv9Y_41.cjs +0 -1
  713. package/dist/plugin-sdk/local-roots-DTC7BJct.js +0 -1
  714. package/dist/plugin-sdk/local-roots-DU8RuiRi.js +0 -1
  715. package/dist/plugin-sdk/local-roots-DprQ5M3b.js +0 -1
  716. package/dist/plugin-sdk/local-roots-GqNj3vMl.cjs +0 -1
  717. package/dist/plugin-sdk/local-roots-I2icTm2P.cjs +0 -1
  718. package/dist/plugin-sdk/local-roots-qEhx-D42.js +0 -1
  719. package/dist/plugin-sdk/logger-6O6OsYBL.cjs +0 -1
  720. package/dist/plugin-sdk/logger-BlddiV_d.cjs +0 -1
  721. package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +0 -1
  722. package/dist/plugin-sdk/logger-BtrWb0dj.js +0 -1
  723. package/dist/plugin-sdk/logger-C210xuWx.js +0 -1
  724. package/dist/plugin-sdk/logger-DJGHvDbX.js +0 -1
  725. package/dist/plugin-sdk/logger-DPlqYkRm.cjs +0 -1
  726. package/dist/plugin-sdk/logger-DUYnS-W3.cjs +0 -1
  727. package/dist/plugin-sdk/logger-DwWqfo66.js +0 -1
  728. package/dist/plugin-sdk/logger-vBDTZWl3.js +0 -1
  729. package/dist/plugin-sdk/login-0ui1gfZM.cjs +0 -1
  730. package/dist/plugin-sdk/login-B0lIdwss.cjs +0 -1
  731. package/dist/plugin-sdk/login-B43p990Y.cjs +0 -1
  732. package/dist/plugin-sdk/login-DHBcWg4R.cjs +0 -1
  733. package/dist/plugin-sdk/login-DUCNg4lV.js +0 -1
  734. package/dist/plugin-sdk/login-DqVo92p1.js +0 -1
  735. package/dist/plugin-sdk/login-Dt4KiLgP.js +0 -1
  736. package/dist/plugin-sdk/login-IVBk3GwG.cjs +0 -1
  737. package/dist/plugin-sdk/login-T6tSC1Xl.js +0 -1
  738. package/dist/plugin-sdk/login-XruRHZe5.js +0 -1
  739. package/dist/plugin-sdk/login-p9hWVYO6.cjs +0 -1
  740. package/dist/plugin-sdk/login-qr-B4wf-15u.js +0 -1
  741. package/dist/plugin-sdk/login-qr-BQMm3yV_.cjs +0 -1
  742. package/dist/plugin-sdk/login-qr-BreyhXFQ.cjs +0 -1
  743. package/dist/plugin-sdk/login-qr-C6RPK8ld.js +0 -1
  744. package/dist/plugin-sdk/login-qr-C6cQueYq.js +0 -1
  745. package/dist/plugin-sdk/login-qr-CxznBK7s.cjs +0 -1
  746. package/dist/plugin-sdk/login-qr-D0dmb3Gr.js +0 -1
  747. package/dist/plugin-sdk/login-qr-DWW1FC-n.cjs +0 -1
  748. package/dist/plugin-sdk/login-qr-DjC-P7Vy.cjs +0 -1
  749. package/dist/plugin-sdk/login-qr-KeBTY1Mb.js +0 -1
  750. package/dist/plugin-sdk/login-qr-gQsVZ8en.js +0 -1
  751. package/dist/plugin-sdk/login-qr-xkqmSKC8.cjs +0 -1
  752. package/dist/plugin-sdk/login-x9vN5UnR.js +0 -1
  753. package/dist/plugin-sdk/manager-B38IH03I.cjs +0 -1
  754. package/dist/plugin-sdk/manager-BZVFXygg.cjs +0 -1
  755. package/dist/plugin-sdk/manager-BuNveORY.cjs +0 -1
  756. package/dist/plugin-sdk/manager-C4FEmxjq.cjs +0 -1
  757. package/dist/plugin-sdk/manager-CHnzSMNG.js +0 -1
  758. package/dist/plugin-sdk/manager-CN4wiVFz.js +0 -1
  759. package/dist/plugin-sdk/manager-D9RwKYCX.js +0 -1
  760. package/dist/plugin-sdk/manager-DAmjm61U.cjs +0 -1
  761. package/dist/plugin-sdk/manager-DJSpJkev.js +0 -1
  762. package/dist/plugin-sdk/manager-EO7deQzm.js +0 -1
  763. package/dist/plugin-sdk/manager-vyHAgafh.cjs +0 -1
  764. package/dist/plugin-sdk/manager-zyDhj7B-.js +0 -1
  765. package/dist/plugin-sdk/matrix.cjs +0 -1
  766. package/dist/plugin-sdk/matrix.js +0 -1
  767. package/dist/plugin-sdk/mattermost.cjs +0 -1
  768. package/dist/plugin-sdk/mattermost.js +0 -1
  769. package/dist/plugin-sdk/memory-core.cjs +0 -1
  770. package/dist/plugin-sdk/memory-core.js +0 -1
  771. package/dist/plugin-sdk/minimax-portal-auth.cjs +0 -1
  772. package/dist/plugin-sdk/minimax-portal-auth.js +0 -1
  773. package/dist/plugin-sdk/model-auth-1RA9nkQH.js +0 -1
  774. package/dist/plugin-sdk/model-auth-Cgqd2_sP.cjs +0 -1
  775. package/dist/plugin-sdk/model-auth-Cp2GSJwZ.js +0 -1
  776. package/dist/plugin-sdk/model-auth-Lv74A-Si.cjs +0 -1
  777. package/dist/plugin-sdk/model-auth-RI6NYvTO.js +0 -1
  778. package/dist/plugin-sdk/model-auth-exDkzEDR.js +0 -1
  779. package/dist/plugin-sdk/model-auth-igOM3blS.cjs +0 -1
  780. package/dist/plugin-sdk/model-auth-sjKLUCCz.cjs +0 -1
  781. package/dist/plugin-sdk/model-selection-C9HlFaXF.js +0 -1
  782. package/dist/plugin-sdk/model-selection-DpGE9eNM.cjs +0 -1
  783. package/dist/plugin-sdk/msteams.cjs +0 -1
  784. package/dist/plugin-sdk/msteams.js +0 -1
  785. package/dist/plugin-sdk/nextcloud-talk.cjs +0 -1
  786. package/dist/plugin-sdk/nextcloud-talk.js +0 -1
  787. package/dist/plugin-sdk/nostr.cjs +0 -1
  788. package/dist/plugin-sdk/nostr.js +0 -1
  789. package/dist/plugin-sdk/outbound-BO0tyeUH.js +0 -1
  790. package/dist/plugin-sdk/outbound-BYU5HTrX.js +0 -1
  791. package/dist/plugin-sdk/outbound-CBVlxGRf.cjs +0 -1
  792. package/dist/plugin-sdk/outbound-CTyu_gZh.js +0 -1
  793. package/dist/plugin-sdk/outbound-CwWXHNwp.cjs +0 -1
  794. package/dist/plugin-sdk/outbound-CySyQcmE.js +0 -1
  795. package/dist/plugin-sdk/outbound-DDPxEpHH.cjs +0 -1
  796. package/dist/plugin-sdk/outbound-DZhl7sHt.cjs +0 -1
  797. package/dist/plugin-sdk/outbound-DmeUAXdA.js +0 -1
  798. package/dist/plugin-sdk/outbound-DvFQ_6wQ.cjs +0 -1
  799. package/dist/plugin-sdk/outbound-Dy87UlCV.cjs +0 -1
  800. package/dist/plugin-sdk/outbound-attachment-5H1iYkTb.js +0 -1
  801. package/dist/plugin-sdk/outbound-attachment-BAHrn3r7.cjs +0 -1
  802. package/dist/plugin-sdk/outbound-attachment-BBJPbiLF.cjs +0 -1
  803. package/dist/plugin-sdk/outbound-attachment-BIGvZREF.cjs +0 -1
  804. package/dist/plugin-sdk/outbound-attachment-B_OTB3A8.js +0 -1
  805. package/dist/plugin-sdk/outbound-attachment-C94-r948.js +0 -1
  806. package/dist/plugin-sdk/outbound-attachment-CJatgPbm.js +0 -1
  807. package/dist/plugin-sdk/outbound-attachment-CLUVyl5e.js +0 -1
  808. package/dist/plugin-sdk/outbound-attachment-CTR1-VEH.js +0 -1
  809. package/dist/plugin-sdk/outbound-attachment-CmQ0SNgK.cjs +0 -1
  810. package/dist/plugin-sdk/outbound-attachment-Dbja7LQF.cjs +0 -1
  811. package/dist/plugin-sdk/outbound-attachment-DwzJ2l3T.cjs +0 -1
  812. package/dist/plugin-sdk/outbound-xMr8Xsxe.js +0 -1
  813. package/dist/plugin-sdk/paths-BPlgbwrb.cjs +0 -1
  814. package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +0 -1
  815. package/dist/plugin-sdk/paths-BpQOWYiT.js +0 -1
  816. package/dist/plugin-sdk/paths-BvlJvmRS.cjs +0 -1
  817. package/dist/plugin-sdk/paths-CIcxeNL-.cjs +0 -1
  818. package/dist/plugin-sdk/paths-CXgWvWAM.js +0 -1
  819. package/dist/plugin-sdk/paths-Chp3zwtq.cjs +0 -1
  820. package/dist/plugin-sdk/paths-CnHSNSeR.js +0 -1
  821. package/dist/plugin-sdk/paths-Cqca1YmF.cjs +0 -1
  822. package/dist/plugin-sdk/paths-CtrEseGU.js +0 -1
  823. package/dist/plugin-sdk/paths-D55o_j8-.js +0 -1
  824. package/dist/plugin-sdk/paths-D90l3h_o.cjs +0 -1
  825. package/dist/plugin-sdk/paths-DaRoqzBQ.js +0 -1
  826. package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +0 -1
  827. package/dist/plugin-sdk/paths-DhSjTRMz.js +0 -1
  828. package/dist/plugin-sdk/paths-Do0djuaj.js +0 -1
  829. package/dist/plugin-sdk/paths-J4JUiRsa.js +0 -1
  830. package/dist/plugin-sdk/paths-cBAF6Bj0.js +0 -1
  831. package/dist/plugin-sdk/paths-piJASC5k.js +0 -1
  832. package/dist/plugin-sdk/paths-rO4ehkyU.js +0 -1
  833. package/dist/plugin-sdk/pi-model-discovery-5wc5qlmB.cjs +0 -1
  834. package/dist/plugin-sdk/pi-model-discovery-BQiHbl8F.js +0 -1
  835. package/dist/plugin-sdk/pi-model-discovery-BZZVGcJl.js +0 -1
  836. package/dist/plugin-sdk/pi-model-discovery-Ba70onAm.js +0 -1
  837. package/dist/plugin-sdk/pi-model-discovery-BfuqD_Rv.cjs +0 -1
  838. package/dist/plugin-sdk/pi-model-discovery-BsdlRK-w.js +0 -1
  839. package/dist/plugin-sdk/pi-model-discovery-CAYSx-Lw.cjs +0 -1
  840. package/dist/plugin-sdk/pi-model-discovery-CyBFRafV.cjs +0 -1
  841. package/dist/plugin-sdk/pi-model-discovery-D1WW5m-Q.js +0 -1
  842. package/dist/plugin-sdk/pi-model-discovery-DRYpUnOa.cjs +0 -1
  843. package/dist/plugin-sdk/pi-model-discovery-DUbDLlc7.cjs +0 -1
  844. package/dist/plugin-sdk/pi-model-discovery-DcUDwgMg.cjs +0 -1
  845. package/dist/plugin-sdk/pi-model-discovery-DrZsxLaJ.js +0 -1
  846. package/dist/plugin-sdk/pi-model-discovery-gaVoL7I2.js +0 -1
  847. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BWmteuHS.js +0 -1
  848. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BmznXclG.cjs +0 -1
  849. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BzTifHML.cjs +0 -1
  850. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CEPsGtJk.cjs +0 -1
  851. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CYleOK1-.cjs +0 -1
  852. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Ctbk1Pq8.js +0 -1
  853. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-D-hwiLUl.js +0 -1
  854. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DDuUTLh8.js +0 -1
  855. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DLfogXKU.cjs +0 -1
  856. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Dd-VFim_.js +0 -1
  857. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Dvmcwf-j.cjs +0 -1
  858. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-i-IGFbqI.js +0 -1
  859. package/dist/plugin-sdk/polls-BuaJuIpV.cjs +0 -1
  860. package/dist/plugin-sdk/polls-CBAGZuJ6.js +0 -1
  861. package/dist/plugin-sdk/polls-CSKMbBIS.js +0 -1
  862. package/dist/plugin-sdk/polls-D0wY0FvT.cjs +0 -1
  863. package/dist/plugin-sdk/polls-PGxiE05J.js +0 -1
  864. package/dist/plugin-sdk/polls-yWqSCEP0.cjs +0 -1
  865. package/dist/plugin-sdk/proxy-env-B765haXA.js +0 -1
  866. package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +0 -1
  867. package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +0 -1
  868. package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +0 -1
  869. package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +0 -1
  870. package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +0 -1
  871. package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +0 -1
  872. package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +0 -1
  873. package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +0 -1
  874. package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +0 -1
  875. package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +0 -1
  876. package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +0 -1
  877. package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +0 -1
  878. package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +0 -1
  879. package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +0 -1
  880. package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +0 -1
  881. package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +0 -1
  882. package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +0 -1
  883. package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +0 -1
  884. package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +0 -1
  885. package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +0 -1
  886. package/dist/plugin-sdk/proxy-fetch-Del551nu.js +0 -1
  887. package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +0 -1
  888. package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +0 -1
  889. package/dist/plugin-sdk/pw-ai-B9PkuA_R.cjs +0 -1
  890. package/dist/plugin-sdk/pw-ai-BMJV0Hqt.cjs +0 -1
  891. package/dist/plugin-sdk/pw-ai-BRasSDsB.js +0 -1
  892. package/dist/plugin-sdk/pw-ai-BY57aH_o.js +0 -1
  893. package/dist/plugin-sdk/pw-ai-BbpImC35.cjs +0 -1
  894. package/dist/plugin-sdk/pw-ai-D7d16RB-.cjs +0 -1
  895. package/dist/plugin-sdk/pw-ai-DF7TX5Lc.cjs +0 -1
  896. package/dist/plugin-sdk/pw-ai-DHN1pktj.js +0 -1
  897. package/dist/plugin-sdk/pw-ai-QzImh8G0.cjs +0 -1
  898. package/dist/plugin-sdk/pw-ai-V1CVJi48.js +0 -1
  899. package/dist/plugin-sdk/pw-ai-mvXkpTxf.js +0 -1
  900. package/dist/plugin-sdk/pw-ai-tdgA-KlG.js +0 -1
  901. package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +0 -1
  902. package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +0 -1
  903. package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +0 -1
  904. package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +0 -1
  905. package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +0 -1
  906. package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +0 -1
  907. package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +0 -1
  908. package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +0 -1
  909. package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +0 -1
  910. package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +0 -1
  911. package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +0 -1
  912. package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +0 -1
  913. package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +0 -1
  914. package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +0 -1
  915. package/dist/plugin-sdk/query-expansion-CAboqtWr.js +0 -1
  916. package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +0 -1
  917. package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +0 -1
  918. package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +0 -1
  919. package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +0 -1
  920. package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +0 -1
  921. package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +0 -1
  922. package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +0 -1
  923. package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +0 -1
  924. package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +0 -1
  925. package/dist/plugin-sdk/qwen-portal-auth.cjs +0 -1
  926. package/dist/plugin-sdk/qwen-portal-auth.js +0 -1
  927. package/dist/plugin-sdk/render-6fCdtAr6.cjs +0 -1
  928. package/dist/plugin-sdk/render-CBsnn-2A.js +0 -1
  929. package/dist/plugin-sdk/render-CzHaQB0d.cjs +0 -1
  930. package/dist/plugin-sdk/render-DGmfCIRG.js +0 -1
  931. package/dist/plugin-sdk/render-DhTJXP1U.js +0 -1
  932. package/dist/plugin-sdk/render-Djx15dPh.js +0 -1
  933. package/dist/plugin-sdk/render-DxBO2Blp.cjs +0 -1
  934. package/dist/plugin-sdk/render-g5VlmgpF.cjs +0 -1
  935. package/dist/plugin-sdk/reply-73PF8kN_.js +0 -1
  936. package/dist/plugin-sdk/reply-JD6VIW5N.cjs +0 -1
  937. package/dist/plugin-sdk/resolve-outbound-target-BNv_T3Bk.js +0 -1
  938. package/dist/plugin-sdk/resolve-outbound-target-CDM7_xfU.cjs +0 -1
  939. package/dist/plugin-sdk/resolve-outbound-target-CvKfootv.js +0 -1
  940. package/dist/plugin-sdk/resolve-outbound-target-Fq8une1d.cjs +0 -1
  941. package/dist/plugin-sdk/send-0TzQg7Eo.js +0 -1
  942. package/dist/plugin-sdk/send-AyV5r86J.js +0 -1
  943. package/dist/plugin-sdk/send-B-GqqrNy.js +0 -1
  944. package/dist/plugin-sdk/send-B03So6fs.cjs +0 -1
  945. package/dist/plugin-sdk/send-B0oV0qgS.js +0 -1
  946. package/dist/plugin-sdk/send-B31Tjl_I.cjs +0 -1
  947. package/dist/plugin-sdk/send-B4LTVhTd.cjs +0 -1
  948. package/dist/plugin-sdk/send-BGXPpAqy.cjs +0 -1
  949. package/dist/plugin-sdk/send-BJ957TYU.js +0 -1
  950. package/dist/plugin-sdk/send-BJmf3HVn.cjs +0 -1
  951. package/dist/plugin-sdk/send-BW3UECzm.js +0 -1
  952. package/dist/plugin-sdk/send-BWEZ_8nL.cjs +0 -1
  953. package/dist/plugin-sdk/send-BXrh73qh.cjs +0 -1
  954. package/dist/plugin-sdk/send-BbudHjUi.cjs +0 -1
  955. package/dist/plugin-sdk/send-BkjnUdWv.cjs +0 -1
  956. package/dist/plugin-sdk/send-BxIt-s7G.cjs +0 -1
  957. package/dist/plugin-sdk/send-ByKNfU2S.js +0 -1
  958. package/dist/plugin-sdk/send-Bz2Loz_Q.cjs +0 -1
  959. package/dist/plugin-sdk/send-CAreQYLU.cjs +0 -1
  960. package/dist/plugin-sdk/send-CGMqeSaY.cjs +0 -1
  961. package/dist/plugin-sdk/send-CJmor6eC.js +0 -1
  962. package/dist/plugin-sdk/send-CL2pl8br.cjs +0 -1
  963. package/dist/plugin-sdk/send-CMeGMLko.js +0 -1
  964. package/dist/plugin-sdk/send-CceHBxiK.js +0 -1
  965. package/dist/plugin-sdk/send-Cdx_KGYb.js +0 -1
  966. package/dist/plugin-sdk/send-Cer1bA2g.cjs +0 -1
  967. package/dist/plugin-sdk/send-CimU95QQ.cjs +0 -1
  968. package/dist/plugin-sdk/send-CoEAieJt.cjs +0 -1
  969. package/dist/plugin-sdk/send-Cob_bnT32.js +0 -1
  970. package/dist/plugin-sdk/send-Cyp5hOpt.js +0 -1
  971. package/dist/plugin-sdk/send-CzEFjTpi.js +0 -1
  972. package/dist/plugin-sdk/send-D2LjU2py.js +0 -1
  973. package/dist/plugin-sdk/send-D9Gbseeh.cjs +0 -1
  974. package/dist/plugin-sdk/send-DIjQ2vB4.js +0 -1
  975. package/dist/plugin-sdk/send-DJ419AIX.cjs +0 -1
  976. package/dist/plugin-sdk/send-DLtYxO1e.cjs +0 -1
  977. package/dist/plugin-sdk/send-DMk529J8.js +0 -1
  978. package/dist/plugin-sdk/send-DMxohaL_.cjs +0 -1
  979. package/dist/plugin-sdk/send-DQlKz6Bj.js +0 -1
  980. package/dist/plugin-sdk/send-DTUW-YBy.js +0 -1
  981. package/dist/plugin-sdk/send-Dc43nN-I.js +0 -1
  982. package/dist/plugin-sdk/send-DcRj8DUU.cjs +0 -1
  983. package/dist/plugin-sdk/send-DmxxJFZd.cjs +0 -1
  984. package/dist/plugin-sdk/send-DnwN1vBU.cjs +0 -1
  985. package/dist/plugin-sdk/send-DogBiU4n.cjs +0 -1
  986. package/dist/plugin-sdk/send-MEvv6c7w.js +0 -1
  987. package/dist/plugin-sdk/send-TRwokuAm.cjs +0 -1
  988. package/dist/plugin-sdk/send-VUSa_wkg.js +0 -1
  989. package/dist/plugin-sdk/send-X1b7Cj9U.cjs +0 -1
  990. package/dist/plugin-sdk/send-XX5rP5bI.js +0 -1
  991. package/dist/plugin-sdk/send-_ZGBA2sz.js +0 -1
  992. package/dist/plugin-sdk/send-d5RoIkxA.js +0 -1
  993. package/dist/plugin-sdk/send-dCbQnCLx.js +0 -1
  994. package/dist/plugin-sdk/send-gSV6SR6F.cjs +0 -1
  995. package/dist/plugin-sdk/send-pC6ctwfQ.cjs +0 -1
  996. package/dist/plugin-sdk/send-pq2hNOwv.cjs +0 -1
  997. package/dist/plugin-sdk/send-q6C-1cdJ.js +0 -1
  998. package/dist/plugin-sdk/send-vnIJSD5l.js +0 -1
  999. package/dist/plugin-sdk/send-vtYROJNd.js +0 -1
  1000. package/dist/plugin-sdk/send-wk_Y38Eq.js +0 -1
  1001. package/dist/plugin-sdk/session-BSLJWzVk.cjs +0 -1
  1002. package/dist/plugin-sdk/session-BfWC0c92.js +0 -1
  1003. package/dist/plugin-sdk/session-BjsaXe-G.js +0 -1
  1004. package/dist/plugin-sdk/session-C20nSfk5.cjs +0 -1
  1005. package/dist/plugin-sdk/session-CR8fsPgs.js +0 -1
  1006. package/dist/plugin-sdk/session-CwinrWG4.cjs +0 -1
  1007. package/dist/plugin-sdk/session-DAtRSLdw.cjs +0 -1
  1008. package/dist/plugin-sdk/session-Djo63EGV.cjs +0 -1
  1009. package/dist/plugin-sdk/session-EJZkCm6l.js +0 -1
  1010. package/dist/plugin-sdk/session-UIRgeq02.cjs +0 -1
  1011. package/dist/plugin-sdk/session-aOZKTEyZ.js +0 -1
  1012. package/dist/plugin-sdk/session-nUw21fi0.js +0 -1
  1013. package/dist/plugin-sdk/sessions-B06a3AKE.js +0 -1
  1014. package/dist/plugin-sdk/sessions-BmhjMXlm.cjs +0 -1
  1015. package/dist/plugin-sdk/signal.cjs +0 -1
  1016. package/dist/plugin-sdk/signal.js +0 -1
  1017. package/dist/plugin-sdk/skill-commands-2LXH0aZR.cjs +0 -1
  1018. package/dist/plugin-sdk/skill-commands-B4AbCkKe.cjs +0 -1
  1019. package/dist/plugin-sdk/skill-commands-B_xNpuH_.cjs +0 -1
  1020. package/dist/plugin-sdk/skill-commands-BbAfKA1R.js +0 -1
  1021. package/dist/plugin-sdk/skill-commands-BcKIgHAP.cjs +0 -1
  1022. package/dist/plugin-sdk/skill-commands-C9g2UiKr.cjs +0 -1
  1023. package/dist/plugin-sdk/skill-commands-CPZ9Jvbj.js +0 -1
  1024. package/dist/plugin-sdk/skill-commands-CgDUjb3J.js +0 -1
  1025. package/dist/plugin-sdk/skill-commands-D83BLBEG.js +0 -1
  1026. package/dist/plugin-sdk/skill-commands-DI1TMUxQ.js +0 -1
  1027. package/dist/plugin-sdk/skill-commands-DldIiKD1.js +0 -1
  1028. package/dist/plugin-sdk/skill-commands-LCW6nWWC.cjs +0 -1
  1029. package/dist/plugin-sdk/slack.cjs +0 -1
  1030. package/dist/plugin-sdk/slack.js +0 -1
  1031. package/dist/plugin-sdk/synology-chat.cjs +0 -1
  1032. package/dist/plugin-sdk/synology-chat.js +0 -1
  1033. package/dist/plugin-sdk/tables-BXY1ms0X.js +0 -1
  1034. package/dist/plugin-sdk/tables-BlhpY72l.cjs +0 -1
  1035. package/dist/plugin-sdk/tables-BltHUi44.cjs +0 -1
  1036. package/dist/plugin-sdk/tables-Bp6t_Jkb.js +0 -1
  1037. package/dist/plugin-sdk/tables-BszYJkqX.cjs +0 -1
  1038. package/dist/plugin-sdk/tables-CAZJt5bp.js +0 -1
  1039. package/dist/plugin-sdk/tables-CcuiVH-P.cjs +0 -1
  1040. package/dist/plugin-sdk/tables-CuSMtUxt.cjs +0 -1
  1041. package/dist/plugin-sdk/tables-DOLEnfD6.js +0 -1
  1042. package/dist/plugin-sdk/tables-DiiF7bbj.cjs +0 -1
  1043. package/dist/plugin-sdk/tables-aSJP6Sef.js +0 -1
  1044. package/dist/plugin-sdk/tables-ib4GZqYB.js +0 -1
  1045. package/dist/plugin-sdk/target-errors--anbEDnm.js +0 -1
  1046. package/dist/plugin-sdk/target-errors-4q9SUsM_.js +0 -1
  1047. package/dist/plugin-sdk/target-errors-BFOTHcjO.js +0 -1
  1048. package/dist/plugin-sdk/target-errors-Bw4tI2Lc.cjs +0 -1
  1049. package/dist/plugin-sdk/target-errors-CAgwWHUv.js +0 -1
  1050. package/dist/plugin-sdk/target-errors-CUDKM0z-.js +0 -1
  1051. package/dist/plugin-sdk/target-errors-DIOJ6Eun.cjs +0 -1
  1052. package/dist/plugin-sdk/target-errors-DnZq9h4B.cjs +0 -1
  1053. package/dist/plugin-sdk/target-errors-DwAKh8KU.cjs +0 -1
  1054. package/dist/plugin-sdk/target-errors-QGzfLvuU.cjs +0 -1
  1055. package/dist/plugin-sdk/targets-BSc11Uk8.cjs +0 -1
  1056. package/dist/plugin-sdk/targets-BSkiizml.js +0 -1
  1057. package/dist/plugin-sdk/targets-CBI0xqve.cjs +0 -1
  1058. package/dist/plugin-sdk/targets-CL5fYQi7.js +0 -1
  1059. package/dist/plugin-sdk/targets-CUZWrFrm.cjs +0 -1
  1060. package/dist/plugin-sdk/targets-CVEYTFPQ.js +0 -1
  1061. package/dist/plugin-sdk/targets-Co2R6K14.cjs +0 -1
  1062. package/dist/plugin-sdk/targets-CrkJkzil.js +0 -1
  1063. package/dist/plugin-sdk/targets-D-m7SV9x.cjs +0 -1
  1064. package/dist/plugin-sdk/targets-D8HTxbo4.js +0 -1
  1065. package/dist/plugin-sdk/targets-DcGNB9nk.cjs +0 -1
  1066. package/dist/plugin-sdk/targets-Dn9gDiEw.js +0 -1
  1067. package/dist/plugin-sdk/targets-X28mff4s.cjs +0 -1
  1068. package/dist/plugin-sdk/targets-uycXZ8vQ.js +0 -1
  1069. package/dist/plugin-sdk/telegram.cjs +0 -1
  1070. package/dist/plugin-sdk/telegram.js +0 -1
  1071. package/dist/plugin-sdk/test-utils.cjs +0 -1
  1072. package/dist/plugin-sdk/test-utils.js +0 -1
  1073. package/dist/plugin-sdk/tlon.cjs +0 -1
  1074. package/dist/plugin-sdk/tlon.js +0 -1
  1075. package/dist/plugin-sdk/tokens-AAdZjj0M.js +0 -1
  1076. package/dist/plugin-sdk/tokens-B20KNIDD.js +0 -1
  1077. package/dist/plugin-sdk/tokens-B8ys7Q2e.js +0 -1
  1078. package/dist/plugin-sdk/tokens-BPc1fcZ3.js +0 -1
  1079. package/dist/plugin-sdk/tokens-BqABmXSe.js +0 -1
  1080. package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +0 -1
  1081. package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +0 -1
  1082. package/dist/plugin-sdk/tokens-CytSl1X8.cjs +0 -1
  1083. package/dist/plugin-sdk/tokens-DgPZk2Uu.js +0 -1
  1084. package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +0 -1
  1085. package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +0 -1
  1086. package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +0 -1
  1087. package/dist/plugin-sdk/twitch.cjs +0 -1
  1088. package/dist/plugin-sdk/twitch.js +0 -1
  1089. package/dist/plugin-sdk/utils-BJtJR72k.js +0 -1
  1090. package/dist/plugin-sdk/utils-PPIvU9qw.cjs +0 -1
  1091. package/dist/plugin-sdk/voice-call.cjs +0 -1
  1092. package/dist/plugin-sdk/voice-call.js +0 -1
  1093. package/dist/plugin-sdk/web--8MBOleK.js +0 -1
  1094. package/dist/plugin-sdk/web-B7d3p3kx.cjs +0 -1
  1095. package/dist/plugin-sdk/web-BEuW8Yqw.js +0 -1
  1096. package/dist/plugin-sdk/web-Bg2LIMdb.cjs +0 -1
  1097. package/dist/plugin-sdk/web-DFDao2So.cjs +0 -1
  1098. package/dist/plugin-sdk/web-DjbeDvyv.js +0 -1
  1099. package/dist/plugin-sdk/web-JciOW43P.js +0 -1
  1100. package/dist/plugin-sdk/web-vSFigMHz.cjs +0 -1
  1101. package/dist/plugin-sdk/weixin.cjs +0 -1
  1102. package/dist/plugin-sdk/weixin.js +0 -1
  1103. package/dist/plugin-sdk/whatsapp-actions-B67oFfeq.js +0 -1
  1104. package/dist/plugin-sdk/whatsapp-actions-BB0eACkf.cjs +0 -1
  1105. package/dist/plugin-sdk/whatsapp-actions-BIgrB0j5.cjs +0 -1
  1106. package/dist/plugin-sdk/whatsapp-actions-CFve14ju.cjs +0 -1
  1107. package/dist/plugin-sdk/whatsapp-actions-CdRkPw-b.js +0 -1
  1108. package/dist/plugin-sdk/whatsapp-actions-CtIBOGpJ.cjs +0 -1
  1109. package/dist/plugin-sdk/whatsapp-actions-CwAU7FuE.js +0 -1
  1110. package/dist/plugin-sdk/whatsapp-actions-DQ1t5QTc.cjs +0 -1
  1111. package/dist/plugin-sdk/whatsapp-actions-DkrN4BcG.js +0 -1
  1112. package/dist/plugin-sdk/whatsapp-actions-DnkKzVrU.js +0 -1
  1113. package/dist/plugin-sdk/whatsapp-actions-YcBsDZ88.js +0 -1
  1114. package/dist/plugin-sdk/whatsapp-actions-wk1U2IVU.cjs +0 -1
  1115. package/dist/plugin-sdk/whatsapp.cjs +0 -1
  1116. package/dist/plugin-sdk/whatsapp.js +0 -1
  1117. package/dist/plugin-sdk/zalo.cjs +0 -1
  1118. package/dist/plugin-sdk/zalo.js +0 -1
  1119. package/dist/plugin-sdk/zalouser.cjs +0 -1
  1120. package/dist/plugin-sdk/zalouser.js +0 -1
  1121. package/dist/plugins-CYLrFT4h.js +0 -1
  1122. package/dist/plugins-DNlgeTTc.js +0 -1
  1123. package/dist/plugins-cli-CnXgwZzI.js +0 -1
  1124. package/dist/plugins-cli-PVHBZeb8.js +0 -1
  1125. package/dist/polls-BIVz6a4F.js +0 -1
  1126. package/dist/polls-Bh5wc9-6.js +0 -1
  1127. package/dist/polls-C_XSFz3d.js +0 -1
  1128. package/dist/polls-DKJOFSzJ.js +0 -1
  1129. package/dist/ports-BAaLOkJp.js +2 -0
  1130. package/dist/ports-DDWP1p0X.js +2 -0
  1131. package/dist/probe-auth-C5nWfMS9.js +0 -1
  1132. package/dist/probe-auth-x4OHS_wa.js +0 -1
  1133. package/dist/profile-utils-CWmra1aY.js +0 -1
  1134. package/dist/{program-ppBAyCNf.js → program-D53eGuSf.js} +1 -2
  1135. package/dist/program-context-CH9p6anW.js +0 -1
  1136. package/dist/{program-context-BXNpM3b4.js → program-context-n-ovYq69.js} +1 -2
  1137. package/dist/progress-LNttnI-y.js +0 -1
  1138. package/dist/progress-d1m2sqR1.js +0 -1
  1139. package/dist/{prompt-select-styled-947JghKF.js → prompt-select-styled-DZnefcrY.js} +1 -2
  1140. package/dist/{prompt-select-styled-1abs2MvK.js → prompt-select-styled-DolCW-_j.js} +1 -2
  1141. package/dist/prompt-style-BThRSQJR.js +0 -1
  1142. package/dist/prompt-style-CXKekIBY.js +0 -1
  1143. package/dist/prompts-CMzglboN.js +0 -1
  1144. package/dist/prompts-wv-lfVrJ.js +0 -1
  1145. package/dist/provider-auth-helpers-BLm2bdp5.js +0 -1
  1146. package/dist/provider-auth-helpers-DPz0vN_c.js +0 -1
  1147. package/dist/provider-env-vars-D8p6Ohpj.js +0 -1
  1148. package/dist/provider-env-vars-Dt0Q29Su.js +0 -1
  1149. package/dist/proxy-env-BNhTHkd_.js +0 -1
  1150. package/dist/proxy-env-DcmW_urA.js +0 -1
  1151. package/dist/proxy-env-DrC3TIGh.js +0 -1
  1152. package/dist/proxy-env-FJr5nlvs.js +0 -1
  1153. package/dist/proxy-fetch-BADsUK4d.js +0 -1
  1154. package/dist/proxy-fetch-BZ9O8Dvj.js +0 -1
  1155. package/dist/proxy-fetch-DnjU1fEB.js +0 -1
  1156. package/dist/proxy-fetch-gWETR3cl.js +0 -1
  1157. package/dist/push-apns-BBv62ncV.js +0 -1
  1158. package/dist/push-apns-DIV5dBPP.js +0 -1
  1159. package/dist/pw-ai-C0gM3d-6.js +0 -1
  1160. package/dist/pw-ai-CQd14BQa.js +0 -1
  1161. package/dist/pw-ai-DiQuOf4W.js +0 -1
  1162. package/dist/pw-ai-jlhIn-aA.js +0 -1
  1163. package/dist/qmd-manager-C_e04BNg.js +0 -1
  1164. package/dist/qmd-manager-DSQ_mDCl.js +0 -1
  1165. package/dist/qmd-manager-DcBYbt_V.js +0 -1
  1166. package/dist/qmd-manager-NLI0R6kp.js +0 -1
  1167. package/dist/qr-cli-D06YZurm.js +0 -1
  1168. package/dist/qr-cli-ZtDsXyLO.js +0 -1
  1169. package/dist/query-expansion-0OxEb1Io.js +0 -1
  1170. package/dist/query-expansion-BUUx_oWg.js +0 -1
  1171. package/dist/query-expansion-r_iXkNzt.js +0 -1
  1172. package/dist/reaction-level-DVPHL14p.js +0 -1
  1173. package/dist/reaction-message-id-BEEe7X3D.js +0 -1
  1174. package/dist/read-only-account-inspect-B0cm8yrv.js +0 -1
  1175. package/dist/redact-3_CiXMY6.js +0 -1
  1176. package/dist/redact-CnRxK70G.js +0 -1
  1177. package/dist/register.agent-DHOTtB8X.js +0 -1
  1178. package/dist/register.agent-DQdoMfmw.js +0 -1
  1179. package/dist/register.backup-BDO3V0so.js +0 -1
  1180. package/dist/register.backup-Vh8RK6fp.js +0 -1
  1181. package/dist/register.configure-C2N82brC.js +0 -1
  1182. package/dist/register.configure-C6zjzaEo.js +0 -1
  1183. package/dist/{register.maintenance-Br9uoFKo.js → register.maintenance-CStaPxaB.js} +1 -2
  1184. package/dist/{register.maintenance-Cm3wq9bt.js → register.maintenance-aKBTd9Zp.js} +1 -2
  1185. package/dist/register.message-DHDcOA8X.js +0 -1
  1186. package/dist/register.message-Dh72QHKA.js +0 -1
  1187. package/dist/{register.onboard-AjrSlfCb.js → register.onboard-Bu9gpFlA.js} +1 -2
  1188. package/dist/{register.onboard-zCG1PNWc.js → register.onboard-DB9FWAKT.js} +1 -2
  1189. package/dist/{register.setup-DN0y_pth.js → register.setup-CeG2ETmr.js} +1 -2
  1190. package/dist/{register.setup-Blyl_QsK.js → register.setup-D76IRs4s.js} +1 -2
  1191. package/dist/register.status-health-sessions-Dtpd1P2M.js +0 -1
  1192. package/dist/register.status-health-sessions-mPGKFjIz.js +0 -1
  1193. package/dist/{register.subclis-5Pb-uEHk.js → register.subclis-Drp2dGBe.js} +1 -2
  1194. package/dist/registry-BptzrW8D.js +0 -1
  1195. package/dist/registry-hFAtCSWG.js +0 -1
  1196. package/dist/render-BXEUPIHe.js +0 -1
  1197. package/dist/render-CBsnn-2A.js +0 -1
  1198. package/dist/render-D8OWO2hT.js +0 -1
  1199. package/dist/render-DrrPmnMI.js +0 -1
  1200. package/dist/reply-DwfVhea1.js +0 -1
  1201. package/dist/restart-BeJuoXCx.js +0 -1
  1202. package/dist/rpc-BBdeIvn0.js +0 -1
  1203. package/dist/rpc-f85A4Ib_.js +0 -1
  1204. package/dist/{run-main-DGwq5DIc.js → run-main-CjwjyWA6.js} +1 -2
  1205. package/dist/runtime-CK7gqwEF.js +0 -1
  1206. package/dist/runtime-DYttInEE.js +0 -1
  1207. package/dist/runtime-guard-DFYBaYZS.js +0 -1
  1208. package/dist/runtime-guard-DX2Ie4ri.js +0 -1
  1209. package/dist/runtime-status-CqFBmdRd.js +0 -1
  1210. package/dist/runtime-status-DszMjvJK.js +0 -1
  1211. package/dist/runtime-web-tools-BYhCkBV8.js +0 -1
  1212. package/dist/runtime-web-tools-C4F6aaRh.js +0 -1
  1213. package/dist/sandbox-cli-BR0Lsru-.js +0 -1
  1214. package/dist/sandbox-cli-Jo5nYeug.js +0 -1
  1215. package/dist/scan-paths-C13EseXp.js +0 -1
  1216. package/dist/scan-paths-CWtvWW40.js +0 -1
  1217. package/dist/search-manager-CV2YsAym.js +0 -1
  1218. package/dist/secret-file-C7JffiM_.js +0 -1
  1219. package/dist/secret-file-D60EFEOe.js +0 -1
  1220. package/dist/secret-file-DuWm26jS.js +0 -1
  1221. package/dist/secrets-cli-B8kwyZFo.js +0 -1
  1222. package/dist/secrets-cli-BstBe0UA.js +0 -1
  1223. package/dist/secure-random-D7JQgiK-.js +0 -1
  1224. package/dist/security-cli-C6t8OxaE.js +0 -1
  1225. package/dist/security-cli-Cuc8IQKB.js +0 -1
  1226. package/dist/send--9G8eXo4.js +0 -1
  1227. package/dist/send-4h1tQwX3.js +0 -1
  1228. package/dist/send-7qgAI0ap.js +0 -1
  1229. package/dist/send-AQ3CJLpI.js +0 -1
  1230. package/dist/send-BjrfjBn9.js +0 -1
  1231. package/dist/send-BwblpWbK.js +0 -1
  1232. package/dist/send-C4Lm4nmt.js +0 -1
  1233. package/dist/send-C7rOdjPO.js +0 -1
  1234. package/dist/send-COpehmAB.js +0 -1
  1235. package/dist/send-CWVTcDAW.js +0 -1
  1236. package/dist/send-CciNyaWL.js +0 -1
  1237. package/dist/send-ChILboDj.js +0 -1
  1238. package/dist/send-CyarIb2w.js +0 -1
  1239. package/dist/send-DiHS8tKf.js +0 -1
  1240. package/dist/send-Dj7NBAWg.js +0 -1
  1241. package/dist/send-DmHpf5Fz.js +0 -1
  1242. package/dist/send-NbU9-scF2.js +0 -1
  1243. package/dist/send-hlES-kRl2.js +0 -1
  1244. package/dist/send-swTiQAeK2.js +0 -1
  1245. package/dist/send-vNcod64S.js +0 -1
  1246. package/dist/server-C-lb98FO.js +0 -1
  1247. package/dist/server-DwSkpKgC.js +0 -1
  1248. package/dist/server-node-events-CL0pWoMa.js +0 -1
  1249. package/dist/server-node-events-ChPQ984b.js +0 -1
  1250. package/dist/service-BtB9epJk.js +0 -1
  1251. package/dist/service-DZ9EbS15.js +0 -1
  1252. package/dist/session-BSRnpwSq.js +0 -1
  1253. package/dist/session-CfHCnrXh.js +0 -1
  1254. package/dist/session-JqCxWBM8.js +0 -1
  1255. package/dist/session-bk3gFwO4.js +0 -1
  1256. package/dist/session-cost-usage-BgqKixv0.js +0 -1
  1257. package/dist/session-cost-usage-CHtVgnE8.js +0 -1
  1258. package/dist/session-key-C7F_iqYg.js +0 -1
  1259. package/dist/session-key-D3P0tf5P.js +0 -1
  1260. package/dist/session-utils-Bpdyx2A2.js +0 -1
  1261. package/dist/sessions-Ca6ozRCQ.js +0 -1
  1262. package/dist/shared-9x5sqYRb.js +0 -1
  1263. package/dist/shared-BKWhOp64.js +0 -1
  1264. package/dist/shared-Ca5BFwta.js +0 -1
  1265. package/dist/skill-commands-CPZcaV8-.js +0 -1
  1266. package/dist/skill-commands-CtprBvm0.js +0 -1
  1267. package/dist/skill-commands-DCqPy_Aa.js +0 -1
  1268. package/dist/skill-commands-DlHVddAk.js +0 -1
  1269. package/dist/skill-scanner-CUUF3Fvo.js +0 -1
  1270. package/dist/skill-scanner-CkxXNioD.js +0 -1
  1271. package/dist/skills-Bz_S4lPh.js +0 -1
  1272. package/dist/skills-CzUpDbU-.js +0 -1
  1273. package/dist/skills-cli-DK0QDfln.js +0 -1
  1274. package/dist/skills-cli-DLmqhAB-.js +0 -1
  1275. package/dist/skills-install-D3YB2C-S.js +0 -1
  1276. package/dist/skills-install-cEcqzaX8.js +0 -1
  1277. package/dist/skills-status-D4Y1BJYL.js +0 -1
  1278. package/dist/skills-status-DpSboPY1.js +0 -1
  1279. package/dist/sqlite-CILF3z9U.js +0 -1
  1280. package/dist/stagger-DmFYysrJ.js +0 -1
  1281. package/dist/stagger-DxzgG2jd.js +0 -1
  1282. package/dist/status-BAat65xo.js +0 -1
  1283. package/dist/status-BSHWBrg0.js +0 -1
  1284. package/dist/status-o3Gfr-6l.js +0 -1
  1285. package/dist/status-w4NsjW2R.js +0 -1
  1286. package/dist/status.update-B_8Gumuc.js +0 -1
  1287. package/dist/status.update-_2r0S6Re.js +0 -1
  1288. package/dist/string-normalization-BrUPaXaM.js +0 -1
  1289. package/dist/string-normalization-DJT5zuUF.js +0 -1
  1290. package/dist/subsystem-BLbY429l.js +0 -1
  1291. package/dist/subsystem-Bc2XrjUz.js +0 -1
  1292. package/dist/subsystem-C5XF2Fy5.js +0 -1
  1293. package/dist/system-cli-Ddixb0SQ.js +0 -1
  1294. package/dist/system-cli-NAH97F2s.js +0 -1
  1295. package/dist/system-run-command-DsWBVvSK.js +0 -1
  1296. package/dist/system-run-command-E8ymBXHh.js +0 -1
  1297. package/dist/systemd-D7odsu4K.js +0 -1
  1298. package/dist/systemd-DbevZh65.js +0 -1
  1299. package/dist/systemd-hints-CEQj6yrs.js +0 -1
  1300. package/dist/systemd-hints-lXpMy-kY.js +0 -1
  1301. package/dist/systemd-linger-C2MJD6KG.js +0 -1
  1302. package/dist/systemd-linger-cWKbFNpu.js +0 -1
  1303. package/dist/table-CR7TFMew.js +0 -1
  1304. package/dist/table-CY440fI1.js +0 -1
  1305. package/dist/tables-D6J-isob.js +0 -1
  1306. package/dist/tables-DENKrP-W.js +0 -1
  1307. package/dist/tables-_t5V36m9.js +0 -1
  1308. package/dist/tables-fl9iXahm.js +0 -1
  1309. package/dist/target-errors-CoEHv_2r.js +0 -1
  1310. package/dist/target-errors-D6wejRd6.js +0 -1
  1311. package/dist/target-errors-Dnkqss9y.js +0 -1
  1312. package/dist/target-errors-sMFXKeAY.js +0 -1
  1313. package/dist/targets-4EaxWBal.js +0 -1
  1314. package/dist/targets-BJTo7bqu.js +0 -1
  1315. package/dist/targets-BYVMrXDf.js +0 -1
  1316. package/dist/targets-Bq6rS6-Z.js +0 -1
  1317. package/dist/targets-CL5fYQi7.js +0 -1
  1318. package/dist/targets-fozeWOOg.js +0 -1
  1319. package/dist/targets-m_41k_Mv.js +0 -1
  1320. package/dist/telegram/audit.js +0 -1
  1321. package/dist/text-format-CvrvBBre.js +0 -1
  1322. package/dist/text-format-DEWK6oCT.js +0 -1
  1323. package/dist/token-DnTmiyJu.js +0 -1
  1324. package/dist/tokens-B2fq-rL6.js +0 -1
  1325. package/dist/tokens-CL2fSjGl.js +0 -1
  1326. package/dist/tokens-DRM8vzJx.js +0 -1
  1327. package/dist/tokens-XGbQGn67.js +0 -1
  1328. package/dist/tool-display-DJDtttQg.js +0 -1
  1329. package/dist/tool-display-DjuSUUbH.js +0 -1
  1330. package/dist/tui-5Znjl2Rb.js +0 -1
  1331. package/dist/tui-Tlww_AcE.js +0 -1
  1332. package/dist/tui-cli-C9QPsw50.js +0 -1
  1333. package/dist/tui-cli-FxvETbln.js +0 -1
  1334. package/dist/types.secrets-C-5U96pc.js +0 -1
  1335. package/dist/types.secrets-D4tbc3Wq.js +0 -1
  1336. package/dist/update-CMneH_48.js +0 -1
  1337. package/dist/update-D9EwPybG.js +0 -1
  1338. package/dist/{update-cli-BQGwMpHe.js → update-cli-CL_cUjuq.js} +1 -2
  1339. package/dist/{update-cli-C7pZTXS8.js → update-cli-DU5tRH3c.js} +1 -2
  1340. package/dist/update-runner-DABdlxfN.js +0 -1
  1341. package/dist/update-runner-DG-1TYYc.js +0 -1
  1342. package/dist/usage-format-BWD8FJFL.js +0 -1
  1343. package/dist/usage-format-yPwal8Iz.js +0 -1
  1344. package/dist/utils-CGdo13HV.js +0 -1
  1345. package/dist/utils-D3t-vPka.js +0 -1
  1346. package/dist/utils-R-mFyVJi.js +0 -1
  1347. package/dist/utils-UGOV_184.js +0 -1
  1348. package/dist/version-q3SkUw2K.js +0 -1
  1349. package/dist/warning-filter.js +0 -1
  1350. package/dist/web-Dfi2WjvN.js +0 -1
  1351. package/dist/web-u71NbOpT.js +0 -1
  1352. package/dist/webhooks-cli-DMTzhfTv.js +0 -1
  1353. package/dist/webhooks-cli-ICOwBPSv.js +0 -1
  1354. package/dist/whatsapp-actions-Bdf-3-ne.js +0 -1
  1355. package/dist/whatsapp-actions-D2qMOK3a.js +0 -1
  1356. package/dist/whatsapp-actions-f5CsM5EM.js +0 -1
  1357. package/dist/whatsapp-actions-t88tyNUT.js +0 -1
  1358. package/dist/widearea-dns-BDx7vkV2.js +0 -1
  1359. package/dist/widearea-dns-BFjqKXu_.js +0 -1
  1360. package/dist/windows-spawn-7oINn5ao.js +0 -1
  1361. package/dist/windows-spawn-AB7ItGAE.js +0 -1
  1362. package/dist/with-timeout-WveKxvFV.js +0 -1
  1363. package/dist/with-timeout-c1CzdShT.js +0 -1
  1364. package/dist/workspace-B0ZQeHXg.js +0 -1
  1365. package/dist/workspace-C45T1Cxg.js +0 -1
  1366. package/dist/workspace-dirs-A8Vib9_B.js +0 -1
  1367. package/dist/workspace-dirs-BhF1Dzxt.js +0 -1
  1368. package/dist/workspace-xNEpaJvu.js +0 -1
  1369. package/dist/wsl-DHxB2Ew_.js +0 -1
  1370. package/dist/wsl-Ok7GaSJ6.js +0 -1
  1371. package/extensions/qqbrowser-skill-control/index.js +1 -1
  1372. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +2 -2
  1373. package/node_modules/@aws-sdk/token-providers/package.json +1 -1
  1374. package/node_modules/@google/genai/dist/index.cjs +341 -180
  1375. package/node_modules/@google/genai/dist/index.mjs +341 -180
  1376. package/node_modules/@google/genai/dist/node/index.cjs +341 -180
  1377. package/node_modules/@google/genai/dist/node/index.mjs +341 -180
  1378. package/node_modules/@google/genai/dist/tokenizer/node.cjs +100 -0
  1379. package/node_modules/@google/genai/dist/tokenizer/node.mjs +100 -0
  1380. package/node_modules/@google/genai/dist/vertex_internal/index.cjs +103 -2
  1381. package/node_modules/@google/genai/dist/vertex_internal/index.js +103 -2
  1382. package/node_modules/@google/genai/dist/web/index.mjs +342 -180
  1383. package/node_modules/@google/genai/package.json +1 -1
  1384. package/node_modules/@slack/web-api/dist/instrument.js +13 -1
  1385. package/node_modules/@slack/web-api/package.json +2 -2
  1386. package/node_modules/@smithy/config-resolver/package.json +2 -2
  1387. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  1388. package/node_modules/@smithy/util-endpoints/dist-cjs/index.js +154 -61
  1389. package/node_modules/@smithy/util-endpoints/dist-es/bdd/BinaryDecisionDiagram.js +15 -0
  1390. package/node_modules/@smithy/util-endpoints/dist-es/decideEndpoint.js +41 -0
  1391. package/node_modules/@smithy/util-endpoints/dist-es/index.js +2 -0
  1392. package/node_modules/@smithy/util-endpoints/dist-es/lib/coalesce.js +8 -0
  1393. package/node_modules/@smithy/util-endpoints/dist-es/lib/index.js +3 -0
  1394. package/node_modules/@smithy/util-endpoints/dist-es/lib/ite.js +3 -0
  1395. package/node_modules/@smithy/util-endpoints/dist-es/lib/split.js +13 -0
  1396. package/node_modules/@smithy/util-endpoints/dist-es/lib/substring.js +1 -1
  1397. package/node_modules/@smithy/util-endpoints/dist-es/utils/endpointFunctions.js +4 -1
  1398. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateExpression.js +20 -5
  1399. package/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js +3 -6
  1400. package/node_modules/@smithy/util-endpoints/dist-es/utils/getReferenceValue.js +1 -5
  1401. package/node_modules/@smithy/util-endpoints/package.json +1 -1
  1402. package/node_modules/discord-api-types/package.json +1 -1
  1403. package/node_modules/discord-api-types/payloads/index.mjs +3 -0
  1404. package/node_modules/discord-api-types/payloads/v10/index.mjs +3 -0
  1405. package/node_modules/discord-api-types/payloads/v10/message.js +55 -2
  1406. package/node_modules/discord-api-types/payloads/v10/user.js +2 -0
  1407. package/node_modules/discord-api-types/payloads/v9/index.mjs +3 -0
  1408. package/node_modules/discord-api-types/payloads/v9/message.js +55 -2
  1409. package/node_modules/discord-api-types/payloads/v9/user.js +2 -0
  1410. package/node_modules/discord-api-types/rest/v10/channel.js +6 -0
  1411. package/node_modules/discord-api-types/rest/v9/channel.js +6 -0
  1412. package/node_modules/discord-api-types/v10.mjs +3 -0
  1413. package/node_modules/discord-api-types/v9.mjs +3 -0
  1414. package/node_modules/undici/package.json +1 -1
  1415. package/package.json +2 -1
  1416. package/dist/ports-Dylc6TrH.js +0 -3
  1417. package/dist/ports-hkqQXSus.js +0 -3
  1418. package/node_modules/@anthropic-ai/sandbox-runtime/node_modules/commander/LICENSE +0 -22
  1419. package/node_modules/@anthropic-ai/sandbox-runtime/node_modules/commander/Readme.md +0 -1157
  1420. package/node_modules/@anthropic-ai/sandbox-runtime/node_modules/zod/LICENSE +0 -21
  1421. package/node_modules/@anthropic-ai/sandbox-runtime/node_modules/zod/README.md +0 -208
  1422. package/node_modules/@anthropic-ai/sdk/src/_vendor/partial-json-parser/README.md +0 -3
  1423. package/node_modules/@anthropic-ai/sdk/src/core/README.md +0 -3
  1424. package/node_modules/@anthropic-ai/sdk/src/internal/README.md +0 -3
  1425. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer/LICENSE +0 -201
  1426. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/is-array-buffer/README.md +0 -10
  1427. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from/LICENSE +0 -201
  1428. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-buffer-from/README.md +0 -10
  1429. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8/LICENSE +0 -201
  1430. package/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8/README.md +0 -4
  1431. package/node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer/LICENSE +0 -201
  1432. package/node_modules/@aws-crypto/util/node_modules/@smithy/is-array-buffer/README.md +0 -10
  1433. package/node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from/LICENSE +0 -201
  1434. package/node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from/README.md +0 -10
  1435. package/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/LICENSE +0 -201
  1436. package/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/README.md +0 -4
  1437. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +0 -201
  1438. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +0 -62
  1439. package/node_modules/@buape/carbon/node_modules/@discordjs/voice/LICENSE +0 -191
  1440. package/node_modules/@buape/carbon/node_modules/@discordjs/voice/README.md +0 -112
  1441. package/node_modules/@buape/carbon/node_modules/discord-api-types/LICENSE +0 -21
  1442. package/node_modules/@buape/carbon/node_modules/discord-api-types/README.md +0 -102
  1443. package/node_modules/@buape/carbon/node_modules/ws/LICENSE +0 -20
  1444. package/node_modules/@buape/carbon/node_modules/ws/README.md +0 -548
  1445. package/node_modules/@line/bot-sdk/node_modules/@types/node/LICENSE +0 -21
  1446. package/node_modules/@line/bot-sdk/node_modules/@types/node/README.md +0 -15
  1447. package/node_modules/@line/bot-sdk/node_modules/undici-types/LICENSE +0 -21
  1448. package/node_modules/@line/bot-sdk/node_modules/undici-types/README.md +0 -6
  1449. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1450. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/resources/README.md +0 -49
  1451. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/sdk-trace-base/LICENSE +0 -201
  1452. package/node_modules/@opentelemetry/exporter-logs-otlp-proto/node_modules/@opentelemetry/sdk-trace-base/README.md +0 -185
  1453. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1454. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/resources/README.md +0 -49
  1455. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/sdk-metrics/LICENSE +0 -201
  1456. package/node_modules/@opentelemetry/exporter-metrics-otlp-http/node_modules/@opentelemetry/sdk-metrics/README.md +0 -100
  1457. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1458. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/resources/README.md +0 -49
  1459. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/sdk-metrics/LICENSE +0 -201
  1460. package/node_modules/@opentelemetry/exporter-metrics-otlp-proto/node_modules/@opentelemetry/sdk-metrics/README.md +0 -100
  1461. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1462. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/resources/README.md +0 -49
  1463. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/sdk-trace-base/LICENSE +0 -201
  1464. package/node_modules/@opentelemetry/exporter-trace-otlp-proto/node_modules/@opentelemetry/sdk-trace-base/README.md +0 -185
  1465. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1466. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/resources/README.md +0 -49
  1467. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-metrics/LICENSE +0 -201
  1468. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-metrics/README.md +0 -100
  1469. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base/LICENSE +0 -201
  1470. package/node_modules/@opentelemetry/otlp-transformer/node_modules/@opentelemetry/sdk-trace-base/README.md +0 -185
  1471. package/node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core/LICENSE +0 -201
  1472. package/node_modules/@opentelemetry/resources/node_modules/@opentelemetry/core/README.md +0 -73
  1473. package/node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources/LICENSE +0 -201
  1474. package/node_modules/@opentelemetry/sdk-logs/node_modules/@opentelemetry/resources/README.md +0 -49
  1475. package/node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core/LICENSE +0 -201
  1476. package/node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core/README.md +0 -73
  1477. package/node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core/LICENSE +0 -201
  1478. package/node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/core/README.md +0 -73
  1479. package/node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core/LICENSE +0 -201
  1480. package/node_modules/@opentelemetry/sdk-trace-node/node_modules/@opentelemetry/core/README.md +0 -73
  1481. package/node_modules/@sinclair/typebox/license +0 -25
  1482. package/node_modules/@sinclair/typebox/readme.md +0 -1865
  1483. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/license +0 -9
  1484. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/readme.md +0 -1077
  1485. package/node_modules/@whiskeysockets/baileys/node_modules/p-timeout/license +0 -9
  1486. package/node_modules/@whiskeysockets/baileys/node_modules/p-timeout/readme.md +0 -192
  1487. package/node_modules/ansi-regex/license +0 -9
  1488. package/node_modules/ansi-regex/readme.md +0 -66
  1489. package/node_modules/ansi-styles/license +0 -9
  1490. package/node_modules/ansi-styles/readme.md +0 -152
  1491. package/node_modules/atomic-sleep/readme.md +0 -58
  1492. package/node_modules/axios/lib/adapters/README.md +0 -36
  1493. package/node_modules/axios/lib/core/README.md +0 -8
  1494. package/node_modules/axios/lib/env/README.md +0 -3
  1495. package/node_modules/axios/lib/helpers/README.md +0 -7
  1496. package/node_modules/bytes/History.md +0 -97
  1497. package/node_modules/bytes/Readme.md +0 -152
  1498. package/node_modules/chalk/license +0 -9
  1499. package/node_modules/chalk/readme.md +0 -297
  1500. package/node_modules/cli-highlight/node_modules/chalk/license +0 -9
  1501. package/node_modules/cli-highlight/node_modules/chalk/readme.md +0 -341
  1502. package/node_modules/cliui/node_modules/ansi-regex/license +0 -9
  1503. package/node_modules/cliui/node_modules/ansi-regex/readme.md +0 -78
  1504. package/node_modules/cliui/node_modules/strip-ansi/license +0 -9
  1505. package/node_modules/cliui/node_modules/strip-ansi/readme.md +0 -46
  1506. package/node_modules/combined-stream/License +0 -19
  1507. package/node_modules/combined-stream/Readme.md +0 -138
  1508. package/node_modules/commander/Readme.md +0 -1176
  1509. package/node_modules/cookie-signature/History.md +0 -70
  1510. package/node_modules/cookie-signature/Readme.md +0 -23
  1511. package/node_modules/css-what/readme.md +0 -69
  1512. package/node_modules/delayed-stream/License +0 -19
  1513. package/node_modules/delayed-stream/Readme.md +0 -141
  1514. package/node_modules/depd/History.md +0 -103
  1515. package/node_modules/depd/Readme.md +0 -280
  1516. package/node_modules/domelementtype/readme.md +0 -1
  1517. package/node_modules/domhandler/readme.md +0 -92
  1518. package/node_modules/domutils/readme.md +0 -31
  1519. package/node_modules/entities/readme.md +0 -122
  1520. package/node_modules/escalade/license +0 -9
  1521. package/node_modules/escalade/readme.md +0 -211
  1522. package/node_modules/escape-html/Readme.md +0 -43
  1523. package/node_modules/express/Readme.md +0 -276
  1524. package/node_modules/express-rate-limit/license.md +0 -20
  1525. package/node_modules/express-rate-limit/readme.md +0 -136
  1526. package/node_modules/extract-zip/readme.md +0 -57
  1527. package/node_modules/fast-string-truncated-width/license +0 -21
  1528. package/node_modules/fast-string-truncated-width/readme.md +0 -60
  1529. package/node_modules/fast-string-width/license +0 -21
  1530. package/node_modules/fast-string-width/readme.md +0 -45
  1531. package/node_modules/file-type/license +0 -9
  1532. package/node_modules/file-type/readme.md +0 -667
  1533. package/node_modules/form-data/License +0 -19
  1534. package/node_modules/form-data/node_modules/mime-db/HISTORY.md +0 -507
  1535. package/node_modules/form-data/node_modules/mime-db/LICENSE +0 -23
  1536. package/node_modules/form-data/node_modules/mime-db/README.md +0 -100
  1537. package/node_modules/form-data/node_modules/mime-types/HISTORY.md +0 -397
  1538. package/node_modules/form-data/node_modules/mime-types/LICENSE +0 -23
  1539. package/node_modules/form-data/node_modules/mime-types/README.md +0 -113
  1540. package/node_modules/gaxios/node_modules/agent-base/LICENSE +0 -22
  1541. package/node_modules/gaxios/node_modules/agent-base/README.md +0 -69
  1542. package/node_modules/gaxios/node_modules/https-proxy-agent/LICENSE +0 -22
  1543. package/node_modules/gaxios/node_modules/https-proxy-agent/README.md +0 -70
  1544. package/node_modules/get-east-asian-width/license +0 -9
  1545. package/node_modules/get-east-asian-width/readme.md +0 -65
  1546. package/node_modules/get-stream/license +0 -9
  1547. package/node_modules/get-stream/readme.md +0 -124
  1548. package/node_modules/get-uri/node_modules/data-uri-to-buffer/LICENSE +0 -22
  1549. package/node_modules/get-uri/node_modules/data-uri-to-buffer/README.md +0 -61
  1550. package/node_modules/grammy/node_modules/node-fetch/LICENSE.md +0 -22
  1551. package/node_modules/grammy/node_modules/node-fetch/README.md +0 -634
  1552. package/node_modules/has-flag/license +0 -9
  1553. package/node_modules/has-flag/readme.md +0 -89
  1554. package/node_modules/htmlparser2/node_modules/entities/LICENSE +0 -11
  1555. package/node_modules/htmlparser2/node_modules/entities/readme.md +0 -143
  1556. package/node_modules/http-proxy-agent/node_modules/agent-base/LICENSE +0 -22
  1557. package/node_modules/http-proxy-agent/node_modules/agent-base/README.md +0 -69
  1558. package/node_modules/is-fullwidth-code-point/license +0 -9
  1559. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  1560. package/node_modules/is-stream/license +0 -9
  1561. package/node_modules/is-stream/readme.md +0 -60
  1562. package/node_modules/jws/readme.md +0 -255
  1563. package/node_modules/libsignal/native/ed25519/sha512/LICENSE.txt +0 -20
  1564. package/node_modules/libsignal/node_modules/@types/node/LICENSE +0 -21
  1565. package/node_modules/libsignal/node_modules/@types/node/README.md +0 -16
  1566. package/node_modules/libsignal/node_modules/long/LICENSE +0 -202
  1567. package/node_modules/libsignal/node_modules/long/README.md +0 -246
  1568. package/node_modules/libsignal/node_modules/protobufjs/LICENSE +0 -39
  1569. package/node_modules/libsignal/node_modules/protobufjs/README.md +0 -879
  1570. package/node_modules/libsignal/node_modules/protobufjs/cli/LICENSE +0 -33
  1571. package/node_modules/libsignal/node_modules/protobufjs/cli/README.md +0 -11
  1572. package/node_modules/libsignal/node_modules/protobufjs/cli/lib/tsd-jsdoc/LICENSE +0 -21
  1573. package/node_modules/libsignal/node_modules/protobufjs/cli/lib/tsd-jsdoc/README.md +0 -23
  1574. package/node_modules/libsignal/node_modules/protobufjs/cli/node_modules/os-tmpdir/license +0 -21
  1575. package/node_modules/libsignal/node_modules/protobufjs/cli/node_modules/os-tmpdir/readme.md +0 -32
  1576. package/node_modules/libsignal/node_modules/protobufjs/cli/node_modules/tmp/LICENSE +0 -21
  1577. package/node_modules/libsignal/node_modules/protobufjs/cli/node_modules/tmp/README.md +0 -314
  1578. package/node_modules/libsignal/node_modules/protobufjs/dist/README.md +0 -31
  1579. package/node_modules/libsignal/node_modules/protobufjs/dist/light/README.md +0 -31
  1580. package/node_modules/libsignal/node_modules/protobufjs/dist/minimal/README.md +0 -31
  1581. package/node_modules/libsignal/node_modules/protobufjs/ext/debug/README.md +0 -4
  1582. package/node_modules/libsignal/node_modules/protobufjs/ext/descriptor/README.md +0 -72
  1583. package/node_modules/libsignal/node_modules/protobufjs/google/LICENSE +0 -27
  1584. package/node_modules/libsignal/node_modules/protobufjs/google/README.md +0 -1
  1585. package/node_modules/lie/license.md +0 -7
  1586. package/node_modules/linkedom/node_modules/html-escaper/LICENSE.txt +0 -19
  1587. package/node_modules/linkedom/node_modules/html-escaper/README.md +0 -110
  1588. package/node_modules/merge-descriptors/license +0 -11
  1589. package/node_modules/merge-descriptors/readme.md +0 -55
  1590. package/node_modules/ms/license.md +0 -21
  1591. package/node_modules/ms/readme.md +0 -59
  1592. package/node_modules/node-edge-tts/node_modules/agent-base/LICENSE +0 -22
  1593. package/node_modules/node-edge-tts/node_modules/agent-base/README.md +0 -69
  1594. package/node_modules/node-edge-tts/node_modules/ansi-regex/license +0 -9
  1595. package/node_modules/node-edge-tts/node_modules/ansi-regex/readme.md +0 -78
  1596. package/node_modules/node-edge-tts/node_modules/cliui/LICENSE.txt +0 -14
  1597. package/node_modules/node-edge-tts/node_modules/cliui/README.md +0 -141
  1598. package/node_modules/node-edge-tts/node_modules/https-proxy-agent/LICENSE +0 -22
  1599. package/node_modules/node-edge-tts/node_modules/https-proxy-agent/README.md +0 -70
  1600. package/node_modules/node-edge-tts/node_modules/strip-ansi/license +0 -9
  1601. package/node_modules/node-edge-tts/node_modules/strip-ansi/readme.md +0 -46
  1602. package/node_modules/node-edge-tts/node_modules/yargs/LICENSE +0 -21
  1603. package/node_modules/node-edge-tts/node_modules/yargs/README.md +0 -204
  1604. package/node_modules/node-edge-tts/node_modules/yargs-parser/LICENSE.txt +0 -14
  1605. package/node_modules/node-edge-tts/node_modules/yargs-parser/README.md +0 -518
  1606. package/node_modules/object-assign/license +0 -21
  1607. package/node_modules/object-assign/readme.md +0 -61
  1608. package/node_modules/object-inspect/readme.markdown +0 -84
  1609. package/node_modules/openai/src/_vendor/partial-json-parser/README.md +0 -3
  1610. package/node_modules/openai/src/_vendor/zod-to-json-schema/LICENSE +0 -15
  1611. package/node_modules/openai/src/_vendor/zod-to-json-schema/README.md +0 -3
  1612. package/node_modules/openai/src/core/README.md +0 -3
  1613. package/node_modules/openai/src/internal/README.md +0 -3
  1614. package/node_modules/openai/src/internal/qs/LICENSE.md +0 -13
  1615. package/node_modules/openai/src/internal/qs/README.md +0 -3
  1616. package/node_modules/p-finally/license +0 -21
  1617. package/node_modules/p-finally/readme.md +0 -47
  1618. package/node_modules/p-queue/license +0 -9
  1619. package/node_modules/p-queue/node_modules/eventemitter3/LICENSE +0 -21
  1620. package/node_modules/p-queue/node_modules/eventemitter3/README.md +0 -94
  1621. package/node_modules/p-queue/readme.md +0 -400
  1622. package/node_modules/p-retry/license +0 -9
  1623. package/node_modules/p-retry/readme.md +0 -148
  1624. package/node_modules/p-timeout/license +0 -9
  1625. package/node_modules/p-timeout/readme.md +0 -87
  1626. package/node_modules/pac-proxy-agent/node_modules/agent-base/LICENSE +0 -22
  1627. package/node_modules/pac-proxy-agent/node_modules/agent-base/README.md +0 -69
  1628. package/node_modules/pac-proxy-agent/node_modules/https-proxy-agent/LICENSE +0 -22
  1629. package/node_modules/pac-proxy-agent/node_modules/https-proxy-agent/README.md +0 -70
  1630. package/node_modules/pako/lib/zlib/README +0 -59
  1631. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/LICENSE +0 -19
  1632. package/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5/README.md +0 -38
  1633. package/node_modules/path-key/license +0 -9
  1634. package/node_modules/path-key/readme.md +0 -61
  1635. package/node_modules/path-to-regexp/Readme.md +0 -224
  1636. package/node_modules/pino-std-serializers/Readme.md +0 -182
  1637. package/node_modules/process-nextick-args/license.md +0 -19
  1638. package/node_modules/process-nextick-args/readme.md +0 -18
  1639. package/node_modules/proper-lockfile/node_modules/retry/License +0 -21
  1640. package/node_modules/proper-lockfile/node_modules/retry/README.md +0 -227
  1641. package/node_modules/protobufjs/ext/debug/README.md +0 -4
  1642. package/node_modules/protobufjs/ext/descriptor/README.md +0 -72
  1643. package/node_modules/proxy-addr/node_modules/ipaddr.js/LICENSE +0 -19
  1644. package/node_modules/proxy-addr/node_modules/ipaddr.js/README.md +0 -233
  1645. package/node_modules/proxy-agent/node_modules/agent-base/LICENSE +0 -22
  1646. package/node_modules/proxy-agent/node_modules/agent-base/README.md +0 -69
  1647. package/node_modules/proxy-agent/node_modules/https-proxy-agent/LICENSE +0 -22
  1648. package/node_modules/proxy-agent/node_modules/https-proxy-agent/README.md +0 -70
  1649. package/node_modules/proxy-agent/node_modules/lru-cache/LICENSE +0 -15
  1650. package/node_modules/proxy-agent/node_modules/lru-cache/README.md +0 -1117
  1651. package/node_modules/proxy-agent/node_modules/proxy-from-env/LICENSE +0 -20
  1652. package/node_modules/proxy-agent/node_modules/proxy-from-env/README.md +0 -131
  1653. package/node_modules/qified/node_modules/hookified/LICENSE +0 -19
  1654. package/node_modules/qified/node_modules/hookified/README.md +0 -1682
  1655. package/node_modules/quick-format-unescaped/readme.md +0 -66
  1656. package/node_modules/readable-stream/node_modules/safe-buffer/LICENSE +0 -21
  1657. package/node_modules/readable-stream/node_modules/safe-buffer/README.md +0 -584
  1658. package/node_modules/require-from-string/license +0 -21
  1659. package/node_modules/require-from-string/readme.md +0 -56
  1660. package/node_modules/retry/License +0 -21
  1661. package/node_modules/router/node_modules/is-promise/LICENSE +0 -19
  1662. package/node_modules/router/node_modules/is-promise/readme.md +0 -33
  1663. package/node_modules/safe-stable-stringify/readme.md +0 -179
  1664. package/node_modules/safer-buffer/Readme.md +0 -156
  1665. package/node_modules/shebang-command/license +0 -9
  1666. package/node_modules/shebang-command/readme.md +0 -34
  1667. package/node_modules/shebang-regex/license +0 -9
  1668. package/node_modules/shebang-regex/readme.md +0 -33
  1669. package/node_modules/sisteransi/license +0 -21
  1670. package/node_modules/sisteransi/readme.md +0 -113
  1671. package/node_modules/socks-proxy-agent/node_modules/agent-base/LICENSE +0 -22
  1672. package/node_modules/socks-proxy-agent/node_modules/agent-base/README.md +0 -69
  1673. package/node_modules/string-width/license +0 -9
  1674. package/node_modules/string-width/node_modules/ansi-regex/license +0 -9
  1675. package/node_modules/string-width/node_modules/ansi-regex/readme.md +0 -78
  1676. package/node_modules/string-width/node_modules/strip-ansi/license +0 -9
  1677. package/node_modules/string-width/node_modules/strip-ansi/readme.md +0 -46
  1678. package/node_modules/string-width/readme.md +0 -50
  1679. package/node_modules/string_decoder/node_modules/safe-buffer/LICENSE +0 -21
  1680. package/node_modules/string_decoder/node_modules/safe-buffer/README.md +0 -584
  1681. package/node_modules/strip-ansi/license +0 -9
  1682. package/node_modules/strip-ansi/readme.md +0 -37
  1683. package/node_modules/supports-color/license +0 -9
  1684. package/node_modules/supports-color/readme.md +0 -76
  1685. package/node_modules/uint8array-extras/license +0 -9
  1686. package/node_modules/uint8array-extras/readme.md +0 -318
  1687. package/node_modules/undici/lib/web/fetch/LICENSE +0 -21
  1688. package/node_modules/undici/lib/web/subresource-integrity/Readme.md +0 -9
  1689. package/node_modules/util-deprecate/History.md +0 -16
  1690. package/node_modules/wrap-ansi/license +0 -9
  1691. package/node_modules/wrap-ansi/node_modules/ansi-regex/license +0 -9
  1692. package/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md +0 -78
  1693. package/node_modules/wrap-ansi/node_modules/strip-ansi/license +0 -9
  1694. package/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md +0 -46
  1695. package/node_modules/wrap-ansi/readme.md +0 -91
  1696. package/node_modules/yoctocolors/license +0 -9
  1697. package/node_modules/yoctocolors/readme.md +0 -138
  1698. package/node_modules/zod-to-json-schema/changelog.md +0 -83
@@ -3,4 +3,3 @@ import{createRequire as e}from"node:module";import t from"node:path";import{z as
3
3
  `),[`import errno`,`import os`,`import secrets`,`import stat`,`import sys`,``,`root_path = sys.argv[1]`,`relative_parent = sys.argv[2]`,`basename = sys.argv[3]`,`mkdir_enabled = sys.argv[4] == "1"`,`file_mode = int(sys.argv[5], 8)`,``,`DIR_FLAGS = os.O_RDONLY`,`if hasattr(os, 'O_DIRECTORY'):`,` DIR_FLAGS |= os.O_DIRECTORY`,`if hasattr(os, 'O_NOFOLLOW'):`,` DIR_FLAGS |= os.O_NOFOLLOW`,``,`WRITE_FLAGS = os.O_WRONLY | os.O_CREAT | os.O_EXCL`,`if hasattr(os, 'O_NOFOLLOW'):`,` WRITE_FLAGS |= os.O_NOFOLLOW`,``,`def open_dir(path_value, dir_fd=None):`,` return os.open(path_value, DIR_FLAGS, dir_fd=dir_fd)`,``,`def walk_parent(root_fd, rel_parent, mkdir_enabled):`,` current_fd = os.dup(root_fd)`,` try:`,` for segment in [part for part in rel_parent.split('/') if part and part != '.']:`,` if segment == '..':`,` raise OSError(errno.EPERM, 'path traversal is not allowed', segment)`,` try:`,` next_fd = open_dir(segment, dir_fd=current_fd)`,` except FileNotFoundError:`,` if not mkdir_enabled:`,` raise`,` os.mkdir(segment, 0o777, dir_fd=current_fd)`,` next_fd = open_dir(segment, dir_fd=current_fd)`,` os.close(current_fd)`,` current_fd = next_fd`,` return current_fd`,` except Exception:`,` os.close(current_fd)`,` raise`,``,`def create_temp_file(parent_fd, basename, mode):`,` prefix = '.' + basename + '.'`,` for _ in range(128):`,` candidate = prefix + secrets.token_hex(6) + '.tmp'`,` try:`,` fd = os.open(candidate, WRITE_FLAGS, mode, dir_fd=parent_fd)`,` return candidate, fd`,` except FileExistsError:`,` continue`,` raise RuntimeError('failed to allocate pinned temp file')`,``,`root_fd = open_dir(root_path)`,`parent_fd = None`,`temp_fd = None`,`temp_name = None`,`try:`,` parent_fd = walk_parent(root_fd, relative_parent, mkdir_enabled)`,` temp_name, temp_fd = create_temp_file(parent_fd, basename, file_mode)`,` while True:`,` chunk = sys.stdin.buffer.read(65536)`,` if not chunk:`,` break`,` os.write(temp_fd, chunk)`,` os.fsync(temp_fd)`,` os.close(temp_fd)`,` temp_fd = None`,` os.replace(temp_name, basename, src_dir_fd=parent_fd, dst_dir_fd=parent_fd)`,` temp_name = None`,` os.fsync(parent_fd)`,` result_stat = os.stat(basename, dir_fd=parent_fd, follow_symlinks=False)`,` print(f'{result_stat.st_dev}|{result_stat.st_ino}')`,`finally:`,` if temp_fd is not None:`,` os.close(temp_fd)`,` if temp_name is not None and parent_fd is not None:`,` try:`,` os.unlink(temp_name, dir_fd=parent_fd)`,` except FileNotFoundError:`,` pass`,` if parent_fd is not None:`,` os.close(parent_fd)`,` os.close(root_fd)`].join(`
4
4
  `);const Oc=process.platform!==`win32`&&`O_NOFOLLOW`in i;i.O_RDONLY|(Oc?i.O_NOFOLLOW:0),i.O_WRONLY|(Oc?i.O_NOFOLLOW:0),i.O_WRONLY|i.O_CREAT|i.O_EXCL|(Oc?i.O_NOFOLLOW:0),i.O_RDWR|i.O_APPEND|(Oc?i.O_NOFOLLOW:0),i.O_RDWR|i.O_APPEND|i.O_CREAT|i.O_EXCL|(Oc?i.O_NOFOLLOW:0);const kc=Rt();t.join(kc,`downloads`),t.join(kc,`uploads`),{...Object.fromEntries(Object.entries({"image/heic":`.heic`,"image/heif":`.heif`,"image/jpeg":`.jpg`,"image/png":`.png`,"image/webp":`.webp`,"image/gif":`.gif`,"audio/ogg":`.ogg`,"audio/mpeg":`.mp3`,"audio/wav":`.wav`,"audio/flac":`.flac`,"audio/aac":`.aac`,"audio/opus":`.opus`,"audio/x-m4a":`.m4a`,"audio/mp4":`.m4a`,"video/mp4":`.mp4`,"video/quicktime":`.mov`,"application/pdf":`.pdf`,"application/json":`.json`,"application/zip":`.zip`,"application/gzip":`.gz`,"application/x-tar":`.tar`,"application/x-7z-compressed":`.7z`,"application/vnd.rar":`.rar`,"application/msword":`.doc`,"application/vnd.ms-excel":`.xls`,"application/vnd.ms-powerpoint":`.ppt`,"application/vnd.openxmlformats-officedocument.wordprocessingml.document":`.docx`,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":`.xlsx`,"application/vnd.openxmlformats-officedocument.presentationml.presentation":`.pptx`,"text/csv":`.csv`,"text/plain":`.txt`,"text/markdown":`.md`}).map(([e,t])=>[t,e]))},new ne.Agent,new re.Agent;function Ac(){return Dc()}const jc=`localhost,127.0.0.1,[::1]`;function Mc(){let e=process.env.NO_PROXY||process.env.no_proxy||``;return e.includes(`localhost`)&&e.includes(`127.0.0.1`)&&e.includes(`[::1]`)}function Nc(e){try{return ac(new URL(e).hostname)}catch{return!1}}new class{constructor(){this.leaseCount=0,this.snapshot=null}acquire(e){if(!Nc(e)||!Ac())return null;if(this.leaseCount===0&&!Mc()){let e=process.env.NO_PROXY,t=process.env.no_proxy,n=e||t||``,r=n?`${n},${jc}`:jc;process.env.NO_PROXY=r,process.env.no_proxy=r,this.snapshot={noProxy:e,noProxyLower:t,applied:r}}this.leaseCount+=1;let t=!1;return()=>{t||(t=!0,this.release())}}release(){if(this.leaseCount<=0||(--this.leaseCount,this.leaseCount>0||!this.snapshot))return;let{noProxy:e,noProxyLower:t,applied:n}=this.snapshot,r=process.env.NO_PROXY,i=process.env.no_proxy;r===n&&(i===n||i===void 0)&&(e===void 0?delete process.env.NO_PROXY:process.env.NO_PROXY=e,t===void 0?delete process.env.no_proxy:process.env.no_proxy=t),this.snapshot=null}},process.platform,fr(`browser`).child(`chrome`),fr(`browser`).child(`service`),Ir(Symbol.for(`openclaw.sessionWriteLockHeldLocks`)),process.platform,process.env,process.execPath,[`import errno`,`import os`,`import secrets`,`import stat`,`import sys`,``,`operation = sys.argv[1]`,``,`DIR_FLAGS = os.O_RDONLY`,`if hasattr(os, 'O_DIRECTORY'):`,` DIR_FLAGS |= os.O_DIRECTORY`,`if hasattr(os, 'O_NOFOLLOW'):`,` DIR_FLAGS |= os.O_NOFOLLOW`,``,`READ_FLAGS = os.O_RDONLY`,`if hasattr(os, 'O_NOFOLLOW'):`,` READ_FLAGS |= os.O_NOFOLLOW`,``,`WRITE_FLAGS = os.O_WRONLY | os.O_CREAT | os.O_EXCL`,`if hasattr(os, 'O_NOFOLLOW'):`,` WRITE_FLAGS |= os.O_NOFOLLOW`,``,`def split_relative(path_value):`,` segments = []`,` for segment in path_value.split('/'):`,` if not segment or segment == '.':`,` continue`,` if segment == '..':`,` raise OSError(errno.EPERM, 'path traversal is not allowed', segment)`,` segments.append(segment)`,` return segments`,``,`def open_dir(path_value, dir_fd=None):`,` return os.open(path_value, DIR_FLAGS, dir_fd=dir_fd)`,``,`def walk_dir(root_fd, rel_path, mkdir_enabled):`,` current_fd = os.dup(root_fd)`,` try:`,` for segment in split_relative(rel_path):`,` try:`,` next_fd = open_dir(segment, dir_fd=current_fd)`,` except FileNotFoundError:`,` if not mkdir_enabled:`,` raise`,` os.mkdir(segment, 0o777, dir_fd=current_fd)`,` next_fd = open_dir(segment, dir_fd=current_fd)`,` os.close(current_fd)`,` current_fd = next_fd`,` return current_fd`,` except Exception:`,` os.close(current_fd)`,` raise`,``,`def create_temp_file(parent_fd, basename):`,` prefix = '.openclaw-write-' + basename + '.'`,` for _ in range(128):`,` candidate = prefix + secrets.token_hex(6)`,` try:`,` fd = os.open(candidate, WRITE_FLAGS, 0o600, dir_fd=parent_fd)`,` return candidate, fd`,` except FileExistsError:`,` continue`,` raise RuntimeError('failed to allocate sandbox temp file')`,``,`def create_temp_dir(parent_fd, basename, mode):`,` prefix = '.openclaw-move-' + basename + '.'`,` for _ in range(128):`,` candidate = prefix + secrets.token_hex(6)`,` try:`,` os.mkdir(candidate, mode, dir_fd=parent_fd)`,` return candidate`,` except FileExistsError:`,` continue`,` raise RuntimeError('failed to allocate sandbox temp directory')`,``,`def write_atomic(parent_fd, basename, stdin_buffer):`,` temp_fd = None`,` temp_name = None`,` try:`,` temp_name, temp_fd = create_temp_file(parent_fd, basename)`,` while True:`,` chunk = stdin_buffer.read(65536)`,` if not chunk:`,` break`,` os.write(temp_fd, chunk)`,` os.fsync(temp_fd)`,` os.close(temp_fd)`,` temp_fd = None`,` os.replace(temp_name, basename, src_dir_fd=parent_fd, dst_dir_fd=parent_fd)`,` temp_name = None`,` os.fsync(parent_fd)`,` finally:`,` if temp_fd is not None:`,` os.close(temp_fd)`,` if temp_name is not None:`,` try:`,` os.unlink(temp_name, dir_fd=parent_fd)`,` except FileNotFoundError:`,` pass`,``,`def remove_tree(parent_fd, basename):`,` entry_stat = os.lstat(basename, dir_fd=parent_fd)`,` if not stat.S_ISDIR(entry_stat.st_mode) or stat.S_ISLNK(entry_stat.st_mode):`,` os.unlink(basename, dir_fd=parent_fd)`,` return`,` dir_fd = open_dir(basename, dir_fd=parent_fd)`,` try:`,` for child in os.listdir(dir_fd):`,` remove_tree(dir_fd, child)`,` finally:`,` os.close(dir_fd)`,` os.rmdir(basename, dir_fd=parent_fd)`,``,`def move_entry(src_parent_fd, src_basename, dst_parent_fd, dst_basename):`,` try:`,` os.rename(src_basename, dst_basename, src_dir_fd=src_parent_fd, dst_dir_fd=dst_parent_fd)`,` os.fsync(dst_parent_fd)`,` os.fsync(src_parent_fd)`,` return`,` except OSError as err:`,` if err.errno != errno.EXDEV:`,` raise`,` src_stat = os.lstat(src_basename, dir_fd=src_parent_fd)`,` if stat.S_ISDIR(src_stat.st_mode) and not stat.S_ISLNK(src_stat.st_mode):`,` temp_dir_name = create_temp_dir(dst_parent_fd, dst_basename, stat.S_IMODE(src_stat.st_mode) or 0o755)`,` temp_dir_fd = open_dir(temp_dir_name, dir_fd=dst_parent_fd)`,` src_dir_fd = open_dir(src_basename, dir_fd=src_parent_fd)`,` try:`,` for child in os.listdir(src_dir_fd):`,` move_entry(src_dir_fd, child, temp_dir_fd, child)`,` finally:`,` os.close(src_dir_fd)`,` os.close(temp_dir_fd)`,` os.rename(temp_dir_name, dst_basename, src_dir_fd=dst_parent_fd, dst_dir_fd=dst_parent_fd)`,` os.rmdir(src_basename, dir_fd=src_parent_fd)`,` os.fsync(dst_parent_fd)`,` os.fsync(src_parent_fd)`,` return`,` if stat.S_ISLNK(src_stat.st_mode):`,` link_target = os.readlink(src_basename, dir_fd=src_parent_fd)`,` try:`,` os.unlink(dst_basename, dir_fd=dst_parent_fd)`,` except FileNotFoundError:`,` pass`,` os.symlink(link_target, dst_basename, dir_fd=dst_parent_fd)`,` os.unlink(src_basename, dir_fd=src_parent_fd)`,` os.fsync(dst_parent_fd)`,` os.fsync(src_parent_fd)`,` return`,` src_fd = os.open(src_basename, READ_FLAGS, dir_fd=src_parent_fd)`,` temp_fd = None`,` temp_name = None`,` try:`,` temp_name, temp_fd = create_temp_file(dst_parent_fd, dst_basename)`,` while True:`,` chunk = os.read(src_fd, 65536)`,` if not chunk:`,` break`,` os.write(temp_fd, chunk)`,` try:`,` os.fchmod(temp_fd, stat.S_IMODE(src_stat.st_mode))`,` except AttributeError:`,` pass`,` os.fsync(temp_fd)`,` os.close(temp_fd)`,` temp_fd = None`,` os.replace(temp_name, dst_basename, src_dir_fd=dst_parent_fd, dst_dir_fd=dst_parent_fd)`,` temp_name = None`,` os.unlink(src_basename, dir_fd=src_parent_fd)`,` os.fsync(dst_parent_fd)`,` os.fsync(src_parent_fd)`,` finally:`,` if temp_fd is not None:`,` os.close(temp_fd)`,` if temp_name is not None:`,` try:`,` os.unlink(temp_name, dir_fd=dst_parent_fd)`,` except FileNotFoundError:`,` pass`,` os.close(src_fd)`,``,`if operation == 'write':`,` root_fd = open_dir(sys.argv[2])`,` parent_fd = None`,` try:`,` parent_fd = walk_dir(root_fd, sys.argv[3], sys.argv[5] == '1')`,` write_atomic(parent_fd, sys.argv[4], sys.stdin.buffer)`,` finally:`,` if parent_fd is not None:`,` os.close(parent_fd)`,` os.close(root_fd)`,`elif operation == 'mkdirp':`,` root_fd = open_dir(sys.argv[2])`,` target_fd = None`,` try:`,` target_fd = walk_dir(root_fd, sys.argv[3], True)`,` os.fsync(target_fd)`,` finally:`,` if target_fd is not None:`,` os.close(target_fd)`,` os.close(root_fd)`,`elif operation == 'remove':`,` root_fd = open_dir(sys.argv[2])`,` parent_fd = None`,` try:`,` parent_fd = walk_dir(root_fd, sys.argv[3], False)`,` try:`,` if sys.argv[5] == '1':`,` remove_tree(parent_fd, sys.argv[4])`,` else:`,` entry_stat = os.lstat(sys.argv[4], dir_fd=parent_fd)`,` if stat.S_ISDIR(entry_stat.st_mode) and not stat.S_ISLNK(entry_stat.st_mode):`,` os.rmdir(sys.argv[4], dir_fd=parent_fd)`,` else:`,` os.unlink(sys.argv[4], dir_fd=parent_fd)`,` os.fsync(parent_fd)`,` except FileNotFoundError:`,` if sys.argv[6] != '1':`,` raise`,` finally:`,` if parent_fd is not None:`,` os.close(parent_fd)`,` os.close(root_fd)`,`elif operation == 'rename':`,` src_root_fd = open_dir(sys.argv[2])`,` dst_root_fd = open_dir(sys.argv[5])`,` src_parent_fd = None`,` dst_parent_fd = None`,` try:`,` src_parent_fd = walk_dir(src_root_fd, sys.argv[3], False)`,` dst_parent_fd = walk_dir(dst_root_fd, sys.argv[6], sys.argv[8] == '1')`,` move_entry(src_parent_fd, sys.argv[4], dst_parent_fd, sys.argv[7])`,` finally:`,` if src_parent_fd is not None:`,` os.close(src_parent_fd)`,` if dst_parent_fd is not None:`,` os.close(dst_parent_fd)`,` os.close(src_root_fd)`,` os.close(dst_root_fd)`,`else:`,` raise RuntimeError('unknown sandbox mutation operation: ' + operation)`].join(`
5
5
  `),new Set(Object.values({WEBCHAT_UI:`webchat-ui`,CONTROL_UI:`openclaw-control-ui`,WEBCHAT:`webchat`,CLI:`cli`,GATEWAY_CLIENT:`gateway-client`,MACOS_APP:`openclaw-macos`,IOS_APP:`openclaw-ios`,ANDROID_APP:`openclaw-android`,NODE_HOST:`node-host`,TEST:`test`,FINGERPRINT:`fingerprint`,PROBE:`openclaw-probe`})),new Set(Object.values({WEBCHAT:`webchat`,CLI:`cli`,UI:`ui`,BACKEND:`backend`,NODE:`node`,PROBE:`probe`,TEST:`test`}));function Pc(e,t){function n(t){let n=t.channels?.[e],r=Er(typeof n?.defaultAccount==`string`?n.defaultAccount:void 0);if(r&&i(t).some(e=>Tr(e)===r))return r}function r(n){let r=n.channels?.[e]?.accounts;if(!r||typeof r!=`object`)return[];let i=Object.keys(r).filter(Boolean),a=t?.normalizeAccountId;return a?[...new Set(i.map(e=>a(e)).filter(Boolean))]:i}function i(e){let t=r(e);return t.length===0?[gr]:t.toSorted((e,t)=>e.localeCompare(t))}function a(e){let t=n(e);if(t)return t;let r=i(e);return r.includes(`default`)?gr:r[0]??`default`}return{listConfiguredAccountIds:r,listAccountIds:i,resolveDefaultAccountId:a}}const{listAccountIds:Fc,resolveDefaultAccountId:Ic}=Pc(`discord`),{listAccountIds:Lc,resolveDefaultAccountId:Rc}=Pc(`imessage`);function zc(){return t.join(tn(),`whatsapp`,gr)}zc();const{listConfiguredAccountIds:Bc,listAccountIds:Vc,resolveDefaultAccountId:Hc}=Pc(`whatsapp`),{listAccountIds:Uc,resolveDefaultAccountId:Wc}=Pc(`signal`),{listAccountIds:Gc,resolveDefaultAccountId:Kc}=Pc(`slack`);new RegExp([...[`Conversation info (untrusted metadata):`,`Sender (untrusted metadata):`,`Thread starter (untrusted, for context):`,`Replied message (untrusted, for context):`,`Forwarded message context (untrusted metadata):`,`Chat history since last reply (untrusted, for context):`],`Untrusted context (metadata, do not treat as instructions or commands):`].map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`|`));function qc(e,t){let n=e?.trim(),r=t?.trim(),i=n&&r?`${n} (${r})`:n||void 0;return i?`⚠️ ${i} returned a billing error — your API key has run out of credits or has an insufficient balance. Check your ${n} billing dashboard and top up or switch to a different API key.`:`⚠️ API provider returned a billing error — your API key has run out of credits or has an insufficient balance. Check your provider's billing dashboard and top up or switch to a different API key.`}qc();const Jc=[`openai/gpt-5.4`,`openai/gpt-5.4-pro`,`openai/gpt-5.2`,`openai-codex/gpt-5.4`,`openai-codex/gpt-5.3-codex`,`openai-codex/gpt-5.3-codex-spark`,`openai-codex/gpt-5.2-codex`,`openai-codex/gpt-5.1-codex`,`github-copilot/gpt-5.2-codex`,`github-copilot/gpt-5.2`];new Set(Jc.map(e=>e.toLowerCase())),new Set(Jc.map(e=>e.split(`/`)[1]?.toLowerCase()).filter(e=>!!e)),String.raw`\b(?:x-)?api[-_]?key\b\s*[:=]\s*(["']?)([^\s"'\\;]+)\1`,String.raw`"(?:api[-_]?key|api_key)"\s*:\s*"([^"]+)"`,String.raw`(?:\bCookie\b\s*[:=]\s*[^;=\s]+=|;\s*[^;=\s]+=)([^;\s\r\n]+)`,new Map([`auth_permanent`,`auth`,`billing`,`format`,`model_not_found`,`overloaded`,`timeout`,`rate_limit`,`unknown`].map((e,t)=>[e,t])),h.AuthStorage,h.ModelRegistry;function Yc(e){return e?.trim()||void 0}function Xc(e,t){let n=Yc(t);return n&&e.includes(`gpt-4o-mini-tts`)?n:void 0}const Zc={PAYLOAD_TOO_LARGE:`PayloadTooLarge`,REQUEST_BODY_TIMEOUT:`RequestBodyTimeout`,CONNECTION_CLOSED:`RequestBodyConnectionClosed`},Qc={PAYLOAD_TOO_LARGE:413,REQUEST_BODY_TIMEOUT:408,CONNECTION_CLOSED:400},$c={PAYLOAD_TOO_LARGE:`Payload too large`,REQUEST_BODY_TIMEOUT:`Request body timeout`,CONNECTION_CLOSED:`Connection closed`};var $=class extends Error{constructor(e){super(e.message??Zc[e.code]),this.name=`RequestBodyLimitError`,this.code=e.code,this.statusCode=Qc[e.code]}};function el(e,t){return e instanceof $?t?e.code===t:!0:!1}function tl(e){return $c[e]}function nl(e){let t=e.headers[`content-length`],n=Array.isArray(t)?t[0]:t;if(typeof n!=`string`)return null;let r=Number.parseInt(n,10);return!Number.isFinite(r)||r<0?null:r}function rl(e){return{maxBytes:Number.isFinite(e.maxBytes)?Math.max(1,Math.floor(e.maxBytes)):1,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?Math.max(1,Math.floor(e.timeoutMs)):3e4}}async function il(e,t){let{maxBytes:n,timeoutMs:r}=rl(t),i=t.encoding??`utf-8`,a=nl(e);if(a!==null&&a>n){let t=new $({code:`PAYLOAD_TOO_LARGE`});throw e.destroyed||e.destroy(),t}return await new Promise((t,a)=>{let o=!1,s=!1,c=0,l=[],u=()=>{e.removeListener(`data`,m),e.removeListener(`end`,h),e.removeListener(`error`,g),e.removeListener(`close`,_),clearTimeout(p)},d=e=>{o||(o=!0,u(),e())},f=e=>{d(()=>a(e))},p=setTimeout(()=>{let t=new $({code:`REQUEST_BODY_TIMEOUT`});e.destroyed||e.destroy(),f(t)},r),m=t=>{if(o)return;let r=Buffer.isBuffer(t)?t:Buffer.from(t);if(c+=r.length,c>n){let t=new $({code:`PAYLOAD_TOO_LARGE`});e.destroyed||e.destroy(),f(t);return}l.push(r)},h=()=>{s=!0,d(()=>t(Buffer.concat(l).toString(i)))},g=e=>{o||f(e)},_=()=>{o||s||f(new $({code:`CONNECTION_CLOSED`}))};e.on(`data`,m),e.on(`end`,h),e.on(`error`,g),e.on(`close`,_)})}function al(){this.abort()}function ol(e){return al.bind(e)}const sl={STRICT:`strict`,TRUSTED_ENV_PROXY:`trusted_env_proxy`},cl=new Set([`accept`,`accept-encoding`,`accept-language`,`cache-control`,`content-language`,`content-type`,`if-match`,`if-modified-since`,`if-none-match`,`if-unmodified-since`,`pragma`,`range`,`user-agent`]);function ll(e){return e.mode?e.mode:e.proxy===`env`&&e.dangerouslyAllowEnvProxyWithoutPinnedDns===!0?sl.TRUSTED_ENV_PROXY:sl.STRICT}function ul(e){return e===301||e===302||e===303||e===307||e===308}function dl(e){if(!e?.headers)return e;let t=new Headers(e.headers),n=new Headers;for(let[e,r]of t.entries())cl.has(e.toLowerCase())&&n.set(e,r);return{...e,headers:n}}function fl(e){let{timeoutMs:t,signal:n}=e;if(!t&&!n)return{signal:void 0,cleanup:()=>{}};if(!t)return{signal:n,cleanup:()=>{}};let r=new AbortController,i=setTimeout(r.abort.bind(r),t),a=ol(r);return n&&(n.aborted?r.abort():n.addEventListener(`abort`,a,{once:!0})),{signal:r.signal,cleanup:()=>{clearTimeout(i),n&&n.removeEventListener(`abort`,a)}}}async function pl(e){let t=e.fetchImpl??globalThis.fetch;if(!t)throw Error(`fetch is not available`);let n=typeof e.maxRedirects==`number`&&Number.isFinite(e.maxRedirects)?Math.max(0,Math.floor(e.maxRedirects)):3,r=ll(e),{signal:i,cleanup:a}=fl({timeoutMs:e.timeoutMs,signal:e.signal}),o=!1,s=async e=>{o||(o=!0,a(),await Tc(e??void 0))},c=new Set,l=e.url,u=e.init?{...e.init}:void 0,d=0;for(;;){let a;try{a=new URL(l)}catch{throw await s(),Error(`Invalid URL: must be http or https`)}if(![`http:`,`https:`].includes(a.protocol))throw await s(),Error(`Invalid URL: must be http or https`);let o=null;try{let f=await Cc(a.hostname,{lookupFn:e.lookupFn,policy:e.policy});r===sl.TRUSTED_ENV_PROXY&&Dc()?o=new te:e.pinDns!==!1&&(o=wc(f));let p={...u?{...u}:{},redirect:`manual`,...o?{dispatcher:o}:{},...i?{signal:i}:{}},m=await t(a.toString(),p);if(ul(m.status)){let e=m.headers.get(`location`);if(!e)throw await s(o),Error(`Redirect missing location header (${m.status})`);if(d+=1,d>n)throw await s(o),Error(`Too many redirects (limit: ${n})`);let t=new URL(e,a),r=t.toString();if(c.has(r))throw await s(o),Error(`Redirect loop detected`);t.origin!==a.origin&&(u=dl(u)),c.add(r),m.body?.cancel(),await Tc(o),l=r;continue}return{response:m,finalUrl:l,release:async()=>s(o)}}catch(t){throw t instanceof sc&&Qs(`security: blocked URL fetch (${e.auditContext??`url-fetch`}) target=${a.origin}${a.pathname} reason=${t.message}`),await s(o),t}}}export{tt as TtsAutoSchema,nt as TtsConfigSchema,et as TtsModeSchema,$e as TtsProviderSchema,pl as fetchWithSsrFGuard,el as isRequestBodyLimitError,il as readRequestBodyWithLimit,tl as requestBodyErrorToText,Xc as resolveOpenAITtsInstructions,Or as sleep};
6
- //# sourceMappingURL=voice-call.js.map
@@ -3,4 +3,3 @@ import{B as e,C as t,D as n,E as r,H as i,J as a,K as o,O as s,R as c,T as l,U a
3
3
  `),a={...n,body:i,mentionedJids:r.size>0?Array.from(r):void 0};await e.onMessage(a)},onError:e=>{n.error({error:String(e)},`failed handling inbound web message`),r.error(`Failed handling inbound web message: ${String(e)}`)}}),f=new Map,p=300*1e3,m=i.signalRepository?.lidMapping,h=async t=>xe(t,{authDir:e.authDir,lidLookup:m}),g=async e=>{let t=f.get(e);if(t&&t.expires>Date.now())return t;try{let t=await i.groupMetadata(e),n=(await Promise.all(t.participants?.map(async e=>await h(e.id)??e.id)??[])).filter(Boolean)??[],r={subject:t.subject,participants:n,expires:Date.now()+p};return f.set(e,r),r}catch(t){return U(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+p}}},_=async t=>{let n=t.key?.id??void 0,r=t.key?.remoteJid;if(!r||r.endsWith(`@status`)||r.endsWith(`@broadcast`))return null;let o=Xe(r)===!0;if(n&&it(`${e.accountId}:${r}:${n}`))return null;let s=t.key?.participant??void 0,c=o?r:await h(r);if(!c)return null;let l=o?s?await h(s):null:c,d,f;if(o){let e=await g(r);d=e.subject,f=e.participants}let p=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,m=await Tt({accountId:e.accountId,from:c,selfE164:u,senderE164:l,group:o,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:p,connectedAtMs:a,sock:{sendMessage:(e,t)=>i.sendMessage(e,t)},remoteJid:r});return m.allowed?{id:n,remoteJid:r,group:o,participantJid:s,from:c,senderE164:l,groupSubject:d,groupParticipants:f,messageTimestampMs:p,access:m}:null},v=async t=>{let{id:n,remoteJid:r,participantJid:a,access:o}=t;if(n&&!o.isSelfChat&&e.sendReadReceipts!==!1)try{await i.readMessages([{remoteJid:r,id:n,participant:a,fromMe:!1}]),B()&&U(`Marked message ${n} as read for ${r}${a?` (participant ${a})`:``}`)}catch(e){U(`Failed to mark message ${n} read: ${String(e)}`)}else n&&o.isSelfChat&&B()&&U(`Self-chat mode: skipping read receipt for ${n}`)},y=async t=>{let n=St(t.message??void 0),r=n?Te(n):void 0,a=pt(t.message??void 0);if(r&&(a=[a,r].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,i);if(n){let t=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;s=(await he(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}},b=async(e,t,a)=>{let o=t.remoteJid,s=async()=>{try{await i.sendPresenceUpdate(`composing`,o)}catch(e){U(`Presence update failed: ${String(e)}`)}},c=async e=>{await i.sendMessage(o,{text:e})},f=async e=>{await i.sendMessage(o,e)},p=t.messageTimestampMs,m=ft(e.message),h=e.pushName??void 0;n.info({from:t.from,to:u??`me`,body:a.body,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName,timestamp:p},`inbound message`);let g={id:t.id,from:t.from,conversationId:t.from,to:u??`me`,accountId:t.access.resolvedAccountId,body:a.body,pushName:h,timestamp:p,chatType:t.group?`group`:`direct`,chatId:t.remoteJid,senderJid:t.participantJid,senderE164:t.senderE164??void 0,senderName:h,replyToId:a.replyContext?.id,replyToBody:a.replyContext?.body,replyToSender:a.replyContext?.sender,replyToSenderJid:a.replyContext?.senderJid,replyToSenderE164:a.replyContext?.senderE164,groupSubject:t.groupSubject,groupParticipants:t.groupParticipants,mentionedJids:m??void 0,selfJid:l,selfE164:u,fromMe:!!e.key?.fromMe,location:a.location??void 0,sendComposing:s,reply:c,sendMedia:f,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName};try{Promise.resolve(d.enqueue(g)).catch(e=>{n.error({error:String(e)},`failed handling inbound web message`),r.error(`Failed handling inbound web message: ${String(e)}`)})}catch(e){n.error({error:String(e)},`failed handling inbound web message`),r.error(`Failed handling inbound web message: ${String(e)}`)}},x=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 _(n);if(!r||(await v(r),t.type===`append`))continue;let i=await y(n);i&&await b(n,r,i)}};i.ev.on(`messages.upsert`,x);let S=e=>{try{if(e.connection===`close`){let t=He(e.lastDisconnect?.error);c({status:t,isLoggedOut:t===Ke.loggedOut,error:e.lastDisconnect?.error})}}catch(e){n.error({error:String(e)},`connection.update handler error`),c({status:void 0,isLoggedOut:!1,error:e})}};return i.ev.on(`connection.update`,S),{close:async()=>{try{let e=i.ev,t=x,n=S;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)),i.ws?.close()}catch(e){U(`Socket close failed: ${String(e)}`)}},onClose:s,signalClose:e=>{c(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...jt({sock:{sendMessage:(e,t)=>i.sendMessage(e,t),sendPresenceUpdate:(e,t)=>i.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function Nt(e,t){return{mentionRegexes:s(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=>K(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?K(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Ft(e,t,n){let r=e=>C(e),i=be(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:C(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=>G(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(e){let t=te({agentId:e.agentId,channel:`whatsapp`,accountId:e.route.accountId,peer:{kind:e.msg.chatType===`group`?`group`:`direct`,id:e.peerId},dmScope:e.cfg.session?.dmScope,identityLinks:e.cfg.session?.identityLinks}),n=D({agentId:e.agentId,mainKey:O});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:x({sessionKey:t,mainSessionKey:n})}}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=>k(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=k(t);if(i&&!r?.includes(n))return X.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let o=zt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),s={...e.route,agentId:n,...o};try{return await e.processMessage(e.msg,s,e.groupHistoryKey,{groupHistory:a,suppressGroupHistoryClear:!0})}catch(e){return X.error(`Broadcast agent ${t} failed: ${q(e)}`),!1}};if(n===`sequential`)for(let e of t)await o(e);else await Promise.allSettled(t.map(o));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function 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=z({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return L({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Ut(e,t){let n=z({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return ge({cfg:e,channel:`whatsapp`,groupId:n??t})}function Wt(e){let t=F(j(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Ut(e.cfg,e.conversationId)?`mention`:`always`;return S(t?.groupActivation)??n}function Gt(e,t,n){for(let r of e){let e=G(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Kt(e,t,n,r){if(!n||!r)return;let i=G(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=G(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=G(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`;ne({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),i=Vt(e.msg.body,n.mentionRegexes,e.msg.selfE164),a=h(i),o=Jt(e.baseMentionConfig,e.msg),s=o&&r(i,e.cfg);if(a.hasCommand&&!o)return Xt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let c=It(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:c.wasMentioned,...c.details},`group mention debug`);let l=c.wasMentioned,u=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?G(e.msg.selfE164):null,m=e.msg.replyToSenderE164?G(e.msg.replyToSenderE164):null,g=v({requireMention:u,canDetectMention:!0,wasMentioned:l,implicitMention:!!(d&&f&&d===f||p&&m&&p===m),shouldBypassMention:s});return e.msg.wasMentioned=g.effectiveWasMentioned,!s&&u&&g.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=j(e.cfg.session?.store,{agentId:e.storeAgentId}),n=ue({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?G(e.senderE164)??e.senderE164:e.from.includes(`@`)?K(e.from)??e.from:G(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:a,connectionId:o,skipLog:s}=e,c=Date.now();if(nn(t)){Z.debug(`Suppressed reasoning payload to ${n.from}`);return}let l=e.tableMode??`code`,u=e.chunkMode??`length`,d=je(Re(Ie(t.text||``,l)),i,u),f=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],p=async(e,t,r=3)=>{let i;for(let a=1;a<=r;a++)try{return await e()}catch(e){i=e;let o=q(e),s=a===r;if(!/closed|reset|timed\s*out|disconnect/i.test(o)||s)throw e;let c=500*a;U(`Retrying ${t} to ${n.from} after failure (${a}/${r-1}) in ${c}ms: ${o}`),await V(c)}throw i};if(f.length===0&&d.length){let e=d.length;for(let[t,r]of d.entries()){let i=Date.now();if(await p(()=>n.reply(r),`text`),!s){let r=Date.now()-i;Z.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}a.info({correlationId:n.id??J(),connectionId:o??null,to:n.from,from:n.to,text:$(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-c},`auto-reply sent (text)`);return}let m=[...d];for(let[t,i]of f.entries()){let s=t===0&&m.shift()||void 0;try{let t=await Ae(i,{maxBytes:r,localRoots:e.mediaLocalRoots});if(B()&&(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 p(()=>n.sendMedia({image:t.buffer,caption:s,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await p(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:s}),`media:audio`);else if(t.kind===`video`)await p(()=>n.sendMedia({video:t.buffer,caption:s,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??i.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await p(()=>n.sendMedia({document:t.buffer,fileName:e,caption:s,mimetype:r}),`media:document`)}Z.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),a.info({correlationId:n.id??J(),connectionId:o??null,to:n.from,from:n.to,text:s??null,mediaUrl:i,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-c},`auto-reply sent (media)`)}catch(e){if(Z.error(`Failed sending web media to ${n.from}: ${q(e)}`),a.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=[m.shift()??s??``,t].filter(Boolean).join(`
5
5
  `);r&&(Z.warn(`Media skipped; sent text-only to ${n.from}`),await n.reply(r))}}}for(let e of m)await n.reply(e)}function an(e){if(!e.msg.id)return;let t=e.cfg.channels?.whatsapp?.ackReaction,n=(t?.emoji??``).trim(),r=t?.direct??!0,i=t?.group??`mentions`,a=e.msg.conversationId??e.msg.from,o=e.msg.chatType===`group`?Wt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:a}):null;g({emoji:n,isDirect:e.msg.chatType===`direct`,isGroup:e.msg.chatType===`group`,directEnabled:r,groupMode:i,wasMentioned:e.msg.wasMentioned===!0,groupActivated:o===`always`})&&(e.info({chatId:e.msg.chatId,messageId:e.msg.id,emoji:n},`sending ack reaction`),ze(e.msg.chatId,e.msg.id,n,{verbose:e.verbose,fromMe:!1,participant:e.msg.senderJid,accountId:e.accountId}).catch(t=>{e.warn({error:q(t),chatId:e.msg.chatId,messageId:e.msg.id},`failed to send ack reaction`),U(`WhatsApp ack reaction failed for chat ${e.msg.chatId}: ${q(t)}`)}))}function on(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function sn(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=f(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=on(n),u=`${s}${n.body}${c?`\n\n${c}`:``}`;return l({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:u,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function cn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,r=G(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!r)return!1;let a=P({cfg:e.cfg,accountId:e.msg.accountId}),o=a.dmPolicy??`pairing`,s=a.groupPolicy??`allowlist`,c=a.allowFrom??[],l=a.groupAllowFrom??(c.length>0?c:void 0),d=n?[]:await i({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:o});return u({isGroup:n,dmPolicy:o,groupPolicy:s,allowFrom:c.length>0?c:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:l,storeAllowFrom:d,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>G(String(e))).filter(e=>!!e).includes(r),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function ln(e){let t=P({cfg:e.cfg,accountId:e.msg.accountId});return o({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>G(e)})}async function un(e){let t=e.msg.conversationId??e.msg.from,{storePath:r,envelopeOptions:i,previousTimestamp:o}=re({cfg:e.cfg,agentId:e.route.agentId,sessionKey:e.route.sessionKey}),s=sn({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,previousTimestamp:o,envelope:i}),c=!1;if(e.msg.chatType===`group`){let n=e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[];n.length>0&&(s=y({entries:n.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:s,excludeLast:!1,formatEntry:e=>l({channel:`WhatsApp`,from:t,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:i})})),c=!(e.suppressGroupHistoryClear??!1)}let u=e.buildCombinedEchoKey({sessionKey:e.route.sessionKey,combinedBody:s});if(e.echoHas(u))return U(`Skipping auto-reply: detected echo for combined message`),e.echoForget(u),!1;an({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,sessionKey:e.route.sessionKey,conversationId:t,verbose:e.verbose,accountId:e.route.accountId,info:e.replyLogger.info.bind(e.replyLogger),warn:e.replyLogger.warn.bind(e.replyLogger)});let d=e.msg.id??J();e.replyLogger.info({connectionId:e.connectionId,correlationId:d,from:e.msg.chatType===`group`?t:e.msg.from,to:e.msg.to,body:$(s,240),mediaType:e.msg.mediaType??null,mediaPath:e.msg.mediaPath??null},`inbound web message`);let f=e.msg.chatType===`group`?t:e.msg.from,h=e.msg.mediaType?`, ${e.msg.mediaType}`:``;X.info(`Inbound message ${f} -> ${e.msg.to} (${e.msg.chatType}${h}, ${s.length} chars)`),B()&&X.debug(`Inbound body: ${$(s,400)}`);let g=e.msg.chatType===`group`?void 0:e.msg.senderE164?G(e.msg.senderE164):e.msg.from.includes(`@`)?K(e.msg.from):G(e.msg.from),_=e.maxMediaTextChunkLimit??Me(e.cfg,`whatsapp`),v=Ne(e.cfg,`whatsapp`,e.route.accountId),b=Pe({cfg:e.cfg,channel:`whatsapp`,accountId:e.route.accountId}),x=ke(e.cfg,e.route.agentId),S=!1,C=!1,ee=n(e.msg.body,e.cfg)?await cn({cfg:e.cfg,msg:e.msg}):void 0,te=e.cfg.messages?.responsePrefix,{onModelSelected:ne,...w}=a({cfg:e.cfg,agentId:e.route.agentId,channel:`whatsapp`,accountId:e.route.accountId}),T=e.msg.chatType!==`group`&&!!e.msg.selfE164&&G(e.msg.from)===G(e.msg.selfE164??``),ie=w.responsePrefix??(te===void 0&&T?p(e.cfg,e.route.agentId):void 0),ae=e.msg.chatType===`group`?(e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,E=se({Body:s,BodyForAgent:e.msg.body,InboundHistory:ae,RawBody:e.msg.body,CommandBody:e.msg.body,From:e.msg.from,To:e.msg.to,SessionKey:e.route.sessionKey,AccountId:e.route.accountId,MessageSid:e.msg.id,ReplyToId:e.msg.replyToId,ReplyToBody:e.msg.replyToBody,ReplyToSender:e.msg.replyToSender,MediaPath:e.msg.mediaPath,MediaUrl:e.msg.mediaUrl,MediaType:e.msg.mediaType,ChatType:e.msg.chatType,ConversationLabel:e.msg.chatType===`group`?t:e.msg.from,GroupSubject:e.msg.groupSubject,GroupMembers:qt({participants:e.msg.groupParticipants,roster:e.groupMemberNames.get(e.groupHistoryKey),fallbackE164:e.msg.senderE164}),SenderName:e.msg.senderName,SenderId:e.msg.senderJid?.trim()||e.msg.senderE164,SenderE164:e.msg.senderE164,CommandAuthorized:ee,WasMentioned:e.msg.wasMentioned,...e.msg.location?Ee(e.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:e.msg.from}),D=ln({cfg:e.cfg,msg:e.msg}),O=!D||D===g,k=m({route:e.route,sessionKey:e.route.sessionKey});g&&k===e.route.mainSessionKey&&O?$t({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:e.route.agentId,sessionKey:e.route.mainSessionKey,channel:`whatsapp`,to:g,accountId:e.route.accountId,ctx:E,warn:e.replyLogger.warn.bind(e.replyLogger)}):g&&k===e.route.mainSessionKey&&D&&U(`Skipping main-session last route update for ${g} (pinned owner ${D})`);let A=M({storePath:r,sessionKey:e.route.sessionKey,ctx:E}).catch(t=>{e.replyLogger.warn({error:q(t),storePath:r,sessionKey:e.route.sessionKey},`failed updating session meta`)});Qt(e.backgroundTasks,A);let{queuedFinal:j}=await oe({ctx:E,cfg:e.cfg,replyResolver:e.replyResolver,dispatcherOptions:{...w,responsePrefix:ie,onHeartbeatStrip:()=>{S||(S=!0,U(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(n,r)=>{if(r.kind!==`final`)return;await rn({replyResult:n,msg:e.msg,mediaLocalRoots:x,maxMediaBytes:e.maxMediaBytes,textLimit:_,chunkMode:v,replyLogger:e.replyLogger,connectionId:e.connectionId,skipLog:!1,tableMode:b}),C=!0;let i=n.text?!0:void 0;e.rememberSentText(n.text,{combinedBody:s,combinedBodySessionKey:e.route.sessionKey,logVerboseMessage:i});let a=e.msg.chatType===`group`?t:e.msg.from??`unknown`,o=!!(n.mediaUrl||n.mediaUrls?.length);if(Z.info(`Auto-replied to ${a}${o?` (media)`:``}`),B()){let e=n.text==null?`<media>`:$(n.text,400);Z.debug(`Reply body: ${e}${o?` (media)`:``}`)}},onError:(n,r)=>{let i=r.kind===`tool`?`tool update`:r.kind===`block`?`block update`:`auto-reply`;Z.error(`Failed sending web ${i} to ${e.msg.from??t}: ${q(n)}`)},onReplyStart:e.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:ne}});return j?(c&&e.groupHistories.set(e.groupHistoryKey,[]),C):(c&&e.groupHistories.set(e.groupHistoryKey,[]),U(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function dn(e){let t=async(t,n,r,i)=>un({cfg:e.cfg,msg:t,route:n,groupHistoryKey:r,groupHistories:e.groupHistories,groupMemberNames:e.groupMemberNames,connectionId:e.connectionId,verbose:e.verbose,maxMediaBytes:e.maxMediaBytes,replyResolver:e.replyResolver,replyLogger:e.replyLogger,backgroundTasks:e.backgroundTasks,rememberSentText:e.echoTracker.rememberText,echoHas:e.echoTracker.has,echoForget:e.echoTracker.forget,buildCombinedEchoKey:e.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async n=>{let r=n.conversationId??n.from,i=en(n),a=b({cfg:N(),channel:`whatsapp`,accountId:n.accountId,peer:{kind:n.chatType===`group`?`group`:`direct`,id:i}}),o=n.chatType===`group`?A({channel:`whatsapp`,accountId:a.accountId,peerKind:`group`,peerId:i}):a.sessionKey;if(n.from===n.to&&U(`📱 Same-phone mode detected (from === to: ${n.from})`),e.echoTracker.has(n.body)){U(`Skipping auto-reply: detected echo (message matches recently sent text)`),e.echoTracker.forget(n.body);return}if(n.chatType===`group`){let t={From:n.from,To:n.to,SessionKey:a.sessionKey,AccountId:a.accountId,ChatType:n.chatType,ConversationLabel:r,GroupSubject:n.groupSubject,SenderName:n.senderName,SenderId:n.senderJid?.trim()||n.senderE164,SenderE164:n.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:r};if($t({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:a.agentId,sessionKey:a.sessionKey,channel:`whatsapp`,to:r,accountId:a.accountId,ctx:t,warn:e.replyLogger.warn.bind(e.replyLogger)}),!Zt({cfg:e.cfg,msg:n,conversationId:r,groupHistoryKey:o,agentId:a.agentId,sessionKey:a.sessionKey,baseMentionConfig:e.baseMentionConfig,authDir:e.account.authDir,groupHistories:e.groupHistories,groupHistoryLimit:e.groupHistoryLimit,groupMemberNames:e.groupMemberNames,logVerbose:U,replyLogger:e.replyLogger}).shouldProcess)return}else !n.senderE164&&i&&i.startsWith(`+`)&&(n.senderE164=G(i)??n.senderE164);await Bt({cfg:e.cfg,msg:n,peerId:i,route:a,groupHistoryKey:o,groupHistories:e.groupHistories,processMessage:t})||await t(n,a,o)}}function fn(e){return e===440}async function pn(e,t=Mt,n=!0,i=w,a=_e,o,s={}){let c=J(),l=H({module:`web-auto-reply`,runId:c}),u=H({module:`web-heartbeat`,runId:c}),d=H({module:`web-reconnect`,runId:c}),f={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},p=()=>{s.statusSink?.({...f,lastDisconnect:f.lastDisconnect?{...f.lastDisconnect}:null})};p();let m=N(),h=P({cfg:m,accountId:s.accountId}),g={...m,channels:{...m.channels,whatsapp:{...m.channels?.whatsapp,ackReaction:h.ackReaction,messagePrefix:h.messagePrefix,allowFrom:h.allowFrom,groupAllowFrom:h.groupAllowFrom,groupPolicy:h.groupPolicy,textChunkLimit:h.textChunkLimit,chunkMode:h.chunkMode,mediaMaxMb:h.mediaMaxMb,blockStreaming:h.blockStreaming,groups:h.groups}}},v=de(h),y=$e(g,s.heartbeatSeconds),x=et(g,s.reconnect),S=Nt(g),C=g.channels?.whatsapp?.accounts?.[s.accountId??``]?.historyLimit??g.channels?.whatsapp?.historyLimit??g.messages?.groupChat?.historyLimit??50,te=new Map,ne=new Map,re=Rt({maxItems:100,logVerbose:U}),oe=s.sleep??((e,t)=>T(e,t??o)),se=()=>o?.aborted===!0,D=o&&new Promise(e=>o.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),O=process.getMaxListeners?.()??10;process.setMaxListeners&&O<50&&process.setMaxListeners(50);let k=!1,A=()=>{k=!0};process.once(`SIGINT`,A);let j=0;for(;!se();){let c=J(),m=Date.now(),T=null,O=null,M=null,N=0,P=null,le=s.messageTimeoutMs??1800*1e3,ue=s.watchdogCheckMs??60*1e3,F=new Set,de=dn({cfg:g,verbose:e,connectionId:c,maxMediaBytes:v,groupHistoryLimit:C,groupHistories:te,groupMemberNames:ne,echoTracker:re,backgroundTasks:F,replyResolver:i??w,replyLogger:l,baseMentionConfig:S,account:h}),fe=ae({cfg:g,channel:`whatsapp`}),I=await(t??Mt)({verbose:e,accountId:h.accountId,authDir:h.authDir,mediaMaxMb:h.mediaMaxMb,sendReadReceipts:h.sendReadReceipts,debounceMs:fe,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!r(e.body,g),onMessage:async e=>{N+=1,M=Date.now(),f.lastMessageAt=M,f.lastEventAt=M,p(),await de(e)}});Object.assign(f,_()),f.lastError=null,p();let{e164:he}=me(h.authDir),ge=b({cfg:g,channel:`whatsapp`,accountId:h.accountId});ie(`WhatsApp gateway connected${he?` as ${he}`:``}.`,{sessionKey:ge.sessionKey}),Le(h.accountId,I),P=Oe(e=>{if(!tn(e))return!1;let t=q(e);return d.warn({connectionId:c,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),I.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let L=async()=>{Le(h.accountId,null),P&&=(P(),null),T&&clearInterval(T),O&&clearInterval(O),F.size>0&&(await Promise.allSettled(F),F.clear());try{await I.close()}catch(e){U(`Socket close failed: ${q(e)}`)}};if(n&&(T=setInterval(()=>{let e=ce(h.authDir),t=M?Math.floor((Date.now()-M)/6e4):null,n={connectionId:c,reconnectAttempts:j,messagesHandled:N,lastMessageAt:M,authAgeMs:e,uptimeMs:Date.now()-m,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?u.warn(n,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):u.info(n,`web gateway heartbeat`)},y*1e3),O=setInterval(()=>{if(!M)return;let e=Date.now()-M;if(e<=le)return;let t=Math.floor(e/6e4);u.warn({connectionId:c,minutesSinceLastMessage:t,lastMessageAt:new Date(M),messagesHandled:N},`Message timeout detected - forcing reconnect`),tt.warn(`No messages received in ${t}m - restarting connection`),L().catch(e=>{U(`Close listener failed: ${q(e)}`)}),I.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ue)),Y.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&Y.raw(`Ctrl+C to stop.`),!n){await L(),process.removeListener(`SIGINT`,A);return}let R=await Promise.race([I.onClose?.catch(e=>(d.error({error:q(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??nt(),D??nt()]);if(Date.now()-m>y*1e3&&(j=0),f.reconnectAttempts=j,p(),se()||k||R===`aborted`){await L();break}let z=(typeof R==`object`&&R&&`status`in R?R.status:void 0)??`unknown`,B=typeof R==`object`&&R&&`isLoggedOut`in R&&R.isLoggedOut,V=q(R);if(f.connected=!1,f.lastEventAt=Date.now(),f.lastDisconnect={at:f.lastEventAt,status:typeof z==`number`?z:void 0,error:V,loggedOut:!!B},f.lastError=V,f.reconnectAttempts=j,p(),d.info({connectionId:c,status:z,loggedOut:B,reconnectAttempts:j,error:V},`web reconnect: connection closed`),ie(`WhatsApp gateway disconnected (status ${z??`unknown`})`,{sessionKey:ge.sessionKey}),B){a.error(`WhatsApp session logged out. Run \`${pe(`openclaw channels login --channel web`)}\` to relink.`),await L();break}if(fn(z)){d.warn({connectionId:c,status:z,error:V},`web reconnect: non-retryable close status; stopping monitor`),a.error(`WhatsApp Web connection closed (status ${z}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${pe(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await L();break}if(j+=1,f.reconnectAttempts=j,p(),x.maxAttempts>0&&j>=x.maxAttempts){d.warn({connectionId:c,status:z,reconnectAttempts:j,maxAttempts:x.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),a.error(`WhatsApp Web reconnect: max attempts reached (${j}/${x.maxAttempts}). Stopping web monitoring.`),await L();break}let H=ee(x,j);d.info({connectionId:c,status:z,reconnectAttempts:j,maxAttempts:x.maxAttempts||`unlimited`,delayMs:H},`web reconnect: scheduling retry`),a.error(`WhatsApp Web connection closed (status ${z}). Retry ${j}/${x.maxAttempts||`∞`} in ${E(H)}… (${V})`),await L();try{await oe(H,o)}catch{break}}f.running=!1,f.connected=!1,f.lastEventAt=Date.now(),p(),process.removeListener(`SIGINT`,A)}export{fe as WA_WEB_AUTH_DIR,Ue as createWaSocket,le as logWebSelfId,We as loginWeb,pn as monitorWebChannel,Mt as monitorWebInbox,I as pickWebChannel,Be as sendMessageWhatsApp,Ve as waitForWaConnection,R as webAuthExists};
6
- //# sourceMappingURL=web--8MBOleK.js.map
@@ -3,4 +3,3 @@ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-D2Km7gvG.cjs`),t=req
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(`
5
5
  `);r&&(C.warn(`Media skipped; sent text-only to ${n.from}`),await n.reply(r))}}}for(let e of y)await n.reply(e)}function ke(t){if(!t.msg.id)return;let n=t.cfg.channels?.whatsapp?.ackReaction,r=(n?.emoji??``).trim(),a=n?.direct??!0,o=n?.group??`mentions`,s=t.msg.conversationId??t.msg.from,c=t.msg.chatType===`group`?he({cfg:t.cfg,agentId:t.agentId,sessionKey:t.sessionKey,conversationId:s}):null;e.y({emoji:r,isDirect:t.msg.chatType===`direct`,isGroup:t.msg.chatType===`group`,directEnabled:a,groupMode:o,wasMentioned:t.msg.wasMentioned===!0,groupActivated:c===`always`})&&(t.info({chatId:t.msg.chatId,messageId:t.msg.id,emoji:r},`sending ack reaction`),f.r(t.msg.chatId,t.msg.id,r,{verbose:t.verbose,fromMe:!1,participant:t.msg.senderJid,accountId:t.accountId}).catch(e=>{t.warn({error:p.n(e),chatId:t.msg.chatId,messageId:t.msg.id},`failed to send ack reaction`),i.R(`WhatsApp ack reaction failed for chat ${t.msg.chatId}: ${p.n(e)}`)}))}function Ae(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function je(t){let{cfg:n,msg:r,agentId:i,previousTimestamp:a,envelope:o}=t,s=e.Z(n,i,{configured:n.channels?.whatsapp?.messagePrefix,hasAllowFrom:(n.channels?.whatsapp?.allowFrom?.length??0)>0}),c=s?`${s} `:``,l=Ae(r),u=`${c}${r.body}${l?`\n\n${l}`:``}`;return e.w({channel:`WhatsApp`,from:r.chatType===`group`?r.from:r.from?.replace(/^whatsapp:/,``),timestamp:r.timestamp,body:u,chatType:r.chatType,sender:{name:r.senderName,e164:r.senderE164,id:r.senderJid},previousTimestamp:a,envelope:o,fromMe:r.fromMe})}async function Me(t){let n=t.cfg.commands?.useAccessGroups!==!1;if(!n)return!0;let a=t.msg.chatType===`group`,o=i.h(a?t.msg.senderE164??``:t.msg.senderE164??t.msg.from??``);if(!o)return!1;let s=r.Gn({cfg:t.cfg,accountId:t.msg.accountId}),c=s.dmPolicy??`pairing`,l=s.groupPolicy??`allowlist`,u=s.allowFrom??[],d=s.groupAllowFrom??(u.length>0?u:void 0),f=a?[]:await e.V({provider:`whatsapp`,accountId:t.msg.accountId,dmPolicy:c});return e.H({isGroup:a,dmPolicy:c,groupPolicy:l,allowFrom:u.length>0?u:t.msg.selfE164?[t.msg.selfE164]:[],groupAllowFrom:d,storeAllowFrom:f,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>i.h(String(e))).filter(e=>!!e).includes(o),command:{useAccessGroups:n,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function Ne(t){let n=r.Gn({cfg:t.cfg,accountId:t.msg.accountId});return e.W({dmScope:t.cfg.session?.dmScope,allowFrom:n.allowFrom,normalizeEntry:e=>i.h(e)})}async function Pe(t){let n=t.msg.conversationId??t.msg.from,{storePath:o,envelopeOptions:l,previousTimestamp:u}=e.s({cfg:t.cfg,agentId:t.route.agentId,sessionKey:t.route.sessionKey}),d=je({cfg:t.cfg,msg:t.msg,agentId:t.route.agentId,previousTimestamp:u,envelope:l}),f=!1;if(t.msg.chatType===`group`){let r=t.groupHistory??t.groupHistories.get(t.groupHistoryKey)??[];r.length>0&&(d=e.d({entries:r.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:d,excludeLast:!1,formatEntry:t=>e.w({channel:`WhatsApp`,from:n,timestamp:t.timestamp,body:t.body,chatType:`group`,senderLabel:t.sender,envelope:l})})),f=!(t.suppressGroupHistoryClear??!1)}let m=t.buildCombinedEchoKey({sessionKey:t.route.sessionKey,combinedBody:d});if(t.echoHas(m))return i.R(`Skipping auto-reply: detected echo for combined message`),t.echoForget(m),!1;ke({cfg:t.cfg,msg:t.msg,agentId:t.route.agentId,sessionKey:t.route.sessionKey,conversationId:n,verbose:t.verbose,accountId:t.route.accountId,info:t.replyLogger.info.bind(t.replyLogger),warn:t.replyLogger.warn.bind(t.replyLogger)});let h=t.msg.id??b();t.replyLogger.info({connectionId:t.connectionId,correlationId:h,from:t.msg.chatType===`group`?n:t.msg.from,to:t.msg.to,body:$(d,240),mediaType:t.msg.mediaType??null,mediaPath:t.msg.mediaPath??null},`inbound web message`);let g=t.msg.chatType===`group`?n:t.msg.from,_=t.msg.mediaType?`, ${t.msg.mediaType}`:``;S.info(`Inbound message ${g} -> ${t.msg.to} (${t.msg.chatType}${_}, ${d.length} chars)`),i.B()&&S.debug(`Inbound body: ${$(d,400)}`);let v=t.msg.chatType===`group`?void 0:t.msg.senderE164?i.h(t.msg.senderE164):t.msg.from.includes(`@`)?i.m(t.msg.from):i.h(t.msg.from),y=t.maxMediaTextChunkLimit??c.h(t.cfg,`whatsapp`),x=c.m(t.cfg,`whatsapp`,t.route.accountId),ee=c.s({cfg:t.cfg,channel:`whatsapp`,accountId:t.route.accountId}),w=s.t(t.cfg,t.route.agentId),T=!1,E=!1,D=e.E(t.msg.body,t.cfg)?await Me({cfg:t.cfg,msg:t.msg}):void 0,O=t.cfg.messages?.responsePrefix,{onModelSelected:k,...A}=e.Y({cfg:t.cfg,agentId:t.route.agentId,channel:`whatsapp`,accountId:t.route.accountId}),j=t.msg.chatType!==`group`&&!!t.msg.selfE164&&i.h(t.msg.from)===i.h(t.msg.selfE164??``),M=A.responsePrefix??(O===void 0&&j?e.X(t.cfg,t.route.agentId):void 0),N=t.msg.chatType===`group`?(t.groupHistory??t.groupHistories.get(t.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,P=e.L({Body:d,BodyForAgent:t.msg.body,InboundHistory:N,RawBody:t.msg.body,CommandBody:t.msg.body,From:t.msg.from,To:t.msg.to,SessionKey:t.route.sessionKey,AccountId:t.route.accountId,MessageSid:t.msg.id,ReplyToId:t.msg.replyToId,ReplyToBody:t.msg.replyToBody,ReplyToSender:t.msg.replyToSender,MediaPath:t.msg.mediaPath,MediaUrl:t.msg.mediaUrl,MediaType:t.msg.mediaType,ChatType:t.msg.chatType,ConversationLabel:t.msg.chatType===`group`?n:t.msg.from,GroupSubject:t.msg.groupSubject,GroupMembers:ve({participants:t.msg.groupParticipants,roster:t.groupMemberNames.get(t.groupHistoryKey),fallbackE164:t.msg.senderE164}),SenderName:t.msg.senderName,SenderId:t.msg.senderJid?.trim()||t.msg.senderE164,SenderE164:t.msg.senderE164,CommandAuthorized:D,WasMentioned:t.msg.wasMentioned,...t.msg.location?a.Y(t.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:t.msg.from}),F=Ne({cfg:t.cfg,msg:t.msg}),I=!F||F===v,L=e.g({route:t.route,sessionKey:t.route.sessionKey});v&&L===t.route.mainSessionKey&&I?we({cfg:t.cfg,backgroundTasks:t.backgroundTasks,storeAgentId:t.route.agentId,sessionKey:t.route.mainSessionKey,channel:`whatsapp`,to:v,accountId:t.route.accountId,ctx:P,warn:t.replyLogger.warn.bind(t.replyLogger)}):v&&L===t.route.mainSessionKey&&F&&i.R(`Skipping main-session last route update for ${v} (pinned owner ${F})`);let R=r.jt({storePath:o,sessionKey:t.route.sessionKey,ctx:P}).catch(e=>{t.replyLogger.warn({error:p.n(e),storePath:o,sessionKey:t.route.sessionKey},`failed updating session meta`)});Ce(t.backgroundTasks,R);let{queuedFinal:z}=await e.b({ctx:P,cfg:t.cfg,replyResolver:t.replyResolver,dispatcherOptions:{...A,responsePrefix:M,onHeartbeatStrip:()=>{T||(T=!0,i.R(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(e,r)=>{if(r.kind!==`final`)return;await Oe({replyResult:e,msg:t.msg,mediaLocalRoots:w,maxMediaBytes:t.maxMediaBytes,textLimit:y,chunkMode:x,replyLogger:t.replyLogger,connectionId:t.connectionId,skipLog:!1,tableMode:ee}),E=!0;let a=e.text?!0:void 0;t.rememberSentText(e.text,{combinedBody:d,combinedBodySessionKey:t.route.sessionKey,logVerboseMessage:a});let o=t.msg.chatType===`group`?n:t.msg.from??`unknown`,s=!!(e.mediaUrl||e.mediaUrls?.length);if(C.info(`Auto-replied to ${o}${s?` (media)`:``}`),i.B()){let t=e.text==null?`<media>`:$(e.text,400);C.debug(`Reply body: ${t}${s?` (media)`:``}`)}},onError:(e,r)=>{let i=r.kind===`tool`?`tool update`:r.kind===`block`?`block update`:`auto-reply`;C.error(`Failed sending web ${i} to ${t.msg.from??n}: ${p.n(e)}`)},onReplyStart:t.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:k}});return z?(f&&t.groupHistories.set(t.groupHistoryKey,[]),E):(f&&t.groupHistories.set(t.groupHistoryKey,[]),i.R(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function Fe(t){let a=async(e,n,r,i)=>Pe({cfg:t.cfg,msg:e,route:n,groupHistoryKey:r,groupHistories:t.groupHistories,groupMemberNames:t.groupMemberNames,connectionId:t.connectionId,verbose:t.verbose,maxMediaBytes:t.maxMediaBytes,replyResolver:t.replyResolver,replyLogger:t.replyLogger,backgroundTasks:t.backgroundTasks,rememberSentText:t.echoTracker.rememberText,echoHas:t.echoTracker.has,echoForget:t.echoTracker.forget,buildCombinedEchoKey:t.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async o=>{let s=o.conversationId??o.from,c=Te(o),l=e.h({cfg:r.Oa(),channel:`whatsapp`,accountId:o.accountId,peer:{kind:o.chatType===`group`?`group`:`direct`,id:c}}),u=o.chatType===`group`?n.kt({channel:`whatsapp`,accountId:l.accountId,peerKind:`group`,peerId:c}):l.sessionKey;if(o.from===o.to&&i.R(`📱 Same-phone mode detected (from === to: ${o.from})`),t.echoTracker.has(o.body)){i.R(`Skipping auto-reply: detected echo (message matches recently sent text)`),t.echoTracker.forget(o.body);return}if(o.chatType===`group`){let e={From:o.from,To:o.to,SessionKey:l.sessionKey,AccountId:l.accountId,ChatType:o.chatType,ConversationLabel:s,GroupSubject:o.groupSubject,SenderName:o.senderName,SenderId:o.senderJid?.trim()||o.senderE164,SenderE164:o.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:s};if(we({cfg:t.cfg,backgroundTasks:t.backgroundTasks,storeAgentId:l.agentId,sessionKey:l.sessionKey,channel:`whatsapp`,to:s,accountId:l.accountId,ctx:e,warn:t.replyLogger.warn.bind(t.replyLogger)}),!Se({cfg:t.cfg,msg:o,conversationId:s,groupHistoryKey:u,agentId:l.agentId,sessionKey:l.sessionKey,baseMentionConfig:t.baseMentionConfig,authDir:t.account.authDir,groupHistories:t.groupHistories,groupHistoryLimit:t.groupHistoryLimit,groupMemberNames:t.groupMemberNames,logVerbose:i.R,replyLogger:t.replyLogger}).shouldProcess)return}else !o.senderE164&&c&&c.startsWith(`+`)&&(o.senderE164=i.h(c)??o.senderE164);await de({cfg:t.cfg,msg:o,peerId:c,route:l,groupHistoryKey:u,groupHistories:t.groupHistories,processMessage:a})||await a(o,l,u)}}function Ie(e){return e===440}async function Le(t,n=oe,a=!0,s=e.t,c=i.M,l,u={}){let f=b(),m=i.K({module:`web-auto-reply`,runId:f}),h=i.K({module:`web-heartbeat`,runId:f}),g=i.K({module:`web-reconnect`,runId:f}),_={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},S=()=>{u.statusSink?.({..._,lastDisconnect:_.lastDisconnect?{..._.lastDisconnect}:null})};S();let C=r.Oa(),T=r.Gn({cfg:C,accountId:u.accountId}),E={...C,channels:{...C.channels,whatsapp:{...C.channels?.whatsapp,ackReaction:T.ackReaction,messagePrefix:T.messagePrefix,allowFrom:T.allowFrom,groupAllowFrom:T.groupAllowFrom,groupPolicy:T.groupPolicy,textChunkLimit:T.textChunkLimit,chunkMode:T.chunkMode,mediaMaxMb:T.mediaMaxMb,blockStreaming:T.blockStreaming,groups:T.groups}}},D=r.Kn(T),O=v(E,u.heartbeatSeconds),k=y(E,u.reconnect),A=X(E),j=E.channels?.whatsapp?.accounts?.[u.accountId??``]?.historyLimit??E.channels?.whatsapp?.historyLimit??E.messages?.groupChat?.historyLimit??50,M=new Map,N=new Map,P=le({maxItems:100,logVerbose:i.R}),F=u.sleep??((t,n)=>e.u(t,n??l)),I=()=>l?.aborted===!0,L=l&&new Promise(e=>l.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),R=process.getMaxListeners?.()??10;process.setMaxListeners&&R<50&&process.setMaxListeners(50);let z=!1,B=()=>{z=!0};process.once(`SIGINT`,B);let V=0;for(;!I();){let f=b(),v=Date.now(),y=null,C=null,R=null,H=0,U=null,te=u.messageTimeoutMs??1800*1e3,ne=u.watchdogCheckMs??60*1e3,W=new Set,re=Fe({cfg:E,verbose:t,connectionId:f,maxMediaBytes:D,groupHistoryLimit:j,groupHistories:M,groupMemberNames:N,echoTracker:P,backgroundTasks:W,replyResolver:s??e.t,replyLogger:m,baseMentionConfig:A,account:T}),ie=e.C({cfg:E,channel:`whatsapp`}),G=await(n??oe)({verbose:t,accountId:T.accountId,authDir:T.authDir,mediaMaxMb:T.mediaMaxMb,sendReadReceipts:T.sendReadReceipts,debounceMs:ie,shouldDebounce:t=>t.mediaPath||t.mediaType||t.location||t.replyToId||t.replyToBody?!1:!e.T(t.body,E),onMessage:async e=>{H+=1,R=Date.now(),_.lastMessageAt=R,_.lastEventAt=R,S(),await re(e)}});Object.assign(_,e.c()),_.lastError=null,S();let{e164:K}=r.er(T.authDir),ae=e.h({cfg:E,channel:`whatsapp`,accountId:T.accountId});e._(`WhatsApp gateway connected${K?` as ${K}`:``}.`,{sessionKey:ae.sessionKey}),d.r(T.accountId,G),U=o.f(e=>{if(!Ee(e))return!1;let t=p.n(e);return g.warn({connectionId:f,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),G.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let q=async()=>{d.r(T.accountId,null),U&&=(U(),null),y&&clearInterval(y),C&&clearInterval(C),W.size>0&&(await Promise.allSettled(W),W.clear());try{await G.close()}catch(e){i.R(`Socket close failed: ${p.n(e)}`)}};if(a&&(y=setInterval(()=>{let e=r.Jn(T.authDir),t=R?Math.floor((Date.now()-R)/6e4):null,n={connectionId:f,reconnectAttempts:V,messagesHandled:H,lastMessageAt:R,authAgeMs:e,uptimeMs:Date.now()-v,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?h.warn(n,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):h.info(n,`web gateway heartbeat`)},O*1e3),C=setInterval(()=>{if(!R)return;let e=Date.now()-R;if(e<=te)return;let t=Math.floor(e/6e4);h.warn({connectionId:f,minutesSinceLastMessage:t,lastMessageAt:new Date(R),messagesHandled:H},`Message timeout detected - forcing reconnect`),ee.warn(`No messages received in ${t}m - restarting connection`),q().catch(e=>{i.R(`Close listener failed: ${p.n(e)}`)}),G.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ne)),x.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&x.raw(`Ctrl+C to stop.`),!a){await q(),process.removeListener(`SIGINT`,B);return}let J=await Promise.race([G.onClose?.catch(e=>(g.error({error:p.n(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??w(),L??w()]);if(Date.now()-v>O*1e3&&(V=0),_.reconnectAttempts=V,S(),I()||z||J===`aborted`){await q();break}let Y=(typeof J==`object`&&J&&`status`in J?J.status:void 0)??`unknown`,X=typeof J==`object`&&J&&`isLoggedOut`in J&&J.isLoggedOut,Z=p.n(J);if(_.connected=!1,_.lastEventAt=Date.now(),_.lastDisconnect={at:_.lastEventAt,status:typeof Y==`number`?Y:void 0,error:Z,loggedOut:!!X},_.lastError=Z,_.reconnectAttempts=V,S(),g.info({connectionId:f,status:Y,loggedOut:X,reconnectAttempts:V,error:Z},`web reconnect: connection closed`),e._(`WhatsApp gateway disconnected (status ${Y??`unknown`})`,{sessionKey:ae.sessionKey}),X){c.error(`WhatsApp session logged out. Run \`${r.ic(`openclaw channels login --channel web`)}\` to relink.`),await q();break}if(Ie(Y)){g.warn({connectionId:f,status:Y,error:Z},`web reconnect: non-retryable close status; stopping monitor`),c.error(`WhatsApp Web connection closed (status ${Y}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${r.ic(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await q();break}if(V+=1,_.reconnectAttempts=V,S(),k.maxAttempts>0&&V>=k.maxAttempts){g.warn({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),c.error(`WhatsApp Web reconnect: max attempts reached (${V}/${k.maxAttempts}). Stopping web monitoring.`),await q();break}let Q=e.l(k,V);g.info({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts||`unlimited`,delayMs:Q},`web reconnect: scheduling retry`),c.error(`WhatsApp Web connection closed (status ${Y}). Retry ${V}/${k.maxAttempts||`∞`} in ${e.v(Q)}… (${Z})`),await q();try{await F(Q,l)}catch{break}}_.running=!1,_.connected=!1,_.lastEventAt=Date.now(),S(),process.removeListener(`SIGINT`,B)}exports.WA_WEB_AUTH_DIR=r.qn,exports.createWaSocket=p.t,exports.logWebSelfId=r.Yn,exports.loginWeb=m.t,exports.monitorWebChannel=Le,exports.monitorWebInbox=oe,exports.pickWebChannel=r.Qn,exports.sendMessageWhatsApp=f.t,exports.waitForWaConnection=p.i,exports.webAuthExists=r.ir;
6
- //# sourceMappingURL=web-B7d3p3kx.cjs.map
@@ -3,4 +3,3 @@ import{C as e,D as t,E as n,H as r,L as i,O as a,Q as o,R as s,S as c,T as l,U a
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)}`)}}),f=new Map,p=300*1e3,m=r.signalRepository?.lidMapping,h=async t=>Ce(t,{authDir:e.authDir,lidLookup:m}),g=async e=>{let t=f.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 h(e.id)??e.id)??[])).filter(Boolean)??[],i={subject:t.subject,participants:n,expires:Date.now()+p};return f.set(e,i),i}catch(t){return W(`Failed to fetch group metadata for ${e}: ${String(t)}`),{expires:Date.now()+p}}},_=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=Ye(a)===!0;if(n&&rt(`${e.accountId}:${a}:${n}`))return null;let s=t.key?.participant??void 0,c=o?a:await h(a);if(!c)return null;let l=o?s?await h(s):null:c,d,f;if(o){let e=await g(a);d=e.subject,f=e.participants}let p=t.messageTimestamp?Number(t.messageTimestamp)*1e3:void 0,m=await wt({accountId:e.accountId,from:c,selfE164:u,senderE164:l,group:o,pushName:t.pushName??void 0,isFromMe:!!t.key?.fromMe,messageTimestampMs:p,connectedAtMs:i,sock:{sendMessage:(e,t)=>r.sendMessage(e,t)},remoteJid:a});return m.allowed?{id:n,remoteJid:a,group:o,participantJid:s,from:c,senderE164:l,groupSubject:d,groupParticipants:f,messageTimestampMs:p,access:m}:null},v=async t=>{let{id:n,remoteJid:i,participantJid:a,access:o}=t;if(n&&!o.isSelfChat&&e.sendReadReceipts!==!1)try{await r.readMessages([{remoteJid:i,id:n,participant:a,fromMe:!1}]),U()&&W(`Marked message ${n} as read for ${i}${a?` (participant ${a})`:``}`)}catch(e){W(`Failed to mark message ${n} read: ${String(e)}`)}else n&&o.isSelfChat&&U()&&W(`Self-chat mode: skipping read receipt for ${n}`)},y=async t=>{let n=xt(t.message??void 0),i=n?we(n):void 0,a=ft(t.message??void 0);if(i&&(a=[a,i].filter(Boolean).join(`
4
4
  `).trim()),!a&&(a=pt(t.message??void 0),!a))return null;let o=St(t.message),s,c,l;try{let n=await Dt(t,r);if(n){let t=(typeof e.mediaMaxMb==`number`&&e.mediaMaxMb>0?e.mediaMaxMb:50)*1024*1024;s=(await H(n.buffer,n.mimetype,`inbound`,t,n.fileName)).path,c=n.mimetype,l=n.fileName}}catch(e){W(`Inbound media download failed: ${String(e)}`)}return{body:a,location:n??void 0,replyContext:o,mediaPath:s,mediaType:c,mediaFileName:l}},b=async(e,i,a)=>{let o=i.remoteJid,s=async()=>{try{await r.sendPresenceUpdate(`composing`,o)}catch(e){W(`Presence update failed: ${String(e)}`)}},c=async e=>{await r.sendMessage(o,{text:e})},f=async e=>{await r.sendMessage(o,e)},p=i.messageTimestampMs,m=dt(e.message),h=e.pushName??void 0;t.info({from:i.from,to:u??`me`,body:a.body,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName,timestamp:p},`inbound message`);let g={id:i.id,from:i.from,conversationId:i.from,to:u??`me`,accountId:i.access.resolvedAccountId,body:a.body,pushName:h,timestamp:p,chatType:i.group?`group`:`direct`,chatId:i.remoteJid,senderJid:i.participantJid,senderE164:i.senderE164??void 0,senderName:h,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:m??void 0,selfJid:l,selfE164:u,fromMe:!!e.key?.fromMe,location:a.location??void 0,sendComposing:s,reply:c,sendMedia:f,mediaPath:a.mediaPath,mediaType:a.mediaType,mediaFileName:a.mediaFileName};try{Promise.resolve(d.enqueue(g)).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)}`)}},x=async t=>{if(!(t.type!==`notify`&&t.type!==`append`))for(let n of t.messages??[]){Pe({channel:`whatsapp`,accountId:e.accountId,direction:`inbound`});let r=await _(n);if(!r||(await v(r),t.type===`append`))continue;let i=await y(n);i&&await b(n,r,i)}};r.ev.on(`messages.upsert`,x);let S=e=>{try{if(e.connection===`close`){let t=Ve(e.lastDisconnect?.error);s({status:t,isLoggedOut:t===Ge.loggedOut,error:e.lastDisconnect?.error})}}catch(e){t.error({error:String(e)},`connection.update handler error`),s({status:void 0,isLoggedOut:!1,error:e})}};return r.ev.on(`connection.update`,S),{close:async()=>{try{let e=r.ev,t=x,n=S;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){W(`Socket close failed: ${String(e)}`)}},onClose:o,signalClose:e=>{s(e??{status:void 0,isLoggedOut:!1,error:`closed`})},...At({sock:{sendMessage:(e,t)=>r.sendMessage(e,t),sendPresenceUpdate:(e,t)=>r.sendPresenceUpdate(e,t)},defaultAccountId:e.accountId})}}function Mt(e,n){return{mentionRegexes:t(e,n),allowFrom:e.channels?.whatsapp?.allowFrom}}function Nt(e,t){let n=t?{authDir:t}:void 0;return{normalizedMentions:e.mentionedJids?.length?e.mentionedJids.map(e=>q(e,n)??e).filter(Boolean):[],selfE164:e.selfE164??(e.selfJid?q(e.selfJid,n):null),selfJid:e.selfJid?e.selfJid.replace(/:\\d+/,``):null}}function Pt(e,t,n){let r=e=>a(e),i=Se(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 o=r(e.body);if(t.mentionRegexes.some(e=>e.test(o)))return!0;if(n.selfE164){let t=n.selfE164.replace(/\D/g,``);if(t){if(o.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 Ft(e,t,n){let r=Nt(e,n);return{wasMentioned:Pt(e,t,r),details:{from:e.from,body:e.body,bodyClean:a(e.body),mentionedJids:e.mentionedJids??null,normalizedMentionedJids:r.normalizedMentions.length?r.normalizedMentions:null,selfJid:e.selfJid??null,selfJidBare:r.selfJid,selfE164:e.selfE164??null,resolvedSelfE164:r.selfE164}}}function It(e,t){let n=e.allowFrom;return(Array.isArray(n)&&n.length>0?n:t?[t]:[]).filter(e=>!!(e&&e!==`*`)).map(e=>K(e)).filter(e=>!!e)}function Lt(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 Rt(e){let t=re({agentId:e.agentId,channel:`whatsapp`,accountId:e.route.accountId,peer:{kind:e.msg.chatType===`group`?`group`:`direct`,id:e.peerId},dmScope:e.cfg.session?.dmScope,identityLinks:e.cfg.session?.identityLinks}),n=A({agentId:e.agentId,mainKey:j});return{sessionKey:t,mainSessionKey:n,lastRoutePolicy:ne({sessionKey:t,mainSessionKey:n})}}async function zt(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`;Z.info(`Broadcasting message to ${t.length} agents (${n})`);let r=e.cfg.agents?.list?.map(e=>M(e.id)),i=(r?.length??0)>0,a=e.msg.chatType===`group`?e.groupHistories.get(e.groupHistoryKey)??[]:void 0,o=async t=>{let n=M(t);if(i&&!r?.includes(n))return Z.warn(`Broadcast agent ${t} not found in agents.list; skipping`),!1;let o=Rt({cfg:e.cfg,msg:e.msg,route:e.route,peerId:e.peerId,agentId:n}),s={...e.route,agentId:n,...o};try{return await e.processMessage(e.msg,s,e.groupHistoryKey,{groupHistory:a,suppressGroupHistoryClear:!0})}catch(e){return Z.error(`Broadcast agent ${t} failed: ${J(e)}`),!1}};if(n===`sequential`)for(let e of t)await o(e);else await Promise.allSettled(t.map(o));return e.msg.chatType===`group`&&e.groupHistories.set(e.groupHistoryKey,[]),!0}function Bt(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 Vt(e,t){let n=me({From:t,ChatType:`group`,Provider:`whatsapp`})?.id,r=e.channels?.whatsapp,i=!!(r?.groupAllowFrom?.length||r?.allowFrom?.length);return B({cfg:e,channel:`whatsapp`,groupId:n??t,hasGroupAllowFrom:i})}function Ht(e,t){let n=me({From:t,ChatType:`group`,Provider:`whatsapp`})?.id;return z({cfg:e,channel:`whatsapp`,groupId:n??t})}function Ut(e){let t=pe(N(e.cfg.session?.store,{agentId:e.agentId}))[e.sessionKey],n=Ht(e.cfg,e.conversationId)?`mention`:`always`;return C(t?.groupActivation)??n}function Wt(e,t,n){for(let r of e){let e=K(r)??r;!e||t.has(e)||(t.add(e),n.push(e))}}function Gt(e,t,n,r){if(!n||!r)return;let i=K(n)??n;if(!i)return;let a=e.get(t);a||(a=new Map,e.set(t,a)),a.set(i,r)}function Kt(e){let{participants:t,roster:n,fallbackE164:r}=e,i=new Set,a=[];if(t?.length&&Wt(t,i,a),n&&Wt(n.keys(),i,a),a.length===0&&r){let e=K(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 qt(e,t){let n=K(t.senderE164??``);return n?It(e,t.selfE164??void 0).includes(n):!1}function Jt(e){let t=e.msg.senderName&&e.msg.senderE164?`${e.msg.senderName} (${e.msg.senderE164})`:e.msg.senderName??e.msg.senderE164??`Unknown`;x({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 Yt(e,t){return e.logVerbose(t),Jt({msg:e.msg,groupHistories:e.groupHistories,groupHistoryKey:e.groupHistoryKey,groupHistoryLimit:e.groupHistoryLimit}),{shouldProcess:!1}}function Xt(e){let t=Vt(e.cfg,e.conversationId);if(t.allowlistEnabled&&!t.allowed)return e.logVerbose(`Skipping group message ${e.conversationId} (not in allowlist)`),{shouldProcess:!1};Gt(e.groupMemberNames,e.groupHistoryKey,e.msg.senderE164,e.msg.senderName);let n=Mt(e.cfg,e.agentId),r=Bt(e.msg.body,n.mentionRegexes,e.msg.selfE164),i=_(r),a=qt(e.baseMentionConfig,e.msg),s=a&&l(r,e.cfg);if(i.hasCommand&&!a)return Yt(e,`Ignoring /activation from non-owner in group ${e.conversationId}`);let c=Ft(e.msg,n,e.authDir);e.replyLogger.debug({conversationId:e.conversationId,wasMentioned:c.wasMentioned,...c.details},`group mention debug`);let u=c.wasMentioned,d=Ut({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?K(e.msg.selfE164):null,h=e.msg.replyToSenderE164?K(e.msg.replyToSenderE164):null,g=o({requireMention:d,canDetectMention:!0,wasMentioned:u,implicitMention:!!(f&&p&&f===p||m&&h&&m===h),shouldBypassMention:s});return e.msg.wasMentioned=g.effectiveWasMentioned,!s&&d&&g.shouldSkip?Yt(e,`Group message stored for context (no mention detected) in ${e.conversationId}: ${e.msg.body}`):{shouldProcess:!0}}function Zt(e,t){e.add(t),t.finally(()=>{e.delete(t)})}function Qt(e){let t=N(e.cfg.session?.store,{agentId:e.storeAgentId}),n=I({storePath:t,sessionKey:e.sessionKey,deliveryContext:{channel:e.channel,to:e.to,accountId:e.accountId},ctx:e.ctx}).catch(n=>{e.warn({error:J(n),storePath:t,sessionKey:e.sessionKey,to:e.to},`failed updating last route`)});Zt(e.backgroundTasks,n)}function $t(e){return e.chatType===`group`?e.conversationId??e.from:e.senderE164?K(e.senderE164)??e.senderE164:e.from.includes(`@`)?q(e.from)??e.from:K(e.from)??e.from}function en(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:a,connectionId:o,skipLog:s}=e,c=Date.now();if(nn(t)){Q.debug(`Suppressed reasoning payload to ${n.from}`);return}let l=e.tableMode??`code`,u=e.chunkMode??`length`,d=Ae(Le(Fe(t.text||``,l)),i,u),f=t.mediaUrls?.length?t.mediaUrls:t.mediaUrl?[t.mediaUrl]:[],p=async(e,t,r=3)=>{let i;for(let a=1;a<=r;a++)try{return await e()}catch(e){i=e;let o=J(e),s=a===r;if(!/closed|reset|timed\s*out|disconnect/i.test(o)||s)throw e;let c=500*a;W(`Retrying ${t} to ${n.from} after failure (${a}/${r-1}) in ${c}ms: ${o}`),await _e(c)}throw i};if(f.length===0&&d.length){let e=d.length;for(let[t,r]of d.entries()){let i=Date.now();if(await p(()=>n.reply(r),`text`),!s){let r=Date.now()-i;Q.debug(`Sent chunk ${t+1}/${e} to ${n.from} (${r.toFixed(0)}ms)`)}}a.info({correlationId:n.id??Y(),connectionId:o??null,to:n.from,from:n.to,text:en(t.text,240),mediaUrl:null,mediaSizeBytes:null,mediaKind:null,durationMs:Date.now()-c},`auto-reply sent (text)`);return}let m=[...d];for(let[t,i]of f.entries()){let s=t===0&&m.shift()||void 0;try{let t=await ke(i,{maxBytes:r,localRoots:e.mediaLocalRoots});if(U()&&(W(`Web auto-reply media size: ${(t.buffer.length/(1024*1024)).toFixed(2)}MB`),W(`Web auto-reply media source: ${i} (kind ${t.kind})`)),t.kind===`image`)await p(()=>n.sendMedia({image:t.buffer,caption:s,mimetype:t.contentType}),`media:image`);else if(t.kind===`audio`)await p(()=>n.sendMedia({audio:t.buffer,ptt:!0,mimetype:t.contentType,caption:s}),`media:audio`);else if(t.kind===`video`)await p(()=>n.sendMedia({video:t.buffer,caption:s,mimetype:t.contentType}),`media:video`);else{let e=t.fileName??i.split(`/`).pop()??`file`,r=t.contentType??`application/octet-stream`;await p(()=>n.sendMedia({document:t.buffer,fileName:e,caption:s,mimetype:r}),`media:document`)}Q.info(`Sent media reply to ${n.from} (${(t.buffer.length/(1024*1024)).toFixed(2)}MB)`),a.info({correlationId:n.id??Y(),connectionId:o??null,to:n.from,from:n.to,text:s??null,mediaUrl:i,mediaSizeBytes:t.buffer.length,mediaKind:t.kind,durationMs:Date.now()-c},`auto-reply sent (media)`)}catch(e){if(Q.error(`Failed sending web media to ${n.from}: ${J(e)}`),a.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=[m.shift()??s??``,t].filter(Boolean).join(`
5
5
  `);r&&(Q.warn(`Media skipped; sent text-only to ${n.from}`),await n.reply(r))}}}for(let e of m)await n.reply(e)}function an(e){if(!e.msg.id)return;let t=e.cfg.channels?.whatsapp?.ackReaction,n=(t?.emoji??``).trim(),r=t?.direct??!0,i=t?.group??`mentions`,a=e.msg.conversationId??e.msg.from,o=e.msg.chatType===`group`?Ut({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:a}):null;se({emoji:n,isDirect:e.msg.chatType===`direct`,isGroup:e.msg.chatType===`group`,directEnabled:r,groupMode:i,wasMentioned:e.msg.wasMentioned===!0,groupActivated:o===`always`})&&(e.info({chatId:e.msg.chatId,messageId:e.msg.id,emoji:n},`sending ack reaction`),Re(e.msg.chatId,e.msg.id,n,{verbose:e.verbose,fromMe:!1,participant:e.msg.senderJid,accountId:e.accountId}).catch(t=>{e.warn({error:J(t),chatId:e.msg.chatId,messageId:e.msg.id},`failed to send ack reaction`),W(`WhatsApp ack reaction failed for chat ${e.msg.chatId}: ${J(t)}`)}))}function on(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function sn(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=h(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=on(n),l=`${s}${n.body}${c?`\n\n${c}`:``}`;return oe({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:l,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function cn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,i=K(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!i)return!1;let a=L({cfg:e.cfg,accountId:e.msg.accountId}),o=a.dmPolicy??`pairing`,s=a.groupPolicy??`allowlist`,c=a.allowFrom??[],l=a.groupAllowFrom??(c.length>0?c:void 0),u=n?[]:await d({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:o});return r({isGroup:n,dmPolicy:o,groupPolicy:s,allowFrom:c.length>0?c:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:l,storeAllowFrom:u,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>K(String(e))).filter(e=>!!e).includes(i),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function ln(e){let t=L({cfg:e.cfg,accountId:e.msg.accountId});return f({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>K(e)})}async function un(e){let t=e.msg.conversationId??e.msg.from,{storePath:r,envelopeOptions:a,previousTimestamp:o}=ie({cfg:e.cfg,agentId:e.route.agentId,sessionKey:e.route.sessionKey}),s=sn({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,previousTimestamp:o,envelope:a}),c=!1;if(e.msg.chatType===`group`){let n=e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[];n.length>0&&(s=b({entries:n.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:s,excludeLast:!1,formatEntry:e=>oe({channel:`WhatsApp`,from:t,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:a})})),c=!(e.suppressGroupHistoryClear??!1)}let l=e.buildCombinedEchoKey({sessionKey:e.route.sessionKey,combinedBody:s});if(e.echoHas(l))return W(`Skipping auto-reply: detected echo for combined message`),e.echoForget(l),!1;an({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,sessionKey:e.route.sessionKey,conversationId:t,verbose:e.verbose,accountId:e.route.accountId,info:e.replyLogger.info.bind(e.replyLogger),warn:e.replyLogger.warn.bind(e.replyLogger)});let u=e.msg.id??Y();e.replyLogger.info({connectionId:e.connectionId,correlationId:u,from:e.msg.chatType===`group`?t:e.msg.from,to:e.msg.to,body:en(s,240),mediaType:e.msg.mediaType??null,mediaPath:e.msg.mediaPath??null},`inbound web message`);let d=e.msg.chatType===`group`?t:e.msg.from,f=e.msg.mediaType?`, ${e.msg.mediaType}`:``;Z.info(`Inbound message ${d} -> ${e.msg.to} (${e.msg.chatType}${f}, ${s.length} chars)`),U()&&Z.debug(`Inbound body: ${en(s,400)}`);let h=e.msg.chatType===`group`?void 0:e.msg.senderE164?K(e.msg.senderE164):e.msg.from.includes(`@`)?q(e.msg.from):K(e.msg.from),g=e.maxMediaTextChunkLimit??je(e.cfg,`whatsapp`),_=Me(e.cfg,`whatsapp`,e.route.accountId),y=Ne({cfg:e.cfg,channel:`whatsapp`,accountId:e.route.accountId}),x=Oe(e.cfg,e.route.agentId),ee=!1,C=!1,te=n(e.msg.body,e.cfg)?await cn({cfg:e.cfg,msg:e.msg}):void 0,ne=e.cfg.messages?.responsePrefix,{onModelSelected:re,...w}=m({cfg:e.cfg,agentId:e.route.agentId,channel:`whatsapp`,accountId:e.route.accountId}),T=e.msg.chatType!==`group`&&!!e.msg.selfE164&&K(e.msg.from)===K(e.msg.selfE164??``),ae=w.responsePrefix??(ne===void 0&&T?p(e.cfg,e.route.agentId):void 0),se=e.msg.chatType===`group`?(e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,E=i({Body:s,BodyForAgent:e.msg.body,InboundHistory:se,RawBody:e.msg.body,CommandBody:e.msg.body,From:e.msg.from,To:e.msg.to,SessionKey:e.route.sessionKey,AccountId:e.route.accountId,MessageSid:e.msg.id,ReplyToId:e.msg.replyToId,ReplyToBody:e.msg.replyToBody,ReplyToSender:e.msg.replyToSender,MediaPath:e.msg.mediaPath,MediaUrl:e.msg.mediaUrl,MediaType:e.msg.mediaType,ChatType:e.msg.chatType,ConversationLabel:e.msg.chatType===`group`?t:e.msg.from,GroupSubject:e.msg.groupSubject,GroupMembers:Kt({participants:e.msg.groupParticipants,roster:e.groupMemberNames.get(e.groupHistoryKey),fallbackE164:e.msg.senderE164}),SenderName:e.msg.senderName,SenderId:e.msg.senderJid?.trim()||e.msg.senderE164,SenderE164:e.msg.senderE164,CommandAuthorized:te,WasMentioned:e.msg.wasMentioned,...e.msg.location?Te(e.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:e.msg.from}),D=ln({cfg:e.cfg,msg:e.msg}),O=!D||D===h,k=S({route:e.route,sessionKey:e.route.sessionKey});h&&k===e.route.mainSessionKey&&O?Qt({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:e.route.agentId,sessionKey:e.route.mainSessionKey,channel:`whatsapp`,to:h,accountId:e.route.accountId,ctx:E,warn:e.replyLogger.warn.bind(e.replyLogger)}):h&&k===e.route.mainSessionKey&&D&&W(`Skipping main-session last route update for ${h} (pinned owner ${D})`);let A=ue({storePath:r,sessionKey:e.route.sessionKey,ctx:E}).catch(t=>{e.replyLogger.warn({error:J(t),storePath:r,sessionKey:e.route.sessionKey},`failed updating session meta`)});Zt(e.backgroundTasks,A);let{queuedFinal:j}=await v({ctx:E,cfg:e.cfg,replyResolver:e.replyResolver,dispatcherOptions:{...w,responsePrefix:ae,onHeartbeatStrip:()=>{ee||(ee=!0,W(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(n,r)=>{if(r.kind!==`final`)return;await rn({replyResult:n,msg:e.msg,mediaLocalRoots:x,maxMediaBytes:e.maxMediaBytes,textLimit:g,chunkMode:_,replyLogger:e.replyLogger,connectionId:e.connectionId,skipLog:!1,tableMode:y}),C=!0;let i=n.text?!0:void 0;e.rememberSentText(n.text,{combinedBody:s,combinedBodySessionKey:e.route.sessionKey,logVerboseMessage:i});let a=e.msg.chatType===`group`?t:e.msg.from??`unknown`,o=!!(n.mediaUrl||n.mediaUrls?.length);if(Q.info(`Auto-replied to ${a}${o?` (media)`:``}`),U()){let e=n.text==null?`<media>`:en(n.text,400);Q.debug(`Reply body: ${e}${o?` (media)`:``}`)}},onError:(n,r)=>{let i=r.kind===`tool`?`tool update`:r.kind===`block`?`block update`:`auto-reply`;Q.error(`Failed sending web ${i} to ${e.msg.from??t}: ${J(n)}`)},onReplyStart:e.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:re}});return j?(c&&e.groupHistories.set(e.groupHistoryKey,[]),C):(c&&e.groupHistories.set(e.groupHistoryKey,[]),W(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function dn(e){let t=async(t,n,r,i)=>un({cfg:e.cfg,msg:t,route:n,groupHistoryKey:r,groupHistories:e.groupHistories,groupMemberNames:e.groupMemberNames,connectionId:e.connectionId,verbose:e.verbose,maxMediaBytes:e.maxMediaBytes,replyResolver:e.replyResolver,replyLogger:e.replyLogger,backgroundTasks:e.backgroundTasks,rememberSentText:e.echoTracker.rememberText,echoHas:e.echoTracker.has,echoForget:e.echoTracker.forget,buildCombinedEchoKey:e.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async n=>{let r=n.conversationId??n.from,i=$t(n),a=ee({cfg:P(),channel:`whatsapp`,accountId:n.accountId,peer:{kind:n.chatType===`group`?`group`:`direct`,id:i}}),o=n.chatType===`group`?ce({channel:`whatsapp`,accountId:a.accountId,peerKind:`group`,peerId:i}):a.sessionKey;if(n.from===n.to&&W(`📱 Same-phone mode detected (from === to: ${n.from})`),e.echoTracker.has(n.body)){W(`Skipping auto-reply: detected echo (message matches recently sent text)`),e.echoTracker.forget(n.body);return}if(n.chatType===`group`){let t={From:n.from,To:n.to,SessionKey:a.sessionKey,AccountId:a.accountId,ChatType:n.chatType,ConversationLabel:r,GroupSubject:n.groupSubject,SenderName:n.senderName,SenderId:n.senderJid?.trim()||n.senderE164,SenderE164:n.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:r};if(Qt({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:a.agentId,sessionKey:a.sessionKey,channel:`whatsapp`,to:r,accountId:a.accountId,ctx:t,warn:e.replyLogger.warn.bind(e.replyLogger)}),!Xt({cfg:e.cfg,msg:n,conversationId:r,groupHistoryKey:o,agentId:a.agentId,sessionKey:a.sessionKey,baseMentionConfig:e.baseMentionConfig,authDir:e.account.authDir,groupHistories:e.groupHistories,groupHistoryLimit:e.groupHistoryLimit,groupMemberNames:e.groupMemberNames,logVerbose:W,replyLogger:e.replyLogger}).shouldProcess)return}else !n.senderE164&&i&&i.startsWith(`+`)&&(n.senderE164=K(i)??n.senderE164);await zt({cfg:e.cfg,msg:n,peerId:i,route:a,groupHistoryKey:o,groupHistories:e.groupHistories,processMessage:t})||await t(n,a,o)}}function fn(e){return e===440}async function pn(t,n=jt,r=!0,i=w,a=ye,o,s={}){let c=Y(),u=ve({module:`web-auto-reply`,runId:c}),d=ve({module:`web-heartbeat`,runId:c}),f=ve({module:`web-reconnect`,runId:c}),p={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},m=()=>{s.statusSink?.({...p,lastDisconnect:p.lastDisconnect?{...p.lastDisconnect}:null})};m();let h=P(),_=L({cfg:h,accountId:s.accountId}),v={...h,channels:{...h.channels,whatsapp:{...h.channels?.whatsapp,ackReaction:_.ackReaction,messagePrefix:_.messagePrefix,allowFrom:_.allowFrom,groupAllowFrom:_.groupAllowFrom,groupPolicy:_.groupPolicy,textChunkLimit:_.textChunkLimit,chunkMode:_.chunkMode,mediaMaxMb:_.mediaMaxMb,blockStreaming:_.blockStreaming,groups:_.groups}}},b=F(_),x=Qe(v,s.heartbeatSeconds),S=$e(v,s.reconnect),C=Mt(v),ne=v.channels?.whatsapp?.accounts?.[s.accountId??``]?.historyLimit??v.channels?.whatsapp?.historyLimit??v.messages?.groupChat?.historyLimit??50,re=new Map,ie=new Map,oe=Lt({maxItems:100,logVerbose:W}),se=s.sleep??((e,t)=>T(e,t??o)),E=()=>o?.aborted===!0,D=o&&new Promise(e=>o.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),O=process.getMaxListeners?.()??10;process.setMaxListeners&&O<50&&process.setMaxListeners(50);let k=!1,A=()=>{k=!0};process.once(`SIGINT`,A);let j=0;for(;!E();){let c=Y(),h=Date.now(),T=null,O=null,M=null,ce=0,N=null,ue=s.messageTimeoutMs??1800*1e3,P=s.watchdogCheckMs??60*1e3,F=new Set,de=dn({cfg:v,verbose:t,connectionId:c,maxMediaBytes:b,groupHistoryLimit:ne,groupHistories:re,groupMemberNames:ie,echoTracker:oe,backgroundTasks:F,replyResolver:i??w,replyLogger:u,baseMentionConfig:C,account:_}),fe=e({cfg:v,channel:`whatsapp`}),I=await(n??jt)({verbose:t,accountId:_.accountId,authDir:_.authDir,mediaMaxMb:_.mediaMaxMb,sendReadReceipts:_.sendReadReceipts,debounceMs:fe,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!l(e.body,v),onMessage:async e=>{ce+=1,M=Date.now(),p.lastMessageAt=M,p.lastEventAt=M,m(),await de(e)}});Object.assign(p,y()),p.lastError=null,m();let{e164:pe}=le(_.authDir),me=ee({cfg:v,channel:`whatsapp`,accountId:_.accountId});g(`WhatsApp gateway connected${pe?` as ${pe}`:``}.`,{sessionKey:me.sessionKey}),Ie(_.accountId,I),N=De(e=>{if(!tn(e))return!1;let t=J(e);return f.warn({connectionId:c,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),I.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let L=async()=>{Ie(_.accountId,null),N&&=(N(),null),T&&clearInterval(T),O&&clearInterval(O),F.size>0&&(await Promise.allSettled(F),F.clear());try{await I.close()}catch(e){W(`Socket close failed: ${J(e)}`)}};if(r&&(T=setInterval(()=>{let e=ge(_.authDir),t=M?Math.floor((Date.now()-M)/6e4):null,n={connectionId:c,reconnectAttempts:j,messagesHandled:ce,lastMessageAt:M,authAgeMs:e,uptimeMs:Date.now()-h,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?d.warn(n,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):d.info(n,`web gateway heartbeat`)},x*1e3),O=setInterval(()=>{if(!M)return;let e=Date.now()-M;if(e<=ue)return;let t=Math.floor(e/6e4);d.warn({connectionId:c,minutesSinceLastMessage:t,lastMessageAt:new Date(M),messagesHandled:ce},`Message timeout detected - forcing reconnect`),et.warn(`No messages received in ${t}m - restarting connection`),L().catch(e=>{W(`Close listener failed: ${J(e)}`)}),I.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},P)),X.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&X.raw(`Ctrl+C to stop.`),!r){await L(),process.removeListener(`SIGINT`,A);return}let R=await Promise.race([I.onClose?.catch(e=>(f.error({error:J(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??tt(),D??tt()]);if(Date.now()-h>x*1e3&&(j=0),p.reconnectAttempts=j,m(),E()||k||R===`aborted`){await L();break}let z=(typeof R==`object`&&R&&`status`in R?R.status:void 0)??`unknown`,B=typeof R==`object`&&R&&`isLoggedOut`in R&&R.isLoggedOut,V=J(R);if(p.connected=!1,p.lastEventAt=Date.now(),p.lastDisconnect={at:p.lastEventAt,status:typeof z==`number`?z:void 0,error:V,loggedOut:!!B},p.lastError=V,p.reconnectAttempts=j,m(),f.info({connectionId:c,status:z,loggedOut:B,reconnectAttempts:j,error:V},`web reconnect: connection closed`),g(`WhatsApp gateway disconnected (status ${z??`unknown`})`,{sessionKey:me.sessionKey}),B){a.error(`WhatsApp session logged out. Run \`${he(`openclaw channels login --channel web`)}\` to relink.`),await L();break}if(fn(z)){f.warn({connectionId:c,status:z,error:V},`web reconnect: non-retryable close status; stopping monitor`),a.error(`WhatsApp Web connection closed (status ${z}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${he(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await L();break}if(j+=1,p.reconnectAttempts=j,m(),S.maxAttempts>0&&j>=S.maxAttempts){f.warn({connectionId:c,status:z,reconnectAttempts:j,maxAttempts:S.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),a.error(`WhatsApp Web reconnect: max attempts reached (${j}/${S.maxAttempts}). Stopping web monitoring.`),await L();break}let H=te(S,j);f.info({connectionId:c,status:z,reconnectAttempts:j,maxAttempts:S.maxAttempts||`unlimited`,delayMs:H},`web reconnect: scheduling retry`),a.error(`WhatsApp Web connection closed (status ${z}). Retry ${j}/${S.maxAttempts||`∞`} in ${ae(H)}… (${V})`),await L();try{await se(H,o)}catch{break}}p.running=!1,p.connected=!1,p.lastEventAt=Date.now(),m(),process.removeListener(`SIGINT`,A)}export{fe as WA_WEB_AUTH_DIR,He as createWaSocket,de as logWebSelfId,Ue as loginWeb,pn as monitorWebChannel,jt as monitorWebInbox,R as pickWebChannel,ze as sendMessageWhatsApp,Be as waitForWaConnection,V as webAuthExists};
6
- //# sourceMappingURL=web-BEuW8Yqw.js.map
@@ -3,4 +3,3 @@ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=requir
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(`
5
5
  `);n&&(C.warn(`Media skipped; sent text-only to ${r.from}`),await r.reply(n))}}}for(let e of y)await r.reply(e)}function ke(e){if(!e.msg.id)return;let n=e.cfg.channels?.whatsapp?.ackReaction,i=(n?.emoji??``).trim(),a=n?.direct??!0,o=n?.group??`mentions`,s=e.msg.conversationId??e.msg.from,c=e.msg.chatType===`group`?he({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:s}):null;r.S({emoji:i,isDirect:e.msg.chatType===`direct`,isGroup:e.msg.chatType===`group`,directEnabled:a,groupMode:o,wasMentioned:e.msg.wasMentioned===!0,groupActivated:c===`always`})&&(e.info({chatId:e.msg.chatId,messageId:e.msg.id,emoji:i},`sending ack reaction`),f.r(e.msg.chatId,e.msg.id,i,{verbose:e.verbose,fromMe:!1,participant:e.msg.senderJid,accountId:e.accountId}).catch(n=>{e.warn({error:p.n(n),chatId:e.msg.chatId,messageId:e.msg.id},`failed to send ack reaction`),t.R(`WhatsApp ack reaction failed for chat ${e.msg.chatId}: ${p.n(n)}`)}))}function Ae(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function je(e){let{cfg:t,msg:n,agentId:i,previousTimestamp:a,envelope:o}=e,s=r.Z(t,i,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),c=s?`${s} `:``,l=Ae(n),u=`${c}${n.body}${l?`\n\n${l}`:``}`;return r.D({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:u,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:a,envelope:o,fromMe:n.fromMe})}async function Me(e){let i=e.cfg.commands?.useAccessGroups!==!1;if(!i)return!0;let a=e.msg.chatType===`group`,o=t.d(a?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!o)return!1;let s=n.zs({cfg:e.cfg,accountId:e.msg.accountId}),c=s.dmPolicy??`pairing`,l=s.groupPolicy??`allowlist`,u=s.allowFrom??[],d=s.groupAllowFrom??(u.length>0?u:void 0),f=a?[]:await r.U({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:c});return r.W({isGroup:a,dmPolicy:c,groupPolicy:l,allowFrom:u.length>0?u:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:d,storeAllowFrom:f,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>t.d(String(e))).filter(e=>!!e).includes(o),command:{useAccessGroups:i,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function Ne(e){let i=n.zs({cfg:e.cfg,accountId:e.msg.accountId});return r.K({dmScope:e.cfg.session?.dmScope,allowFrom:i.allowFrom,normalizeEntry:e=>t.d(e)})}async function Pe(e){let a=e.msg.conversationId??e.msg.from,{storePath:o,envelopeOptions:l,previousTimestamp:u}=r.l({cfg:e.cfg,agentId:e.route.agentId,sessionKey:e.route.sessionKey}),d=je({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,previousTimestamp:u,envelope:l}),f=!1;if(e.msg.chatType===`group`){let t=e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[];t.length>0&&(d=r.m({entries:t.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:d,excludeLast:!1,formatEntry:e=>r.D({channel:`WhatsApp`,from:a,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:l})})),f=!(e.suppressGroupHistoryClear??!1)}let m=e.buildCombinedEchoKey({sessionKey:e.route.sessionKey,combinedBody:d});if(e.echoHas(m))return t.R(`Skipping auto-reply: detected echo for combined message`),e.echoForget(m),!1;ke({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,sessionKey:e.route.sessionKey,conversationId:a,verbose:e.verbose,accountId:e.route.accountId,info:e.replyLogger.info.bind(e.replyLogger),warn:e.replyLogger.warn.bind(e.replyLogger)});let h=e.msg.id??b();e.replyLogger.info({connectionId:e.connectionId,correlationId:h,from:e.msg.chatType===`group`?a:e.msg.from,to:e.msg.to,body:$(d,240),mediaType:e.msg.mediaType??null,mediaPath:e.msg.mediaPath??null},`inbound web message`);let g=e.msg.chatType===`group`?a:e.msg.from,_=e.msg.mediaType?`, ${e.msg.mediaType}`:``;S.info(`Inbound message ${g} -> ${e.msg.to} (${e.msg.chatType}${_}, ${d.length} chars)`),t.B()&&S.debug(`Inbound body: ${$(d,400)}`);let v=e.msg.chatType===`group`?void 0:e.msg.senderE164?t.d(e.msg.senderE164):e.msg.from.includes(`@`)?t.u(e.msg.from):t.d(e.msg.from),y=e.maxMediaTextChunkLimit??c.h(e.cfg,`whatsapp`),x=c.m(e.cfg,`whatsapp`,e.route.accountId),ee=c.s({cfg:e.cfg,channel:`whatsapp`,accountId:e.route.accountId}),w=s.t(e.cfg,e.route.agentId),T=!1,E=!1,D=r.k(e.msg.body,e.cfg)?await Me({cfg:e.cfg,msg:e.msg}):void 0,O=e.cfg.messages?.responsePrefix,{onModelSelected:k,...A}=r.Y({cfg:e.cfg,agentId:e.route.agentId,channel:`whatsapp`,accountId:e.route.accountId}),j=e.msg.chatType!==`group`&&!!e.msg.selfE164&&t.d(e.msg.from)===t.d(e.msg.selfE164??``),M=A.responsePrefix??(O===void 0&&j?r.X(e.cfg,e.route.agentId):void 0),N=e.msg.chatType===`group`?(e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,P=r.V({Body:d,BodyForAgent:e.msg.body,InboundHistory:N,RawBody:e.msg.body,CommandBody:e.msg.body,From:e.msg.from,To:e.msg.to,SessionKey:e.route.sessionKey,AccountId:e.route.accountId,MessageSid:e.msg.id,ReplyToId:e.msg.replyToId,ReplyToBody:e.msg.replyToBody,ReplyToSender:e.msg.replyToSender,MediaPath:e.msg.mediaPath,MediaUrl:e.msg.mediaUrl,MediaType:e.msg.mediaType,ChatType:e.msg.chatType,ConversationLabel:e.msg.chatType===`group`?a:e.msg.from,GroupSubject:e.msg.groupSubject,GroupMembers:ve({participants:e.msg.groupParticipants,roster:e.groupMemberNames.get(e.groupHistoryKey),fallbackE164:e.msg.senderE164}),SenderName:e.msg.senderName,SenderId:e.msg.senderJid?.trim()||e.msg.senderE164,SenderE164:e.msg.senderE164,CommandAuthorized:D,WasMentioned:e.msg.wasMentioned,...e.msg.location?i.lt(e.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:e.msg.from}),F=Ne({cfg:e.cfg,msg:e.msg}),I=!F||F===v,L=r.y({route:e.route,sessionKey:e.route.sessionKey});v&&L===e.route.mainSessionKey&&I?we({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:e.route.agentId,sessionKey:e.route.mainSessionKey,channel:`whatsapp`,to:v,accountId:e.route.accountId,ctx:P,warn:e.replyLogger.warn.bind(e.replyLogger)}):v&&L===e.route.mainSessionKey&&F&&t.R(`Skipping main-session last route update for ${v} (pinned owner ${F})`);let R=n.Et({storePath:o,sessionKey:e.route.sessionKey,ctx:P}).catch(t=>{e.replyLogger.warn({error:p.n(t),storePath:o,sessionKey:e.route.sessionKey},`failed updating session meta`)});Ce(e.backgroundTasks,R);let{queuedFinal:z}=await r.C({ctx:P,cfg:e.cfg,replyResolver:e.replyResolver,dispatcherOptions:{...A,responsePrefix:M,onHeartbeatStrip:()=>{T||(T=!0,t.R(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(n,r)=>{if(r.kind!==`final`)return;await Oe({replyResult:n,msg:e.msg,mediaLocalRoots:w,maxMediaBytes:e.maxMediaBytes,textLimit:y,chunkMode:x,replyLogger:e.replyLogger,connectionId:e.connectionId,skipLog:!1,tableMode:ee}),E=!0;let i=n.text?!0:void 0;e.rememberSentText(n.text,{combinedBody:d,combinedBodySessionKey:e.route.sessionKey,logVerboseMessage:i});let o=e.msg.chatType===`group`?a:e.msg.from??`unknown`,s=!!(n.mediaUrl||n.mediaUrls?.length);if(C.info(`Auto-replied to ${o}${s?` (media)`:``}`),t.B()){let e=n.text==null?`<media>`:$(n.text,400);C.debug(`Reply body: ${e}${s?` (media)`:``}`)}},onError:(t,n)=>{let r=n.kind===`tool`?`tool update`:n.kind===`block`?`block update`:`auto-reply`;C.error(`Failed sending web ${r} to ${e.msg.from??a}: ${p.n(t)}`)},onReplyStart:e.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:k}});return z?(f&&e.groupHistories.set(e.groupHistoryKey,[]),E):(f&&e.groupHistories.set(e.groupHistoryKey,[]),t.R(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function Fe(i){let a=async(e,t,n,r)=>Pe({cfg:i.cfg,msg:e,route:t,groupHistoryKey:n,groupHistories:i.groupHistories,groupMemberNames:i.groupMemberNames,connectionId:i.connectionId,verbose:i.verbose,maxMediaBytes:i.maxMediaBytes,replyResolver:i.replyResolver,replyLogger:i.replyLogger,backgroundTasks:i.backgroundTasks,rememberSentText:i.echoTracker.rememberText,echoHas:i.echoTracker.has,echoForget:i.echoTracker.forget,buildCombinedEchoKey:i.echoTracker.buildCombinedKey,groupHistory:r?.groupHistory,suppressGroupHistoryClear:r?.suppressGroupHistoryClear});return async o=>{let s=o.conversationId??o.from,c=Te(o),l=r.v({cfg:n.Gi(),channel:`whatsapp`,accountId:o.accountId,peer:{kind:o.chatType===`group`?`group`:`direct`,id:c}}),u=o.chatType===`group`?e.vt({channel:`whatsapp`,accountId:l.accountId,peerKind:`group`,peerId:c}):l.sessionKey;if(o.from===o.to&&t.R(`📱 Same-phone mode detected (from === to: ${o.from})`),i.echoTracker.has(o.body)){t.R(`Skipping auto-reply: detected echo (message matches recently sent text)`),i.echoTracker.forget(o.body);return}if(o.chatType===`group`){let e={From:o.from,To:o.to,SessionKey:l.sessionKey,AccountId:l.accountId,ChatType:o.chatType,ConversationLabel:s,GroupSubject:o.groupSubject,SenderName:o.senderName,SenderId:o.senderJid?.trim()||o.senderE164,SenderE164:o.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:s};if(we({cfg:i.cfg,backgroundTasks:i.backgroundTasks,storeAgentId:l.agentId,sessionKey:l.sessionKey,channel:`whatsapp`,to:s,accountId:l.accountId,ctx:e,warn:i.replyLogger.warn.bind(i.replyLogger)}),!Se({cfg:i.cfg,msg:o,conversationId:s,groupHistoryKey:u,agentId:l.agentId,sessionKey:l.sessionKey,baseMentionConfig:i.baseMentionConfig,authDir:i.account.authDir,groupHistories:i.groupHistories,groupHistoryLimit:i.groupHistoryLimit,groupMemberNames:i.groupMemberNames,logVerbose:t.R,replyLogger:i.replyLogger}).shouldProcess)return}else !o.senderE164&&c&&c.startsWith(`+`)&&(o.senderE164=t.d(c)??o.senderE164);await de({cfg:i.cfg,msg:o,peerId:c,route:l,groupHistoryKey:u,groupHistories:i.groupHistories,processMessage:a})||await a(o,l,u)}}function Ie(e){return e===440}async function Le(e,i=oe,a=!0,s=r.r,c=t.M,l,u={}){let f=b(),m=t.K({module:`web-auto-reply`,runId:f}),h=t.K({module:`web-heartbeat`,runId:f}),g=t.K({module:`web-reconnect`,runId:f}),_={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},S=()=>{u.statusSink?.({..._,lastDisconnect:_.lastDisconnect?{..._.lastDisconnect}:null})};S();let C=n.Gi(),T=n.zs({cfg:C,accountId:u.accountId}),E={...C,channels:{...C.channels,whatsapp:{...C.channels?.whatsapp,ackReaction:T.ackReaction,messagePrefix:T.messagePrefix,allowFrom:T.allowFrom,groupAllowFrom:T.groupAllowFrom,groupPolicy:T.groupPolicy,textChunkLimit:T.textChunkLimit,chunkMode:T.chunkMode,mediaMaxMb:T.mediaMaxMb,blockStreaming:T.blockStreaming,groups:T.groups}}},D=n.Bs(T),O=v(E,u.heartbeatSeconds),k=y(E,u.reconnect),A=X(E),j=E.channels?.whatsapp?.accounts?.[u.accountId??``]?.historyLimit??E.channels?.whatsapp?.historyLimit??E.messages?.groupChat?.historyLimit??50,M=new Map,N=new Map,P=le({maxItems:100,logVerbose:t.R}),F=u.sleep??((e,t)=>r.f(e,t??l)),I=()=>l?.aborted===!0,L=l&&new Promise(e=>l.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),R=process.getMaxListeners?.()??10;process.setMaxListeners&&R<50&&process.setMaxListeners(50);let z=!1,B=()=>{z=!0};process.once(`SIGINT`,B);let V=0;for(;!I();){let f=b(),v=Date.now(),y=null,C=null,R=null,H=0,U=null,te=u.messageTimeoutMs??1800*1e3,ne=u.watchdogCheckMs??60*1e3,W=new Set,re=Fe({cfg:E,verbose:e,connectionId:f,maxMediaBytes:D,groupHistoryLimit:j,groupHistories:M,groupMemberNames:N,echoTracker:P,backgroundTasks:W,replyResolver:s??r.r,replyLogger:m,baseMentionConfig:A,account:T}),ie=r.E({cfg:E,channel:`whatsapp`}),G=await(i??oe)({verbose:e,accountId:T.accountId,authDir:T.authDir,mediaMaxMb:T.mediaMaxMb,sendReadReceipts:T.sendReadReceipts,debounceMs:ie,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!r.O(e.body,E),onMessage:async e=>{H+=1,R=Date.now(),_.lastMessageAt=R,_.lastEventAt=R,S(),await re(e)}});Object.assign(_,r.u()),_.lastError=null,S();let{e164:K}=n.Js(T.authDir),ae=r.v({cfg:E,channel:`whatsapp`,accountId:T.accountId});r.b(`WhatsApp gateway connected${K?` as ${K}`:``}.`,{sessionKey:ae.sessionKey}),d.r(T.accountId,G),U=o.f(e=>{if(!Ee(e))return!1;let t=p.n(e);return g.warn({connectionId:f,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),G.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let q=async()=>{d.r(T.accountId,null),U&&=(U(),null),y&&clearInterval(y),C&&clearInterval(C),W.size>0&&(await Promise.allSettled(W),W.clear());try{await G.close()}catch(e){t.R(`Socket close failed: ${p.n(e)}`)}};if(a&&(y=setInterval(()=>{let e=n.Hs(T.authDir),t=R?Math.floor((Date.now()-R)/6e4):null,r={connectionId:f,reconnectAttempts:V,messagesHandled:H,lastMessageAt:R,authAgeMs:e,uptimeMs:Date.now()-v,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?h.warn(r,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):h.info(r,`web gateway heartbeat`)},O*1e3),C=setInterval(()=>{if(!R)return;let e=Date.now()-R;if(e<=te)return;let n=Math.floor(e/6e4);h.warn({connectionId:f,minutesSinceLastMessage:n,lastMessageAt:new Date(R),messagesHandled:H},`Message timeout detected - forcing reconnect`),ee.warn(`No messages received in ${n}m - restarting connection`),q().catch(e=>{t.R(`Close listener failed: ${p.n(e)}`)}),G.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ne)),x.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&x.raw(`Ctrl+C to stop.`),!a){await q(),process.removeListener(`SIGINT`,B);return}let J=await Promise.race([G.onClose?.catch(e=>(g.error({error:p.n(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??w(),L??w()]);if(Date.now()-v>O*1e3&&(V=0),_.reconnectAttempts=V,S(),I()||z||J===`aborted`){await q();break}let Y=(typeof J==`object`&&J&&`status`in J?J.status:void 0)??`unknown`,X=typeof J==`object`&&J&&`isLoggedOut`in J&&J.isLoggedOut,Z=p.n(J);if(_.connected=!1,_.lastEventAt=Date.now(),_.lastDisconnect={at:_.lastEventAt,status:typeof Y==`number`?Y:void 0,error:Z,loggedOut:!!X},_.lastError=Z,_.reconnectAttempts=V,S(),g.info({connectionId:f,status:Y,loggedOut:X,reconnectAttempts:V,error:Z},`web reconnect: connection closed`),r.b(`WhatsApp gateway disconnected (status ${Y??`unknown`})`,{sessionKey:ae.sessionKey}),X){c.error(`WhatsApp session logged out. Run \`${n.ac(`openclaw channels login --channel web`)}\` to relink.`),await q();break}if(Ie(Y)){g.warn({connectionId:f,status:Y,error:Z},`web reconnect: non-retryable close status; stopping monitor`),c.error(`WhatsApp Web connection closed (status ${Y}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${n.ac(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await q();break}if(V+=1,_.reconnectAttempts=V,S(),k.maxAttempts>0&&V>=k.maxAttempts){g.warn({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),c.error(`WhatsApp Web reconnect: max attempts reached (${V}/${k.maxAttempts}). Stopping web monitoring.`),await q();break}let Q=r.d(k,V);g.info({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts||`unlimited`,delayMs:Q},`web reconnect: scheduling retry`),c.error(`WhatsApp Web connection closed (status ${Y}). Retry ${V}/${k.maxAttempts||`∞`} in ${r.x(Q)}… (${Z})`),await q();try{await F(Q,l)}catch{break}}_.running=!1,_.connected=!1,_.lastEventAt=Date.now(),S(),process.removeListener(`SIGINT`,B)}exports.WA_WEB_AUTH_DIR=n.Vs,exports.createWaSocket=p.t,exports.logWebSelfId=n.Us,exports.loginWeb=m.t,exports.monitorWebChannel=Le,exports.monitorWebInbox=oe,exports.pickWebChannel=n.Ks,exports.sendMessageWhatsApp=f.t,exports.waitForWaConnection=p.i,exports.webAuthExists=n.Qs;
6
- //# sourceMappingURL=web-Bg2LIMdb.cjs.map
@@ -3,4 +3,3 @@ require(`./paths-BvlJvmRS.cjs`);const e=require(`./paths-Chp3zwtq.cjs`),t=requir
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(`
5
5
  `);n&&(C.warn(`Media skipped; sent text-only to ${r.from}`),await r.reply(n))}}}for(let e of y)await r.reply(e)}function ke(e){if(!e.msg.id)return;let n=e.cfg.channels?.whatsapp?.ackReaction,r=(n?.emoji??``).trim(),a=n?.direct??!0,o=n?.group??`mentions`,s=e.msg.conversationId??e.msg.from,c=e.msg.chatType===`group`?he({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:s}):null;i.b({emoji:r,isDirect:e.msg.chatType===`direct`,isGroup:e.msg.chatType===`group`,directEnabled:a,groupMode:o,wasMentioned:e.msg.wasMentioned===!0,groupActivated:c===`always`})&&(e.info({chatId:e.msg.chatId,messageId:e.msg.id,emoji:r},`sending ack reaction`),f.r(e.msg.chatId,e.msg.id,r,{verbose:e.verbose,fromMe:!1,participant:e.msg.senderJid,accountId:e.accountId}).catch(n=>{e.warn({error:p.n(n),chatId:e.msg.chatId,messageId:e.msg.id},`failed to send ack reaction`),t.R(`WhatsApp ack reaction failed for chat ${e.msg.chatId}: ${p.n(n)}`)}))}function Ae(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function je(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:a,envelope:o}=e,s=i.Y(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),c=s?`${s} `:``,l=Ae(n),u=`${c}${n.body}${l?`\n\n${l}`:``}`;return i.T({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:u,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:a,envelope:o,fromMe:n.fromMe})}async function Me(e){let r=e.cfg.commands?.useAccessGroups!==!1;if(!r)return!0;let a=e.msg.chatType===`group`,o=t.h(a?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!o)return!1;let s=n.js({cfg:e.cfg,accountId:e.msg.accountId}),c=s.dmPolicy??`pairing`,l=s.groupPolicy??`allowlist`,u=s.allowFrom??[],d=s.groupAllowFrom??(u.length>0?u:void 0),f=a?[]:await i.z({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:c});return i.B({isGroup:a,dmPolicy:c,groupPolicy:l,allowFrom:u.length>0?u:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:d,storeAllowFrom:f,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>t.h(String(e))).filter(e=>!!e).includes(o),command:{useAccessGroups:r,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function Ne(e){let r=n.js({cfg:e.cfg,accountId:e.msg.accountId});return i.U({dmScope:e.cfg.session?.dmScope,allowFrom:r.allowFrom,normalizeEntry:e=>t.h(e)})}async function Pe(e){let r=e.msg.conversationId??e.msg.from,{storePath:c,envelopeOptions:l,previousTimestamp:u}=i.l({cfg:e.cfg,agentId:e.route.agentId,sessionKey:e.route.sessionKey}),d=je({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,previousTimestamp:u,envelope:l}),f=!1;if(e.msg.chatType===`group`){let t=e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[];t.length>0&&(d=i.it({entries:t.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:d,excludeLast:!1,formatEntry:e=>i.T({channel:`WhatsApp`,from:r,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:l})})),f=!(e.suppressGroupHistoryClear??!1)}let m=e.buildCombinedEchoKey({sessionKey:e.route.sessionKey,combinedBody:d});if(e.echoHas(m))return t.R(`Skipping auto-reply: detected echo for combined message`),e.echoForget(m),!1;ke({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,sessionKey:e.route.sessionKey,conversationId:r,verbose:e.verbose,accountId:e.route.accountId,info:e.replyLogger.info.bind(e.replyLogger),warn:e.replyLogger.warn.bind(e.replyLogger)});let h=e.msg.id??b();e.replyLogger.info({connectionId:e.connectionId,correlationId:h,from:e.msg.chatType===`group`?r:e.msg.from,to:e.msg.to,body:$(d,240),mediaType:e.msg.mediaType??null,mediaPath:e.msg.mediaPath??null},`inbound web message`);let g=e.msg.chatType===`group`?r:e.msg.from,_=e.msg.mediaType?`, ${e.msg.mediaType}`:``;S.info(`Inbound message ${g} -> ${e.msg.to} (${e.msg.chatType}${_}, ${d.length} chars)`),t.B()&&S.debug(`Inbound body: ${$(d,400)}`);let v=e.msg.chatType===`group`?void 0:e.msg.senderE164?t.h(e.msg.senderE164):e.msg.from.includes(`@`)?t.m(e.msg.from):t.h(e.msg.from),y=e.maxMediaTextChunkLimit??s.f(e.cfg,`whatsapp`),x=s.d(e.cfg,`whatsapp`,e.route.accountId),ee=s.i({cfg:e.cfg,channel:`whatsapp`,accountId:e.route.accountId}),w=o.t(e.cfg,e.route.agentId),T=!1,E=!1,D=i.D(e.msg.body,e.cfg)?await Me({cfg:e.cfg,msg:e.msg}):void 0,O=e.cfg.messages?.responsePrefix,{onModelSelected:k,...A}=i.q({cfg:e.cfg,agentId:e.route.agentId,channel:`whatsapp`,accountId:e.route.accountId}),j=e.msg.chatType!==`group`&&!!e.msg.selfE164&&t.h(e.msg.from)===t.h(e.msg.selfE164??``),M=A.responsePrefix??(O===void 0&&j?i.J(e.cfg,e.route.agentId):void 0),N=e.msg.chatType===`group`?(e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,P=i.L({Body:d,BodyForAgent:e.msg.body,InboundHistory:N,RawBody:e.msg.body,CommandBody:e.msg.body,From:e.msg.from,To:e.msg.to,SessionKey:e.route.sessionKey,AccountId:e.route.accountId,MessageSid:e.msg.id,ReplyToId:e.msg.replyToId,ReplyToBody:e.msg.replyToBody,ReplyToSender:e.msg.replyToSender,MediaPath:e.msg.mediaPath,MediaUrl:e.msg.mediaUrl,MediaType:e.msg.mediaType,ChatType:e.msg.chatType,ConversationLabel:e.msg.chatType===`group`?r:e.msg.from,GroupSubject:e.msg.groupSubject,GroupMembers:ve({participants:e.msg.groupParticipants,roster:e.groupMemberNames.get(e.groupHistoryKey),fallbackE164:e.msg.senderE164}),SenderName:e.msg.senderName,SenderId:e.msg.senderJid?.trim()||e.msg.senderE164,SenderE164:e.msg.senderE164,CommandAuthorized:D,WasMentioned:e.msg.wasMentioned,...e.msg.location?a.Y(e.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:e.msg.from}),F=Ne({cfg:e.cfg,msg:e.msg}),I=!F||F===v,L=i._({route:e.route,sessionKey:e.route.sessionKey});v&&L===e.route.mainSessionKey&&I?we({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:e.route.agentId,sessionKey:e.route.mainSessionKey,channel:`whatsapp`,to:v,accountId:e.route.accountId,ctx:P,warn:e.replyLogger.warn.bind(e.replyLogger)}):v&&L===e.route.mainSessionKey&&F&&t.R(`Skipping main-session last route update for ${v} (pinned owner ${F})`);let R=n.jt({storePath:c,sessionKey:e.route.sessionKey,ctx:P}).catch(t=>{e.replyLogger.warn({error:p.n(t),storePath:c,sessionKey:e.route.sessionKey},`failed updating session meta`)});Ce(e.backgroundTasks,R);let{queuedFinal:z}=await i.x({ctx:P,cfg:e.cfg,replyResolver:e.replyResolver,dispatcherOptions:{...A,responsePrefix:M,onHeartbeatStrip:()=>{T||(T=!0,t.R(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(n,i)=>{if(i.kind!==`final`)return;await Oe({replyResult:n,msg:e.msg,mediaLocalRoots:w,maxMediaBytes:e.maxMediaBytes,textLimit:y,chunkMode:x,replyLogger:e.replyLogger,connectionId:e.connectionId,skipLog:!1,tableMode:ee}),E=!0;let a=n.text?!0:void 0;e.rememberSentText(n.text,{combinedBody:d,combinedBodySessionKey:e.route.sessionKey,logVerboseMessage:a});let o=e.msg.chatType===`group`?r:e.msg.from??`unknown`,s=!!(n.mediaUrl||n.mediaUrls?.length);if(C.info(`Auto-replied to ${o}${s?` (media)`:``}`),t.B()){let e=n.text==null?`<media>`:$(n.text,400);C.debug(`Reply body: ${e}${s?` (media)`:``}`)}},onError:(t,n)=>{let i=n.kind===`tool`?`tool update`:n.kind===`block`?`block update`:`auto-reply`;C.error(`Failed sending web ${i} to ${e.msg.from??r}: ${p.n(t)}`)},onReplyStart:e.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:k}});return z?(f&&e.groupHistories.set(e.groupHistoryKey,[]),E):(f&&e.groupHistories.set(e.groupHistoryKey,[]),t.R(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function Fe(r){let a=async(e,t,n,i)=>Pe({cfg:r.cfg,msg:e,route:t,groupHistoryKey:n,groupHistories:r.groupHistories,groupMemberNames:r.groupMemberNames,connectionId:r.connectionId,verbose:r.verbose,maxMediaBytes:r.maxMediaBytes,replyResolver:r.replyResolver,replyLogger:r.replyLogger,backgroundTasks:r.backgroundTasks,rememberSentText:r.echoTracker.rememberText,echoHas:r.echoTracker.has,echoForget:r.echoTracker.forget,buildCombinedEchoKey:r.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async o=>{let s=o.conversationId??o.from,c=Te(o),l=i.g({cfg:n.Si(),channel:`whatsapp`,accountId:o.accountId,peer:{kind:o.chatType===`group`?`group`:`direct`,id:c}}),u=o.chatType===`group`?e.Et({channel:`whatsapp`,accountId:l.accountId,peerKind:`group`,peerId:c}):l.sessionKey;if(o.from===o.to&&t.R(`📱 Same-phone mode detected (from === to: ${o.from})`),r.echoTracker.has(o.body)){t.R(`Skipping auto-reply: detected echo (message matches recently sent text)`),r.echoTracker.forget(o.body);return}if(o.chatType===`group`){let e={From:o.from,To:o.to,SessionKey:l.sessionKey,AccountId:l.accountId,ChatType:o.chatType,ConversationLabel:s,GroupSubject:o.groupSubject,SenderName:o.senderName,SenderId:o.senderJid?.trim()||o.senderE164,SenderE164:o.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:s};if(we({cfg:r.cfg,backgroundTasks:r.backgroundTasks,storeAgentId:l.agentId,sessionKey:l.sessionKey,channel:`whatsapp`,to:s,accountId:l.accountId,ctx:e,warn:r.replyLogger.warn.bind(r.replyLogger)}),!Se({cfg:r.cfg,msg:o,conversationId:s,groupHistoryKey:u,agentId:l.agentId,sessionKey:l.sessionKey,baseMentionConfig:r.baseMentionConfig,authDir:r.account.authDir,groupHistories:r.groupHistories,groupHistoryLimit:r.groupHistoryLimit,groupMemberNames:r.groupMemberNames,logVerbose:t.R,replyLogger:r.replyLogger}).shouldProcess)return}else !o.senderE164&&c&&c.startsWith(`+`)&&(o.senderE164=t.h(c)??o.senderE164);await de({cfg:r.cfg,msg:o,peerId:c,route:l,groupHistoryKey:u,groupHistories:r.groupHistories,processMessage:a})||await a(o,l,u)}}function Ie(e){return e===440}async function Le(e,r=oe,a=!0,o=i.r,s=t.M,l,u={}){let f=b(),m=t.K({module:`web-auto-reply`,runId:f}),h=t.K({module:`web-heartbeat`,runId:f}),g=t.K({module:`web-reconnect`,runId:f}),_={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},S=()=>{u.statusSink?.({..._,lastDisconnect:_.lastDisconnect?{..._.lastDisconnect}:null})};S();let C=n.Si(),T=n.js({cfg:C,accountId:u.accountId}),E={...C,channels:{...C.channels,whatsapp:{...C.channels?.whatsapp,ackReaction:T.ackReaction,messagePrefix:T.messagePrefix,allowFrom:T.allowFrom,groupAllowFrom:T.groupAllowFrom,groupPolicy:T.groupPolicy,textChunkLimit:T.textChunkLimit,chunkMode:T.chunkMode,mediaMaxMb:T.mediaMaxMb,blockStreaming:T.blockStreaming,groups:T.groups}}},D=n.Ms(T),O=v(E,u.heartbeatSeconds),k=y(E,u.reconnect),A=X(E),j=E.channels?.whatsapp?.accounts?.[u.accountId??``]?.historyLimit??E.channels?.whatsapp?.historyLimit??E.messages?.groupChat?.historyLimit??50,M=new Map,N=new Map,P=le({maxItems:100,logVerbose:t.R}),F=u.sleep??((e,t)=>i.f(e,t??l)),I=()=>l?.aborted===!0,L=l&&new Promise(e=>l.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),R=process.getMaxListeners?.()??10;process.setMaxListeners&&R<50&&process.setMaxListeners(50);let z=!1,B=()=>{z=!0};process.once(`SIGINT`,B);let V=0;for(;!I();){let f=b(),v=Date.now(),y=null,C=null,R=null,H=0,U=null,te=u.messageTimeoutMs??1800*1e3,ne=u.watchdogCheckMs??60*1e3,W=new Set,re=Fe({cfg:E,verbose:e,connectionId:f,maxMediaBytes:D,groupHistoryLimit:j,groupHistories:M,groupMemberNames:N,echoTracker:P,backgroundTasks:W,replyResolver:o??i.r,replyLogger:m,baseMentionConfig:A,account:T}),ie=i.w({cfg:E,channel:`whatsapp`}),G=await(r??oe)({verbose:e,accountId:T.accountId,authDir:T.authDir,mediaMaxMb:T.mediaMaxMb,sendReadReceipts:T.sendReadReceipts,debounceMs:ie,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!i.E(e.body,E),onMessage:async e=>{H+=1,R=Date.now(),_.lastMessageAt=R,_.lastEventAt=R,S(),await re(e)}});Object.assign(_,i.u()),_.lastError=null,S();let{e164:K}=n.Bs(T.authDir),ae=i.g({cfg:E,channel:`whatsapp`,accountId:T.accountId});i.v(`WhatsApp gateway connected${K?` as ${K}`:``}.`,{sessionKey:ae.sessionKey}),d.r(T.accountId,G),U=c.f(e=>{if(!Ee(e))return!1;let t=p.n(e);return g.warn({connectionId:f,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),G.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let q=async()=>{d.r(T.accountId,null),U&&=(U(),null),y&&clearInterval(y),C&&clearInterval(C),W.size>0&&(await Promise.allSettled(W),W.clear());try{await G.close()}catch(e){t.R(`Socket close failed: ${p.n(e)}`)}};if(a&&(y=setInterval(()=>{let e=n.Ps(T.authDir),t=R?Math.floor((Date.now()-R)/6e4):null,r={connectionId:f,reconnectAttempts:V,messagesHandled:H,lastMessageAt:R,authAgeMs:e,uptimeMs:Date.now()-v,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?h.warn(r,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):h.info(r,`web gateway heartbeat`)},O*1e3),C=setInterval(()=>{if(!R)return;let e=Date.now()-R;if(e<=te)return;let n=Math.floor(e/6e4);h.warn({connectionId:f,minutesSinceLastMessage:n,lastMessageAt:new Date(R),messagesHandled:H},`Message timeout detected - forcing reconnect`),ee.warn(`No messages received in ${n}m - restarting connection`),q().catch(e=>{t.R(`Close listener failed: ${p.n(e)}`)}),G.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ne)),x.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&x.raw(`Ctrl+C to stop.`),!a){await q(),process.removeListener(`SIGINT`,B);return}let J=await Promise.race([G.onClose?.catch(e=>(g.error({error:p.n(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??w(),L??w()]);if(Date.now()-v>O*1e3&&(V=0),_.reconnectAttempts=V,S(),I()||z||J===`aborted`){await q();break}let Y=(typeof J==`object`&&J&&`status`in J?J.status:void 0)??`unknown`,X=typeof J==`object`&&J&&`isLoggedOut`in J&&J.isLoggedOut,Z=p.n(J);if(_.connected=!1,_.lastEventAt=Date.now(),_.lastDisconnect={at:_.lastEventAt,status:typeof Y==`number`?Y:void 0,error:Z,loggedOut:!!X},_.lastError=Z,_.reconnectAttempts=V,S(),g.info({connectionId:f,status:Y,loggedOut:X,reconnectAttempts:V,error:Z},`web reconnect: connection closed`),i.v(`WhatsApp gateway disconnected (status ${Y??`unknown`})`,{sessionKey:ae.sessionKey}),X){s.error(`WhatsApp session logged out. Run \`${n.Js(`openclaw channels login --channel web`)}\` to relink.`),await q();break}if(Ie(Y)){g.warn({connectionId:f,status:Y,error:Z},`web reconnect: non-retryable close status; stopping monitor`),s.error(`WhatsApp Web connection closed (status ${Y}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${n.Js(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await q();break}if(V+=1,_.reconnectAttempts=V,S(),k.maxAttempts>0&&V>=k.maxAttempts){g.warn({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),s.error(`WhatsApp Web reconnect: max attempts reached (${V}/${k.maxAttempts}). Stopping web monitoring.`),await q();break}let Q=i.d(k,V);g.info({connectionId:f,status:Y,reconnectAttempts:V,maxAttempts:k.maxAttempts||`unlimited`,delayMs:Q},`web reconnect: scheduling retry`),s.error(`WhatsApp Web connection closed (status ${Y}). Retry ${V}/${k.maxAttempts||`∞`} in ${i.y(Q)}… (${Z})`),await q();try{await F(Q,l)}catch{break}}_.running=!1,_.connected=!1,_.lastEventAt=Date.now(),S(),process.removeListener(`SIGINT`,B)}exports.WA_WEB_AUTH_DIR=n.Ns,exports.createWaSocket=p.t,exports.logWebSelfId=n.Fs,exports.loginWeb=m.t,exports.monitorWebChannel=Le,exports.monitorWebInbox=oe,exports.pickWebChannel=n.Rs,exports.sendMessageWhatsApp=f.t,exports.waitForWaConnection=p.i,exports.webAuthExists=n.Ws;
6
- //# sourceMappingURL=web-DFDao2So.cjs.map
@@ -3,4 +3,3 @@ import{gt as e,ht as t,s as n,vt as r,xt as i}from"./paths-CXgWvWAM.js";import{B
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(`
5
5
  `);r&&(Z.warn(`Media skipped; sent text-only to ${n.from}`),await n.reply(r))}}}for(let e of _)await n.reply(e)}function an(e){if(!e.msg.id)return;let t=e.cfg.channels?.whatsapp?.ackReaction,n=(t?.emoji??``).trim(),r=t?.direct??!0,i=t?.group??`mentions`,a=e.msg.conversationId??e.msg.from,o=e.msg.chatType===`group`?Wt({cfg:e.cfg,agentId:e.agentId,sessionKey:e.sessionKey,conversationId:a}):null;ae({emoji:n,isDirect:e.msg.chatType===`direct`,isGroup:e.msg.chatType===`group`,directEnabled:r,groupMode:i,wasMentioned:e.msg.wasMentioned===!0,groupActivated:o===`always`})&&(e.info({chatId:e.msg.chatId,messageId:e.msg.id,emoji:n},`sending ack reaction`),Be(e.msg.chatId,e.msg.id,n,{verbose:e.verbose,fromMe:!1,participant:e.msg.senderJid,accountId:e.accountId}).catch(t=>{e.warn({error:K(t),chatId:e.msg.chatId,messageId:e.msg.id},`failed to send ack reaction`),l(`WhatsApp ack reaction failed for chat ${e.msg.chatId}: ${K(t)}`)}))}function on(e){return e.replyToBody?`[Replying to ${e.replyToSender??`unknown sender`}${e.replyToId?` id:${e.replyToId}`:``}]\n${e.replyToBody}\n[/Replying]`:null}function sn(e){let{cfg:t,msg:n,agentId:r,previousTimestamp:i,envelope:a}=e,o=B(t,r,{configured:t.channels?.whatsapp?.messagePrefix,hasAllowFrom:(t.channels?.whatsapp?.allowFrom?.length??0)>0}),s=o?`${o} `:``,c=on(n),l=`${s}${n.body}${c?`\n\n${c}`:``}`;return P({channel:`WhatsApp`,from:n.chatType===`group`?n.from:n.from?.replace(/^whatsapp:/,``),timestamp:n.timestamp,body:l,chatType:n.chatType,sender:{name:n.senderName,e164:n.senderE164,id:n.senderJid},previousTimestamp:i,envelope:a,fromMe:n.fromMe})}async function cn(e){let t=e.cfg.commands?.useAccessGroups!==!1;if(!t)return!0;let n=e.msg.chatType===`group`,r=u(n?e.msg.senderE164??``:e.msg.senderE164??e.msg.from??``);if(!r)return!1;let i=y({cfg:e.cfg,accountId:e.msg.accountId}),a=i.dmPolicy??`pairing`,o=i.groupPolicy??`allowlist`,s=i.allowFrom??[],c=i.groupAllowFrom??(s.length>0?s:void 0),l=n?[]:await oe({provider:`whatsapp`,accountId:e.msg.accountId,dmPolicy:a});return R({isGroup:n,dmPolicy:a,groupPolicy:o,allowFrom:s.length>0?s:e.msg.selfE164?[e.msg.selfE164]:[],groupAllowFrom:c,storeAllowFrom:l,isSenderAllowed:e=>e.includes(`*`)?!0:e.map(e=>u(String(e))).filter(e=>!!e).includes(r),command:{useAccessGroups:t,allowTextCommands:!0,hasControlCommand:!0}}).commandAuthorized}function ln(e){let t=y({cfg:e.cfg,accountId:e.msg.accountId});return I({dmScope:e.cfg.session?.dmScope,allowFrom:t.allowFrom,normalizeEntry:e=>u(e)})}async function un(e){let t=e.msg.conversationId??e.msg.from,{storePath:n,envelopeOptions:r,previousTimestamp:i}=fe({cfg:e.cfg,agentId:e.route.agentId,sessionKey:e.route.sessionKey}),o=sn({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,previousTimestamp:i,envelope:r}),s=!1;if(e.msg.chatType===`group`){let n=e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[];n.length>0&&(o=pe({entries:n.map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})),currentMessage:o,excludeLast:!1,formatEntry:e=>P({channel:`WhatsApp`,from:t,timestamp:e.timestamp,body:e.body,chatType:`group`,senderLabel:e.sender,envelope:r})})),s=!(e.suppressGroupHistoryClear??!1)}let c=e.buildCombinedEchoKey({sessionKey:e.route.sessionKey,combinedBody:o});if(e.echoHas(c))return l(`Skipping auto-reply: detected echo for combined message`),e.echoForget(c),!1;an({cfg:e.cfg,msg:e.msg,agentId:e.route.agentId,sessionKey:e.route.sessionKey,conversationId:t,verbose:e.verbose,accountId:e.route.accountId,info:e.replyLogger.info.bind(e.replyLogger),warn:e.replyLogger.warn.bind(e.replyLogger)});let d=e.msg.id??J();e.replyLogger.info({connectionId:e.connectionId,correlationId:d,from:e.msg.chatType===`group`?t:e.msg.from,to:e.msg.to,body:$(o,240),mediaType:e.msg.mediaType??null,mediaPath:e.msg.mediaPath??null},`inbound web message`);let f=e.msg.chatType===`group`?t:e.msg.from,p=e.msg.mediaType?`, ${e.msg.mediaType}`:``;X.info(`Inbound message ${f} -> ${e.msg.to} (${e.msg.chatType}${p}, ${o.length} chars)`),a()&&X.debug(`Inbound body: ${$(o,400)}`);let h=e.msg.chatType===`group`?void 0:e.msg.senderE164?u(e.msg.senderE164):e.msg.from.includes(`@`)?m(e.msg.from):u(e.msg.from),g=e.maxMediaTextChunkLimit??Ne(e.cfg,`whatsapp`),_=Pe(e.cfg,`whatsapp`,e.route.accountId),v=Fe({cfg:e.cfg,channel:`whatsapp`,accountId:e.route.accountId}),y=Ae(e.cfg,e.route.agentId),b=!1,x=!1,S=de(e.msg.body,e.cfg)?await cn({cfg:e.cfg,msg:e.msg}):void 0,C=e.cfg.messages?.responsePrefix,{onModelSelected:w,...T}=z({cfg:e.cfg,agentId:e.route.agentId,channel:`whatsapp`,accountId:e.route.accountId}),ee=e.msg.chatType!==`group`&&!!e.msg.selfE164&&u(e.msg.from)===u(e.msg.selfE164??``),D=T.responsePrefix??(C===void 0&&ee?ce(e.cfg,e.route.agentId):void 0),O=e.msg.chatType===`group`?(e.groupHistory??e.groupHistories.get(e.groupHistoryKey)??[]).map(e=>({sender:e.sender,body:e.body,timestamp:e.timestamp})):void 0,k=se({Body:o,BodyForAgent:e.msg.body,InboundHistory:O,RawBody:e.msg.body,CommandBody:e.msg.body,From:e.msg.from,To:e.msg.to,SessionKey:e.route.sessionKey,AccountId:e.route.accountId,MessageSid:e.msg.id,ReplyToId:e.msg.replyToId,ReplyToBody:e.msg.replyToBody,ReplyToSender:e.msg.replyToSender,MediaPath:e.msg.mediaPath,MediaUrl:e.msg.mediaUrl,MediaType:e.msg.mediaType,ChatType:e.msg.chatType,ConversationLabel:e.msg.chatType===`group`?t:e.msg.from,GroupSubject:e.msg.groupSubject,GroupMembers:qt({participants:e.msg.groupParticipants,roster:e.groupMemberNames.get(e.groupHistoryKey),fallbackE164:e.msg.senderE164}),SenderName:e.msg.senderName,SenderId:e.msg.senderJid?.trim()||e.msg.senderE164,SenderE164:e.msg.senderE164,CommandAuthorized:S,WasMentioned:e.msg.wasMentioned,...e.msg.location?Te(e.msg.location):{},Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:e.msg.from}),A=ln({cfg:e.cfg,msg:e.msg}),te=!A||A===h,j=Se({route:e.route,sessionKey:e.route.sessionKey});h&&j===e.route.mainSessionKey&&te?$t({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:e.route.agentId,sessionKey:e.route.mainSessionKey,channel:`whatsapp`,to:h,accountId:e.route.accountId,ctx:k,warn:e.replyLogger.warn.bind(e.replyLogger)}):h&&j===e.route.mainSessionKey&&A&&l(`Skipping main-session last route update for ${h} (pinned owner ${A})`);let M=E({storePath:n,sessionKey:e.route.sessionKey,ctx:k}).catch(t=>{e.replyLogger.warn({error:K(t),storePath:n,sessionKey:e.route.sessionKey},`failed updating session meta`)});Qt(e.backgroundTasks,M);let{queuedFinal:ne}=await N({ctx:k,cfg:e.cfg,replyResolver:e.replyResolver,dispatcherOptions:{...T,responsePrefix:D,onHeartbeatStrip:()=>{b||(b=!0,l(`Stripped stray HEARTBEAT_OK token from web reply`))},deliver:async(n,r)=>{if(r.kind!==`final`)return;await rn({replyResult:n,msg:e.msg,mediaLocalRoots:y,maxMediaBytes:e.maxMediaBytes,textLimit:g,chunkMode:_,replyLogger:e.replyLogger,connectionId:e.connectionId,skipLog:!1,tableMode:v}),x=!0;let i=n.text?!0:void 0;e.rememberSentText(n.text,{combinedBody:o,combinedBodySessionKey:e.route.sessionKey,logVerboseMessage:i});let s=e.msg.chatType===`group`?t:e.msg.from??`unknown`,c=!!(n.mediaUrl||n.mediaUrls?.length);if(Z.info(`Auto-replied to ${s}${c?` (media)`:``}`),a()){let e=n.text==null?`<media>`:$(n.text,400);Z.debug(`Reply body: ${e}${c?` (media)`:``}`)}},onError:(n,r)=>{let i=r.kind===`tool`?`tool update`:r.kind===`block`?`block update`:`auto-reply`;Z.error(`Failed sending web ${i} to ${e.msg.from??t}: ${K(n)}`)},onReplyStart:e.msg.sendComposing},replyOptions:{disableBlockStreaming:!0,onModelSelected:w}});return ne?(s&&e.groupHistories.set(e.groupHistoryKey,[]),x):(s&&e.groupHistories.set(e.groupHistoryKey,[]),l(`Skipping auto-reply: silent token or no text/media returned from resolver`),!1)}function dn(e){let t=async(t,n,r,i)=>un({cfg:e.cfg,msg:t,route:n,groupHistoryKey:r,groupHistories:e.groupHistories,groupMemberNames:e.groupMemberNames,connectionId:e.connectionId,verbose:e.verbose,maxMediaBytes:e.maxMediaBytes,replyResolver:e.replyResolver,replyLogger:e.replyLogger,backgroundTasks:e.backgroundTasks,rememberSentText:e.echoTracker.rememberText,echoHas:e.echoTracker.has,echoForget:e.echoTracker.forget,buildCombinedEchoKey:e.echoTracker.buildCombinedKey,groupHistory:i?.groupHistory,suppressGroupHistoryClear:i?.suppressGroupHistoryClear});return async n=>{let i=n.conversationId??n.from,a=en(n),o=be({cfg:O(),channel:`whatsapp`,accountId:n.accountId,peer:{kind:n.chatType===`group`?`group`:`direct`,id:a}}),s=n.chatType===`group`?r({channel:`whatsapp`,accountId:o.accountId,peerKind:`group`,peerId:a}):o.sessionKey;if(n.from===n.to&&l(`📱 Same-phone mode detected (from === to: ${n.from})`),e.echoTracker.has(n.body)){l(`Skipping auto-reply: detected echo (message matches recently sent text)`),e.echoTracker.forget(n.body);return}if(n.chatType===`group`){let t={From:n.from,To:n.to,SessionKey:o.sessionKey,AccountId:o.accountId,ChatType:n.chatType,ConversationLabel:i,GroupSubject:n.groupSubject,SenderName:n.senderName,SenderId:n.senderJid?.trim()||n.senderE164,SenderE164:n.senderE164,Provider:`whatsapp`,Surface:`whatsapp`,OriginatingChannel:`whatsapp`,OriginatingTo:i};if($t({cfg:e.cfg,backgroundTasks:e.backgroundTasks,storeAgentId:o.agentId,sessionKey:o.sessionKey,channel:`whatsapp`,to:i,accountId:o.accountId,ctx:t,warn:e.replyLogger.warn.bind(e.replyLogger)}),!Zt({cfg:e.cfg,msg:n,conversationId:i,groupHistoryKey:s,agentId:o.agentId,sessionKey:o.sessionKey,baseMentionConfig:e.baseMentionConfig,authDir:e.account.authDir,groupHistories:e.groupHistories,groupHistoryLimit:e.groupHistoryLimit,groupMemberNames:e.groupMemberNames,logVerbose:l,replyLogger:e.replyLogger}).shouldProcess)return}else !n.senderE164&&a&&a.startsWith(`+`)&&(n.senderE164=u(a)??n.senderE164);await Bt({cfg:e.cfg,msg:n,peerId:a,route:o,groupHistoryKey:s,groupHistories:e.groupHistories,processMessage:t})||await t(n,o,s)}}function fn(e){return e===440}async function pn(e,t=Mt,n=!0,r=_e,i=s,a,c={}){let u=J(),d=o({module:`web-auto-reply`,runId:u}),f=o({module:`web-heartbeat`,runId:u}),p=o({module:`web-reconnect`,runId:u}),m={running:!0,connected:!1,reconnectAttempts:0,lastConnectedAt:null,lastDisconnect:null,lastMessageAt:null,lastEventAt:null,lastError:null},h=()=>{c.statusSink?.({...m,lastDisconnect:m.lastDisconnect?{...m.lastDisconnect}:null})};h();let g=O(),_=y({cfg:g,accountId:c.accountId}),v={...g,channels:{...g.channels,whatsapp:{...g.channels?.whatsapp,ackReaction:_.ackReaction,messagePrefix:_.messagePrefix,allowFrom:_.allowFrom,groupAllowFrom:_.groupAllowFrom,groupPolicy:_.groupPolicy,textChunkLimit:_.textChunkLimit,chunkMode:_.chunkMode,mediaMaxMb:_.mediaMaxMb,blockStreaming:_.blockStreaming,groups:_.groups}}},b=x(_),S=$e(v,c.heartbeatSeconds),C=et(v,c.reconnect),w=Nt(v),T=v.channels?.whatsapp?.accounts?.[c.accountId??``]?.historyLimit??v.channels?.whatsapp?.historyLimit??v.messages?.groupChat?.historyLimit??50,E=new Map,D=new Map,k=Rt({maxItems:100,logVerbose:l}),j=c.sleep??((e,t)=>H(e,t??a)),M=()=>a?.aborted===!0,ne=a&&new Promise(e=>a.addEventListener(`abort`,()=>e(`aborted`),{once:!0})),N=process.getMaxListeners?.()??10;process.setMaxListeners&&N<50&&process.setMaxListeners(50);let P=!1,F=()=>{P=!0};process.once(`SIGINT`,F);let I=0;for(;!M();){let o=J(),s=Date.now(),u=null,g=null,y=null,x=0,O=null,N=c.messageTimeoutMs??1800*1e3,ae=c.watchdogCheckMs??60*1e3,L=new Set,oe=dn({cfg:v,verbose:e,connectionId:o,maxMediaBytes:b,groupHistoryLimit:T,groupHistories:E,groupMemberNames:D,echoTracker:k,backgroundTasks:L,replyResolver:r??_e,replyLogger:d,baseMentionConfig:w,account:_}),se=re({cfg:v,channel:`whatsapp`}),R=await(t??Mt)({verbose:e,accountId:_.accountId,authDir:_.authDir,mediaMaxMb:_.mediaMaxMb,sendReadReceipts:_.sendReadReceipts,debounceMs:se,shouldDebounce:e=>e.mediaPath||e.mediaType||e.location||e.replyToId||e.replyToBody?!1:!ie(e.body,v),onMessage:async e=>{x+=1,y=Date.now(),m.lastMessageAt=y,m.lastEventAt=y,h(),await oe(e)}});Object.assign(m,ye()),m.lastError=null,h();let{e164:ce}=A(_.authDir),z=be({cfg:v,channel:`whatsapp`,accountId:_.accountId});le(`WhatsApp gateway connected${ce?` as ${ce}`:``}.`,{sessionKey:z.sessionKey}),Re(_.accountId,R),O=ke(e=>{if(!tn(e))return!1;let t=K(e);return p.warn({connectionId:o,error:t},`web reconnect: unhandled rejection from WhatsApp socket; forcing reconnect`),R.signalClose?.({status:499,isLoggedOut:!1,error:e}),!0});let B=async()=>{Re(_.accountId,null),O&&=(O(),null),u&&clearInterval(u),g&&clearInterval(g),L.size>0&&(await Promise.allSettled(L),L.clear());try{await R.close()}catch(e){l(`Socket close failed: ${K(e)}`)}};if(n&&(u=setInterval(()=>{let e=ee(_.authDir),t=y?Math.floor((Date.now()-y)/6e4):null,n={connectionId:o,reconnectAttempts:I,messagesHandled:x,lastMessageAt:y,authAgeMs:e,uptimeMs:Date.now()-s,...t!==null&&t>30?{minutesSinceLastMessage:t}:{}};t&&t>30?f.warn(n,`⚠️ web gateway heartbeat - no messages in 30+ minutes`):f.info(n,`web gateway heartbeat`)},S*1e3),g=setInterval(()=>{if(!y)return;let e=Date.now()-y;if(e<=N)return;let t=Math.floor(e/6e4);f.warn({connectionId:o,minutesSinceLastMessage:t,lastMessageAt:new Date(y),messagesHandled:x},`Message timeout detected - forcing reconnect`),tt.warn(`No messages received in ${t}m - restarting connection`),B().catch(e=>{l(`Close listener failed: ${K(e)}`)}),R.signalClose?.({status:499,isLoggedOut:!1,error:`watchdog-timeout`})},ae)),Y.info(`Listening for personal WhatsApp inbound messages.`),(process.stdout.isTTY||process.stderr.isTTY)&&Y.raw(`Ctrl+C to stop.`),!n){await B(),process.removeListener(`SIGINT`,F);return}let V=await Promise.race([R.onClose?.catch(e=>(p.error({error:K(e)},`listener.onClose rejected`),{status:500,isLoggedOut:!1,error:e}))??nt(),ne??nt()]);if(Date.now()-s>S*1e3&&(I=0),m.reconnectAttempts=I,h(),M()||P||V===`aborted`){await B();break}let H=(typeof V==`object`&&V&&`status`in V?V.status:void 0)??`unknown`,U=typeof V==`object`&&V&&`isLoggedOut`in V&&V.isLoggedOut,W=K(V);if(m.connected=!1,m.lastEventAt=Date.now(),m.lastDisconnect={at:m.lastEventAt,status:typeof H==`number`?H:void 0,error:W,loggedOut:!!U},m.lastError=W,m.reconnectAttempts=I,h(),p.info({connectionId:o,status:H,loggedOut:U,reconnectAttempts:I,error:W},`web reconnect: connection closed`),le(`WhatsApp gateway disconnected (status ${H??`unknown`})`,{sessionKey:z.sessionKey}),U){i.error(`WhatsApp session logged out. Run \`${te(`openclaw channels login --channel web`)}\` to relink.`),await B();break}if(fn(H)){p.warn({connectionId:o,status:H,error:W},`web reconnect: non-retryable close status; stopping monitor`),i.error(`WhatsApp Web connection closed (status ${H}: session conflict). Resolve conflicting WhatsApp Web sessions, then relink with \`${te(`openclaw channels login --channel web`)}\`. Stopping web monitoring.`),await B();break}if(I+=1,m.reconnectAttempts=I,h(),C.maxAttempts>0&&I>=C.maxAttempts){p.warn({connectionId:o,status:H,reconnectAttempts:I,maxAttempts:C.maxAttempts},`web reconnect: max attempts reached; continuing in degraded mode`),i.error(`WhatsApp Web reconnect: max attempts reached (${I}/${C.maxAttempts}). Stopping web monitoring.`),await B();break}let G=ue(C,I);p.info({connectionId:o,status:H,reconnectAttempts:I,maxAttempts:C.maxAttempts||`unlimited`,delayMs:G},`web reconnect: scheduling retry`),i.error(`WhatsApp Web connection closed (status ${H}). Retry ${I}/${C.maxAttempts||`∞`} in ${xe(G)}… (${W})`),await B();try{await j(G,a)}catch{break}}m.running=!1,m.connected=!1,m.lastEventAt=Date.now(),h(),process.removeListener(`SIGINT`,F)}export{w as WA_WEB_AUTH_DIR,We as createWaSocket,j as logWebSelfId,Ge as loginWeb,pn as monitorWebChannel,Mt as monitorWebInbox,b as pickWebChannel,Ve as sendMessageWhatsApp,He as waitForWaConnection,C as webAuthExists};
6
- //# sourceMappingURL=web-DjbeDvyv.js.map