@supersuit/transcript-md 0.1.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.
@@ -0,0 +1,1651 @@
1
+ {
2
+ "type": "object",
3
+ "required": [
4
+ "schema_version",
5
+ "kind",
6
+ "id",
7
+ "title",
8
+ "description",
9
+ "read_when",
10
+ "date",
11
+ "start",
12
+ "as_of",
13
+ "audience",
14
+ "keep",
15
+ "participants",
16
+ "sources",
17
+ "connections",
18
+ "aliases",
19
+ "review",
20
+ "body_format",
21
+ "legacy",
22
+ "extensions"
23
+ ],
24
+ "properties": {
25
+ "schema_version": {
26
+ "type": "integer",
27
+ "const": 1
28
+ },
29
+ "kind": {
30
+ "const": "conversation"
31
+ },
32
+ "id": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "title": {
37
+ "anyOf": [
38
+ {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ {
43
+ "type": "null"
44
+ }
45
+ ]
46
+ },
47
+ "description": {
48
+ "anyOf": [
49
+ {
50
+ "type": "string"
51
+ },
52
+ {
53
+ "type": "null"
54
+ }
55
+ ]
56
+ },
57
+ "read_when": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string",
61
+ "minLength": 1
62
+ }
63
+ },
64
+ "date": {
65
+ "anyOf": [
66
+ {
67
+ "type": "string",
68
+ "minLength": 1,
69
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
70
+ },
71
+ {
72
+ "type": "null"
73
+ }
74
+ ]
75
+ },
76
+ "start": {
77
+ "anyOf": [
78
+ {
79
+ "type": "object",
80
+ "required": [
81
+ "local",
82
+ "timezone",
83
+ "instant",
84
+ "precision",
85
+ "evidence"
86
+ ],
87
+ "properties": {
88
+ "local": {
89
+ "anyOf": [
90
+ {
91
+ "type": "string",
92
+ "minLength": 1,
93
+ "pattern": "^[0-9]{2}:[0-9]{2}(:[0-9]{2})?$"
94
+ },
95
+ {
96
+ "type": "null"
97
+ }
98
+ ]
99
+ },
100
+ "timezone": {
101
+ "anyOf": [
102
+ {
103
+ "type": "string",
104
+ "minLength": 1
105
+ },
106
+ {
107
+ "type": "null"
108
+ }
109
+ ]
110
+ },
111
+ "instant": {
112
+ "anyOf": [
113
+ {
114
+ "type": "string",
115
+ "minLength": 1,
116
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$"
117
+ },
118
+ {
119
+ "type": "null"
120
+ }
121
+ ]
122
+ },
123
+ "precision": {
124
+ "enum": [
125
+ "minute",
126
+ "second"
127
+ ]
128
+ },
129
+ "evidence": {
130
+ "type": "array",
131
+ "items": {
132
+ "type": "object",
133
+ "required": [
134
+ "kind",
135
+ "locator",
136
+ "revision",
137
+ "note"
138
+ ],
139
+ "properties": {
140
+ "kind": {
141
+ "enum": [
142
+ "operator-decision",
143
+ "source-metadata",
144
+ "source-span",
145
+ "existing-header",
146
+ "machine-check"
147
+ ]
148
+ },
149
+ "locator": {
150
+ "type": "string",
151
+ "minLength": 1
152
+ },
153
+ "revision": {
154
+ "anyOf": [
155
+ {
156
+ "oneOf": [
157
+ {
158
+ "type": "object",
159
+ "required": [
160
+ "kind",
161
+ "value"
162
+ ],
163
+ "properties": {
164
+ "kind": {
165
+ "const": "sha256"
166
+ },
167
+ "value": {
168
+ "type": "string",
169
+ "minLength": 1,
170
+ "pattern": "^[a-f0-9]{64}$"
171
+ }
172
+ },
173
+ "additionalProperties": false
174
+ },
175
+ {
176
+ "type": "object",
177
+ "required": [
178
+ "kind",
179
+ "value"
180
+ ],
181
+ "properties": {
182
+ "kind": {
183
+ "const": "git"
184
+ },
185
+ "value": {
186
+ "type": "string",
187
+ "minLength": 1,
188
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
189
+ }
190
+ },
191
+ "additionalProperties": false
192
+ }
193
+ ]
194
+ },
195
+ {
196
+ "type": "null"
197
+ }
198
+ ]
199
+ },
200
+ "note": {
201
+ "type": "string",
202
+ "minLength": 1,
203
+ "pattern": "^[^\\r\\n]+$"
204
+ }
205
+ },
206
+ "additionalProperties": false
207
+ }
208
+ }
209
+ },
210
+ "additionalProperties": false
211
+ },
212
+ {
213
+ "type": "null"
214
+ }
215
+ ]
216
+ },
217
+ "as_of": {
218
+ "anyOf": [
219
+ {
220
+ "type": "string",
221
+ "minLength": 1,
222
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
223
+ },
224
+ {
225
+ "type": "null"
226
+ }
227
+ ]
228
+ },
229
+ "audience": {
230
+ "anyOf": [
231
+ {
232
+ "type": "string",
233
+ "minLength": 1
234
+ },
235
+ {
236
+ "type": "null"
237
+ }
238
+ ]
239
+ },
240
+ "keep": {
241
+ "type": "object",
242
+ "required": [
243
+ "scope",
244
+ "group",
245
+ "decision"
246
+ ],
247
+ "properties": {
248
+ "scope": {
249
+ "enum": [
250
+ "home",
251
+ "family",
252
+ "share",
253
+ "unknown"
254
+ ]
255
+ },
256
+ "group": {
257
+ "anyOf": [
258
+ {
259
+ "type": "string",
260
+ "minLength": 1
261
+ },
262
+ {
263
+ "type": "null"
264
+ }
265
+ ]
266
+ },
267
+ "decision": {
268
+ "anyOf": [
269
+ {
270
+ "type": "object",
271
+ "required": [
272
+ "kind",
273
+ "locator",
274
+ "revision",
275
+ "note"
276
+ ],
277
+ "properties": {
278
+ "kind": {
279
+ "enum": [
280
+ "operator-decision",
281
+ "source-metadata",
282
+ "source-span",
283
+ "existing-header",
284
+ "machine-check"
285
+ ]
286
+ },
287
+ "locator": {
288
+ "type": "string",
289
+ "minLength": 1
290
+ },
291
+ "revision": {
292
+ "anyOf": [
293
+ {
294
+ "oneOf": [
295
+ {
296
+ "type": "object",
297
+ "required": [
298
+ "kind",
299
+ "value"
300
+ ],
301
+ "properties": {
302
+ "kind": {
303
+ "const": "sha256"
304
+ },
305
+ "value": {
306
+ "type": "string",
307
+ "minLength": 1,
308
+ "pattern": "^[a-f0-9]{64}$"
309
+ }
310
+ },
311
+ "additionalProperties": false
312
+ },
313
+ {
314
+ "type": "object",
315
+ "required": [
316
+ "kind",
317
+ "value"
318
+ ],
319
+ "properties": {
320
+ "kind": {
321
+ "const": "git"
322
+ },
323
+ "value": {
324
+ "type": "string",
325
+ "minLength": 1,
326
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
327
+ }
328
+ },
329
+ "additionalProperties": false
330
+ }
331
+ ]
332
+ },
333
+ {
334
+ "type": "null"
335
+ }
336
+ ]
337
+ },
338
+ "note": {
339
+ "type": "string",
340
+ "minLength": 1,
341
+ "pattern": "^[^\\r\\n]+$"
342
+ }
343
+ },
344
+ "additionalProperties": false
345
+ },
346
+ {
347
+ "type": "null"
348
+ }
349
+ ]
350
+ }
351
+ },
352
+ "additionalProperties": false
353
+ },
354
+ "participants": {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "object",
358
+ "required": [
359
+ "id",
360
+ "label",
361
+ "person",
362
+ "status",
363
+ "role",
364
+ "evidence"
365
+ ],
366
+ "properties": {
367
+ "id": {
368
+ "type": "string",
369
+ "minLength": 1,
370
+ "pattern": "^p-[a-z0-9]+(?:-[a-z0-9]+)*$"
371
+ },
372
+ "label": {
373
+ "type": "string",
374
+ "minLength": 1
375
+ },
376
+ "person": {
377
+ "anyOf": [
378
+ {
379
+ "type": "string",
380
+ "minLength": 1,
381
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
382
+ },
383
+ {
384
+ "type": "null"
385
+ }
386
+ ]
387
+ },
388
+ "status": {
389
+ "enum": [
390
+ "unknown",
391
+ "proposed",
392
+ "confirmed"
393
+ ]
394
+ },
395
+ "role": {
396
+ "enum": [
397
+ "speaker",
398
+ "attendee",
399
+ "unknown"
400
+ ]
401
+ },
402
+ "evidence": {
403
+ "type": "array",
404
+ "items": {
405
+ "type": "object",
406
+ "required": [
407
+ "kind",
408
+ "locator",
409
+ "revision",
410
+ "note"
411
+ ],
412
+ "properties": {
413
+ "kind": {
414
+ "enum": [
415
+ "operator-decision",
416
+ "source-metadata",
417
+ "source-span",
418
+ "existing-header",
419
+ "machine-check"
420
+ ]
421
+ },
422
+ "locator": {
423
+ "type": "string",
424
+ "minLength": 1
425
+ },
426
+ "revision": {
427
+ "anyOf": [
428
+ {
429
+ "oneOf": [
430
+ {
431
+ "type": "object",
432
+ "required": [
433
+ "kind",
434
+ "value"
435
+ ],
436
+ "properties": {
437
+ "kind": {
438
+ "const": "sha256"
439
+ },
440
+ "value": {
441
+ "type": "string",
442
+ "minLength": 1,
443
+ "pattern": "^[a-f0-9]{64}$"
444
+ }
445
+ },
446
+ "additionalProperties": false
447
+ },
448
+ {
449
+ "type": "object",
450
+ "required": [
451
+ "kind",
452
+ "value"
453
+ ],
454
+ "properties": {
455
+ "kind": {
456
+ "const": "git"
457
+ },
458
+ "value": {
459
+ "type": "string",
460
+ "minLength": 1,
461
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
462
+ }
463
+ },
464
+ "additionalProperties": false
465
+ }
466
+ ]
467
+ },
468
+ {
469
+ "type": "null"
470
+ }
471
+ ]
472
+ },
473
+ "note": {
474
+ "type": "string",
475
+ "minLength": 1,
476
+ "pattern": "^[^\\r\\n]+$"
477
+ }
478
+ },
479
+ "additionalProperties": false
480
+ }
481
+ }
482
+ },
483
+ "additionalProperties": false
484
+ }
485
+ },
486
+ "sources": {
487
+ "type": "array",
488
+ "items": {
489
+ "type": "object",
490
+ "required": [
491
+ "id",
492
+ "type",
493
+ "service",
494
+ "recording_id",
495
+ "vendor_id",
496
+ "roles",
497
+ "locators",
498
+ "availability",
499
+ "evidence"
500
+ ],
501
+ "properties": {
502
+ "id": {
503
+ "type": "string",
504
+ "minLength": 1,
505
+ "pattern": "^c-[a-z0-9]+(?:-[a-z0-9]+)*$"
506
+ },
507
+ "type": {
508
+ "anyOf": [
509
+ {
510
+ "type": "string",
511
+ "minLength": 1
512
+ },
513
+ {
514
+ "type": "null"
515
+ }
516
+ ]
517
+ },
518
+ "service": {
519
+ "anyOf": [
520
+ {
521
+ "type": "string",
522
+ "minLength": 1,
523
+ "pattern": "^[a-z][a-z0-9-]*$"
524
+ },
525
+ {
526
+ "type": "null"
527
+ }
528
+ ]
529
+ },
530
+ "recording_id": {
531
+ "anyOf": [
532
+ {
533
+ "type": "string",
534
+ "minLength": 1
535
+ },
536
+ {
537
+ "type": "null"
538
+ }
539
+ ]
540
+ },
541
+ "vendor_id": {
542
+ "anyOf": [
543
+ {
544
+ "type": "string",
545
+ "minLength": 1
546
+ },
547
+ {
548
+ "type": "null"
549
+ }
550
+ ]
551
+ },
552
+ "roles": {
553
+ "type": "array",
554
+ "items": {
555
+ "enum": [
556
+ "transcript-body",
557
+ "metadata",
558
+ "generated-notes",
559
+ "supplemental",
560
+ "unknown"
561
+ ]
562
+ }
563
+ },
564
+ "locators": {
565
+ "type": "array",
566
+ "items": {
567
+ "type": "object",
568
+ "required": [
569
+ "kind",
570
+ "path",
571
+ "url",
572
+ "service_id",
573
+ "media_type",
574
+ "sha256",
575
+ "bytes",
576
+ "checked_at",
577
+ "backup"
578
+ ],
579
+ "properties": {
580
+ "kind": {
581
+ "enum": [
582
+ "bundled",
583
+ "external-local",
584
+ "service"
585
+ ]
586
+ },
587
+ "path": {
588
+ "anyOf": [
589
+ {
590
+ "type": "string",
591
+ "minLength": 1
592
+ },
593
+ {
594
+ "type": "null"
595
+ }
596
+ ]
597
+ },
598
+ "url": {
599
+ "anyOf": [
600
+ {
601
+ "type": "string",
602
+ "minLength": 1
603
+ },
604
+ {
605
+ "type": "null"
606
+ }
607
+ ]
608
+ },
609
+ "service_id": {
610
+ "anyOf": [
611
+ {
612
+ "type": "string",
613
+ "minLength": 1
614
+ },
615
+ {
616
+ "type": "null"
617
+ }
618
+ ]
619
+ },
620
+ "media_type": {
621
+ "anyOf": [
622
+ {
623
+ "type": "string",
624
+ "minLength": 1
625
+ },
626
+ {
627
+ "type": "null"
628
+ }
629
+ ]
630
+ },
631
+ "sha256": {
632
+ "anyOf": [
633
+ {
634
+ "type": "string",
635
+ "minLength": 1,
636
+ "pattern": "^[a-f0-9]{64}$"
637
+ },
638
+ {
639
+ "type": "null"
640
+ }
641
+ ]
642
+ },
643
+ "bytes": {
644
+ "anyOf": [
645
+ {
646
+ "type": "integer",
647
+ "minimum": 0
648
+ },
649
+ {
650
+ "type": "null"
651
+ }
652
+ ]
653
+ },
654
+ "checked_at": {
655
+ "anyOf": [
656
+ {
657
+ "type": "string",
658
+ "minLength": 1,
659
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$"
660
+ },
661
+ {
662
+ "type": "null"
663
+ }
664
+ ]
665
+ },
666
+ "backup": {
667
+ "type": "object",
668
+ "required": [
669
+ "status",
670
+ "locator",
671
+ "sha256",
672
+ "verified_at"
673
+ ],
674
+ "properties": {
675
+ "status": {
676
+ "enum": [
677
+ "unverified",
678
+ "verified-owned"
679
+ ]
680
+ },
681
+ "locator": {
682
+ "anyOf": [
683
+ {
684
+ "type": "string",
685
+ "minLength": 1
686
+ },
687
+ {
688
+ "type": "null"
689
+ }
690
+ ]
691
+ },
692
+ "sha256": {
693
+ "anyOf": [
694
+ {
695
+ "type": "string",
696
+ "minLength": 1,
697
+ "pattern": "^[a-f0-9]{64}$"
698
+ },
699
+ {
700
+ "type": "null"
701
+ }
702
+ ]
703
+ },
704
+ "verified_at": {
705
+ "anyOf": [
706
+ {
707
+ "type": "string",
708
+ "minLength": 1,
709
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})$"
710
+ },
711
+ {
712
+ "type": "null"
713
+ }
714
+ ]
715
+ }
716
+ },
717
+ "additionalProperties": false
718
+ }
719
+ },
720
+ "additionalProperties": false
721
+ }
722
+ },
723
+ "availability": {
724
+ "enum": [
725
+ "local",
726
+ "remote-only",
727
+ "missing",
728
+ "inaccessible",
729
+ "unknown"
730
+ ]
731
+ },
732
+ "evidence": {
733
+ "type": "array",
734
+ "items": {
735
+ "type": "object",
736
+ "required": [
737
+ "kind",
738
+ "locator",
739
+ "revision",
740
+ "note"
741
+ ],
742
+ "properties": {
743
+ "kind": {
744
+ "enum": [
745
+ "operator-decision",
746
+ "source-metadata",
747
+ "source-span",
748
+ "existing-header",
749
+ "machine-check"
750
+ ]
751
+ },
752
+ "locator": {
753
+ "type": "string",
754
+ "minLength": 1
755
+ },
756
+ "revision": {
757
+ "anyOf": [
758
+ {
759
+ "oneOf": [
760
+ {
761
+ "type": "object",
762
+ "required": [
763
+ "kind",
764
+ "value"
765
+ ],
766
+ "properties": {
767
+ "kind": {
768
+ "const": "sha256"
769
+ },
770
+ "value": {
771
+ "type": "string",
772
+ "minLength": 1,
773
+ "pattern": "^[a-f0-9]{64}$"
774
+ }
775
+ },
776
+ "additionalProperties": false
777
+ },
778
+ {
779
+ "type": "object",
780
+ "required": [
781
+ "kind",
782
+ "value"
783
+ ],
784
+ "properties": {
785
+ "kind": {
786
+ "const": "git"
787
+ },
788
+ "value": {
789
+ "type": "string",
790
+ "minLength": 1,
791
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
792
+ }
793
+ },
794
+ "additionalProperties": false
795
+ }
796
+ ]
797
+ },
798
+ {
799
+ "type": "null"
800
+ }
801
+ ]
802
+ },
803
+ "note": {
804
+ "type": "string",
805
+ "minLength": 1,
806
+ "pattern": "^[^\\r\\n]+$"
807
+ }
808
+ },
809
+ "additionalProperties": false
810
+ }
811
+ }
812
+ },
813
+ "additionalProperties": false
814
+ }
815
+ },
816
+ "connections": {
817
+ "type": "array",
818
+ "items": {
819
+ "type": "object",
820
+ "required": [
821
+ "relation",
822
+ "target",
823
+ "citation"
824
+ ],
825
+ "properties": {
826
+ "relation": {
827
+ "enum": [
828
+ "person",
829
+ "project",
830
+ "same-conversation-candidate",
831
+ "continues",
832
+ "related",
833
+ "supersedes"
834
+ ]
835
+ },
836
+ "target": {
837
+ "type": "object",
838
+ "required": [
839
+ "kind",
840
+ "id"
841
+ ],
842
+ "properties": {
843
+ "kind": {
844
+ "enum": [
845
+ "person",
846
+ "project",
847
+ "conversation",
848
+ "path"
849
+ ]
850
+ },
851
+ "id": {
852
+ "type": "string",
853
+ "minLength": 1
854
+ }
855
+ },
856
+ "additionalProperties": false
857
+ },
858
+ "citation": {
859
+ "anyOf": [
860
+ {
861
+ "type": "object",
862
+ "required": [
863
+ "repository",
864
+ "path",
865
+ "record_id",
866
+ "revision",
867
+ "selector",
868
+ "sources"
869
+ ],
870
+ "properties": {
871
+ "repository": {
872
+ "anyOf": [
873
+ {
874
+ "type": "string",
875
+ "minLength": 1
876
+ },
877
+ {
878
+ "type": "null"
879
+ }
880
+ ]
881
+ },
882
+ "path": {
883
+ "type": "string",
884
+ "minLength": 1
885
+ },
886
+ "record_id": {
887
+ "type": "string",
888
+ "minLength": 1
889
+ },
890
+ "revision": {
891
+ "oneOf": [
892
+ {
893
+ "type": "object",
894
+ "required": [
895
+ "kind",
896
+ "value"
897
+ ],
898
+ "properties": {
899
+ "kind": {
900
+ "const": "sha256"
901
+ },
902
+ "value": {
903
+ "type": "string",
904
+ "minLength": 1,
905
+ "pattern": "^[a-f0-9]{64}$"
906
+ }
907
+ },
908
+ "additionalProperties": false
909
+ },
910
+ {
911
+ "type": "object",
912
+ "required": [
913
+ "kind",
914
+ "value"
915
+ ],
916
+ "properties": {
917
+ "kind": {
918
+ "const": "git"
919
+ },
920
+ "value": {
921
+ "type": "string",
922
+ "minLength": 1,
923
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
924
+ }
925
+ },
926
+ "additionalProperties": false
927
+ }
928
+ ]
929
+ },
930
+ "selector": {
931
+ "oneOf": [
932
+ {
933
+ "type": "object",
934
+ "required": [
935
+ "kind",
936
+ "ids",
937
+ "text_sha256"
938
+ ],
939
+ "properties": {
940
+ "kind": {
941
+ "const": "turn"
942
+ },
943
+ "ids": {
944
+ "type": "array",
945
+ "items": {
946
+ "type": "string",
947
+ "minLength": 1,
948
+ "pattern": "^t-[0-9]{6,}$"
949
+ }
950
+ },
951
+ "text_sha256": {
952
+ "type": "string",
953
+ "minLength": 1,
954
+ "pattern": "^[a-f0-9]{64}$"
955
+ }
956
+ },
957
+ "additionalProperties": false
958
+ },
959
+ {
960
+ "type": "object",
961
+ "required": [
962
+ "kind",
963
+ "start",
964
+ "end",
965
+ "text_sha256"
966
+ ],
967
+ "properties": {
968
+ "kind": {
969
+ "const": "lines"
970
+ },
971
+ "start": {
972
+ "type": "integer",
973
+ "minimum": 1
974
+ },
975
+ "end": {
976
+ "type": "integer",
977
+ "minimum": 1
978
+ },
979
+ "text_sha256": {
980
+ "type": "string",
981
+ "minLength": 1,
982
+ "pattern": "^[a-f0-9]{64}$"
983
+ }
984
+ },
985
+ "additionalProperties": false
986
+ }
987
+ ]
988
+ },
989
+ "sources": {
990
+ "type": "array",
991
+ "items": {
992
+ "type": "object",
993
+ "required": [
994
+ "capture",
995
+ "locator",
996
+ "start_ms",
997
+ "end_ms"
998
+ ],
999
+ "properties": {
1000
+ "capture": {
1001
+ "type": "string",
1002
+ "minLength": 1,
1003
+ "pattern": "^c-[a-z0-9]+(?:-[a-z0-9]+)*$"
1004
+ },
1005
+ "locator": {
1006
+ "anyOf": [
1007
+ {
1008
+ "type": "integer",
1009
+ "minimum": 0
1010
+ },
1011
+ {
1012
+ "type": "null"
1013
+ }
1014
+ ]
1015
+ },
1016
+ "start_ms": {
1017
+ "anyOf": [
1018
+ {
1019
+ "type": "number",
1020
+ "minimum": 0
1021
+ },
1022
+ {
1023
+ "type": "null"
1024
+ }
1025
+ ]
1026
+ },
1027
+ "end_ms": {
1028
+ "anyOf": [
1029
+ {
1030
+ "type": "number",
1031
+ "minimum": 0
1032
+ },
1033
+ {
1034
+ "type": "null"
1035
+ }
1036
+ ]
1037
+ }
1038
+ },
1039
+ "additionalProperties": false
1040
+ }
1041
+ }
1042
+ },
1043
+ "additionalProperties": false
1044
+ },
1045
+ {
1046
+ "type": "null"
1047
+ }
1048
+ ]
1049
+ }
1050
+ },
1051
+ "additionalProperties": false
1052
+ }
1053
+ },
1054
+ "aliases": {
1055
+ "type": "array",
1056
+ "items": {
1057
+ "type": "object",
1058
+ "required": [
1059
+ "kind",
1060
+ "value",
1061
+ "namespace"
1062
+ ],
1063
+ "properties": {
1064
+ "kind": {
1065
+ "enum": [
1066
+ "record-id",
1067
+ "legacy-path",
1068
+ "source-id"
1069
+ ]
1070
+ },
1071
+ "value": {
1072
+ "type": "string",
1073
+ "minLength": 1
1074
+ },
1075
+ "namespace": {
1076
+ "anyOf": [
1077
+ {
1078
+ "type": "string",
1079
+ "minLength": 1
1080
+ },
1081
+ {
1082
+ "type": "null"
1083
+ }
1084
+ ]
1085
+ }
1086
+ },
1087
+ "additionalProperties": false
1088
+ }
1089
+ },
1090
+ "review": {
1091
+ "type": "object",
1092
+ "required": [
1093
+ "transcription",
1094
+ "attribution",
1095
+ "processing",
1096
+ "evidence"
1097
+ ],
1098
+ "properties": {
1099
+ "transcription": {
1100
+ "enum": [
1101
+ "unreviewed",
1102
+ "machine-checked",
1103
+ "human-reviewed",
1104
+ "disputed"
1105
+ ]
1106
+ },
1107
+ "attribution": {
1108
+ "enum": [
1109
+ "unreviewed",
1110
+ "machine-checked",
1111
+ "human-reviewed",
1112
+ "disputed"
1113
+ ]
1114
+ },
1115
+ "processing": {
1116
+ "enum": [
1117
+ "unprocessed",
1118
+ "processed"
1119
+ ]
1120
+ },
1121
+ "evidence": {
1122
+ "type": "array",
1123
+ "items": {
1124
+ "type": "object",
1125
+ "required": [
1126
+ "kind",
1127
+ "locator",
1128
+ "revision",
1129
+ "note"
1130
+ ],
1131
+ "properties": {
1132
+ "kind": {
1133
+ "enum": [
1134
+ "operator-decision",
1135
+ "source-metadata",
1136
+ "source-span",
1137
+ "existing-header",
1138
+ "machine-check"
1139
+ ]
1140
+ },
1141
+ "locator": {
1142
+ "type": "string",
1143
+ "minLength": 1
1144
+ },
1145
+ "revision": {
1146
+ "anyOf": [
1147
+ {
1148
+ "oneOf": [
1149
+ {
1150
+ "type": "object",
1151
+ "required": [
1152
+ "kind",
1153
+ "value"
1154
+ ],
1155
+ "properties": {
1156
+ "kind": {
1157
+ "const": "sha256"
1158
+ },
1159
+ "value": {
1160
+ "type": "string",
1161
+ "minLength": 1,
1162
+ "pattern": "^[a-f0-9]{64}$"
1163
+ }
1164
+ },
1165
+ "additionalProperties": false
1166
+ },
1167
+ {
1168
+ "type": "object",
1169
+ "required": [
1170
+ "kind",
1171
+ "value"
1172
+ ],
1173
+ "properties": {
1174
+ "kind": {
1175
+ "const": "git"
1176
+ },
1177
+ "value": {
1178
+ "type": "string",
1179
+ "minLength": 1,
1180
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
1181
+ }
1182
+ },
1183
+ "additionalProperties": false
1184
+ }
1185
+ ]
1186
+ },
1187
+ {
1188
+ "type": "null"
1189
+ }
1190
+ ]
1191
+ },
1192
+ "note": {
1193
+ "type": "string",
1194
+ "minLength": 1,
1195
+ "pattern": "^[^\\r\\n]+$"
1196
+ }
1197
+ },
1198
+ "additionalProperties": false
1199
+ }
1200
+ }
1201
+ },
1202
+ "additionalProperties": false
1203
+ },
1204
+ "body_format": {
1205
+ "enum": [
1206
+ "turns-v1",
1207
+ "legacy"
1208
+ ]
1209
+ },
1210
+ "legacy": {
1211
+ "anyOf": [
1212
+ {
1213
+ "type": "object",
1214
+ "required": [
1215
+ "original_path",
1216
+ "original_revision",
1217
+ "raw_header_base64",
1218
+ "raw_header_sha256",
1219
+ "fields",
1220
+ "unparsed_keys",
1221
+ "body_sha256"
1222
+ ],
1223
+ "properties": {
1224
+ "original_path": {
1225
+ "type": "string",
1226
+ "minLength": 1
1227
+ },
1228
+ "original_revision": {
1229
+ "oneOf": [
1230
+ {
1231
+ "type": "object",
1232
+ "required": [
1233
+ "kind",
1234
+ "value"
1235
+ ],
1236
+ "properties": {
1237
+ "kind": {
1238
+ "const": "sha256"
1239
+ },
1240
+ "value": {
1241
+ "type": "string",
1242
+ "minLength": 1,
1243
+ "pattern": "^[a-f0-9]{64}$"
1244
+ }
1245
+ },
1246
+ "additionalProperties": false
1247
+ },
1248
+ {
1249
+ "type": "object",
1250
+ "required": [
1251
+ "kind",
1252
+ "value"
1253
+ ],
1254
+ "properties": {
1255
+ "kind": {
1256
+ "const": "git"
1257
+ },
1258
+ "value": {
1259
+ "type": "string",
1260
+ "minLength": 1,
1261
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
1262
+ }
1263
+ },
1264
+ "additionalProperties": false
1265
+ }
1266
+ ]
1267
+ },
1268
+ "raw_header_base64": {
1269
+ "anyOf": [
1270
+ {
1271
+ "type": "string"
1272
+ },
1273
+ {
1274
+ "type": "null"
1275
+ }
1276
+ ]
1277
+ },
1278
+ "raw_header_sha256": {
1279
+ "anyOf": [
1280
+ {
1281
+ "type": "string",
1282
+ "minLength": 1,
1283
+ "pattern": "^[a-f0-9]{64}$"
1284
+ },
1285
+ {
1286
+ "type": "null"
1287
+ }
1288
+ ]
1289
+ },
1290
+ "fields": {
1291
+ "type": "object",
1292
+ "required": [],
1293
+ "properties": {},
1294
+ "additionalProperties": true
1295
+ },
1296
+ "unparsed_keys": {
1297
+ "type": "array",
1298
+ "items": {
1299
+ "type": "string",
1300
+ "minLength": 1
1301
+ }
1302
+ },
1303
+ "body_sha256": {
1304
+ "type": "string",
1305
+ "minLength": 1,
1306
+ "pattern": "^[a-f0-9]{64}$"
1307
+ }
1308
+ },
1309
+ "additionalProperties": false
1310
+ },
1311
+ {
1312
+ "type": "null"
1313
+ }
1314
+ ]
1315
+ },
1316
+ "extensions": {
1317
+ "type": "object",
1318
+ "required": [],
1319
+ "properties": {
1320
+ "conversation_revision": {
1321
+ "type": "object",
1322
+ "required": [
1323
+ "next_turn_number",
1324
+ "retired_turn_ids",
1325
+ "protected_turns"
1326
+ ],
1327
+ "properties": {
1328
+ "next_turn_number": {
1329
+ "type": "integer",
1330
+ "minimum": 1
1331
+ },
1332
+ "retired_turn_ids": {
1333
+ "type": "array",
1334
+ "items": {
1335
+ "type": "string",
1336
+ "minLength": 1,
1337
+ "pattern": "^t-[0-9]{6,}$"
1338
+ }
1339
+ },
1340
+ "protected_turns": {
1341
+ "type": "array",
1342
+ "items": {
1343
+ "type": "object",
1344
+ "required": [
1345
+ "turn_id",
1346
+ "baseline_sha256",
1347
+ "reviewed_versions",
1348
+ "authorized_changes",
1349
+ "retired"
1350
+ ],
1351
+ "properties": {
1352
+ "turn_id": {
1353
+ "type": "string",
1354
+ "minLength": 1,
1355
+ "pattern": "^t-[0-9]{6,}$"
1356
+ },
1357
+ "baseline_sha256": {
1358
+ "type": "string",
1359
+ "minLength": 1,
1360
+ "pattern": "^[a-f0-9]{64}$"
1361
+ },
1362
+ "reviewed_versions": {
1363
+ "type": "array",
1364
+ "items": {
1365
+ "type": "object",
1366
+ "required": [
1367
+ "turn_id",
1368
+ "entry_revision",
1369
+ "entry_path",
1370
+ "snapshot_sha256",
1371
+ "dimensions",
1372
+ "evidence"
1373
+ ],
1374
+ "properties": {
1375
+ "turn_id": {
1376
+ "type": "string",
1377
+ "minLength": 1,
1378
+ "pattern": "^t-[0-9]{6,}$"
1379
+ },
1380
+ "entry_revision": {
1381
+ "oneOf": [
1382
+ {
1383
+ "type": "object",
1384
+ "required": [
1385
+ "kind",
1386
+ "value"
1387
+ ],
1388
+ "properties": {
1389
+ "kind": {
1390
+ "const": "sha256"
1391
+ },
1392
+ "value": {
1393
+ "type": "string",
1394
+ "minLength": 1,
1395
+ "pattern": "^[a-f0-9]{64}$"
1396
+ }
1397
+ },
1398
+ "additionalProperties": false
1399
+ },
1400
+ {
1401
+ "type": "object",
1402
+ "required": [
1403
+ "kind",
1404
+ "value"
1405
+ ],
1406
+ "properties": {
1407
+ "kind": {
1408
+ "const": "git"
1409
+ },
1410
+ "value": {
1411
+ "type": "string",
1412
+ "minLength": 1,
1413
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
1414
+ }
1415
+ },
1416
+ "additionalProperties": false
1417
+ }
1418
+ ]
1419
+ },
1420
+ "entry_path": {
1421
+ "type": "string",
1422
+ "minLength": 1
1423
+ },
1424
+ "snapshot_sha256": {
1425
+ "type": "string",
1426
+ "minLength": 1,
1427
+ "pattern": "^[a-f0-9]{64}$"
1428
+ },
1429
+ "dimensions": {
1430
+ "type": "array",
1431
+ "items": {
1432
+ "enum": [
1433
+ "transcription",
1434
+ "attribution"
1435
+ ]
1436
+ }
1437
+ },
1438
+ "evidence": {
1439
+ "type": "array",
1440
+ "items": {
1441
+ "type": "object",
1442
+ "required": [
1443
+ "kind",
1444
+ "locator",
1445
+ "revision",
1446
+ "note"
1447
+ ],
1448
+ "properties": {
1449
+ "kind": {
1450
+ "enum": [
1451
+ "operator-decision",
1452
+ "source-metadata",
1453
+ "source-span",
1454
+ "existing-header",
1455
+ "machine-check"
1456
+ ]
1457
+ },
1458
+ "locator": {
1459
+ "type": "string",
1460
+ "minLength": 1
1461
+ },
1462
+ "revision": {
1463
+ "anyOf": [
1464
+ {
1465
+ "oneOf": [
1466
+ {
1467
+ "type": "object",
1468
+ "required": [
1469
+ "kind",
1470
+ "value"
1471
+ ],
1472
+ "properties": {
1473
+ "kind": {
1474
+ "const": "sha256"
1475
+ },
1476
+ "value": {
1477
+ "type": "string",
1478
+ "minLength": 1,
1479
+ "pattern": "^[a-f0-9]{64}$"
1480
+ }
1481
+ },
1482
+ "additionalProperties": false
1483
+ },
1484
+ {
1485
+ "type": "object",
1486
+ "required": [
1487
+ "kind",
1488
+ "value"
1489
+ ],
1490
+ "properties": {
1491
+ "kind": {
1492
+ "const": "git"
1493
+ },
1494
+ "value": {
1495
+ "type": "string",
1496
+ "minLength": 1,
1497
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
1498
+ }
1499
+ },
1500
+ "additionalProperties": false
1501
+ }
1502
+ ]
1503
+ },
1504
+ {
1505
+ "type": "null"
1506
+ }
1507
+ ]
1508
+ },
1509
+ "note": {
1510
+ "type": "string",
1511
+ "minLength": 1,
1512
+ "pattern": "^[^\\r\\n]+$"
1513
+ }
1514
+ },
1515
+ "additionalProperties": false
1516
+ }
1517
+ }
1518
+ },
1519
+ "additionalProperties": false
1520
+ }
1521
+ },
1522
+ "authorized_changes": {
1523
+ "type": "array",
1524
+ "items": {
1525
+ "type": "object",
1526
+ "required": [
1527
+ "revision_id",
1528
+ "from_sha256",
1529
+ "to_sha256",
1530
+ "decision"
1531
+ ],
1532
+ "properties": {
1533
+ "revision_id": {
1534
+ "type": "string",
1535
+ "minLength": 1,
1536
+ "pattern": "^[a-zA-Z0-9_-]{8,128}$"
1537
+ },
1538
+ "from_sha256": {
1539
+ "type": "string",
1540
+ "minLength": 1,
1541
+ "pattern": "^[a-f0-9]{64}$"
1542
+ },
1543
+ "to_sha256": {
1544
+ "anyOf": [
1545
+ {
1546
+ "type": "string",
1547
+ "minLength": 1,
1548
+ "pattern": "^[a-f0-9]{64}$"
1549
+ },
1550
+ {
1551
+ "type": "null"
1552
+ }
1553
+ ]
1554
+ },
1555
+ "decision": {
1556
+ "type": "object",
1557
+ "required": [
1558
+ "kind",
1559
+ "locator",
1560
+ "revision",
1561
+ "note"
1562
+ ],
1563
+ "properties": {
1564
+ "kind": {
1565
+ "enum": [
1566
+ "operator-decision",
1567
+ "source-metadata",
1568
+ "source-span",
1569
+ "existing-header",
1570
+ "machine-check"
1571
+ ]
1572
+ },
1573
+ "locator": {
1574
+ "type": "string",
1575
+ "minLength": 1
1576
+ },
1577
+ "revision": {
1578
+ "anyOf": [
1579
+ {
1580
+ "oneOf": [
1581
+ {
1582
+ "type": "object",
1583
+ "required": [
1584
+ "kind",
1585
+ "value"
1586
+ ],
1587
+ "properties": {
1588
+ "kind": {
1589
+ "const": "sha256"
1590
+ },
1591
+ "value": {
1592
+ "type": "string",
1593
+ "minLength": 1,
1594
+ "pattern": "^[a-f0-9]{64}$"
1595
+ }
1596
+ },
1597
+ "additionalProperties": false
1598
+ },
1599
+ {
1600
+ "type": "object",
1601
+ "required": [
1602
+ "kind",
1603
+ "value"
1604
+ ],
1605
+ "properties": {
1606
+ "kind": {
1607
+ "const": "git"
1608
+ },
1609
+ "value": {
1610
+ "type": "string",
1611
+ "minLength": 1,
1612
+ "pattern": "^([a-f0-9]{40}|[a-f0-9]{64})$"
1613
+ }
1614
+ },
1615
+ "additionalProperties": false
1616
+ }
1617
+ ]
1618
+ },
1619
+ {
1620
+ "type": "null"
1621
+ }
1622
+ ]
1623
+ },
1624
+ "note": {
1625
+ "type": "string",
1626
+ "minLength": 1,
1627
+ "pattern": "^[^\\r\\n]+$"
1628
+ }
1629
+ },
1630
+ "additionalProperties": false
1631
+ }
1632
+ },
1633
+ "additionalProperties": false
1634
+ }
1635
+ },
1636
+ "retired": {
1637
+ "type": "boolean"
1638
+ }
1639
+ },
1640
+ "additionalProperties": false
1641
+ }
1642
+ }
1643
+ },
1644
+ "additionalProperties": false
1645
+ }
1646
+ },
1647
+ "additionalProperties": true
1648
+ }
1649
+ },
1650
+ "additionalProperties": false
1651
+ }