@kodelyth/googlechat 2026.5.39 → 2026.5.42

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 (91) hide show
  1. package/api.ts +3 -0
  2. package/channel-config-api.ts +1 -0
  3. package/channel-plugin-api.ts +1 -0
  4. package/config-api.ts +2 -0
  5. package/contract-api.ts +5 -0
  6. package/dist/actions-YK1wn4ed.js +160 -0
  7. package/dist/api-BkZX4VNX.js +633 -0
  8. package/dist/api.js +3 -0
  9. package/dist/channel-DFZdjXD6.js +584 -0
  10. package/dist/channel-config-api.js +6 -0
  11. package/dist/channel-plugin-api.js +2 -0
  12. package/dist/channel.runtime-en3RNg9S.js +998 -0
  13. package/dist/contract-api.js +3 -0
  14. package/dist/doctor-contract-8SF6XoKj.js +151 -0
  15. package/dist/doctor-contract-api.js +2 -0
  16. package/dist/index.js +22 -0
  17. package/dist/runtime-api-DUH2Cg-0.js +29 -0
  18. package/dist/runtime-api.js +2 -0
  19. package/dist/secret-contract-DWX4ikgT.js +99 -0
  20. package/dist/secret-contract-api.js +2 -0
  21. package/dist/setup-entry.js +15 -0
  22. package/dist/setup-plugin-api.js +75 -0
  23. package/dist/setup-surface-B3Fa7XRx.js +321 -0
  24. package/dist/test-api.js +3 -0
  25. package/doctor-contract-api.ts +1 -0
  26. package/index.ts +20 -0
  27. package/klaw.plugin.json +2 -967
  28. package/package.json +4 -4
  29. package/runtime-api.ts +55 -0
  30. package/secret-contract-api.ts +5 -0
  31. package/setup-entry.ts +13 -0
  32. package/setup-plugin-api.ts +3 -0
  33. package/src/accounts.ts +181 -0
  34. package/src/actions.test.ts +289 -0
  35. package/src/actions.ts +227 -0
  36. package/src/api.ts +316 -0
  37. package/src/approval-auth.test.ts +24 -0
  38. package/src/approval-auth.ts +32 -0
  39. package/src/auth.ts +218 -0
  40. package/src/channel-config.test.ts +39 -0
  41. package/src/channel.adapters.ts +340 -0
  42. package/src/channel.deps.runtime.ts +29 -0
  43. package/src/channel.runtime.ts +17 -0
  44. package/src/channel.setup.ts +98 -0
  45. package/src/channel.test.ts +784 -0
  46. package/src/channel.ts +277 -0
  47. package/src/config-schema.test.ts +31 -0
  48. package/src/config-schema.ts +3 -0
  49. package/src/doctor-contract.test.ts +75 -0
  50. package/src/doctor-contract.ts +182 -0
  51. package/src/doctor.ts +57 -0
  52. package/src/gateway.ts +63 -0
  53. package/src/google-auth.runtime.test.ts +543 -0
  54. package/src/google-auth.runtime.ts +568 -0
  55. package/src/group-policy.ts +17 -0
  56. package/src/monitor-access.test.ts +491 -0
  57. package/src/monitor-access.ts +465 -0
  58. package/src/monitor-durable.test.ts +39 -0
  59. package/src/monitor-durable.ts +23 -0
  60. package/src/monitor-reply-delivery.ts +156 -0
  61. package/src/monitor-routing.ts +65 -0
  62. package/src/monitor-types.ts +33 -0
  63. package/src/monitor-webhook.test.ts +587 -0
  64. package/src/monitor-webhook.ts +303 -0
  65. package/src/monitor.reply-delivery.test.ts +144 -0
  66. package/src/monitor.test.ts +159 -0
  67. package/src/monitor.ts +527 -0
  68. package/src/monitor.webhook-routing.test.ts +257 -0
  69. package/src/runtime.ts +9 -0
  70. package/src/secret-contract.test.ts +60 -0
  71. package/src/secret-contract.ts +161 -0
  72. package/src/setup-core.ts +40 -0
  73. package/src/setup-surface.ts +243 -0
  74. package/src/setup.test.ts +619 -0
  75. package/src/targets.test.ts +453 -0
  76. package/src/targets.ts +66 -0
  77. package/src/types.config.ts +3 -0
  78. package/src/types.ts +73 -0
  79. package/test-api.ts +2 -0
  80. package/tsconfig.json +16 -0
  81. package/api.js +0 -7
  82. package/channel-config-api.js +0 -7
  83. package/channel-plugin-api.js +0 -7
  84. package/contract-api.js +0 -7
  85. package/doctor-contract-api.js +0 -7
  86. package/index.js +0 -7
  87. package/runtime-api.js +0 -7
  88. package/secret-contract-api.js +0 -7
  89. package/setup-entry.js +0 -7
  90. package/setup-plugin-api.js +0 -7
  91. package/test-api.js +0 -7
