@openclaw/whatsapp 2026.7.2-beta.7 → 2026.7.34

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 (435) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-control-pZcxTmd5.js → .setup/access-control-C0jumQuO.mjs} +5 -4
  3. package/dist/.setup/account-config-6PTOSfaI.mjs +47 -0
  4. package/dist/{accounts-CSqLvCY5.js → .setup/accounts-Dw16pdNl.mjs} +9 -47
  5. package/dist/{action-runtime-BzfDFPbH.js → .setup/action-runtime-DLK_9v4r.mjs} +3 -3
  6. package/dist/{active-listener-BEjWsCNM.js → .setup/active-listener-CloPBx0S.mjs} +3 -3
  7. package/dist/{agent-tools-login-DE9MU98T.js → .setup/agent-tools-login-DINqgaYo.mjs} +19 -7
  8. package/dist/{approval-handler.runtime-DrA59QSA.js → .setup/approval-handler.runtime-DtJZbu3y.mjs} +14 -20
  9. package/dist/{approval-resolver-DoeBBt22.js → .setup/approval-resolver-DF-lu8k5.mjs} +1 -2
  10. package/dist/{auth-store-DcEpIOmE.js → .setup/auth-store-BZKGa0tW.mjs} +25 -29
  11. package/dist/{channel-Dg62olhy.js → .setup/channel-9WGjBznd.mjs} +117 -132
  12. package/dist/{channel-react-action-J_YtyMGX.js → .setup/channel-react-action-mvIbAFhn.mjs} +15 -12
  13. package/dist/{channel.runtime-BP0xNmLi.js → .setup/channel.runtime-DmmMgRJQ.mjs} +6 -6
  14. package/dist/.setup/channel.setup-ByBYSeLd.mjs +22 -0
  15. package/dist/.setup/config-schema-mBX2nmn1.mjs +47 -0
  16. package/dist/{connection-controller-BOB2MVKY.js → .setup/connection-controller-Dt62u6fI.mjs} +29 -226
  17. package/dist/.setup/connection-controller-registry-TSX_udJp.mjs +22 -0
  18. package/dist/{constants-HU41RHGI.js → .setup/constants-C7m81BNe.mjs} +1 -1
  19. package/dist/.setup/directory-config-B7Obxrq2.mjs +37 -0
  20. package/dist/.setup/doctor-By3SB4lm.mjs +48 -0
  21. package/dist/{group-session-key-DVMZlO3x.js → .setup/group-session-key-CEwPRRRK.mjs} +5 -38
  22. package/dist/{identity-CPrT5aEU.js → .setup/identity-CDB1bT-p.mjs} +2 -2
  23. package/dist/.setup/legacy-session-surface-api-B2szjq4r.mjs +2 -0
  24. package/dist/.setup/legacy-state-migrations-api-DXCxufZz.mjs +3 -0
  25. package/dist/{login-CvY2Dhch.js → .setup/login-7b3M0iBp.mjs} +12 -51
  26. package/dist/{login-qr-Bncpb6js.js → .setup/login-qr-CbyA4QX5.mjs} +47 -23
  27. package/dist/{monitor-CfkaUSL2.js → .setup/monitor-Dh6Di_YO.mjs} +1451 -1843
  28. package/dist/.setup/normalize-eddWWsNV.mjs +2 -0
  29. package/dist/{normalize-target-CugRyONv.js → .setup/normalize-target-bVWjgftN.mjs} +10 -18
  30. package/dist/{resolve-outbound-target-1GqbT1uX.js → .setup/resolve-outbound-target-oI7VpU4w.mjs} +1 -1
  31. package/dist/.setup/runtime-BfAdAEYT.mjs +8 -0
  32. package/dist/.setup/send-BQjMC41n.mjs +777 -0
  33. package/dist/{send-api-7wk6eQyW.js → .setup/send-api-BiAkPLr3.mjs} +155 -105
  34. package/dist/{session-errors-JuazczrA.js → .setup/session-errors-BAj9D2La.mjs} +1 -2
  35. package/dist/.setup/session-vUI41Jel.mjs +252 -0
  36. package/dist/.setup/session.runtime-B-V3rXP6.mjs +12 -0
  37. package/dist/{shared-CAxd15bp.js → .setup/setup-core--FfzntMG.mjs} +94 -63
  38. package/dist/{setup-finalize-BZucx24W.js → .setup/setup-finalize-DCruIciL.mjs} +17 -46
  39. package/dist/.setup/setup-plugin-api-B6ck_20D.mjs +3 -0
  40. package/dist/{setup-surface-BkVcd769.js → .setup/setup-surface-Zvj2cLzz.mjs} +4 -4
  41. package/dist/.setup/socket-timing-DhbVFjah.mjs +77 -0
  42. package/dist/{state-migrations-CAMTrs2U.js → .setup/state-migrations-D_BmQUR9.mjs} +8 -1
  43. package/dist/.setup/targets-runtime-C-GiVn6Y.mjs +188 -0
  44. package/dist/.setup/text-runtime-CUrq1mFq.mjs +4 -0
  45. package/dist/action-runtime-api.js +1 -1
  46. package/dist/action-runtime.runtime.js +1 -1
  47. package/dist/{call-tool-api.js → agent-tools-api.js} +26 -11
  48. package/dist/api.js +27 -17
  49. package/dist/auth-presence.js +1 -1
  50. package/dist/channel-config-api.js +1 -1
  51. package/dist/channel-plugin-api.js +1 -1
  52. package/dist/constants.js +2 -0
  53. package/dist/contract-api.js +5 -5
  54. package/dist/directory-contract-api.js +1 -1
  55. package/dist/doctor-contract-api.js +5 -46
  56. package/dist/index.js +4 -4
  57. package/dist/legacy-session-surface-api.js +1 -1
  58. package/dist/legacy-state-migrations-api.js +1 -1
  59. package/dist/light-runtime-api.js +4 -4
  60. package/dist/login-qr-runtime.js +1 -1
  61. package/dist/runtime-api.js +14 -14
  62. package/dist/runtime-setter-api.js +1 -1
  63. package/dist/security-contract-api.js +1 -1
  64. package/dist/setup-entry.js +4 -3
  65. package/dist/setup-plugin-api.js +1 -1
  66. package/dist/targets.js +2 -0
  67. package/node_modules/audio-decode/node_modules/@thi.ng/bitstream/package.json +4 -4
  68. package/node_modules/audio-decode/node_modules/@thi.ng/errors/package.json +4 -4
  69. package/node_modules/audio-decode/node_modules/audio-type/package.json +2 -3
  70. package/node_modules/baileys/node_modules/@protobufjs/aspromise/LICENSE +26 -0
  71. package/node_modules/baileys/node_modules/@protobufjs/aspromise/README.md +13 -0
  72. package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
  73. package/node_modules/baileys/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
  74. package/node_modules/baileys/node_modules/@protobufjs/aspromise/package.json +21 -0
  75. package/node_modules/baileys/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
  76. package/node_modules/baileys/node_modules/@protobufjs/base64/LICENSE +26 -0
  77. package/node_modules/baileys/node_modules/@protobufjs/base64/README.md +19 -0
  78. package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
  79. package/node_modules/baileys/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
  80. package/node_modules/baileys/node_modules/@protobufjs/base64/package.json +21 -0
  81. package/node_modules/baileys/node_modules/@protobufjs/base64/tests/index.js +46 -0
  82. package/node_modules/baileys/node_modules/@protobufjs/codegen/LICENSE +26 -0
  83. package/node_modules/baileys/node_modules/@protobufjs/codegen/README.md +49 -0
  84. package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
  85. package/node_modules/baileys/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -118
  86. package/node_modules/baileys/node_modules/@protobufjs/codegen/package.json +13 -0
  87. package/node_modules/baileys/node_modules/@protobufjs/codegen/tests/index.js +13 -0
  88. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
  89. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
  90. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/README.md +22 -0
  91. package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
  92. package/node_modules/baileys/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
  93. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/package.json +21 -0
  94. package/node_modules/baileys/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
  95. package/node_modules/baileys/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
  96. package/node_modules/baileys/node_modules/@protobufjs/fetch/LICENSE +26 -0
  97. package/node_modules/baileys/node_modules/@protobufjs/fetch/README.md +13 -0
  98. package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
  99. package/node_modules/baileys/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
  100. package/node_modules/baileys/node_modules/@protobufjs/fetch/package.json +27 -0
  101. package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
  102. package/node_modules/baileys/node_modules/@protobufjs/fetch/tests/index.js +158 -0
  103. package/node_modules/baileys/node_modules/@protobufjs/fetch/util/fs.js +11 -0
  104. package/node_modules/baileys/node_modules/@protobufjs/float/LICENSE +26 -0
  105. package/node_modules/baileys/node_modules/@protobufjs/float/README.md +102 -0
  106. package/node_modules/baileys/node_modules/@protobufjs/float/bench/index.js +87 -0
  107. package/node_modules/baileys/node_modules/@protobufjs/float/bench/suite.js +46 -0
  108. package/node_modules/baileys/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
  109. package/node_modules/baileys/node_modules/@protobufjs/float/package.json +26 -0
  110. package/node_modules/baileys/node_modules/@protobufjs/float/tests/index.js +100 -0
  111. package/node_modules/baileys/node_modules/@protobufjs/inquire/CHANGELOG.md +8 -0
  112. package/node_modules/baileys/node_modules/@protobufjs/inquire/LICENSE +26 -0
  113. package/node_modules/baileys/node_modules/@protobufjs/inquire/README.md +13 -0
  114. package/node_modules/baileys/node_modules/@protobufjs/inquire/index.d.ts +10 -0
  115. package/node_modules/baileys/node_modules/@protobufjs/inquire/index.js +38 -0
  116. package/node_modules/baileys/node_modules/@protobufjs/inquire/package.json +21 -0
  117. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/array.js +1 -0
  118. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +1 -0
  119. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +1 -0
  120. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/data/object.js +1 -0
  121. package/node_modules/baileys/node_modules/@protobufjs/inquire/tests/index.js +20 -0
  122. package/node_modules/baileys/node_modules/@protobufjs/path/LICENSE +26 -0
  123. package/node_modules/baileys/node_modules/@protobufjs/path/README.md +19 -0
  124. package/node_modules/baileys/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
  125. package/node_modules/baileys/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -100
  126. package/node_modules/baileys/node_modules/@protobufjs/path/package.json +21 -0
  127. package/node_modules/baileys/node_modules/@protobufjs/path/tests/index.js +60 -0
  128. package/node_modules/baileys/node_modules/@protobufjs/pool/.npmignore +3 -0
  129. package/node_modules/baileys/node_modules/@protobufjs/pool/LICENSE +26 -0
  130. package/node_modules/baileys/node_modules/@protobufjs/pool/README.md +13 -0
  131. package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
  132. package/node_modules/baileys/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
  133. package/node_modules/baileys/node_modules/@protobufjs/pool/package.json +21 -0
  134. package/node_modules/baileys/node_modules/@protobufjs/pool/tests/index.js +33 -0
  135. package/node_modules/baileys/node_modules/@protobufjs/utf8/LICENSE +26 -0
  136. package/node_modules/baileys/node_modules/@protobufjs/utf8/README.md +20 -0
  137. package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
  138. package/node_modules/baileys/node_modules/{protobufjs/src/util/utf8.js → @protobufjs/utf8/index.js} +104 -190
  139. package/node_modules/baileys/node_modules/@protobufjs/utf8/package.json +21 -0
  140. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
  141. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
  142. package/node_modules/baileys/node_modules/@protobufjs/utf8/tests/index.js +74 -0
  143. package/node_modules/baileys/node_modules/@types/node/LICENSE +21 -0
  144. package/node_modules/baileys/node_modules/@types/node/README.md +15 -0
  145. package/node_modules/baileys/node_modules/@types/node/assert/strict.d.ts +68 -0
  146. package/node_modules/baileys/node_modules/@types/node/assert.d.ts +1077 -0
  147. package/node_modules/baileys/node_modules/@types/node/async_hooks.d.ts +711 -0
  148. package/node_modules/baileys/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  149. package/node_modules/baileys/node_modules/@types/node/buffer.d.ts +1799 -0
  150. package/node_modules/baileys/node_modules/@types/node/child_process.d.ts +1362 -0
  151. package/node_modules/baileys/node_modules/@types/node/cluster.d.ts +432 -0
  152. package/node_modules/baileys/node_modules/@types/node/console.d.ts +93 -0
  153. package/node_modules/baileys/node_modules/@types/node/constants.d.ts +14 -0
  154. package/node_modules/baileys/node_modules/@types/node/crypto.d.ts +3954 -0
  155. package/node_modules/baileys/node_modules/@types/node/dgram.d.ts +537 -0
  156. package/node_modules/baileys/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
  157. package/node_modules/baileys/node_modules/@types/node/dns/promises.d.ts +497 -0
  158. package/node_modules/baileys/node_modules/@types/node/dns.d.ts +876 -0
  159. package/node_modules/baileys/node_modules/@types/node/domain.d.ts +150 -0
  160. package/node_modules/baileys/node_modules/@types/node/events.d.ts +1008 -0
  161. package/node_modules/baileys/node_modules/@types/node/ffi.d.ts +486 -0
  162. package/node_modules/baileys/node_modules/@types/node/fs/promises.d.ts +1471 -0
  163. package/node_modules/baileys/node_modules/@types/node/fs.d.ts +4786 -0
  164. package/node_modules/baileys/node_modules/@types/node/globals.d.ts +150 -0
  165. package/node_modules/baileys/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  166. package/node_modules/baileys/node_modules/@types/node/http.d.ts +2172 -0
  167. package/node_modules/baileys/node_modules/@types/node/http2.d.ts +2489 -0
  168. package/node_modules/baileys/node_modules/@types/node/https.d.ts +400 -0
  169. package/node_modules/baileys/node_modules/@types/node/index.d.ts +115 -0
  170. package/node_modules/baileys/node_modules/@types/node/inspector/promises.d.ts +35 -0
  171. package/node_modules/baileys/node_modules/@types/node/inspector.d.ts +264 -0
  172. package/node_modules/baileys/node_modules/@types/node/inspector.generated.d.ts +4406 -0
  173. package/node_modules/baileys/node_modules/@types/node/module.d.ts +726 -0
  174. package/node_modules/baileys/node_modules/@types/node/net.d.ts +970 -0
  175. package/node_modules/baileys/node_modules/@types/node/os.d.ts +498 -0
  176. package/node_modules/baileys/node_modules/@types/node/package.json +155 -0
  177. package/node_modules/baileys/node_modules/@types/node/path/posix.d.ts +8 -0
  178. package/node_modules/baileys/node_modules/@types/node/path/win32.d.ts +8 -0
  179. package/node_modules/baileys/node_modules/@types/node/path.d.ts +178 -0
  180. package/node_modules/baileys/node_modules/@types/node/perf_hooks.d.ts +604 -0
  181. package/node_modules/baileys/node_modules/@types/node/process.d.ts +2217 -0
  182. package/node_modules/baileys/node_modules/@types/node/punycode.d.ts +89 -0
  183. package/node_modules/baileys/node_modules/@types/node/querystring.d.ts +139 -0
  184. package/node_modules/baileys/node_modules/@types/node/quic.d.ts +978 -0
  185. package/node_modules/baileys/node_modules/@types/node/readline/promises.d.ts +158 -0
  186. package/node_modules/baileys/node_modules/@types/node/readline.d.ts +508 -0
  187. package/node_modules/baileys/node_modules/@types/node/repl.d.ts +420 -0
  188. package/node_modules/baileys/node_modules/@types/node/sea.d.ts +47 -0
  189. package/node_modules/baileys/node_modules/@types/node/sqlite.d.ts +1123 -0
  190. package/node_modules/baileys/node_modules/@types/node/stream/consumers.d.ts +114 -0
  191. package/node_modules/baileys/node_modules/@types/node/stream/iter.d.ts +451 -0
  192. package/node_modules/baileys/node_modules/@types/node/stream/promises.d.ts +211 -0
  193. package/node_modules/baileys/node_modules/@types/node/stream/web.d.ts +300 -0
  194. package/node_modules/baileys/node_modules/@types/node/stream.d.ts +1806 -0
  195. package/node_modules/baileys/node_modules/@types/node/string_decoder.d.ts +27 -0
  196. package/node_modules/baileys/node_modules/@types/node/test/reporters.d.ts +59 -0
  197. package/node_modules/baileys/node_modules/@types/node/test.d.ts +2389 -0
  198. package/node_modules/baileys/node_modules/@types/node/timers/promises.d.ts +93 -0
  199. package/node_modules/baileys/node_modules/@types/node/timers.d.ts +149 -0
  200. package/node_modules/baileys/node_modules/@types/node/tls.d.ts +1193 -0
  201. package/node_modules/baileys/node_modules/@types/node/trace_events.d.ts +103 -0
  202. package/node_modules/baileys/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  203. package/node_modules/baileys/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  204. package/node_modules/baileys/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  205. package/node_modules/baileys/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  206. package/node_modules/baileys/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  207. package/node_modules/baileys/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  208. package/node_modules/baileys/node_modules/@types/node/tty.d.ts +225 -0
  209. package/node_modules/baileys/node_modules/@types/node/url.d.ts +556 -0
  210. package/node_modules/baileys/node_modules/@types/node/util/types.d.ts +558 -0
  211. package/node_modules/baileys/node_modules/@types/node/util.d.ts +1677 -0
  212. package/node_modules/baileys/node_modules/@types/node/v8.d.ts +1062 -0
  213. package/node_modules/baileys/node_modules/@types/node/vm.d.ts +1136 -0
  214. package/node_modules/baileys/node_modules/@types/node/wasi.d.ts +131 -0
  215. package/node_modules/baileys/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  216. package/node_modules/baileys/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  217. package/node_modules/baileys/node_modules/@types/node/web-globals/console.d.ts +9 -0
  218. package/node_modules/baileys/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  219. package/node_modules/baileys/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
  220. package/node_modules/baileys/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  221. package/node_modules/baileys/node_modules/@types/node/web-globals/events.d.ts +106 -0
  222. package/node_modules/baileys/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
  223. package/node_modules/baileys/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  224. package/node_modules/baileys/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  225. package/node_modules/baileys/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  226. package/node_modules/baileys/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  227. package/node_modules/baileys/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  228. package/node_modules/baileys/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  229. package/node_modules/baileys/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  230. package/node_modules/baileys/node_modules/@types/node/web-globals/url.d.ts +24 -0
  231. package/node_modules/baileys/node_modules/@types/node/worker_threads.d.ts +669 -0
  232. package/node_modules/baileys/node_modules/@types/node/zlib/iter.d.ts +131 -0
  233. package/node_modules/baileys/node_modules/@types/node/zlib.d.ts +589 -0
  234. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -1
  235. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js +4 -11
  236. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -1
  237. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js +1 -1
  238. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +3 -3
  239. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
  240. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js +4 -11
  241. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
  242. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  243. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/index.min.js.map +3 -3
  244. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -1
  245. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js +4 -11
  246. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -1
  247. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js +1 -1
  248. package/node_modules/baileys/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +3 -3
  249. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -1
  250. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js +4 -11
  251. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -1
  252. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js +1 -1
  253. package/node_modules/baileys/node_modules/lru-cache/dist/esm/browser/index.min.js.map +3 -3
  254. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
  255. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js +4 -11
  256. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.js.map +1 -1
  257. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  258. package/node_modules/baileys/node_modules/lru-cache/dist/esm/index.min.js.map +3 -3
  259. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -1
  260. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js +4 -11
  261. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.js.map +1 -1
  262. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js +1 -1
  263. package/node_modules/baileys/node_modules/lru-cache/dist/esm/node/index.min.js.map +3 -3
  264. package/node_modules/baileys/node_modules/lru-cache/package.json +1 -1
  265. package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  266. package/node_modules/baileys/node_modules/music-metadata/lib/common/Util.js +1 -7
  267. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameHeader.js +3 -23
  268. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  269. package/node_modules/baileys/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  270. package/node_modules/baileys/node_modules/music-metadata/lib/mp4/AtomToken.js +13 -38
  271. package/node_modules/baileys/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  272. package/node_modules/baileys/node_modules/music-metadata/package.json +6 -6
  273. package/node_modules/baileys/node_modules/p-queue/dist/index.js +27 -37
  274. package/node_modules/baileys/node_modules/p-queue/package.json +1 -1
  275. package/node_modules/baileys/node_modules/protobufjs/README.md +553 -266
  276. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js +1985 -3177
  277. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  278. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  279. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  280. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js +1244 -1966
  281. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  282. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  283. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  284. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js +2005 -3330
  285. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  286. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  287. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  288. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/README.md +70 -3
  289. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
  290. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
  291. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor/test.js +54 -0
  292. package/node_modules/baileys/node_modules/protobufjs/google/api/annotations.json +1 -3
  293. package/node_modules/baileys/node_modules/protobufjs/google/api/http.json +1 -2
  294. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/api.json +6 -12
  295. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.json +87 -170
  296. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.proto +8 -0
  297. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/source_context.json +1 -2
  298. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/type.json +7 -14
  299. package/node_modules/baileys/node_modules/protobufjs/index.d.ts +703 -1066
  300. package/node_modules/baileys/node_modules/protobufjs/package.json +52 -25
  301. package/node_modules/baileys/node_modules/protobufjs/scripts/postinstall.js +32 -0
  302. package/node_modules/baileys/node_modules/protobufjs/src/common.js +8 -14
  303. package/node_modules/baileys/node_modules/protobufjs/src/converter.js +51 -85
  304. package/node_modules/baileys/node_modules/protobufjs/src/decoder.js +61 -205
  305. package/node_modules/baileys/node_modules/protobufjs/src/encoder.js +7 -27
  306. package/node_modules/baileys/node_modules/protobufjs/src/enum.js +5 -18
  307. package/node_modules/baileys/node_modules/protobufjs/src/field.js +19 -71
  308. package/node_modules/baileys/node_modules/protobufjs/src/index-light.js +29 -29
  309. package/node_modules/baileys/node_modules/protobufjs/src/index-minimal.js +13 -12
  310. package/node_modules/baileys/node_modules/protobufjs/src/index.js +6 -6
  311. package/node_modules/baileys/node_modules/protobufjs/src/mapfield.js +8 -26
  312. package/node_modules/baileys/node_modules/protobufjs/src/message.js +11 -5
  313. package/node_modules/baileys/node_modules/protobufjs/src/method.js +7 -30
  314. package/node_modules/baileys/node_modules/protobufjs/src/namespace.js +10 -26
  315. package/node_modules/baileys/node_modules/protobufjs/src/object.js +31 -41
  316. package/node_modules/baileys/node_modules/protobufjs/src/oneof.js +1 -12
  317. package/node_modules/baileys/node_modules/protobufjs/src/parse.js +47 -169
  318. package/node_modules/baileys/node_modules/protobufjs/src/reader.js +50 -412
  319. package/node_modules/baileys/node_modules/protobufjs/src/reader_buffer.js +5 -31
  320. package/node_modules/baileys/node_modules/protobufjs/src/root.js +4 -16
  321. package/node_modules/baileys/node_modules/protobufjs/src/rpc/service.js +5 -18
  322. package/node_modules/baileys/node_modules/protobufjs/src/service.js +2 -15
  323. package/node_modules/baileys/node_modules/protobufjs/src/tokenize.js +1 -6
  324. package/node_modules/baileys/node_modules/protobufjs/src/type.js +36 -80
  325. package/node_modules/baileys/node_modules/protobufjs/src/typescript.jsdoc +15 -0
  326. package/node_modules/baileys/node_modules/protobufjs/src/util/longbits.js +6 -10
  327. package/node_modules/baileys/node_modules/protobufjs/src/util/minimal.js +54 -71
  328. package/node_modules/baileys/node_modules/protobufjs/src/util.js +17 -51
  329. package/node_modules/baileys/node_modules/protobufjs/src/verifier.js +14 -19
  330. package/node_modules/baileys/node_modules/protobufjs/src/wrappers.js +3 -2
  331. package/node_modules/baileys/node_modules/protobufjs/src/writer.js +191 -424
  332. package/node_modules/baileys/node_modules/protobufjs/src/writer_buffer.js +26 -41
  333. package/node_modules/baileys/node_modules/protobufjs/tsconfig.json +5 -3
  334. package/node_modules/baileys/node_modules/undici-types/LICENSE +21 -0
  335. package/node_modules/baileys/node_modules/undici-types/README.md +6 -0
  336. package/node_modules/baileys/node_modules/undici-types/agent.d.ts +30 -0
  337. package/node_modules/baileys/node_modules/undici-types/api.d.ts +43 -0
  338. package/node_modules/baileys/node_modules/undici-types/balanced-pool.d.ts +30 -0
  339. package/node_modules/baileys/node_modules/undici-types/cache-interceptor.d.ts +179 -0
  340. package/node_modules/baileys/node_modules/undici-types/cache.d.ts +36 -0
  341. package/node_modules/baileys/node_modules/undici-types/client-stats.d.ts +15 -0
  342. package/node_modules/baileys/node_modules/undici-types/client.d.ts +129 -0
  343. package/node_modules/baileys/node_modules/undici-types/connector.d.ts +36 -0
  344. package/node_modules/baileys/node_modules/undici-types/content-type.d.ts +21 -0
  345. package/node_modules/baileys/node_modules/undici-types/cookies.d.ts +30 -0
  346. package/node_modules/baileys/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  347. package/node_modules/baileys/node_modules/undici-types/dispatcher.d.ts +253 -0
  348. package/node_modules/baileys/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
  349. package/node_modules/baileys/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  350. package/node_modules/baileys/node_modules/undici-types/errors.d.ts +177 -0
  351. package/node_modules/baileys/node_modules/undici-types/eventsource.d.ts +66 -0
  352. package/node_modules/baileys/node_modules/undici-types/fetch.d.ts +231 -0
  353. package/node_modules/baileys/node_modules/undici-types/formdata.d.ts +108 -0
  354. package/node_modules/baileys/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  355. package/node_modules/baileys/node_modules/undici-types/global-origin.d.ts +7 -0
  356. package/node_modules/baileys/node_modules/undici-types/h2c-client.d.ts +73 -0
  357. package/node_modules/baileys/node_modules/undici-types/handlers.d.ts +14 -0
  358. package/node_modules/baileys/node_modules/undici-types/header.d.ts +165 -0
  359. package/node_modules/baileys/node_modules/undici-types/index.d.ts +93 -0
  360. package/node_modules/baileys/node_modules/undici-types/interceptors.d.ts +80 -0
  361. package/node_modules/baileys/node_modules/undici-types/mock-agent.d.ts +68 -0
  362. package/node_modules/baileys/node_modules/undici-types/mock-call-history.d.ts +111 -0
  363. package/node_modules/baileys/node_modules/undici-types/mock-client.d.ts +27 -0
  364. package/node_modules/baileys/node_modules/undici-types/mock-errors.d.ts +12 -0
  365. package/node_modules/baileys/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  366. package/node_modules/baileys/node_modules/undici-types/mock-pool.d.ts +27 -0
  367. package/node_modules/baileys/node_modules/undici-types/package.json +55 -0
  368. package/node_modules/baileys/node_modules/undici-types/patch.d.ts +29 -0
  369. package/node_modules/baileys/node_modules/undici-types/pool-stats.d.ts +19 -0
  370. package/node_modules/baileys/node_modules/undici-types/pool.d.ts +39 -0
  371. package/node_modules/baileys/node_modules/undici-types/proxy-agent.d.ts +29 -0
  372. package/node_modules/baileys/node_modules/undici-types/readable.d.ts +68 -0
  373. package/node_modules/baileys/node_modules/undici-types/retry-agent.d.ts +8 -0
  374. package/node_modules/baileys/node_modules/undici-types/retry-handler.d.ts +125 -0
  375. package/node_modules/baileys/node_modules/undici-types/round-robin-pool.d.ts +39 -0
  376. package/node_modules/baileys/node_modules/undici-types/snapshot-agent.d.ts +113 -0
  377. package/node_modules/baileys/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
  378. package/node_modules/baileys/node_modules/undici-types/util.d.ts +18 -0
  379. package/node_modules/baileys/node_modules/undici-types/utility.d.ts +7 -0
  380. package/node_modules/baileys/node_modules/undici-types/webidl.d.ts +346 -0
  381. package/node_modules/baileys/node_modules/undici-types/websocket.d.ts +188 -0
  382. package/node_modules/baileys/node_modules/ws/lib/permessage-deflate.js +3 -1
  383. package/node_modules/baileys/node_modules/ws/package.json +1 -1
  384. package/node_modules/typebox/build/compile/validator.d.mts +4 -1
  385. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  386. package/node_modules/typebox/build/guard/guard.mjs +2 -5
  387. package/node_modules/typebox/build/guard/string.mjs +4 -16
  388. package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
  389. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  390. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
  391. package/node_modules/typebox/build/typebox.d.mts +1 -1
  392. package/node_modules/typebox/build/typebox.mjs +1 -1
  393. package/node_modules/typebox/package.json +1 -1
  394. package/node_modules/typebox/readme.md +32 -29
  395. package/openclaw.plugin.json +239 -214
  396. package/package.json +11 -21
  397. package/dist/approval-reactions-Cu66aYdq.js +0 -373
  398. package/dist/channel.setup-pMwNVkCA.js +0 -19
  399. package/dist/config-schema-BQP5YCeK.js +0 -50
  400. package/dist/connection-controller-runtime-context-DG0tuYuw.js +0 -23
  401. package/dist/directory-config-DalGrfGN.js +0 -196
  402. package/dist/doctor-CwzVXKoE.js +0 -10
  403. package/dist/normalize-C7Hkc_vE.js +0 -2
  404. package/dist/question-reactions-CRsnyoMK.js +0 -142
  405. package/dist/runtime-BLlToOi6.js +0 -21
  406. package/dist/send-D37ddk22.js +0 -436
  407. package/dist/session.runtime-Nsqaehbd.js +0 -16
  408. package/dist/socket-close-DridEuzz.js +0 -622
  409. package/dist/targets-runtime-TMk0lGuy.js +0 -299
  410. package/dist/text-runtime-CaKLhowd.js +0 -4
  411. package/node_modules/baileys/node_modules/protobufjs/ext/README.md +0 -70
  412. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
  413. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -417
  414. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.js +0 -1356
  415. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
  416. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.d.ts +0 -20
  417. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
  418. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.js +0 -951
  419. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.d.ts +0 -19
  420. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
  421. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.js +0 -1276
  422. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
  423. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
  424. package/node_modules/baileys/node_modules/protobufjs/src/typescript.js +0 -25
  425. /package/dist/{account-ids-CB5SOWjc.js → .setup/account-ids-CB5SOWjc.mjs} +0 -0
  426. /package/dist/{audio-preflight.runtime-C_glQhZY.js → .setup/audio-preflight.runtime-C_glQhZY.mjs} +0 -0
  427. /package/dist/{command-policy-BIOSHySD.js → .setup/command-policy-BIOSHySD.mjs} +0 -0
  428. /package/dist/{creds-files-B1kSWtBg.js → .setup/creds-files-B1kSWtBg.mjs} +0 -0
  429. /package/dist/{group-config-path-BGyzT9Lg.js → .setup/group-config-path-BGyzT9Lg.mjs} +0 -0
  430. /package/dist/{group-session-contract-DDnZSsJ1.js → .setup/group-session-contract-DDnZSsJ1.mjs} +0 -0
  431. /package/dist/{reply-resolver.runtime-Ded8D58Y.js → .setup/reply-resolver.runtime-Ded8D58Y.mjs} +0 -0
  432. /package/dist/{rolldown-runtime-D7D4PA-g.js → .setup/rolldown-runtime-D7D4PA-g.mjs} +0 -0
  433. /package/dist/{security-contract-nAzD945y.js → .setup/security-contract-nAzD945y.mjs} +0 -0
  434. /package/dist/{session-contract-DMTm6Q_L.js → .setup/session-contract-DMTm6Q_L.mjs} +0 -0
  435. /package/node_modules/baileys/node_modules/{protobufjs/src/util/float.d.ts → @protobufjs/float/index.d.ts} +0 -0
