@openclaw/whatsapp 2026.9.3 → 2026.9.5

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 (269) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{accounts-CiKHiuEe.js → .setup/accounts-D_NGDjCx.mjs} +2 -2
  4. package/dist/{action-runtime-CRZLhN3f.js → .setup/action-runtime-DZZFamfl.mjs} +3 -3
  5. package/dist/{active-listener-BEjWsCNM.js → .setup/active-listener-CDjoX9QR.mjs} +2 -2
  6. package/dist/{agent-tools-login-B-2qZPzc.js → .setup/agent-tools-login-B6MAs75N.mjs} +2 -2
  7. package/dist/{approval-handler.runtime-DGJEaoqh.js → .setup/approval-handler.runtime-C0hzmMSj.mjs} +12 -12
  8. package/dist/{approval-reactions-DSFH6Mtx.js → .setup/approval-reactions-BnXw-UZI.mjs} +13 -13
  9. package/dist/{auth-store-ZWaclAbd.js → .setup/auth-store-Dh8a3cba.mjs} +5 -5
  10. package/dist/{channel-BeBrHPVa.js → .setup/channel-CSclZYjU.mjs} +21 -29
  11. package/dist/{channel-react-action-CHeJSG9F.js → .setup/channel-react-action-1iBiEnq7.mjs} +5 -5
  12. package/dist/.setup/channel.runtime-ddGY37w8.mjs +16 -0
  13. package/dist/.setup/channel.setup-CqUl8COe.mjs +5 -0
  14. package/dist/{connection-controller-DNp6U1NN.js → .setup/connection-controller-C60mU7j7.mjs} +5 -5
  15. package/dist/{connection-controller-runtime-context-DG0tuYuw.js → .setup/connection-controller-runtime-context-hgLJoRc8.mjs} +1 -1
  16. package/dist/{directory-config-CoWFw1zn.js → .setup/directory-config-BHPoBklt.mjs} +8 -8
  17. package/dist/{group-session-key-BmVDSPr1.js → .setup/group-session-key-D22hYMdE.mjs} +5 -5
  18. package/dist/.setup/legacy-session-surface-api-B2szjq4r.mjs +2 -0
  19. package/dist/{login-6j2iP9nR.js → .setup/login-2dmd1TfE.mjs} +5 -5
  20. package/dist/{login-qr-DRFgI6k1.js → .setup/login-qr-CgKtO_ef.mjs} +6 -6
  21. package/dist/{monitor-DNGfO3k0.js → .setup/monitor-BblvzLpX.mjs} +72 -89
  22. package/dist/.setup/normalize-DdsROMMa.mjs +2 -0
  23. package/dist/{normalize-target-CugRyONv.js → .setup/normalize-target-BGra1ZnM.mjs} +8 -30
  24. package/dist/{question-reactions-bbe0Qnjn.js → .setup/question-reactions-D3Zq9Gbn.mjs} +2 -2
  25. package/dist/{resolve-outbound-target-1GqbT1uX.js → .setup/resolve-outbound-target-C2eUvsTc.mjs} +1 -1
  26. package/dist/{send-BDDGPxav.js → .setup/send-C6jDmcL9.mjs} +7 -7
  27. package/dist/{send-api-C_Zn4Ij-.js → .setup/send-api-B4DOt2RJ.mjs} +7 -7
  28. package/dist/{session.runtime-Nsqaehbd.js → .setup/session.runtime-DcJuO42v.mjs} +1 -1
  29. package/dist/{setup-finalize-Bp-4QnVw.js → .setup/setup-finalize-BYEgU0hb.mjs} +6 -6
  30. package/dist/.setup/setup-plugin-api-CXfU-7vN.mjs +3 -0
  31. package/dist/{setup-surface-B5UnuLT_.js → .setup/setup-surface-Cd3wN5HD.mjs} +4 -4
  32. package/dist/{shared-D6cUWXiq.js → .setup/shared-C9OEtKgc.mjs} +48 -60
  33. package/dist/{socket-close-B3X9uerq.js → .setup/socket-close-CCVSFufF.mjs} +4 -4
  34. package/dist/{text-runtime-DyfmcATV.js → .setup/text-runtime-CHl0iPYe.mjs} +1 -1
  35. package/dist/action-runtime-api.js +1 -1
  36. package/dist/action-runtime.runtime.js +1 -1
  37. package/dist/agent-tools-api.js +4 -4
  38. package/dist/api.js +15 -15
  39. package/dist/auth-presence.js +1 -1
  40. package/dist/channel-config-api.js +1 -1
  41. package/dist/channel-plugin-api.js +1 -1
  42. package/dist/contract-api.js +5 -5
  43. package/dist/directory-contract-api.js +1 -1
  44. package/dist/doctor-contract-api.js +2 -2
  45. package/dist/legacy-session-surface-api.js +1 -1
  46. package/dist/light-runtime-api.js +4 -4
  47. package/dist/login-qr-runtime.js +1 -1
  48. package/dist/runtime-api.js +13 -13
  49. package/dist/runtime-setter-api.js +1 -1
  50. package/dist/security-contract-api.js +1 -1
  51. package/dist/setup-entry.js +3 -2
  52. package/dist/setup-plugin-api.js +1 -1
  53. package/node_modules/audio-decode/node_modules/@thi.ng/bitstream/README.md +1 -1
  54. package/node_modules/audio-decode/node_modules/@thi.ng/bitstream/package.json +5 -5
  55. package/node_modules/audio-decode/node_modules/@thi.ng/errors/README.md +1 -1
  56. package/node_modules/audio-decode/node_modules/@thi.ng/errors/package.json +5 -5
  57. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/flac/dist/flac-decoder.min.js +1 -1
  58. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/flac/dist/flac-decoder.min.js.map +1 -1
  59. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/flac/package.json +1 -1
  60. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/flac/src/FLACDecoder.js +6 -6
  61. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/flac/src/FLACDecoderWebWorker.js +2 -2
  62. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js +11603 -11540
  63. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/dist/opus-ml-decoder.min.js.map +1 -1
  64. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/package.json +1 -1
  65. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/src/EmscriptenWasm.js +0 -0
  66. package/node_modules/audio-decode/node_modules/@wasm-audio-decoders/opus-ml/types.d.ts +1 -5
  67. package/node_modules/audio-decode/node_modules/audio-type/audio-type.js +156 -2
  68. package/node_modules/audio-decode/node_modules/audio-type/package.json +23 -2
  69. package/node_modules/audio-decode/node_modules/audio-type/readme.md +40 -2
  70. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/README.md +1 -1
  71. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js +3 -3
  72. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.min.js.map +1 -1
  73. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js +0 -0
  74. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/dist/ogg-opus-decoder.opus-ml.min.js.map +1 -1
  75. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/package.json +8 -8
  76. package/node_modules/audio-decode/node_modules/ogg-opus-decoder/src/OggOpusDecoder.js +1 -1
  77. package/node_modules/audio-decode/node_modules/opus-decoder/README.md +1 -1
  78. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js +3 -3
  79. package/node_modules/audio-decode/node_modules/opus-decoder/dist/opus-decoder.min.js.map +1 -1
  80. package/node_modules/audio-decode/node_modules/opus-decoder/package.json +1 -1
  81. package/node_modules/audio-decode/node_modules/opus-decoder/types.d.ts +1 -5
  82. package/node_modules/baileys/node_modules/protobufjs/README.md +24 -17
  83. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js +124 -14
  84. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  85. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  86. package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  87. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js +63 -9
  88. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  89. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  90. package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  91. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js +133 -18
  92. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  93. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  94. package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  95. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.generated.d.ts +7 -0
  96. package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.js +24 -0
  97. package/node_modules/baileys/node_modules/protobufjs/ext/protojson.js +14 -4
  98. package/node_modules/baileys/node_modules/protobufjs/ext/textformat.js +8 -4
  99. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.json +20 -1
  100. package/node_modules/baileys/node_modules/protobufjs/google/protobuf/descriptor.proto +14 -1
  101. package/node_modules/baileys/node_modules/protobufjs/index.d.ts +12 -0
  102. package/node_modules/baileys/node_modules/protobufjs/package.json +1 -1
  103. package/node_modules/baileys/node_modules/protobufjs/src/decoder.js +31 -2
  104. package/node_modules/baileys/node_modules/protobufjs/src/enum.js +10 -0
  105. package/node_modules/baileys/node_modules/protobufjs/src/object.js +5 -2
  106. package/node_modules/baileys/node_modules/protobufjs/src/parse.js +9 -4
  107. package/node_modules/baileys/node_modules/protobufjs/src/reader.js +61 -7
  108. package/node_modules/baileys/node_modules/protobufjs/src/type.js +10 -0
  109. package/node_modules/baileys/node_modules/protobufjs/src/wrappers.js +5 -1
  110. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  111. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  112. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  113. package/node_modules/typebox/build/format/iri.mjs +5 -1
  114. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  115. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  116. package/node_modules/typebox/build/guard/string.mjs +16 -24
  117. package/node_modules/typebox/build/schema/build.mjs +2 -2
  118. package/node_modules/typebox/build/schema/check.mjs +1 -1
  119. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  120. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  121. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  122. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  123. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  124. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  125. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  126. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  127. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  128. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  129. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  130. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  131. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  132. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  133. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  134. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  135. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  136. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  137. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  138. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  139. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  140. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  141. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  142. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  143. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  144. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  145. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  146. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  147. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  148. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  149. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  150. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  151. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  152. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  153. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  154. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  155. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  156. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  157. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  158. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  159. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  160. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  161. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  162. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  163. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  164. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  165. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  166. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  167. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  168. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  169. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  170. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  171. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  172. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  173. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  174. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  175. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  176. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  177. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  178. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  179. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  180. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  181. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  182. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  183. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  184. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  185. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  186. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  187. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  188. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  189. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  190. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  191. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  192. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  193. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  194. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  195. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  196. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  197. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  198. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  199. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  200. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  201. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  202. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  203. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  204. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  205. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  206. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  207. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  208. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  209. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  210. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  211. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  212. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  213. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  214. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  215. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  216. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  217. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  218. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  219. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  220. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  221. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  222. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  223. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  224. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  225. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  226. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  227. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  228. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  229. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  230. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  231. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  232. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  233. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  234. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  235. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  236. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  237. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  238. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  239. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  240. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  241. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  242. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  243. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  244. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  245. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  246. package/node_modules/typebox/package.json +1 -1
  247. package/node_modules/typebox/readme.md +59 -89
  248. package/openclaw.plugin.json +13 -0
  249. package/package.json +7 -5
  250. package/dist/channel.runtime-qi6Zbi9p.js +0 -55
  251. package/dist/channel.setup-DhuZ51Kg.js +0 -14
  252. package/dist/normalize-C7Hkc_vE.js +0 -2
  253. /package/dist/{account-ids-CB5SOWjc.js → .setup/account-ids-CB5SOWjc.mjs} +0 -0
  254. /package/dist/{audio-preflight.runtime-C_glQhZY.js → .setup/audio-preflight.runtime-C_glQhZY.mjs} +0 -0
  255. /package/dist/{command-policy-BIOSHySD.js → .setup/command-policy-BIOSHySD.mjs} +0 -0
  256. /package/dist/{config-schema-BYA6e_Ii.js → .setup/config-schema-BYA6e_Ii.mjs} +0 -0
  257. /package/dist/{constants-C7m81BNe.js → .setup/constants-C7m81BNe.mjs} +0 -0
  258. /package/dist/{creds-files-Drg3usj1.js → .setup/creds-files-Drg3usj1.mjs} +0 -0
  259. /package/dist/{doctor-BPb-SjdE.js → .setup/doctor-BPb-SjdE.mjs} +0 -0
  260. /package/dist/{group-config-path-BGyzT9Lg.js → .setup/group-config-path-BGyzT9Lg.mjs} +0 -0
  261. /package/dist/{group-session-contract-DDnZSsJ1.js → .setup/group-session-contract-DDnZSsJ1.mjs} +0 -0
  262. /package/dist/{reply-resolver.runtime-Ded8D58Y.js → .setup/reply-resolver.runtime-Ded8D58Y.mjs} +0 -0
  263. /package/dist/{rolldown-runtime-D7D4PA-g.js → .setup/rolldown-runtime-D7D4PA-g.mjs} +0 -0
  264. /package/dist/{runtime-BLlToOi6.js → .setup/runtime-BLlToOi6.mjs} +0 -0
  265. /package/dist/{runtime-group-policy-DeSRFXEV.js → .setup/runtime-group-policy-DeSRFXEV.mjs} +0 -0
  266. /package/dist/{security-contract-nAzD945y.js → .setup/security-contract-nAzD945y.mjs} +0 -0
  267. /package/dist/{session-contract-DMTm6Q_L.js → .setup/session-contract-DMTm6Q_L.mjs} +0 -0
  268. /package/dist/{session-errors-JuazczrA.js → .setup/session-errors-JuazczrA.mjs} +0 -0
  269. /package/dist/{targets-runtime-RBjx3pg_.js → .setup/targets-runtime-RBjx3pg_.mjs} +0 -0