package/klaw.plugin.json CHANGED
@@ -3,978 +3,13 @@
3
3
  "activation": {
4
4
  "onStartup": false
5
5
  },
6
- "channels": [
7
- "googlechat"
8
- ],
6
+ "channels": ["googlechat"],
9
7
  "channelEnvVars": {
10
- "googlechat": [
11
- "GOOGLE_CHAT_SERVICE_ACCOUNT",
12
- "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE"
13
- ]
8
+ "googlechat": ["GOOGLE_CHAT_SERVICE_ACCOUNT", "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE"]
14
9
  },
15
10
  "configSchema": {
16
11
  "type": "object",
17
12
  "additionalProperties": false,
18
13
  "properties": {}
19
- },
20
- "channelConfigs": {
21
- "googlechat": {
22
- "schema": {
23
- "$schema": "http://json-schema.org/draft-07/schema#",
24
- "type": "object",
25
- "properties": {
26
- "name": {
27
- "type": "string"
28
- },
29
- "capabilities": {
30
- "type": "array",
31
- "items": {
32
- "type": "string"
33
- }
34
- },
35
- "enabled": {
36
- "type": "boolean"
37
- },
38
- "configWrites": {
39
- "type": "boolean"
40
- },
41
- "allowBots": {
42
- "type": "boolean"
43
- },
44
- "botLoopProtection": {
45
- "type": "object",
46
- "properties": {
47
- "enabled": {
48
- "type": "boolean"
49
- },
50
- "maxEventsPerWindow": {
51
- "type": "integer",
52
- "exclusiveMinimum": 0,
53
- "maximum": 9007199254740991
54
- },
55
- "windowSeconds": {
56
- "type": "integer",
57
- "exclusiveMinimum": 0,
58
- "maximum": 9007199254740991
59
- },
60
- "cooldownSeconds": {
61
- "type": "integer",
62
- "exclusiveMinimum": 0,
63
- "maximum": 9007199254740991
64
- }
65
- },
66
- "additionalProperties": false
67
- },
68
- "dangerouslyAllowNameMatching": {
69
- "type": "boolean"
70
- },
71
- "requireMention": {
72
- "type": "boolean"
73
- },
74
- "groupPolicy": {
75
- "default": "allowlist",
76
- "type": "string",
77
- "enum": [
78
- "open",
79
- "disabled",
80
- "allowlist"
81
- ]
82
- },
83
- "groupAllowFrom": {
84
- "type": "array",
85
- "items": {
86
- "anyOf": [
87
- {
88
- "type": "string"
89
- },
90
- {
91
- "type": "number"
92
- }
93
- ]
94
- }
95
- },
96
- "groups": {
97
- "type": "object",
98
- "propertyNames": {
99
- "type": "string"
100
- },
101
- "additionalProperties": {
102
- "type": "object",
103
- "properties": {
104
- "enabled": {
105
- "type": "boolean"
106
- },
107
- "requireMention": {
108
- "type": "boolean"
109
- },
110
- "botLoopProtection": {
111
- "type": "object",
112
- "properties": {
113
- "enabled": {
114
- "type": "boolean"
115
- },
116
- "maxEventsPerWindow": {
117
- "type": "integer",
118
- "exclusiveMinimum": 0,
119
- "maximum": 9007199254740991
120
- },
121
- "windowSeconds": {
122
- "type": "integer",
123
- "exclusiveMinimum": 0,
124
- "maximum": 9007199254740991
125
- },
126
- "cooldownSeconds": {
127
- "type": "integer",
128
- "exclusiveMinimum": 0,
129
- "maximum": 9007199254740991
130
- }
131
- },
132
- "additionalProperties": false
133
- },
134
- "users": {
135
- "type": "array",
136
- "items": {
137
- "anyOf": [
138
- {
139
- "type": "string"
140
- },
141
- {
142
- "type": "number"
143
- }
144
- ]
145
- }
146
- },
147
- "systemPrompt": {
148
- "type": "string"
149
- }
150
- },
151
- "additionalProperties": false
152
- }
153
- },
154
- "defaultTo": {
155
- "type": "string"
156
- },
157
- "serviceAccount": {
158
- "anyOf": [
159
- {
160
- "type": "string"
161
- },
162
- {
163
- "type": "object",
164
- "propertyNames": {
165
- "type": "string"
166
- },
167
- "additionalProperties": {}
168
- },
169
- {
170
- "oneOf": [
171
- {
172
- "type": "object",
173
- "properties": {
174
- "source": {
175
- "type": "string",
176
- "const": "env"
177
- },
178
- "provider": {
179
- "type": "string",
180
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
181
- },
182
- "id": {
183
- "type": "string",
184
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
185
- }
186
- },
187
- "required": [
188
- "source",
189
- "provider",
190
- "id"
191
- ],
192
- "additionalProperties": false
193
- },
194
- {
195
- "type": "object",
196
- "properties": {
197
- "source": {
198
- "type": "string",
199
- "const": "file"
200
- },
201
- "provider": {
202
- "type": "string",
203
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
204
- },
205
- "id": {
206
- "type": "string"
207
- }
208
- },
209
- "required": [
210
- "source",
211
- "provider",
212
- "id"
213
- ],
214
- "additionalProperties": false
215
- },
216
- {
217
- "type": "object",
218
- "properties": {
219
- "source": {
220
- "type": "string",
221
- "const": "exec"
222
- },
223
- "provider": {
224
- "type": "string",
225
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
226
- },
227
- "id": {
228
- "type": "string"
229
- }
230
- },
231
- "required": [
232
- "source",
233
- "provider",
234
- "id"
235
- ],
236
- "additionalProperties": false
237
- }
238
- ]
239
- }
240
- ]
241
- },
242
- "serviceAccountRef": {
243
- "oneOf": [
244
- {
245
- "type": "object",
246
- "properties": {
247
- "source": {
248
- "type": "string",
249
- "const": "env"
250
- },
251
- "provider": {
252
- "type": "string",
253
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
254
- },
255
- "id": {
256
- "type": "string",
257
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
258
- }
259
- },
260
- "required": [
261
- "source",
262
- "provider",
263
- "id"
264
- ],
265
- "additionalProperties": false
266
- },
267
- {
268
- "type": "object",
269
- "properties": {
270
- "source": {
271
- "type": "string",
272
- "const": "file"
273
- },
274
- "provider": {
275
- "type": "string",
276
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
277
- },
278
- "id": {
279
- "type": "string"
280
- }
281
- },
282
- "required": [
283
- "source",
284
- "provider",
285
- "id"
286
- ],
287
- "additionalProperties": false
288
- },
289
- {
290
- "type": "object",
291
- "properties": {
292
- "source": {
293
- "type": "string",
294
- "const": "exec"
295
- },
296
- "provider": {
297
- "type": "string",
298
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
299
- },
300
- "id": {
301
- "type": "string"
302
- }
303
- },
304
- "required": [
305
- "source",
306
- "provider",
307
- "id"
308
- ],
309
- "additionalProperties": false
310
- }
311
- ]
312
- },
313
- "serviceAccountFile": {
314
- "type": "string"
315
- },
316
- "audienceType": {
317
- "type": "string",
318
- "enum": [
319
- "app-url",
320
- "project-number"
321
- ]
322
- },
323
- "audience": {
324
- "type": "string"
325
- },
326
- "appPrincipal": {
327
- "type": "string"
328
- },
329
- "webhookPath": {
330
- "type": "string"
331
- },
332
- "webhookUrl": {
333
- "type": "string"
334
- },
335
- "botUser": {
336
- "type": "string"
337
- },
338
- "historyLimit": {
339
- "type": "integer",
340
- "minimum": 0,
341
- "maximum": 9007199254740991
342
- },
343
- "dmHistoryLimit": {
344
- "type": "integer",
345
- "minimum": 0,
346
- "maximum": 9007199254740991
347
- },
348
- "dms": {
349
- "type": "object",
350
- "propertyNames": {
351
- "type": "string"
352
- },
353
- "additionalProperties": {
354
- "type": "object",
355
- "properties": {
356
- "historyLimit": {
357
- "type": "integer",
358
- "minimum": 0,
359
- "maximum": 9007199254740991
360
- }
361
- },
362
- "additionalProperties": false
363
- }
364
- },
365
- "textChunkLimit": {
366
- "type": "integer",
367
- "exclusiveMinimum": 0,
368
- "maximum": 9007199254740991
369
- },
370
- "chunkMode": {
371
- "type": "string",
372
- "enum": [
373
- "length",
374
- "newline"
375
- ]
376
- },
377
- "blockStreaming": {
378
- "type": "boolean"
379
- },
380
- "blockStreamingCoalesce": {
381
- "type": "object",
382
- "properties": {
383
- "minChars": {
384
- "type": "integer",
385
- "exclusiveMinimum": 0,
386
- "maximum": 9007199254740991
387
- },
388
- "maxChars": {
389
- "type": "integer",
390
- "exclusiveMinimum": 0,
391
- "maximum": 9007199254740991
392
- },
393
- "idleMs": {
394
- "type": "integer",
395
- "minimum": 0,
396
- "maximum": 9007199254740991
397
- }
398
- },
399
- "additionalProperties": false
400
- },
401
- "mediaMaxMb": {
402
- "type": "number",
403
- "exclusiveMinimum": 0
404
- },
405
- "replyToMode": {
406
- "anyOf": [
407
- {
408
- "type": "string",
409
- "const": "off"
410
- },
411
- {
412
- "type": "string",
413
- "const": "first"
414
- },
415
- {
416
- "type": "string",
417
- "const": "all"
418
- },
419
- {
420
- "type": "string",
421
- "const": "batched"
422
- }
423
- ]
424
- },
425
- "actions": {
426
- "type": "object",
427
- "properties": {
428
- "reactions": {
429
- "type": "boolean"
430
- }
431
- },
432
- "additionalProperties": false
433
- },
434
- "dm": {
435
- "type": "object",
436
- "properties": {
437
- "enabled": {
438
- "type": "boolean"
439
- },
440
- "policy": {
441
- "default": "pairing",
442
- "type": "string",
443
- "enum": [
444
- "pairing",
445
- "allowlist",
446
- "open",
447
- "disabled"
448
- ]
449
- },
450
- "allowFrom": {
451
- "type": "array",
452
- "items": {
453
- "anyOf": [
454
- {
455
- "type": "string"
456
- },
457
- {
458
- "type": "number"
459
- }
460
- ]
461
- }
462
- }
463
- },
464
- "required": [
465
- "policy"
466
- ],
467
- "additionalProperties": false
468
- },
469
- "healthMonitor": {
470
- "type": "object",
471
- "properties": {
472
- "enabled": {
473
- "type": "boolean"
474
- }
475
- },
476
- "additionalProperties": false
477
- },
478
- "typingIndicator": {
479
- "type": "string",
480
- "enum": [
481
- "none",
482
- "message",
483
- "reaction"
484
- ]
485
- },
486
- "responsePrefix": {
487
- "type": "string"
488
- },
489
- "accounts": {
490
- "type": "object",
491
- "propertyNames": {
492
- "type": "string"
493
- },
494
- "additionalProperties": {
495
- "type": "object",
496
- "properties": {
497
- "name": {
498
- "type": "string"
499
- },
500
- "capabilities": {
501
- "type": "array",
502
- "items": {
503
- "type": "string"
504
- }
505
- },
506
- "enabled": {
507
- "type": "boolean"
508
- },
509
- "configWrites": {
510
- "type": "boolean"
511
- },
512
- "allowBots": {
513
- "type": "boolean"
514
- },
515
- "botLoopProtection": {
516
- "type": "object",
517
- "properties": {
518
- "enabled": {
519
- "type": "boolean"
520
- },
521
- "maxEventsPerWindow": {
522
- "type": "integer",
523
- "exclusiveMinimum": 0,
524
- "maximum": 9007199254740991
525
- },
526
- "windowSeconds": {
527
- "type": "integer",
528
- "exclusiveMinimum": 0,
529
- "maximum": 9007199254740991
530
- },
531
- "cooldownSeconds": {
532
- "type": "integer",
533
- "exclusiveMinimum": 0,
534
- "maximum": 9007199254740991
535
- }
536
- },
537
- "additionalProperties": false
538
- },
539
- "dangerouslyAllowNameMatching": {
540
- "type": "boolean"
541
- },
542
- "requireMention": {
543
- "type": "boolean"
544
- },
545
- "groupPolicy": {
546
- "default": "allowlist",
547
- "type": "string",
548
- "enum": [
549
- "open",
550
- "disabled",
551
- "allowlist"
552
- ]
553
- },
554
- "groupAllowFrom": {
555
- "type": "array",
556
- "items": {
557
- "anyOf": [
558
- {
559
- "type": "string"
560
- },
561
- {
562
- "type": "number"
563
- }
564
- ]
565
- }
566
- },
567
- "groups": {
568
- "type": "object",
569
- "propertyNames": {
570
- "type": "string"
571
- },
572
- "additionalProperties": {
573
- "type": "object",
574
- "properties": {
575
- "enabled": {
576
- "type": "boolean"
577
- },
578
- "requireMention": {
579
- "type": "boolean"
580
- },
581
- "botLoopProtection": {
582
- "type": "object",
583
- "properties": {
584
- "enabled": {
585
- "type": "boolean"
586
- },
587
- "maxEventsPerWindow": {
588
- "type": "integer",
589
- "exclusiveMinimum": 0,
590
- "maximum": 9007199254740991
591
- },
592
- "windowSeconds": {
593
- "type": "integer",
594
- "exclusiveMinimum": 0,
595
- "maximum": 9007199254740991
596
- },
597
- "cooldownSeconds": {
598
- "type": "integer",
599
- "exclusiveMinimum": 0,
600
- "maximum": 9007199254740991
601
- }
602
- },
603
- "additionalProperties": false
604
- },
605
- "users": {
606
- "type": "array",
607
- "items": {
608
- "anyOf": [
609
- {
610
- "type": "string"
611
- },
612
- {
613
- "type": "number"
614
- }
615
- ]
616
- }
617
- },
618
- "systemPrompt": {
619
- "type": "string"
620
- }
621
- },
622
- "additionalProperties": false
623
- }
624
- },
625
- "defaultTo": {
626
- "type": "string"
627
- },
628
- "serviceAccount": {
629
- "anyOf": [
630
- {
631
- "type": "string"
632
- },
633
- {
634
- "type": "object",
635
- "propertyNames": {
636
- "type": "string"
637
- },
638
- "additionalProperties": {}
639
- },
640
- {
641
- "oneOf": [
642
- {
643
- "type": "object",
644
- "properties": {
645
- "source": {
646
- "type": "string",
647
- "const": "env"
648
- },
649
- "provider": {
650
- "type": "string",
651
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
652
- },
653
- "id": {
654
- "type": "string",
655
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
656
- }
657
- },
658
- "required": [
659
- "source",
660
- "provider",
661
- "id"
662
- ],
663
- "additionalProperties": false
664
- },
665
- {
666
- "type": "object",
667
- "properties": {
668
- "source": {
669
- "type": "string",
670
- "const": "file"
671
- },
672
- "provider": {
673
- "type": "string",
674
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
675
- },
676
- "id": {
677
- "type": "string"
678
- }
679
- },
680
- "required": [
681
- "source",
682
- "provider",
683
- "id"
684
- ],
685
- "additionalProperties": false
686
- },
687
- {
688
- "type": "object",
689
- "properties": {
690
- "source": {
691
- "type": "string",
692
- "const": "exec"
693
- },
694
- "provider": {
695
- "type": "string",
696
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
697
- },
698
- "id": {
699
- "type": "string"
700
- }
701
- },
702
- "required": [
703
- "source",
704
- "provider",
705
- "id"
706
- ],
707
- "additionalProperties": false
708
- }
709
- ]
710
- }
711
- ]
712
- },
713
- "serviceAccountRef": {
714
- "oneOf": [
715
- {
716
- "type": "object",
717
- "properties": {
718
- "source": {
719
- "type": "string",
720
- "const": "env"
721
- },
722
- "provider": {
723
- "type": "string",
724
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
725
- },
726
- "id": {
727
- "type": "string",
728
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
729
- }
730
- },
731
- "required": [
732
- "source",
733
- "provider",
734
- "id"
735
- ],
736
- "additionalProperties": false
737
- },
738
- {
739
- "type": "object",
740
- "properties": {
741
- "source": {
742
- "type": "string",
743
- "const": "file"
744
- },
745
- "provider": {
746
- "type": "string",
747
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
748
- },
749
- "id": {
750
- "type": "string"
751
- }
752
- },
753
- "required": [
754
- "source",
755
- "provider",
756
- "id"
757
- ],
758
- "additionalProperties": false
759
- },
760
- {
761
- "type": "object",
762
- "properties": {
763
- "source": {
764
- "type": "string",
765
- "const": "exec"
766
- },
767
- "provider": {
768
- "type": "string",
769
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
770
- },
771
- "id": {
772
- "type": "string"
773
- }
774
- },
775
- "required": [
776
- "source",
777
- "provider",
778
- "id"
779
- ],
780
- "additionalProperties": false
781
- }
782
- ]
783
- },
784
- "serviceAccountFile": {
785
- "type": "string"
786
- },
787
- "audienceType": {
788
- "type": "string",
789
- "enum": [
790
- "app-url",
791
- "project-number"
792
- ]
793
- },
794
- "audience": {
795
- "type": "string"
796
- },
797
- "appPrincipal": {
798
- "type": "string"
799
- },
800
- "webhookPath": {
801
- "type": "string"
802
- },
803
- "webhookUrl": {
804
- "type": "string"
805
- },
806
- "botUser": {
807
- "type": "string"
808
- },
809
- "historyLimit": {
810
- "type": "integer",
811
- "minimum": 0,
812
- "maximum": 9007199254740991
813
- },
814
- "dmHistoryLimit": {
815
- "type": "integer",
816
- "minimum": 0,
817
- "maximum": 9007199254740991
818
- },
819
- "dms": {
820
- "type": "object",
821
- "propertyNames": {
822
- "type": "string"
823
- },
824
- "additionalProperties": {
825
- "type": "object",
826
- "properties": {
827
- "historyLimit": {
828
- "type": "integer",
829
- "minimum": 0,
830
- "maximum": 9007199254740991
831
- }
832
- },
833
- "additionalProperties": false
834
- }
835
- },
836
- "textChunkLimit": {
837
- "type": "integer",
838
- "exclusiveMinimum": 0,
839
- "maximum": 9007199254740991
840
- },
841
- "chunkMode": {
842
- "type": "string",
843
- "enum": [
844
- "length",
845
- "newline"
846
- ]
847
- },
848
- "blockStreaming": {
849
- "type": "boolean"
850
- },
851
- "blockStreamingCoalesce": {
852
- "type": "object",
853
- "properties": {
854
- "minChars": {
855
- "type": "integer",
856
- "exclusiveMinimum": 0,
857
- "maximum": 9007199254740991
858
- },
859
- "maxChars": {
860
- "type": "integer",
861
- "exclusiveMinimum": 0,
862
- "maximum": 9007199254740991
863
- },
864
- "idleMs": {
865
- "type": "integer",
866
- "minimum": 0,
867
- "maximum": 9007199254740991
868
- }
869
- },
870
- "additionalProperties": false
871
- },
872
- "mediaMaxMb": {
873
- "type": "number",
874
- "exclusiveMinimum": 0
875
- },
876
- "replyToMode": {
877
- "anyOf": [
878
- {
879
- "type": "string",
880
- "const": "off"
881
- },
882
- {
883
- "type": "string",
884
- "const": "first"
885
- },
886
- {
887
- "type": "string",
888
- "const": "all"
889
- },
890
- {
891
- "type": "string",
892
- "const": "batched"
893
- }
894
- ]
895
- },
896
- "actions": {
897
- "type": "object",
898
- "properties": {
899
- "reactions": {
900
- "type": "boolean"
901
- }
902
- },
903
- "additionalProperties": false
904
- },
905
- "dm": {
906
- "type": "object",
907
- "properties": {
908
- "enabled": {
909
- "type": "boolean"
910
- },
911
- "policy": {
912
- "default": "pairing",
913
- "type": "string",
914
- "enum": [
915
- "pairing",
916
- "allowlist",
917
- "open",
918
- "disabled"
919
- ]
920
- },
921
- "allowFrom": {
922
- "type": "array",
923
- "items": {
924
- "anyOf": [
925
- {
926
- "type": "string"
927
- },
928
- {
929
- "type": "number"
930
- }
931
- ]
932
- }
933
- }
934
- },
935
- "required": [
936
- "policy"
937
- ],
938
- "additionalProperties": false
939
- },
940
- "healthMonitor": {
941
- "type": "object",
942
- "properties": {
943
- "enabled": {
944
- "type": "boolean"
945
- }
946
- },
947
- "additionalProperties": false
948
- },
949
- "typingIndicator": {
950
- "type": "string",
951
- "enum": [
952
- "none",
953
- "message",
954
- "reaction"
955
- ]
956
- },
957
- "responsePrefix": {
958
- "type": "string"
959
- }
960
- },
961
- "required": [
962
- "groupPolicy"
963
- ],
964
- "additionalProperties": false
965
- }
966
- },
967
- "defaultAccount": {
968
- "type": "string"
969
- }
970
- },
971
- "required": [
972
- "groupPolicy"
973
- ],
974
- "additionalProperties": false
975
- },
976
- "label": "Google Chat",
977
- "description": "Google Workspace Chat app with HTTP webhook."
978
- }
979
14
  }
980
15
  }