@openclaw/slack 2026.5.12-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/account-inspect-D7AZNs8C.js +77 -0
  2. package/dist/account-inspect-api.js +10 -0
  3. package/dist/accounts-ClAPP5ry.js +139 -0
  4. package/dist/accounts.runtime-DDVcLJUI.js +2 -0
  5. package/dist/action-runtime-e2UhRsNx.js +350 -0
  6. package/dist/action-runtime.runtime-BFcqMbOm.js +2 -0
  7. package/dist/actions-CYLFK-Zy.js +292 -0
  8. package/dist/actions.runtime-CO3OaTLb.js +2 -0
  9. package/dist/allow-list-BPnnlRPL.js +82 -0
  10. package/dist/api.js +21 -0
  11. package/dist/approval-handler.runtime-CmeRr9qA.js +256 -0
  12. package/dist/blocks-input-CwTFVImV.js +29 -0
  13. package/dist/blocks-render-BIDw-Pom.js +161 -0
  14. package/dist/channel-DRjHBTDB.js +1020 -0
  15. package/dist/channel-api-B_nZwosg.js +20 -0
  16. package/dist/channel-config-api.js +2 -0
  17. package/dist/channel-entry.js +22 -0
  18. package/dist/channel-plugin-api.js +2 -0
  19. package/dist/channel.setup-Cayn7afd.js +73 -0
  20. package/dist/client-CPe4GmDR.js +103 -0
  21. package/dist/config-api-B_jq4NJW.js +2 -0
  22. package/dist/config-schema-D9B5LB_L.js +167 -0
  23. package/dist/configured-state.js +11 -0
  24. package/dist/contract-api.js +5 -0
  25. package/dist/directory-config-B3JiHeB7.js +54 -0
  26. package/dist/directory-contract-api.js +2 -0
  27. package/dist/directory-live-Bf16GwDh.js +133 -0
  28. package/dist/doctor-contract-KUjHnkQm.js +147 -0
  29. package/dist/doctor-contract-api.js +2 -0
  30. package/dist/errors-BYFHR24f.js +109 -0
  31. package/dist/exec-approvals-7xUNgLi9.js +58 -0
  32. package/dist/group-policy-CyLUK6My.js +41 -0
  33. package/dist/http-routes-api.js +2 -0
  34. package/dist/inbound-contract-test-api.js +3 -0
  35. package/dist/index.js +33 -0
  36. package/dist/interactive-replies-api.js +2 -0
  37. package/dist/interactive-replies-qAIfuBor.js +173 -0
  38. package/dist/magic-string.es-BMaGRRZ1.js +1011 -0
  39. package/dist/media-D1XCd1uP.js +469 -0
  40. package/dist/message-tool-api-6lowf9zE.js +104 -0
  41. package/dist/message-tool-api.js +2 -0
  42. package/dist/monitor-a97o17G6.js +13 -0
  43. package/dist/mrkdwn-Cax-eSfK.js +6 -0
  44. package/dist/outbound-adapter-B_5sEhCg.js +174 -0
  45. package/dist/outbound-payload-test-api.js +2 -0
  46. package/dist/outbound-payload.test-harness-CVCamg1x.js +13558 -0
  47. package/dist/pipeline.runtime-DT0hLnq2.js +1379 -0
  48. package/dist/plugin-routes-DtTPmga1.js +20 -0
  49. package/dist/prepare-D3YqV8jB.js +1482 -0
  50. package/dist/prepare.test-helpers-DVcjRhfG.js +49 -0
  51. package/dist/probe-3eZf1FjI.js +42 -0
  52. package/dist/provider-D7uAN3Fq.js +3235 -0
  53. package/dist/registry-CeaoNfoP.js +39 -0
  54. package/dist/replies-Xe_jMR6o.js +139 -0
  55. package/dist/reply-blocks-Z5l6_R6H.js +14 -0
  56. package/dist/resolve-allowlist-common-Bk3clYPK.js +43 -0
  57. package/dist/resolve-channels-BRYqyNVJ.js +81 -0
  58. package/dist/resolve-users-Bd_SdP8j.js +113 -0
  59. package/dist/rolldown-runtime-CiIaOW0V.js +13 -0
  60. package/dist/room-context-0vovmZPU.js +787 -0
  61. package/dist/runtime-Bo-KHM-F.js +8 -0
  62. package/dist/runtime-api-Dd1xIV5v.js +9 -0
  63. package/dist/runtime-api.js +14 -0
  64. package/dist/runtime-setter-api.js +2 -0
  65. package/dist/scopes-CDevO8jg.js +74 -0
  66. package/dist/secret-contract-Bo6lbSkh.js +141 -0
  67. package/dist/secret-contract-api.js +2 -0
  68. package/dist/security-audit-BtHGnD3d.js +51 -0
  69. package/dist/security-contract-api.js +2 -0
  70. package/dist/send-D_A9kL-C.js +721 -0
  71. package/dist/send.runtime-BRE_ncCU.js +2 -0
  72. package/dist/send.runtime-_l76lUuL.js +2 -0
  73. package/dist/setup-core-B9NetDkM.js +320 -0
  74. package/dist/setup-entry.js +15 -0
  75. package/dist/setup-plugin-api.js +2 -0
  76. package/dist/setup-surface-D88QBVOW.js +128 -0
  77. package/dist/shared-D8U42xFL.js +208 -0
  78. package/dist/slash-commands.runtime-22kgyst2.js +19 -0
  79. package/dist/slash-dispatch.runtime-BJgT0jwV.js +32 -0
  80. package/dist/slash-plugin-commands.runtime-CF-n3MeP.js +2 -0
  81. package/dist/slash-skill-commands.runtime-BMs0VjTe.js +7 -0
  82. package/dist/streaming-compat-RkZgTmQ2.js +43 -0
  83. package/dist/target-parsing-CQmv-iSm.js +55 -0
  84. package/dist/targets-B1tYCAr6.js +2 -0
  85. package/dist/test-api.js +8 -0
  86. package/dist/thread-ts-C2x7c5PP.js +24 -0
  87. package/openclaw.plugin.json +2405 -0
  88. package/package.json +84 -0
