@gakr-gakr/whatsapp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/autobot.plugin.json +720 -1
  2. package/dist/access-control-ShEaA7S-.js +243 -0
  3. package/dist/account-config-D3arRyHb.js +47 -0
  4. package/dist/account-ids-BCSds1EH.js +5 -0
  5. package/dist/accounts-BiNiDa61.js +116 -0
  6. package/dist/action-runtime-DP90cC2n.js +74 -0
  7. package/dist/action-runtime-api.js +2 -0
  8. package/dist/action-runtime.runtime.js +2 -0
  9. package/dist/active-listener-BGdCR820.js +11 -0
  10. package/dist/agent-tools-login-DpRxLNRB.js +89 -0
  11. package/dist/api.js +129 -0
  12. package/dist/audio-preflight.runtime-6QehLVcw.js +7 -0
  13. package/dist/auth-presence.js +32 -0
  14. package/dist/auth-store-CFjACGAf.js +384 -0
  15. package/dist/channel-CgTEtl7t.js +575 -0
  16. package/dist/channel-config-api.js +2 -0
  17. package/dist/channel-plugin-api.js +2 -0
  18. package/dist/channel-react-action-KjNh4vt3.js +129 -0
  19. package/dist/channel.runtime-TmDROgME.js +55 -0
  20. package/dist/channel.setup-s4FbwIq5.js +22 -0
  21. package/dist/command-policy-O8sRnqUV.js +8 -0
  22. package/dist/config-schema-C40qWWGi.js +27 -0
  23. package/dist/connection-controller-BEqboGKz.js +406 -0
  24. package/dist/connection-controller-registry-hBoQPTQG.js +22 -0
  25. package/dist/constants-yKXGCGU9.js +4 -0
  26. package/dist/constants.js +2 -0
  27. package/dist/contract-api.js +19 -0
  28. package/dist/creds-files-_2V8jzQa.js +19 -0
  29. package/dist/directory-config-CsUbHkHe.js +37 -0
  30. package/dist/directory-contract-api.js +2 -0
  31. package/dist/doctor-A9tXm9Om.js +48 -0
  32. package/dist/doctor-contract-api.js +10 -0
  33. package/dist/group-session-contract-DbhZyOBz.js +15 -0
  34. package/dist/identity-Dg8T9C7H.js +75 -0
  35. package/dist/index.js +18 -0
  36. package/dist/legacy-session-surface-api.js +8 -0
  37. package/dist/legacy-state-migrations-api.js +2 -0
  38. package/dist/light-runtime-api.js +5 -0
  39. package/dist/login-CNeeoEl0.js +63 -0
  40. package/dist/login-qr-DviNDCD5.js +379 -0
  41. package/dist/login-qr-api.js +2 -0
  42. package/dist/login-qr-runtime.js +16 -0
  43. package/dist/monitor-CS6vvvd4.js +3228 -0
  44. package/dist/normalize-2CcNtqML.js +2 -0
  45. package/dist/normalize-target-CbL3_mOO.js +89 -0
  46. package/dist/outbound-adapter-hte3B5aD.js +29 -0
  47. package/dist/outbound-base-D4dA9d-3.js +125 -0
  48. package/dist/outbound-media-contract-C0CwZtAo.js +183 -0
  49. package/dist/outbound-payload-test-api.js +2 -0
  50. package/dist/quoted-message-CYOtfjHc.js +108 -0
  51. package/dist/reaction-level-Cs6r0O9m.js +16 -0
  52. package/dist/reply-resolver.runtime-CkDXfqt5.js +2 -0
  53. package/dist/resolve-outbound-target-DDaHtGet.js +39 -0
  54. package/dist/rolldown-runtime-CiIaOW0V.js +13 -0
  55. package/dist/runtime-BMohcK7b.js +8 -0
  56. package/dist/runtime-api.js +16 -0
  57. package/dist/runtime-group-policy-Cohh7wUU.js +11 -0
  58. package/dist/secret-contract-api.js +5 -0
  59. package/dist/security-contract-BM7878CX.js +26 -0
  60. package/dist/security-contract-api.js +2 -0
  61. package/dist/send-BER2BIjb.js +269 -0
  62. package/dist/send-api-D7u1GDYJ.js +713 -0
  63. package/dist/session-CHewmP2o.js +196 -0
  64. package/dist/session-contract-C6N0vKma.js +27 -0
  65. package/dist/session-errors-KYQIoX8M.js +63 -0
  66. package/dist/session.runtime-BxyATGX0.js +13 -0
  67. package/dist/setup-core-CTYFVSJb.js +352 -0
  68. package/dist/setup-entry.js +23 -0
  69. package/dist/setup-finalize-CPEMrBGC.js +299 -0
  70. package/dist/setup-plugin-api.js +2 -0
  71. package/dist/setup-surface--fjpuR3O.js +46 -0
  72. package/dist/state-migrations-CLTLbXo9.js +40 -0
  73. package/dist/targets.js +2 -0
  74. package/dist/test-api.js +3 -0
  75. package/dist/text-runtime-GxCuRdru.js +129 -0
  76. package/package.json +16 -4
  77. package/action-runtime-api.ts +0 -1
  78. package/action-runtime.runtime.ts +0 -1
  79. package/api.ts +0 -67
  80. package/auth-presence.ts +0 -80
  81. package/channel-config-api.ts +0 -1
  82. package/channel-plugin-api.ts +0 -3
  83. package/config-api.ts +0 -4
  84. package/constants.ts +0 -1
  85. package/contract-api.ts +0 -29
  86. package/directory-contract-api.ts +0 -4
  87. package/doctor-contract-api.ts +0 -8
  88. package/index.ts +0 -16
  89. package/legacy-session-surface-api.ts +0 -6
  90. package/legacy-state-migrations-api.ts +0 -1
  91. package/light-runtime-api.ts +0 -12
  92. package/login-qr-api.ts +0 -1
  93. package/login-qr-runtime.ts +0 -23
  94. package/outbound-payload-test-api.ts +0 -1
  95. package/runtime-api.ts +0 -84
  96. package/secret-contract-api.ts +0 -4
  97. package/security-contract-api.ts +0 -4
  98. package/setup-entry.ts +0 -21
  99. package/setup-plugin-api.ts +0 -3
  100. package/src/account-config.ts +0 -77
  101. package/src/account-ids.ts +0 -17
  102. package/src/account-types.ts +0 -5
  103. package/src/accounts.ts +0 -176
  104. package/src/action-runtime-target-auth.ts +0 -27
  105. package/src/action-runtime.ts +0 -76
  106. package/src/active-listener.ts +0 -17
  107. package/src/agent-tools-login.ts +0 -113
  108. package/src/approval-auth.ts +0 -27
  109. package/src/auth-store.runtime.ts +0 -1
  110. package/src/auth-store.ts +0 -494
  111. package/src/auto-reply/config.runtime.ts +0 -16
  112. package/src/auto-reply/constants.ts +0 -1
  113. package/src/auto-reply/deliver-reply.ts +0 -332
  114. package/src/auto-reply/loggers.ts +0 -6
  115. package/src/auto-reply/mentions.ts +0 -131
  116. package/src/auto-reply/monitor/ack-reaction.ts +0 -99
  117. package/src/auto-reply/monitor/audio-preflight.runtime.ts +0 -9
  118. package/src/auto-reply/monitor/broadcast.ts +0 -153
  119. package/src/auto-reply/monitor/commands.ts +0 -19
  120. package/src/auto-reply/monitor/echo.ts +0 -64
  121. package/src/auto-reply/monitor/group-activation.runtime.ts +0 -1
  122. package/src/auto-reply/monitor/group-activation.ts +0 -73
  123. package/src/auto-reply/monitor/group-gating.runtime.ts +0 -8
  124. package/src/auto-reply/monitor/group-gating.ts +0 -218
  125. package/src/auto-reply/monitor/group-members.ts +0 -65
  126. package/src/auto-reply/monitor/inbound-context.ts +0 -92
  127. package/src/auto-reply/monitor/inbound-dispatch.runtime.ts +0 -22
  128. package/src/auto-reply/monitor/inbound-dispatch.ts +0 -749
  129. package/src/auto-reply/monitor/last-route.ts +0 -61
  130. package/src/auto-reply/monitor/listener-log.ts +0 -28
  131. package/src/auto-reply/monitor/message-line.runtime.ts +0 -38
  132. package/src/auto-reply/monitor/message-line.ts +0 -54
  133. package/src/auto-reply/monitor/on-message.ts +0 -333
  134. package/src/auto-reply/monitor/peer.ts +0 -17
  135. package/src/auto-reply/monitor/process-message.ts +0 -584
  136. package/src/auto-reply/monitor/runtime-api.ts +0 -36
  137. package/src/auto-reply/monitor/status-reaction.ts +0 -108
  138. package/src/auto-reply/monitor-state.ts +0 -114
  139. package/src/auto-reply/monitor.ts +0 -720
  140. package/src/auto-reply/reply-resolver.runtime.ts +0 -1
  141. package/src/auto-reply/types.ts +0 -48
  142. package/src/auto-reply/util.ts +0 -62
  143. package/src/auto-reply.impl.ts +0 -6
  144. package/src/auto-reply.ts +0 -1
  145. package/src/channel-actions.runtime.ts +0 -7
  146. package/src/channel-actions.ts +0 -85
  147. package/src/channel-outbound.ts +0 -87
  148. package/src/channel-react-action.runtime.ts +0 -10
  149. package/src/channel-react-action.ts +0 -247
  150. package/src/channel.runtime.ts +0 -117
  151. package/src/channel.setup.ts +0 -32
  152. package/src/channel.ts +0 -356
  153. package/src/command-policy.ts +0 -7
  154. package/src/config-accessors.ts +0 -22
  155. package/src/config-schema.ts +0 -6
  156. package/src/config-ui-hints.ts +0 -24
  157. package/src/connection-controller-registry.ts +0 -49
  158. package/src/connection-controller.ts +0 -680
  159. package/src/creds-files.ts +0 -19
  160. package/src/creds-persistence.ts +0 -71
  161. package/src/directory-config.ts +0 -40
  162. package/src/doctor-contract.ts +0 -11
  163. package/src/doctor.ts +0 -56
  164. package/src/document-filename.ts +0 -17
  165. package/src/group-intro.ts +0 -15
  166. package/src/group-policy.ts +0 -40
  167. package/src/group-session-contract.ts +0 -20
  168. package/src/group-session-key.ts +0 -42
  169. package/src/heartbeat.ts +0 -34
  170. package/src/identity.ts +0 -164
  171. package/src/inbound/access-control.ts +0 -187
  172. package/src/inbound/dedupe.ts +0 -132
  173. package/src/inbound/extract.ts +0 -484
  174. package/src/inbound/lifecycle.ts +0 -39
  175. package/src/inbound/media.ts +0 -128
  176. package/src/inbound/monitor.ts +0 -1042
  177. package/src/inbound/outbound-mentions.ts +0 -260
  178. package/src/inbound/runtime-api.ts +0 -7
  179. package/src/inbound/save-media.runtime.ts +0 -1
  180. package/src/inbound/send-api.ts +0 -203
  181. package/src/inbound/send-result.ts +0 -109
  182. package/src/inbound/types.ts +0 -107
  183. package/src/inbound-policy.ts +0 -215
  184. package/src/inbound.ts +0 -9
  185. package/src/login-qr.ts +0 -542
  186. package/src/login.ts +0 -83
  187. package/src/media.ts +0 -10
  188. package/src/monitor-inbox.allows-messages-from-senders-allowfrom-list.test-support.ts +0 -417
  189. package/src/monitor-inbox.append-upsert.test-support.ts +0 -133
  190. package/src/monitor-inbox.blocks-messages-from-unauthorized-senders-not-allowfrom.test-support.ts +0 -418
  191. package/src/monitor-inbox.captures-media-path-image-messages.test-support.ts +0 -308
  192. package/src/monitor-inbox.streams-inbound-messages.test-support.ts +0 -824
  193. package/src/normalize-target.ts +0 -148
  194. package/src/normalize.ts +0 -8
  195. package/src/outbound-adapter.ts +0 -36
  196. package/src/outbound-base.ts +0 -256
  197. package/src/outbound-media-contract.ts +0 -307
  198. package/src/outbound-media.runtime.ts +0 -41
  199. package/src/outbound-send-deps.ts +0 -1
  200. package/src/outbound-test-support.ts +0 -16
  201. package/src/qa-driver.runtime.ts +0 -189
  202. package/src/qr-image.ts +0 -1
  203. package/src/qr-terminal.ts +0 -1
  204. package/src/quoted-message.ts +0 -184
  205. package/src/reaction-level.ts +0 -24
  206. package/src/reconnect.ts +0 -55
  207. package/src/resolve-outbound-target.ts +0 -58
  208. package/src/runtime-api.ts +0 -59
  209. package/src/runtime-group-policy.ts +0 -16
  210. package/src/runtime.ts +0 -9
  211. package/src/security-contract.ts +0 -47
  212. package/src/security-fix.ts +0 -71
  213. package/src/send.ts +0 -342
  214. package/src/session-contract.ts +0 -43
  215. package/src/session-errors.ts +0 -125
  216. package/src/session-route.ts +0 -32
  217. package/src/session.runtime.ts +0 -8
  218. package/src/session.ts +0 -327
  219. package/src/setup-core.ts +0 -52
  220. package/src/setup-finalize.ts +0 -450
  221. package/src/setup-surface.ts +0 -71
  222. package/src/setup-test-helpers.ts +0 -217
  223. package/src/shared.ts +0 -291
  224. package/src/socket-timing.ts +0 -38
  225. package/src/state-migrations.ts +0 -55
  226. package/src/status-issues.ts +0 -185
  227. package/src/system-prompt.ts +0 -31
  228. package/src/targets-runtime.ts +0 -221
  229. package/src/text-runtime.ts +0 -18
  230. package/src/vcard.ts +0 -84
  231. package/targets.ts +0 -5
  232. package/test-api.ts +0 -2
  233. package/tsconfig.json +0 -16
