@kodelyth/nextcloud-talk 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 (78) hide show
  1. package/api.ts +1 -0
  2. package/channel-plugin-api.ts +1 -0
  3. package/contract-api.ts +4 -0
  4. package/dist/api.js +2 -0
  5. package/dist/channel-ej3z6XJ5.js +2094 -0
  6. package/dist/channel-plugin-api.js +2 -0
  7. package/dist/contract-api.js +2 -0
  8. package/dist/doctor-contract-Dia7keG4.js +7 -0
  9. package/dist/doctor-contract-api.js +2 -0
  10. package/dist/index.js +22 -0
  11. package/dist/runtime-api-DCIDXlUd.js +14 -0
  12. package/dist/runtime-api.js +2 -0
  13. package/dist/secret-contract-DQ2wQ4m1.js +86 -0
  14. package/dist/secret-contract-api.js +2 -0
  15. package/dist/setup-entry.js +15 -0
  16. package/doctor-contract-api.ts +1 -0
  17. package/index.ts +20 -0
  18. package/klaw.plugin.json +2 -799
  19. package/package.json +4 -4
  20. package/runtime-api.ts +29 -0
  21. package/secret-contract-api.ts +5 -0
  22. package/setup-entry.ts +13 -0
  23. package/src/accounts.test.ts +31 -0
  24. package/src/accounts.ts +149 -0
  25. package/src/api-credentials.ts +31 -0
  26. package/src/approval-auth.test.ts +17 -0
  27. package/src/approval-auth.ts +27 -0
  28. package/src/bot-preflight.test.ts +135 -0
  29. package/src/bot-preflight.ts +183 -0
  30. package/src/channel-api.ts +5 -0
  31. package/src/channel.adapters.ts +52 -0
  32. package/src/channel.core.test.ts +75 -0
  33. package/src/channel.lifecycle.test.ts +91 -0
  34. package/src/channel.status.test.ts +28 -0
  35. package/src/channel.ts +225 -0
  36. package/src/config-schema.ts +79 -0
  37. package/src/core.test.ts +325 -0
  38. package/src/doctor-contract.ts +9 -0
  39. package/src/doctor.test.ts +87 -0
  40. package/src/doctor.ts +40 -0
  41. package/src/gateway.ts +109 -0
  42. package/src/inbound.authz.test.ts +146 -0
  43. package/src/inbound.behavior.test.ts +309 -0
  44. package/src/inbound.ts +392 -0
  45. package/src/message-actions.test.ts +270 -0
  46. package/src/message-actions.ts +82 -0
  47. package/src/message-adapter.ts +28 -0
  48. package/src/monitor-runtime.ts +138 -0
  49. package/src/monitor.replay.test.ts +276 -0
  50. package/src/monitor.test-fixtures.ts +30 -0
  51. package/src/monitor.test-harness.ts +59 -0
  52. package/src/monitor.ts +385 -0
  53. package/src/normalize.ts +44 -0
  54. package/src/policy.ts +111 -0
  55. package/src/replay-guard.ts +128 -0
  56. package/src/room-info.test.ts +160 -0
  57. package/src/room-info.ts +130 -0
  58. package/src/runtime.ts +9 -0
  59. package/src/secret-contract.ts +103 -0
  60. package/src/secret-input.ts +4 -0
  61. package/src/send.cfg-threading.test.ts +359 -0
  62. package/src/send.runtime.ts +8 -0
  63. package/src/send.ts +269 -0
  64. package/src/session-route.ts +40 -0
  65. package/src/setup-core.ts +250 -0
  66. package/src/setup-surface.ts +195 -0
  67. package/src/setup.test.ts +445 -0
  68. package/src/signature.ts +82 -0
  69. package/src/types.ts +195 -0
  70. package/tsconfig.json +16 -0
  71. package/api.js +0 -7
  72. package/channel-plugin-api.js +0 -7
  73. package/contract-api.js +0 -7
  74. package/doctor-contract-api.js +0 -7
  75. package/index.js +0 -7
  76. package/runtime-api.js +0 -7
  77. package/secret-contract-api.js +0 -7
  78. package/setup-entry.js +0 -7
package/klaw.plugin.json CHANGED
@@ -3,810 +3,13 @@
3
3
  "activation": {
4
4
  "onStartup": false
5
5
  },
