@ixo/topic-protocol 0.3.0 → 0.5.0

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 (41) hide show
  1. package/README.md +9 -3
  2. package/dist/schemas/topic-contract-state.schema.json +292 -0
  3. package/dist/schemas/topic-file-attachment.schema.json +1 -1
  4. package/dist/schemas/topic-index-entry.schema.json +34 -1
  5. package/dist/schemas/topic-index.schema.json +39 -0
  6. package/dist/schemas/topic-operation.schema.json +14 -3
  7. package/dist/schemas/topic-preferences.schema.json +47 -2
  8. package/dist/schemas/topic-root.schema.json +9 -3
  9. package/dist/src/contracts/schemas.d.ts +916 -4
  10. package/dist/src/contracts/schemas.js +4 -0
  11. package/dist/src/contracts/schemas.js.map +1 -1
  12. package/dist/src/contracts/topic-contract.d.ts +149 -0
  13. package/dist/src/contracts/topic-contract.js +104 -0
  14. package/dist/src/contracts/topic-contract.js.map +1 -0
  15. package/dist/src/index.d.ts +7 -2
  16. package/dist/src/index.js +6 -1
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/indexing/rank.d.ts +2 -0
  19. package/dist/src/indexing/rank.js +31 -0
  20. package/dist/src/indexing/rank.js.map +1 -0
  21. package/dist/src/indexing/reconcile.d.ts +3 -0
  22. package/dist/src/indexing/reconcile.js +58 -0
  23. package/dist/src/indexing/reconcile.js.map +1 -0
  24. package/dist/src/indexing/search.d.ts +2 -0
  25. package/dist/src/indexing/search.js +37 -0
  26. package/dist/src/indexing/search.js.map +1 -0
  27. package/dist/src/indexing/types.d.ts +76 -0
  28. package/dist/src/indexing/types.js +22 -0
  29. package/dist/src/indexing/types.js.map +1 -0
  30. package/dist/src/matrix/anchors.d.ts +3 -0
  31. package/dist/src/matrix/anchors.js +14 -0
  32. package/dist/src/matrix/anchors.js.map +1 -1
  33. package/dist/src/projector/payload.d.ts +19 -1
  34. package/dist/src/projector/payload.js +74 -0
  35. package/dist/src/projector/payload.js.map +1 -1
  36. package/dist/src/projector/state.js +47 -0
  37. package/dist/src/projector/state.js.map +1 -1
  38. package/dist/src/projector/types.d.ts +49 -6
  39. package/dist/src/projector/types.js +3 -0
  40. package/dist/src/projector/types.js.map +1 -1
  41. package/package.json +1 -1
@@ -227,6 +227,703 @@ export declare const SCHEMA_REGISTRY: Readonly<{
227
227
  };
228
228
  additionalProperties: boolean;
229
229
  };
