@kodelyth/googlechat 2026.5.39

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.
package/api.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/channel-config-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/channel-config-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/channel-plugin-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/channel-plugin-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/contract-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/contract-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/doctor-contract-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/doctor-contract-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
package/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/index.js";
2
+ import defaultModule from "../../../dist/extensions/googlechat/index.js";
3
+ let defaultExport = defaultModule;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,980 @@
1
+ {
2
+ "id": "googlechat",
3
+ "activation": {
4
+ "onStartup": false
5
+ },
6
+ "channels": [
7
+ "googlechat"
8
+ ],
9
+ "channelEnvVars": {
10
+ "googlechat": [
11
+ "GOOGLE_CHAT_SERVICE_ACCOUNT",
12
+ "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE"
13
+ ]
14
+ },
15
+ "configSchema": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "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
+ }
980
+ }
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@kodelyth/googlechat",
3
+ "version": "2026.5.39",
4
+ "description": "Klaw Google Chat channel plugin",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/kodelyth/klaw"
8
+ },
9
+ "type": "module",
10
+ "dependencies": {
11
+ "gaxios": "7.1.4",
12
+ "google-auth-library": "10.6.2",
13
+ "zod": "4.4.3"
14
+ },
15
+ "devDependencies": {
16
+ "@kodelyth/plugin-sdk": "1.0.1",
17
+ "@kodelyth/klaw": "2026.5.41"
18
+ },
19
+ "peerDependencies": {
20
+ "@kodelyth/klaw": ">=2026.5.19"
21
+ },
22
+ "peerDependenciesMeta": {
23
+ "@kodelyth/klaw": {
24
+ "optional": true
25
+ }
26
+ },
27
+ "klaw": {
28
+ "extensions": [
29
+ "./index.js"
30
+ ],
31
+ "setupEntry": "./setup-entry.js",
32
+ "channel": {
33
+ "id": "googlechat",
34
+ "label": "Google Chat",
35
+ "selectionLabel": "Google Chat (Chat API)",
36
+ "detailLabel": "Google Chat",
37
+ "docsPath": "/channels/googlechat",
38
+ "docsLabel": "googlechat",
39
+ "blurb": "Google Workspace Chat app with HTTP webhook.",
40
+ "aliases": [
41
+ "gchat",
42
+ "google-chat"
43
+ ],
44
+ "order": 55,
45
+ "systemImage": "message.badge",
46
+ "markdownCapable": true,
47
+ "doctorCapabilities": {
48
+ "dmAllowFromMode": "nestedOnly",
49
+ "groupModel": "route",
50
+ "groupAllowFromFallbackToAllowFrom": false,
51
+ "warnOnEmptyGroupSenderAllowlist": false
52
+ },
53
+ "cliAddOptions": [
54
+ {
55
+ "flags": "--webhook-path <path>",
56
+ "description": "Google Chat webhook path"
57
+ },
58
+ {
59
+ "flags": "--webhook-url <url>",
60
+ "description": "Google Chat webhook URL"
61
+ },
62
+ {
63
+ "flags": "--audience-type <type>",
64
+ "description": "Google Chat audience type (app-url|project-number)"
65
+ },
66
+ {
67
+ "flags": "--audience <value>",
68
+ "description": "Google Chat audience value (app URL or project number)"
69
+ }
70
+ ]
71
+ },
72
+ "install": {
73
+ "npmSpec": "@kodelyth/googlechat",
74
+ "defaultChoice": "npm",
75
+ "minHostVersion": ">=2026.4.10"
76
+ },
77
+ "compat": {
78
+ "pluginApi": ">=2026.5.39"
79
+ },
80
+ "build": {
81
+ "klawVersion": "2026.5.39"
82
+ },
83
+ "release": {
84
+ "publishToClawHub": true,
85
+ "publishToNpm": true
86
+ }
87
+ }
88
+ }
package/runtime-api.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/runtime-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/runtime-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/secret-contract-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/secret-contract-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
package/setup-entry.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/setup-entry.js";
2
+ import defaultModule from "../../../dist/extensions/googlechat/setup-entry.js";
3
+ let defaultExport = defaultModule;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/setup-plugin-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/setup-plugin-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };
package/test-api.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "../../../dist/extensions/googlechat/test-api.js";
2
+ import * as module from "../../../dist/extensions/googlechat/test-api.js";
3
+ let defaultExport = "default" in module ? module.default : module;
4
+ for (let index = 0; index < 4 && defaultExport && typeof defaultExport === "object" && "default" in defaultExport; index += 1) {
5
+ defaultExport = defaultExport.default;
6
+ }
7
+ export { defaultExport as default };