@openclaw/whatsapp 2026.9.5 → 2026.9.7

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 (359) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{accounts-D_NGDjCx.mjs → accounts-CtRPAQCL.mjs} +3 -9
  3. package/dist/.setup/{action-runtime-DZZFamfl.mjs → action-runtime-DeVk5V7r.mjs} +2 -2
  4. package/dist/.setup/{agent-tools-login-B6MAs75N.mjs → agent-tools-login-CL5C1rA2.mjs} +5 -1
  5. package/dist/.setup/{approval-handler.runtime-C0hzmMSj.mjs → approval-handler.runtime-CjqMlPOX.mjs} +6 -26
  6. package/dist/.setup/{approval-reactions-BnXw-UZI.mjs → approval-reactions-DiOFvb1s.mjs} +8 -14
  7. package/dist/.setup/{auth-store-Dh8a3cba.mjs → auth-store-BBonwKks.mjs} +9 -33
  8. package/dist/.setup/{channel-CSclZYjU.mjs → channel-CJFE0kD_.mjs} +82 -154
  9. package/dist/.setup/{channel-react-action-1iBiEnq7.mjs → channel-react-action-2r_hjLZV.mjs} +4 -8
  10. package/dist/.setup/{channel.runtime-ddGY37w8.mjs → channel.runtime-C94goLw9.mjs} +4 -4
  11. package/dist/.setup/{channel.setup-CqUl8COe.mjs → channel.setup-CfN1UfdY.mjs} +1 -1
  12. package/dist/.setup/{connection-controller-C60mU7j7.mjs → connection-controller-CHo1oRJA.mjs} +13 -63
  13. package/dist/.setup/{creds-files-Drg3usj1.mjs → creds-files-CDATZWWM.mjs} +5 -11
  14. package/dist/.setup/{directory-config-BHPoBklt.mjs → directory-config-DUiJ5d8I.mjs} +13 -14
  15. package/dist/.setup/doctor-iMwg0Vhr.mjs +222 -0
  16. package/dist/.setup/group-config-path-DZr3ucUO.mjs +40 -0
  17. package/dist/.setup/{group-session-key-D22hYMdE.mjs → group-session-key-2-mja4OF.mjs} +3 -9
  18. package/dist/.setup/{login-2dmd1TfE.mjs → login-BFlvSh9h.mjs} +9 -11
  19. package/dist/.setup/{login-qr-CgKtO_ef.mjs → login-qr-Ayb8i25J.mjs} +29 -77
  20. package/dist/.setup/{monitor-BblvzLpX.mjs → monitor-CGpV2VNN.mjs} +391 -509
  21. package/dist/.setup/{question-reactions-D3Zq9Gbn.mjs → question-reactions-CPyyi5AY.mjs} +2 -2
  22. package/dist/.setup/rolldown-runtime-BBjsoOtd.mjs +27 -0
  23. package/dist/.setup/{send-C6jDmcL9.mjs → send-BGdvf5cC.mjs} +31 -80
  24. package/dist/.setup/{send-api-B4DOt2RJ.mjs → send-api-H4AkQJjT.mjs} +45 -109
  25. package/dist/.setup/{session-errors-JuazczrA.mjs → session-errors-B8UcAnZN.mjs} +1 -4
  26. package/dist/.setup/{session.runtime-DcJuO42v.mjs → session.runtime-st1konFI.mjs} +1 -1
  27. package/dist/.setup/{setup-finalize-BYEgU0hb.mjs → setup-finalize-DmPX4EaW.mjs} +32 -70
  28. package/dist/.setup/setup-plugin-api-vJlxKzca.mjs +3 -0
  29. package/dist/.setup/{setup-surface-Cd3wN5HD.mjs → setup-surface-43fj197P.mjs} +3 -3
  30. package/dist/.setup/{shared-C9OEtKgc.mjs → shared-DgOG5Iqr.mjs} +26 -37
  31. package/dist/.setup/{socket-close-CCVSFufF.mjs → socket-close-CT__V2fz.mjs} +80 -92
  32. package/dist/.setup/{targets-runtime-RBjx3pg_.mjs → targets-runtime-DmiqXIXO.mjs} +2 -7
  33. package/dist/action-runtime-api.js +1 -1
  34. package/dist/action-runtime.runtime.js +1 -1
  35. package/dist/agent-tools-api.js +6 -13
  36. package/dist/api.js +10 -10
  37. package/dist/auth-presence.js +1 -1
  38. package/dist/channel-plugin-api.js +1 -1
  39. package/dist/contract-api.js +2 -2
  40. package/dist/directory-contract-api.js +1 -1
  41. package/dist/doctor-contract-api.js +9 -10
  42. package/dist/light-runtime-api.js +3 -3
  43. package/dist/login-qr-runtime.js +1 -1
  44. package/dist/runtime-api.js +10 -10
  45. package/dist/setup-entry.js +1 -1
  46. package/dist/setup-plugin-api.js +1 -1
  47. package/node_modules/audio-decode/LICENSE +9 -10
  48. package/node_modules/audio-decode/README.md +16 -0
  49. package/node_modules/audio-decode/audio-decode.d.ts +2 -14
  50. package/node_modules/audio-decode/audio-decode.js +4 -92
  51. package/node_modules/audio-decode/meta.js +1 -0
  52. package/node_modules/audio-decode/node_modules/{audio-buffer → @audio/decode}/LICENSE +1 -1
  53. package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.d.ts +52 -0
  54. package/node_modules/audio-decode/node_modules/@audio/decode/audio-decode.js +242 -0
  55. package/node_modules/audio-decode/node_modules/@audio/decode/meta.js +14 -0
  56. package/node_modules/audio-decode/node_modules/@audio/decode/package.json +114 -0
  57. package/node_modules/audio-decode/node_modules/@audio/decode/readme.md +191 -0
  58. package/node_modules/audio-decode/node_modules/@audio/decode/stream.d.ts +12 -0
  59. package/node_modules/audio-decode/node_modules/@audio/decode/stream.js +1 -0
  60. package/node_modules/audio-decode/node_modules/@audio/decode/test.html +52 -0
  61. package/node_modules/audio-decode/node_modules/@audio/decode-aac/LICENSE +9 -0
  62. package/node_modules/audio-decode/node_modules/@audio/decode-aac/README.md +80 -0
  63. package/node_modules/audio-decode/node_modules/@audio/decode-aac/alac.js +326 -0
  64. package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.d.ts +15 -0
  65. package/node_modules/audio-decode/node_modules/@audio/decode-aac/audio.js +10 -0
  66. package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.d.ts +24 -0
  67. package/node_modules/audio-decode/node_modules/@audio/decode-aac/decode-aac.js +452 -0
  68. package/node_modules/audio-decode/node_modules/@audio/decode-aac/meta.js +81 -0
  69. package/node_modules/audio-decode/node_modules/@audio/decode-aac/package.json +63 -0
  70. package/node_modules/audio-decode/node_modules/@audio/decode-aac/src/aac.wasm.js +0 -0
  71. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE +12 -0
  72. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/LICENSE.liba52 +340 -0
  73. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/README.md +41 -0
  74. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.d.ts +15 -0
  75. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/audio.js +9 -0
  76. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.d.ts +20 -0
  77. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/decode-ac3.js +131 -0
  78. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/package.json +64 -0
  79. package/node_modules/audio-decode/node_modules/@audio/decode-ac3/src/ac3.wasm.js +0 -0
  80. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/LICENSE +21 -0
  81. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/README.md +46 -0
  82. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.d.ts +15 -0
  83. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/audio.js +10 -0
  84. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.d.ts +16 -0
  85. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/decode-aiff.js +583 -0
  86. package/node_modules/audio-decode/node_modules/@audio/decode-aiff/package.json +52 -0
  87. package/node_modules/audio-decode/node_modules/@audio/decode-amr/LICENSE +191 -0
  88. package/node_modules/audio-decode/node_modules/@audio/decode-amr/README.md +65 -0
  89. package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.d.ts +15 -0
  90. package/node_modules/audio-decode/node_modules/@audio/decode-amr/audio.js +10 -0
  91. package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.d.ts +16 -0
  92. package/node_modules/audio-decode/node_modules/@audio/decode-amr/decode-amr.js +150 -0
  93. package/node_modules/audio-decode/node_modules/@audio/decode-amr/package.json +58 -0
  94. package/node_modules/audio-decode/node_modules/@audio/decode-amr/src/amr.wasm.js +0 -0
  95. package/node_modules/audio-decode/node_modules/@audio/decode-avi/LICENSE +21 -0
  96. package/node_modules/audio-decode/node_modules/@audio/decode-avi/README.md +53 -0
  97. package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.d.ts +15 -0
  98. package/node_modules/audio-decode/node_modules/@audio/decode-avi/audio.js +9 -0
  99. package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.d.ts +21 -0
  100. package/node_modules/audio-decode/node_modules/@audio/decode-avi/decode-avi.js +241 -0
  101. package/node_modules/audio-decode/node_modules/@audio/decode-avi/package.json +66 -0
  102. package/node_modules/audio-decode/node_modules/@audio/decode-caf/LICENSE +21 -0
  103. package/node_modules/audio-decode/node_modules/@audio/decode-caf/README.md +48 -0
  104. package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.d.ts +15 -0
  105. package/node_modules/audio-decode/node_modules/@audio/decode-caf/audio.js +10 -0
  106. package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.d.ts +16 -0
  107. package/node_modules/audio-decode/node_modules/@audio/decode-caf/decode-caf.js +238 -0
  108. package/node_modules/audio-decode/node_modules/@audio/decode-caf/package.json +53 -0
  109. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/LICENSE +21 -0
  110. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/README.md +73 -0
  111. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.d.ts +21 -0
  112. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/audio.js +15 -0
  113. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.d.ts +29 -0
  114. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/decode-dsd.js +423 -0
  115. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/meta.js +40 -0
  116. package/node_modules/audio-decode/node_modules/@audio/decode-dsd/package.json +64 -0
  117. package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE +12 -0
  118. package/node_modules/audio-decode/node_modules/@audio/decode-dts/LICENSE.libdca +339 -0
  119. package/node_modules/audio-decode/node_modules/@audio/decode-dts/README.md +41 -0
  120. package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.d.ts +15 -0
  121. package/node_modules/audio-decode/node_modules/@audio/decode-dts/audio.js +9 -0
  122. package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.d.ts +20 -0
  123. package/node_modules/audio-decode/node_modules/@audio/decode-dts/decode-dts.js +139 -0
  124. package/node_modules/audio-decode/node_modules/@audio/decode-dts/package.json +64 -0
  125. package/node_modules/audio-decode/node_modules/@audio/decode-dts/src/dts.wasm.js +0 -0
  126. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE +12 -0
  127. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/LICENSE.ffmpeg +502 -0
  128. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/README.md +45 -0
  129. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.d.ts +15 -0
  130. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/audio.js +9 -0
  131. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.d.ts +20 -0
  132. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/decode-eac3.js +124 -0
  133. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/package.json +68 -0
  134. package/node_modules/audio-decode/node_modules/@audio/decode-eac3/src/eac3.wasm.js +0 -0
  135. package/node_modules/audio-decode/node_modules/@audio/decode-flac/LICENSE +25 -0
  136. package/node_modules/audio-decode/node_modules/@audio/decode-flac/README.md +23 -0
  137. package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.d.ts +15 -0
  138. package/node_modules/audio-decode/node_modules/@audio/decode-flac/audio.js +10 -0
  139. package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.d.ts +18 -0
  140. package/node_modules/audio-decode/node_modules/@audio/decode-flac/decode-flac.js +3172 -0
  141. package/node_modules/audio-decode/node_modules/@audio/decode-flac/meta.js +115 -0
  142. package/node_modules/audio-decode/node_modules/@audio/decode-flac/package.json +60 -0
  143. package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE +23 -0
  144. package/node_modules/audio-decode/node_modules/@audio/decode-mod/LICENSE.libopenmpt +25 -0
  145. package/node_modules/audio-decode/node_modules/@audio/decode-mod/README.md +86 -0
  146. package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.d.ts +20 -0
  147. package/node_modules/audio-decode/node_modules/@audio/decode-mod/audio.js +12 -0
  148. package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.d.ts +58 -0
  149. package/node_modules/audio-decode/node_modules/@audio/decode-mod/decode-mod.js +148 -0
  150. package/node_modules/audio-decode/node_modules/@audio/decode-mod/package.json +68 -0
  151. package/node_modules/audio-decode/node_modules/@audio/decode-mod/src/mod.wasm.js +0 -0
  152. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/LICENSE +25 -0
  153. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/README.md +20 -0
  154. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.d.ts +15 -0
  155. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/audio.js +10 -0
  156. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.d.ts +16 -0
  157. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/decode-mp3.js +793 -0
  158. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/meta.js +143 -0
  159. package/node_modules/audio-decode/node_modules/@audio/decode-mp3/package.json +60 -0
  160. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/LICENSE +21 -0
  161. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/README.md +58 -0
  162. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.d.ts +15 -0
  163. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/audio.js +9 -0
  164. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.d.ts +21 -0
  165. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/decode-mp4.js +455 -0
  166. package/node_modules/audio-decode/node_modules/@audio/decode-mp4/package.json +74 -0
  167. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE +31 -0
  168. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/LICENSE.libmpcdec +31 -0
  169. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/README.md +60 -0
  170. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.d.ts +15 -0
  171. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/audio.js +9 -0
  172. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.d.ts +20 -0
  173. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/decode-mpc.js +158 -0
  174. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/package.json +64 -0
  175. package/node_modules/audio-decode/node_modules/@audio/decode-mpc/src/mpc.wasm.js +0 -0
  176. package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE +25 -0
  177. package/node_modules/audio-decode/node_modules/@audio/decode-opus/LICENSE.libopus +44 -0
  178. package/node_modules/audio-decode/node_modules/@audio/decode-opus/README.md +32 -0
  179. package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.d.ts +15 -0
  180. package/node_modules/audio-decode/node_modules/@audio/decode-opus/audio.js +10 -0
  181. package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.d.ts +33 -0
  182. package/node_modules/audio-decode/node_modules/@audio/decode-opus/core.js +147 -0
  183. package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.d.ts +18 -0
  184. package/node_modules/audio-decode/node_modules/@audio/decode-opus/decode-opus.js +1 -0
  185. package/node_modules/audio-decode/node_modules/@audio/decode-opus/meta.js +103 -0
  186. package/node_modules/audio-decode/node_modules/@audio/decode-opus/package.json +68 -0
  187. package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/decode-opus.js +2 -0
  188. package/node_modules/audio-decode/node_modules/@audio/decode-opus/src/opus.wasm.js +0 -0
  189. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/LICENSE +25 -0
  190. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/README.md +19 -0
  191. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.d.ts +15 -0
  192. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/audio.js +10 -0
  193. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.d.ts +16 -0
  194. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/decode-qoa.js +275 -0
  195. package/node_modules/audio-decode/node_modules/@audio/decode-qoa/package.json +56 -0
  196. package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE +21 -0
  197. package/node_modules/audio-decode/node_modules/@audio/decode-tta/LICENSE.ttadec +39 -0
  198. package/node_modules/audio-decode/node_modules/@audio/decode-tta/README.md +58 -0
  199. package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.d.ts +15 -0
  200. package/node_modules/audio-decode/node_modules/@audio/decode-tta/audio.js +9 -0
  201. package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.d.ts +17 -0
  202. package/node_modules/audio-decode/node_modules/@audio/decode-tta/decode-tta.js +302 -0
  203. package/node_modules/audio-decode/node_modules/@audio/decode-tta/package.json +58 -0
  204. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/LICENSE +25 -0
  205. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/README.md +33 -0
  206. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.d.ts +15 -0
  207. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/audio.js +10 -0
  208. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.d.ts +18 -0
  209. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/decode-vorbis.js +2984 -0
  210. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/meta.js +102 -0
  211. package/node_modules/audio-decode/node_modules/@audio/decode-vorbis/package.json +60 -0
  212. package/node_modules/audio-decode/node_modules/@audio/decode-wav/LICENSE +21 -0
  213. package/node_modules/audio-decode/node_modules/@audio/decode-wav/README.md +23 -0
  214. package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.d.ts +15 -0
  215. package/node_modules/audio-decode/node_modules/@audio/decode-wav/audio.js +10 -0
  216. package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.d.ts +8 -0
  217. package/node_modules/audio-decode/node_modules/@audio/decode-wav/decode-wav.js +256 -0
  218. package/node_modules/audio-decode/node_modules/@audio/decode-wav/meta.js +114 -0
  219. package/node_modules/audio-decode/node_modules/@audio/decode-wav/package.json +52 -0
  220. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE +29 -0
  221. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/LICENSE.wavpack +25 -0
  222. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/README.md +41 -0
  223. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.d.ts +15 -0
  224. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/audio.js +9 -0
  225. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.d.ts +18 -0
  226. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/decode-wavpack.js +140 -0
  227. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/package.json +62 -0
  228. package/node_modules/audio-decode/node_modules/@audio/decode-wavpack/src/wavpack.wasm.js +0 -0
  229. package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE +21 -0
  230. package/node_modules/audio-decode/node_modules/@audio/decode-webm/LICENSE.libopus +44 -0
  231. package/node_modules/audio-decode/node_modules/@audio/decode-webm/README.md +59 -0
  232. package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.d.ts +15 -0
  233. package/node_modules/audio-decode/node_modules/@audio/decode-webm/audio.js +10 -0
  234. package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.d.ts +18 -0
  235. package/node_modules/audio-decode/node_modules/@audio/decode-webm/decode-webm.js +141 -0
  236. package/node_modules/audio-decode/node_modules/@audio/decode-webm/package.json +76 -0
  237. package/node_modules/audio-decode/node_modules/@audio/decode-webm/src/opus.wasm.js +0 -0
  238. package/node_modules/audio-decode/node_modules/@audio/decode-wma/LICENSE +12 -0
  239. package/node_modules/audio-decode/node_modules/@audio/decode-wma/README.md +74 -0
  240. package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.d.ts +15 -0
  241. package/node_modules/audio-decode/node_modules/@audio/decode-wma/audio.js +10 -0
  242. package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.d.ts +33 -0
  243. package/node_modules/audio-decode/node_modules/@audio/decode-wma/decode-wma.js +516 -0
  244. package/node_modules/audio-decode/node_modules/@audio/decode-wma/package.json +57 -0
  245. package/node_modules/audio-decode/node_modules/@audio/decode-wma/src/wma.wasm.js +0 -0
  246. package/node_modules/audio-decode/package.json +37 -39
  247. package/node_modules/audio-decode/stream.d.ts +2 -0
  248. package/node_modules/audio-decode/stream.js +2 -0
  249. package/node_modules/baileys/lib/Utils/messages-media.js +1 -1
  250. package/node_modules/baileys/node_modules/file-type/package.json +3 -2
  251. package/node_modules/baileys/node_modules/file-type/readme.md +5 -0
  252. package/node_modules/baileys/node_modules/file-type/source/detectors/zip.js +9 -4
  253. package/node_modules/baileys/node_modules/file-type/source/index.js +28 -1
  254. package/node_modules/baileys/node_modules/file-type/source/supported.js +2 -0
  255. package/node_modules/baileys/node_modules/p-timeout/index.js +3 -0
  256. package/node_modules/baileys/node_modules/p-timeout/package.json +1 -1
  257. package/node_modules/baileys/package.json +1 -1
  258. package/node_modules/typebox/build/compile/code.mjs +1 -2
  259. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  260. package/node_modules/typebox/build/format/iri.mjs +16 -9
  261. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  262. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  263. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  264. package/node_modules/typebox/build/guard/index.mjs +6 -0
  265. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  266. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  267. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  268. package/node_modules/typebox/build/schema/build.mjs +2 -3
  269. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  270. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  271. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  272. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  273. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  274. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  275. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  276. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  277. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  278. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  279. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  280. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  281. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  282. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  283. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  284. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  285. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  286. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  287. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  288. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  289. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  290. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  291. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  292. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  293. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  294. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  295. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  296. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  297. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  298. package/node_modules/typebox/package.json +1 -1
  299. package/node_modules/typebox/readme.md +3 -1
  300. package/package.json +6 -6
  301. package/dist/.setup/doctor-BPb-SjdE.mjs +0 -65
  302. package/dist/.setup/group-config-path-BGyzT9Lg.mjs +0 -54
  303. package/dist/.setup/normalize-DdsROMMa.mjs +0 -2
  304. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  305. package/dist/.setup/runtime-group-policy-DeSRFXEV.mjs +0 -11
  306. package/dist/.setup/setup-plugin-api-CXfU-7vN.mjs +0 -3
  307. package/dist/.setup/text-runtime-CHl0iPYe.mjs +0 -4
  308. package/node_modules/audio-decode/.eslintrc.json +0 -43
  309. package/node_modules/audio-decode/.github/workflows/test.js.yml +0 -31
  310. package/node_modules/audio-decode/.travis.yml +0 -13
  311. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/README.md +0 -293
  312. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js +0 -11646
  313. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js.map +0 -1
  314. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/index.js +0 -8
  315. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/package.json +0 -58
  316. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/EmscriptenWasm.js +0 -0
  317. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoder.js +0 -253
  318. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/OpusMLDecoderWebWorker.js +0 -17
  319. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/types.d.ts +0 -77
  320. package/node_modules/audio-decode/node_modules/audio-buffer/.eslintrc.json +0 -44
  321. package/node_modules/audio-decode/node_modules/audio-buffer/.github/workflows/node.js.yml +0 -31
  322. package/node_modules/audio-decode/node_modules/audio-buffer/.travis.yml +0 -7
  323. package/node_modules/audio-decode/node_modules/audio-buffer/index.js +0 -76
  324. package/node_modules/audio-decode/node_modules/audio-buffer/package.json +0 -37
  325. package/node_modules/audio-decode/node_modules/audio-buffer/readme.md +0 -56
  326. package/node_modules/audio-decode/node_modules/node-wav/README.md +0 -35
  327. package/node_modules/audio-decode/node_modules/node-wav/file.wav +0 -0
  328. package/node_modules/audio-decode/node_modules/node-wav/index.js +0 -291
  329. package/node_modules/audio-decode/node_modules/node-wav/package.json +0 -29
  330. package/node_modules/audio-decode/node_modules/node-wav/tests/file1.wav +0 -0
  331. package/node_modules/audio-decode/node_modules/node-wav/tests/test.js +0 -66
  332. package/node_modules/audio-decode/node_modules/node-wav/x.js +0 -12
  333. package/node_modules/audio-decode/node_modules/node-wav/x.json +0 -86702
  334. package/node_modules/audio-decode/node_modules/node-wav/x.js~ +0 -13
  335. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/README.md +0 -320
  336. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js +0 -232
  337. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js.map +0 -1
  338. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js +0 -0
  339. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js.map +0 -1
  340. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/index.js +0 -8
  341. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/package.json +0 -74
  342. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoder.js +0 -226
  343. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoderWebWorker.js +0 -17
  344. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/types.d.ts +0 -37
  345. package/node_modules/audio-decode/node_modules/opus-decoder/README.md +0 -265
  346. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js +0 -232
  347. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js.map +0 -1
  348. package/node_modules/audio-decode/node_modules/opus-decoder/index.js +0 -8
  349. package/node_modules/audio-decode/node_modules/opus-decoder/package.json +0 -56
  350. package/node_modules/audio-decode/node_modules/opus-decoder/src/EmscriptenWasm.js +0 -0
  351. package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoder.js +0 -239
  352. package/node_modules/audio-decode/node_modules/opus-decoder/src/OpusDecoderWebWorker.js +0 -17
  353. package/node_modules/audio-decode/node_modules/opus-decoder/types.d.ts +0 -74
  354. package/node_modules/audio-decode/readme.md +0 -49
  355. package/node_modules/audio-decode/tea.yaml +0 -6
  356. package/node_modules/audio-decode/test-case.js +0 -11
  357. package/node_modules/audio-decode/test.html +0 -15
  358. package/node_modules/audio-decode/test.js +0 -107
  359. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,17 +1,15 @@
