@openclaw/whatsapp 2026.7.2-beta.3 → 2026.7.2-beta.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 (149) hide show
  1. package/README.md +1 -1
  2. package/dist/{access-control-tjy_em01.js → access-control-pZcxTmd5.js} +4 -5
  3. package/dist/{accounts-ejK8sXPU.js → accounts-CSqLvCY5.js} +1 -2
  4. package/dist/{action-runtime-p0V390gA.js → action-runtime-B2bNDUwE.js} +3 -3
  5. package/dist/action-runtime-api.js +1 -1
  6. package/dist/action-runtime.runtime.js +1 -1
  7. package/dist/{active-listener-BbdlXooT.js → active-listener-BEjWsCNM.js} +1 -1
  8. package/dist/api.js +13 -22
  9. package/dist/{approval-handler.runtime-BO1oJ-b8.js → approval-handler.runtime-CmtqgLSQ.js} +6 -6
  10. package/dist/{approval-reactions-CrZFAyf-.js → approval-reactions-Cu66aYdq.js} +4 -4
  11. package/dist/{auth-store-BQi9pZqQ.js → auth-store-DcEpIOmE.js} +4 -3
  12. package/dist/call-tool-api.js +4 -4
  13. package/dist/{channel-B2I4Opzb.js → channel-DcWBc3Hb.js} +39 -67
  14. package/dist/channel-config-api.js +1 -1
  15. package/dist/channel-plugin-api.js +1 -1
  16. package/dist/{channel-react-action-CPRQE-s3.js → channel-react-action-DUIkjl6w.js} +12 -15
  17. package/dist/{channel.runtime-CjkhQzk8.js → channel.runtime-Q5fJ2I2b.js} +5 -5
  18. package/dist/{channel.setup-BMWE9LmN.js → channel.setup-C_1u6HN6.js} +3 -6
  19. package/dist/{config-schema-BZ8h1hWA.js → config-schema-DARep0Nn.js} +7 -5
  20. package/dist/{connection-controller-HGaffeFb.js → connection-controller-BOB2MVKY.js} +8 -10
  21. package/dist/{connection-controller-runtime-context-9mEeAvu1.js → connection-controller-runtime-context-DG0tuYuw.js} +3 -3
  22. package/dist/contract-api.js +2 -2
  23. package/dist/{directory-config-BZ775eGX.js → directory-config-DalGrfGN.js} +7 -7
  24. package/dist/directory-contract-api.js +1 -1
  25. package/dist/doctor-CwzVXKoE.js +10 -0
  26. package/dist/doctor-contract-api.js +35 -79
  27. package/dist/{group-session-key-Dh8WZun_.js → group-session-key-DVMZlO3x.js} +11 -6
  28. package/dist/{identity-D7L8LCuH.js → identity-CPrT5aEU.js} +2 -2
  29. package/dist/light-runtime-api.js +2 -2
  30. package/dist/{login-ifOXCBjo.js → login-CvY2Dhch.js} +6 -7
  31. package/dist/{login-qr-DUHzVH_Y.js → login-qr-Bncpb6js.js} +7 -8
  32. package/dist/login-qr-runtime.js +1 -1
  33. package/dist/{monitor-_jqDKBXj.js → monitor-B7phZF9w.js} +427 -525
  34. package/dist/normalize-C7Hkc_vE.js +2 -0
  35. package/dist/{normalize-target-DSZnHkKF.js → normalize-target-CugRyONv.js} +6 -2
  36. package/dist/{question-reactions-C0qJ6wGA.js → question-reactions-CRsnyoMK.js} +1 -1
  37. package/dist/{resolve-outbound-target-BR97fAbB.js → resolve-outbound-target-1GqbT1uX.js} +1 -1
  38. package/dist/runtime-BLlToOi6.js +21 -0
  39. package/dist/runtime-api.js +10 -10
  40. package/dist/runtime-setter-api.js +1 -1
  41. package/dist/{send-SB-4JrVZ.js → send-BTXJAyK4.js} +40 -86
  42. package/dist/{send-api-BG0MgoFI.js → send-api-BY_AkSiB.js} +41 -35
  43. package/dist/{setup-finalize-Cc-4iWGj.js → setup-finalize-C-m-vCl9.js} +4 -4
  44. package/dist/setup-plugin-api.js +1 -1
  45. package/dist/{setup-surface-DhnXEZir.js → setup-surface-BjvUbR6M.js} +3 -3
  46. package/dist/{setup-core-BbIgEl2M.js → shared-UcAwtJaq.js} +79 -57
  47. package/dist/{socket-close-jNGyZY4T.js → socket-close-DridEuzz.js} +5 -6
  48. package/dist/{targets-runtime-Bsh0HR9y.js → targets-runtime-TMk0lGuy.js} +133 -29
  49. package/dist/text-runtime-CaKLhowd.js +4 -0
  50. package/node_modules/@protobufjs/utf8/CHANGELOG.md +8 -0
  51. package/node_modules/@protobufjs/utf8/index.js +29 -18
  52. package/node_modules/@protobufjs/utf8/package.json +2 -2
  53. package/node_modules/@protobufjs/utf8/tests/index.js +5 -0
  54. package/node_modules/@thi.ng/bitstream/package.json +4 -4
  55. package/node_modules/@thi.ng/errors/package.json +4 -4
  56. package/node_modules/@types/node/README.md +1 -1
  57. package/node_modules/@types/node/fs/promises.d.ts +16 -6
  58. package/node_modules/@types/node/package.json +2 -2
  59. package/node_modules/audio-type/package.json +3 -2
  60. package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -1
  61. package/node_modules/lru-cache/dist/commonjs/browser/index.js +11 -4
  62. package/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -1
  63. package/node_modules/lru-cache/dist/commonjs/browser/index.min.js +1 -1
  64. package/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +3 -3
  65. package/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
  66. package/node_modules/lru-cache/dist/commonjs/index.js +11 -4
  67. package/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
  68. package/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  69. package/node_modules/lru-cache/dist/commonjs/index.min.js.map +3 -3
  70. package/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -1
  71. package/node_modules/lru-cache/dist/commonjs/node/index.js +11 -4
  72. package/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -1
  73. package/node_modules/lru-cache/dist/commonjs/node/index.min.js +1 -1
  74. package/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +3 -3
  75. package/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -1
  76. package/node_modules/lru-cache/dist/esm/browser/index.js +11 -4
  77. package/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -1
  78. package/node_modules/lru-cache/dist/esm/browser/index.min.js +1 -1
  79. package/node_modules/lru-cache/dist/esm/browser/index.min.js.map +3 -3
  80. package/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
  81. package/node_modules/lru-cache/dist/esm/index.js +11 -4
  82. package/node_modules/lru-cache/dist/esm/index.js.map +1 -1
  83. package/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  84. package/node_modules/lru-cache/dist/esm/index.min.js.map +3 -3
  85. package/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -1
  86. package/node_modules/lru-cache/dist/esm/node/index.js +11 -4
  87. package/node_modules/lru-cache/dist/esm/node/index.js.map +1 -1
  88. package/node_modules/lru-cache/dist/esm/node/index.min.js +1 -1
  89. package/node_modules/lru-cache/dist/esm/node/index.min.js.map +3 -3
  90. package/node_modules/lru-cache/package.json +1 -1
  91. package/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  92. package/node_modules/music-metadata/lib/common/Util.js +7 -1
  93. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +23 -3
  94. package/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  95. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  96. package/node_modules/music-metadata/lib/mp4/AtomToken.js +38 -13
  97. package/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  98. package/node_modules/music-metadata/package.json +6 -6
  99. package/node_modules/p-queue/dist/index.js +17 -6
  100. package/node_modules/p-queue/package.json +1 -1
  101. package/node_modules/protobufjs/dist/light/protobuf.js +145 -188
  102. package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  103. package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  104. package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  105. package/node_modules/protobufjs/dist/minimal/protobuf.js +33 -76
  106. package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  107. package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  108. package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  109. package/node_modules/protobufjs/dist/protobuf.js +168 -208
  110. package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  111. package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  112. package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  113. package/node_modules/protobufjs/index.d.ts +0 -8
  114. package/node_modules/protobufjs/package.json +2 -3
  115. package/node_modules/protobufjs/src/parse.js +3 -0
  116. package/node_modules/protobufjs/src/util/minimal.js +0 -3
  117. package/node_modules/typebox/build/compile/validator.d.mts +1 -4
  118. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  119. package/node_modules/typebox/build/guard/guard.mjs +5 -2
  120. package/node_modules/typebox/build/guard/string.mjs +16 -4
  121. package/node_modules/typebox/build/schema/engine/_functions.mjs +34 -15
  122. package/node_modules/typebox/build/type/action/readonly_object.d.mts +5 -0
  123. package/node_modules/typebox/build/type/action/readonly_object.mjs +8 -0
  124. package/node_modules/typebox/build/typebox.d.mts +1 -1
  125. package/node_modules/typebox/build/typebox.mjs +1 -1
  126. package/node_modules/typebox/package.json +1 -1
  127. package/node_modules/typebox/readme.md +29 -32
  128. package/node_modules/ws/lib/receiver.js +15 -32
  129. package/node_modules/ws/lib/websocket-server.js +4 -4
  130. package/node_modules/ws/lib/websocket.js +4 -4
  131. package/node_modules/ws/package.json +5 -1
  132. package/openclaw.plugin.json +138 -194
  133. package/package.json +21 -12
  134. package/dist/doctor-By3SB4lm.js +0 -48
  135. package/dist/normalize-C-Z16y7Q.js +0 -2
  136. package/dist/runtime-BfAdAEYT.js +0 -8
  137. package/dist/text-runtime-BTGkMN0o.js +0 -4
  138. package/node_modules/@protobufjs/inquire/CHANGELOG.md +0 -8
  139. package/node_modules/@protobufjs/inquire/LICENSE +0 -26
  140. package/node_modules/@protobufjs/inquire/README.md +0 -13
  141. package/node_modules/@protobufjs/inquire/index.d.ts +0 -10
  142. package/node_modules/@protobufjs/inquire/index.js +0 -38
  143. package/node_modules/@protobufjs/inquire/package.json +0 -21
  144. package/node_modules/@protobufjs/inquire/tests/data/array.js +0 -1
  145. package/node_modules/@protobufjs/inquire/tests/data/emptyArray.js +0 -1
  146. package/node_modules/@protobufjs/inquire/tests/data/emptyObject.js +0 -1
  147. package/node_modules/@protobufjs/inquire/tests/data/object.js +0 -1
  148. package/node_modules/@protobufjs/inquire/tests/index.js +0 -20
  149. package/npm-shrinkwrap.json +0 -958