230
+ "topic-contract-state": {
231
+ $schema: string;
232
+ $id: string;
233
+ title: string;
234
+ type: string;
235
+ required: string[];
236
+ properties: {
237
+ version: {
238
+ const: number;
239
+ };
240
+ profile: {
241
+ const: string;
242
+ };
243
+ schema: {
244
+ const: string;
245
+ };
246
+ topicId: {
247
+ $ref: string;
248
+ };
249
+ anchor: {
250
+ $ref: string;
251
+ };
252
+ manifest: {
253
+ $ref: string;
254
+ };
255
+ contracts: {
256
+ $ref: string;
257
+ };
258
+ projection: {
259
+ $ref: string;
260
+ };
261
+ policy: {
262
+ type: string;
263
+ };
264
+ bindings: {
265
+ $ref: string;
266
+ };
267
+ provenance: {
268
+ $ref: string;
269
+ };
270
+ extensions: {
271
+ type: string;
272
+ };
273
+ };
274
+ additionalProperties: boolean;
275
+ $defs: {
276
+ topicId: {
277
+ type: string;
278
+ pattern: string;
279
+ };
280
+ entryId: {
281
+ type: string;
282
+ pattern: string;
283
+ };
284
+ eventId: {
285
+ type: string;
286
+ pattern: string;
287
+ };
288
+ roomId: {
289
+ type: string;
290
+ pattern: string;
291
+ };
292
+ hash: {
293
+ type: string;
294
+ pattern: string;
295
+ };
296
+ persistedKind: {
297
+ type: string;
298
+ enum: string[];
299
+ };
300
+ kindRef: {
301
+ oneOf: ({
302
+ type: string;
303
+ required: string[];
304
+ properties: {
305
+ source: {
306
+ const: string;
307
+ };
308
+ kind: {
309
+ $ref: string;
310
+ };
311
+ customId?: never;
312
+ label?: never;
313
+ baseKind?: never;
314
+ };
315
+ additionalProperties: boolean;
316
+ } | {
317
+ type: string;
318
+ required: string[];
319
+ properties: {
320
+ source: {
321
+ const: string;
322
+ };
323
+ customId: {
324
+ type: string;
325
+ minLength: number;
326
+ maxLength: number;
327
+ };
328
+ label: {
329
+ type: string;
330
+ minLength: number;
331
+ maxLength: number;
332
+ };
333
+ baseKind: {
334
+ $ref: string;
335
+ };
336
+ kind?: never;
337
+ };
338
+ additionalProperties: boolean;
339
+ })[];
340
+ };
341
+ anchor: {
342
+ oneOf: {
343
+ type: string;
344
+ required: string[];
345
+ properties: {
346
+ mode: {
347
+ const: string;
348
+ };
349
+ roomId: {
350
+ $ref: string;
351
+ };
352
+ rootEventId: {
353
+ $ref: string;
354
+ };
355
+ manifestSource: {
356
+ const: string;
357
+ };
358
+ };
359
+ additionalProperties: boolean;
360
+ }[];
361
+ };
362
+ manifest: {
363
+ type: string;
364
+ required: string[];
365
+ properties: {
366
+ version: {
367
+ const: number;
368
+ };
369
+ id: {
370
+ $ref: string;
371
+ };
372
+ title: {
373
+ type: string;
374
+ minLength: number;
375
+ maxLength: number;
376
+ };
377
+ kind: {
378
+ $ref: string;
379
+ };
380
+ status: {
381
+ type: string;
382
+ enum: string[];
383
+ };
384
+ createdBy: {
385
+ type: string;
386
+ minLength: number;
387
+ };
388
+ createdAt: {
389
+ type: string;
390
+ format: string;
391
+ };
392
+ };
393
+ additionalProperties: boolean;
394
+ };
395
+ provenance: {
396
+ type: string;
397
+ required: string[];
398
+ properties: {
399
+ basis: {
400
+ type: string;
401
+ enum: string[];
402
+ };
403
+ acceptance: {
404
+ type: string;
405
+ enum: string[];
406
+ };
407
+ sourceEventIds: {
408
+ type: string;
409
+ uniqueItems: boolean;
410
+ items: {
411
+ $ref: string;
412
+ };
413
+ };
414
+ createdBy: {
415
+ type: string;
416
+ minLength: number;
417
+ };
418
+ createdAt: {
419
+ type: string;
420
+ format: string;
421
+ };
422
+ };
423
+ additionalProperties: boolean;
424
+ };
425
+ statement: {
426
+ type: string;
427
+ required: string[];
428
+ properties: {
429
+ id: {
430
+ $ref: string;
431
+ };
432
+ text: {
433
+ type: string;
434
+ minLength: number;
435
+ maxLength: number;
436
+ };
437
+ provenance: {
438
+ $ref: string;
439
+ };
440
+ };
441
+ additionalProperties: boolean;
442
+ };
443
+ temporalTarget: {
444
+ oneOf: {
445
+ type: string;
446
+ required: string[];
447
+ properties: {
448
+ precision: {
449
+ const: string;
450
+ };
451
+ value: {
452
+ type: string;
453
+ format: string;
454
+ };
455
+ timezone: {
456
+ type: string;
457
+ minLength: number;
458
+ maxLength: number;
459
+ };
460
+ };
461
+ additionalProperties: boolean;
462
+ }[];
463
+ };
464
+ criterion: {
465
+ type: string;
466
+ required: string[];
467
+ properties: {
468
+ id: {
469
+ $ref: string;
470
+ };
471
+ description: {
472
+ type: string;
473
+ minLength: number;
474
+ maxLength: number;
475
+ };
476
+ status: {
477
+ type: string;
478
+ enum: string[];
479
+ };
480
+ verification: {
481
+ type: string;
482
+ };
483
+ };
484
+ additionalProperties: boolean;
485
+ };
486
+ outcome: {
487
+ type: string;
488
+ properties: {
489
+ statement: {
490
+ $ref: string;
491
+ };
492
+ status: {
493
+ type: string;
494
+ enum: string[];
495
+ };
496
+ target: {
497
+ $ref: string;
498
+ };
499
+ successCriteria: {
500
+ type: string;
501
+ maxItems: number;
502
+ items: {
503
+ $ref: string;
504
+ };
505
+ };
506
+ outcomeRecordId: {
507
+ type: string;
508
+ minLength: number;
509
+ };
510
+ abandonedReason: {
511
+ type: string;
512
+ minLength: number;
513
+ maxLength: number;
514
+ };
515
+ };
516
+ additionalProperties: boolean;
517
+ };
518
+ risk: {
519
+ type: string;
520
+ required: string[];
521
+ properties: {
522
+ id: {
523
+ $ref: string;
524
+ };
525
+ description: {
526
+ type: string;
527
+ minLength: number;
528
+ maxLength: number;
529
+ };
530
+ impact: {
531
+ type: string;
532
+ enum: string[];
533
+ };
534
+ status: {
535
+ type: string;
536
+ enum: string[];
537
+ };
538
+ owner: {
539
+ type: string;
540
+ minLength: number;
541
+ };
542
+ mitigation: {
543
+ type: string;
544
+ minLength: number;
545
+ maxLength: number;
546
+ };
547
+ };
548
+ additionalProperties: boolean;
549
+ };
550
+ appearance: {
551
+ type: string;
552
+ properties: {
553
+ glyph: {
554
+ oneOf: ({
555
+ type: string;
556
+ required: string[];
557
+ properties: {
558
+ type: {
559
+ const: string;
560
+ };
561
+ value: {
562
+ type: string;
563
+ minLength: number;
564
+ maxLength: number;
565
+ };
566
+ name?: never;
567
+ };
568
+ additionalProperties: boolean;
569
+ } | {
570
+ type: string;
571
+ required: string[];
572
+ properties: {
573
+ type: {
574
+ const: string;
575
+ };
576
+ name: {
577
+ type: string;
578
+ enum: string[];
579
+ };
580
+ value?: never;
581
+ };
582
+ additionalProperties: boolean;
583
+ })[];
584
+ };
585
+ };
586
+ additionalProperties: boolean;
587
+ };
588
+ contractBody: {
589
+ type: string;
590
+ required: string[];
591
+ properties: {
592
+ version: {
593
+ const: number;
594
+ };
595
+ revision: {
596
+ type: string;
597
+ minLength: number;
598
+ };
599
+ status: {
600
+ type: string;
601
+ enum: string[];
602
+ };
603
+ kindRef: {
604
+ $ref: string;
605
+ };
606
+ authoredBy: {
607
+ type: string;
608
+ minLength: number;
609
+ };
610
+ authoredAt: {
611
+ type: string;
612
+ format: string;
613
+ };
614
+ workingMode: {
615
+ type: string;
616
+ enum: string[];
617
+ };
618
+ recipe: {
619
+ type: string;
620
+ enum: string[];
621
+ };
622
+ locale: {
623
+ type: string;
624
+ minLength: number;
625
+ maxLength: number;
626
+ };
627
+ timezone: {
628
+ type: string;
629
+ minLength: number;
630
+ maxLength: number;
631
+ };
632
+ temporalMode: {
633
+ type: string;
634
+ enum: string[];
635
+ };
636
+ tags: {
637
+ type: string;
638
+ uniqueItems: boolean;
639
+ maxItems: number;
640
+ items: {
641
+ type: string;
642
+ minLength: number;
643
+ maxLength: number;
644
+ };
645
+ };
646
+ appearance: {
647
+ $ref: string;
648
+ };
649
+ intent: {
650
+ $ref: string;
651
+ };
652
+ outcome: {
653
+ $ref: string;
654
+ };
655
+ completion: {
656
+ type: string;
657
+ };
658
+ ownerId: {
659
+ type: string;
660
+ minLength: number;
661
+ };
662
+ scope: {
663
+ type: string;
664
+ };
665
+ constraints: {
666
+ type: string;
667
+ maxItems: number;
668
+ items: {
669
+ $ref: string;
670
+ };
671
+ };
672
+ assumptions: {
673
+ type: string;
674
+ maxItems: number;
675
+ items: {
676
+ type: string;
677
+ };
678
+ };
679
+ questions: {
680
+ type: string;
681
+ maxItems: number;
682
+ items: {
683
+ type: string;
684
+ };
685
+ };
686
+ risks: {
687
+ type: string;
688
+ maxItems: number;
689
+ items: {
690
+ $ref: string;
691
+ };
692
+ };
693
+ participants: {
694
+ type: string;
695
+ maxItems: number;
696
+ items: {
697
+ type: string;
698
+ };
699
+ };
700
+ roles: {
701
+ type: string;
702
+ maxItems: number;
703
+ items: {
704
+ type: string;
705
+ };
706
+ };
707
+ agents: {
708
+ type: string;
709
+ maxItems: number;
710
+ items: {
711
+ type: string;
712
+ };
713
+ };
714
+ decision: {
715
+ type: string;
716
+ };
717
+ plan: {
718
+ type: string;
719
+ };
720
+ attachments: {
721
+ type: string;
722
+ maxItems: number;
723
+ items: {
724
+ type: string;
725
+ };
726
+ };
727
+ };
728
+ additionalProperties: boolean;
729
+ };
730
+ contractRef: {
731
+ type: string;
732
+ required: string[];
733
+ properties: {
734
+ revision: {
735
+ type: string;
736
+ minLength: number;
737
+ };
738
+ bodyHash: {
739
+ $ref: string;
740
+ };
741
+ bodyRef: {
742
+ type: string;
743
+ };
744
+ body: {
745
+ $ref: string;
746
+ };
747
+ };
748
+ additionalProperties: boolean;
749
+ };
750
+ effectiveContractRef: {
751
+ allOf: ({
752
+ $ref: string;
753
+ type?: never;
754
+ required?: never;
755
+ properties?: never;
756
+ } | {
757
+ type: string;
758
+ required: string[];
759
+ properties: {
760
+ acceptedBy: {
761
+ type: string;
762
+ minItems: number;
763
+ uniqueItems: boolean;
764
+ items: {
765
+ type: string;
766
+ minLength: number;
767
+ };
768
+ };
769
+ acceptedAt: {
770
+ type: string;
771
+ format: string;
772
+ };
773
+ };
774
+ $ref?: never;
775
+ })[];
776
+ };
777
+ contractHeads: {
778
+ type: string;
779
+ properties: {
780
+ proposed: {
781
+ $ref: string;
782
+ };
783
+ effective: {
784
+ $ref: string;
785
+ };
786
+ };
787
+ additionalProperties: boolean;
788
+ };
789
+ projection: {
790
+ type: string;
791
+ required: string[];
792
+ properties: {
793
+ revision: {
794
+ type: string;
795
+ minLength: number;
796
+ };
797
+ title: {
798
+ type: string;
799
+ minLength: number;
800
+ maxLength: number;
801
+ };
802
+ status: {
803
+ type: string;
804
+ enum: string[];
805
+ };
806
+ kindRef: {
807
+ $ref: string;
808
+ };
809
+ appearance: {
810
+ $ref: string;
811
+ };
812
+ attachmentCount: {
813
+ type: string;
814
+ minimum: number;
815
+ };
816
+ operationCount: {
817
+ type: string;
818
+ minimum: number;
819
+ };
820
+ };
821
+ additionalProperties: boolean;
822
+ };
823
+ recurrence: {
824
+ oneOf: ({
825
+ type: string;
826
+ required: string[];
827
+ properties: {
828
+ frequency: {
829
+ const: string;
830
+ };
831
+ time: {
832
+ type: string;
833
+ pattern: string;
834
+ };
835
+ timezone: {
836
+ type: string;
837
+ minLength: number;
838
+ };
839
+ days?: never;
840
+ };
841
+ additionalProperties: boolean;
842
+ } | {
843
+ type: string;
844
+ required: string[];
845
+ properties: {
846
+ frequency: {
847
+ const: string;
848
+ };
849
+ days: {
850
+ type: string;
851
+ minItems: number;
852
+ uniqueItems: boolean;
853
+ items: {
854
+ type: string;
855
+ enum: string[];
856
+ };
857
+ };
858
+ time: {
859
+ type: string;
860
+ pattern: string;
861
+ };
862
+ timezone: {
863
+ type: string;
864
+ minLength: number;
865
+ };
866
+ };
867
+ additionalProperties: boolean;
868
+ })[];
869
+ };
870
+ automation: {
871
+ type: string;
872
+ required: string[];
873
+ properties: {
874
+ provider: {
875
+ const: string;
876
+ };
877
+ scheduleId: {
878
+ type: string;
879
+ minLength: number;
880
+ };
881
+ actionId: {
882
+ type: string;
883
+ minLength: number;
884
+ };
885
+ recurrence: {
886
+ $ref: string;
887
+ };
888
+ status: {
889
+ type: string;
890
+ enum: string[];
891
+ };
892
+ nextRunAt: {
893
+ type: string;
894
+ format: string;
895
+ };
896
+ };
897
+ additionalProperties: boolean;
898
+ };
899
+ bindings: {
900
+ type: string;
901
+ properties: {
902
+ governanceProposal: {
903
+ type: string;
904
+ };
905
+ claims: {
906
+ type: string;
907
+ };
908
+ automations: {
909
+ type: string;
910
+ maxItems: number;
911
+ items: {
912
+ $ref: string;
913
+ };
914
+ };
915
+ context: {
916
+ type: string;
917
+ maxItems: number;
918
+ items: {
919
+ type: string;
920
+ };
921
+ };
922
+ };
923
+ additionalProperties: boolean;
924
+ };
925
+ };
926
+ };
230
927
  "topic-file-attachment": {
231
928
  $schema: string;
232
929
  $id: string;
@@ -307,13 +1004,79 @@ export declare const SCHEMA_REGISTRY: Readonly<{
307
1004
  type: string;
308
1005
  pattern: string;
309
1006
  };
1007
+ title: {
1008
+ type: string;
1009
+ minLength: number;
1010
+ maxLength: number;
1011
+ };
1012
+ currentState: {
1013
+ type: string;
1014
+ minLength: number;
1015
+ maxLength: number;
1016
+ };
310
1017
  status: {
311
1018
  type: string;
312
1019
  };
1020
+ kind: {
1021
+ type: string;
1022
+ enum: string[];
1023
+ };
1024
+ domain: {
1025
+ type: string;
1026
+ required: string[];
1027
+ properties: {
1028
+ id: {
1029
+ type: string;
1030
+ minLength: number;
1031
+ };
1032
+ name: {
1033
+ type: string;
1034
+ minLength: number;
1035
+ };
1036
+ };
1037
+ additionalProperties: boolean;
1038
+ };
1039
+ context: {
1040
+ type: string;
1041
+ items: {
1042
+ type: string;
1043
+ required: string[];
1044
+ properties: {
1045
+ type: {
1046
+ type: string;
1047
+ minLength: number;
1048
+ };
1049
+ id: {
1050
+ type: string;
1051
+ minLength: number;
1052
+ };
1053
+ };
1054
+ additionalProperties: boolean;
1055
+ };
1056
+ };
1057
+ sourceKinds: {
1058
+ type: string;
1059
+ uniqueItems: boolean;
1060
+ items: {
1061
+ type: string;
1062
+ enum: string[];
1063
+ };
1064
+ };
313
1065
  latestActivityAt: {
314
1066
  type: string;
315
1067
  format: string;
316
1068
  };
1069
+ latestEventId: {
1070
+ type: string;
1071
+ pattern: string;
1072
+ };
1073
+ participated: {
1074
+ type: string;
1075
+ };
1076
+ unread: {
1077
+ type: string;
1078
+ enum: string[];
1079
+ };
317
1080
  notificationMode: {
318
1081
  type: string;
319
1082
  enum: string[];
@@ -322,6 +1085,66 @@ export declare const SCHEMA_REGISTRY: Readonly<{
322
1085
  type: string;
323
1086
  enum: string[];
324
1087
  };
1088
+ indexedAt: {
1089
+ type: string;
1090
+ format: string;
1091
+ };
1092
+ };
1093
+ additionalProperties: boolean;
1094
+ };
1095
+ "topic-index": {
1096
+ $schema: string;
1097
+ $id: string;
1098
+ title: string;
1099
+ type: string;
1100
+ required: string[];
1101
+ properties: {
1102
+ version: {
1103
+ const: number;
1104
+ };
1105
+ updatedAt: {
1106
+ type: string;
1107
+ format: string;
1108
+ };
1109
+ entries: {
1110
+ type: string;
1111
+ items: {
1112
+ allOf: ({
1113
+ $ref: string;
1114
+ type?: never;
1115
+ required?: never;
1116
+ properties?: never;
1117
+ } | {
1118
+ type: string;
1119
+ required: string[];
1120
+ properties: {
1121
+ status: {
1122
+ type: string;
1123
+ enum: string[];
1124
+ };
1125
+ };
1126
+ $ref?: never;
1127
+ })[];
1128
+ };
1129
+ };
1130
+ tombstones: {
1131
+ type: string;
1132
+ items: {
1133
+ type: string;
1134
+ required: string[];
1135
+ properties: {
1136
+ roomId: {
1137
+ type: string;
1138
+ minLength: number;
1139
+ };
1140
+ removedAt: {
1141
+ type: string;
1142
+ format: string;
1143
+ };
1144
+ };
1145
+ additionalProperties: boolean;
1146
+ };
1147
+ };
325
1148
  };
326
1149
  additionalProperties: boolean;
327
1150
  };