1
- import { a as resolveWhatsAppAccount } from "./accounts-D_NGDjCx.mjs";
1
+ import { a as resolveWhatsAppAccount } from "./accounts-CtRPAQCL.mjs";
2
2
  import { r as resolveDefaultWhatsAppAccountId, t as listAccountIds } from "./account-ids-CB5SOWjc.mjs";
3
- import { c as normalizeWhatsAppTarget, i as looksLikeWhatsAppTargetId, n as isWhatsAppNewsletterJid, o as normalizeWhatsAppAllowFromEntry, s as normalizeWhatsAppMessagingTarget, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
3
+ import { a as normalizeWhatsAppAllowFromEntries, c as normalizeWhatsAppTarget, i as looksLikeWhatsAppTargetId, n as isWhatsAppNewsletterJid, o as normalizeWhatsAppAllowFromEntry, s as normalizeWhatsAppMessagingTarget, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
4
4
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-C2eUvsTc.mjs";
5
- import { c as normalizeWhatsAppPayloadTextPreservingIndentation, i as sendTypingWhatsApp, n as sendPollWhatsApp, o as normalizeWhatsAppOutboundPayload, s as normalizeWhatsAppPayloadText, t as sendMessageWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-C6jDmcL9.mjs";
5
+ import { c as normalizeWhatsAppPayloadTextPreservingIndentation, i as sendTypingWhatsApp, n as sendPollWhatsApp, o as normalizeWhatsAppOutboundPayload, s as normalizeWhatsAppPayloadText, t as sendMessageWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-BGdvf5cC.mjs";
6
6
  import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.mjs";
7
- import "./normalize-DdsROMMa.mjs";
8
- import { c as toWhatsappJid } from "./targets-runtime-RBjx3pg_.mjs";
9
- import "./text-runtime-CHl0iPYe.mjs";
10
- import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth, s as lookupInboundMessageMetaForTarget, t as resolveWhatsAppGroupSessionKey } from "./group-session-key-D22hYMdE.mjs";
11
- import { a as formatWhatsAppConfigAllowFromEntries, o as loadWhatsAppChannelRuntime, t as createWhatsAppPluginBase } from "./shared-C9OEtKgc.mjs";
7
+ import { c as toWhatsappJid } from "./targets-runtime-DmiqXIXO.mjs";
8
+ import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth, s as lookupInboundMessageMetaForTarget, t as resolveWhatsAppGroupSessionKey } from "./group-session-key-2-mja4OF.mjs";
9
+ import { a as loadWhatsAppChannelRuntime, t as createWhatsAppPluginBase } from "./shared-DgOG5Iqr.mjs";
12
10
  import { t as whatsappCommandPolicy } from "./command-policy-BIOSHySD.mjs";
13
- import { f as readWebAuthExistsForDecision, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-Dh8a3cba.mjs";
14
- import { createActionGate as createActionGate$1 } from "openclaw/plugin-sdk/channel-actions";
11
+ import { f as readWebAuthExistsForDecision, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-BBonwKks.mjs";
12
+ import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
15
13
  import { normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-core";
16
14
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
17
15
  import { collectIssuesForEnabledAccounts, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, isRecord as isRecord$1, readAccountStatusSnapshot } from "openclaw/plugin-sdk/status-helpers";
@@ -83,7 +81,7 @@ const whatsappApproval = createApproverRestrictedNativeApprovalCapabilityFromFor
83
81
  approvalKind,
84
82
  request
85
83
  }),
86
- load: async () => (await import("./approval-handler.runtime-C0hzmMSj.mjs")).whatsappApprovalNativeRuntime
84
+ load: async () => (await import("./approval-handler.runtime-CjqMlPOX.mjs")).whatsappApprovalNativeRuntime
87
85
  })
88
86
  });