@@ -3,7 +3,9 @@
3
3
  "activation": {
4
4
  "onStartup": false
5
5
  },
6
- "channels": ["whatsapp"],
6
+ "channels": [
7
+ "whatsapp"
8
+ ],
7
9
  "configSchema": {
8
10
  "type": "object",
9
11
  "additionalProperties": false,
@@ -19,5 +21,722 @@
19
21
  }
20
22
  }
21
23
  }
24
+ },
25
+ "channelConfigs": {
26
+ "whatsapp": {
27
+ "schema": {
28
+ "$schema": "http://json-schema.org/draft-07/schema#",
29
+ "type": "object",
30
+ "properties": {
31
+ "enabled": {
32
+ "type": "boolean"
33
+ },
34
+ "capabilities": {
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "markdown": {
41
+ "type": "object",
42
+ "properties": {
43
+ "tables": {
44
+ "type": "string",
45
+ "enum": [
46
+ "off",
47
+ "bullets",
48
+ "code",
49
+ "block"
50
+ ]
51
+ }
52
+ },
53
+ "additionalProperties": false
54
+ },
55
+ "configWrites": {
56
+ "type": "boolean"
57
+ },
58
+ "sendReadReceipts": {
59
+ "type": "boolean"
60
+ },
61
+ "messagePrefix": {
62
+ "type": "string"
63
+ },
64
+ "responsePrefix": {
65
+ "type": "string"
66
+ },
67
+ "dmPolicy": {
68
+ "default": "pairing",
69
+ "type": "string",
70
+ "enum": [
71
+ "pairing",
72
+ "allowlist",
73
+ "open",
74
+ "disabled"
75
+ ]
76
+ },
77
+ "selfChatMode": {
78
+ "type": "boolean"
79
+ },
80
+ "allowFrom": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "defaultTo": {
87
+ "type": "string"
88
+ },
89
+ "groupAllowFrom": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ }
94
+ },
95
+ "groupPolicy": {
96
+ "default": "allowlist",
97
+ "type": "string",
98
+ "enum": [
99
+ "open",
100
+ "disabled",
101
+ "allowlist"
102
+ ]
103
+ },
104
+ "contextVisibility": {
105
+ "type": "string",
106
+ "enum": [
107
+ "all",
108
+ "allowlist",
109
+ "allowlist_quote"
110
+ ]
111
+ },
112
+ "historyLimit": {
113
+ "type": "integer",
114
+ "minimum": 0,
115
+ "maximum": 9007199254740991
116
+ },
117
+ "dmHistoryLimit": {
118
+ "type": "integer",
119
+ "minimum": 0,
120
+ "maximum": 9007199254740991
121
+ },
122
+ "dms": {
123
+ "type": "object",
124
+ "propertyNames": {
125
+ "type": "string"
126
+ },
127
+ "additionalProperties": {
128
+ "type": "object",
129
+ "properties": {
130
+ "historyLimit": {
131
+ "type": "integer",
132
+ "minimum": 0,
133
+ "maximum": 9007199254740991
134
+ }
135
+ },
136
+ "additionalProperties": false
137
+ }
138
+ },
139
+ "textChunkLimit": {
140
+ "type": "integer",
141
+ "exclusiveMinimum": 0,
142
+ "maximum": 9007199254740991
143
+ },
144
+ "chunkMode": {
145
+ "type": "string",
146
+ "enum": [
147
+ "length",
148
+ "newline"
149
+ ]
150
+ },
151
+ "blockStreaming": {
152
+ "type": "boolean"
153
+ },
154
+ "blockStreamingCoalesce": {
155
+ "type": "object",
156
+ "properties": {
157
+ "minChars": {
158
+ "type": "integer",
159
+ "exclusiveMinimum": 0,
160
+ "maximum": 9007199254740991
161
+ },
162
+ "maxChars": {
163
+ "type": "integer",
164
+ "exclusiveMinimum": 0,
165
+ "maximum": 9007199254740991
166
+ },
167
+ "idleMs": {
168
+ "type": "integer",
169
+ "minimum": 0,
170
+ "maximum": 9007199254740991
171
+ }
172
+ },
173
+ "additionalProperties": false
174
+ },
175
+ "groups": {
176
+ "type": "object",
177
+ "propertyNames": {
178
+ "type": "string"
179
+ },
180
+ "additionalProperties": {
181
+ "type": "object",
182
+ "properties": {
183
+ "requireMention": {
184
+ "type": "boolean"
185
+ },
186
+ "tools": {
187
+ "type": "object",
188
+ "properties": {
189
+ "allow": {
190
+ "type": "array",
191
+ "items": {
192
+ "type": "string"
193
+ }
194
+ },
195
+ "alsoAllow": {
196
+ "type": "array",
197
+ "items": {
198
+ "type": "string"
199
+ }
200
+ },
201
+ "deny": {
202
+ "type": "array",
203
+ "items": {
204
+ "type": "string"
205
+ }
206
+ }
207
+ },
208
+ "additionalProperties": false
209
+ },
210
+ "toolsBySender": {
211
+ "type": "object",
212
+ "propertyNames": {
213
+ "type": "string"
214
+ },
215
+ "additionalProperties": {
216
+ "type": "object",
217
+ "properties": {
218
+ "allow": {
219
+ "type": "array",
220
+ "items": {
221
+ "type": "string"
222
+ }
223
+ },
224
+ "alsoAllow": {
225
+ "type": "array",
226
+ "items": {
227
+ "type": "string"
228
+ }
229
+ },
230
+ "deny": {
231
+ "type": "array",
232
+ "items": {
233
+ "type": "string"
234
+ }
235
+ }
236
+ },
237
+ "additionalProperties": false
238
+ }
239
+ },
240
+ "systemPrompt": {
241
+ "type": "string"
242
+ }
243
+ },
244
+ "additionalProperties": false
245
+ }
246
+ },
247
+ "direct": {
248
+ "type": "object",
249
+ "propertyNames": {
250
+ "type": "string"
251
+ },
252
+ "additionalProperties": {
253
+ "type": "object",
254
+ "properties": {
255
+ "systemPrompt": {
256
+ "type": "string"
257
+ }
258
+ },
259
+ "additionalProperties": false
260
+ }
261
+ },
262
+ "ackReaction": {
263
+ "type": "object",
264
+ "properties": {
265
+ "emoji": {
266
+ "type": "string"
267
+ },
268
+ "direct": {
269
+ "default": true,
270
+ "type": "boolean"
271
+ },
272
+ "group": {
273
+ "default": "mentions",
274
+ "type": "string",
275
+ "enum": [
276
+ "always",
277
+ "mentions",
278
+ "never"
279
+ ]
280
+ }
281
+ },
282
+ "required": [
283
+ "direct",
284
+ "group"
285
+ ],
286
+ "additionalProperties": false
287
+ },
288
+ "reactionLevel": {
289
+ "type": "string",
290
+ "enum": [
291
+ "off",
292
+ "ack",
293
+ "minimal",
294
+ "extensive"
295
+ ]
296
+ },
297
+ "debounceMs": {
298
+ "default": 0,
299
+ "type": "integer",
300
+ "minimum": 0,
301
+ "maximum": 9007199254740991
302
+ },
303
+ "replyToMode": {
304
+ "anyOf": [
305
+ {
306
+ "type": "string",
307
+ "const": "off"
308
+ },
309
+ {
310
+ "type": "string",
311
+ "const": "first"
312
+ },
313
+ {
314
+ "type": "string",
315
+ "const": "all"
316
+ },
317
+ {
318
+ "type": "string",
319
+ "const": "batched"
320
+ }
321
+ ]
322
+ },
323
+ "heartbeat": {
324
+ "type": "object",
325
+ "properties": {
326
+ "showOk": {
327
+ "type": "boolean"
328
+ },
329
+ "showAlerts": {
330
+ "type": "boolean"
331
+ },
332
+ "useIndicator": {
333
+ "type": "boolean"
334
+ }
335
+ },
336
+ "additionalProperties": false
337
+ },
338
+ "healthMonitor": {
339
+ "type": "object",
340
+ "properties": {
341
+ "enabled": {
342
+ "type": "boolean"
343
+ }
344
+ },
345
+ "additionalProperties": false
346
+ },
347
+ "accounts": {
348
+ "type": "object",
349
+ "propertyNames": {
350
+ "type": "string"
351
+ },
352
+ "additionalProperties": {
353
+ "type": "object",
354
+ "properties": {
355
+ "enabled": {
356
+ "type": "boolean"
357
+ },
358
+ "capabilities": {
359
+ "type": "array",
360
+ "items": {
361
+ "type": "string"
362
+ }
363
+ },
364
+ "markdown": {
365
+ "type": "object",
366
+ "properties": {
367
+ "tables": {
368
+ "type": "string",
369
+ "enum": [
370
+ "off",
371
+ "bullets",
372
+ "code",
373
+ "block"
374
+ ]
375
+ }
376
+ },
377
+ "additionalProperties": false
378
+ },
379
+ "configWrites": {
380
+ "type": "boolean"
381
+ },
382
+ "sendReadReceipts": {
383
+ "type": "boolean"
384
+ },
385
+ "messagePrefix": {
386
+ "type": "string"
387
+ },
388
+ "responsePrefix": {
389
+ "type": "string"
390
+ },
391
+ "dmPolicy": {
392
+ "type": "string",
393
+ "enum": [
394
+ "pairing",
395
+ "allowlist",
396
+ "open",
397
+ "disabled"
398
+ ]
399
+ },
400
+ "selfChatMode": {
401
+ "type": "boolean"
402
+ },
403
+ "allowFrom": {
404
+ "type": "array",
405
+ "items": {
406
+ "type": "string"
407
+ }
408
+ },
409
+ "defaultTo": {
410
+ "type": "string"
411
+ },
412
+ "groupAllowFrom": {
413
+ "type": "array",
414
+ "items": {
415
+ "type": "string"
416
+ }
417
+ },
418
+ "groupPolicy": {
419
+ "type": "string",
420
+ "enum": [
421
+ "open",
422
+ "disabled",
423
+ "allowlist"
424
+ ]
425
+ },
426
+ "contextVisibility": {
427
+ "type": "string",
428
+ "enum": [
429
+ "all",
430
+ "allowlist",
431
+ "allowlist_quote"
432
+ ]
433
+ },
434
+ "historyLimit": {
435
+ "type": "integer",
436
+ "minimum": 0,
437
+ "maximum": 9007199254740991
438
+ },
439
+ "dmHistoryLimit": {
440
+ "type": "integer",
441
+ "minimum": 0,
442
+ "maximum": 9007199254740991
443
+ },
444
+ "dms": {
445
+ "type": "object",
446
+ "propertyNames": {
447
+ "type": "string"
448
+ },
449
+ "additionalProperties": {
450
+ "type": "object",
451
+ "properties": {
452
+ "historyLimit": {
453
+ "type": "integer",
454
+ "minimum": 0,
455
+ "maximum": 9007199254740991
456
+ }
457
+ },
458
+ "additionalProperties": false
459
+ }
460
+ },
461
+ "textChunkLimit": {
462
+ "type": "integer",
463
+ "exclusiveMinimum": 0,
464
+ "maximum": 9007199254740991
465
+ },
466
+ "chunkMode": {
467
+ "type": "string",
468
+ "enum": [
469
+ "length",
470
+ "newline"
471
+ ]
472
+ },
473
+ "blockStreaming": {
474
+ "type": "boolean"
475
+ },
476
+ "blockStreamingCoalesce": {
477
+ "type": "object",
478
+ "properties": {
479
+ "minChars": {
480
+ "type": "integer",
481
+ "exclusiveMinimum": 0,
482
+ "maximum": 9007199254740991
483
+ },
484
+ "maxChars": {
485
+ "type": "integer",
486
+ "exclusiveMinimum": 0,
487
+ "maximum": 9007199254740991
488
+ },
489
+ "idleMs": {
490
+ "type": "integer",
491
+ "minimum": 0,
492
+ "maximum": 9007199254740991
493
+ }
494
+ },
495
+ "additionalProperties": false
496
+ },
497
+ "groups": {
498
+ "type": "object",
499
+ "propertyNames": {
500
+ "type": "string"
501
+ },
502
+ "additionalProperties": {
503
+ "type": "object",
504
+ "properties": {
505
+ "requireMention": {
506
+ "type": "boolean"
507
+ },
508
+ "tools": {
509
+ "type": "object",
510
+ "properties": {
511
+ "allow": {
512
+ "type": "array",
513
+ "items": {
514
+ "type": "string"
515
+ }
516
+ },
517
+ "alsoAllow": {
518
+ "type": "array",
519
+ "items": {
520
+ "type": "string"
521
+ }
522
+ },
523
+ "deny": {
524
+ "type": "array",
525
+ "items": {
526
+ "type": "string"
527
+ }
528
+ }
529
+ },
530
+ "additionalProperties": false
531
+ },
532
+ "toolsBySender": {
533
+ "type": "object",
534
+ "propertyNames": {
535
+ "type": "string"
536
+ },
537
+ "additionalProperties": {
538
+ "type": "object",
539
+ "properties": {
540
+ "allow": {
541
+ "type": "array",
542
+ "items": {
543
+ "type": "string"
544
+ }
545
+ },
546
+ "alsoAllow": {
547
+ "type": "array",
548
+ "items": {
549
+ "type": "string"
550
+ }
551
+ },
552
+ "deny": {
553
+ "type": "array",
554
+ "items": {
555
+ "type": "string"
556
+ }
557
+ }
558
+ },
559
+ "additionalProperties": false
560
+ }
561
+ },
562
+ "systemPrompt": {
563
+ "type": "string"
564
+ }
565
+ },
566
+ "additionalProperties": false
567
+ }
568
+ },
569
+ "direct": {
570
+ "type": "object",
571
+ "propertyNames": {
572
+ "type": "string"
573
+ },
574
+ "additionalProperties": {
575
+ "type": "object",
576
+ "properties": {
577
+ "systemPrompt": {
578
+ "type": "string"
579
+ }
580
+ },
581
+ "additionalProperties": false
582
+ }
583
+ },
584
+ "ackReaction": {
585
+ "type": "object",
586
+ "properties": {
587
+ "emoji": {
588
+ "type": "string"
589
+ },
590
+ "direct": {
591
+ "default": true,
592
+ "type": "boolean"
593
+ },
594
+ "group": {
595
+ "default": "mentions",
596
+ "type": "string",
597
+ "enum": [
598
+ "always",
599
+ "mentions",
600
+ "never"
601
+ ]
602
+ }
603
+ },
604
+ "required": [
605
+ "direct",
606
+ "group"
607
+ ],
608
+ "additionalProperties": false
609
+ },
610
+ "reactionLevel": {
611
+ "type": "string",
612
+ "enum": [
613
+ "off",
614
+ "ack",
615
+ "minimal",
616
+ "extensive"
617
+ ]
618
+ },
619
+ "debounceMs": {
620
+ "type": "integer",
621
+ "minimum": 0,
622
+ "maximum": 9007199254740991
623
+ },
624
+ "replyToMode": {
625
+ "anyOf": [
626
+ {
627
+ "type": "string",
628
+ "const": "off"
629
+ },
630
+ {
631
+ "type": "string",
632
+ "const": "first"
633
+ },
634
+ {
635
+ "type": "string",
636
+ "const": "all"
637
+ },
638
+ {
639
+ "type": "string",
640
+ "const": "batched"
641
+ }
642
+ ]
643
+ },
644
+ "heartbeat": {
645
+ "type": "object",
646
+ "properties": {
647
+ "showOk": {
648
+ "type": "boolean"
649
+ },
650
+ "showAlerts": {
651
+ "type": "boolean"
652
+ },
653
+ "useIndicator": {
654
+ "type": "boolean"
655
+ }
656
+ },
657
+ "additionalProperties": false
658
+ },
659
+ "healthMonitor": {
660
+ "type": "object",
661
+ "properties": {
662
+ "enabled": {
663
+ "type": "boolean"
664
+ }
665
+ },
666
+ "additionalProperties": false
667
+ },
668
+ "name": {
669
+ "type": "string"
670
+ },
671
+ "authDir": {
672
+ "type": "string"
673
+ },
674
+ "mediaMaxMb": {
675
+ "type": "integer",
676
+ "exclusiveMinimum": 0,
677
+ "maximum": 9007199254740991
678
+ }
679
+ },
680
+ "additionalProperties": false
681
+ }
682
+ },
683
+ "defaultAccount": {
684
+ "type": "string"
685
+ },
686
+ "mediaMaxMb": {
687
+ "default": 50,
688
+ "type": "integer",
689
+ "exclusiveMinimum": 0,
690
+ "maximum": 9007199254740991
691
+ },
692
+ "actions": {
693
+ "type": "object",
694
+ "properties": {
695
+ "reactions": {
696
+ "type": "boolean"
697
+ },
698
+ "sendMessage": {
699
+ "type": "boolean"
700
+ },
701
+ "polls": {
702
+ "type": "boolean"
703
+ }
704
+ },
705
+ "additionalProperties": false
706
+ }
707
+ },
708
+ "required": [
709
+ "dmPolicy",
710
+ "groupPolicy",
711
+ "debounceMs",
712
+ "mediaMaxMb"
713
+ ],
714
+ "additionalProperties": false
715
+ },
716
+ "label": "WhatsApp",
717
+ "description": "works with your own number; recommend a separate phone + eSIM.",
718
+ "uiHints": {
719
+ "": {
720
+ "label": "WhatsApp",
721
+ "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."
722
+ },
723
+ "dmPolicy": {
724
+ "label": "WhatsApp DM Policy",
725
+ "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.whatsapp.allowFrom=[\"*\"]."
726
+ },
727
+ "selfChatMode": {
728
+ "label": "WhatsApp Self-Phone Mode",
729
+ "help": "Same-phone setup (bot uses your personal WhatsApp number)."
730
+ },
731
+ "debounceMs": {
732
+ "label": "WhatsApp Message Debounce (ms)",
733
+ "help": "Debounce window (ms) for batching rapid consecutive messages from the same sender (0 to disable)."
734
+ },
735
+ "configWrites": {
736
+ "label": "WhatsApp Config Writes",
737
+ "help": "Allow WhatsApp to write config in response to channel events/commands (default: true)."
738
+ }
739
+ }
740
+ }
22
741
  }
23
742
  }