@anhlp/alp-protocol 0.0.0-stage → 0.0.1-beta.3

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,2335 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://alp.dev/schemas/ipc-v1.json",
4
+ "title": "ALP JSON-RPC v1 IPC",
5
+ "description": "Messages of ALP JSON-RPC protocol v1 (docs/protocol/alp-json-rpc-v1.md). One JSON value per frame; unknown properties, event types and item kinds are accepted for forward compatibility.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/request"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/response"
12
+ },
13
+ {
14
+ "$ref": "#/$defs/notification"
15
+ }
16
+ ],
17
+ "$defs": {
18
+ "error": {
19
+ "type": "object",
20
+ "properties": {
21
+ "code": {
22
+ "type": "integer"
23
+ },
24
+ "message": {
25
+ "type": "string"
26
+ },
27
+ "data": {}
28
+ },
29
+ "required": [
30
+ "code",
31
+ "message"
32
+ ],
33
+ "additionalProperties": true
34
+ },
35
+ "session": {
36
+ "type": "object",
37
+ "properties": {
38
+ "id": {
39
+ "type": "string"
40
+ },
41
+ "projectRoot": {
42
+ "type": "string"
43
+ },
44
+ "agent": {
45
+ "type": "string"
46
+ },
47
+ "runtime": {
48
+ "enum": [
49
+ "claude",
50
+ "codex",
51
+ "acp",
52
+ "antigravity"
53
+ ]
54
+ },
55
+ "model": {
56
+ "type": "string"
57
+ },
58
+ "mode": {
59
+ "type": "string"
60
+ },
61
+ "thinking": {
62
+ "type": "string"
63
+ },
64
+ "workflow": {
65
+ "type": "object",
66
+ "properties": {
67
+ "mode": {
68
+ "type": "string"
69
+ },
70
+ "maxPeers": {
71
+ "type": "integer"
72
+ },
73
+ "supervisor": {
74
+ "type": "boolean"
75
+ }
76
+ },
77
+ "required": [
78
+ "mode",
79
+ "maxPeers",
80
+ "supervisor"
81
+ ],
82
+ "additionalProperties": true
83
+ },
84
+ "threadId": {
85
+ "type": "string"
86
+ },
87
+ "persistent": {
88
+ "type": "boolean"
89
+ },
90
+ "busy": {
91
+ "type": "boolean"
92
+ },
93
+ "parentId": {
94
+ "type": "string"
95
+ },
96
+ "toolCallId": {
97
+ "type": "string"
98
+ },
99
+ "activeTurnId": {
100
+ "type": "string"
101
+ },
102
+ "parked": {
103
+ "type": "string"
104
+ },
105
+ "instructionsSha": {
106
+ "type": "string"
107
+ },
108
+ "teamLabel": {
109
+ "type": "string"
110
+ },
111
+ "promptImages": {
112
+ "type": "boolean"
113
+ },
114
+ "usage": {
115
+ "$ref": "#/$defs/usage"
116
+ }
117
+ },
118
+ "required": [
119
+ "id",
120
+ "projectRoot",
121
+ "agent",
122
+ "runtime",
123
+ "model",
124
+ "mode",
125
+ "thinking",
126
+ "workflow",
127
+ "threadId",
128
+ "persistent",
129
+ "busy"
130
+ ],
131
+ "additionalProperties": true
132
+ },
133
+ "usage": {
134
+ "type": "object",
135
+ "properties": {
136
+ "contextWindowUsedTokens": {
137
+ "type": "integer",
138
+ "minimum": 0
139
+ },
140
+ "contextWindowMaxTokens": {
141
+ "type": "integer",
142
+ "minimum": 1
143
+ },
144
+ "inputTokens": {
145
+ "type": "integer",
146
+ "minimum": 0
147
+ },
148
+ "cachedInputTokens": {
149
+ "type": "integer",
150
+ "minimum": 0
151
+ },
152
+ "outputTokens": {
153
+ "type": "integer",
154
+ "minimum": 0
155
+ },
156
+ "totalCostUsd": {
157
+ "type": "number",
158
+ "minimum": 0
159
+ }
160
+ },
161
+ "additionalProperties": true
162
+ },
163
+ "assignment": {
164
+ "type": "object",
165
+ "properties": {
166
+ "id": {
167
+ "type": "string"
168
+ },
169
+ "agent": {
170
+ "type": "string"
171
+ },
172
+ "mode": {
173
+ "type": "string"
174
+ },
175
+ "status": {
176
+ "type": "string"
177
+ },
178
+ "startedAt": {
179
+ "type": "string"
180
+ },
181
+ "worktree": {
182
+ "type": "object",
183
+ "properties": {
184
+ "branch": {
185
+ "type": "string"
186
+ },
187
+ "path": {
188
+ "type": "string"
189
+ }
190
+ },
191
+ "required": [
192
+ "branch",
193
+ "path"
194
+ ],
195
+ "additionalProperties": true
196
+ }
197
+ },
198
+ "required": [
199
+ "id",
200
+ "agent",
201
+ "mode",
202
+ "status",
203
+ "startedAt"
204
+ ],
205
+ "additionalProperties": true
206
+ },
207
+ "mail": {
208
+ "type": "object",
209
+ "properties": {
210
+ "id": {
211
+ "type": "string"
212
+ },
213
+ "kind": {
214
+ "enum": [
215
+ "question",
216
+ "answer",
217
+ "note",
218
+ "steer",
219
+ "result",
220
+ "stalled",
221
+ "board",
222
+ "checkin"
223
+ ]
224
+ },
225
+ "from": {
226
+ "type": "string"
227
+ },
228
+ "assignment": {
229
+ "type": "string"
230
+ },
231
+ "body": {
232
+ "type": "string"
233
+ },
234
+ "replyTo": {
235
+ "type": "string"
236
+ },
237
+ "result": {
238
+ "type": "object"
239
+ },
240
+ "redelivered": {
241
+ "type": "boolean"
242
+ }
243
+ },
244
+ "required": [
245
+ "id",
246
+ "kind",
247
+ "from",
248
+ "assignment"
249
+ ],
250
+ "additionalProperties": true
251
+ },
252
+ "pin": {
253
+ "type": "object",
254
+ "properties": {
255
+ "id": {
256
+ "type": "string"
257
+ },
258
+ "project": {
259
+ "type": "string"
260
+ },
261
+ "kind": {
262
+ "enum": [
263
+ "claim",
264
+ "decision",
265
+ "finding"
266
+ ]
267
+ },
268
+ "body": {
269
+ "type": "string"
270
+ },
271
+ "paths": {
272
+ "type": "array",
273
+ "items": {
274
+ "type": "string"
275
+ }
276
+ },
277
+ "agent": {
278
+ "type": "string"
279
+ },
280
+ "sessionId": {
281
+ "type": "string"
282
+ },
283
+ "rootId": {
284
+ "type": "string"
285
+ },
286
+ "at": {
287
+ "type": "string"
288
+ },
289
+ "released": {
290
+ "type": "string"
291
+ },
292
+ "task": {
293
+ "type": "string"
294
+ }
295
+ },
296
+ "required": [
297
+ "id",
298
+ "project",
299
+ "kind",
300
+ "body",
301
+ "agent",
302
+ "sessionId",
303
+ "rootId",
304
+ "at"
305
+ ],
306
+ "additionalProperties": true
307
+ },
308
+ "question": {
309
+ "type": "object",
310
+ "properties": {
311
+ "id": {
312
+ "type": "string"
313
+ },
314
+ "sessionId": {
315
+ "type": "string"
316
+ },
317
+ "rootId": {
318
+ "type": "string"
319
+ },
320
+ "agent": {
321
+ "type": "string"
322
+ },
323
+ "body": {
324
+ "type": "string"
325
+ },
326
+ "options": {
327
+ "type": "array",
328
+ "items": {
329
+ "type": "string"
330
+ }
331
+ },
332
+ "askedAt": {
333
+ "type": "string"
334
+ }
335
+ },
336
+ "required": [
337
+ "id",
338
+ "sessionId",
339
+ "rootId",
340
+ "agent",
341
+ "body",
342
+ "askedAt"
343
+ ],
344
+ "additionalProperties": true
345
+ },
346
+ "spec": {
347
+ "type": "object",
348
+ "properties": {
349
+ "cwd": {
350
+ "type": "string"
351
+ },
352
+ "agent": {
353
+ "type": "string"
354
+ },
355
+ "model": {
356
+ "type": "string"
357
+ },
358
+ "mode": {
359
+ "type": "string"
360
+ },
361
+ "thinking": {
362
+ "type": "string"
363
+ },
364
+ "persist": {
365
+ "type": "boolean"
366
+ },
367
+ "restore": {
368
+ "type": "object"
369
+ }
370
+ },
371
+ "required": [
372
+ "cwd"
373
+ ],
374
+ "additionalProperties": true
375
+ },
376
+ "item": {
377
+ "anyOf": [
378
+ {
379
+ "$ref": "#/$defs/knownItem"
380
+ },
381
+ {
382
+ "$ref": "#/$defs/unknownItem"
383
+ }
384
+ ]
385
+ },
386
+ "event": {
387
+ "anyOf": [
388
+ {
389
+ "$ref": "#/$defs/knownEvent"
390
+ },
391
+ {
392
+ "$ref": "#/$defs/unknownEvent"
393
+ }
394
+ ]
395
+ },
396
+ "envelope": {
397
+ "type": "object",
398
+ "properties": {
399
+ "sessionId": {
400
+ "type": "string"
401
+ },
402
+ "epoch": {
403
+ "type": "string"
404
+ },
405
+ "seq": {
406
+ "type": "integer",
407
+ "minimum": 0,
408
+ "maximum": 9007199254740991
409
+ },
410
+ "ts": {
411
+ "type": "string"
412
+ },
413
+ "event": {
414
+ "$ref": "#/$defs/event"
415
+ },
416
+ "cursor": {
417
+ "type": "integer",
418
+ "minimum": 1,
419
+ "maximum": 9007199254740991
420
+ }
421
+ },
422
+ "required": [
423
+ "sessionId",
424
+ "epoch",
425
+ "seq",
426
+ "ts",
427
+ "event"
428
+ ],
429
+ "additionalProperties": true
430
+ },
431
+ "request": {
432
+ "type": "object",
433
+ "properties": {
434
+ "jsonrpc": {
435
+ "const": "2.0"
436
+ },
437
+ "id": {
438
+ "anyOf": [
439
+ {
440
+ "type": "string",
441
+ "maxLength": 128
442
+ },
443
+ {
444
+ "type": "integer",
445
+ "minimum": -9007199254740991,
446
+ "maximum": 9007199254740991
447
+ }
448
+ ]
449
+ },
450
+ "method": {
451
+ "type": "string"
452
+ },
453
+ "params": {
454
+ "type": "object"
455
+ }
456
+ },
457
+ "required": [
458
+ "jsonrpc",
459
+ "method",
460
+ "id"
461
+ ],
462
+ "additionalProperties": true
463
+ },
464
+ "response": {
465
+ "oneOf": [
466
+ {
467
+ "type": "object",
468
+ "properties": {
469
+ "jsonrpc": {
470
+ "const": "2.0"
471
+ },
472
+ "id": {
473
+ "anyOf": [
474
+ {
475
+ "type": "string",
476
+ "maxLength": 128
477
+ },
478
+ {
479
+ "type": "integer",
480
+ "minimum": -9007199254740991,
481
+ "maximum": 9007199254740991
482
+ },
483
+ {
484
+ "type": "null"
485
+ }
486
+ ]
487
+ },
488
+ "result": {}
489
+ },
490
+ "required": [
491
+ "jsonrpc",
492
+ "id",
493
+ "result"
494
+ ],
495
+ "additionalProperties": true
496
+ },
497
+ {
498
+ "type": "object",
499
+ "properties": {
500
+ "jsonrpc": {
501
+ "const": "2.0"
502
+ },
503
+ "id": {
504
+ "anyOf": [
505
+ {
506
+ "type": "string",
507
+ "maxLength": 128
508
+ },
509
+ {
510
+ "type": "integer",
511
+ "minimum": -9007199254740991,
512
+ "maximum": 9007199254740991
513
+ },
514
+ {
515
+ "type": "null"
516
+ }
517
+ ]
518
+ },
519
+ "error": {
520
+ "$ref": "#/$defs/error"
521
+ }
522
+ },
523
+ "required": [
524
+ "jsonrpc",
525
+ "id",
526
+ "error"
527
+ ],
528
+ "additionalProperties": true
529
+ }
530
+ ]
531
+ },
532
+ "notification": {
533
+ "type": "object",
534
+ "properties": {
535
+ "jsonrpc": {
536
+ "const": "2.0"
537
+ },
538
+ "method": {
539
+ "const": "event"
540
+ },
541
+ "params": {
542
+ "$ref": "#/$defs/envelope"
543
+ }
544
+ },
545
+ "required": [
546
+ "jsonrpc",
547
+ "method",
548
+ "params"
549
+ ],
550
+ "additionalProperties": true
551
+ },
552
+ "knownEvent": {
553
+ "oneOf": [
554
+ {
555
+ "type": "object",
556
+ "properties": {
557
+ "type": {
558
+ "const": "session.opened"
559
+ },
560
+ "session": {
561
+ "$ref": "#/$defs/session"
562
+ },
563
+ "cwd": {
564
+ "type": "string"
565
+ },
566
+ "effective": {
567
+ "type": "object",
568
+ "properties": {
569
+ "model": {
570
+ "type": "string"
571
+ },
572
+ "thinking": {
573
+ "type": "string"
574
+ }
575
+ },
576
+ "required": [
577
+ "model",
578
+ "thinking"
579
+ ],
580
+ "additionalProperties": true
581
+ }
582
+ },
583
+ "required": [
584
+ "type",
585
+ "session",
586
+ "cwd",
587
+ "effective"
588
+ ],
589
+ "additionalProperties": true
590
+ },
591
+ {
592
+ "type": "object",
593
+ "properties": {
594
+ "type": {
595
+ "const": "session.ready"
596
+ }
597
+ },
598
+ "required": [
599
+ "type"
600
+ ],
601
+ "additionalProperties": true
602
+ },
603
+ {
604
+ "type": "object",
605
+ "properties": {
606
+ "type": {
607
+ "const": "session.updated"
608
+ },
609
+ "session": {
610
+ "$ref": "#/$defs/session"
611
+ }
612
+ },
613
+ "required": [
614
+ "type",
615
+ "session"
616
+ ],
617
+ "additionalProperties": true
618
+ },
619
+ {
620
+ "type": "object",
621
+ "properties": {
622
+ "type": {
623
+ "const": "session.closed"
624
+ }
625
+ },
626
+ "required": [
627
+ "type"
628
+ ],
629
+ "additionalProperties": true
630
+ },
631
+ {
632
+ "type": "object",
633
+ "properties": {
634
+ "type": {
635
+ "const": "session.failed"
636
+ },
637
+ "error": {
638
+ "$ref": "#/$defs/alpError"
639
+ }
640
+ },
641
+ "required": [
642
+ "type",
643
+ "error"
644
+ ],
645
+ "additionalProperties": true
646
+ },
647
+ {
648
+ "type": "object",
649
+ "properties": {
650
+ "type": {
651
+ "const": "prompt.accepted"
652
+ },
653
+ "clientMessageId": {
654
+ "type": "string"
655
+ },
656
+ "result": {
657
+ "enum": [
658
+ "turn",
659
+ "steer"
660
+ ]
661
+ },
662
+ "turnId": {
663
+ "type": "string"
664
+ }
665
+ },
666
+ "required": [
667
+ "type",
668
+ "clientMessageId",
669
+ "result",
670
+ "turnId"
671
+ ],
672
+ "additionalProperties": true
673
+ },
674
+ {
675
+ "type": "object",
676
+ "properties": {
677
+ "type": {
678
+ "const": "prompt.failed"
679
+ },
680
+ "clientMessageId": {
681
+ "type": "string"
682
+ },
683
+ "error": {
684
+ "$ref": "#/$defs/alpError"
685
+ }
686
+ },
687
+ "required": [
688
+ "type",
689
+ "clientMessageId",
690
+ "error"
691
+ ],
692
+ "additionalProperties": true
693
+ },
694
+ {
695
+ "type": "object",
696
+ "properties": {
697
+ "type": {
698
+ "const": "turn.started"
699
+ },
700
+ "turnId": {
701
+ "type": "string"
702
+ },
703
+ "origin": {
704
+ "enum": [
705
+ "user",
706
+ "wake",
707
+ "assignment",
708
+ "runtime"
709
+ ]
710
+ }
711
+ },
712
+ "required": [
713
+ "type",
714
+ "turnId",
715
+ "origin"
716
+ ],
717
+ "additionalProperties": true
718
+ },
719
+ {
720
+ "type": "object",
721
+ "properties": {
722
+ "type": {
723
+ "const": "turn.ended"
724
+ },
725
+ "turnId": {
726
+ "type": "string"
727
+ },
728
+ "state": {
729
+ "enum": [
730
+ "completed",
731
+ "failed",
732
+ "canceled"
733
+ ]
734
+ },
735
+ "error": {
736
+ "$ref": "#/$defs/alpError"
737
+ }
738
+ },
739
+ "required": [
740
+ "type",
741
+ "turnId",
742
+ "state"
743
+ ],
744
+ "additionalProperties": true
745
+ },
746
+ {
747
+ "type": "object",
748
+ "properties": {
749
+ "type": {
750
+ "const": "item"
751
+ },
752
+ "item": {
753
+ "$ref": "#/$defs/item"
754
+ }
755
+ },
756
+ "required": [
757
+ "type",
758
+ "item"
759
+ ],
760
+ "additionalProperties": true
761
+ },
762
+ {
763
+ "type": "object",
764
+ "properties": {
765
+ "type": {
766
+ "const": "usage"
767
+ },
768
+ "usage": {
769
+ "$ref": "#/$defs/usage"
770
+ }
771
+ },
772
+ "required": [
773
+ "type",
774
+ "usage"
775
+ ],
776
+ "additionalProperties": true
777
+ },
778
+ {
779
+ "type": "object",
780
+ "properties": {
781
+ "type": {
782
+ "const": "mail"
783
+ },
784
+ "mail": {
785
+ "$ref": "#/$defs/mail"
786
+ }
787
+ },
788
+ "required": [
789
+ "type",
790
+ "mail"
791
+ ],
792
+ "additionalProperties": true
793
+ },
794
+ {
795
+ "type": "object",
796
+ "properties": {
797
+ "type": {
798
+ "const": "assignment"
799
+ },
800
+ "assignment": {
801
+ "$ref": "#/$defs/assignment"
802
+ }
803
+ },
804
+ "required": [
805
+ "type",
806
+ "assignment"
807
+ ],
808
+ "additionalProperties": true
809
+ },
810
+ {
811
+ "type": "object",
812
+ "properties": {
813
+ "type": {
814
+ "const": "question"
815
+ },
816
+ "question": {
817
+ "$ref": "#/$defs/question"
818
+ }
819
+ },
820
+ "required": [
821
+ "type",
822
+ "question"
823
+ ],
824
+ "additionalProperties": true
825
+ },
826
+ {
827
+ "type": "object",
828
+ "properties": {
829
+ "type": {
830
+ "const": "question.resolved"
831
+ },
832
+ "questionId": {
833
+ "type": "string"
834
+ },
835
+ "outcome": {
836
+ "enum": [
837
+ "answered",
838
+ "dismissed",
839
+ "timeout",
840
+ "canceled"
841
+ ]
842
+ },
843
+ "answer": {
844
+ "type": "string"
845
+ }
846
+ },
847
+ "required": [
848
+ "type",
849
+ "questionId",
850
+ "outcome"
851
+ ],
852
+ "additionalProperties": true
853
+ },
854
+ {
855
+ "type": "object",
856
+ "properties": {
857
+ "type": {
858
+ "const": "pin"
859
+ },
860
+ "pin": {
861
+ "$ref": "#/$defs/pin"
862
+ }
863
+ },
864
+ "required": [
865
+ "type",
866
+ "pin"
867
+ ],
868
+ "additionalProperties": true
869
+ },
870
+ {
871
+ "type": "object",
872
+ "properties": {
873
+ "type": {
874
+ "const": "unpin"
875
+ },
876
+ "pinId": {
877
+ "type": "string"
878
+ },
879
+ "reason": {
880
+ "enum": [
881
+ "unpinned",
882
+ "session_ended"
883
+ ]
884
+ }
885
+ },
886
+ "required": [
887
+ "type",
888
+ "pinId",
889
+ "reason"
890
+ ],
891
+ "additionalProperties": true
892
+ }
893
+ ]
894
+ },
895
+ "unknownEvent": {
896
+ "type": "object",
897
+ "properties": {
898
+ "type": {
899
+ "type": "string",
900
+ "not": {
901
+ "enum": [
902
+ "session.opened",
903
+ "session.ready",
904
+ "session.updated",
905
+ "session.closed",
906
+ "session.failed",
907
+ "prompt.accepted",
908
+ "prompt.failed",
909
+ "turn.started",
910
+ "turn.ended",
911
+ "item",
912
+ "usage",
913
+ "mail",
914
+ "assignment",
915
+ "question",
916
+ "question.resolved",
917
+ "pin",
918
+ "unpin"
919
+ ]
920
+ }
921
+ }
922
+ },
923
+ "required": [
924
+ "type"
925
+ ],
926
+ "additionalProperties": true
927
+ },
928
+ "knownItem": {
929
+ "oneOf": [
930
+ {
931
+ "type": "object",
932
+ "properties": {
933
+ "kind": {
934
+ "const": "user_message"
935
+ },
936
+ "id": {
937
+ "type": "string"
938
+ },
939
+ "text": {
940
+ "type": "string"
941
+ },
942
+ "clientMessageId": {
943
+ "type": "string"
944
+ },
945
+ "images": {
946
+ "type": "integer",
947
+ "minimum": 1
948
+ }
949
+ },
950
+ "required": [
951
+ "kind",
952
+ "id",
953
+ "text"
954
+ ],
955
+ "additionalProperties": true
956
+ },
957
+ {
958
+ "type": "object",
959
+ "properties": {
960
+ "kind": {
961
+ "const": "assistant_message"
962
+ },
963
+ "id": {
964
+ "type": "string"
965
+ },
966
+ "text": {
967
+ "type": "string"
968
+ }
969
+ },
970
+ "required": [
971
+ "kind",
972
+ "id",
973
+ "text"
974
+ ],
975
+ "additionalProperties": true
976
+ },
977
+ {
978
+ "type": "object",
979
+ "properties": {
980
+ "kind": {
981
+ "const": "notice"
982
+ },
983
+ "id": {
984
+ "type": "string"
985
+ },
986
+ "level": {
987
+ "enum": [
988
+ "info",
989
+ "warning",
990
+ "error"
991
+ ]
992
+ },
993
+ "text": {
994
+ "type": "string"
995
+ }
996
+ },
997
+ "required": [
998
+ "kind",
999
+ "id",
1000
+ "level",
1001
+ "text"
1002
+ ],
1003
+ "additionalProperties": true
1004
+ },
1005
+ {
1006
+ "type": "object",
1007
+ "properties": {
1008
+ "kind": {
1009
+ "const": "compaction"
1010
+ },
1011
+ "id": {
1012
+ "type": "string"
1013
+ },
1014
+ "status": {
1015
+ "enum": [
1016
+ "running",
1017
+ "completed",
1018
+ "failed"
1019
+ ]
1020
+ },
1021
+ "trigger": {
1022
+ "type": "string"
1023
+ },
1024
+ "preTokens": {
1025
+ "type": "integer"
1026
+ },
1027
+ "postTokens": {
1028
+ "type": "integer"
1029
+ }
1030
+ },
1031
+ "required": [
1032
+ "kind",
1033
+ "id",
1034
+ "status"
1035
+ ],
1036
+ "additionalProperties": true
1037
+ },
1038
+ {
1039
+ "type": "object",
1040
+ "properties": {
1041
+ "kind": {
1042
+ "const": "todo"
1043
+ },
1044
+ "id": {
1045
+ "type": "string"
1046
+ },
1047
+ "items": {
1048
+ "type": "array",
1049
+ "items": {
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "id": {
1053
+ "type": "string"
1054
+ },
1055
+ "text": {
1056
+ "type": "string"
1057
+ },
1058
+ "status": {
1059
+ "enum": [
1060
+ "pending",
1061
+ "in_progress",
1062
+ "completed"
1063
+ ]
1064
+ }
1065
+ },
1066
+ "required": [
1067
+ "id",
1068
+ "text",
1069
+ "status"
1070
+ ],
1071
+ "additionalProperties": true
1072
+ }
1073
+ }
1074
+ },
1075
+ "required": [
1076
+ "kind",
1077
+ "id",
1078
+ "items"
1079
+ ],
1080
+ "additionalProperties": true
1081
+ },
1082
+ {
1083
+ "type": "object",
1084
+ "properties": {
1085
+ "kind": {
1086
+ "const": "tool_call"
1087
+ },
1088
+ "id": {
1089
+ "type": "string"
1090
+ },
1091
+ "callId": {
1092
+ "type": "string"
1093
+ },
1094
+ "name": {
1095
+ "type": "string"
1096
+ },
1097
+ "status": {
1098
+ "enum": [
1099
+ "running",
1100
+ "completed",
1101
+ "failed"
1102
+ ]
1103
+ },
1104
+ "error": {
1105
+ "type": "string"
1106
+ },
1107
+ "detail": {
1108
+ "$ref": "#/$defs/toolCallDetail"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "kind",
1113
+ "id",
1114
+ "callId",
1115
+ "name",
1116
+ "status",
1117
+ "detail"
1118
+ ],
1119
+ "additionalProperties": true
1120
+ }
1121
+ ]
1122
+ },
1123
+ "unknownItem": {
1124
+ "type": "object",
1125
+ "properties": {
1126
+ "kind": {
1127
+ "type": "string",
1128
+ "not": {
1129
+ "enum": [
1130
+ "user_message",
1131
+ "assistant_message",
1132
+ "notice",
1133
+ "compaction",
1134
+ "todo",
1135
+ "tool_call"
1136
+ ]
1137
+ }
1138
+ },
1139
+ "id": {
1140
+ "type": "string"
1141
+ }
1142
+ },
1143
+ "required": [
1144
+ "kind",
1145
+ "id"
1146
+ ],
1147
+ "additionalProperties": true
1148
+ },
1149
+ "toolCallDetail": {
1150
+ "oneOf": [
1151
+ {
1152
+ "type": "object",
1153
+ "properties": {
1154
+ "type": {
1155
+ "const": "shell"
1156
+ },
1157
+ "command": {
1158
+ "type": "string"
1159
+ },
1160
+ "cwd": {
1161
+ "type": "string"
1162
+ },
1163
+ "output": {
1164
+ "type": "string"
1165
+ },
1166
+ "exitCode": {
1167
+ "type": [
1168
+ "integer",
1169
+ "null"
1170
+ ]
1171
+ }
1172
+ },
1173
+ "required": [
1174
+ "type",
1175
+ "command",
1176
+ "output"
1177
+ ],
1178
+ "additionalProperties": true
1179
+ },
1180
+ {
1181
+ "type": "object",
1182
+ "properties": {
1183
+ "type": {
1184
+ "const": "read"
1185
+ },
1186
+ "filePath": {
1187
+ "type": "string"
1188
+ },
1189
+ "content": {
1190
+ "type": "string"
1191
+ },
1192
+ "offset": {
1193
+ "type": "integer"
1194
+ },
1195
+ "limit": {
1196
+ "type": "integer"
1197
+ }
1198
+ },
1199
+ "required": [
1200
+ "type",
1201
+ "filePath"
1202
+ ],
1203
+ "additionalProperties": true
1204
+ },
1205
+ {
1206
+ "type": "object",
1207
+ "properties": {
1208
+ "type": {
1209
+ "const": "edit"
1210
+ },
1211
+ "filePath": {
1212
+ "type": "string"
1213
+ },
1214
+ "oldString": {
1215
+ "type": "string"
1216
+ },
1217
+ "newString": {
1218
+ "type": "string"
1219
+ },
1220
+ "unifiedDiff": {
1221
+ "type": "string"
1222
+ }
1223
+ },
1224
+ "required": [
1225
+ "type",
1226
+ "filePath"
1227
+ ],
1228
+ "additionalProperties": true
1229
+ },
1230
+ {
1231
+ "type": "object",
1232
+ "properties": {
1233
+ "type": {
1234
+ "const": "write"
1235
+ },
1236
+ "filePath": {
1237
+ "type": "string"
1238
+ },
1239
+ "content": {
1240
+ "type": "string"
1241
+ }
1242
+ },
1243
+ "required": [
1244
+ "type",
1245
+ "filePath"
1246
+ ],
1247
+ "additionalProperties": true
1248
+ },
1249
+ {
1250
+ "type": "object",
1251
+ "properties": {
1252
+ "type": {
1253
+ "const": "search"
1254
+ },
1255
+ "query": {
1256
+ "type": "string"
1257
+ },
1258
+ "toolName": {
1259
+ "enum": [
1260
+ "search",
1261
+ "grep",
1262
+ "glob",
1263
+ "web_search"
1264
+ ]
1265
+ },
1266
+ "content": {
1267
+ "type": "string"
1268
+ },
1269
+ "filePaths": {
1270
+ "type": "array",
1271
+ "items": {
1272
+ "type": "string"
1273
+ }
1274
+ },
1275
+ "webResults": {
1276
+ "type": "array",
1277
+ "items": {
1278
+ "type": "object",
1279
+ "properties": {
1280
+ "title": {
1281
+ "type": "string"
1282
+ },
1283
+ "url": {
1284
+ "type": "string"
1285
+ }
1286
+ },
1287
+ "required": [
1288
+ "title",
1289
+ "url"
1290
+ ],
1291
+ "additionalProperties": true
1292
+ }
1293
+ },
1294
+ "numFiles": {
1295
+ "type": "integer"
1296
+ },
1297
+ "numMatches": {
1298
+ "type": "integer"
1299
+ },
1300
+ "truncated": {
1301
+ "type": "boolean"
1302
+ }
1303
+ },
1304
+ "required": [
1305
+ "type",
1306
+ "query"
1307
+ ],
1308
+ "additionalProperties": true
1309
+ },
1310
+ {
1311
+ "type": "object",
1312
+ "properties": {
1313
+ "type": {
1314
+ "const": "fetch"
1315
+ },
1316
+ "url": {
1317
+ "type": "string"
1318
+ },
1319
+ "prompt": {
1320
+ "type": "string"
1321
+ },
1322
+ "result": {
1323
+ "type": "string"
1324
+ },
1325
+ "code": {
1326
+ "type": "integer"
1327
+ }
1328
+ },
1329
+ "required": [
1330
+ "type",
1331
+ "url"
1332
+ ],
1333
+ "additionalProperties": true
1334
+ },
1335
+ {
1336
+ "type": "object",
1337
+ "properties": {
1338
+ "type": {
1339
+ "const": "sub_agent"
1340
+ },
1341
+ "subAgentType": {
1342
+ "type": "string"
1343
+ },
1344
+ "description": {
1345
+ "type": "string"
1346
+ },
1347
+ "log": {
1348
+ "type": "string"
1349
+ }
1350
+ },
1351
+ "required": [
1352
+ "type"
1353
+ ],
1354
+ "additionalProperties": true
1355
+ },
1356
+ {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "type": {
1360
+ "const": "plan"
1361
+ },
1362
+ "text": {
1363
+ "type": "string"
1364
+ }
1365
+ },
1366
+ "required": [
1367
+ "type",
1368
+ "text"
1369
+ ],
1370
+ "additionalProperties": true
1371
+ },
1372
+ {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "type": {
1376
+ "const": "plain_text"
1377
+ },
1378
+ "label": {
1379
+ "type": "string"
1380
+ },
1381
+ "text": {
1382
+ "type": "string"
1383
+ }
1384
+ },
1385
+ "required": [
1386
+ "type"
1387
+ ],
1388
+ "additionalProperties": true
1389
+ },
1390
+ {
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "type": {
1394
+ "const": "unknown"
1395
+ },
1396
+ "input": {},
1397
+ "output": {}
1398
+ },
1399
+ "required": [
1400
+ "type",
1401
+ "input",
1402
+ "output"
1403
+ ],
1404
+ "additionalProperties": true
1405
+ },
1406
+ {
1407
+ "type": "object",
1408
+ "properties": {
1409
+ "type": {
1410
+ "type": "string",
1411
+ "not": {
1412
+ "enum": [
1413
+ "shell",
1414
+ "read",
1415
+ "edit",
1416
+ "write",
1417
+ "search",
1418
+ "fetch",
1419
+ "sub_agent",
1420
+ "plan",
1421
+ "plain_text",
1422
+ "unknown"
1423
+ ]
1424
+ }
1425
+ }
1426
+ },
1427
+ "required": [
1428
+ "type"
1429
+ ],
1430
+ "additionalProperties": true
1431
+ }
1432
+ ]
1433
+ },
1434
+ "alpError": {
1435
+ "type": "object",
1436
+ "properties": {
1437
+ "message": {
1438
+ "type": "string"
1439
+ },
1440
+ "code": {
1441
+ "type": "string"
1442
+ }
1443
+ },
1444
+ "required": [
1445
+ "message"
1446
+ ],
1447
+ "additionalProperties": true
1448
+ },
1449
+ "sessionSummary": {
1450
+ "type": "object",
1451
+ "properties": {
1452
+ "id": {
1453
+ "type": "string"
1454
+ },
1455
+ "projectRoot": {
1456
+ "type": "string"
1457
+ },
1458
+ "agent": {
1459
+ "type": "string"
1460
+ },
1461
+ "runtime": {
1462
+ "enum": [
1463
+ "claude",
1464
+ "codex",
1465
+ "acp",
1466
+ "antigravity"
1467
+ ]
1468
+ },
1469
+ "model": {
1470
+ "type": "string"
1471
+ },
1472
+ "mode": {
1473
+ "type": "string"
1474
+ },
1475
+ "thinking": {
1476
+ "type": "string"
1477
+ },
1478
+ "workflow": {
1479
+ "type": "object",
1480
+ "properties": {
1481
+ "mode": {
1482
+ "type": "string"
1483
+ },
1484
+ "maxPeers": {
1485
+ "type": "integer"
1486
+ },
1487
+ "supervisor": {
1488
+ "type": "boolean"
1489
+ }
1490
+ },
1491
+ "required": [
1492
+ "mode",
1493
+ "maxPeers",
1494
+ "supervisor"
1495
+ ],
1496
+ "additionalProperties": true
1497
+ },
1498
+ "threadId": {
1499
+ "type": "string"
1500
+ },
1501
+ "persistent": {
1502
+ "type": "boolean"
1503
+ },
1504
+ "busy": {
1505
+ "type": "boolean"
1506
+ },
1507
+ "parentId": {
1508
+ "type": "string"
1509
+ },
1510
+ "toolCallId": {
1511
+ "type": "string"
1512
+ },
1513
+ "activeTurnId": {
1514
+ "type": "string"
1515
+ },
1516
+ "parked": {
1517
+ "type": "string"
1518
+ },
1519
+ "instructionsSha": {
1520
+ "type": "string"
1521
+ },
1522
+ "teamLabel": {
1523
+ "type": "string"
1524
+ },
1525
+ "status": {
1526
+ "enum": [
1527
+ "initializing",
1528
+ "idle",
1529
+ "running",
1530
+ "error",
1531
+ "closed"
1532
+ ]
1533
+ },
1534
+ "title": {
1535
+ "type": "string"
1536
+ },
1537
+ "archived": {
1538
+ "type": "boolean"
1539
+ },
1540
+ "lastError": {
1541
+ "type": "object",
1542
+ "properties": {
1543
+ "code": {
1544
+ "type": "string"
1545
+ },
1546
+ "message": {
1547
+ "type": "string"
1548
+ }
1549
+ },
1550
+ "required": [
1551
+ "message"
1552
+ ],
1553
+ "additionalProperties": true
1554
+ },
1555
+ "createdAt": {
1556
+ "type": "string"
1557
+ },
1558
+ "updatedAt": {
1559
+ "type": "string"
1560
+ }
1561
+ },
1562
+ "required": [
1563
+ "id",
1564
+ "projectRoot",
1565
+ "agent",
1566
+ "runtime",
1567
+ "model",
1568
+ "mode",
1569
+ "thinking",
1570
+ "workflow",
1571
+ "threadId",
1572
+ "persistent",
1573
+ "busy",
1574
+ "status"
1575
+ ],
1576
+ "additionalProperties": true
1577
+ },
1578
+ "pause": {
1579
+ "type": "object",
1580
+ "properties": {
1581
+ "since": {
1582
+ "type": "string"
1583
+ },
1584
+ "by": {
1585
+ "type": "string"
1586
+ },
1587
+ "reason": {
1588
+ "type": "string"
1589
+ },
1590
+ "resetsAt": {
1591
+ "type": "string"
1592
+ },
1593
+ "checkedAt": {
1594
+ "type": "string"
1595
+ }
1596
+ },
1597
+ "required": [
1598
+ "since",
1599
+ "by",
1600
+ "reason"
1601
+ ],
1602
+ "additionalProperties": true
1603
+ },
1604
+ "pauseState": {
1605
+ "type": "object",
1606
+ "properties": {
1607
+ "all": {
1608
+ "$ref": "#/$defs/pause"
1609
+ },
1610
+ "runtimes": {
1611
+ "type": "object",
1612
+ "additionalProperties": {
1613
+ "$ref": "#/$defs/pause"
1614
+ }
1615
+ },
1616
+ "parked": {
1617
+ "type": "array",
1618
+ "items": {
1619
+ "type": "object",
1620
+ "properties": {
1621
+ "assignmentId": {
1622
+ "type": "string"
1623
+ },
1624
+ "agent": {
1625
+ "type": "string"
1626
+ },
1627
+ "runtime": {
1628
+ "type": "string"
1629
+ },
1630
+ "rootId": {
1631
+ "type": "string"
1632
+ },
1633
+ "reason": {
1634
+ "type": "string"
1635
+ },
1636
+ "since": {
1637
+ "type": "string"
1638
+ }
1639
+ },
1640
+ "required": [
1641
+ "assignmentId",
1642
+ "agent",
1643
+ "runtime",
1644
+ "rootId",
1645
+ "reason",
1646
+ "since"
1647
+ ],
1648
+ "additionalProperties": true
1649
+ }
1650
+ }
1651
+ },
1652
+ "required": [
1653
+ "runtimes",
1654
+ "parked"
1655
+ ],
1656
+ "additionalProperties": true
1657
+ },
1658
+ "preview": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "teams": {
1662
+ "type": "array",
1663
+ "items": {
1664
+ "type": "object",
1665
+ "properties": {
1666
+ "id": {
1667
+ "type": "string"
1668
+ },
1669
+ "label": {
1670
+ "type": "string"
1671
+ },
1672
+ "description": {
1673
+ "type": "string"
1674
+ }
1675
+ },
1676
+ "required": [
1677
+ "id",
1678
+ "label"
1679
+ ],
1680
+ "additionalProperties": true
1681
+ }
1682
+ },
1683
+ "team": {
1684
+ "type": "string"
1685
+ },
1686
+ "teamLabel": {
1687
+ "type": "string"
1688
+ },
1689
+ "agent": {
1690
+ "type": "string"
1691
+ },
1692
+ "runtime": {
1693
+ "enum": [
1694
+ "claude",
1695
+ "codex",
1696
+ "acp",
1697
+ "antigravity"
1698
+ ]
1699
+ },
1700
+ "model": {
1701
+ "type": "string"
1702
+ },
1703
+ "mode": {
1704
+ "type": "string"
1705
+ },
1706
+ "thinking": {
1707
+ "type": "string"
1708
+ }
1709
+ },
1710
+ "required": [
1711
+ "teams",
1712
+ "team",
1713
+ "agent",
1714
+ "runtime",
1715
+ "model",
1716
+ "mode",
1717
+ "thinking"
1718
+ ],
1719
+ "additionalProperties": true
1720
+ },
1721
+ "treeStatus": {
1722
+ "type": "object",
1723
+ "properties": {
1724
+ "rootId": {
1725
+ "type": "string"
1726
+ },
1727
+ "sessions": {
1728
+ "type": "array",
1729
+ "items": {
1730
+ "type": "object",
1731
+ "properties": {
1732
+ "id": {
1733
+ "type": "string"
1734
+ },
1735
+ "projectRoot": {
1736
+ "type": "string"
1737
+ },
1738
+ "agent": {
1739
+ "type": "string"
1740
+ },
1741
+ "runtime": {
1742
+ "enum": [
1743
+ "claude",
1744
+ "codex",
1745
+ "acp",
1746
+ "antigravity"
1747
+ ]
1748
+ },
1749
+ "model": {
1750
+ "type": "string"
1751
+ },
1752
+ "mode": {
1753
+ "type": "string"
1754
+ },
1755
+ "thinking": {
1756
+ "type": "string"
1757
+ },
1758
+ "workflow": {
1759
+ "type": "object",
1760
+ "properties": {
1761
+ "mode": {
1762
+ "type": "string"
1763
+ },
1764
+ "maxPeers": {
1765
+ "type": "integer"
1766
+ },
1767
+ "supervisor": {
1768
+ "type": "boolean"
1769
+ }
1770
+ },
1771
+ "required": [
1772
+ "mode",
1773
+ "maxPeers",
1774
+ "supervisor"
1775
+ ],
1776
+ "additionalProperties": true
1777
+ },
1778
+ "threadId": {
1779
+ "type": "string"
1780
+ },
1781
+ "persistent": {
1782
+ "type": "boolean"
1783
+ },
1784
+ "busy": {
1785
+ "type": "boolean"
1786
+ },
1787
+ "parentId": {
1788
+ "type": "string"
1789
+ },
1790
+ "toolCallId": {
1791
+ "type": "string"
1792
+ },
1793
+ "activeTurnId": {
1794
+ "type": "string"
1795
+ },
1796
+ "parked": {
1797
+ "type": "string"
1798
+ },
1799
+ "instructionsSha": {
1800
+ "type": "string"
1801
+ },
1802
+ "teamLabel": {
1803
+ "type": "string"
1804
+ },
1805
+ "state": {
1806
+ "enum": [
1807
+ "running",
1808
+ "waiting",
1809
+ "waiting_parent",
1810
+ "waiting_user",
1811
+ "idle"
1812
+ ]
1813
+ },
1814
+ "idleMs": {
1815
+ "type": "number"
1816
+ },
1817
+ "workdir": {
1818
+ "type": "string"
1819
+ },
1820
+ "unreadMail": {
1821
+ "type": "integer",
1822
+ "minimum": 0
1823
+ }
1824
+ },
1825
+ "required": [
1826
+ "id",
1827
+ "projectRoot",
1828
+ "agent",
1829
+ "runtime",
1830
+ "model",
1831
+ "mode",
1832
+ "thinking",
1833
+ "workflow",
1834
+ "threadId",
1835
+ "persistent",
1836
+ "busy",
1837
+ "state",
1838
+ "idleMs",
1839
+ "workdir",
1840
+ "unreadMail"
1841
+ ],
1842
+ "additionalProperties": true
1843
+ }
1844
+ },
1845
+ "assignments": {
1846
+ "type": "array",
1847
+ "items": {
1848
+ "type": "object",
1849
+ "properties": {
1850
+ "id": {
1851
+ "type": "string"
1852
+ },
1853
+ "requester": {
1854
+ "type": "string"
1855
+ },
1856
+ "isolation": {
1857
+ "enum": [
1858
+ "shared",
1859
+ "worktree"
1860
+ ]
1861
+ },
1862
+ "idleMs": {
1863
+ "type": "number"
1864
+ }
1865
+ },
1866
+ "required": [
1867
+ "id",
1868
+ "requester",
1869
+ "isolation",
1870
+ "idleMs"
1871
+ ],
1872
+ "additionalProperties": true
1873
+ }
1874
+ },
1875
+ "questions": {
1876
+ "type": "array",
1877
+ "items": {
1878
+ "$ref": "#/$defs/question"
1879
+ }
1880
+ },
1881
+ "worktrees": {
1882
+ "type": "array",
1883
+ "items": {
1884
+ "type": "object",
1885
+ "properties": {
1886
+ "assignmentId": {
1887
+ "type": "string"
1888
+ },
1889
+ "requester": {
1890
+ "type": "string"
1891
+ },
1892
+ "agent": {
1893
+ "type": "string"
1894
+ },
1895
+ "branch": {
1896
+ "type": "string"
1897
+ },
1898
+ "files": {
1899
+ "type": "array",
1900
+ "items": {
1901
+ "type": "string"
1902
+ }
1903
+ },
1904
+ "stat": {
1905
+ "type": "string"
1906
+ }
1907
+ },
1908
+ "required": [
1909
+ "assignmentId",
1910
+ "requester",
1911
+ "agent",
1912
+ "branch",
1913
+ "files",
1914
+ "stat"
1915
+ ],
1916
+ "additionalProperties": true
1917
+ }
1918
+ },
1919
+ "leases": {
1920
+ "type": "array",
1921
+ "items": {
1922
+ "type": "object",
1923
+ "properties": {
1924
+ "checkout": {
1925
+ "type": "string"
1926
+ },
1927
+ "assignmentId": {
1928
+ "type": "string"
1929
+ },
1930
+ "agent": {
1931
+ "type": "string"
1932
+ }
1933
+ },
1934
+ "required": [
1935
+ "checkout",
1936
+ "assignmentId",
1937
+ "agent"
1938
+ ],
1939
+ "additionalProperties": true
1940
+ }
1941
+ },
1942
+ "claims": {
1943
+ "type": "array",
1944
+ "items": {
1945
+ "$ref": "#/$defs/pin"
1946
+ }
1947
+ }
1948
+ },
1949
+ "required": [
1950
+ "rootId",
1951
+ "sessions",
1952
+ "assignments",
1953
+ "questions",
1954
+ "worktrees",
1955
+ "leases",
1956
+ "claims"
1957
+ ],
1958
+ "additionalProperties": true
1959
+ },
1960
+ "health": {
1961
+ "type": "object",
1962
+ "properties": {
1963
+ "live": {
1964
+ "type": "boolean"
1965
+ },
1966
+ "ready": {
1967
+ "type": "boolean"
1968
+ },
1969
+ "checks": {
1970
+ "type": "array",
1971
+ "items": {
1972
+ "type": "object",
1973
+ "properties": {
1974
+ "id": {
1975
+ "type": "string"
1976
+ },
1977
+ "ok": {
1978
+ "type": "boolean"
1979
+ },
1980
+ "code": {
1981
+ "type": "string"
1982
+ },
1983
+ "message": {
1984
+ "type": "string"
1985
+ }
1986
+ },
1987
+ "required": [
1988
+ "id",
1989
+ "ok"
1990
+ ],
1991
+ "additionalProperties": true
1992
+ }
1993
+ }
1994
+ },
1995
+ "required": [
1996
+ "live",
1997
+ "ready",
1998
+ "checks"
1999
+ ],
2000
+ "additionalProperties": true
2001
+ },
2002
+ "projectRoot": {
2003
+ "type": "string",
2004
+ "minLength": 1,
2005
+ "maxLength": 4096,
2006
+ "description": "An absolute, normalized path on the daemon host to a directory holding .alp/. Compared as is: the daemon never walks up to a parent."
2007
+ },
2008
+ "taskId": {
2009
+ "type": "string",
2010
+ "pattern": "^t-[0-9a-f]{4,12}(?:\\.\\d+)*$"
2011
+ },
2012
+ "taskRow": {
2013
+ "type": "object",
2014
+ "properties": {
2015
+ "id": {
2016
+ "$ref": "#/$defs/taskId"
2017
+ },
2018
+ "title": {
2019
+ "type": "string"
2020
+ },
2021
+ "type": {
2022
+ "type": "string"
2023
+ },
2024
+ "priority": {
2025
+ "type": "integer"
2026
+ },
2027
+ "status": {
2028
+ "enum": [
2029
+ "open",
2030
+ "in_progress",
2031
+ "review",
2032
+ "closed"
2033
+ ]
2034
+ },
2035
+ "rev": {
2036
+ "type": "integer",
2037
+ "minimum": 0
2038
+ },
2039
+ "parent": {
2040
+ "type": "string"
2041
+ },
2042
+ "assignee": {
2043
+ "type": "string"
2044
+ },
2045
+ "ready": {
2046
+ "type": "boolean"
2047
+ },
2048
+ "blockedBy": {
2049
+ "type": "array",
2050
+ "items": {
2051
+ "type": "string"
2052
+ }
2053
+ },
2054
+ "waits": {
2055
+ "type": "array",
2056
+ "items": {
2057
+ "type": "string"
2058
+ }
2059
+ },
2060
+ "approvals": {
2061
+ "type": "array",
2062
+ "items": {
2063
+ "type": "object",
2064
+ "properties": {
2065
+ "gate": {
2066
+ "type": "string"
2067
+ },
2068
+ "note": {
2069
+ "type": "string"
2070
+ }
2071
+ },
2072
+ "required": [
2073
+ "gate",
2074
+ "note"
2075
+ ],
2076
+ "additionalProperties": true
2077
+ }
2078
+ },
2079
+ "handoff": {
2080
+ "type": "object",
2081
+ "properties": {
2082
+ "outcome": {
2083
+ "type": "string"
2084
+ },
2085
+ "summary": {
2086
+ "type": "string"
2087
+ },
2088
+ "agent": {
2089
+ "type": "string"
2090
+ }
2091
+ },
2092
+ "required": [
2093
+ "outcome",
2094
+ "summary"
2095
+ ],
2096
+ "additionalProperties": true
2097
+ },
2098
+ "closed": {
2099
+ "type": "object",
2100
+ "properties": {
2101
+ "reason": {
2102
+ "type": "string"
2103
+ },
2104
+ "summary": {
2105
+ "type": "string"
2106
+ },
2107
+ "at": {
2108
+ "type": "string"
2109
+ }
2110
+ },
2111
+ "required": [
2112
+ "reason",
2113
+ "at"
2114
+ ],
2115
+ "additionalProperties": true
2116
+ },
2117
+ "description": {
2118
+ "type": "string"
2119
+ },
2120
+ "labels": {
2121
+ "type": "array",
2122
+ "items": {
2123
+ "type": "string"
2124
+ }
2125
+ },
2126
+ "paths": {
2127
+ "type": "array",
2128
+ "items": {
2129
+ "type": "string"
2130
+ }
2131
+ },
2132
+ "progress": {
2133
+ "type": "object",
2134
+ "properties": {
2135
+ "done": {
2136
+ "type": "integer",
2137
+ "minimum": 0
2138
+ },
2139
+ "total": {
2140
+ "type": "integer",
2141
+ "minimum": 0
2142
+ }
2143
+ },
2144
+ "required": [
2145
+ "done",
2146
+ "total"
2147
+ ],
2148
+ "additionalProperties": true
2149
+ },
2150
+ "createdAt": {
2151
+ "type": "string"
2152
+ },
2153
+ "updatedAt": {
2154
+ "type": "string"
2155
+ }
2156
+ },
2157
+ "required": [
2158
+ "id",
2159
+ "title",
2160
+ "type",
2161
+ "priority",
2162
+ "status",
2163
+ "rev",
2164
+ "ready",
2165
+ "updatedAt"
2166
+ ],
2167
+ "additionalProperties": true
2168
+ },
2169
+ "libraryKind": {
2170
+ "enum": [
2171
+ "agents",
2172
+ "skills",
2173
+ "mcp",
2174
+ "hooks",
2175
+ "teams",
2176
+ "providers"
2177
+ ]
2178
+ },
2179
+ "libraryScope": {
2180
+ "enum": [
2181
+ "library",
2182
+ "project"
2183
+ ]
2184
+ },
2185
+ "librarySource": {
2186
+ "enum": [
2187
+ "builtin",
2188
+ "library",
2189
+ "project"
2190
+ ]
2191
+ },
2192
+ "entryName": {
2193
+ "type": "string",
2194
+ "minLength": 1,
2195
+ "maxLength": 128,
2196
+ "pattern": "^[A-Za-z0-9_.-]+$",
2197
+ "not": {
2198
+ "enum": [
2199
+ ".",
2200
+ ".."
2201
+ ]
2202
+ }
2203
+ },
2204
+ "libraryRevision": {
2205
+ "type": [
2206
+ "string",
2207
+ "null"
2208
+ ]
2209
+ },
2210
+ "libraryEntryRow": {
2211
+ "type": "object",
2212
+ "properties": {
2213
+ "name": {
2214
+ "type": "string"
2215
+ },
2216
+ "source": {
2217
+ "$ref": "#/$defs/librarySource"
2218
+ },
2219
+ "overrides": {
2220
+ "$ref": "#/$defs/librarySource"
2221
+ },
2222
+ "description": {
2223
+ "type": "string"
2224
+ },
2225
+ "usedBy": {
2226
+ "type": "array",
2227
+ "items": {
2228
+ "type": "string"
2229
+ }
2230
+ }
2231
+ },
2232
+ "required": [
2233
+ "name",
2234
+ "source"
2235
+ ],
2236
+ "additionalProperties": true
2237
+ },
2238
+ "secretMarker": {
2239
+ "type": "object",
2240
+ "properties": {
2241
+ "$secret": {
2242
+ "const": "keep"
2243
+ }
2244
+ },
2245
+ "required": [
2246
+ "$secret"
2247
+ ],
2248
+ "additionalProperties": false,
2249
+ "description": "Stands for a stored secret value: read results carry it in place of the value; a save that sends it back keeps the stored value."
2250
+ },
2251
+ "languageSetting": {
2252
+ "type": "object",
2253
+ "properties": {
2254
+ "language": {
2255
+ "type": [
2256
+ "string",
2257
+ "null"
2258
+ ]
2259
+ },
2260
+ "applies": {
2261
+ "type": "string"
2262
+ },
2263
+ "default": {
2264
+ "type": "string"
2265
+ }
2266
+ },
2267
+ "required": [
2268
+ "language",
2269
+ "applies",
2270
+ "default"
2271
+ ],
2272
+ "additionalProperties": true
2273
+ },
2274
+ "teamRow": {
2275
+ "type": "object",
2276
+ "properties": {
2277
+ "id": {
2278
+ "type": "string"
2279
+ },
2280
+ "label": {
2281
+ "type": "string"
2282
+ },
2283
+ "description": {
2284
+ "type": "string"
2285
+ },
2286
+ "source": {
2287
+ "$ref": "#/$defs/librarySource"
2288
+ },
2289
+ "overrides": {
2290
+ "$ref": "#/$defs/librarySource"
2291
+ },
2292
+ "error": {
2293
+ "type": "string"
2294
+ }
2295
+ },
2296
+ "required": [
2297
+ "id",
2298
+ "source"
2299
+ ],
2300
+ "additionalProperties": true
2301
+ },
2302
+ "promptImage": {
2303
+ "type": "object",
2304
+ "properties": {
2305
+ "type": {
2306
+ "const": "image"
2307
+ },
2308
+ "mimeType": {
2309
+ "enum": [
2310
+ "image/png",
2311
+ "image/jpeg",
2312
+ "image/gif",
2313
+ "image/webp"
2314
+ ]
2315
+ },
2316
+ "data": {
2317
+ "type": "string",
2318
+ "minLength": 4,
2319
+ "maxLength": 6990508,
2320
+ "pattern": "^[A-Za-z0-9+/]+={0,2}$"
2321
+ },
2322
+ "name": {
2323
+ "type": "string",
2324
+ "maxLength": 255
2325
+ }
2326
+ },
2327
+ "required": [
2328
+ "type",
2329
+ "mimeType",
2330
+ "data"
2331
+ ],
2332
+ "additionalProperties": false
2333
+ }
2334
+ }
2335
+ }