89
87
  function buildWhatsAppPendingPayload(params, approvalKind) {
@@ -100,13 +98,17 @@ function buildWhatsAppPendingPayload(params, approvalKind) {
100
98
  const whatsappApprovalCapability = whatsappApproval.capability;
101
99
  //#endregion
102
100
  //#region extensions/whatsapp/src/channel-actions.ts
103
- function areWhatsAppAgentReactionsEnabled(params) {
104
- if (!params.cfg.channels?.whatsapp) return false;
105
- if (!createActionGate$1(params.cfg.channels.whatsapp.actions)("reactions")) return false;
106
- return resolveWhatsAppReactionLevel({
101
+ function resolveEnabledWhatsAppAgentReactions(params) {
102
+ if (!params.cfg.channels?.whatsapp) return;
103
+ if (!createActionGate(params.cfg.channels.whatsapp.actions)("reactions")) return;
104
+ const resolved = resolveWhatsAppReactionLevel({
107
105
  cfg: params.cfg,
108
106
  accountId: params.accountId
109
- }).agentReactionsEnabled;
107
+ });
108
+ return resolved.agentReactionsEnabled ? resolved : void 0;
109
+ }
110
+ function resolveWhatsAppAgentReactionGuidance(params) {
111
+ return resolveEnabledWhatsAppAgentReactions(params)?.agentReactionGuidance;
110
112
  }
111
113
  function hasAnyWhatsAppAccountWithAgentReactionsEnabled(cfg) {
112
114
  if (!cfg.channels?.whatsapp) return false;
@@ -115,30 +117,20 @@ function hasAnyWhatsAppAccountWithAgentReactionsEnabled(cfg) {
115
117
  cfg,
116
118
  accountId
117
119
  }).enabled) return false;
118
- return areWhatsAppAgentReactionsEnabled({
120
+ return Boolean(resolveEnabledWhatsAppAgentReactions({
119
121
  cfg,
120
122
  accountId
121
- });
122
- });
123
- }
124
- function resolveWhatsAppAgentReactionGuidance(params) {
125
- if (!params.cfg.channels?.whatsapp) return;
126
- if (!createActionGate$1(params.cfg.channels.whatsapp.actions)("reactions")) return;
127
- const resolved = resolveWhatsAppReactionLevel({
128
- cfg: params.cfg,
129
- accountId: params.accountId
123
+ }));
130
124
  });