@@ -1,20 +1,20 @@
1
- import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-CiKHiuEe.js";
2
- import { c as normalizeWhatsAppPayloadTextPreservingIndentation, d as listWhatsAppSendResultMessageIds, f as mergeWhatsAppAcceptedSendError, g as withWhatsAppLogicalDeliveryActivity, h as rememberWhatsAppPartialSend, l as prepareWhatsAppOutboundMedia, m as rememberWhatsAppAcceptedSend, o as normalizeWhatsAppOutboundPayload, p as normalizeWhatsAppSendResult, r as sendReactionWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-BDDGPxav.js";
3
- import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.js";
4
- import { r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-DG0tuYuw.js";
5
- import { a as markdownToWhatsAppChunks, c as toWhatsappJid, l as toWhatsappJidWithLid, n as isSelfChatMode, o as resolveEquivalentWhatsAppDirectChatJids, r as jidToE164, s as resolveJidToE164 } from "./targets-runtime-RBjx3pg_.js";
6
- import { t as normalizeE164 } from "./text-runtime-DyfmcATV.js";
7
- import { a as cacheInboundMessageMeta, i as buildQuotedMessageOptions, n as resolveWhatsAppGroupSessionRoute, o as lookupInboundMessageMeta, r as resolveWhatsAppLegacyGroupSessionKey } from "./group-session-key-BmVDSPr1.js";
8
- import { C as getMentionIdentities, D as getSenderIdentity, E as getSelfIdentity, O as identitiesOverlap, S as getComparableIdentityValues, T as getReplyContext, g as readWebSelfId, k as resolveComparableIdentity, o as getWebAuthAgeMs, r as WhatsAppAuthUnstableError, v as readWebSelfIdentityForDecision, w as getPrimaryIdentityId } from "./auth-store-ZWaclAbd.js";
9
- import { n as resolveWhatsAppGroupsConfigPath } from "./group-config-path-BGyzT9Lg.js";
10
- import { a as waitForWaConnection, c as isWhatsAppSocketOperationTimeoutError, d as withWhatsAppSocketOperationTimeout, l as resolveWhatsAppSocketOperationTimeoutMs, r as createWaSocket, s as createWhatsAppSocketOperationTimeoutAdapter, u as resolveWhatsAppSocketTiming } from "./socket-close-B3X9uerq.js";
11
- import { n as getStatusCode, t as formatError } from "./session-errors-JuazczrA.js";
12
- import { t as BufferJSON } from "./session.runtime-Nsqaehbd.js";
13
- import { _ as resolveInboundMediaMimetype, a as addWhatsAppImagePreviewFields, c as extractContextInfo, d as extractMediaKind, f as extractMentionedJids, g as projectWhatsAppInboundMessage, h as hasInboundUserContent, i as resolveWhatsAppOutboundMentions, l as extractExternalAdReplyContext, n as addWhatsAppOutboundMentionsToContent, o as describeReplyContext, p as extractText, r as mayContainWhatsAppOutboundMention, s as extractContactContext, t as createWebSendApi, u as extractLocationData } from "./send-api-C_Zn4Ij-.js";
14
- import { t as resolveWhatsAppRuntimeGroupPolicy } from "./runtime-group-policy-DeSRFXEV.js";
15
- import { c as computeBackoff, d as resolveReconnectPolicy, f as sleepWithAbort, l as newConnectionId, n as WHATSAPP_WATCHDOG_TIMEOUT_ERROR, r as WhatsAppConnectionController, s as DEFAULT_RECONNECT_POLICY, u as resolveHeartbeatSeconds } from "./connection-controller-DNp6U1NN.js";
16
- import { n as maybeResolveWhatsAppApprovalReaction } from "./approval-reactions-DSFH6Mtx.js";
17
- import { t as maybeResolveWhatsAppQuestionReaction } from "./question-reactions-bbe0Qnjn.js";
1
+ import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-D_NGDjCx.mjs";
2
+ import { c as normalizeWhatsAppPayloadTextPreservingIndentation, d as listWhatsAppSendResultMessageIds, f as mergeWhatsAppAcceptedSendError, g as withWhatsAppLogicalDeliveryActivity, h as rememberWhatsAppPartialSend, l as prepareWhatsAppOutboundMedia, m as rememberWhatsAppAcceptedSend, o as normalizeWhatsAppOutboundPayload, p as normalizeWhatsAppSendResult, r as sendReactionWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-C6jDmcL9.mjs";
3
+ import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.mjs";
4
+ import { r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-hgLJoRc8.mjs";
5
+ import { a as markdownToWhatsAppChunks, c as toWhatsappJid, l as toWhatsappJidWithLid, n as isSelfChatMode, o as resolveEquivalentWhatsAppDirectChatJids, r as jidToE164, s as resolveJidToE164 } from "./targets-runtime-RBjx3pg_.mjs";
6
+ import { t as normalizeE164 } from "./text-runtime-CHl0iPYe.mjs";
7
+ import { a as cacheInboundMessageMeta, i as buildQuotedMessageOptions, n as resolveWhatsAppGroupSessionRoute, o as lookupInboundMessageMeta, r as resolveWhatsAppLegacyGroupSessionKey } from "./group-session-key-D22hYMdE.mjs";
8
+ import { C as getMentionIdentities, D as getSenderIdentity, E as getSelfIdentity, O as identitiesOverlap, S as getComparableIdentityValues, T as getReplyContext, g as readWebSelfId, k as resolveComparableIdentity, o as getWebAuthAgeMs, r as WhatsAppAuthUnstableError, v as readWebSelfIdentityForDecision, w as getPrimaryIdentityId } from "./auth-store-Dh8a3cba.mjs";
9
+ import { n as resolveWhatsAppGroupsConfigPath } from "./group-config-path-BGyzT9Lg.mjs";
10
+ import { a as waitForWaConnection, c as isWhatsAppSocketOperationTimeoutError, d as withWhatsAppSocketOperationTimeout, l as resolveWhatsAppSocketOperationTimeoutMs, r as createWaSocket, s as createWhatsAppSocketOperationTimeoutAdapter, u as resolveWhatsAppSocketTiming } from "./socket-close-CCVSFufF.mjs";
11
+ import { n as getStatusCode, t as formatError } from "./session-errors-JuazczrA.mjs";
12
+ import { t as BufferJSON } from "./session.runtime-DcJuO42v.mjs";
13
+ import { _ as resolveInboundMediaMimetype, a as addWhatsAppImagePreviewFields, c as extractContextInfo, d as extractMediaKind, f as extractMentionedJids, g as projectWhatsAppInboundMessage, h as hasInboundUserContent, i as resolveWhatsAppOutboundMentions, l as extractExternalAdReplyContext, n as addWhatsAppOutboundMentionsToContent, o as describeReplyContext, p as extractText, r as mayContainWhatsAppOutboundMention, s as extractContactContext, t as createWebSendApi, u as extractLocationData } from "./send-api-B4DOt2RJ.mjs";
14
+ import { t as resolveWhatsAppRuntimeGroupPolicy } from "./runtime-group-policy-DeSRFXEV.mjs";
15
+ import { c as computeBackoff, d as resolveReconnectPolicy, f as sleepWithAbort, l as newConnectionId, n as WHATSAPP_WATCHDOG_TIMEOUT_ERROR, r as WhatsAppConnectionController, s as DEFAULT_RECONNECT_POLICY, u as resolveHeartbeatSeconds } from "./connection-controller-C60mU7j7.mjs";
16
+ import { n as maybeResolveWhatsAppApprovalReaction } from "./approval-reactions-BnXw-UZI.mjs";
17
+ import { t as maybeResolveWhatsAppQuestionReaction } from "./question-reactions-D3Zq9Gbn.mjs";
18
18
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
19
19
  import { createAckReactionHandle, createStatusReactionController, logAckFailure, removeAckReactionHandleAfterReply, shouldAckReaction } from "openclaw/plugin-sdk/channel-feedback";
20
20
  import { bindIngressLifecycleToReplyOptions, createChannelIngressMonitor, createChannelMessageReplyPipeline, createMessageReceiptFromOutboundResults, listMessageReceiptPlatformIds, resolveChannelMessageSourceReplyDeliveryMode, resolveChannelStreamingBlockEnabled } from "openclaw/plugin-sdk/channel-outbound";
@@ -25,16 +25,16 @@ import { resolveMarkdownTableMode as resolveMarkdownTableMode$1 } from "openclaw
25
25
  import { createSubsystemLogger as createSubsystemLogger$1, defaultRuntime, formatDurationPrecise, getChildLogger as getChildLogger$1, logVerbose, logVerbose as logVerbose$1, registerUnhandledRejectionHandler, shouldLogVerbose, shouldLogVerbose as shouldLogVerbose$1, warn } from "openclaw/plugin-sdk/runtime-env";
26
26
  import { registerChannelRuntimeContext } from "openclaw/plugin-sdk/channel-runtime-context";
27
27
  import { recordChannelActivity } from "openclaw/plugin-sdk/channel-activity-runtime";
28
- import { buildChannelInboundEventContext, createChannelPartialDeliveryError, filterChannelInboundQuoteContext, formatInboundEnvelope, formatInboundEnvelope as formatInboundEnvelope$1, formatInboundMediaUnavailableText, formatLocationText, formatMediaPlaceholderText, hasVisibleInboundReplyDispatch, isChannelPartialDeliveryError, readAgentRunTerminalOutcome, resolveInboundSessionEnvelopeContext, resolveInboundSupplementalSenderAllowed, runChannelInboundEvent, shouldDebounceTextInbound, toInboundMediaFactsWithMetadata, toLocationContext } from "openclaw/plugin-sdk/channel-inbound";
28
+ import { buildChannelInboundEventContext, createChannelPartialDeliveryError, filterChannelInboundQuoteContext, formatInboundEnvelope, formatInboundEnvelope as formatInboundEnvelope$1, formatInboundMediaUnavailableText, formatLocationText, formatMediaPlaceholderText, hasVisibleInboundReplyDispatch, isChannelPartialDeliveryError, readAgentRunTerminalOutcome, resolveGroupThreadConfig, resolveInboundSessionEnvelopeContext, resolveInboundSupplementalSenderAllowed, runChannelInboundEvent, runGroupThread, shouldDebounceTextInbound, toInboundMediaFactsWithMetadata, toLocationContext } from "openclaw/plugin-sdk/channel-inbound";
29
29
  import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-runtime";
30
30
  import { isReasoningReplyPayload, resolveSendableOutboundReplyParts, resolveTextChunksWithFallback, sendMediaWithLeadingCaption } from "openclaw/plugin-sdk/reply-payload";
31
31
  import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
32
32
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
33
33
  import { DisconnectReason, downloadMediaMessage, isHostedLidUser, isHostedPnUser, isJidGroup, isJidGroup as isJidGroup$1, jidDecode, jidEncode, jidNormalizedUser, normalizeMessageContent as normalizeMessageContent$1 } from "baileys";
34
- import { resolveChannelGroupPolicy, resolveChannelGroupRequireMention } from "openclaw/plugin-sdk/channel-policy";
35
- import { DEFAULT_ACCOUNT_ID, DEFAULT_MAIN_KEY, buildAgentMainSessionKey, buildAgentSessionKey, buildGroupHistoryKey, deriveLastRoutePolicy, normalizeAccountId, normalizeAgentId, resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
34
+ import { DEFAULT_ACCOUNT_ID, DEFAULT_MAIN_KEY, buildAgentMainSessionKey, buildAgentSessionKey, buildGroupHistoryKey, deriveLastRoutePolicy, normalizeAccountId, resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
36
35
  import { asDateTimestampMs, parseStrictFiniteNumber, resolveExpiresAtMsFromDurationMs } from "openclaw/plugin-sdk/number-runtime";
37
36
  import { filterSupplementalContextItems, resolvePinnedMainDmOwnerFromAllowlist } from "openclaw/plugin-sdk/security-runtime";
37
+ import { resolveChannelGroupPolicy, resolveChannelGroupRequireMention } from "openclaw/plugin-sdk/channel-policy";
38
38
  import { createChannelPairingChallengeIssuer } from "openclaw/plugin-sdk/channel-pairing";
39
39
  import { createHash } from "node:crypto";
40
40
  import { resolveDefaultGroupPolicy, warnMissingProviderGroupPolicyFallbackOnce } from "openclaw/plugin-sdk/runtime-group-policy";
@@ -54,7 +54,7 @@ import { resolveChannelContextVisibilityMode } from "openclaw/plugin-sdk/context
54
54
  import { buildMentionRegexes, implicitMentionKindWhen, normalizeMentionText, resolveInboundMentionDecision } from "openclaw/plugin-sdk/channel-mention-gating";
55
55
  import { channelReadyPatch, channelStoppedPatch, createTransportActivityStatusPatch } from "openclaw/plugin-sdk/gateway-runtime";
56
56
  import { ensureConfiguredBindingRouteReady, resolveConfiguredBindingRoute } from "openclaw/plugin-sdk/conversation-binding-runtime";
57
- import { resolveAgentIdentity, resolveIdentityNamePrefix as resolveIdentityNamePrefix$1 } from "openclaw/plugin-sdk/agent-runtime";
57
+ import { resolveAgentIdentity, resolveIdentityNamePrefix } from "openclaw/plugin-sdk/agent-runtime";
58
58
  import { normalizeGroupActivation, parseActivationCommand } from "openclaw/plugin-sdk/group-activation";
59
59
  import { formatAudioTranscriptForAgent } from "openclaw/plugin-sdk/media-understanding-runtime";
60
60
  import { hasControlCommand, isControlCommandMessage, shouldComputeCommandAuthorized } from "openclaw/plugin-sdk/command-detection";
@@ -63,7 +63,6 @@ import { getGlobalHookRunner } from "openclaw/plugin-sdk/plugin-runtime";
63
63
  import { resolveBatchedReplyThreadingPolicy } from "openclaw/plugin-sdk/reply-reference";
64
64
  import { LocalMediaAccessError, getDefaultLocalRoots, loadWebMedia, loadWebMediaRaw, optimizeImageToJpeg, optimizeImageToPng } from "openclaw/plugin-sdk/web-media";
65
65
  import { createChannelApiRetryRunner } from "openclaw/plugin-sdk/retry-runtime";
66
- import { resolveAgentConfig } from "openclaw/plugin-sdk/agent-scope-runtime";
67
66
  //#region extensions/whatsapp/src/inbound/group-conversation.ts
68
67
  function resolveWhatsAppGroupConversationId(conversationId) {
69
68
  return resolveGroupSessionKey({
@@ -2276,50 +2275,49 @@ function buildBroadcastRouteKeys(params) {
2276
2275
  };
2277
2276
  }
2278
2277
  async function maybeBroadcastMessage(params) {
2279
- const broadcastAgents = params.cfg.broadcast?.[params.peerId];
2280
- if (!broadcastAgents || !Array.isArray(broadcastAgents)) return false;
2281
- if (broadcastAgents.length === 0) return false;
2282
- const strategy = params.cfg.broadcast?.strategy || "parallel";
2283
- whatsappInboundLog.info(`Broadcasting message to ${broadcastAgents.length} agents (${strategy})`);
2284
- const agentIds = params.cfg.agents?.list?.map((agent) => normalizeAgentId(agent.id));
2285
- const hasKnownAgents = (agentIds?.length ?? 0) > 0;
2278
+ const group = resolveGroupThreadConfig({
2279
+ cfg: params.cfg,
2280
+ channel: "whatsapp",
2281
+ peerId: params.peerId
2282
+ });
2283
+ if (!group) return false;
2284
+ whatsappInboundLog.info(`Broadcasting message to ${group.agents.length} agents (${group.strategy})`);
2286
2285
  const isGroupConversation = requireWhatsAppInboundAdmission(params.msg).conversation.kind === "group";
2287
- const groupHistorySnapshot = isGroupConversation ? params.groupHistories.get(params.groupHistoryKey) ?? [] : void 0;
2288
- const processForAgent = async (agentId) => {
2289
- const normalizedAgentId = normalizeAgentId(agentId);
2290
- if (hasKnownAgents && !agentIds?.includes(normalizedAgentId)) {
2291
- whatsappInboundLog.warn(`Broadcast agent ${agentId} not found in agents.list; skipping`);
2292
- return false;
2293
- }
2294
- const routeKeys = buildBroadcastRouteKeys({
2295
- cfg: params.cfg,
2296
- msg: params.msg,
2297
- route: params.route,
2298
- peerId: params.peerId,
2299
- agentId: normalizedAgentId
2300
- });
2301
- const baseAgentRoute = {
2302
- ...params.route,
2303
- agentId: normalizedAgentId,
2304
- ...routeKeys
2305
- };
2306
- const agentRoute = isGroupConversation ? resolveWhatsAppGroupSessionRoute(baseAgentRoute) : baseAgentRoute;
2307
- try {
2308
- const opts = {
2309
- groupHistory: groupHistorySnapshot,
2310
- suppressGroupHistoryClear: true
2286
+ const groupHistorySnapshot = isGroupConversation ? [...params.groupHistories.get(params.groupHistoryKey) ?? []] : void 0;
2287
+ await runGroupThread({
2288
+ cfg: params.cfg,
2289
+ group,
2290
+ channel: "whatsapp",
2291
+ accountId: params.route.accountId,
2292
+ peerId: params.peerId,
2293
+ messageId: params.msg.event.id,
2294
+ text: [params.msg.payload.body, params.preflightAudioTranscript].filter(Boolean).join("\n"),
2295
+ onError: (err, turn) => {
2296
+ whatsappInboundLog.error(`Broadcast agent ${turn.agentId} failed: ${formatError(err)}`);
2297
+ },
2298
+ runTurn: async (turn) => {
2299
+ const routeKeys = buildBroadcastRouteKeys({
2300
+ cfg: params.cfg,
2301
+ msg: params.msg,
2302
+ route: params.route,
2303
+ peerId: params.peerId,
2304
+ agentId: turn.agentId
2305
+ });
2306
+ const baseAgentRoute = {
2307
+ ...params.route,
2308
+ agentId: turn.agentId,
2309
+ ...routeKeys
2311
2310
  };
2312
- if (params.preflightAudioTranscript !== void 0) opts.preflightAudioTranscript = params.preflightAudioTranscript;
2313
- if (params.ackAlreadySent === true) opts.ackAlreadySent = true;
2314
- if (params.ackReaction !== void 0) opts.ackReaction = params.ackReaction;
2315
- return await params.processMessage(params.msg, agentRoute, params.groupHistoryKey, opts);
2316
- } catch (err) {
2317
- whatsappInboundLog.error(`Broadcast agent ${agentId} failed: ${formatError(err)}`);
2318
- return false;
2311
+ const agentRoute = isGroupConversation ? resolveWhatsAppGroupSessionRoute(baseAgentRoute) : baseAgentRoute;
2312
+ return params.processMessage(params.msg, agentRoute, params.groupHistoryKey, {
2313
+ groupHistory: turn.round === 1 ? groupHistorySnapshot : [],
2314
+ suppressGroupHistoryClear: true,
2315
+ ...params.preflightAudioTranscript !== void 0 ? { preflightAudioTranscript: params.preflightAudioTranscript } : {},
2316
+ ...params.ackAlreadySent === true || turn.round > 1 ? { ackAlreadySent: true } : {},
2317
+ ...params.ackReaction !== void 0 && turn.round === 1 ? { ackReaction: params.ackReaction } : {}
2318
+ });
2319
2319
  }
2320
- };
2321
- if (strategy === "sequential") for (const agentId of broadcastAgents) await processForAgent(agentId);
2322
- else await Promise.allSettled(broadcastAgents.map(processForAgent));
2320
+ });
2323
2321
  if (isGroupConversation) params.groupHistories.set(params.groupHistoryKey, []);
2324
2322
  return true;
2325
2323
  }
@@ -3195,7 +3193,7 @@ function logWhatsAppMediaOnlyFlushResult(result) {
3195
3193
  }
3196
3194
  function resolveWhatsAppResponsePrefix(params) {
3197
3195
  const configuredResponsePrefix = params.cfg.messages?.responsePrefix;
3198
- return params.pipelineResponsePrefix ?? (configuredResponsePrefix === "auto" ? resolveIdentityNamePrefix$1(params.cfg, params.agentId) : configuredResponsePrefix) ?? (params.isSelfChat ? resolveIdentityNamePrefix$1(params.cfg, params.agentId) : void 0);
3196
+ return params.pipelineResponsePrefix ?? (configuredResponsePrefix === "auto" ? resolveIdentityNamePrefix(params.cfg, params.agentId) : configuredResponsePrefix) ?? (params.isSelfChat ? resolveIdentityNamePrefix(params.cfg, params.agentId) : void 0);
3199
3197
  }
3200
3198
  function buildWhatsAppInboundTransportContext(msg) {
3201
3199
  return {
@@ -3562,18 +3560,6 @@ async function finalizeWhatsAppStatusReaction(params) {
3562
3560
  await params.controller.restoreInitial();
3563
3561
  }
3564
3562
  //#endregion
3565
- //#region extensions/whatsapp/src/auto-reply/monitor/message-line.runtime.ts
3566
- function resolveIdentityNamePrefix(cfg, agentId) {
3567
- const identityName = resolveAgentConfig(cfg, agentId)?.identity?.name?.trim();
3568
- return identityName ? `[${identityName}]` : void 0;
3569
- }
3570
- function resolveMessagePrefix(cfg, agentId, opts) {
3571
- const configured = opts?.configured;
3572
- if (configured !== void 0) return configured;
3573
- if (opts?.hasAllowFrom === true) return "";
3574
- return resolveIdentityNamePrefix(cfg, agentId) ?? opts?.fallback ?? "[openclaw]";
3575
- }
3576
- //#endregion
3577
3563
  //#region extensions/whatsapp/src/auto-reply/monitor/message-line.ts
3578
3564
  function formatReplyTarget(replyTo) {
3579
3565
  if (!replyTo?.body) return null;
@@ -3583,17 +3569,12 @@ function formatReplyContext(msg) {
3583
3569
  return formatReplyTarget(getReplyContext(msg));
3584
3570
  }
3585
3571
  function buildInboundLine(params) {
3586
- const { cfg, msg, agentId, previousTimestamp, envelope } = params;
3587
- const messagePrefix = resolveMessagePrefix(cfg, agentId, {
3588
- configured: cfg.channels?.whatsapp?.responsePrefix,
3589
- hasAllowFrom: (cfg.channels?.whatsapp?.allowFrom?.length ?? 0) > 0
3590
- });
3572
+ const { msg, previousTimestamp, envelope } = params;
3591
3573
  const admission = requireWhatsAppInboundAdmission(msg);
3592
3574
  const conversationId = admission.conversation.id;
3593
3575
  const conversationKind = admission.conversation.kind;
3594
- const prefixStr = messagePrefix ? `${messagePrefix} ` : "";
3595
3576
  const replyContext = params.visibleReplyTo === void 0 ? formatReplyContext(msg) : formatReplyTarget(params.visibleReplyTo);
3596
- const baseLine = `${prefixStr}${msg.payload.body}${replyContext ? `\n\n${replyContext}` : ""}`;
3577
+ const baseLine = `${msg.payload.body}${replyContext ? `\n\n${replyContext}` : ""}`;
3597
3578
  const sender = getSenderIdentity(msg);
3598
3579
  return formatInboundEnvelope({
3599
3580
  channel: "WhatsApp",
@@ -3707,7 +3688,7 @@ async function processMessage(params) {
3707
3688
  let audioTranscript = params.preflightAudioTranscript ?? void 0;
3708
3689
  const hasAudioBody = (params.msg.payload.media?.kind === "audio" || params.msg.payload.media?.type?.startsWith("audio/") === true) && !params.msg.payload.body.trim();
3709
3690
  if (params.preflightAudioTranscript === void 0 && hasAudioBody && params.msg.payload.media?.path) try {
3710
- const { transcribeFirstAudio } = await import("./audio-preflight.runtime-C_glQhZY.js");
3691
+ const { transcribeFirstAudio } = await import("./audio-preflight.runtime-C_glQhZY.mjs");
3711
3692
  audioTranscript = await transcribeFirstAudio({
3712
3693
  ctx: {
3713
3694
  media: [{
@@ -3743,9 +3724,7 @@ async function processMessage(params) {
3743
3724
  groupAllowFrom: inboundPolicy.groupAllowFrom
3744
3725
  });
3745
3726
  let combinedBody = buildInboundLine({
3746
- cfg: params.cfg,
3747
3727
  msg: msgForAgent,
3748
- agentId: params.route.agentId,
3749
3728
  previousTimestamp,
3750
3729
  envelope: envelopeOptions,
3751
3730
  visibleReplyTo
@@ -4109,7 +4088,7 @@ function createWebOnMessageHandler(params) {
4109
4088
  const transcribeAudioOnce = async () => {
4110
4089
  if (preflightAudioTranscript !== void 0 || !hasAudioBody || !msg.payload.media?.path) return;
4111
4090
  try {
4112
- const { transcribeFirstAudio } = await import("./audio-preflight.runtime-C_glQhZY.js");
4091
+ const { transcribeFirstAudio } = await import("./audio-preflight.runtime-C_glQhZY.mjs");
4113
4092
  preflightAudioTranscript = await transcribeFirstAudio({
4114
4093
  ctx: {
4115
4094
  media: [{
@@ -4244,7 +4223,11 @@ function createWebOnMessageHandler(params) {
4244
4223
  recordAcceptedConfiguredGroupRoute = null;
4245
4224
  }
4246
4225
  await runAudioPreflightOnce();
4247
- const hasBroadcastTargets = !configuredRoute.bindingResolution && Array.isArray(cfg.broadcast?.[peerId]) && cfg.broadcast[peerId].length > 0;
4226
+ const hasBroadcastTargets = !configuredRoute.bindingResolution && resolveGroupThreadConfig({
4227
+ cfg,
4228
+ channel: "whatsapp",
4229
+ peerId
4230
+ }) !== void 0;
4248
4231
  if (hasBroadcastTargets && statusReactionController) await clearPreDispatchReaction();
4249
4232
  if (hasBroadcastTargets && !canRunEarlyAudioPreflight) await transcribeAudioOnce();
4250
4233
  if (!configuredRoute.bindingResolution && await maybeBroadcastMessage({
@@ -4274,7 +4257,7 @@ function createWebOnMessageHandler(params) {
4274
4257
  function isNonRetryableWebCloseStatus(statusCode) {
4275
4258
  return statusCode === 440;
4276
4259
  }
4277
- const loadReplyResolverRuntime = createLazyRuntimeModule(() => import("./reply-resolver.runtime-Ded8D58Y.js"));
4260
+ const loadReplyResolverRuntime = createLazyRuntimeModule(() => import("./reply-resolver.runtime-Ded8D58Y.mjs"));
4278
4261
  function resolveWebMonitorConfigSnapshot(params) {
4279
4262
  const account = resolveWhatsAppAccount({
4280
4263
  cfg: params.cfg,
@@ -0,0 +1,2 @@
1
+ import "./normalize-target-BGra1ZnM.mjs";
2
+ export {};
@@ -30,39 +30,20 @@ function isWhatsAppNewsletterJid(value) {
30
30
  return WHATSAPP_NEWSLETTER_JID_RE.test(candidate);
31
31
  }
32
32
  function isWhatsAppUserTarget(value) {
33
- const candidate = stripWhatsAppTargetPrefixes(value);
34
- return WHATSAPP_USER_JID_RE.test(candidate) || WHATSAPP_LEGACY_USER_JID_RE.test(candidate) || WHATSAPP_LID_RE.test(candidate);
33
+ return extractUserJidPhone(stripWhatsAppTargetPrefixes(value)) !== null;
35
34
  }
36
35
  function extractUserJidPhone(jid) {
37
- const userMatch = jid.match(WHATSAPP_USER_JID_RE);
38
- if (userMatch) {
39
- const phone = userMatch[1];
40
- return phone ? phone : null;
41
- }
42
- const legacyUserMatch = jid.match(WHATSAPP_LEGACY_USER_JID_RE);
43
- if (legacyUserMatch) {
44
- const phone = legacyUserMatch[1];
45
- return phone ? phone : null;
46
- }
47
- const lidMatch = jid.match(WHATSAPP_LID_RE);
48
- if (lidMatch) {
49
- const phone = lidMatch[1];
50
- return phone ? phone : null;
51
- }
52
- return null;
36
+ return (jid.match(WHATSAPP_USER_JID_RE) ?? jid.match(WHATSAPP_LEGACY_USER_JID_RE) ?? jid.match(WHATSAPP_LID_RE))?.[1] ?? null;
53
37
  }
54
38
  function normalizeWhatsAppTarget(value) {
55
39
  const candidate = stripWhatsAppTargetPrefixes(value);
56
40
  if (!candidate) return null;
57
41
  const groupJid = normalizeWhatsAppGroupJid(candidate);
58
42
  if (groupJid) return groupJid;
59
- if (isWhatsAppNewsletterJid(candidate)) {
60
- const match = candidate.match(WHATSAPP_NEWSLETTER_JID_RE);
61
- return match ? `${match[1]}@newsletter` : null;
62
- }
63
- if (isWhatsAppUserTarget(candidate)) {
64
- const phone = extractUserJidPhone(candidate);
65
- if (!phone) return null;
43
+ const newsletterMatch = candidate.match(WHATSAPP_NEWSLETTER_JID_RE);
44
+ if (newsletterMatch) return `${newsletterMatch[1]}@newsletter`;
45
+ const phone = extractUserJidPhone(candidate);
46
+ if (phone) {
66
47
  const normalized = normalizeE164(phone);
67
48
  return normalized.length > 1 ? normalized : null;
68
49
  }
@@ -72,9 +53,7 @@ function normalizeWhatsAppTarget(value) {
72
53
  return normalized.length > 1 ? normalized : null;
73
54
  }
74
55
  function normalizeWhatsAppMessagingTarget(raw) {
75
- const trimmed = raw.trim();
76
- if (!trimmed) return;
77
- return normalizeWhatsAppTarget(trimmed) ?? void 0;
56
+ return normalizeWhatsAppTarget(raw) ?? void 0;
78
57
  }
79
58
  function normalizeWhatsAppAllowFromEntries(allowFrom) {
80
59
  return uniqueStrings(formatNormalizedAllowFromEntries({
@@ -90,8 +69,7 @@ function normalizeWhatsAppAllowFromEntry(entry) {
90
69
  }
91
70
  function looksLikeWhatsAppTargetId(raw) {
92
71
  const trimmed = raw.trim();
93
- if (!trimmed) return false;
94
- return /^whatsapp:/i.test(trimmed) || isWhatsAppGroupJid(trimmed) || isWhatsAppNewsletterJid(trimmed) || isWhatsAppUserTarget(trimmed) || normalizeWhatsAppTarget(trimmed) !== null;
72
+ return /^whatsapp:/i.test(trimmed) || normalizeWhatsAppTarget(trimmed) !== null;
95
73
  }
96
74
  //#endregion
97
75
  export { normalizeWhatsAppAllowFromEntries as a, normalizeWhatsAppTarget as c, looksLikeWhatsAppTargetId as i, isWhatsAppNewsletterJid as n, normalizeWhatsAppAllowFromEntry as o, isWhatsAppUserTarget as r, normalizeWhatsAppMessagingTarget as s, isWhatsAppGroupJid as t };
@@ -1,5 +1,5 @@
1
- import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { a as resolveWhatsAppAccount } from "./accounts-CiKHiuEe.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
+ import { a as resolveWhatsAppAccount } from "./accounts-D_NGDjCx.mjs";
3
3
  import { createQuestionReactionTargetStore, questionGatewayRuntime } from "openclaw/plugin-sdk/question-gateway-runtime";
4
4
  //#region extensions/whatsapp/src/question-reactions.ts
5
5
  var question_reactions_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { c as normalizeWhatsAppTarget, n as isWhatsAppNewsletterJid, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
1
+ import { c as normalizeWhatsAppTarget, n as isWhatsAppNewsletterJid, t as isWhatsAppGroupJid } from "./normalize-target-BGra1ZnM.mjs";
2
2
  import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { missingTargetError } from "openclaw/plugin-sdk/channel-feedback";
4
4
  //#region extensions/whatsapp/src/resolve-outbound-target.ts
@@ -1,10 +1,10 @@
1
- import { a as resolveWhatsAppAccount, c as resolveMergedWhatsAppAccountConfig, s as resolveWhatsAppMediaMaxBytes } from "./accounts-CiKHiuEe.js";
2
- import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.js";
3
- import { n as isWhatsAppNewsletterJid } from "./normalize-target-CugRyONv.js";
4
- import { r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-DG0tuYuw.js";
5
- import "./normalize-C7Hkc_vE.js";
6
- import { a as markdownToWhatsAppChunks, c as toWhatsappJid } from "./targets-runtime-RBjx3pg_.js";
7
- import { a as stripToolCallXmlTags, i as sanitizeAssistantVisibleTextWithProfile, r as sanitizeAssistantVisibleText } from "./text-runtime-DyfmcATV.js";
1
+ import { a as resolveWhatsAppAccount, c as resolveMergedWhatsAppAccountConfig, s as resolveWhatsAppMediaMaxBytes } from "./accounts-D_NGDjCx.mjs";
2
+ import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.mjs";
3
+ import { n as isWhatsAppNewsletterJid } from "./normalize-target-BGra1ZnM.mjs";
4
+ import { r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-hgLJoRc8.mjs";
5
+ import "./normalize-DdsROMMa.mjs";
6
+ import { a as markdownToWhatsAppChunks, c as toWhatsappJid } from "./targets-runtime-RBjx3pg_.mjs";
7
+ import { a as stripToolCallXmlTags, i as sanitizeAssistantVisibleTextWithProfile, r as sanitizeAssistantVisibleText } from "./text-runtime-CHl0iPYe.mjs";
8
8
  import path from "node:path";
9
9
  import { normalizeStringEntries, normalizeUniqueStringEntries, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { resolveReactionLevel } from "openclaw/plugin-sdk/status-helpers";
@@ -1,10 +1,10 @@
1
- import { n as isWhatsAppNewsletterJid } from "./normalize-target-CugRyONv.js";
2
- import { _ as resolveWhatsAppDocumentFileName, f as mergeWhatsAppAcceptedSendError, m as rememberWhatsAppAcceptedSend, p as normalizeWhatsAppSendResult, u as combineWhatsAppSendResults } from "./send-BDDGPxav.js";
3
- import "./normalize-C7Hkc_vE.js";
4
- import { c as toWhatsappJid, l as toWhatsappJidWithLid, r as jidToE164 } from "./targets-runtime-RBjx3pg_.js";
5
- import "./text-runtime-DyfmcATV.js";
6
- import { i as buildQuotedMessageOptions } from "./group-session-key-BmVDSPr1.js";
7
- import { k as resolveComparableIdentity } from "./auth-store-ZWaclAbd.js";
1
+ import { n as isWhatsAppNewsletterJid } from "./normalize-target-BGra1ZnM.mjs";
2
+ import { _ as resolveWhatsAppDocumentFileName, f as mergeWhatsAppAcceptedSendError, m as rememberWhatsAppAcceptedSend, p as normalizeWhatsAppSendResult, u as combineWhatsAppSendResults } from "./send-C6jDmcL9.mjs";
3
+ import "./normalize-DdsROMMa.mjs";
4
+ import { c as toWhatsappJid, l as toWhatsappJidWithLid, r as jidToE164 } from "./targets-runtime-RBjx3pg_.mjs";
5
+ import "./text-runtime-CHl0iPYe.mjs";
6
+ import { i as buildQuotedMessageOptions } from "./group-session-key-D22hYMdE.mjs";
7
+ import { k as resolveComparableIdentity } from "./auth-store-Dh8a3cba.mjs";
8
8
  import { isRecord, normalizeLowercaseStringOrEmpty, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
10
10
  import { formatLocationText } from "openclaw/plugin-sdk/channel-inbound";
@@ -1,4 +1,4 @@
1
- import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
1
+ import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.mjs";
2
2
  import { BufferJSON, DEFAULT_CONNECTION_CONFIG, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, makeWASocket, useMultiFileAuthState } from "baileys";
3
3
  //#region extensions/whatsapp/src/session.runtime.ts
4
4
  var session_runtime_exports = /* @__PURE__ */ __exportAll({
@@ -1,8 +1,8 @@
1
- import { a as resolveWhatsAppAccount, o as resolveWhatsAppAuthDir } from "./accounts-CiKHiuEe.js";
2
- import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.js";
3
- import { r as hasWebCredsSync } from "./creds-files-Drg3usj1.js";
4
- import { a as normalizeWhatsAppAllowFromEntries, o as normalizeWhatsAppAllowFromEntry } from "./normalize-target-CugRyONv.js";
5
- import { r as whatsappSetupAdapter } from "./shared-D6cUWXiq.js";
1
+ import { a as resolveWhatsAppAccount, o as resolveWhatsAppAuthDir } from "./accounts-D_NGDjCx.mjs";
2
+ import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.mjs";
3
+ import { r as hasWebCredsSync } from "./creds-files-Drg3usj1.mjs";
4
+ import { a as normalizeWhatsAppAllowFromEntries, o as normalizeWhatsAppAllowFromEntry } from "./normalize-target-BGra1ZnM.mjs";
5
+ import { n as whatsappSetupAdapter } from "./shared-C9OEtKgc.mjs";
6
6
  import { formatCliCommand, formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
7
7
  import { DEFAULT_ACCOUNT_ID, createSetupTranslator, splitSetupEntries } from "openclaw/plugin-sdk/setup";
8
8
  //#region extensions/whatsapp/src/setup-finalize.ts
@@ -296,7 +296,7 @@ async function finalizeWhatsAppSetup(params) {
296
296
  };
297
297
  let loginWeb;
298
298
  try {
299
- ({loginWeb} = await import("./login-6j2iP9nR.js").then((n) => n.n));
299
+ ({loginWeb} = await import("./login-2dmd1TfE.mjs").then((n) => n.n));
300
300
  } catch (error) {
301
301
  await reportLoginFailure(error);
302
302
  }
@@ -0,0 +1,3 @@
1
+ import { t as whatsappSetupPlugin } from "./channel.setup-CqUl8COe.mjs";
2
+ import "../setup-plugin-api.js";
3
+ export { whatsappSetupPlugin };
@@ -1,6 +1,6 @@
1
- import { o as resolveWhatsAppAuthDir } from "./accounts-CiKHiuEe.js";
2
- import { t as listAccountIds } from "./account-ids-CB5SOWjc.js";
3
- import { a as formatWhatsAppWebAuthStatusState, h as readWebAuthState } from "./auth-store-ZWaclAbd.js";
1
+ import { o as resolveWhatsAppAuthDir } from "./accounts-D_NGDjCx.mjs";
2
+ import { t as listAccountIds } from "./account-ids-CB5SOWjc.mjs";
3
+ import { a as formatWhatsAppWebAuthStatusState, h as readWebAuthState } from "./auth-store-Dh8a3cba.mjs";
4
4
  import { DEFAULT_ACCOUNT_ID, createSetupTranslator, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
5
5
  //#region extensions/whatsapp/src/setup-surface.ts
6
6
  const t = createSetupTranslator();
@@ -36,7 +36,7 @@ const whatsappSetupWizard = {
36
36
  },
37
37
  resolveShouldPromptAccountIds: ({ shouldPromptAccountIds }) => shouldPromptAccountIds,
38
38
  credentials: [],
39
- finalize: async (params) => await (await import("./setup-finalize-Bp-4QnVw.js")).finalizeWhatsAppSetup(params),
39
+ finalize: async (params) => await (await import("./setup-finalize-BYEgU0hb.mjs")).finalizeWhatsAppSetup(params),
40
40
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false),
41
41
  onAccountRecorded: (accountId, options) => {
42
42
  options?.onAccountId?.(channel, accountId);