@@ -1,373 +0,0 @@
1
- import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { a as resolveWhatsAppAccount } from "./accounts-CSqLvCY5.js";
3
- import { n as getOptionalWhatsAppRuntime } from "./runtime-BLlToOi6.js";
4
- import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth } from "./group-session-key-DVMZlO3x.js";
5
- import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
6
- import { createApprovalReactionTargetStore, listApprovalReactionBindings, resolveTypedApprovalReactionTarget } from "openclaw/plugin-sdk/approval-reaction-runtime";
7
- //#region extensions/whatsapp/src/approval-reactions.ts
8
- var approval_reactions_exports = /* @__PURE__ */ __exportAll({
9
- clearWhatsAppApprovalReactionTargetsForTest: () => clearWhatsAppApprovalReactionTargetsForTest,
10
- maybeResolveWhatsAppApprovalReaction: () => maybeResolveWhatsAppApprovalReaction,
11
- prepareWhatsAppApprovalPayloadForDelivery: () => prepareWhatsAppApprovalPayloadForDelivery,
12
- registerWhatsAppApprovalReactionTarget: () => registerWhatsAppApprovalReactionTarget,
13
- registerWhatsAppApprovalReactionTargetForDeliveredPayload: () => registerWhatsAppApprovalReactionTargetForDeliveredPayload,
14
- resolveWhatsAppApprovalReactionTargetWithPersistence: () => resolveWhatsAppApprovalReactionTargetWithPersistence,
15
- unregisterWhatsAppApprovalReactionTarget: () => unregisterWhatsAppApprovalReactionTarget
16
- });
17
- const PERSISTENT_NAMESPACE = "whatsapp.approval-reactions";
18
- const PERSISTENT_MAX_ENTRIES = 1e3;
19
- const DEFAULT_REACTION_TARGET_TTL_MS = 1440 * 60 * 1e3;
20
- const DELIVERY_BINDING_CHANNEL_DATA_KEY = "whatsappApprovalReactionBindingV1";
21
- const resolverRuntimeLoader = createLazyRuntimeModule(() => import("./approval-resolver-DoeBBt22.js"));
22
- const whatsappApprovalReactionTargets = createApprovalReactionTargetStore({
23
- namespace: PERSISTENT_NAMESPACE,
24
- maxEntries: PERSISTENT_MAX_ENTRIES,
25
- defaultTtlMs: DEFAULT_REACTION_TARGET_TTL_MS,
26
- openStore: (storeParams) => getOptionalWhatsAppRuntime()?.state.openKeyedStore(storeParams),
27
- logPersistentError: reportPersistentApprovalReactionError,
28
- readPersistedTarget
29
- });
30
- const loadApprovalResolver = resolverRuntimeLoader;
31
- function buildReactionTargetKey(params) {
32
- const accountId = params.accountId.trim();
33
- const remoteJid = params.remoteJid.trim();
34
- const messageId = params.messageId.trim();
35
- if (!accountId || !remoteJid || !messageId) return null;
36
- return `${accountId}:${remoteJid}:${messageId}`;
37
- }
38
- function addCandidateRemoteJid(target, value) {
39
- const remoteJid = value?.trim();
40
- if (remoteJid && !target.includes(remoteJid)) target.push(remoteJid);
41
- }
42
- function reportPersistentApprovalReactionError(error) {
43
- try {
44
- getOptionalWhatsAppRuntime()?.logging.getChildLogger({
45
- plugin: "whatsapp",
46
- feature: "approval-reaction-state"
47
- }).warn("WhatsApp persistent approval reaction state failed", { error: String(error) });
48
- } catch {}
49
- }
50
- function reportApprovalBindingCorrelationMismatch(binding) {
51
- try {
52
- getOptionalWhatsAppRuntime()?.logging.getChildLogger({
53
- plugin: "whatsapp",
54
- feature: "approval-reaction-state"
55
- }).warn("WhatsApp approval prompt text failed binding correlation; reactions disabled", {
56
- approvalId: binding.approvalId,
57
- approvalKind: binding.approvalKind
58
- });
59
- } catch {}
60
- }
61
- function readPersistedTarget(target) {
62
- const value = target;
63
- if (!value || typeof value.approvalId !== "string" || !Array.isArray(value.allowedDecisions) || value.approvalKind !== "exec" && value.approvalKind !== "plugin") return null;
64
- return {
65
- approvalId: value.approvalId,
66
- approvalKind: value.approvalKind,
67
- allowedDecisions: value.allowedDecisions
68
- };
69
- }
70
- function listWhatsAppApprovalReactionBindings(allowedDecisions) {
71
- return listApprovalReactionBindings({ allowedDecisions });
72
- }
73
- const APPROVAL_ID_LINE_RE = /^\s*ID:\s*(\S(?:.*\S)?)\s*$/i;
74
- const APPROVAL_KIND_LINE_RE = /^\s*(?:\S+\s+)?(Exec|Plugin) approval required\s*$/i;
75
- function isApprovalDecision(value) {
76
- return value === "allow-once" || value === "allow-always" || value === "deny";
77
- }
78
- function readStrictDecisionList(value) {
79
- if (!Array.isArray(value) || value.length === 0 || !value.every(isApprovalDecision)) return null;
80
- return new Set(value).size === value.length ? [...value] : null;
81
- }
82
- function readStrictApprovalMetadata(payload) {
83
- const value = payload.channelData?.execApproval;
84
- if (!value || typeof value !== "object" || Array.isArray(value)) return null;
85
- const record = value;
86
- const approvalId = record.approvalId;
87
- const approvalKind = record.approvalKind;
88
- const allowedDecisions = readStrictDecisionList(record.allowedDecisions);
89
- if (typeof approvalId !== "string" || !approvalId || approvalId !== approvalId.trim() || approvalKind !== "exec" && approvalKind !== "plugin" || !allowedDecisions) return null;
90
- return {
91
- version: 1,
92
- approvalId,
93
- approvalKind,
94
- allowedDecisions
95
- };
96
- }
97
- function listTypedApprovalActions(presentation) {
98
- return presentation.blocks.flatMap((block) => {
99
- if (block.type === "buttons") return block.buttons.flatMap((button) => button.action?.type === "approval" ? [button.action] : []);
100
- return [];
101
- });
102
- }
103
- function decisionSetsMatch(left, right) {
104
- return left.length === right.length && left.every((decision) => right.includes(decision));
105
- }
106
- function readTypedApprovalDeliveryBinding(params) {
107
- const metadata = readStrictApprovalMetadata(params.payload);
108
- if (!metadata) return null;
109
- const actions = listTypedApprovalActions(params.presentation);
110
- if (actions.length === 0 || actions.some((action) => action.approvalId !== metadata.approvalId || action.approvalKind !== metadata.approvalKind)) return null;
111
- const actionDecisions = actions.map((action) => action.decision);
112
- if (new Set(actionDecisions).size !== actionDecisions.length || !decisionSetsMatch(metadata.allowedDecisions, actionDecisions)) return null;
113
- return metadata;
114
- }
115
- function visibleApprovalBindingMatches(text, binding) {
116
- const lines = (text ?? "").split(/\r?\n/).map((line) => line.replace(/\*\*/g, ""));
117
- const kindMatches = lines.map((line) => line.match(APPROVAL_KIND_LINE_RE)).filter((match) => Boolean(match));
118
- const idMatches = lines.map((line) => line.match(APPROVAL_ID_LINE_RE)).filter((match) => Boolean(match));
119
- const visibleKind = kindMatches[0]?.[1]?.toLowerCase();
120
- if (kindMatches.length !== 1 || idMatches.length !== 1 || visibleKind !== binding.approvalKind || idMatches[0]?.[1] !== binding.approvalId) return false;
121
- const hintIndices = lines.flatMap((line, index) => line.trim().toLowerCase() === "react with:" ? [index] : []);
122
- if (hintIndices.length !== 1) return false;
123
- const hintIndex = hintIndices[0];
124
- if (hintIndex === void 0) return false;
125
- let cursor = hintIndex + 1;
126
- while (cursor < lines.length && !lines[cursor]?.trim()) cursor += 1;
127
- const decisionLines = [];
128
- while (cursor < lines.length) {
129
- const decisionLine = lines[cursor]?.trim();
130
- if (!decisionLine) break;
131
- decisionLines.push(decisionLine);
132
- cursor += 1;
133
- }
134
- const knownBindings = listWhatsAppApprovalReactionBindings([
135
- "allow-once",
136
- "allow-always",
137
- "deny"
138
- ]);
139
- const visibleDecisions = decisionLines.map((line) => knownBindings.find((entry) => `${entry.emoji} ${entry.label}` === line)?.decision);
140
- if (!visibleDecisions.every(isApprovalDecision)) return false;
141
- return new Set(visibleDecisions).size === visibleDecisions.length && decisionSetsMatch(binding.allowedDecisions, visibleDecisions);
142
- }
143
- function readDeliveredApprovalBinding(payload) {
144
- const metadata = readStrictApprovalMetadata(payload);
145
- const value = payload.channelData?.[DELIVERY_BINDING_CHANNEL_DATA_KEY];
146
- if (!metadata || !value || typeof value !== "object" || Array.isArray(value)) return null;
147
- const record = value;
148
- const allowedDecisions = readStrictDecisionList(record.allowedDecisions);
149
- if (record.version !== 1 || record.approvalId !== metadata.approvalId || record.approvalKind !== metadata.approvalKind || !allowedDecisions || !decisionSetsMatch(metadata.allowedDecisions, allowedDecisions)) return null;
150
- return metadata;
151
- }
152
- /** Preserve a validated typed approval binding until the platform message id is known. */
153
- function prepareWhatsAppApprovalPayloadForDelivery(params) {
154
- const binding = readTypedApprovalDeliveryBinding(params);
155
- if (!binding) return null;
156
- if (!visibleApprovalBindingMatches(params.payload.text, binding)) {
157
- reportApprovalBindingCorrelationMismatch(binding);
158
- return null;
159
- }
160
- return {
161
- ...params.payload,
162
- channelData: {
163
- ...params.payload.channelData,
164
- [DELIVERY_BINDING_CHANNEL_DATA_KEY]: binding
165
- }
166
- };
167
- }
168
- function registerWhatsAppApprovalReactionTarget(params) {
169
- const key = buildReactionTargetKey(params);
170
- const approvalId = params.approvalId.trim();
171
- const allowedDecisions = listWhatsAppApprovalReactionBindings(params.allowedDecisions).map((binding) => binding.decision);
172
- if (!key || !approvalId || params.approvalKind !== "exec" && params.approvalKind !== "plugin" || allowedDecisions.length === 0) return null;
173
- const target = {
174
- approvalId,
175
- approvalKind: params.approvalKind,
176
- allowedDecisions
177
- };
178
- whatsappApprovalReactionTargets.register(key, target, { ttlMs: params.ttlMs });
179
- return target;
180
- }
181
- function listWhatsAppDeliveredMessageIdentities(results) {
182
- const identities = [];
183
- const seen = /* @__PURE__ */ new Set();
184
- const add = (params) => {
185
- if (params.channel && params.channel !== "whatsapp") return;
186
- const messageId = params.messageId?.trim() ?? "";
187
- const remoteJid = params.toJid?.trim() ?? "";
188
- const key = `${remoteJid}:${messageId}`;
189
- if (!messageId || messageId === "unknown" || !remoteJid || seen.has(key)) return;
190
- seen.add(key);
191
- identities.push({
192
- messageId,
193
- remoteJid
194
- });
195
- };
196
- for (const result of results) {
197
- if (result.channel !== "whatsapp") continue;
198
- add(result);
199
- for (const raw of result.receipt?.raw ?? []) add(raw);
200
- for (const part of result.receipt?.parts ?? []) add({
201
- channel: part.raw?.channel,
202
- messageId: part.raw?.messageId ?? part.platformMessageId,
203
- toJid: part.raw?.toJid
204
- });
205
- }
206
- return identities;
207
- }
208
- /** Bind generic forwarded approvals to the exact WhatsApp messages accepted by Baileys. */
209
- function registerWhatsAppApprovalReactionTargetForDeliveredPayload(params) {
210
- if (params.target.channel.trim().toLowerCase() !== "whatsapp") return false;
211
- const binding = readDeliveredApprovalBinding(params.payload);
212
- if (!binding) return false;
213
- if (!visibleApprovalBindingMatches(params.payload.text, binding)) {
214
- reportApprovalBindingCorrelationMismatch(binding);
215
- return false;
216
- }
217
- const accountId = resolveWhatsAppAccount({
218
- cfg: params.cfg,
219
- accountId: params.target.accountId
220
- }).accountId;
221
- let registered = false;
222
- for (const { messageId, remoteJid } of listWhatsAppDeliveredMessageIdentities(params.results)) registered = Boolean(registerWhatsAppApprovalReactionTarget({
223
- accountId,
224
- remoteJid,
225
- messageId,
226
- approvalId: binding.approvalId,
227
- approvalKind: binding.approvalKind,
228
- allowedDecisions: binding.allowedDecisions,
229
- ttlMs: params.ttlMs
230
- })) || registered;
231
- return registered;
232
- }
233
- function unregisterWhatsAppApprovalReactionTarget(params) {
234
- const key = buildReactionTargetKey(params);
235
- if (!key) return;
236
- whatsappApprovalReactionTargets.delete(key);
237
- }
238
- function resolveTarget(params) {
239
- const resolved = resolveTypedApprovalReactionTarget({
240
- target: params.target,
241
- reactionKey: params.reactionKey
242
- });
243
- return resolved ? {
244
- approvalId: resolved.approvalId,
245
- approvalKind: resolved.approvalKind,
246
- decision: resolved.decision
247
- } : null;
248
- }
249
- async function resolveWhatsAppApprovalReactionTargetWithPersistence(params) {
250
- const key = buildReactionTargetKey(params);
251
- if (!key) return null;
252
- return resolveTarget({
253
- target: await whatsappApprovalReactionTargets.lookup(key),
254
- reactionKey: params.reactionKey
255
- });
256
- }
257
- async function resolveWhatsAppApprovalReactionTargetFromCandidates(params) {
258
- const candidateRemoteJids = [];
259
- for (const observedRemoteJid of params.observedRemoteJids) {
260
- addCandidateRemoteJid(candidateRemoteJids, observedRemoteJid);
261
- try {
262
- for (const candidate of await params.resolveReactionTargetJids?.(observedRemoteJid) ?? []) addCandidateRemoteJid(candidateRemoteJids, candidate);
263
- } catch (error) {
264
- params.logVerboseMessage?.(`whatsapp: approval reaction target JID mapping failed for ${observedRemoteJid}: ${String(error)}`);
265
- }
266
- }
267
- for (const remoteJid of candidateRemoteJids) {
268
- const target = await resolveWhatsAppApprovalReactionTargetWithPersistence({
269
- accountId: params.accountId,
270
- remoteJid,
271
- messageId: params.messageId,
272
- reactionKey: params.reactionKey
273
- });
274
- if (target) return {
275
- ...target,
276
- remoteJid
277
- };
278
- }
279
- return null;
280
- }
281
- function readWhatsAppApprovalReactionEvent(params) {
282
- const msg = params.msg;
283
- const reaction = msg.message?.reactionMessage;
284
- const reactionKey = reaction?.text?.trim() ?? "";
285
- const messageId = reaction?.key?.id?.trim() ?? "";
286
- const remoteJids = [];
287
- addCandidateRemoteJid(remoteJids, reaction?.key?.remoteJid);
288
- addCandidateRemoteJid(remoteJids, msg.key?.remoteJid);
289
- const actorJid = msg.key?.participant?.trim() || (msg.key?.fromMe ? params.selfLid?.trim() ?? params.selfJid?.trim() ?? "" : msg.key?.remoteJid?.trim() ?? "");
290
- if (!reactionKey || !messageId || remoteJids.length === 0 || !actorJid) return null;
291
- return {
292
- remoteJids,
293
- messageId,
294
- actorJid,
295
- reactionKey
296
- };
297
- }
298
- async function maybeResolveWhatsAppApprovalReaction(params) {
299
- const event = readWhatsAppApprovalReactionEvent({
300
- msg: params.msg,
301
- selfJid: params.selfJid,
302
- selfLid: params.selfLid
303
- });
304
- if (!event) return false;
305
- const target = await resolveWhatsAppApprovalReactionTargetFromCandidates({
306
- accountId: params.accountId,
307
- observedRemoteJids: event.remoteJids,
308
- messageId: event.messageId,
309
- reactionKey: event.reactionKey,
310
- resolveReactionTargetJids: params.resolveReactionTargetJids,
311
- logVerboseMessage: params.logVerboseMessage
312
- });
313
- if (!target) return false;
314
- const actorId = await params.resolveInboundJid(event.actorJid);
315
- if (!actorId) {
316
- params.logVerboseMessage?.(`whatsapp: approval reaction ignored for ${target.approvalId}; missing actor identity`);
317
- return true;
318
- }
319
- if (getWhatsAppApprovalApprovers({
320
- cfg: params.cfg,
321
- accountId: params.accountId
322
- }).length === 0) {
323
- params.logVerboseMessage?.(`whatsapp: approval reaction denied id=${target.approvalId}; reactions require explicit approvers`);
324
- return true;
325
- }
326
- if (!whatsappApprovalAuth.authorizeActorAction({
327
- cfg: params.cfg,
328
- accountId: params.accountId,
329
- senderId: actorId,
330
- action: "approve",
331
- approvalKind: target.approvalKind
332
- }).authorized) {
333
- params.logVerboseMessage?.(`whatsapp: approval reaction denied id=${target.approvalId} sender=${actorId}`);
334
- return true;
335
- }
336
- const { isApprovalNotFoundError, resolveWhatsAppApproval } = await loadApprovalResolver();
337
- try {
338
- const result = await resolveWhatsAppApproval({
339
- cfg: params.cfg,
340
- approvalId: target.approvalId,
341
- approvalKind: target.approvalKind,
342
- decision: target.decision,
343
- senderId: actorId,
344
- gatewayUrl: params.gatewayUrl
345
- });
346
- unregisterWhatsAppApprovalReactionTarget({
347
- accountId: params.accountId,
348
- remoteJid: target.remoteJid,
349
- messageId: event.messageId
350
- });
351
- const canonicalDecision = "decision" in result.approval ? ` decision=${result.approval.decision}` : "";
352
- params.logVerboseMessage?.(result.applied ? `whatsapp: approval reaction applied id=${target.approvalId} sender=${actorId} status=${result.approval.status}${canonicalDecision}` : `whatsapp: approval reaction already resolved id=${target.approvalId} sender=${actorId} status=${result.approval.status}${canonicalDecision}`);
353
- return true;
354
- } catch (error) {
355
- if (isApprovalNotFoundError(error)) {
356
- unregisterWhatsAppApprovalReactionTarget({
357
- accountId: params.accountId,
358
- remoteJid: target.remoteJid,
359
- messageId: event.messageId
360
- });
361
- params.logVerboseMessage?.(`whatsapp: approval reaction ignored for expired approval id=${target.approvalId} sender=${actorId}`);
362
- return true;
363
- }
364
- params.logVerboseMessage?.(`whatsapp: approval reaction failed id=${target.approvalId} sender=${actorId}: ${String(error)}`);
365
- return true;
366
- }
367
- }
368
- function clearWhatsAppApprovalReactionTargetsForTest() {
369
- whatsappApprovalReactionTargets.clearForTest();
370
- resolverRuntimeLoader.clear();
371
- }
372
- //#endregion
373
- export { unregisterWhatsAppApprovalReactionTarget as i, maybeResolveWhatsAppApprovalReaction as n, registerWhatsAppApprovalReactionTarget as r, approval_reactions_exports as t };
@@ -1,19 +0,0 @@
1
- import { a as resolveWhatsAppGroupRequireMention, i as whatsappSetupContract, l as readWhatsAppAccountLinkState, n as whatsappSetupWizardProxy, o as resolveWhatsAppGroupToolPolicy, r as whatsappSetupAdapter, t as createWhatsAppPluginBase } from "./shared-CAxd15bp.js";
2
- import { t as detectWhatsAppLegacyStateMigrations } from "./state-migrations-CAMTrs2U.js";
3
- //#region extensions/whatsapp/src/channel.setup.ts
4
- const whatsappSetupPlugin = {
5
- ...createWhatsAppPluginBase({
6
- groups: {
7
- resolveRequireMention: resolveWhatsAppGroupRequireMention,
8
- resolveToolPolicy: resolveWhatsAppGroupToolPolicy
9
- },
10
- setupWizard: whatsappSetupWizardProxy,
11
- setup: whatsappSetupAdapter,
12
- setupContract: whatsappSetupContract,
13
- isConfigured: (account) => Boolean(account.authDir),
14
- isLinked: async (account) => await readWhatsAppAccountLinkState(account.authDir)
15
- }),
16
- lifecycle: { detectLegacyStateMigrations: ({ oauthDir }) => detectWhatsAppLegacyStateMigrations({ oauthDir }) }
17
- };
18
- //#endregion
19
- export { whatsappSetupPlugin as t };
@@ -1,50 +0,0 @@
1
- import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
2
- import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
3
- import { WhatsAppConfigSchema } from "openclaw/plugin-sdk/bundled-channel-config-schema";
4
- //#endregion
5
- //#region extensions/whatsapp/src/config-schema.ts
6
- const WhatsAppChannelConfigSchema = buildChannelConfigSchema(WhatsAppConfigSchema, { uiHints: {
7
- "": {
8
- label: "WhatsApp",
9
- help: "WhatsApp channel provider configuration for access policy and direct-message routing safety."
10
- },
11
- ...createChannelConfigUiHints({
12
- channelLabel: "WhatsApp",
13
- dmPolicy: { channelKey: "whatsapp" }
14
- }),
15
- allowFrom: { presentation: "phone-number" },
16
- defaultTo: { presentation: "phone-number" },
17
- groupAllowFrom: { presentation: "phone-number" },
18
- "accounts.*.allowFrom.*": { presentation: "phone-number" },
19
- "accounts.*.defaultTo": { presentation: "phone-number" },
20
- "accounts.*.groupAllowFrom.*": { presentation: "phone-number" },
21
- selfChatMode: {
22
- label: "WhatsApp Self-Phone Mode",
23
- help: "Same-phone setup (bot uses your personal WhatsApp number)."
24
- },
25
- direct: {
26
- label: "WhatsApp Direct Chat Overrides",
27
- help: "Per-conversation overrides keyed by WhatsApp DM id. Applied after a DM is already admitted by dmPolicy; \"*\" supplies a default without admitting anyone."
28
- },
29
- pluginHooks: {
30
- label: "WhatsApp Plugin Hooks",
31
- help: "Opt in to broadcasting inbound WhatsApp events to plugins. Payloads carry personal content, so only enable it for plugins you trust."
32
- },
33
- ...createChannelConfigUiHints({
34
- channelLabel: "WhatsApp",
35
- configWrites: true
36
- }),
37
- "actions.calls": {
38
- label: "WhatsApp Voice Calls",
39
- help: "Expose the experimental requester-bound WhatsApp voice-call tool. Default: false. Requires a separately paired MeowCaller CLI."
40
- },
41
- ...createChannelConfigUiHints({
42
- channelLabel: "WhatsApp",
43
- mentionPatterns: {
44
- targetDescription: "WhatsApp conversation IDs",
45
- policyTargetDescription: "WhatsApp conversation IDs such as 123@g.us"
46
- }
47
- })
48
- } });
49
- //#endregion
50
- export { WhatsAppChannelConfigSchema as t };
@@ -1,23 +0,0 @@
1
- import { t as getOptionalWhatsAppChannelRuntime } from "./runtime-BLlToOi6.js";
2
- import { getChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
3
- //#region extensions/whatsapp/src/connection-controller-runtime-context.ts
4
- const WHATSAPP_CONNECTION_CONTROLLER_CAPABILITY = "connection-controller";
5
- const WHATSAPP_CONNECTION_OWNER_PENDING_CAPABILITY = "connection-owner-pending";
6
- function getWhatsAppConnectionController(accountId) {
7
- return getChannelRuntimeContext({
8
- channelRuntime: getOptionalWhatsAppChannelRuntime() ?? void 0,
9
- channelId: "whatsapp",
10
- accountId,
11
- capability: "connection-controller"
12
- }) ?? null;
13
- }
14
- function hasPendingWhatsAppConnectionOwner(accountId) {
15
- return Boolean(getChannelRuntimeContext({
16
- channelRuntime: getOptionalWhatsAppChannelRuntime() ?? void 0,
17
- channelId: "whatsapp",
18
- accountId,
19
- capability: WHATSAPP_CONNECTION_OWNER_PENDING_CAPABILITY
20
- }));
21
- }
22
- //#endregion
23
- export { hasPendingWhatsAppConnectionOwner as i, WHATSAPP_CONNECTION_OWNER_PENDING_CAPABILITY as n, getWhatsAppConnectionController as r, WHATSAPP_CONNECTION_CONTROLLER_CAPABILITY as t };
@@ -1,196 +0,0 @@
1
- import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { c as resolveMergedWhatsAppAccountConfig, o as resolveWhatsAppAuthDir } from "./accounts-CSqLvCY5.js";
3
- import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
4
- import { i as hasPendingWhatsAppConnectionOwner, r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-DG0tuYuw.js";
5
- import "./normalize-C7Hkc_vE.js";
6
- import { f as readWebAuthExistsForDecision, w as waitForCredsSaveQueueWithTimeout } from "./auth-store-DcEpIOmE.js";
7
- import { n as resolveWebAccountId } from "./active-listener-BEjWsCNM.js";
8
- import { a as waitForWaConnection, h as acquireWhatsAppStandaloneConnectionOwner, n as createWaDirectorySocket, p as WhatsAppConnectionOwnerBusyError, t as closeWhatsAppSocketAndWait } from "./socket-close-DridEuzz.js";
9
- import { listResolvedDirectoryGroupEntriesFromMapKeys, listResolvedDirectoryUserEntriesFromAllowFrom } from "openclaw/plugin-sdk/directory-config-runtime";
10
- //#region extensions/whatsapp/src/directory-config.ts
11
- var directory_config_exports = /* @__PURE__ */ __exportAll({
12
- WHATSAPP_DIRECTORY_UNAVAILABLE_CODE: () => WHATSAPP_DIRECTORY_UNAVAILABLE_CODE,
13
- WhatsAppDirectoryUnavailableError: () => WhatsAppDirectoryUnavailableError,
14
- listWhatsAppDirectoryGroupsFromConfig: () => listWhatsAppDirectoryGroupsFromConfig,
15
- listWhatsAppDirectoryGroupsLive: () => listWhatsAppDirectoryGroupsLive,
16
- listWhatsAppDirectoryPeersFromConfig: () => listWhatsAppDirectoryPeersFromConfig
17
- });
18
- function resolveWhatsAppDirectoryAccount(cfg, accountId) {
19
- return resolveMergedWhatsAppAccountConfig({
20
- cfg,
21
- accountId
22
- });
23
- }
24
- async function listWhatsAppDirectoryPeersFromConfig(params) {
25
- return listResolvedDirectoryUserEntriesFromAllowFrom({
26
- ...params,
27
- resolveAccount: resolveWhatsAppDirectoryAccount,
28
- resolveAllowFrom: (account) => account.allowFrom,
29
- normalizeId: (entry) => {
30
- const normalized = normalizeWhatsAppTarget(entry);
31
- if (!normalized || isWhatsAppGroupJid(normalized)) return null;
32
- return normalized;
33
- }
34
- });
35
- }
36
- async function listWhatsAppDirectoryGroupsFromConfig(params) {
37
- return listResolvedDirectoryGroupEntriesFromMapKeys({
38
- ...params,
39
- resolveAccount: resolveWhatsAppDirectoryAccount,
40
- resolveGroups: (account) => account.groups
41
- });
42
- }
43
- const WHATSAPP_DIRECTORY_UNAVAILABLE_CODE = "whatsapp_directory_unavailable";
44
- var WhatsAppDirectoryUnavailableError = class extends Error {
45
- constructor(reason, message, options) {
46
- super(message, options);
47
- this.reason = reason;
48
- this.code = WHATSAPP_DIRECTORY_UNAVAILABLE_CODE;
49
- this.name = "WhatsAppDirectoryUnavailableError";
50
- }
51
- };
52
- async function fetchLiveGroups(sock, params) {
53
- const groups = await sock.groupFetchAllParticipating();
54
- const query = params.query?.trim().toLowerCase() ?? "";
55
- const limit = typeof params.limit === "number" && params.limit > 0 ? params.limit : void 0;
56
- const entries = Object.entries(groups).map(([jid, metadata]) => ({
57
- kind: "group",
58
- id: jid,
59
- name: metadata?.subject?.trim() || void 0
60
- })).filter((entry) => {
61
- if (!query) return true;
62
- return entry.id.toLowerCase().includes(query) || entry.name?.toLowerCase().includes(query);
63
- }).toSorted((left, right) => left.id.localeCompare(right.id));
64
- return limit ? entries.slice(0, limit) : entries;
65
- }
66
- function unavailable(reason, message, cause) {
67
- return new WhatsAppDirectoryUnavailableError(reason, message, cause ? { cause } : void 0);
68
- }
69
- const pendingStandaloneCleanups = /* @__PURE__ */ new Map();
70
- const STANDALONE_CLEANUP_RETRY_MS = 1e3;
71
- async function completeStandaloneCleanup(cleanup) {
72
- if (cleanup.sock && !cleanup.socketClosed) {
73
- await closeWhatsAppSocketAndWait(cleanup.sock, "OpenClaw WhatsApp standalone directory socket close");
74
- cleanup.socketClosed = true;
75
- }
76
- if (cleanup.sock) {
77
- if (await waitForCredsSaveQueueWithTimeout(cleanup.authDir) === "timed_out") throw new Error("WhatsApp credential persistence did not drain before socket release");
78
- }
79
- await cleanup.ownerLease.release();
80
- if (pendingStandaloneCleanups.get(cleanup.authDir) === cleanup) pendingStandaloneCleanups.delete(cleanup.authDir);
81
- if (cleanup.retryTimer) {
82
- clearTimeout(cleanup.retryTimer);
83
- cleanup.retryTimer = null;
84
- }
85
- }
86
- function runStandaloneCleanup(cleanup) {
87
- if (cleanup.inFlight) return cleanup.inFlight;
88
- const task = completeStandaloneCleanup(cleanup).finally(() => {
89
- if (cleanup.inFlight === task) cleanup.inFlight = null;
90
- });
91
- cleanup.inFlight = task;
92
- return task;
93
- }
94
- function scheduleStandaloneCleanupRetry(cleanup) {
95
- if (cleanup.retryTimer) return;
96
- cleanup.retryTimer = setTimeout(() => {
97
- cleanup.retryTimer = null;
98
- runStandaloneCleanup(cleanup).catch(() => {
99
- scheduleStandaloneCleanupRetry(cleanup);
100
- });
101
- }, STANDALONE_CLEANUP_RETRY_MS);
102
- cleanup.retryTimer.unref?.();
103
- }
104
- function retainStandaloneCleanup(cleanup) {
105
- pendingStandaloneCleanups.set(cleanup.authDir, cleanup);
106
- scheduleStandaloneCleanupRetry(cleanup);
107
- }
108
- async function finishStandaloneCleanupOrThrow(cleanup, operationError) {
109
- try {
110
- await runStandaloneCleanup(cleanup);
111
- } catch (cleanupError) {
112
- retainStandaloneCleanup(cleanup);
113
- throw cleanupUnavailable(operationError === void 0 ? cleanupError : new AggregateError([operationError, cleanupError], "WhatsApp live group lookup and cleanup failed", { cause: operationError }));
114
- }
115
- }
116
- function cleanupUnavailable(error) {
117
- return unavailable("cleanup_failed", "WhatsApp live group lookup could not safely close its standalone connection.", error);
118
- }
119
- async function finishPriorStandaloneCleanup(authDir) {
120
- const cleanup = pendingStandaloneCleanups.get(authDir);
121
- if (!cleanup) return;
122
- try {
123
- await runStandaloneCleanup(cleanup);
124
- } catch (error) {
125
- scheduleStandaloneCleanupRetry(cleanup);
126
- throw cleanupUnavailable(error);
127
- }
128
- }
129
- async function listGroupsThroughStandaloneOwner(params) {
130
- const account = resolveWhatsAppDirectoryAccount(params.cfg, params.accountId);
131
- const authDir = resolveWhatsAppAuthDir({
132
- cfg: params.cfg,
133
- accountId: account.accountId
134
- }).authDir;
135
- await finishPriorStandaloneCleanup(authDir);
136
- let ownerLease;
137
- try {
138
- ownerLease = await acquireWhatsAppStandaloneConnectionOwner(authDir);
139
- } catch (error) {
140
- if (error instanceof WhatsAppConnectionOwnerBusyError) throw unavailable("connection_owner_busy", "WhatsApp live groups are unavailable because the account is owned by another process.", error);
141
- throw unavailable("connection_failed", "WhatsApp live groups are unavailable because connection ownership failed.", error);
142
- }
143
- const cleanup = {
144
- authDir,
145
- inFlight: null,
146
- ownerLease,
147
- retryTimer: null,
148
- sock: null,
149
- socketClosed: true
150
- };
151
- let groups;
152
- try {
153
- let authState;
154
- try {
155
- authState = await readWebAuthExistsForDecision(authDir);
156
- } catch (error) {
157
- throw unavailable("auth_unstable", "WhatsApp live groups are unavailable because linked credentials could not be read.", error);
158
- }
159
- if (authState.outcome === "unstable") throw unavailable("auth_unstable", "WhatsApp live groups are unavailable while linked credentials are changing.");
160
- if (!authState.exists) throw unavailable("not_linked", "WhatsApp live groups are unavailable because this account is not linked.");
161
- try {
162
- cleanup.sock = await createWaDirectorySocket(authDir);
163
- cleanup.socketClosed = false;
164
- await waitForWaConnection(cleanup.sock, { timeoutMs: 3e4 });
165
- } catch (error) {
166
- throw unavailable("connection_failed", "WhatsApp live groups are unavailable because the standalone connection failed.", error);
167
- }
168
- try {
169
- groups = await fetchLiveGroups(cleanup.sock, params);
170
- } catch (error) {
171
- throw unavailable("lookup_failed", "WhatsApp live group lookup failed.", error);
172
- }
173
- } catch (error) {
174
- await finishStandaloneCleanupOrThrow(cleanup, error);
175
- throw error;
176
- }
177
- await finishStandaloneCleanupOrThrow(cleanup);
178
- return groups;
179
- }
180
- async function listWhatsAppDirectoryGroupsLive(params) {
181
- const accountId = resolveWebAccountId({
182
- cfg: params.cfg,
183
- accountId: params.accountId
184
- });
185
- const controller = getWhatsAppConnectionController(accountId);
186
- if (!controller && !hasPendingWhatsAppConnectionOwner(accountId)) return await listGroupsThroughStandaloneOwner(params);
187
- const sock = controller?.getCurrentSock();
188
- if (!sock) throw unavailable("active_owner_unavailable", "WhatsApp live groups are unavailable while the gateway connection is offline.");
189
- try {
190
- return await fetchLiveGroups(sock, params);
191
- } catch (error) {
192
- throw unavailable("lookup_failed", "WhatsApp live group lookup failed.", error);
193
- }
194
- }
195
- //#endregion
196
- export { listWhatsAppDirectoryGroupsFromConfig as n, listWhatsAppDirectoryPeersFromConfig as r, directory_config_exports as t };
@@ -1,10 +0,0 @@
1
- //#region extensions/whatsapp/src/doctor.ts
2
- function normalizeCompatibilityConfig({ cfg }) {
3
- return {
4
- config: cfg,
5
- changes: []
6
- };
7
- }
8
- const whatsappDoctor = { normalizeCompatibilityConfig };
9
- //#endregion
10
- export { whatsappDoctor as n, normalizeCompatibilityConfig as t };
@@ -1,2 +0,0 @@
1
- import "./normalize-target-CugRyONv.js";
2
- export {};