@@ -39,9 +39,6 @@
39
39
  "$schema": "http://json-schema.org/draft-07/schema#",
40
40
  "type": "object",
41
41
  "properties": {
42
- "enabled": {
43
- "type": "boolean"
44
- },
45
42
  "capabilities": {
46
43
  "type": "array",
47
44
  "items": {
@@ -66,15 +63,9 @@
66
63
  "configWrites": {
67
64
  "type": "boolean"
68
65
  },
69
- "sendReadReceipts": {
66
+ "enabled": {
70
67
  "type": "boolean"
71
68
  },
72
- "messagePrefix": {
73
- "type": "string"
74
- },
75
- "responsePrefix": {
76
- "type": "string"
77
- },
78
69
  "dmPolicy": {
79
70
  "default": "pairing",
80
71
  "type": "string",
@@ -85,9 +76,6 @@
85
76
  "disabled"
86
77
  ]
87
78
  },
88
- "selfChatMode": {
89
- "type": "boolean"
90
- },
91
79
  "allowFrom": {
92
80
  "type": "array",
93
81
  "items": {
@@ -225,6 +213,65 @@
225
213
  },
226
214
  "additionalProperties": false
227
215
  },
216
+ "heartbeatVisibility": {
217
+ "type": "object",
218
+ "properties": {
219
+ "showOk": {
220
+ "type": "boolean"
221
+ },
222
+ "showAlerts": {
223
+ "type": "boolean"
224
+ },
225
+ "useIndicator": {
226
+ "type": "boolean"
227
+ }
228
+ },
229
+ "additionalProperties": false
230
+ },
231
+ "healthMonitor": {
232
+ "type": "object",
233
+ "properties": {
234
+ "enabled": {
235
+ "type": "boolean"
236
+ }
237
+ },
238
+ "additionalProperties": false
239
+ },
240
+ "responsePrefix": {
241
+ "type": "string"
242
+ },
243
+ "mediaMaxMb": {
244
+ "default": 50,
245
+ "type": "integer",
246
+ "exclusiveMinimum": 0,
247
+ "maximum": 9007199254740991
248
+ },
249
+ "replyToMode": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string",
253
+ "const": "off"
254
+ },
255
+ {
256
+ "type": "string",
257
+ "const": "first"
258
+ },
259
+ {
260
+ "type": "string",
261
+ "const": "all"
262
+ },
263
+ {
264
+ "type": "string",
265
+ "const": "batched"
266
+ }
267
+ ]
268
+ },
269
+ "sendReadReceipts": {
270
+ "type": "boolean"
271
+ },
272
+ "selfChatMode": {
273
+ "type": "boolean"
274
+ },
228
275
  "groups": {
229
276
  "type": "object",
230
277
  "propertyNames": {
@@ -312,32 +359,6 @@
312
359
  "additionalProperties": false
313
360
  }
314
361
  },