131
- if (!resolved.agentReactionsEnabled) return;
132
- return resolved.agentReactionGuidance;
133
125
  }
134
126
  function describeWhatsAppMessageActions(params) {
135
127
  if (!params.cfg.channels?.whatsapp) return null;
136
- const gate = createActionGate$1(params.cfg.channels.whatsapp.actions);
128
+ const gate = createActionGate(params.cfg.channels.whatsapp.actions);
137
129
  const actions = /* @__PURE__ */ new Set();
138
- if (params.accountId != null ? areWhatsAppAgentReactionsEnabled({
130
+ if (params.accountId != null ? Boolean(resolveEnabledWhatsAppAgentReactions({
139
131
  cfg: params.cfg,
140
- accountId: params.accountId ?? void 0
141
- }) : hasAnyWhatsAppAccountWithAgentReactionsEnabled(params.cfg)) actions.add("react");
132
+ accountId: params.accountId
133
+ })) : hasAnyWhatsAppAccountWithAgentReactionsEnabled(params.cfg)) actions.add("react");
142
134
  if (gate("polls")) actions.add("poll");
143
135
  actions.add("upload-file");
144
136
  return { actions: Array.from(actions) };
@@ -148,12 +140,7 @@ function describeWhatsAppMessageActions(params) {
148
140
  const WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS = ["sendWhatsApp"];
149
141
  //#endregion
150
142
  //#region extensions/whatsapp/src/outbound-base.ts
151
- function resolveQuoteLookupAccountId(cfg, accountId) {
152
- const explicitAccountId = normalizeOptionalAccountId(accountId);
153
- if (explicitAccountId) return explicitAccountId;
154
- return resolveDefaultWhatsAppAccountId(cfg ?? {});
155
- }
156
- function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, shouldLogVerbose, resolveTarget, normalizeText = normalizeWhatsAppPayloadText, skipEmptyText = true }) {
143
+ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, shouldLogVerbose, resolveTarget, normalizeText = normalizeWhatsAppPayloadText }) {
157
144
  const resolveQuotedMessageKey = (params) => {
158
145
  const replyToId = params.replyToId?.trim();
159
146
  if (!replyToId) return;
@@ -169,8 +156,8 @@ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, sho
169
156
  media: cachedMeta?.media
170
157
  };
171
158
  };