6
- "channels": [
7
- "nextcloud-talk"
8
- ],
6
+ "channels": ["nextcloud-talk"],
9
7
  "channelEnvVars": {
10
- "nextcloud-talk": [
11
- "NEXTCLOUD_TALK_BOT_SECRET",
12
- "NEXTCLOUD_TALK_API_PASSWORD"
13
- ]
8
+ "nextcloud-talk": ["NEXTCLOUD_TALK_BOT_SECRET", "NEXTCLOUD_TALK_API_PASSWORD"]
14
9
  },
15
10
  "configSchema": {
16
11
  "type": "object",
17
12
  "additionalProperties": false,
18
13
  "properties": {}
19
- },
20
- "channelConfigs": {
21
- "nextcloud-talk": {
22
- "schema": {
23
- "$schema": "http://json-schema.org/draft-07/schema#",
24
- "type": "object",
25
- "properties": {
26
- "name": {
27
- "type": "string"
28
- },
29
- "enabled": {
30
- "type": "boolean"
31
- },
32
- "markdown": {
33
- "type": "object",
34
- "properties": {
35
- "tables": {
36
- "type": "string",
37
- "enum": [
38
- "off",
39
- "bullets",
40
- "code",
41
- "block"
42
- ]
43
- }
44
- },
45
- "additionalProperties": false
46
- },
47
- "baseUrl": {
48
- "type": "string"
49
- },
50
- "botSecret": {
51
- "anyOf": [
52
- {
53
- "type": "string"
54
- },
55
- {
56
- "oneOf": [
57
- {
58
- "type": "object",
59
- "properties": {
60
- "source": {
61
- "type": "string",
62
- "const": "env"
63
- },
64
- "provider": {
65
- "type": "string",
66
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
67
- },
68
- "id": {
69
- "type": "string",
70
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
71
- }
72
- },
73
- "required": [
74
- "source",
75
- "provider",
76
- "id"
77
- ],
78
- "additionalProperties": false
79
- },
80
- {
81
- "type": "object",
82
- "properties": {
83
- "source": {
84
- "type": "string",
85
- "const": "file"
86
- },
87
- "provider": {
88
- "type": "string",
89
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
90
- },
91
- "id": {
92
- "type": "string"
93
- }
94
- },
95
- "required": [
96
- "source",
97
- "provider",
98
- "id"
99
- ],
100
- "additionalProperties": false
101
- },
102
- {
103
- "type": "object",
104
- "properties": {
105
- "source": {
106
- "type": "string",
107
- "const": "exec"
108
- },
109
- "provider": {
110
- "type": "string",
111
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
112
- },
113
- "id": {
114
- "type": "string"
115
- }
116
- },
117
- "required": [
118
- "source",
119
- "provider",
120
- "id"
121
- ],
122
- "additionalProperties": false
123
- }
124
- ]
125
- }
126
- ]
127
- },
128
- "botSecretFile": {
129
- "type": "string"
130
- },
131
- "apiUser": {
132
- "type": "string"
133
- },
134
- "apiPassword": {
135
- "anyOf": [
136
- {
137
- "type": "string"
138
- },
139
- {
140
- "oneOf": [
141
- {
142
- "type": "object",
143
- "properties": {
144
- "source": {
145
- "type": "string",
146
- "const": "env"
147
- },
148
- "provider": {
149
- "type": "string",
150
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
151
- },
152
- "id": {
153
- "type": "string",
154
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
155
- }
156
- },
157
- "required": [
158
- "source",
159
- "provider",
160
- "id"
161
- ],
162
- "additionalProperties": false
163
- },
164
- {
165
- "type": "object",
166
- "properties": {
167
- "source": {
168
- "type": "string",
169
- "const": "file"
170
- },
171
- "provider": {
172
- "type": "string",
173
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
174
- },
175
- "id": {
176
- "type": "string"
177
- }
178
- },
179
- "required": [
180
- "source",
181
- "provider",
182
- "id"
183
- ],
184
- "additionalProperties": false
185
- },
186
- {
187
- "type": "object",
188
- "properties": {
189
- "source": {
190
- "type": "string",
191
- "const": "exec"
192
- },
193
- "provider": {
194
- "type": "string",
195
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
196
- },
197
- "id": {
198
- "type": "string"
199
- }
200
- },
201
- "required": [
202
- "source",
203
- "provider",
204
- "id"
205
- ],
206
- "additionalProperties": false
207
- }
208
- ]
209
- }
210
- ]
211
- },
212
- "apiPasswordFile": {
213
- "type": "string"
214
- },
215
- "dmPolicy": {
216
- "default": "pairing",
217
- "type": "string",
218
- "enum": [
219
- "pairing",
220
- "allowlist",
221
- "open",
222
- "disabled"
223
- ]
224
- },
225
- "webhookPort": {
226
- "type": "integer",
227
- "exclusiveMinimum": 0,
228
- "maximum": 9007199254740991
229
- },
230
- "webhookHost": {
231
- "type": "string"
232
- },
233
- "webhookPath": {
234
- "type": "string"
235
- },
236
- "webhookPublicUrl": {
237
- "type": "string"
238
- },
239
- "allowFrom": {
240
- "type": "array",
241
- "items": {
242
- "type": "string"
243
- }
244
- },
245
- "groupAllowFrom": {
246
- "type": "array",
247
- "items": {
248
- "type": "string"
249
- }
250
- },
251
- "groupPolicy": {
252
- "default": "allowlist",
253
- "type": "string",
254
- "enum": [
255
- "open",
256
- "disabled",
257
- "allowlist"
258
- ]
259
- },
260
- "rooms": {
261
- "type": "object",
262
- "propertyNames": {
263
- "type": "string"
264
- },
265
- "additionalProperties": {
266
- "type": "object",
267
- "properties": {
268
- "requireMention": {
269
- "type": "boolean"
270
- },
271
- "tools": {
272
- "type": "object",
273
- "properties": {
274
- "allow": {
275
- "type": "array",
276
- "items": {
277
- "type": "string"
278
- }
279
- },
280
- "alsoAllow": {
281
- "type": "array",
282
- "items": {
283
- "type": "string"
284
- }
285
- },
286
- "deny": {
287
- "type": "array",
288
- "items": {
289
- "type": "string"
290
- }
291
- }
292
- },
293
- "additionalProperties": false
294
- },
295
- "skills": {
296
- "type": "array",
297
- "items": {
298
- "type": "string"
299
- }
300
- },
301
- "enabled": {
302
- "type": "boolean"
303
- },
304
- "allowFrom": {
305
- "type": "array",
306
- "items": {
307
- "type": "string"
308
- }
309
- },
310
- "systemPrompt": {
311
- "type": "string"
312
- }
313
- },
314
- "additionalProperties": false
315
- }
316
- },
317
- "network": {
318
- "type": "object",
319
- "properties": {
320
- "dangerouslyAllowPrivateNetwork": {
321
- "type": "boolean"
322
- }
323
- },
324
- "additionalProperties": false
325
- },
326
- "historyLimit": {
327
- "type": "integer",
328
- "minimum": 0,
329
- "maximum": 9007199254740991
330
- },
331
- "dmHistoryLimit": {
332
- "type": "integer",
333
- "minimum": 0,
334
- "maximum": 9007199254740991
335
- },
336
- "contextVisibility": {
337
- "type": "string",
338
- "enum": [
339
- "all",
340
- "allowlist",
341
- "allowlist_quote"
342
- ]
343
- },
344
- "dms": {
345
- "type": "object",
346
- "propertyNames": {
347
- "type": "string"
348
- },
349
- "additionalProperties": {
350
- "type": "object",
351
- "properties": {
352
- "historyLimit": {
353
- "type": "integer",
354
- "minimum": 0,
355
- "maximum": 9007199254740991
356
- }
357
- },
358
- "additionalProperties": false
359
- }
360
- },
361
- "textChunkLimit": {
362
- "type": "integer",
363
- "exclusiveMinimum": 0,
364
- "maximum": 9007199254740991
365
- },
366
- "chunkMode": {
367
- "type": "string",
368
- "enum": [
369
- "length",
370
- "newline"
371
- ]
372
- },
373
- "blockStreaming": {
374
- "type": "boolean"
375
- },
376
- "blockStreamingCoalesce": {
377
- "type": "object",
378
- "properties": {
379
- "minChars": {
380
- "type": "integer",
381
- "exclusiveMinimum": 0,
382
- "maximum": 9007199254740991
383
- },
384
- "maxChars": {
385
- "type": "integer",
386
- "exclusiveMinimum": 0,
387
- "maximum": 9007199254740991
388
- },
389
- "idleMs": {
390
- "type": "integer",
391
- "minimum": 0,
392
- "maximum": 9007199254740991
393
- }
394
- },
395
- "additionalProperties": false
396
- },
397
- "responsePrefix": {
398
- "type": "string"
399
- },
400
- "mediaMaxMb": {
401
- "type": "number",
402
- "exclusiveMinimum": 0
403
- },
404
- "accounts": {
405
- "type": "object",
406
- "propertyNames": {
407
- "type": "string"
408
- },
409
- "additionalProperties": {
410
- "type": "object",
411
- "properties": {
412
- "name": {
413
- "type": "string"
414
- },
415
- "enabled": {
416
- "type": "boolean"
417
- },
418
- "markdown": {
419
- "type": "object",
420
- "properties": {
421
- "tables": {
422
- "type": "string",
423
- "enum": [
424
- "off",
425
- "bullets",
426
- "code",
427
- "block"
428
- ]
429
- }
430
- },
431
- "additionalProperties": false
432
- },
433
- "baseUrl": {
434
- "type": "string"
435
- },
436
- "botSecret": {
437
- "anyOf": [
438
- {
439
- "type": "string"
440
- },
441
- {
442
- "oneOf": [
443
- {
444
- "type": "object",
445
- "properties": {
446
- "source": {
447
- "type": "string",
448
- "const": "env"
449
- },
450
- "provider": {
451
- "type": "string",
452
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
453
- },
454
- "id": {
455
- "type": "string",
456
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
457
- }
458
- },
459
- "required": [
460
- "source",
461
- "provider",
462
- "id"
463
- ],
464
- "additionalProperties": false
465
- },
466
- {
467
- "type": "object",
468
- "properties": {
469
- "source": {
470
- "type": "string",
471
- "const": "file"
472
- },
473
- "provider": {
474
- "type": "string",
475
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
476
- },
477
- "id": {
478
- "type": "string"
479
- }
480
- },
481
- "required": [
482
- "source",
483
- "provider",
484
- "id"
485
- ],
486
- "additionalProperties": false
487
- },
488
- {
489
- "type": "object",
490
- "properties": {
491
- "source": {
492
- "type": "string",
493
- "const": "exec"
494
- },
495
- "provider": {
496
- "type": "string",
497
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
498
- },
499
- "id": {
500
- "type": "string"
501
- }
502
- },
503
- "required": [
504
- "source",
505
- "provider",
506
- "id"
507
- ],
508
- "additionalProperties": false
509
- }
510
- ]
511
- }
512
- ]
513
- },
514
- "botSecretFile": {
515
- "type": "string"
516
- },
517
- "apiUser": {
518
- "type": "string"
519
- },
520
- "apiPassword": {
521
- "anyOf": [
522
- {
523
- "type": "string"
524
- },
525
- {
526
- "oneOf": [
527
- {
528
- "type": "object",
529
- "properties": {
530
- "source": {
531
- "type": "string",
532
- "const": "env"
533
- },
534
- "provider": {
535
- "type": "string",
536
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
537
- },
538
- "id": {
539
- "type": "string",
540
- "pattern": "^[A-Z][A-Z0-9_]{0,127}$"
541
- }
542
- },
543
- "required": [
544
- "source",
545
- "provider",
546
- "id"
547
- ],
548
- "additionalProperties": false
549
- },
550
- {
551
- "type": "object",
552
- "properties": {
553
- "source": {
554
- "type": "string",
555
- "const": "file"
556
- },
557
- "provider": {
558
- "type": "string",
559
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
560
- },
561
- "id": {
562
- "type": "string"
563
- }
564
- },
565
- "required": [
566
- "source",
567
- "provider",
568
- "id"
569
- ],
570
- "additionalProperties": false
571
- },
572
- {
573
- "type": "object",
574
- "properties": {
575
- "source": {
576
- "type": "string",
577
- "const": "exec"
578
- },
579
- "provider": {
580
- "type": "string",
581
- "pattern": "^[a-z][a-z0-9_-]{0,63}$"
582
- },
583
- "id": {
584
- "type": "string"
585
- }
586
- },
587
- "required": [
588
- "source",
589
- "provider",
590
- "id"
591
- ],
592
- "additionalProperties": false
593
- }
594
- ]
595
- }
596
- ]
597
- },
598
- "apiPasswordFile": {
599
- "type": "string"
600
- },
601
- "dmPolicy": {
602
- "default": "pairing",
603
- "type": "string",
604
- "enum": [
605
- "pairing",
606
- "allowlist",
607
- "open",
608
- "disabled"
609
- ]
610
- },
611
- "webhookPort": {
612
- "type": "integer",
613
- "exclusiveMinimum": 0,
614
- "maximum": 9007199254740991
615
- },
616
- "webhookHost": {
617
- "type": "string"
618
- },
619
- "webhookPath": {
620
- "type": "string"
621
- },
622
- "webhookPublicUrl": {
623
- "type": "string"
624
- },
625
- "allowFrom": {
626
- "type": "array",
627
- "items": {
628
- "type": "string"
629
- }
630
- },
631
- "groupAllowFrom": {
632
- "type": "array",
633
- "items": {
634
- "type": "string"
635
- }
636
- },
637
- "groupPolicy": {
638
- "default": "allowlist",
639
- "type": "string",
640
- "enum": [
641
- "open",
642
- "disabled",
643
- "allowlist"
644
- ]
645
- },
646
- "rooms": {
647
- "type": "object",
648
- "propertyNames": {
649
- "type": "string"
650
- },
651
- "additionalProperties": {
652
- "type": "object",
653
- "properties": {
654
- "requireMention": {
655
- "type": "boolean"
656
- },
657
- "tools": {
658
- "type": "object",
659
- "properties": {
660
- "allow": {
661
- "type": "array",
662
- "items": {
663
- "type": "string"
664
- }
665
- },
666
- "alsoAllow": {
667
- "type": "array",
668
- "items": {
669
- "type": "string"
670
- }
671
- },
672
- "deny": {
673
- "type": "array",
674
- "items": {
675
- "type": "string"
676
- }
677
- }
678
- },
679
- "additionalProperties": false
680
- },
681
- "skills": {
682
- "type": "array",
683
- "items": {
684
- "type": "string"
685
- }
686
- },
687
- "enabled": {
688
- "type": "boolean"
689
- },
690
- "allowFrom": {
691
- "type": "array",
692
- "items": {
693
- "type": "string"
694
- }
695
- },
696
- "systemPrompt": {
697
- "type": "string"
698
- }
699
- },
700
- "additionalProperties": false
701
- }
702
- },
703
- "network": {
704
- "type": "object",
705
- "properties": {
706
- "dangerouslyAllowPrivateNetwork": {
707
- "type": "boolean"
708
- }
709
- },
710
- "additionalProperties": false
711
- },
712
- "historyLimit": {
713
- "type": "integer",
714
- "minimum": 0,
715
- "maximum": 9007199254740991
716
- },
717
- "dmHistoryLimit": {
718
- "type": "integer",
719
- "minimum": 0,
720
- "maximum": 9007199254740991
721
- },
722
- "contextVisibility": {
723
- "type": "string",
724
- "enum": [
725
- "all",
726
- "allowlist",
727
- "allowlist_quote"
728
- ]
729
- },
730
- "dms": {
731
- "type": "object",
732
- "propertyNames": {
733
- "type": "string"
734
- },
735
- "additionalProperties": {
736
- "type": "object",
737
- "properties": {
738
- "historyLimit": {
739
- "type": "integer",
740
- "minimum": 0,
741
- "maximum": 9007199254740991
742
- }
743
- },
744
- "additionalProperties": false
745
- }
746
- },
747
- "textChunkLimit": {
748
- "type": "integer",
749
- "exclusiveMinimum": 0,
750
- "maximum": 9007199254740991
751
- },
752
- "chunkMode": {
753
- "type": "string",
754
- "enum": [
755
- "length",
756
- "newline"
757
- ]
758
- },
759
- "blockStreaming": {
760
- "type": "boolean"
761
- },
762
- "blockStreamingCoalesce": {
763
- "type": "object",
764
- "properties": {
765
- "minChars": {
766
- "type": "integer",
767
- "exclusiveMinimum": 0,
768
- "maximum": 9007199254740991
769
- },
770
- "maxChars": {
771
- "type": "integer",
772
- "exclusiveMinimum": 0,
773
- "maximum": 9007199254740991
774
- },
775
- "idleMs": {
776
- "type": "integer",
777
- "minimum": 0,
778
- "maximum": 9007199254740991
779
- }
780
- },
781
- "additionalProperties": false
782
- },
783
- "responsePrefix": {
784
- "type": "string"
785
- },
786
- "mediaMaxMb": {
787
- "type": "number",
788
- "exclusiveMinimum": 0
789
- }
790
- },
791
- "required": [
792
- "dmPolicy",
793
- "groupPolicy"
794
- ],
795
- "additionalProperties": false
796
- }
797
- },
798
- "defaultAccount": {
799
- "type": "string"
800
- }
801
- },
802
- "required": [
803
- "dmPolicy",
804
- "groupPolicy"
805
- ],
806
- "additionalProperties": false
807
- },
808
- "label": "Nextcloud Talk",
809
- "description": "Self-hosted chat via Nextcloud Talk webhook bots."
810
- }
811
14
  }
812
15
  }