315
- "ackReaction": {
316
- "type": "object",
317
- "properties": {
318
- "emoji": {
319
- "type": "string"
320
- },
321
- "direct": {
322
- "default": true,
323
- "type": "boolean"
324
- },
325
- "group": {
326
- "default": "mentions",
327
- "type": "string",
328
- "enum": [
329
- "always",
330
- "mentions",
331
- "never"
332
- ]
333
- }
334
- },
335
- "required": [
336
- "direct",
337
- "group"
338
- ],
339
- "additionalProperties": false
340
- },
341
362
  "reactionLevel": {
342
363
  "type": "string",
343
364
  "enum": [
@@ -347,56 +368,6 @@
347
368
  "extensive"
348
369
  ]
349
370
  },
350
- "debounceMs": {
351
- "default": 0,
352
- "type": "integer",
353
- "minimum": 0,
354
- "maximum": 9007199254740991
355
- },
356
- "replyToMode": {
357
- "anyOf": [
358
- {
359
- "type": "string",
360
- "const": "off"
361
- },
362
- {
363
- "type": "string",
364
- "const": "first"
365
- },
366
- {
367
- "type": "string",
368
- "const": "all"
369
- },
370
- {
371
- "type": "string",
372
- "const": "batched"
373
- }
374
- ]
375
- },
376
- "heartbeat": {
377
- "type": "object",
378
- "properties": {
379
- "showOk": {
380
- "type": "boolean"
381
- },
382
- "showAlerts": {
383
- "type": "boolean"
384
- },
385
- "useIndicator": {
386
- "type": "boolean"
387
- }
388
- },
389
- "additionalProperties": false
390
- },
391
- "healthMonitor": {
392
- "type": "object",
393
- "properties": {
394
- "enabled": {
395
- "type": "boolean"
396
- }
397
- },
398
- "additionalProperties": false
399
- },
400
371
  "pluginHooks": {
401
372
  "type": "object",
402
373
  "properties": {
@@ -414,9 +385,6 @@
414
385
  "additionalProperties": {
415
386
  "type": "object",
416
387
  "properties": {
417
- "enabled": {
418
- "type": "boolean"
419
- },
420
388
  "capabilities": {
421
389
  "type": "array",
422
390
  "items": {
@@ -441,15 +409,9 @@
441
409
  "configWrites": {
442
410
  "type": "boolean"
443
411
  },
444
- "sendReadReceipts": {
412
+ "enabled": {
445
413
  "type": "boolean"
446
414
  },
447
- "messagePrefix": {
448
- "type": "string"
449
- },
450
- "responsePrefix": {
451
- "type": "string"
452
- },
453
415
  "dmPolicy": {
454
416
  "type": "string",
455
417
  "enum": [
@@ -459,9 +421,6 @@
459
421
  "disabled"
460
422
  ]
461
423
  },
462
- "selfChatMode": {
463
- "type": "boolean"
464
- },
465
424
  "allowFrom": {
466
425
  "type": "array",
467
426
  "items": {
@@ -598,6 +557,64 @@
598
557
  },
599
558
  "additionalProperties": false
600
559
  },
560
+ "heartbeatVisibility": {
561
+ "type": "object",
562
+ "properties": {
563
+ "showOk": {
564
+ "type": "boolean"
565
+ },
566
+ "showAlerts": {
567
+ "type": "boolean"
568
+ },
569
+ "useIndicator": {
570
+ "type": "boolean"
571
+ }
572
+ },
573
+ "additionalProperties": false
574
+ },
575
+ "healthMonitor": {
576
+ "type": "object",
577
+ "properties": {
578
+ "enabled": {
579
+ "type": "boolean"
580
+ }
581
+ },
582
+ "additionalProperties": false
583
+ },
584
+ "responsePrefix": {
585
+ "type": "string"
586
+ },
587
+ "mediaMaxMb": {
588
+ "type": "integer",
589
+ "exclusiveMinimum": 0,
590
+ "maximum": 9007199254740991
591
+ },
592
+ "replyToMode": {
593
+ "anyOf": [
594
+ {
595
+ "type": "string",
596
+ "const": "off"
597
+ },
598
+ {
599
+ "type": "string",
600
+ "const": "first"
601
+ },
602
+ {
603
+ "type": "string",
604
+ "const": "all"
605
+ },
606
+ {
607
+ "type": "string",
608
+ "const": "batched"
609
+ }
610
+ ]
611
+ },
612
+ "sendReadReceipts": {
613
+ "type": "boolean"
614
+ },
615
+ "selfChatMode": {
616
+ "type": "boolean"
617
+ },
601
618
  "groups": {
602
619
  "type": "object",
603
620
  "propertyNames": {
@@ -685,32 +702,6 @@
685
702
  "additionalProperties": false
686
703
  }
687
704
  },
688
- "ackReaction": {
689
- "type": "object",
690
- "properties": {
691
- "emoji": {
692
- "type": "string"
693
- },
694
- "direct": {
695
- "default": true,
696
- "type": "boolean"
697
- },
698
- "group": {
699
- "default": "mentions",
700
- "type": "string",
701
- "enum": [
702
- "always",
703
- "mentions",
704
- "never"
705
- ]
706
- }
707
- },
708
- "required": [
709
- "direct",
710
- "group"
711
- ],
712
- "additionalProperties": false
713
- },
714
705
  "reactionLevel": {
715
706
  "type": "string",
716
707
  "enum": [
@@ -720,55 +711,6 @@
720
711
  "extensive"
721
712
  ]
722
713
  },
723
- "debounceMs": {
724
- "type": "integer",
725
- "minimum": 0,
726
- "maximum": 9007199254740991
727
- },
728
- "replyToMode": {
729
- "anyOf": [
730
- {
731
- "type": "string",
732
- "const": "off"
733
- },
734
- {
735
- "type": "string",
736
- "const": "first"
737
- },
738
- {
739
- "type": "string",
740
- "const": "all"
741
- },
742
- {
743
- "type": "string",
744
- "const": "batched"
745
- }
746
- ]
747
- },
748
- "heartbeat": {
749
- "type": "object",
750
- "properties": {
751
- "showOk": {
752
- "type": "boolean"
753
- },
754
- "showAlerts": {
755
- "type": "boolean"
756
- },
757
- "useIndicator": {
758
- "type": "boolean"
759
- }
760
- },
761
- "additionalProperties": false
762
- },
763
- "healthMonitor": {
764
- "type": "object",
765
- "properties": {
766
- "enabled": {
767
- "type": "boolean"
768
- }
769
- },
770
- "additionalProperties": false
771
- },
772
714
  "pluginHooks": {
773
715
  "type": "object",
774
716
  "properties": {
@@ -783,11 +725,6 @@
783
725
  },
784
726
  "authDir": {
785
727
  "type": "string"
786
- },
787
- "mediaMaxMb": {
788
- "type": "integer",
789
- "exclusiveMinimum": 0,
790
- "maximum": 9007199254740991
791
728
  }
792
729
  },
793
730
  "additionalProperties": false
@@ -796,12 +733,6 @@
796
733
  "defaultAccount": {
797
734
  "type": "string"
798
735
  },
799
- "mediaMaxMb": {
800
- "default": 50,
801
- "type": "integer",
802
- "exclusiveMinimum": 0,
803
- "maximum": 9007199254740991
804
- },
805
736
  "actions": {
806
737
  "type": "object",
807
738
  "properties": {
@@ -824,7 +755,6 @@
824
755
  "required": [
825
756
  "dmPolicy",
826
757
  "groupPolicy",
827
- "debounceMs",
828
758
  "mediaMaxMb"
829
759
  ],
830
760
  "additionalProperties": false
@@ -834,20 +764,34 @@
834
764
  "uiHints": {
835
765
  "": {
836
766
  "label": "WhatsApp",
837
- "help": "WhatsApp channel provider configuration for access policy and message batching behavior. Use this section to tune responsiveness and direct-message routing safety for WhatsApp chats."
767
+ "help": "WhatsApp channel provider configuration for access policy and direct-message routing safety."
838
768
  },
839
769
  "dmPolicy": {
840
770
  "label": "WhatsApp DM Policy",
841
771
  "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.whatsapp.allowFrom=[\"*\"]."
842
772
  },
773
+ "allowFrom": {
774
+ "presentation": "phone-number"
775
+ },
776
+ "defaultTo": {
777
+ "presentation": "phone-number"
778
+ },
779
+ "groupAllowFrom": {
780
+ "presentation": "phone-number"
781
+ },
782
+ "accounts.*.allowFrom.*": {
783
+ "presentation": "phone-number"
784
+ },
785
+ "accounts.*.defaultTo": {
786
+ "presentation": "phone-number"
787
+ },
788
+ "accounts.*.groupAllowFrom.*": {
789
+ "presentation": "phone-number"
790
+ },
843
791
  "selfChatMode": {
844
792
  "label": "WhatsApp Self-Phone Mode",
845
793
  "help": "Same-phone setup (bot uses your personal WhatsApp number)."
846
794
  },
847
- "debounceMs": {
848
- "label": "WhatsApp Message Debounce (ms)",
849
- "help": "Debounce window (ms) for batching rapid consecutive messages from the same sender (0 to disable)."
850
- },
851
795
  "configWrites": {
852
796
  "label": "WhatsApp Config Writes",
853
797
  "help": "Allow WhatsApp to write config in response to channel events/commands (default: true)."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/whatsapp",
3
- "version": "2026.7.2-beta.3",
3
+ "version": "2026.7.2-beta.5",
4
4
  "description": "OpenClaw WhatsApp channel plugin for WhatsApp Web chats.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,10 +10,10 @@
10
10
  "dependencies": {
11
11
  "audio-decode": "2.2.3",
12
12
  "baileys": "7.0.0-rc13",
13
- "typebox": "1.3.3"
13
+ "typebox": "1.3.6"
14
14
  },
15
15
  "peerDependencies": {
16
- "openclaw": ">=2026.7.2-beta.3"
16
+ "openclaw": ">=2026.7.2-beta.5"
17
17
  },
18
18
  "peerDependenciesMeta": {
19
19
  "openclaw": {
@@ -26,11 +26,15 @@
26
26
  ],
27
27
  "setupEntry": "./dist/setup-entry.js",
28
28
  "setupFeatures": {
29
+ "configPromotion": true,
29
30
  "legacyStateMigrations": true,
30
31
  "legacySessionSurfaces": true
31
32
  },
32
33
  "channel": {
33
34
  "id": "whatsapp",
35
+ "approvalFlags": [
36
+ "native"
37
+ ],
34
38
  "label": "WhatsApp",
35
39
  "selectionLabel": "WhatsApp (QR link)",
36
40
  "detailLabel": "WhatsApp Web",
@@ -42,12 +46,18 @@
42
46
  "specifier": "./auth-presence",
43
47
  "exportName": "hasAnyWhatsAppAuth"
44
48
  },
45
- "cliAddOptions": [
46
- {
47
- "flags": "--auth-dir <path>",
48
- "description": "WhatsApp auth directory override"
49
- }
50
- ]
49
+ "setup": {
50
+ "fields": [
51
+ {
52
+ "key": "authDir",
53
+ "kind": "string",
54
+ "cli": {
55
+ "flags": "--auth-dir <path>",
56
+ "description": "WhatsApp auth directory override"
57
+ }
58
+ }
59
+ ]
60
+ }
51
61
  },
52
62
  "install": {
53
63
  "clawhubSpec": "clawhub:@openclaw/whatsapp",
@@ -56,10 +66,10 @@
56
66
  "minHostVersion": ">=2026.4.25"
57
67
  },
58
68
  "compat": {
59
- "pluginApi": ">=2026.7.2-beta.3"
69
+ "pluginApi": ">=2026.7.2-beta.5"
60
70
  },
61
71
  "build": {
62
- "openclawVersion": "2026.7.2-beta.3"
72
+ "openclawVersion": "2026.7.2-beta.5"
63
73
  },
64
74
  "release": {
65
75
  "publishToClawHub": true,
@@ -73,7 +83,6 @@
73
83
  "files": [
74
84
  "dist/**",
75
85
  "openclaw.plugin.json",
76
- "npm-shrinkwrap.json",
77
86
  "README.md",
78
87
  "skills/**"
79
88
  ],
@@ -1,48 +0,0 @@
1
- //#region extensions/whatsapp/src/doctor.ts
2
- function normalizeCompatibilityConfig({ cfg }) {
3
- const legacyAckReaction = cfg.messages?.ackReaction?.trim();
4
- if (!legacyAckReaction || cfg.channels?.whatsapp === void 0) return {
5
- config: cfg,
6
- changes: []
7
- };
8
- if (cfg.channels.whatsapp?.ackReaction !== void 0) return {
9
- config: cfg,
10
- changes: []
11
- };
12
- const legacyScope = cfg.messages?.ackReactionScope ?? "group-mentions";
13
- let direct = true;
14
- let group = "mentions";
15
- if (legacyScope === "all") {
16
- direct = true;
17
- group = "always";
18
- } else if (legacyScope === "direct") {
19
- direct = true;
20
- group = "never";
21
- } else if (legacyScope === "group-all") {
22
- direct = false;
23
- group = "always";
24
- } else if (legacyScope === "group-mentions") {
25
- direct = false;
26
- group = "mentions";
27
- }
28
- return {
29
- config: {
30
- ...cfg,
31
- channels: {
32
- ...cfg.channels,
33
- whatsapp: {
34
- ...cfg.channels?.whatsapp,
35
- ackReaction: {
36
- emoji: legacyAckReaction,
37
- direct,
38
- group
39
- }
40
- }
41
- }
42
- },
43
- changes: [`Copied messages.ackReaction → channels.whatsapp.ackReaction (scope: ${legacyScope}).`]
44
- };
45
- }
46
- const whatsappDoctor = { normalizeCompatibilityConfig };
47
- //#endregion
48
- export { whatsappDoctor as n, normalizeCompatibilityConfig as t };
@@ -1,2 +0,0 @@
1
- import "./normalize-target-DSZnHkKF.js";
2
- export {};
@@ -1,8 +0,0 @@
1
- import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
2
- //#region extensions/whatsapp/src/runtime.ts
3
- const { setRuntime: setWhatsAppRuntime, getRuntime: getWhatsAppRuntime, tryGetRuntime: getOptionalWhatsAppRuntime } = createPluginRuntimeStore({
4
- pluginId: "whatsapp",
5
- errorMessage: "WhatsApp runtime not initialized"
6
- });
7
- //#endregion
8
- export { getWhatsAppRuntime as n, setWhatsAppRuntime as r, getOptionalWhatsAppRuntime as t };
@@ -1,4 +0,0 @@
1
- import "./targets-runtime-Bsh0HR9y.js";
2
- import { convertMarkdownTables, sanitizeAssistantVisibleText, sanitizeAssistantVisibleTextWithProfile, stripToolCallXmlTags } from "openclaw/plugin-sdk/text-chunking";
3
- import { normalizeE164, resolveUserPath as resolveUserPath$1 } from "openclaw/plugin-sdk/text-utility-runtime";
4
- export { sanitizeAssistantVisibleTextWithProfile as a, sanitizeAssistantVisibleText as i, normalizeE164 as n, stripToolCallXmlTags as o, resolveUserPath$1 as r, convertMarkdownTables as t };
@@ -1,8 +0,0 @@
1
- # Changelog
2
-
3
- ## [1.1.2](https://github.com/protobufjs/protobuf.js/compare/inquire-v1.1.1...inquire-v1.1.2) (2026-05-17)
4
-
5
-
6
- ### Bug Fixes
7
-
8
- * Backport bundler-safe optional module lookups ([#2254](https://github.com/protobufjs/protobuf.js/issues/2254)) ([0853a62](https://github.com/protobufjs/protobuf.js/commit/0853a625680f9247596b84ef48082b8f4e554797))
@@ -1,26 +0,0 @@
1
- Copyright (c) 2016, Daniel Wirtz All rights reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without
4
- modification, are permitted provided that the following conditions are
5
- met:
6
-
7
- * Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
- * Redistributions in binary form must reproduce the above copyright
10
- notice, this list of conditions and the following disclaimer in the
11
- documentation and/or other materials provided with the distribution.
12
- * Neither the name of its author, nor the names of its contributors
13
- may be used to endorse or promote products derived from this software
14
- without specific prior written permission.
15
-
16
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,13 +0,0 @@
1
- @protobufjs/inquire
2
- ===================
3
- [![npm](https://img.shields.io/npm/v/@protobufjs/inquire.svg)](https://www.npmjs.com/package/@protobufjs/inquire)
4
-
5
- Requires a module only if available and hides the require call from bundlers.
6
-
7
- API
8
- ---
9
-
10
- * **inquire(moduleName: `string`): `?Object`**<br />
11
- Requires a module only if available.
12
-
13
- **License:** [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause)
@@ -1,10 +0,0 @@
1
- export = inquire;
2
-
3
- /**
4
- * Requires a module only if available.
5
- * @memberof util
6
- * @param {string} moduleName Module to require
7
- * @returns {?Object} Required module if available and not empty, otherwise `null`
8
- * @deprecated Legacy optional require helper. Will be removed in a future release.
9
- */
10
- declare function inquire(moduleName: string): object;