172
- const dispatchMessage = async (params, text, mediaOptions, mediaDeliveryOptions) => {
173
- const lookupAccountId = resolveQuoteLookupAccountId(params.cfg, params.accountId);
159
+ const dispatchMessage = async (params, text, mediaOptions) => {
160
+ const lookupAccountId = normalizeOptionalAccountId(params.accountId) ?? resolveDefaultWhatsAppAccountId(params.cfg);
174
161
  const quotedMessageKey = resolveQuotedMessageKey({
175
162
  accountId: lookupAccountId,
176
163
  to: params.to,
@@ -184,7 +171,6 @@ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, sho
184
171
  ...mediaOptions,
185
172
  accountId: params.accountId ?? void 0,
186
173
  gifPlayback: params.gifPlayback,
187
- ...mediaDeliveryOptions,
188
174
  replyToIdSource: params.replyToIdSource,
189
175
  replyToMode: params.replyToMode,
190
176
  formatting: params.formatting,
@@ -210,7 +196,7 @@ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, sho
210
196
  channel: "whatsapp",
211
197
  sendText: async (params) => {
212
198
  const normalizedText = normalizeText(params.text);
213
- if (skipEmptyText && !normalizedText) return { messageId: "" };
199
+ if (!normalizedText) return { messageId: "" };
214
200
  return await dispatchMessage(params, normalizedText);
215
201
  },
216
202
  sendMedia: async (params) => await dispatchMessage(params, void 0, {
@@ -218,8 +204,9 @@ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, sho
218
204
  mediaAccess: params.mediaAccess,
219
205
  mediaLocalRoots: params.mediaLocalRoots,
220
206
  mediaReadFile: params.mediaReadFile,
221
- ...params.audioAsVoice === void 0 ? {} : { audioAsVoice: params.audioAsVoice }
222
- }, { forceDocument: params.forceDocument }),
207
+ ...params.audioAsVoice === void 0 ? {} : { audioAsVoice: params.audioAsVoice },
208
+ forceDocument: params.forceDocument
209
+ }),
223
210
  sendPoll: async ({ cfg, to, poll, accountId }) => await sendPollWhatsApp(to, poll, {
224
211
  verbose: shouldLogVerbose(),
225
212
  accountId: accountId ?? void 0,
@@ -251,15 +238,8 @@ function createWhatsAppOutboundBase({ sendMessageWhatsApp, sendPollWhatsApp, sho
251
238
  }
252
239
  //#endregion
253
240
  //#region extensions/whatsapp/src/channel-outbound.ts
254
- const loadWhatsAppApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-BnXw-UZI.mjs").then((n) => n.t));
255
- const loadWhatsAppQuestionReactionsModule = createLazyRuntimeModule(() => import("./question-reactions-D3Zq9Gbn.mjs").then((n) => n.n));
256
- function normalizeWhatsAppChannelPayloadText(text) {
257
- return normalizeWhatsAppPayloadTextPreservingIndentation(text);
258
- }
259
- function normalizeWhatsAppChannelSendText(text) {
260
- const normalized = normalizeWhatsAppChannelPayloadText(text);
261
- return normalized.trim() ? normalized : "";
262
- }
241
+ const loadWhatsAppApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-DiOFvb1s.mjs").then((n) => n.t));
242
+ const loadWhatsAppQuestionReactionsModule = createLazyRuntimeModule(() => import("./question-reactions-CPyyi5AY.mjs").then((n) => n.n));
263
243
  async function prepareWhatsAppApprovalPayloadForDelivery(params) {
264
244
  const questionPayload = questionGatewayRuntime.prepareReactionPayloadForDelivery({
265
245
  payload: params.payload,
@@ -288,14 +268,14 @@ const whatsappChannelOutbound = {
288
268
  allowFrom,
289
269
  mode
290
270
  }),
291
- normalizeText: normalizeWhatsAppChannelSendText
271
+ normalizeText: normalizeWhatsAppPayloadTextPreservingIndentation
292
272
  }),
293
273
  sendTextOnlyErrorPayloads: true,
294
274
  renderPresentation: prepareWhatsAppApprovalPayloadForDelivery,
295
275
  afterDeliverPayload: registerDeliveredWhatsAppApprovalPayload,
296
276
  normalizePayload: ({ payload }) => ({
297
277
  ...payload,
298
- text: normalizeWhatsAppChannelPayloadText(payload.text)
278
+ text: normalizeWhatsAppPayloadTextPreservingIndentation(payload.text)
299
279
  })
300
280
  };
301
281
  function toWhatsAppMessageSendResult(result, replyToId) {
@@ -441,88 +421,56 @@ function collectWhatsAppStatusIssues(accounts) {
441
421
  const lastDisconnect = readLastDisconnect(account.lastDisconnect);
442
422
  const lastError = normalizeOptionalString(account.lastError) ?? lastDisconnect?.error;
443
423
  const healthState = normalizeOptionalString(account.healthState);
444
- if (statusState === "unstable") {
424
+ const addIssue = (kind, message, fix) => {
445
425
  issues.push({
446
426
  channel: "whatsapp",
447
427
  accountId,
448
- kind: "auth",
449
- message: "Auth state is still stabilizing.",
450
- fix: "Wait a moment for queued credential writes to finish, then retry the command or rerun health."
428
+ kind,
429
+ message,
430
+ fix
451
431
  });
452
- return;
453
- }
454
- if (healthState === "logged-out") {
455
- issues.push({
456
- channel: "whatsapp",
457
- accountId,
458
- kind: "auth",
459
- message: `Session logged out${lastError ? `: ${lastError}` : "."}`,
460
- fix: `Run: ${formatCliCommand("openclaw channels login")} (scan QR on the gateway host).`
461
- });
462
- return;
463
- }
464
- if (!linked) {
465
- issues.push({
466
- channel: "whatsapp",
467
- accountId,
468
- kind: "auth",
469
- message: "Not linked (no WhatsApp Web session).",
470
- fix: `Run: ${formatCliCommand("openclaw channels login")} (scan QR on the gateway host).`
471
- });
472
- return;
473
- }
432
+ };
433
+ const relink = `Run: ${formatCliCommand("openclaw channels login")} (scan QR on the gateway host).`;
434
+ const repair = `Run: ${formatCliCommand("openclaw doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`;
435
+ const linkedRuntimePrefix = linked ? "Linked but " : "";
436
+ if (statusState === "unstable") addIssue("auth", "Auth state is still stabilizing.", "Wait a moment for queued credential writes to finish, then retry the command or rerun health.");
437
+ else if (healthState === "logged-out") addIssue("auth", `Session logged out${lastError ? `: ${lastError}` : "."}`, relink);
438
+ else if (!linked) addIssue("auth", "Not linked (no WhatsApp Web session).", relink);
439
+ if (healthState === "logged-out") return;
440
+ if (!linked && healthState === "stopped" && !lastError && lastDisconnect?.at == null && (reconnectAttempts ?? 0) === 0) return;
474
441
  if (healthState === "stale") {
475
- const staleSuffix = lastInboundAt != null ? ` (last inbound ${Math.max(0, Math.floor((Date.now() - lastInboundAt) / 6e4))}m ago)` : "";
476
- issues.push({
477
- channel: "whatsapp",
478
- accountId,
479
- kind: "runtime",
480
- message: `Linked but stale${staleSuffix}${lastError ? `: ${lastError}` : "."}`,
481
- fix: `Run: ${formatCliCommand("openclaw doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`
482
- });
442
+ addIssue("runtime", `${linkedRuntimePrefix}stale${lastInboundAt != null ? ` (last inbound ${Math.max(0, Math.floor((Date.now() - lastInboundAt) / 6e4))}m ago)` : ""}${lastError ? `: ${lastError}` : "."}`, repair);
483
443
  return;
484
444
  }
485
445
  if (healthState === "reconnecting" || healthState === "conflict" || healthState === "stopped") {
486
- const stateLabel = healthState === "conflict" ? "session conflict" : healthState === "reconnecting" ? "reconnecting" : "stopped";
487
- issues.push({
488
- channel: "whatsapp",
489
- accountId,
490
- kind: "runtime",
491
- message: `Linked but ${stateLabel}${reconnectAttempts != null ? ` (reconnectAttempts=${reconnectAttempts})` : ""}${lastError ? `: ${lastError}` : "."}`,
492
- fix: `Run: ${formatCliCommand("openclaw doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`
493
- });
446
+ addIssue("runtime", `${linkedRuntimePrefix}${healthState === "conflict" ? "session conflict" : healthState === "reconnecting" ? "reconnecting" : "stopped"}${reconnectAttempts != null ? ` (reconnectAttempts=${reconnectAttempts})` : ""}${lastError ? `: ${lastError}` : "."}`, repair);
494
447
  return;
495
448
  }
496
449
  if (linked && running && connected && reconnectAttempts != null && reconnectAttempts > 0 && isRecentDisconnect(lastDisconnect)) {
497
- issues.push({
498
- channel: "whatsapp",
499
- accountId,
500
- kind: "runtime",
501
- message: `Linked but recently reconnected (reconnectAttempts=${reconnectAttempts})${lastError ? `: ${lastError}` : "."}`,
502
- fix: `Watch: ${formatCliCommand("openclaw logs --follow")} and run ${formatCliCommand("openclaw channels status --probe")} if disconnects continue. If it keeps flapping, restart the gateway or relink via channels login.`
503
- });
450
+ addIssue("runtime", `Linked but recently reconnected (reconnectAttempts=${reconnectAttempts})${lastError ? `: ${lastError}` : "."}`, `Watch: ${formatCliCommand("openclaw logs --follow")} and run ${formatCliCommand("openclaw channels status --probe")} if disconnects continue. If it keeps flapping, restart the gateway or relink via channels login.`);
504
451
  return;
505
452
  }
506
- if (running && !connected) issues.push({
507
- channel: "whatsapp",
508
- accountId,
509
- kind: "runtime",
510
- message: `Linked but disconnected${reconnectAttempts != null ? ` (reconnectAttempts=${reconnectAttempts})` : ""}${lastError ? `: ${lastError}` : "."}`,
511
- fix: `Run: ${formatCliCommand("openclaw doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`
512
- });
453
+ if (running && !connected) addIssue("runtime", `${linkedRuntimePrefix}disconnected${reconnectAttempts != null ? ` (reconnectAttempts=${reconnectAttempts})` : ""}${lastError ? `: ${lastError}` : "."}`, repair);
513
454
  }
514
455
  });
515
456
  }
516
457
  //#endregion
517
458
  //#region extensions/whatsapp/src/channel.ts
518
- const loadWhatsAppDirectoryConfig = createLazyRuntimeModule(() => import("./directory-config-BHPoBklt.mjs").then((n) => n.t));
519
- const loadWhatsAppChannelReactAction = createLazyRuntimeModule(() => import("./channel-react-action-1iBiEnq7.mjs"));
520
- function resolveWhatsAppTargetInfo(raw) {
521
- const normalized = normalizeWhatsAppTarget(raw);
522
- if (!normalized) return null;
459
+ const loadWhatsAppDirectoryConfig = createLazyRuntimeModule(() => import("./directory-config-DUiJ5d8I.mjs").then((n) => n.t));
460
+ const loadWhatsAppChannelReactAction = createLazyRuntimeModule(() => import("./channel-react-action-2r_hjLZV.mjs"));
461
+ function projectWhatsAppRuntimeStatus(runtime) {
523
462
  return {
524
- to: normalized,
525
- chatType: isWhatsAppGroupJid(normalized) ? "group" : isWhatsAppNewsletterJid(normalized) ? "channel" : "direct"
463
+ connected: runtime?.connected ?? false,
464
+ reconnectAttempts: runtime?.reconnectAttempts,
465
+ lastConnectedAt: runtime?.lastConnectedAt ?? null,
466
+ lastDisconnect: runtime?.lastDisconnect ?? null,
467
+ lastInboundAt: runtime?.lastInboundAt ?? runtime?.lastMessageAt ?? null,
468
+ lastMessageAt: runtime?.lastMessageAt ?? null,
469
+ lastEventAt: runtime?.lastEventAt ?? null,
470
+ busy: runtime?.busy ?? false,
471
+ lastRunActivityAt: runtime?.lastRunActivityAt ?? null,
472
+ healthState: runtime?.healthState ?? void 0,
473
+ ...runtime?.terminalDisconnect ? { terminalDisconnect: runtime.terminalDisconnect } : {}
526
474
  };
527
475
  }
528
476
  function resolveWhatsAppMessageActionTarget(params) {
@@ -547,7 +495,7 @@ const whatsappPlugin = createChatChannelPlugin({
547
495
  allowlist: buildDmGroupAccountAllowlistAdapter({
548
496
  channelId: "whatsapp",
549
497
  resolveAccount: resolveWhatsAppAccount,
550
- normalize: ({ values }) => formatWhatsAppConfigAllowFromEntries(values),
498
+ normalize: ({ values }) => normalizeWhatsAppAllowFromEntries(values),
551
499
  resolveDmAllowFrom: (account) => account.allowFrom,
552
500
  resolveGroupAllowFrom: (account) => account.groupAllowFrom,
553
501
  resolveDmPolicy: (account) => account.dmPolicy,
@@ -581,8 +529,11 @@ const whatsappPlugin = createChatChannelPlugin({
581
529
  messaging: {
582
530
  targetPrefixes: ["whatsapp"],
583
531
  normalizeTarget: normalizeWhatsAppMessagingTarget,
584
- resolveOutboundSessionRoute: (params) => resolveWhatsAppOutboundSessionRoute(params),
585
- inferTargetChatType: ({ to }) => resolveWhatsAppTargetInfo(to)?.chatType,
532
+ resolveOutboundSessionRoute: resolveWhatsAppOutboundSessionRoute,
533
+ inferTargetChatType: ({ to }) => {
534
+ const normalized = normalizeWhatsAppTarget(to);
535
+ return !normalized ? void 0 : isWhatsAppGroupJid(normalized) ? "group" : isWhatsAppNewsletterJid(normalized) ? "channel" : "direct";
536
+ },
586
537
  targetResolver: {
587
538
  looksLikeId: looksLikeWhatsAppTargetId,
588
539
  hint: "<E.164|group JID|newsletter JID>"
@@ -682,34 +633,21 @@ const whatsappPlugin = createChatChannelPlugin({
682
633
  }
683
634
  };
684
635
  const linked = snapshot.healthState === "logged-out" ? false : typeof snapshot.linked === "boolean" ? snapshot.linked : auth.state === "unstable" ? void 0 : auth.state === "linked";
685
- const summaryAuthState = auth.state === "unstable" ? auth.state : linked === true ? "linked" : linked === false ? "not-linked" : void 0;
686
- const statusState = summaryAuthState === void 0 ? void 0 : summaryAuthState;
687
- const authAgeMs = typeof linked === "boolean" && linked ? auth.authAgeMs : null;
688
- const self = typeof linked === "boolean" && linked ? auth.selfId : {
689
- e164: null,
690
- jid: null,
691
- lid: null
692
- };
636
+ const statusState = auth.state === "unstable" ? auth.state : linked === true ? "linked" : linked === false ? "not-linked" : void 0;
693
637
  return {
694
638
  configured: Boolean(account.authDir),
695
639
  ...statusState ? { statusState } : {},
696
640
  ...typeof linked === "boolean" ? { linked } : {},
697
- authAgeMs,
698
- self,
641
+ authAgeMs: linked ? auth.authAgeMs : null,
642
+ self: linked ? auth.selfId : {
643
+ e164: null,
644
+ jid: null,
645
+ lid: null
646
+ },
699
647
  running: snapshot.running ?? false,
700
- connected: snapshot.connected ?? false,
701
- lastConnectedAt: snapshot.lastConnectedAt ?? null,
702
- lastDisconnect: snapshot.lastDisconnect ?? null,
703
- reconnectAttempts: snapshot.reconnectAttempts,
704
- lastInboundAt: snapshot.lastInboundAt ?? snapshot.lastMessageAt ?? null,
705
- lastMessageAt: snapshot.lastMessageAt ?? null,
706
- lastEventAt: snapshot.lastEventAt ?? null,
707
- busy: snapshot.busy ?? false,
708
- lastRunActivityAt: snapshot.lastRunActivityAt ?? null,
648
+ ...projectWhatsAppRuntimeStatus(snapshot),
709
649
  lastError: snapshot.lastError ?? null,
710
- healthState: snapshot.healthState ?? void 0,
711
- lifecycle: snapshot.lifecycle ?? void 0,
712
- ...snapshot.terminalDisconnect ? { terminalDisconnect: snapshot.terminalDisconnect } : {}
650
+ lifecycle: snapshot.lifecycle ?? void 0
713
651
  };
714
652
  },
715
653
  resolveAccountSnapshot: ({ account, runtime }) => {
@@ -724,17 +662,7 @@ const whatsappPlugin = createChatChannelPlugin({
724
662
  statusState: "not-linked",
725
663
  linked: false
726
664
  } : {},
727
- connected: runtime?.connected ?? false,
728
- reconnectAttempts: runtime?.reconnectAttempts,
729
- lastConnectedAt: runtime?.lastConnectedAt ?? null,
730
- lastDisconnect: runtime?.lastDisconnect ?? null,
731
- lastInboundAt: runtime?.lastInboundAt ?? runtime?.lastMessageAt ?? null,
732
- lastMessageAt: runtime?.lastMessageAt ?? null,
733
- lastEventAt: runtime?.lastEventAt ?? null,
734
- busy: runtime?.busy ?? false,
735
- lastRunActivityAt: runtime?.lastRunActivityAt ?? null,
736
- healthState: runtime?.healthState ?? void 0,
737
- ...runtime?.terminalDisconnect ? { terminalDisconnect: runtime.terminalDisconnect } : {},
665
+ ...projectWhatsAppRuntimeStatus(runtime),
738
666
  dmPolicy: account.dmPolicy,
739
667
  allowFrom: account.allowFrom
740
668
  }
@@ -1,8 +1,7 @@
1
- import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-D_NGDjCx.mjs";
1
+ import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-CtRPAQCL.mjs";
2
2
  import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
3
- import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-DZZFamfl.mjs";
4
- import { a as sendWhatsAppUploadFile } from "./send-C6jDmcL9.mjs";
5
- import "./normalize-DdsROMMa.mjs";
3
+ import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-DeVk5V7r.mjs";
4
+ import { a as sendWhatsAppUploadFile } from "./send-BGdvf5cC.mjs";
6
5
  import { jsonResult, readStringOrNumberParam, readStringParam as readStringParam$1, resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
7
6
  import { canonicalizeBase64, estimateBase64DecodedBytes } from "openclaw/plugin-sdk/media-runtime";
8
7
  import { readBooleanParam } from "openclaw/plugin-sdk/boolean-param";
@@ -14,9 +13,6 @@ function readUploadFileMediaSource(args) {
14
13
  function readUploadFileCaptionText(args) {
15
14
  return readStringParam$1(args, "message", { allowEmpty: true }) ?? readStringParam$1(args, "content", { allowEmpty: true }) ?? readStringParam$1(args, "caption", { allowEmpty: true }) ?? "";
16
15
  }
17
- function hasUploadFileBufferPayload(args) {
18
- return readStringParam$1(args, "buffer", { trim: false }) !== void 0;
19
- }
20
16
  function readWhatsAppActionChatJid(params) {
21
17
  const explicit = readStringParam$1(params.params, "chatJid") ?? readStringParam$1(params.params, "to");
22
18
  if (explicit) return explicit;
@@ -46,7 +42,7 @@ async function handleWhatsAppUploadFileAction(params) {
46
42
  const encodedPayload = readStringParam$1(params.params, "buffer", { trim: false });
47
43
  const contentType = readStringParam$1(params.params, "contentType") ?? readStringParam$1(params.params, "mimeType");
48
44
  const fileName = readStringParam$1(params.params, "filename") ?? readStringParam$1(params.params, "fileName");
49
- if (!mediaUrl && !hasUploadFileBufferPayload(params.params)) throw new Error("WhatsApp upload-file requires media, mediaUrl, filePath, path, fileUrl, or buffer.");
45
+ if (!mediaUrl && encodedPayload === void 0) throw new Error("WhatsApp upload-file requires media, mediaUrl, filePath, path, fileUrl, or buffer.");
50
46
  const to = readWhatsAppActionChatJid(params) ?? readStringParam$1(params.params, "to", { required: true });
51
47
  const resolved = resolveAuthorizedWhatsAppOutboundTarget({
52
48
  cfg: params.cfg,
@@ -1,9 +1,9 @@
1
1
  import { startWebLoginWithQr as startWebLoginWithQr$1, waitForWebLogin as waitForWebLogin$1 } from "../login-qr-runtime.js";
2
- import { c as logoutWeb, d as readWebAuthExistsBestEffort, f as readWebAuthExistsForDecision, g as readWebSelfId, h as readWebAuthState, m as readWebAuthSnapshotBestEffort, o as getWebAuthAgeMs, p as readWebAuthSnapshot, s as logWebSelfId, x as webAuthExists } from "./auth-store-Dh8a3cba.mjs";
2
+ import { c as logoutWeb, d as readWebAuthExistsBestEffort, f as readWebAuthExistsForDecision, g as readWebSelfId, h as readWebAuthState, m as readWebAuthSnapshotBestEffort, o as getWebAuthAgeMs, p as readWebAuthSnapshot, s as logWebSelfId, x as webAuthExists } from "./auth-store-BBonwKks.mjs";
3
3
  import { t as getActiveWebListener } from "./active-listener-CDjoX9QR.mjs";
4
- import { t as monitorWebChannel } from "./monitor-BblvzLpX.mjs";
5
- import { t as loginWeb } from "./login-2dmd1TfE.mjs";
6
- import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-Cd3wN5HD.mjs";
4
+ import { t as monitorWebChannel } from "./monitor-CGpV2VNN.mjs";
5
+ import { t as loginWeb } from "./login-BFlvSh9h.mjs";
6
+ import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-43fj197P.mjs";
7
7
  //#region extensions/whatsapp/src/channel.runtime.ts
8
8
  async function startWebLoginWithQr(...args) {
9
9
  return await startWebLoginWithQr$1(...args);
@@ -1,4 +1,4 @@
1
- import { t as createWhatsAppPluginBase } from "./shared-C9OEtKgc.mjs";
1
+ import { t as createWhatsAppPluginBase } from "./shared-DgOG5Iqr.mjs";
2
2
  //#region extensions/whatsapp/src/channel.setup.ts
3
3
  const whatsappSetupPlugin = { ...createWhatsAppPluginBase() };
4
4
  //#endregion
@@ -1,43 +1,11 @@
1
1
  import { r as getWhatsAppChannelRuntime } from "./runtime-BLlToOi6.mjs";
2
2
  import { n as WHATSAPP_CONNECTION_OWNER_PENDING_CAPABILITY, t as WHATSAPP_CONNECTION_CONTROLLER_CAPABILITY } from "./connection-controller-runtime-context-hgLJoRc8.mjs";
3
- import { M as waitForCredsSaveQueueWithTimeout, c as logoutWeb, f as readWebAuthExistsForDecision, k as resolveComparableIdentity, r as WhatsAppAuthUnstableError } from "./auth-store-Dh8a3cba.mjs";
4
- import { a as waitForWaConnection, m as acquireWhatsAppGatewayConnectionOwner, o as DEFAULT_WHATSAPP_SOCKET_TIMING, r as createWaSocket, t as closeWhatsAppSocketAndWait } from "./socket-close-CCVSFufF.mjs";
5
- import { n as getStatusCode, t as formatError } from "./session-errors-JuazczrA.mjs";
6
- import { computeBackoff, info, sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
3
+ import { M as waitForCredsSaveQueueWithTimeout, c as logoutWeb, f as readWebAuthExistsForDecision, k as resolveComparableIdentity, r as WhatsAppAuthUnstableError } from "./auth-store-BBonwKks.mjs";
4
+ import { d as DEFAULT_WHATSAPP_SOCKET_TIMING, i as waitForWaConnection, o as computeBackoff, r as createWaSocket, t as closeWhatsAppSocketAndWait, u as sleepWithAbort, y as acquireWhatsAppGatewayConnectionOwner } from "./socket-close-CT__V2fz.mjs";
5
+ import { n as getStatusCode, t as formatError } from "./session-errors-B8UcAnZN.mjs";
6
+ import { info } from "openclaw/plugin-sdk/runtime-env";
7
7
  import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
8
- import { clamp } from "openclaw/plugin-sdk/text-utility-runtime";
9
- import { randomUUID } from "node:crypto";
10
- //#region extensions/whatsapp/src/reconnect.ts
11
- const DEFAULT_HEARTBEAT_SECONDS = 60;
12
- const DEFAULT_RECONNECT_POLICY = {
13
- initialMs: 2e3,
14
- maxMs: 3e4,
15
- factor: 1.8,
16
- jitter: .25,
17
- maxAttempts: 12
18
- };
19
- function resolveHeartbeatSeconds(cfg, overrideSeconds) {
20
- const candidate = overrideSeconds;
21
- if (typeof candidate === "number" && candidate > 0) return candidate;
22
- return DEFAULT_HEARTBEAT_SECONDS;
23
- }
24
- function resolveReconnectPolicy(cfg, overrides) {
25
- const overrideConfig = overrides ?? {};
26
- const merged = {
27
- ...DEFAULT_RECONNECT_POLICY,
28
- ...overrideConfig
29
- };
30
- merged.initialMs = Math.max(250, merged.initialMs);
31
- merged.maxMs = Math.max(merged.initialMs, merged.maxMs);
32
- merged.factor = clamp(merged.factor, 1.1, 10);
33
- merged.jitter = clamp(merged.jitter, 0, 1);
34
- merged.maxAttempts = Math.max(0, Math.floor(merged.maxAttempts));
35
- return merged;
36
- }
37
- function newConnectionId() {
38
- return randomUUID();
39
- }
40
- //#endregion
8
+ import { createDeferred } from "openclaw/plugin-sdk/extension-shared";
41
9
  //#region extensions/whatsapp/src/connection-controller.ts
42
10
  const LOGGED_OUT_STATUS = 401;
43
11
  const POST_PAIRING_RESTART_STATUS = 515;
@@ -62,15 +30,7 @@ function getLoginSocketRestartMessage(kind) {
62
30
  return kind === "timeout" ? WHATSAPP_LOGIN_TIMEOUT_RESTART_MESSAGE : WHATSAPP_LOGIN_RESTART_MESSAGE;
63
31
  }
64
32
  function createLiveConnection(params) {
65
- let closeResolved = false;
66
- let resolveClosePromise = (_reason) => {};
67
- const closePromise = new Promise((resolve) => {
68
- resolveClosePromise = (reason) => {
69
- if (closeResolved) return;
70
- closeResolved = true;
71
- resolve(reason);
72
- };
73
- });
33
+ const close = createDeferred();
74
34
  return {
75
35
  connectionId: params.connectionId,
76
36
  startedAt: Date.now(),
@@ -85,8 +45,8 @@ function createLiveConnection(params) {
85
45
  unregisterTransportActivity: null,
86
46
  openedAfterRecentInbound: params.openedAfterRecentInbound,
87
47
  backgroundTasks: /* @__PURE__ */ new Set(),
88
- closePromise,
89
- resolveClose: resolveClosePromise,
48
+ closePromise: close.promise,
49
+ resolveClose: close.resolve,
90
50
  socketClosed: false
91
51
  };
92
52
  }
@@ -259,7 +219,7 @@ var WhatsAppConnectionController = class {
259
219
  this.watchdogCheckMs = params.watchdogCheckMs;
260
220
  this.reconnectPolicy = params.reconnectPolicy;
261
221
  this.abortSignal = params.abortSignal;
262
- this.sleep = params.sleep ?? ((ms, signal) => sleepWithAbort(ms, signal));
222
+ this.sleep = params.sleep ?? sleepWithAbort;
263
223
  this.isNonRetryableStatus = params.isNonRetryableStatus ?? (() => false);
264
224
  this.socketTiming = {
265
225
  ...DEFAULT_WHATSAPP_SOCKET_TIMING,
@@ -456,11 +416,11 @@ var WhatsAppConnectionController = class {
456
416
  ]);
457
417
  }
458
418
  normalizeCloseReason(reason) {
459
- const statusCode = (typeof reason === "object" && reason && "status" in reason ? reason.status : void 0) ?? void 0;
419
+ const statusCode = reason?.status ?? void 0;
460
420
  return {
461
421
  statusCode,
462
422
  statusLabel: typeof statusCode === "number" ? statusCode : "unknown",
463
- isLoggedOut: typeof reason === "object" && reason !== null && "isLoggedOut" in reason && reason.isLoggedOut === true,
423
+ isLoggedOut: reason.isLoggedOut,
464
424
  error: reason?.error,
465
425
  errorText: formatError(reason)
466
426
  };
@@ -482,18 +442,8 @@ var WhatsAppConnectionController = class {
482
442
  healthState: "conflict",
483
443
  normalized
484
444
  };
485
- const retryDecision = this.consumeReconnectAttempt();
486
- if (retryDecision.action === "stop") return {
487
- action: "stop",
488
- reconnectAttempts: retryDecision.reconnectAttempts,
489
- healthState: retryDecision.healthState,
490
- normalized
491
- };
492
445
  return {
493
- action: "retry",
494
- delayMs: retryDecision.delayMs,
495
- reconnectAttempts: retryDecision.reconnectAttempts,
496
- healthState: retryDecision.healthState,
446
+ ...this.consumeReconnectAttempt(),
497
447
  normalized
498
448
  };
499
449
  }
@@ -686,4 +636,4 @@ var WhatsAppConnectionController = class {
686
636
  }
687
637
  };
688
638
  //#endregion
689
- export { closeWaSocketSoon as a, computeBackoff as c, resolveReconnectPolicy as d, sleepWithAbort as f, closeWaSocket as i, newConnectionId as l, WHATSAPP_WATCHDOG_TIMEOUT_ERROR as n, waitForWhatsAppLoginResult as o, WhatsAppConnectionController as r, DEFAULT_RECONNECT_POLICY as s, WHATSAPP_LOGGED_OUT_QR_MESSAGE as t, resolveHeartbeatSeconds as u };
639
+ export { closeWaSocketSoon as a, closeWaSocket as i, WHATSAPP_WATCHDOG_TIMEOUT_ERROR as n, waitForWhatsAppLoginResult as o, WhatsAppConnectionController as r, WHATSAPP_LOGGED_OUT_QR_MESSAGE as t };
@@ -34,15 +34,9 @@ function resolveWebCredsParentCheck(filePath) {
34
34
  messagePrefix: "WhatsApp credential file path"
35
35
  };
36
36
  }
37
- async function assertWebCredsParentPathSafe(filePath) {
38
- await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
39
- }
40
- function assertWebCredsParentPathSafeSync(filePath) {
41
- assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
42
- }
43
37
  async function assertWebCredsPathRegularFileOrMissing(filePath) {
44
38
  try {
45
- await assertWebCredsParentPathSafe(filePath);
39
+ await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
46
40
  await statRegularFile(filePath);
47
41
  } catch (error) {
48
42
  throw new Error(`WhatsApp credential file path is unsafe; creds.json must be a regular file or missing: ${filePath}`, { cause: error });
@@ -50,7 +44,7 @@ async function assertWebCredsPathRegularFileOrMissing(filePath) {
50
44
  }
51
45
  function readWebCredsJsonRawSync(filePath) {
52
46
  try {
53
- assertWebCredsParentPathSafeSync(filePath);
47
+ assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
54
48
  const { buffer, stat } = readRegularFileSync({ filePath });
55
49
  return stat.size > 1 ? buffer.toString("utf-8") : null;
56
50
  } catch {
@@ -59,7 +53,7 @@ function readWebCredsJsonRawSync(filePath) {
59
53
  }
60
54
  async function readWebCredsJsonRaw(filePath) {
61
55
  try {
62
- await assertWebCredsParentPathSafe(filePath);
56
+ await assertNoSymlinkParents(resolveWebCredsParentCheck(filePath));
63
57
  const { buffer, stat } = await readRegularFile({ filePath });
64
58
  return stat.size > 1 ? buffer.toString("utf-8") : null;
65
59
  } catch {
@@ -68,7 +62,7 @@ async function readWebCredsJsonRaw(filePath) {
68
62
  }
69
63
  function statWebCredsFileSync(filePath) {
70
64
  try {
71
- assertWebCredsParentPathSafeSync(filePath);
65
+ assertNoSymlinkParentsSync(resolveWebCredsParentCheck(filePath));
72
66
  const result = statRegularFileSync(filePath);
73
67
  if (result.missing || result.stat.size <= 1) return null;
74
68
  return {
@@ -82,7 +76,7 @@ function statWebCredsFileSync(filePath) {
82
76
  function hasWebCredsRegularFileSync(authDir) {
83
77
  try {
84
78
  const credsPath = resolveWebCredsPath(authDir);
85
- assertWebCredsParentPathSafeSync(credsPath);
79
+ assertNoSymlinkParentsSync(resolveWebCredsParentCheck(credsPath));
86
80
  return !statRegularFileSync(credsPath).missing;
87
81
  } catch {
88
82
  return false;