@@ -374,7 +1197,7 @@ export declare const SCHEMA_REGISTRY: Readonly<{
374
1197
  required: string[];
375
1198
  properties: {
376
1199
  version: {
377
- const: number;
1200
+ enum: number[];
378
1201
  };
379
1202
  operationId: {
380
1203
  type: string;
@@ -408,6 +1231,23 @@ export declare const SCHEMA_REGISTRY: Readonly<{
408
1231
  };
409
1232
  };
410
1233
  additionalProperties: boolean;
1234
+ allOf: {
1235
+ if: {
1236
+ properties: {
1237
+ type: {
1238
+ enum: string[];
1239
+ };
1240
+ };
1241
+ required: string[];
1242
+ };
1243
+ then: {
1244
+ properties: {
1245
+ version: {
1246
+ const: number;
1247
+ };
1248
+ };
1249
+ };
1250
+ }[];
411
1251
  };
412
1252
  "topic-preferences": {
413
1253
  $schema: string;
@@ -417,7 +1257,7 @@ export declare const SCHEMA_REGISTRY: Readonly<{
417
1257
  required: string[];
418
1258
  properties: {
419
1259
  version: {
420
- const: number;
1260
+ enum: number[];
421
1261
  };
422
1262
  topics: {
423
1263
  type: string;
@@ -435,7 +1275,63 @@ export declare const SCHEMA_REGISTRY: Readonly<{
435
1275
  markedUnreadFrom: {
436
1276
  type: string[];
437
1277
  };
1278
+ companion: {
1279
+ type: string;
1280
+ required: string[];
1281
+ properties: {
1282
+ oracleDid: {
1283
+ type: string;
1284
+ minLength: number;
1285
+ };
1286
+ sessionId: {
1287
+ type: string;
1288
+ minLength: number;
1289
+ };
1290
+ lastContextRevision: {
1291
+ type: string;
1292
+ minLength: number;
1293
+ };
1294
+ };
1295
+ additionalProperties: boolean;
1296
+ };
1297
+ reminder: {
1298
+ oneOf: ({
1299
+ type: string;
1300
+ required: string[];
1301
+ properties: {
1302
+ mode: {
1303
+ const: string;
1304
+ };
1305
+ at: {
1306
+ type: string;
1307
+ format: string;
1308
+ };
1309
+ timezone: {
1310
+ type: string;
1311
+ minLength: number;
1312
+ };
1313
+ minutes?: never;
1314
+ };
1315
+ additionalProperties: boolean;
1316
+ } | {
1317
+ type: string;
1318
+ required: string[];
1319
+ properties: {
1320
+ mode: {
1321
+ const: string;
1322
+ };
1323
+ minutes: {
1324
+ type: string;
1325
+ minimum: number;
1326
+ };
1327
+ at?: never;
1328
+ timezone?: never;
1329
+ };
1330
+ additionalProperties: boolean;
1331
+ })[];
1332
+ };
438
1333
  };
1334
+ additionalProperties: boolean;
439
1335
  };
440
1336
  };
441
1337
  autoFollow: {
@@ -567,7 +1463,7 @@ export declare const SCHEMA_REGISTRY: Readonly<{
567
1463
  required: string[];
568
1464
  properties: {
569
1465
  version: {
570
- const: number;
1466
+ enum: number[];
571
1467
  };
572
1468
  id: {
573
1469
  type: string;
@@ -647,6 +1543,22 @@ export declare const SCHEMA_REGISTRY: Readonly<{
647
1543
  };
648
1544
  };
649
1545
  additionalProperties: boolean;
1546
+ allOf: {
1547
+ if: {
1548
+ properties: {
1549
+ version: {
1550
+ const: number;
1551
+ };
1552
+ };
1553
+ required: string[];
1554
+ };
1555
+ then: {
1556
+ properties: {
1557
+ kind: boolean;
1558
+ };
1559
+ required: string[];
1560
+ };
1561
+ }[];
650
1562
  };
651
1563
  "topic-state": {
652
1564
  $schema: string;
@@ -867,4 +1779,4 @@ export declare const SCHEMA_REGISTRY: Readonly<{
867
1779
  };
868
1780
  }>;
869
1781
  export type ContractName = keyof typeof SCHEMA_REGISTRY;
870
- export declare const CONTRACT_NAMES: readonly ("action-receipt" | "agent-run" | "external-session-binding" | "room-policy" | "topic-capsule" | "topic-file-attachment" | "topic-index-entry" | "topic-message" | "topic-operation" | "topic-preferences" | "topic-record" | "topic-record-message" | "topic-relation" | "topic-root" | "topic-state" | "topic-source-message")[];
1782
+ export declare const CONTRACT_NAMES: readonly ("action-receipt" | "agent-run" | "external-session-binding" | "room-policy" | "topic-capsule" | "topic-contract-state" | "topic-file-attachment" | "topic-index-entry" | "topic-index" | "topic-message" | "topic-operation" | "topic-preferences" | "topic-record" | "topic-record-message" | "topic-relation" | "topic-root" | "topic-state" | "topic-source-message")[];