@@ -0,0 +1,2405 @@
1
+ {
2
+ "id": "slack",
3
+ "activation": {
4
+ "onStartup": false
5
+ },
6
+ "channels": [
7
+ "slack"
8
+ ],
9
+ "channelEnvVars": {
10
+ "slack": [
11
+ "SLACK_BOT_TOKEN",
12
+ "SLACK_APP_TOKEN",
13
+ "SLACK_USER_TOKEN"
14
+ ]
15
+ },
16
+ "configSchema": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "properties": {}
20
+ },
21
+ "channelConfigs": {
22
+ "slack": {
23
+ "schema": {
24
+ "$schema": "http://json-schema.org/draft-07/schema#",
25
+ "type": "object",
26
+ "properties": {
27
+ "name": {
28
+ "type": "string"
29
+ },
30
+ "mode": {
31
+ "default": "socket",
32
+ "type": "string",
33
+ "enum": [
34
+ "socket",
35
+ "http"
36
+ ]
37
+ },
38
+ "socketMode": {
39
+ "type": "object",
40
+ "properties": {
41
+ "clientPingTimeout": {
42
+ "type": "integer",
43
+ "exclusiveMinimum": 0,
44
+ "maximum": 9007199254740991
45
+ },
46
+ "serverPingTimeout": {
47
+ "type": "integer",
48
+ "exclusiveMinimum": 0,
49
+ "maximum": 9007199254740991
50
+ },
51
+ "pingPongLoggingEnabled": {
52
+ "type": "boolean"
53
+ }
54
+ },
55
+ "additionalProperties": false
56
+ },
57
+ "signingSecret": {
58
+ "anyOf": [
59
+ {
60
+ "type": "string"
61
+ },
62
+ {
63
+ "oneOf": [
64
+ {
65
+ "type": "object",
66
+ "properties": {
67
+ "source": {
68
+ "type": "string",
69
+ "const": "env"
70
+ },
71
+ "provider": {
72
+ "type": "string",
73
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
74
+ },
75
+ "id": {
76
+ "type": "string",
77
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
78
+ }
79
+ },
80
+ "required": [
81
+ "source",
82
+ "provider",
83
+ "id"
84
+ ],
85
+ "additionalProperties": false
86
+ },
87
+ {
88
+ "type": "object",
89
+ "properties": {
90
+ "source": {
91
+ "type": "string",
92
+ "const": "file"
93
+ },
94
+ "provider": {
95
+ "type": "string",
96
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
97
+ },
98
+ "id": {
99
+ "type": "string"
100
+ }
101
+ },
102
+ "required": [
103
+ "source",
104
+ "provider",
105
+ "id"
106
+ ],
107
+ "additionalProperties": false
108
+ },
109
+ {
110
+ "type": "object",
111
+ "properties": {
112
+ "source": {
113
+ "type": "string",
114
+ "const": "exec"
115
+ },
116
+ "provider": {
117
+ "type": "string",
118
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
119
+ },
120
+ "id": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "required": [
125
+ "source",
126
+ "provider",
127
+ "id"
128
+ ],
129
+ "additionalProperties": false
130
+ }
131
+ ]
132
+ }
133
+ ]
134
+ },
135
+ "webhookPath": {
136
+ "default": "/slack/events",
137
+ "type": "string"
138
+ },
139
+ "capabilities": {
140
+ "anyOf": [
141
+ {
142
+ "type": "array",
143
+ "items": {
144
+ "type": "string"
145
+ }
146
+ },
147
+ {
148
+ "type": "object",
149
+ "properties": {
150
+ "interactiveReplies": {
151
+ "type": "boolean"
152
+ }
153
+ },
154
+ "additionalProperties": false
155
+ }
156
+ ]
157
+ },
158
+ "execApprovals": {
159
+ "type": "object",
160
+ "properties": {
161
+ "enabled": {
162
+ "type": "boolean"
163
+ },
164
+ "approvers": {
165
+ "type": "array",
166
+ "items": {
167
+ "anyOf": [
168
+ {
169
+ "type": "string"
170
+ },
171
+ {
172
+ "type": "number"
173
+ }
174
+ ]
175
+ }
176
+ },
177
+ "agentFilter": {
178
+ "type": "array",
179
+ "items": {
180
+ "type": "string"
181
+ }
182
+ },
183
+ "sessionFilter": {
184
+ "type": "array",
185
+ "items": {
186
+ "type": "string"
187
+ }
188
+ },
189
+ "target": {
190
+ "type": "string",
191
+ "enum": [
192
+ "dm",
193
+ "channel",
194
+ "both"
195
+ ]
196
+ }
197
+ },
198
+ "additionalProperties": false
199
+ },
200
+ "markdown": {
201
+ "type": "object",
202
+ "properties": {
203
+ "tables": {
204
+ "type": "string",
205
+ "enum": [
206
+ "off",
207
+ "bullets",
208
+ "code",
209
+ "block"
210
+ ]
211
+ }
212
+ },
213
+ "additionalProperties": false
214
+ },
215
+ "enabled": {
216
+ "type": "boolean"
217
+ },
218
+ "commands": {
219
+ "type": "object",
220
+ "properties": {
221
+ "native": {
222
+ "anyOf": [
223
+ {
224
+ "type": "boolean"
225
+ },
226
+ {
227
+ "type": "string",
228
+ "const": "auto"
229
+ }
230
+ ]
231
+ },
232
+ "nativeSkills": {
233
+ "anyOf": [
234
+ {
235
+ "type": "boolean"
236
+ },
237
+ {
238
+ "type": "string",
239
+ "const": "auto"
240
+ }
241
+ ]
242
+ }
243
+ },
244
+ "additionalProperties": false
245
+ },
246
+ "configWrites": {
247
+ "type": "boolean"
248
+ },
249
+ "botToken": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string"
253
+ },
254
+ {
255
+ "oneOf": [
256
+ {
257
+ "type": "object",
258
+ "properties": {
259
+ "source": {
260
+ "type": "string",
261
+ "const": "env"
262
+ },
263
+ "provider": {
264
+ "type": "string",
265
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
266
+ },
267
+ "id": {
268
+ "type": "string",
269
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
270
+ }
271
+ },
272
+ "required": [
273
+ "source",
274
+ "provider",
275
+ "id"
276
+ ],
277
+ "additionalProperties": false
278
+ },
279
+ {
280
+ "type": "object",
281
+ "properties": {
282
+ "source": {
283
+ "type": "string",
284
+ "const": "file"
285
+ },
286
+ "provider": {
287
+ "type": "string",
288
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
289
+ },
290
+ "id": {
291
+ "type": "string"
292
+ }
293
+ },
294
+ "required": [
295
+ "source",
296
+ "provider",
297
+ "id"
298
+ ],
299
+ "additionalProperties": false
300
+ },
301
+ {
302
+ "type": "object",
303
+ "properties": {
304
+ "source": {
305
+ "type": "string",
306
+ "const": "exec"
307
+ },
308
+ "provider": {
309
+ "type": "string",
310
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
311
+ },
312
+ "id": {
313
+ "type": "string"
314
+ }
315
+ },
316
+ "required": [
317
+ "source",
318
+ "provider",
319
+ "id"
320
+ ],
321
+ "additionalProperties": false
322
+ }
323
+ ]
324
+ }
325
+ ]
326
+ },
327
+ "appToken": {
328
+ "anyOf": [
329
+ {
330
+ "type": "string"
331
+ },
332
+ {
333
+ "oneOf": [
334
+ {
335
+ "type": "object",
336
+ "properties": {
337
+ "source": {
338
+ "type": "string",
339
+ "const": "env"
340
+ },
341
+ "provider": {
342
+ "type": "string",
343
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
344
+ },
345
+ "id": {
346
+ "type": "string",
347
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
348
+ }
349
+ },
350
+ "required": [
351
+ "source",
352
+ "provider",
353
+ "id"
354
+ ],
355
+ "additionalProperties": false
356
+ },
357
+ {
358
+ "type": "object",
359
+ "properties": {
360
+ "source": {
361
+ "type": "string",
362
+ "const": "file"
363
+ },
364
+ "provider": {
365
+ "type": "string",
366
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
367
+ },
368
+ "id": {
369
+ "type": "string"
370
+ }
371
+ },
372
+ "required": [
373
+ "source",
374
+ "provider",
375
+ "id"
376
+ ],
377
+ "additionalProperties": false
378
+ },
379
+ {
380
+ "type": "object",
381
+ "properties": {
382
+ "source": {
383
+ "type": "string",
384
+ "const": "exec"
385
+ },
386
+ "provider": {
387
+ "type": "string",
388
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
389
+ },
390
+ "id": {
391
+ "type": "string"
392
+ }
393
+ },
394
+ "required": [
395
+ "source",
396
+ "provider",
397
+ "id"
398
+ ],
399
+ "additionalProperties": false
400
+ }
401
+ ]
402
+ }
403
+ ]
404
+ },
405
+ "userToken": {
406
+ "anyOf": [
407
+ {
408
+ "type": "string"
409
+ },
410
+ {
411
+ "oneOf": [
412
+ {
413
+ "type": "object",
414
+ "properties": {
415
+ "source": {
416
+ "type": "string",
417
+ "const": "env"
418
+ },
419
+ "provider": {
420
+ "type": "string",
421
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
422
+ },
423
+ "id": {
424
+ "type": "string",
425
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
426
+ }
427
+ },
428
+ "required": [
429
+ "source",
430
+ "provider",
431
+ "id"
432
+ ],
433
+ "additionalProperties": false
434
+ },
435
+ {
436
+ "type": "object",
437
+ "properties": {
438
+ "source": {
439
+ "type": "string",
440
+ "const": "file"
441
+ },
442
+ "provider": {
443
+ "type": "string",
444
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
445
+ },
446
+ "id": {
447
+ "type": "string"
448
+ }
449
+ },
450
+ "required": [
451
+ "source",
452
+ "provider",
453
+ "id"
454
+ ],
455
+ "additionalProperties": false
456
+ },
457
+ {
458
+ "type": "object",
459
+ "properties": {
460
+ "source": {
461
+ "type": "string",
462
+ "const": "exec"
463
+ },
464
+ "provider": {
465
+ "type": "string",
466
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
467
+ },
468
+ "id": {
469
+ "type": "string"
470
+ }
471
+ },
472
+ "required": [
473
+ "source",
474
+ "provider",
475
+ "id"
476
+ ],
477
+ "additionalProperties": false
478
+ }
479
+ ]
480
+ }
481
+ ]
482
+ },
483
+ "userTokenReadOnly": {
484
+ "default": true,
485
+ "type": "boolean"
486
+ },
487
+ "allowBots": {
488
+ "anyOf": [
489
+ {
490
+ "type": "boolean"
491
+ },
492
+ {
493
+ "type": "string",
494
+ "const": "mentions"
495
+ }
496
+ ]
497
+ },
498
+ "dangerouslyAllowNameMatching": {
499
+ "type": "boolean"
500
+ },
501
+ "requireMention": {
502
+ "type": "boolean"
503
+ },
504
+ "groupPolicy": {
505
+ "default": "allowlist",
506
+ "type": "string",
507
+ "enum": [
508
+ "open",
509
+ "disabled",
510
+ "allowlist"
511
+ ]
512
+ },
513
+ "contextVisibility": {
514
+ "type": "string",
515
+ "enum": [
516
+ "all",
517
+ "allowlist",
518
+ "allowlist_quote"
519
+ ]
520
+ },
521
+ "historyLimit": {
522
+ "type": "integer",
523
+ "minimum": 0,
524
+ "maximum": 9007199254740991
525
+ },
526
+ "dmHistoryLimit": {
527
+ "type": "integer",
528
+ "minimum": 0,
529
+ "maximum": 9007199254740991
530
+ },
531
+ "dms": {
532
+ "type": "object",
533
+ "propertyNames": {
534
+ "type": "string"
535
+ },
536
+ "additionalProperties": {
537
+ "type": "object",
538
+ "properties": {
539
+ "historyLimit": {
540
+ "type": "integer",
541
+ "minimum": 0,
542
+ "maximum": 9007199254740991
543
+ }
544
+ },
545
+ "additionalProperties": false
546
+ }
547
+ },
548
+ "textChunkLimit": {
549
+ "type": "integer",
550
+ "exclusiveMinimum": 0,
551
+ "maximum": 9007199254740991
552
+ },
553
+ "unfurlLinks": {
554
+ "type": "boolean"
555
+ },
556
+ "unfurlMedia": {
557
+ "type": "boolean"
558
+ },
559
+ "streaming": {
560
+ "type": "object",
561
+ "properties": {
562
+ "mode": {
563
+ "type": "string",
564
+ "enum": [
565
+ "off",
566
+ "partial",
567
+ "block",
568
+ "progress"
569
+ ]
570
+ },
571
+ "chunkMode": {
572
+ "type": "string",
573
+ "enum": [
574
+ "length",
575
+ "newline"
576
+ ]
577
+ },
578
+ "preview": {
579
+ "type": "object",
580
+ "properties": {
581
+ "chunk": {
582
+ "type": "object",
583
+ "properties": {
584
+ "minChars": {
585
+ "type": "integer",
586
+ "exclusiveMinimum": 0,
587
+ "maximum": 9007199254740991
588
+ },
589
+ "maxChars": {
590
+ "type": "integer",
591
+ "exclusiveMinimum": 0,
592
+ "maximum": 9007199254740991
593
+ },
594
+ "breakPreference": {
595
+ "anyOf": [
596
+ {
597
+ "type": "string",
598
+ "const": "paragraph"
599
+ },
600
+ {
601
+ "type": "string",
602
+ "const": "newline"
603
+ },
604
+ {
605
+ "type": "string",
606
+ "const": "sentence"
607
+ }
608
+ ]
609
+ }
610
+ },
611
+ "additionalProperties": false
612
+ },
613
+ "toolProgress": {
614
+ "type": "boolean"
615
+ },
616
+ "commandText": {
617
+ "type": "string",
618
+ "enum": [
619
+ "raw",
620
+ "status"
621
+ ]
622
+ }
623
+ },
624
+ "additionalProperties": false
625
+ },
626
+ "progress": {
627
+ "type": "object",
628
+ "properties": {
629
+ "label": {
630
+ "anyOf": [
631
+ {
632
+ "type": "string"
633
+ },
634
+ {
635
+ "type": "boolean",
636
+ "const": false
637
+ }
638
+ ]
639
+ },
640
+ "labels": {
641
+ "type": "array",
642
+ "items": {
643
+ "type": "string"
644
+ }
645
+ },
646
+ "maxLines": {
647
+ "type": "integer",
648
+ "exclusiveMinimum": 0,
649
+ "maximum": 9007199254740991
650
+ },
651
+ "render": {
652
+ "type": "string",
653
+ "enum": [
654
+ "text",
655
+ "rich"
656
+ ]
657
+ },
658
+ "toolProgress": {
659
+ "type": "boolean"
660
+ },
661
+ "commandText": {
662
+ "type": "string",
663
+ "enum": [
664
+ "raw",
665
+ "status"
666
+ ]
667
+ }
668
+ },
669
+ "additionalProperties": false
670
+ },
671
+ "block": {
672
+ "type": "object",
673
+ "properties": {
674
+ "enabled": {
675
+ "type": "boolean"
676
+ },
677
+ "coalesce": {
678
+ "type": "object",
679
+ "properties": {
680
+ "minChars": {
681
+ "type": "integer",
682
+ "exclusiveMinimum": 0,
683
+ "maximum": 9007199254740991
684
+ },
685
+ "maxChars": {
686
+ "type": "integer",
687
+ "exclusiveMinimum": 0,
688
+ "maximum": 9007199254740991
689
+ },
690
+ "idleMs": {
691
+ "type": "integer",
692
+ "minimum": 0,
693
+ "maximum": 9007199254740991
694
+ }
695
+ },
696
+ "additionalProperties": false
697
+ }
698
+ },
699
+ "additionalProperties": false
700
+ },
701
+ "nativeTransport": {
702
+ "type": "boolean"
703
+ }
704
+ },
705
+ "additionalProperties": false
706
+ },
707
+ "mediaMaxMb": {
708
+ "type": "number",
709
+ "exclusiveMinimum": 0
710
+ },
711
+ "reactionNotifications": {
712
+ "type": "string",
713
+ "enum": [
714
+ "off",
715
+ "own",
716
+ "all",
717
+ "allowlist"
718
+ ]
719
+ },
720
+ "reactionAllowlist": {
721
+ "type": "array",
722
+ "items": {
723
+ "anyOf": [
724
+ {
725
+ "type": "string"
726
+ },
727
+ {
728
+ "type": "number"
729
+ }
730
+ ]
731
+ }
732
+ },
733
+ "replyToMode": {
734
+ "anyOf": [
735
+ {
736
+ "type": "string",
737
+ "const": "off"
738
+ },
739
+ {
740
+ "type": "string",
741
+ "const": "first"
742
+ },
743
+ {
744
+ "type": "string",
745
+ "const": "all"
746
+ },
747
+ {
748
+ "type": "string",
749
+ "const": "batched"
750
+ }
751
+ ]
752
+ },
753
+ "replyToModeByChatType": {
754
+ "type": "object",
755
+ "properties": {
756
+ "direct": {
757
+ "anyOf": [
758
+ {
759
+ "type": "string",
760
+ "const": "off"
761
+ },
762
+ {
763
+ "type": "string",
764
+ "const": "first"
765
+ },
766
+ {
767
+ "type": "string",
768
+ "const": "all"
769
+ },
770
+ {
771
+ "type": "string",
772
+ "const": "batched"
773
+ }
774
+ ]
775
+ },
776
+ "group": {
777
+ "anyOf": [
778
+ {
779
+ "type": "string",
780
+ "const": "off"
781
+ },
782
+ {
783
+ "type": "string",
784
+ "const": "first"
785
+ },
786
+ {
787
+ "type": "string",
788
+ "const": "all"
789
+ },
790
+ {
791
+ "type": "string",
792
+ "const": "batched"
793
+ }
794
+ ]
795
+ },
796
+ "channel": {
797
+ "anyOf": [
798
+ {
799
+ "type": "string",
800
+ "const": "off"
801
+ },
802
+ {
803
+ "type": "string",
804
+ "const": "first"
805
+ },
806
+ {
807
+ "type": "string",
808
+ "const": "all"
809
+ },
810
+ {
811
+ "type": "string",
812
+ "const": "batched"
813
+ }
814
+ ]
815
+ }
816
+ },
817
+ "additionalProperties": false
818
+ },
819
+ "thread": {
820
+ "type": "object",
821
+ "properties": {
822
+ "historyScope": {
823
+ "type": "string",
824
+ "enum": [
825
+ "thread",
826
+ "channel"
827
+ ]
828
+ },
829
+ "inheritParent": {
830
+ "type": "boolean"
831
+ },
832
+ "initialHistoryLimit": {
833
+ "type": "integer",
834
+ "minimum": 0,
835
+ "maximum": 9007199254740991
836
+ },
837
+ "requireExplicitMention": {
838
+ "type": "boolean"
839
+ }
840
+ },
841
+ "additionalProperties": false
842
+ },
843
+ "actions": {
844
+ "type": "object",
845
+ "properties": {
846
+ "reactions": {
847
+ "type": "boolean"
848
+ },
849
+ "messages": {
850
+ "type": "boolean"
851
+ },
852
+ "pins": {
853
+ "type": "boolean"
854
+ },
855
+ "search": {
856
+ "type": "boolean"
857
+ },
858
+ "permissions": {
859
+ "type": "boolean"
860
+ },
861
+ "memberInfo": {
862
+ "type": "boolean"
863
+ },
864
+ "channelInfo": {
865
+ "type": "boolean"
866
+ },
867
+ "emojiList": {
868
+ "type": "boolean"
869
+ }
870
+ },
871
+ "additionalProperties": false
872
+ },
873
+ "slashCommand": {
874
+ "type": "object",
875
+ "properties": {
876
+ "enabled": {
877
+ "type": "boolean"
878
+ },
879
+ "name": {
880
+ "type": "string"
881
+ },
882
+ "sessionPrefix": {
883
+ "type": "string"
884
+ },
885
+ "ephemeral": {
886
+ "type": "boolean"
887
+ }
888
+ },
889
+ "additionalProperties": false
890
+ },
891
+ "dmPolicy": {
892
+ "type": "string",
893
+ "enum": [
894
+ "pairing",
895
+ "allowlist",
896
+ "open",
897
+ "disabled"
898
+ ]
899
+ },
900
+ "allowFrom": {
901
+ "type": "array",
902
+ "items": {
903
+ "anyOf": [
904
+ {
905
+ "type": "string"
906
+ },
907
+ {
908
+ "type": "number"
909
+ }
910
+ ]
911
+ }
912
+ },
913
+ "defaultTo": {
914
+ "type": "string"
915
+ },
916
+ "dm": {
917
+ "type": "object",
918
+ "properties": {
919
+ "enabled": {
920
+ "type": "boolean"
921
+ },
922
+ "policy": {
923
+ "type": "string",
924
+ "enum": [
925
+ "pairing",
926
+ "allowlist",
927
+ "open",
928
+ "disabled"
929
+ ]
930
+ },
931
+ "allowFrom": {
932
+ "type": "array",
933
+ "items": {
934
+ "anyOf": [
935
+ {
936
+ "type": "string"
937
+ },
938
+ {
939
+ "type": "number"
940
+ }
941
+ ]
942
+ }
943
+ },
944
+ "groupEnabled": {
945
+ "type": "boolean"
946
+ },
947
+ "groupChannels": {
948
+ "type": "array",
949
+ "items": {
950
+ "anyOf": [
951
+ {
952
+ "type": "string"
953
+ },
954
+ {
955
+ "type": "number"
956
+ }
957
+ ]
958
+ }
959
+ },
960
+ "replyToMode": {
961
+ "anyOf": [
962
+ {
963
+ "type": "string",
964
+ "const": "off"
965
+ },
966
+ {
967
+ "type": "string",
968
+ "const": "first"
969
+ },
970
+ {
971
+ "type": "string",
972
+ "const": "all"
973
+ },
974
+ {
975
+ "type": "string",
976
+ "const": "batched"
977
+ }
978
+ ]
979
+ }
980
+ },
981
+ "additionalProperties": false
982
+ },
983
+ "channels": {
984
+ "type": "object",
985
+ "propertyNames": {
986
+ "type": "string"
987
+ },
988
+ "additionalProperties": {
989
+ "type": "object",
990
+ "properties": {
991
+ "enabled": {
992
+ "type": "boolean"
993
+ },
994
+ "requireMention": {
995
+ "type": "boolean"
996
+ },
997
+ "tools": {
998
+ "type": "object",
999
+ "properties": {
1000
+ "allow": {
1001
+ "type": "array",
1002
+ "items": {
1003
+ "type": "string"
1004
+ }
1005
+ },
1006
+ "alsoAllow": {
1007
+ "type": "array",
1008
+ "items": {
1009
+ "type": "string"
1010
+ }
1011
+ },
1012
+ "deny": {
1013
+ "type": "array",
1014
+ "items": {
1015
+ "type": "string"
1016
+ }
1017
+ }
1018
+ },
1019
+ "additionalProperties": false
1020
+ },
1021
+ "toolsBySender": {
1022
+ "type": "object",
1023
+ "propertyNames": {
1024
+ "type": "string"
1025
+ },
1026
+ "additionalProperties": {
1027
+ "type": "object",
1028
+ "properties": {
1029
+ "allow": {
1030
+ "type": "array",
1031
+ "items": {
1032
+ "type": "string"
1033
+ }
1034
+ },
1035
+ "alsoAllow": {
1036
+ "type": "array",
1037
+ "items": {
1038
+ "type": "string"
1039
+ }
1040
+ },
1041
+ "deny": {
1042
+ "type": "array",
1043
+ "items": {
1044
+ "type": "string"
1045
+ }
1046
+ }
1047
+ },
1048
+ "additionalProperties": false
1049
+ }
1050
+ },
1051
+ "allowBots": {
1052
+ "anyOf": [
1053
+ {
1054
+ "type": "boolean"
1055
+ },
1056
+ {
1057
+ "type": "string",
1058
+ "const": "mentions"
1059
+ }
1060
+ ]
1061
+ },
1062
+ "users": {
1063
+ "type": "array",
1064
+ "items": {
1065
+ "anyOf": [
1066
+ {
1067
+ "type": "string"
1068
+ },
1069
+ {
1070
+ "type": "number"
1071
+ }
1072
+ ]
1073
+ }
1074
+ },
1075
+ "skills": {
1076
+ "type": "array",
1077
+ "items": {
1078
+ "type": "string"
1079
+ }
1080
+ },
1081
+ "systemPrompt": {
1082
+ "type": "string"
1083
+ }
1084
+ },
1085
+ "additionalProperties": false
1086
+ }
1087
+ },
1088
+ "heartbeat": {
1089
+ "type": "object",
1090
+ "properties": {
1091
+ "showOk": {
1092
+ "type": "boolean"
1093
+ },
1094
+ "showAlerts": {
1095
+ "type": "boolean"
1096
+ },
1097
+ "useIndicator": {
1098
+ "type": "boolean"
1099
+ }
1100
+ },
1101
+ "additionalProperties": false
1102
+ },
1103
+ "healthMonitor": {
1104
+ "type": "object",
1105
+ "properties": {
1106
+ "enabled": {
1107
+ "type": "boolean"
1108
+ }
1109
+ },
1110
+ "additionalProperties": false
1111
+ },
1112
+ "responsePrefix": {
1113
+ "type": "string"
1114
+ },
1115
+ "ackReaction": {
1116
+ "type": "string"
1117
+ },
1118
+ "typingReaction": {
1119
+ "type": "string"
1120
+ },
1121
+ "accounts": {
1122
+ "type": "object",
1123
+ "propertyNames": {
1124
+ "type": "string"
1125
+ },
1126
+ "additionalProperties": {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "name": {
1130
+ "type": "string"
1131
+ },
1132
+ "mode": {
1133
+ "type": "string",
1134
+ "enum": [
1135
+ "socket",
1136
+ "http"
1137
+ ]
1138
+ },
1139
+ "socketMode": {
1140
+ "type": "object",
1141
+ "properties": {
1142
+ "clientPingTimeout": {
1143
+ "type": "integer",
1144
+ "exclusiveMinimum": 0,
1145
+ "maximum": 9007199254740991
1146
+ },
1147
+ "serverPingTimeout": {
1148
+ "type": "integer",
1149
+ "exclusiveMinimum": 0,
1150
+ "maximum": 9007199254740991
1151
+ },
1152
+ "pingPongLoggingEnabled": {
1153
+ "type": "boolean"
1154
+ }
1155
+ },
1156
+ "additionalProperties": false
1157
+ },
1158
+ "signingSecret": {
1159
+ "anyOf": [
1160
+ {
1161
+ "type": "string"
1162
+ },
1163
+ {
1164
+ "oneOf": [
1165
+ {
1166
+ "type": "object",
1167
+ "properties": {
1168
+ "source": {
1169
+ "type": "string",
1170
+ "const": "env"
1171
+ },
1172
+ "provider": {
1173
+ "type": "string",
1174
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1175
+ },
1176
+ "id": {
1177
+ "type": "string",
1178
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1179
+ }
1180
+ },
1181
+ "required": [
1182
+ "source",
1183
+ "provider",
1184
+ "id"
1185
+ ],
1186
+ "additionalProperties": false
1187
+ },
1188
+ {
1189
+ "type": "object",
1190
+ "properties": {
1191
+ "source": {
1192
+ "type": "string",
1193
+ "const": "file"
1194
+ },
1195
+ "provider": {
1196
+ "type": "string",
1197
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1198
+ },
1199
+ "id": {
1200
+ "type": "string"
1201
+ }
1202
+ },
1203
+ "required": [
1204
+ "source",
1205
+ "provider",
1206
+ "id"
1207
+ ],
1208
+ "additionalProperties": false
1209
+ },
1210
+ {
1211
+ "type": "object",
1212
+ "properties": {
1213
+ "source": {
1214
+ "type": "string",
1215
+ "const": "exec"
1216
+ },
1217
+ "provider": {
1218
+ "type": "string",
1219
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1220
+ },
1221
+ "id": {
1222
+ "type": "string"
1223
+ }
1224
+ },
1225
+ "required": [
1226
+ "source",
1227
+ "provider",
1228
+ "id"
1229
+ ],
1230
+ "additionalProperties": false
1231
+ }
1232
+ ]
1233
+ }
1234
+ ]
1235
+ },
1236
+ "webhookPath": {
1237
+ "type": "string"
1238
+ },
1239
+ "capabilities": {
1240
+ "anyOf": [
1241
+ {
1242
+ "type": "array",
1243
+ "items": {
1244
+ "type": "string"
1245
+ }
1246
+ },
1247
+ {
1248
+ "type": "object",
1249
+ "properties": {
1250
+ "interactiveReplies": {
1251
+ "type": "boolean"
1252
+ }
1253
+ },
1254
+ "additionalProperties": false
1255
+ }
1256
+ ]
1257
+ },
1258
+ "execApprovals": {
1259
+ "type": "object",
1260
+ "properties": {
1261
+ "enabled": {
1262
+ "type": "boolean"
1263
+ },
1264
+ "approvers": {
1265
+ "type": "array",
1266
+ "items": {
1267
+ "anyOf": [
1268
+ {
1269
+ "type": "string"
1270
+ },
1271
+ {
1272
+ "type": "number"
1273
+ }
1274
+ ]
1275
+ }
1276
+ },
1277
+ "agentFilter": {
1278
+ "type": "array",
1279
+ "items": {
1280
+ "type": "string"
1281
+ }
1282
+ },
1283
+ "sessionFilter": {
1284
+ "type": "array",
1285
+ "items": {
1286
+ "type": "string"
1287
+ }
1288
+ },
1289
+ "target": {
1290
+ "type": "string",
1291
+ "enum": [
1292
+ "dm",
1293
+ "channel",
1294
+ "both"
1295
+ ]
1296
+ }
1297
+ },
1298
+ "additionalProperties": false
1299
+ },
1300
+ "markdown": {
1301
+ "type": "object",
1302
+ "properties": {
1303
+ "tables": {
1304
+ "type": "string",
1305
+ "enum": [
1306
+ "off",
1307
+ "bullets",
1308
+ "code",
1309
+ "block"
1310
+ ]
1311
+ }
1312
+ },
1313
+ "additionalProperties": false
1314
+ },
1315
+ "enabled": {
1316
+ "type": "boolean"
1317
+ },
1318
+ "commands": {
1319
+ "type": "object",
1320
+ "properties": {
1321
+ "native": {
1322
+ "anyOf": [
1323
+ {
1324
+ "type": "boolean"
1325
+ },
1326
+ {
1327
+ "type": "string",
1328
+ "const": "auto"
1329
+ }
1330
+ ]
1331
+ },
1332
+ "nativeSkills": {
1333
+ "anyOf": [
1334
+ {
1335
+ "type": "boolean"
1336
+ },
1337
+ {
1338
+ "type": "string",
1339
+ "const": "auto"
1340
+ }
1341
+ ]
1342
+ }
1343
+ },
1344
+ "additionalProperties": false
1345
+ },
1346
+ "configWrites": {
1347
+ "type": "boolean"
1348
+ },
1349
+ "botToken": {
1350
+ "anyOf": [
1351
+ {
1352
+ "type": "string"
1353
+ },
1354
+ {
1355
+ "oneOf": [
1356
+ {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "source": {
1360
+ "type": "string",
1361
+ "const": "env"
1362
+ },
1363
+ "provider": {
1364
+ "type": "string",
1365
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1366
+ },
1367
+ "id": {
1368
+ "type": "string",
1369
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1370
+ }
1371
+ },
1372
+ "required": [
1373
+ "source",
1374
+ "provider",
1375
+ "id"
1376
+ ],
1377
+ "additionalProperties": false
1378
+ },
1379
+ {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "source": {
1383
+ "type": "string",
1384
+ "const": "file"
1385
+ },
1386
+ "provider": {
1387
+ "type": "string",
1388
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1389
+ },
1390
+ "id": {
1391
+ "type": "string"
1392
+ }
1393
+ },
1394
+ "required": [
1395
+ "source",
1396
+ "provider",
1397
+ "id"
1398
+ ],
1399
+ "additionalProperties": false
1400
+ },
1401
+ {
1402
+ "type": "object",
1403
+ "properties": {
1404
+ "source": {
1405
+ "type": "string",
1406
+ "const": "exec"
1407
+ },
1408
+ "provider": {
1409
+ "type": "string",
1410
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1411
+ },
1412
+ "id": {
1413
+ "type": "string"
1414
+ }
1415
+ },
1416
+ "required": [
1417
+ "source",
1418
+ "provider",
1419
+ "id"
1420
+ ],
1421
+ "additionalProperties": false
1422
+ }
1423
+ ]
1424
+ }
1425
+ ]
1426
+ },
1427
+ "appToken": {
1428
+ "anyOf": [
1429
+ {
1430
+ "type": "string"
1431
+ },
1432
+ {
1433
+ "oneOf": [
1434
+ {
1435
+ "type": "object",
1436
+ "properties": {
1437
+ "source": {
1438
+ "type": "string",
1439
+ "const": "env"
1440
+ },
1441
+ "provider": {
1442
+ "type": "string",
1443
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1444
+ },
1445
+ "id": {
1446
+ "type": "string",
1447
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1448
+ }
1449
+ },
1450
+ "required": [
1451
+ "source",
1452
+ "provider",
1453
+ "id"
1454
+ ],
1455
+ "additionalProperties": false
1456
+ },
1457
+ {
1458
+ "type": "object",
1459
+ "properties": {
1460
+ "source": {
1461
+ "type": "string",
1462
+ "const": "file"
1463
+ },
1464
+ "provider": {
1465
+ "type": "string",
1466
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1467
+ },
1468
+ "id": {
1469
+ "type": "string"
1470
+ }
1471
+ },
1472
+ "required": [
1473
+ "source",
1474
+ "provider",
1475
+ "id"
1476
+ ],
1477
+ "additionalProperties": false
1478
+ },
1479
+ {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "source": {
1483
+ "type": "string",
1484
+ "const": "exec"
1485
+ },
1486
+ "provider": {
1487
+ "type": "string",
1488
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1489
+ },
1490
+ "id": {
1491
+ "type": "string"
1492
+ }
1493
+ },
1494
+ "required": [
1495
+ "source",
1496
+ "provider",
1497
+ "id"
1498
+ ],
1499
+ "additionalProperties": false
1500
+ }
1501
+ ]
1502
+ }
1503
+ ]
1504
+ },
1505
+ "userToken": {
1506
+ "anyOf": [
1507
+ {
1508
+ "type": "string"
1509
+ },
1510
+ {
1511
+ "oneOf": [
1512
+ {
1513
+ "type": "object",
1514
+ "properties": {
1515
+ "source": {
1516
+ "type": "string",
1517
+ "const": "env"
1518
+ },
1519
+ "provider": {
1520
+ "type": "string",
1521
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1522
+ },
1523
+ "id": {
1524
+ "type": "string",
1525
+ "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
1526
+ }
1527
+ },
1528
+ "required": [
1529
+ "source",
1530
+ "provider",
1531
+ "id"
1532
+ ],
1533
+ "additionalProperties": false
1534
+ },
1535
+ {
1536
+ "type": "object",
1537
+ "properties": {
1538
+ "source": {
1539
+ "type": "string",
1540
+ "const": "file"
1541
+ },
1542
+ "provider": {
1543
+ "type": "string",
1544
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1545
+ },
1546
+ "id": {
1547
+ "type": "string"
1548
+ }
1549
+ },
1550
+ "required": [
1551
+ "source",
1552
+ "provider",
1553
+ "id"
1554
+ ],
1555
+ "additionalProperties": false
1556
+ },
1557
+ {
1558
+ "type": "object",
1559
+ "properties": {
1560
+ "source": {
1561
+ "type": "string",
1562
+ "const": "exec"
1563
+ },
1564
+ "provider": {
1565
+ "type": "string",
1566
+ "pattern": "^[a-z][a-z0-9_-]{0,63}$"
1567
+ },
1568
+ "id": {
1569
+ "type": "string"
1570
+ }
1571
+ },
1572
+ "required": [
1573
+ "source",
1574
+ "provider",
1575
+ "id"
1576
+ ],
1577
+ "additionalProperties": false
1578
+ }
1579
+ ]
1580
+ }
1581
+ ]
1582
+ },
1583
+ "userTokenReadOnly": {
1584
+ "default": true,
1585
+ "type": "boolean"
1586
+ },
1587
+ "allowBots": {
1588
+ "anyOf": [
1589
+ {
1590
+ "type": "boolean"
1591
+ },
1592
+ {
1593
+ "type": "string",
1594
+ "const": "mentions"
1595
+ }
1596
+ ]
1597
+ },
1598
+ "dangerouslyAllowNameMatching": {
1599
+ "type": "boolean"
1600
+ },
1601
+ "requireMention": {
1602
+ "type": "boolean"
1603
+ },
1604
+ "groupPolicy": {
1605
+ "type": "string",
1606
+ "enum": [
1607
+ "open",
1608
+ "disabled",
1609
+ "allowlist"
1610
+ ]
1611
+ },
1612
+ "contextVisibility": {
1613
+ "type": "string",
1614
+ "enum": [
1615
+ "all",
1616
+ "allowlist",
1617
+ "allowlist_quote"
1618
+ ]
1619
+ },
1620
+ "historyLimit": {
1621
+ "type": "integer",
1622
+ "minimum": 0,
1623
+ "maximum": 9007199254740991
1624
+ },
1625
+ "dmHistoryLimit": {
1626
+ "type": "integer",
1627
+ "minimum": 0,
1628
+ "maximum": 9007199254740991
1629
+ },
1630
+ "dms": {
1631
+ "type": "object",
1632
+ "propertyNames": {
1633
+ "type": "string"
1634
+ },
1635
+ "additionalProperties": {
1636
+ "type": "object",
1637
+ "properties": {
1638
+ "historyLimit": {
1639
+ "type": "integer",
1640
+ "minimum": 0,
1641
+ "maximum": 9007199254740991
1642
+ }
1643
+ },
1644
+ "additionalProperties": false
1645
+ }
1646
+ },
1647
+ "textChunkLimit": {
1648
+ "type": "integer",
1649
+ "exclusiveMinimum": 0,
1650
+ "maximum": 9007199254740991
1651
+ },
1652
+ "unfurlLinks": {
1653
+ "type": "boolean"
1654
+ },
1655
+ "unfurlMedia": {
1656
+ "type": "boolean"
1657
+ },
1658
+ "streaming": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "mode": {
1662
+ "type": "string",
1663
+ "enum": [
1664
+ "off",
1665
+ "partial",
1666
+ "block",
1667
+ "progress"
1668
+ ]
1669
+ },
1670
+ "chunkMode": {
1671
+ "type": "string",
1672
+ "enum": [
1673
+ "length",
1674
+ "newline"
1675
+ ]
1676
+ },
1677
+ "preview": {
1678
+ "type": "object",
1679
+ "properties": {
1680
+ "chunk": {
1681
+ "type": "object",
1682
+ "properties": {
1683
+ "minChars": {
1684
+ "type": "integer",
1685
+ "exclusiveMinimum": 0,
1686
+ "maximum": 9007199254740991
1687
+ },
1688
+ "maxChars": {
1689
+ "type": "integer",
1690
+ "exclusiveMinimum": 0,
1691
+ "maximum": 9007199254740991
1692
+ },
1693
+ "breakPreference": {
1694
+ "anyOf": [
1695
+ {
1696
+ "type": "string",
1697
+ "const": "paragraph"
1698
+ },
1699
+ {
1700
+ "type": "string",
1701
+ "const": "newline"
1702
+ },
1703
+ {
1704
+ "type": "string",
1705
+ "const": "sentence"
1706
+ }
1707
+ ]
1708
+ }
1709
+ },
1710
+ "additionalProperties": false
1711
+ },
1712
+ "toolProgress": {
1713
+ "type": "boolean"
1714
+ },
1715
+ "commandText": {
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "raw",
1719
+ "status"
1720
+ ]
1721
+ }
1722
+ },
1723
+ "additionalProperties": false
1724
+ },
1725
+ "progress": {
1726
+ "type": "object",
1727
+ "properties": {
1728
+ "label": {
1729
+ "anyOf": [
1730
+ {
1731
+ "type": "string"
1732
+ },
1733
+ {
1734
+ "type": "boolean",
1735
+ "const": false
1736
+ }
1737
+ ]
1738
+ },
1739
+ "labels": {
1740
+ "type": "array",
1741
+ "items": {
1742
+ "type": "string"
1743
+ }
1744
+ },
1745
+ "maxLines": {
1746
+ "type": "integer",
1747
+ "exclusiveMinimum": 0,
1748
+ "maximum": 9007199254740991
1749
+ },
1750
+ "render": {
1751
+ "type": "string",
1752
+ "enum": [
1753
+ "text",
1754
+ "rich"
1755
+ ]
1756
+ },
1757
+ "toolProgress": {
1758
+ "type": "boolean"
1759
+ },
1760
+ "commandText": {
1761
+ "type": "string",
1762
+ "enum": [
1763
+ "raw",
1764
+ "status"
1765
+ ]
1766
+ }
1767
+ },
1768
+ "additionalProperties": false
1769
+ },
1770
+ "block": {
1771
+ "type": "object",
1772
+ "properties": {
1773
+ "enabled": {
1774
+ "type": "boolean"
1775
+ },
1776
+ "coalesce": {
1777
+ "type": "object",
1778
+ "properties": {
1779
+ "minChars": {
1780
+ "type": "integer",
1781
+ "exclusiveMinimum": 0,
1782
+ "maximum": 9007199254740991
1783
+ },
1784
+ "maxChars": {
1785
+ "type": "integer",
1786
+ "exclusiveMinimum": 0,
1787
+ "maximum": 9007199254740991
1788
+ },
1789
+ "idleMs": {
1790
+ "type": "integer",
1791
+ "minimum": 0,
1792
+ "maximum": 9007199254740991
1793
+ }
1794
+ },
1795
+ "additionalProperties": false
1796
+ }
1797
+ },
1798
+ "additionalProperties": false
1799
+ },
1800
+ "nativeTransport": {
1801
+ "type": "boolean"
1802
+ }
1803
+ },
1804
+ "additionalProperties": false
1805
+ },
1806
+ "mediaMaxMb": {
1807
+ "type": "number",
1808
+ "exclusiveMinimum": 0
1809
+ },
1810
+ "reactionNotifications": {
1811
+ "type": "string",
1812
+ "enum": [
1813
+ "off",
1814
+ "own",
1815
+ "all",
1816
+ "allowlist"
1817
+ ]
1818
+ },
1819
+ "reactionAllowlist": {
1820
+ "type": "array",
1821
+ "items": {
1822
+ "anyOf": [
1823
+ {
1824
+ "type": "string"
1825
+ },
1826
+ {
1827
+ "type": "number"
1828
+ }
1829
+ ]
1830
+ }
1831
+ },
1832
+ "replyToMode": {
1833
+ "anyOf": [
1834
+ {
1835
+ "type": "string",
1836
+ "const": "off"
1837
+ },
1838
+ {
1839
+ "type": "string",
1840
+ "const": "first"
1841
+ },
1842
+ {
1843
+ "type": "string",
1844
+ "const": "all"
1845
+ },
1846
+ {
1847
+ "type": "string",
1848
+ "const": "batched"
1849
+ }
1850
+ ]
1851
+ },
1852
+ "replyToModeByChatType": {
1853
+ "type": "object",
1854
+ "properties": {
1855
+ "direct": {
1856
+ "anyOf": [
1857
+ {
1858
+ "type": "string",
1859
+ "const": "off"
1860
+ },
1861
+ {
1862
+ "type": "string",
1863
+ "const": "first"
1864
+ },
1865
+ {
1866
+ "type": "string",
1867
+ "const": "all"
1868
+ },
1869
+ {
1870
+ "type": "string",
1871
+ "const": "batched"
1872
+ }
1873
+ ]
1874
+ },
1875
+ "group": {
1876
+ "anyOf": [
1877
+ {
1878
+ "type": "string",
1879
+ "const": "off"
1880
+ },
1881
+ {
1882
+ "type": "string",
1883
+ "const": "first"
1884
+ },
1885
+ {
1886
+ "type": "string",
1887
+ "const": "all"
1888
+ },
1889
+ {
1890
+ "type": "string",
1891
+ "const": "batched"
1892
+ }
1893
+ ]
1894
+ },
1895
+ "channel": {
1896
+ "anyOf": [
1897
+ {
1898
+ "type": "string",
1899
+ "const": "off"
1900
+ },
1901
+ {
1902
+ "type": "string",
1903
+ "const": "first"
1904
+ },
1905
+ {
1906
+ "type": "string",
1907
+ "const": "all"
1908
+ },
1909
+ {
1910
+ "type": "string",
1911
+ "const": "batched"
1912
+ }
1913
+ ]
1914
+ }
1915
+ },
1916
+ "additionalProperties": false
1917
+ },
1918
+ "thread": {
1919
+ "type": "object",
1920
+ "properties": {
1921
+ "historyScope": {
1922
+ "type": "string",
1923
+ "enum": [
1924
+ "thread",
1925
+ "channel"
1926
+ ]
1927
+ },
1928
+ "inheritParent": {
1929
+ "type": "boolean"
1930
+ },
1931
+ "initialHistoryLimit": {
1932
+ "type": "integer",
1933
+ "minimum": 0,
1934
+ "maximum": 9007199254740991
1935
+ },
1936
+ "requireExplicitMention": {
1937
+ "type": "boolean"
1938
+ }
1939
+ },
1940
+ "additionalProperties": false
1941
+ },
1942
+ "actions": {
1943
+ "type": "object",
1944
+ "properties": {
1945
+ "reactions": {
1946
+ "type": "boolean"
1947
+ },
1948
+ "messages": {
1949
+ "type": "boolean"
1950
+ },
1951
+ "pins": {
1952
+ "type": "boolean"
1953
+ },
1954
+ "search": {
1955
+ "type": "boolean"
1956
+ },
1957
+ "permissions": {
1958
+ "type": "boolean"
1959
+ },
1960
+ "memberInfo": {
1961
+ "type": "boolean"
1962
+ },
1963
+ "channelInfo": {
1964
+ "type": "boolean"
1965
+ },
1966
+ "emojiList": {
1967
+ "type": "boolean"
1968
+ }
1969
+ },
1970
+ "additionalProperties": false
1971
+ },
1972
+ "slashCommand": {
1973
+ "type": "object",
1974
+ "properties": {
1975
+ "enabled": {
1976
+ "type": "boolean"
1977
+ },
1978
+ "name": {
1979
+ "type": "string"
1980
+ },
1981
+ "sessionPrefix": {
1982
+ "type": "string"
1983
+ },
1984
+ "ephemeral": {
1985
+ "type": "boolean"
1986
+ }
1987
+ },
1988
+ "additionalProperties": false
1989
+ },
1990
+ "dmPolicy": {
1991
+ "type": "string",
1992
+ "enum": [
1993
+ "pairing",
1994
+ "allowlist",
1995
+ "open",
1996
+ "disabled"
1997
+ ]
1998
+ },
1999
+ "allowFrom": {
2000
+ "type": "array",
2001
+ "items": {
2002
+ "anyOf": [
2003
+ {
2004
+ "type": "string"
2005
+ },
2006
+ {
2007
+ "type": "number"
2008
+ }
2009
+ ]
2010
+ }
2011
+ },
2012
+ "defaultTo": {
2013
+ "type": "string"
2014
+ },
2015
+ "dm": {
2016
+ "type": "object",
2017
+ "properties": {
2018
+ "enabled": {
2019
+ "type": "boolean"
2020
+ },
2021
+ "policy": {
2022
+ "type": "string",
2023
+ "enum": [
2024
+ "pairing",
2025
+ "allowlist",
2026
+ "open",
2027
+ "disabled"
2028
+ ]
2029
+ },
2030
+ "allowFrom": {
2031
+ "type": "array",
2032
+ "items": {
2033
+ "anyOf": [
2034
+ {
2035
+ "type": "string"
2036
+ },
2037
+ {
2038
+ "type": "number"
2039
+ }
2040
+ ]
2041
+ }
2042
+ },
2043
+ "groupEnabled": {
2044
+ "type": "boolean"
2045
+ },
2046
+ "groupChannels": {
2047
+ "type": "array",
2048
+ "items": {
2049
+ "anyOf": [
2050
+ {
2051
+ "type": "string"
2052
+ },
2053
+ {
2054
+ "type": "number"
2055
+ }
2056
+ ]
2057
+ }
2058
+ },
2059
+ "replyToMode": {
2060
+ "anyOf": [
2061
+ {
2062
+ "type": "string",
2063
+ "const": "off"
2064
+ },
2065
+ {
2066
+ "type": "string",
2067
+ "const": "first"
2068
+ },
2069
+ {
2070
+ "type": "string",
2071
+ "const": "all"
2072
+ },
2073
+ {
2074
+ "type": "string",
2075
+ "const": "batched"
2076
+ }
2077
+ ]
2078
+ }
2079
+ },
2080
+ "additionalProperties": false
2081
+ },
2082
+ "channels": {
2083
+ "type": "object",
2084
+ "propertyNames": {
2085
+ "type": "string"
2086
+ },
2087
+ "additionalProperties": {
2088
+ "type": "object",
2089
+ "properties": {
2090
+ "enabled": {
2091
+ "type": "boolean"
2092
+ },
2093
+ "requireMention": {
2094
+ "type": "boolean"
2095
+ },
2096
+ "tools": {
2097
+ "type": "object",
2098
+ "properties": {
2099
+ "allow": {
2100
+ "type": "array",
2101
+ "items": {
2102
+ "type": "string"
2103
+ }
2104
+ },
2105
+ "alsoAllow": {
2106
+ "type": "array",
2107
+ "items": {
2108
+ "type": "string"
2109
+ }
2110
+ },
2111
+ "deny": {
2112
+ "type": "array",
2113
+ "items": {
2114
+ "type": "string"
2115
+ }
2116
+ }
2117
+ },
2118
+ "additionalProperties": false
2119
+ },
2120
+ "toolsBySender": {
2121
+ "type": "object",
2122
+ "propertyNames": {
2123
+ "type": "string"
2124
+ },
2125
+ "additionalProperties": {
2126
+ "type": "object",
2127
+ "properties": {
2128
+ "allow": {
2129
+ "type": "array",
2130
+ "items": {
2131
+ "type": "string"
2132
+ }
2133
+ },
2134
+ "alsoAllow": {
2135
+ "type": "array",
2136
+ "items": {
2137
+ "type": "string"
2138
+ }
2139
+ },
2140
+ "deny": {
2141
+ "type": "array",
2142
+ "items": {
2143
+ "type": "string"
2144
+ }
2145
+ }
2146
+ },
2147
+ "additionalProperties": false
2148
+ }
2149
+ },
2150
+ "allowBots": {
2151
+ "anyOf": [
2152
+ {
2153
+ "type": "boolean"
2154
+ },
2155
+ {
2156
+ "type": "string",
2157
+ "const": "mentions"
2158
+ }
2159
+ ]
2160
+ },
2161
+ "users": {
2162
+ "type": "array",
2163
+ "items": {
2164
+ "anyOf": [
2165
+ {
2166
+ "type": "string"
2167
+ },
2168
+ {
2169
+ "type": "number"
2170
+ }
2171
+ ]
2172
+ }
2173
+ },
2174
+ "skills": {
2175
+ "type": "array",
2176
+ "items": {
2177
+ "type": "string"
2178
+ }
2179
+ },
2180
+ "systemPrompt": {
2181
+ "type": "string"
2182
+ }
2183
+ },
2184
+ "additionalProperties": false
2185
+ }
2186
+ },
2187
+ "heartbeat": {
2188
+ "type": "object",
2189
+ "properties": {
2190
+ "showOk": {
2191
+ "type": "boolean"
2192
+ },
2193
+ "showAlerts": {
2194
+ "type": "boolean"
2195
+ },
2196
+ "useIndicator": {
2197
+ "type": "boolean"
2198
+ }
2199
+ },
2200
+ "additionalProperties": false
2201
+ },
2202
+ "healthMonitor": {
2203
+ "type": "object",
2204
+ "properties": {
2205
+ "enabled": {
2206
+ "type": "boolean"
2207
+ }
2208
+ },
2209
+ "additionalProperties": false
2210
+ },
2211
+ "responsePrefix": {
2212
+ "type": "string"
2213
+ },
2214
+ "ackReaction": {
2215
+ "type": "string"
2216
+ },
2217
+ "typingReaction": {
2218
+ "type": "string"
2219
+ }
2220
+ },
2221
+ "required": [
2222
+ "userTokenReadOnly"
2223
+ ],
2224
+ "additionalProperties": false
2225
+ }
2226
+ },
2227
+ "defaultAccount": {
2228
+ "type": "string"
2229
+ }
2230
+ },
2231
+ "required": [
2232
+ "mode",
2233
+ "webhookPath",
2234
+ "userTokenReadOnly",
2235
+ "groupPolicy"
2236
+ ],
2237
+ "additionalProperties": false
2238
+ },
2239
+ "label": "Slack",
2240
+ "description": "supported (Socket Mode).",
2241
+ "uiHints": {
2242
+ "": {
2243
+ "label": "Slack",
2244
+ "help": "Slack channel provider configuration for bot/app tokens, streaming behavior, and DM policy controls. Keep token handling and thread behavior explicit to avoid noisy workspace interactions."
2245
+ },
2246
+ "dm.policy": {
2247
+ "label": "Slack DM Policy",
2248
+ "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.slack.allowFrom=[\"*\"] (legacy: channels.slack.dm.allowFrom)."
2249
+ },
2250
+ "dmPolicy": {
2251
+ "label": "Slack DM Policy",
2252
+ "help": "Direct message access control (\"pairing\" recommended). \"open\" requires channels.slack.allowFrom=[\"*\"]."
2253
+ },
2254
+ "configWrites": {
2255
+ "label": "Slack Config Writes",
2256
+ "help": "Allow Slack to write config in response to channel events/commands (default: true)."
2257
+ },
2258
+ "commands.native": {
2259
+ "label": "Slack Native Commands",
2260
+ "help": "Override native commands for Slack (bool or \"auto\")."
2261
+ },
2262
+ "commands.nativeSkills": {
2263
+ "label": "Slack Native Skill Commands",
2264
+ "help": "Override native skill commands for Slack (bool or \"auto\")."
2265
+ },
2266
+ "allowBots": {
2267
+ "label": "Slack Allow Bot Messages",
2268
+ "help": "Allow bot-authored messages to trigger Slack replies (default: false)."
2269
+ },
2270
+ "socketMode": {
2271
+ "label": "Slack Socket Mode Transport",
2272
+ "help": "Slack Socket Mode transport tuning passed to the Slack SDK. Use only when investigating ping/pong timeout or stale websocket behavior."
2273
+ },
2274
+ "socketMode.clientPingTimeout": {
2275
+ "label": "Slack Socket Mode Pong Timeout",
2276
+ "help": "Milliseconds the Slack SDK waits for a pong after its client ping before treating the websocket as stale (OpenClaw default: 15000). Increase on hosts with event-loop starvation or slow network scheduling."
2277
+ },
2278
+ "socketMode.serverPingTimeout": {
2279
+ "label": "Slack Socket Mode Server Ping Timeout",
2280
+ "help": "Milliseconds the Slack SDK waits for Slack server pings before treating the websocket as stale."
2281
+ },
2282
+ "socketMode.pingPongLoggingEnabled": {
2283
+ "label": "Slack Socket Mode Ping/Pong Logging",
2284
+ "help": "Enable Slack SDK ping/pong transport logs while debugging Socket Mode websocket health."
2285
+ },
2286
+ "botToken": {
2287
+ "label": "Slack Bot Token",
2288
+ "help": "Slack bot token used for standard chat actions in the configured workspace. Keep this credential scoped and rotate if workspace app permissions change."
2289
+ },
2290
+ "appToken": {
2291
+ "label": "Slack App Token",
2292
+ "help": "Slack app-level token used for Socket Mode connections and event transport when enabled. Use least-privilege app scopes and store this token as a secret."
2293
+ },
2294
+ "userToken": {
2295
+ "label": "Slack User Token",
2296
+ "help": "Optional Slack user token for workflows requiring user-context API access beyond bot permissions. Use sparingly and audit scopes because this token can carry broader authority."
2297
+ },
2298
+ "userTokenReadOnly": {
2299
+ "label": "Slack User Token Read Only",
2300
+ "help": "When true, treat configured Slack user token usage as read-only helper behavior where possible. Keep enabled if you only need supplemental reads without user-context writes."
2301
+ },
2302
+ "capabilities.interactiveReplies": {
2303
+ "label": "Slack Interactive Replies",
2304
+ "help": "Enable agent-authored Slack interactive reply directives (`[[slack_buttons: ...]]`, `[[slack_select: ...]]`). Default: false."
2305
+ },
2306
+ "execApprovals": {
2307
+ "label": "Slack Exec Approvals",
2308
+ "help": "Slack-native exec approval routing and approver authorization. When unset, OpenClaw auto-enables DM-first native approvals if approvers can be resolved for this workspace account."
2309
+ },
2310
+ "execApprovals.enabled": {
2311
+ "label": "Slack Exec Approvals Enabled",
2312
+ "help": "Controls Slack native exec approvals for this account: unset or \"auto\" enables DM-first native approvals when approvers can be resolved, true forces native approvals on, and false disables them."
2313
+ },
2314
+ "execApprovals.approvers": {
2315
+ "label": "Slack Exec Approval Approvers",
2316
+ "help": "Slack user IDs allowed to approve exec requests for this workspace account. Use Slack user IDs or user targets such as `U123`, `user:U123`, or `<@U123>`. If you leave this unset, OpenClaw falls back to commands.ownerAllowFrom when possible."
2317
+ },
2318
+ "execApprovals.agentFilter": {
2319
+ "label": "Slack Exec Approval Agent Filter",
2320
+ "help": "Optional allowlist of agent IDs eligible for Slack exec approvals, for example `[\"main\", \"ops-agent\"]`. Use this to keep approval prompts scoped to the agents you actually operate from Slack."
2321
+ },
2322
+ "execApprovals.sessionFilter": {
2323
+ "label": "Slack Exec Approval Session Filter",
2324
+ "help": "Optional session-key filters matched as substring or regex-style patterns before Slack approval routing is used. Use narrow patterns so Slack approvals only appear for intended sessions."
2325
+ },
2326
+ "execApprovals.target": {
2327
+ "label": "Slack Exec Approval Target",
2328
+ "help": "Controls where Slack approval prompts are sent: \"dm\" sends to approver DMs (default), \"channel\" sends to the originating Slack chat/thread, and \"both\" sends to both. Channel delivery exposes the command text to the chat, so only use it in trusted channels."
2329
+ },
2330
+ "streaming": {
2331
+ "label": "Slack Streaming Mode",
2332
+ "help": "Unified Slack stream preview mode: \"off\" | \"partial\" | \"block\" | \"progress\". Legacy boolean/streamMode keys are auto-mapped."
2333
+ },
2334
+ "streaming.mode": {
2335
+ "label": "Slack Streaming Mode",
2336
+ "help": "Canonical Slack preview mode: \"off\" | \"partial\" | \"block\" | \"progress\"."
2337
+ },
2338
+ "streaming.chunkMode": {
2339
+ "label": "Slack Chunk Mode",
2340
+ "help": "Chunking mode for outbound Slack text delivery: \"length\" (default) or \"newline\"."
2341
+ },
2342
+ "streaming.block.enabled": {
2343
+ "label": "Slack Block Streaming Enabled",
2344
+ "help": "Enable chunked block-style Slack preview delivery when channels.slack.streaming.mode=\"block\"."
2345
+ },
2346
+ "streaming.block.coalesce": {
2347
+ "label": "Slack Block Streaming Coalesce",
2348
+ "help": "Merge streamed Slack block replies before final delivery."
2349
+ },
2350
+ "streaming.nativeTransport": {
2351
+ "label": "Slack Native Streaming",
2352
+ "help": "Enable native Slack text streaming (chat.startStream/chat.appendStream/chat.stopStream) when channels.slack.streaming.mode is partial (default: true). Native streaming and Slack assistant thread status require a reply thread target; top-level DMs can still use draft post-and-edit preview streaming."
2353
+ },
2354
+ "streaming.preview.toolProgress": {
2355
+ "label": "Slack Draft Tool Progress",
2356
+ "help": "Show tool/progress activity in the live draft preview message (default: true). Set false to hide interim tool updates while the draft preview stays active."
2357
+ },
2358
+ "streaming.preview.commandText": {
2359
+ "label": "Slack Draft Command Text",
2360
+ "help": "Command/exec detail in preview tool-progress lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
2361
+ },
2362
+ "streaming.progress.label": {
2363
+ "label": "Slack Progress Label",
2364
+ "help": "Initial progress draft title. Use \"auto\" for built-in single-word labels, a custom string, or false to hide the title."
2365
+ },
2366
+ "streaming.progress.labels": {
2367
+ "label": "Slack Progress Label Pool",
2368
+ "help": "Candidate labels for streaming.progress.label=\"auto\". Leave unset to use OpenClaw built-in progress labels."
2369
+ },
2370
+ "streaming.progress.maxLines": {
2371
+ "label": "Slack Progress Max Lines",
2372
+ "help": "Maximum number of compact progress lines to keep below the draft label (default: 8)."
2373
+ },
2374
+ "streaming.progress.render": {
2375
+ "label": "Slack Progress Renderer",
2376
+ "help": "Progress draft renderer: \"text\" uses one portable text body; \"rich\" renders structured Slack Block Kit fields with the same text fallback."
2377
+ },
2378
+ "streaming.progress.toolProgress": {
2379
+ "label": "Slack Progress Tool Lines",
2380
+ "help": "Show compact tool/progress lines in progress draft mode (default: true). Set false to keep only the label until final delivery."
2381
+ },
2382
+ "streaming.progress.commandText": {
2383
+ "label": "Slack Progress Command Text",
2384
+ "help": "Command/exec detail in progress draft lines: \"raw\" preserves released behavior; \"status\" shows only the tool label."
2385
+ },
2386
+ "thread.historyScope": {
2387
+ "label": "Slack Thread History Scope",
2388
+ "help": "Scope for Slack thread history context (\"thread\" isolates per thread; \"channel\" reuses channel history)."
2389
+ },
2390
+ "thread.inheritParent": {
2391
+ "label": "Slack Thread Parent Inheritance",
2392
+ "help": "If true, Slack thread sessions inherit the parent channel transcript (default: false)."
2393
+ },
2394
+ "thread.initialHistoryLimit": {
2395
+ "label": "Slack Thread Initial History Limit",
2396
+ "help": "Maximum number of existing Slack thread messages to fetch when starting a new thread session (default: 20, set to 0 to disable)."
2397
+ },
2398
+ "thread.requireExplicitMention": {
2399
+ "label": "Slack Thread Require Explicit Mention",
2400
+ "help": "If true, require an explicit @mention even inside threads where the bot has participated. Suppresses implicit thread mention behavior so the bot only responds to explicit @bot mentions in threads (default: false)."
2401
+ }
2402
+ }
2403
+ }
2404
+ }
2405
+ }