@roll-agent/protocol 0.0.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,2695 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://roll-agent.dev/schemas/runtime-protocol/1.0",
4
+ "title": "Roll Runtime Protocol v1",
5
+ "description": "JSON-RPC requests, responses, and runtime.event notifications for Roll Runtime Protocol v1.",
6
+ "oneOf": [
7
+ {
8
+ "$ref": "#/$defs/clientRequest"
9
+ },
10
+ {
11
+ "$ref": "#/$defs/runtimeEventNotification"
12
+ },
13
+ {
14
+ "$ref": "#/$defs/successResponse"
15
+ },
16
+ {
17
+ "$ref": "#/$defs/errorResponse"
18
+ }
19
+ ],
20
+ "$defs": {
21
+ "jsonRpcId": {
22
+ "oneOf": [
23
+ {
24
+ "type": "string"
25
+ },
26
+ {
27
+ "type": "number"
28
+ }
29
+ ]
30
+ },
31
+ "runtimeEventEnvelope": {
32
+ "readOnly": true,
33
+ "type": "object",
34
+ "properties": {
35
+ "protocolVersion": {
36
+ "type": "string",
37
+ "const": "1.0"
38
+ },
39
+ "runtimeInstanceId": {
40
+ "type": "string",
41
+ "format": "uuid",
42
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
43
+ },
44
+ "sequence": {
45
+ "type": "integer",
46
+ "minimum": 0,
47
+ "maximum": 9007199254740991
48
+ },
49
+ "timestamp": {
50
+ "type": "string",
51
+ "format": "date-time",
52
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
53
+ },
54
+ "threadId": {
55
+ "type": "string",
56
+ "format": "uuid",
57
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
58
+ },
59
+ "turnId": {
60
+ "type": "string",
61
+ "format": "uuid",
62
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
63
+ },
64
+ "event": {
65
+ "anyOf": [
66
+ {
67
+ "readOnly": true,
68
+ "type": "object",
69
+ "properties": {
70
+ "type": {
71
+ "type": "string",
72
+ "const": "turn.started"
73
+ }
74
+ },
75
+ "required": [
76
+ "type"
77
+ ],
78
+ "additionalProperties": false
79
+ },
80
+ {
81
+ "readOnly": true,
82
+ "type": "object",
83
+ "properties": {
84
+ "type": {
85
+ "type": "string",
86
+ "const": "message.started"
87
+ },
88
+ "streamId": {
89
+ "type": "string",
90
+ "format": "uuid",
91
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
92
+ }
93
+ },
94
+ "required": [
95
+ "type",
96
+ "streamId"
97
+ ],
98
+ "additionalProperties": false
99
+ },
100
+ {
101
+ "readOnly": true,
102
+ "type": "object",
103
+ "properties": {
104
+ "type": {
105
+ "type": "string",
106
+ "const": "message.delta"
107
+ },
108
+ "streamId": {
109
+ "type": "string",
110
+ "format": "uuid",
111
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
112
+ },
113
+ "delta": {
114
+ "type": "string"
115
+ }
116
+ },
117
+ "required": [
118
+ "type",
119
+ "streamId",
120
+ "delta"
121
+ ],
122
+ "additionalProperties": false
123
+ },
124
+ {
125
+ "readOnly": true,
126
+ "type": "object",
127
+ "properties": {
128
+ "type": {
129
+ "type": "string",
130
+ "const": "message.completed"
131
+ },
132
+ "streamId": {
133
+ "type": "string",
134
+ "format": "uuid",
135
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
136
+ },
137
+ "text": {
138
+ "type": "string"
139
+ }
140
+ },
141
+ "required": [
142
+ "type",
143
+ "streamId",
144
+ "text"
145
+ ],
146
+ "additionalProperties": false
147
+ },
148
+ {
149
+ "readOnly": true,
150
+ "type": "object",
151
+ "properties": {
152
+ "type": {
153
+ "type": "string",
154
+ "const": "reasoning.summary.delta"
155
+ },
156
+ "reasoningId": {
157
+ "type": "string",
158
+ "minLength": 1
159
+ },
160
+ "delta": {
161
+ "type": "string"
162
+ }
163
+ },
164
+ "required": [
165
+ "type",
166
+ "reasoningId",
167
+ "delta"
168
+ ],
169
+ "additionalProperties": false
170
+ },
171
+ {
172
+ "readOnly": true,
173
+ "type": "object",
174
+ "properties": {
175
+ "type": {
176
+ "type": "string",
177
+ "const": "tool.started"
178
+ },
179
+ "toolCallId": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ },
183
+ "agentName": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ },
187
+ "toolName": {
188
+ "type": "string",
189
+ "minLength": 1
190
+ },
191
+ "input": {
192
+ "$ref": "#/$defs/__schema0"
193
+ }
194
+ },
195
+ "required": [
196
+ "type",
197
+ "toolCallId",
198
+ "agentName",
199
+ "toolName",
200
+ "input"
201
+ ],
202
+ "additionalProperties": false
203
+ },
204
+ {
205
+ "readOnly": true,
206
+ "type": "object",
207
+ "properties": {
208
+ "type": {
209
+ "type": "string",
210
+ "const": "tool.output"
211
+ },
212
+ "toolCallId": {
213
+ "type": "string",
214
+ "minLength": 1
215
+ },
216
+ "agentName": {
217
+ "type": "string",
218
+ "minLength": 1
219
+ },
220
+ "toolName": {
221
+ "type": "string",
222
+ "minLength": 1
223
+ },
224
+ "stream": {
225
+ "type": "string",
226
+ "enum": [
227
+ "stdout",
228
+ "stderr"
229
+ ]
230
+ },
231
+ "delta": {
232
+ "type": "string"
233
+ }
234
+ },
235
+ "required": [
236
+ "type",
237
+ "toolCallId",
238
+ "agentName",
239
+ "toolName",
240
+ "stream",
241
+ "delta"
242
+ ],
243
+ "additionalProperties": false
244
+ },
245
+ {
246
+ "readOnly": true,
247
+ "type": "object",
248
+ "properties": {
249
+ "type": {
250
+ "type": "string",
251
+ "const": "tool.completed"
252
+ },
253
+ "toolCallId": {
254
+ "type": "string",
255
+ "minLength": 1
256
+ },
257
+ "agentName": {
258
+ "type": "string",
259
+ "minLength": 1
260
+ },
261
+ "toolName": {
262
+ "type": "string",
263
+ "minLength": 1
264
+ },
265
+ "operationId": {
266
+ "type": "string",
267
+ "format": "uuid",
268
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
269
+ },
270
+ "outcome": {
271
+ "readOnly": true,
272
+ "type": "object",
273
+ "properties": {
274
+ "kind": {
275
+ "type": "string",
276
+ "enum": [
277
+ "success",
278
+ "user_rejected",
279
+ "policy_denied",
280
+ "invalid_input",
281
+ "cancelled",
282
+ "tool_failed"
283
+ ]
284
+ },
285
+ "reason": {
286
+ "type": "string"
287
+ }
288
+ },
289
+ "required": [
290
+ "kind"
291
+ ],
292
+ "additionalProperties": false
293
+ },
294
+ "display": {
295
+ "$ref": "#/$defs/__schema0"
296
+ }
297
+ },
298
+ "required": [
299
+ "type",
300
+ "toolCallId",
301
+ "agentName",
302
+ "toolName",
303
+ "display"
304
+ ],
305
+ "additionalProperties": false
306
+ },
307
+ {
308
+ "readOnly": true,
309
+ "type": "object",
310
+ "properties": {
311
+ "type": {
312
+ "type": "string",
313
+ "const": "approval.required"
314
+ },
315
+ "approval": {
316
+ "readOnly": true,
317
+ "type": "object",
318
+ "properties": {
319
+ "id": {
320
+ "type": "string",
321
+ "format": "uuid",
322
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
323
+ },
324
+ "turnId": {
325
+ "type": "string",
326
+ "format": "uuid",
327
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
328
+ },
329
+ "agentName": {
330
+ "type": "string",
331
+ "minLength": 1
332
+ },
333
+ "toolName": {
334
+ "type": "string",
335
+ "minLength": 1
336
+ },
337
+ "preview": {
338
+ "$ref": "#/$defs/__schema0"
339
+ },
340
+ "reason": {
341
+ "type": "string"
342
+ }
343
+ },
344
+ "required": [
345
+ "id",
346
+ "turnId",
347
+ "agentName",
348
+ "toolName",
349
+ "preview"
350
+ ],
351
+ "additionalProperties": false
352
+ }
353
+ },
354
+ "required": [
355
+ "type",
356
+ "approval"
357
+ ],
358
+ "additionalProperties": false
359
+ },
360
+ {
361
+ "readOnly": true,
362
+ "type": "object",
363
+ "properties": {
364
+ "type": {
365
+ "type": "string",
366
+ "const": "turn.completed"
367
+ }
368
+ },
369
+ "required": [
370
+ "type"
371
+ ],
372
+ "additionalProperties": false
373
+ },
374
+ {
375
+ "readOnly": true,
376
+ "type": "object",
377
+ "properties": {
378
+ "type": {
379
+ "type": "string",
380
+ "const": "turn.cancelled"
381
+ },
382
+ "reason": {
383
+ "type": "string"
384
+ },
385
+ "message": {
386
+ "type": "string"
387
+ }
388
+ },
389
+ "required": [
390
+ "type",
391
+ "reason",
392
+ "message"
393
+ ],
394
+ "additionalProperties": false
395
+ },
396
+ {
397
+ "readOnly": true,
398
+ "type": "object",
399
+ "properties": {
400
+ "type": {
401
+ "type": "string",
402
+ "const": "turn.failed"
403
+ },
404
+ "stage": {
405
+ "type": "string",
406
+ "enum": [
407
+ "bootstrap",
408
+ "plan",
409
+ "execute"
410
+ ]
411
+ },
412
+ "message": {
413
+ "type": "string"
414
+ }
415
+ },
416
+ "required": [
417
+ "type",
418
+ "stage",
419
+ "message"
420
+ ],
421
+ "additionalProperties": false
422
+ },
423
+ {
424
+ "readOnly": true,
425
+ "type": "object",
426
+ "properties": {
427
+ "type": {
428
+ "type": "string",
429
+ "const": "capabilities.changed"
430
+ }
431
+ },
432
+ "required": [
433
+ "type"
434
+ ],
435
+ "additionalProperties": false
436
+ }
437
+ ]
438
+ }
439
+ },
440
+ "required": [
441
+ "protocolVersion",
442
+ "runtimeInstanceId",
443
+ "sequence",
444
+ "timestamp",
445
+ "threadId",
446
+ "event"
447
+ ],
448
+ "additionalProperties": false,
449
+ "$defs": {
450
+ "__schema0": {
451
+ "anyOf": [
452
+ {
453
+ "type": "string"
454
+ },
455
+ {
456
+ "type": "number"
457
+ },
458
+ {
459
+ "type": "boolean"
460
+ },
461
+ {
462
+ "type": "null"
463
+ },
464
+ {
465
+ "type": "array",
466
+ "items": {
467
+ "$ref": "#/$defs/__schema0"
468
+ }
469
+ },
470
+ {
471
+ "type": "object",
472
+ "propertyNames": {
473
+ "type": "string"
474
+ },
475
+ "additionalProperties": {
476
+ "$ref": "#/$defs/__schema0"
477
+ }
478
+ }
479
+ ]
480
+ }
481
+ }
482
+ },
483
+ "runtimeProtocolErrorData": {
484
+ "readOnly": true,
485
+ "type": "object",
486
+ "properties": {
487
+ "rollCode": {
488
+ "type": "string",
489
+ "enum": [
490
+ "PROTOCOL_VERSION_UNSUPPORTED",
491
+ "INITIALIZE_REQUIRED",
492
+ "INVALID_PARAMS",
493
+ "THREAD_NOT_FOUND",
494
+ "THREAD_BUSY",
495
+ "TURN_NOT_FOUND",
496
+ "TURN_ALREADY_ACTIVE",
497
+ "APPROVAL_NOT_FOUND",
498
+ "CAPABILITY_UNAVAILABLE",
499
+ "RUNTIME_CLOSING",
500
+ "OUTCOME_UNKNOWN",
501
+ "INTERNAL_ERROR"
502
+ ]
503
+ },
504
+ "retryable": {
505
+ "type": "boolean"
506
+ },
507
+ "details": {
508
+ "$ref": "#/$defs/__schema0"
509
+ }
510
+ },
511
+ "required": [
512
+ "rollCode",
513
+ "retryable"
514
+ ],
515
+ "additionalProperties": false,
516
+ "$defs": {
517
+ "__schema0": {
518
+ "anyOf": [
519
+ {
520
+ "type": "string"
521
+ },
522
+ {
523
+ "type": "number"
524
+ },
525
+ {
526
+ "type": "boolean"
527
+ },
528
+ {
529
+ "type": "null"
530
+ },
531
+ {
532
+ "type": "array",
533
+ "items": {
534
+ "$ref": "#/$defs/__schema0"
535
+ }
536
+ },
537
+ {
538
+ "type": "object",
539
+ "propertyNames": {
540
+ "type": "string"
541
+ },
542
+ "additionalProperties": {
543
+ "$ref": "#/$defs/__schema0"
544
+ }
545
+ }
546
+ ]
547
+ }
548
+ }
549
+ },
550
+ "initializeParams": {
551
+ "readOnly": true,
552
+ "type": "object",
553
+ "properties": {
554
+ "protocolVersions": {
555
+ "minItems": 1,
556
+ "type": "array",
557
+ "items": {
558
+ "type": "string",
559
+ "minLength": 1
560
+ }
561
+ },
562
+ "client": {
563
+ "readOnly": true,
564
+ "type": "object",
565
+ "properties": {
566
+ "name": {
567
+ "type": "string",
568
+ "minLength": 1,
569
+ "maxLength": 100
570
+ },
571
+ "version": {
572
+ "type": "string",
573
+ "minLength": 1,
574
+ "maxLength": 100
575
+ }
576
+ },
577
+ "required": [
578
+ "name",
579
+ "version"
580
+ ],
581
+ "additionalProperties": false
582
+ }
583
+ },
584
+ "required": [
585
+ "protocolVersions",
586
+ "client"
587
+ ],
588
+ "additionalProperties": false
589
+ },
590
+ "initializeResult": {
591
+ "readOnly": true,
592
+ "type": "object",
593
+ "properties": {
594
+ "protocolVersion": {
595
+ "type": "string",
596
+ "const": "1.0"
597
+ },
598
+ "runtimeInstanceId": {
599
+ "type": "string",
600
+ "format": "uuid",
601
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
602
+ },
603
+ "server": {
604
+ "readOnly": true,
605
+ "type": "object",
606
+ "properties": {
607
+ "name": {
608
+ "type": "string",
609
+ "minLength": 1,
610
+ "maxLength": 100
611
+ },
612
+ "version": {
613
+ "type": "string",
614
+ "minLength": 1,
615
+ "maxLength": 100
616
+ },
617
+ "runtimeVersion": {
618
+ "type": "string",
619
+ "minLength": 1,
620
+ "maxLength": 100
621
+ }
622
+ },
623
+ "required": [
624
+ "name",
625
+ "version",
626
+ "runtimeVersion"
627
+ ],
628
+ "additionalProperties": false
629
+ },
630
+ "features": {
631
+ "type": "array",
632
+ "items": {
633
+ "type": "string",
634
+ "enum": [
635
+ "thread-management",
636
+ "snapshots",
637
+ "turns",
638
+ "approvals",
639
+ "tool-streaming",
640
+ "reasoning-summary",
641
+ "operation-projection",
642
+ "process-local-sequence"
643
+ ]
644
+ }
645
+ },
646
+ "limits": {
647
+ "readOnly": true,
648
+ "type": "object",
649
+ "properties": {
650
+ "maxFrameBytes": {
651
+ "type": "integer",
652
+ "exclusiveMinimum": 0,
653
+ "maximum": 9007199254740991
654
+ },
655
+ "maxPageSize": {
656
+ "type": "integer",
657
+ "exclusiveMinimum": 0,
658
+ "maximum": 9007199254740991
659
+ },
660
+ "eventReplay": {
661
+ "type": "boolean",
662
+ "const": false
663
+ },
664
+ "idempotencyCacheEntries": {
665
+ "type": "integer",
666
+ "exclusiveMinimum": 0,
667
+ "maximum": 9007199254740991
668
+ }
669
+ },
670
+ "required": [
671
+ "maxFrameBytes",
672
+ "maxPageSize",
673
+ "eventReplay",
674
+ "idempotencyCacheEntries"
675
+ ],
676
+ "additionalProperties": false
677
+ }
678
+ },
679
+ "required": [
680
+ "protocolVersion",
681
+ "runtimeInstanceId",
682
+ "server",
683
+ "features",
684
+ "limits"
685
+ ],
686
+ "additionalProperties": false
687
+ },
688
+ "initializeRequest": {
689
+ "type": "object",
690
+ "properties": {
691
+ "jsonrpc": {
692
+ "const": "2.0"
693
+ },
694
+ "id": {
695
+ "$ref": "#/$defs/jsonRpcId"
696
+ },
697
+ "method": {
698
+ "const": "initialize"
699
+ },
700
+ "params": {
701
+ "$ref": "#/$defs/initializeParams"
702
+ }
703
+ },
704
+ "required": [
705
+ "jsonrpc",
706
+ "id",
707
+ "method",
708
+ "params"
709
+ ],
710
+ "additionalProperties": false
711
+ },
712
+ "threadListParams": {
713
+ "readOnly": true,
714
+ "type": "object",
715
+ "properties": {
716
+ "cursor": {
717
+ "type": "string",
718
+ "pattern": "^\\d+$"
719
+ },
720
+ "limit": {
721
+ "default": 100,
722
+ "type": "integer",
723
+ "minimum": 1,
724
+ "maximum": 500
725
+ }
726
+ },
727
+ "required": [
728
+ "limit"
729
+ ],
730
+ "additionalProperties": false
731
+ },
732
+ "threadListResult": {
733
+ "readOnly": true,
734
+ "type": "object",
735
+ "properties": {
736
+ "items": {
737
+ "type": "array",
738
+ "items": {
739
+ "readOnly": true,
740
+ "type": "object",
741
+ "properties": {
742
+ "id": {
743
+ "type": "string",
744
+ "format": "uuid",
745
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
746
+ },
747
+ "title": {
748
+ "type": "string"
749
+ },
750
+ "model": {
751
+ "type": "string"
752
+ },
753
+ "createdAt": {
754
+ "type": "string",
755
+ "format": "date-time",
756
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
757
+ },
758
+ "updatedAt": {
759
+ "type": "string",
760
+ "format": "date-time",
761
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
762
+ },
763
+ "messageCount": {
764
+ "type": "integer",
765
+ "minimum": 0,
766
+ "maximum": 9007199254740991
767
+ }
768
+ },
769
+ "required": [
770
+ "id",
771
+ "createdAt",
772
+ "updatedAt",
773
+ "messageCount"
774
+ ],
775
+ "additionalProperties": false
776
+ }
777
+ },
778
+ "nextCursor": {
779
+ "anyOf": [
780
+ {
781
+ "type": "string",
782
+ "pattern": "^\\d+$"
783
+ },
784
+ {
785
+ "type": "null"
786
+ }
787
+ ]
788
+ }
789
+ },
790
+ "required": [
791
+ "items",
792
+ "nextCursor"
793
+ ],
794
+ "additionalProperties": false
795
+ },
796
+ "threadListRequest": {
797
+ "type": "object",
798
+ "properties": {
799
+ "jsonrpc": {
800
+ "const": "2.0"
801
+ },
802
+ "id": {
803
+ "$ref": "#/$defs/jsonRpcId"
804
+ },
805
+ "method": {
806
+ "const": "thread.list"
807
+ },
808
+ "params": {
809
+ "$ref": "#/$defs/threadListParams"
810
+ }
811
+ },
812
+ "required": [
813
+ "jsonrpc",
814
+ "id",
815
+ "method",
816
+ "params"
817
+ ],
818
+ "additionalProperties": false
819
+ },
820
+ "threadCreateParams": {
821
+ "readOnly": true,
822
+ "type": "object",
823
+ "properties": {
824
+ "requestId": {
825
+ "type": "string",
826
+ "format": "uuid",
827
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
828
+ },
829
+ "title": {
830
+ "type": "string",
831
+ "minLength": 1,
832
+ "maxLength": 200
833
+ }
834
+ },
835
+ "required": [
836
+ "requestId"
837
+ ],
838
+ "additionalProperties": false
839
+ },
840
+ "threadCreateResult": {
841
+ "readOnly": true,
842
+ "type": "object",
843
+ "properties": {
844
+ "thread": {
845
+ "readOnly": true,
846
+ "type": "object",
847
+ "properties": {
848
+ "id": {
849
+ "type": "string",
850
+ "format": "uuid",
851
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
852
+ },
853
+ "title": {
854
+ "type": "string"
855
+ },
856
+ "model": {
857
+ "type": "string"
858
+ },
859
+ "createdAt": {
860
+ "type": "string",
861
+ "format": "date-time",
862
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
863
+ },
864
+ "updatedAt": {
865
+ "type": "string",
866
+ "format": "date-time",
867
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
868
+ },
869
+ "messageCount": {
870
+ "type": "integer",
871
+ "minimum": 0,
872
+ "maximum": 9007199254740991
873
+ }
874
+ },
875
+ "required": [
876
+ "id",
877
+ "createdAt",
878
+ "updatedAt",
879
+ "messageCount"
880
+ ],
881
+ "additionalProperties": false
882
+ }
883
+ },
884
+ "required": [
885
+ "thread"
886
+ ],
887
+ "additionalProperties": false
888
+ },
889
+ "threadCreateRequest": {
890
+ "type": "object",
891
+ "properties": {
892
+ "jsonrpc": {
893
+ "const": "2.0"
894
+ },
895
+ "id": {
896
+ "$ref": "#/$defs/jsonRpcId"
897
+ },
898
+ "method": {
899
+ "const": "thread.create"
900
+ },
901
+ "params": {
902
+ "$ref": "#/$defs/threadCreateParams"
903
+ }
904
+ },
905
+ "required": [
906
+ "jsonrpc",
907
+ "id",
908
+ "method",
909
+ "params"
910
+ ],
911
+ "additionalProperties": false
912
+ },
913
+ "threadOpenParams": {
914
+ "readOnly": true,
915
+ "type": "object",
916
+ "properties": {
917
+ "threadId": {
918
+ "type": "string",
919
+ "format": "uuid",
920
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
921
+ }
922
+ },
923
+ "required": [
924
+ "threadId"
925
+ ],
926
+ "additionalProperties": false
927
+ },
928
+ "threadOpenResult": {
929
+ "readOnly": true,
930
+ "type": "object",
931
+ "properties": {
932
+ "thread": {
933
+ "readOnly": true,
934
+ "type": "object",
935
+ "properties": {
936
+ "id": {
937
+ "type": "string",
938
+ "format": "uuid",
939
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
940
+ },
941
+ "title": {
942
+ "type": "string"
943
+ },
944
+ "model": {
945
+ "type": "string"
946
+ },
947
+ "createdAt": {
948
+ "type": "string",
949
+ "format": "date-time",
950
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
951
+ },
952
+ "updatedAt": {
953
+ "type": "string",
954
+ "format": "date-time",
955
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
956
+ },
957
+ "messageCount": {
958
+ "type": "integer",
959
+ "minimum": 0,
960
+ "maximum": 9007199254740991
961
+ }
962
+ },
963
+ "required": [
964
+ "id",
965
+ "createdAt",
966
+ "updatedAt",
967
+ "messageCount"
968
+ ],
969
+ "additionalProperties": false
970
+ },
971
+ "messages": {
972
+ "readOnly": true,
973
+ "type": "object",
974
+ "properties": {
975
+ "items": {
976
+ "type": "array",
977
+ "items": {
978
+ "readOnly": true,
979
+ "type": "object",
980
+ "properties": {
981
+ "sequence": {
982
+ "type": "integer",
983
+ "minimum": 0,
984
+ "maximum": 9007199254740991
985
+ },
986
+ "role": {
987
+ "type": "string",
988
+ "enum": [
989
+ "user",
990
+ "assistant"
991
+ ]
992
+ },
993
+ "createdAt": {
994
+ "type": "string",
995
+ "format": "date-time",
996
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
997
+ },
998
+ "parts": {
999
+ "type": "array",
1000
+ "items": {
1001
+ "readOnly": true,
1002
+ "type": "object",
1003
+ "properties": {
1004
+ "type": {
1005
+ "type": "string",
1006
+ "const": "text"
1007
+ },
1008
+ "text": {
1009
+ "type": "string"
1010
+ }
1011
+ },
1012
+ "required": [
1013
+ "type",
1014
+ "text"
1015
+ ],
1016
+ "additionalProperties": false
1017
+ }
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "sequence",
1022
+ "role",
1023
+ "createdAt",
1024
+ "parts"
1025
+ ],
1026
+ "additionalProperties": false
1027
+ }
1028
+ },
1029
+ "nextBeforeSequence": {
1030
+ "anyOf": [
1031
+ {
1032
+ "type": "integer",
1033
+ "minimum": 0,
1034
+ "maximum": 9007199254740991
1035
+ },
1036
+ {
1037
+ "type": "null"
1038
+ }
1039
+ ]
1040
+ }
1041
+ },
1042
+ "required": [
1043
+ "items",
1044
+ "nextBeforeSequence"
1045
+ ],
1046
+ "additionalProperties": false
1047
+ },
1048
+ "operations": {
1049
+ "readOnly": true,
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "items": {
1053
+ "type": "array",
1054
+ "items": {
1055
+ "readOnly": true,
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "id": {
1059
+ "type": "string",
1060
+ "format": "uuid",
1061
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1062
+ },
1063
+ "sequence": {
1064
+ "type": "integer",
1065
+ "minimum": 0,
1066
+ "maximum": 9007199254740991
1067
+ },
1068
+ "toolCallId": {
1069
+ "type": "string",
1070
+ "minLength": 1
1071
+ },
1072
+ "agentName": {
1073
+ "type": "string",
1074
+ "minLength": 1
1075
+ },
1076
+ "toolName": {
1077
+ "type": "string",
1078
+ "minLength": 1
1079
+ },
1080
+ "createdAt": {
1081
+ "type": "string",
1082
+ "format": "date-time",
1083
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1084
+ },
1085
+ "outcome": {
1086
+ "readOnly": true,
1087
+ "type": "object",
1088
+ "properties": {
1089
+ "kind": {
1090
+ "type": "string",
1091
+ "enum": [
1092
+ "success",
1093
+ "user_rejected",
1094
+ "policy_denied",
1095
+ "invalid_input",
1096
+ "cancelled",
1097
+ "tool_failed"
1098
+ ]
1099
+ },
1100
+ "reason": {
1101
+ "type": "string"
1102
+ }
1103
+ },
1104
+ "required": [
1105
+ "kind"
1106
+ ],
1107
+ "additionalProperties": false
1108
+ },
1109
+ "display": {
1110
+ "$ref": "#/$defs/__schema0"
1111
+ }
1112
+ },
1113
+ "required": [
1114
+ "id",
1115
+ "sequence",
1116
+ "toolCallId",
1117
+ "agentName",
1118
+ "toolName",
1119
+ "createdAt",
1120
+ "outcome",
1121
+ "display"
1122
+ ],
1123
+ "additionalProperties": false
1124
+ }
1125
+ },
1126
+ "nextBeforeSequence": {
1127
+ "anyOf": [
1128
+ {
1129
+ "type": "integer",
1130
+ "minimum": 0,
1131
+ "maximum": 9007199254740991
1132
+ },
1133
+ {
1134
+ "type": "null"
1135
+ }
1136
+ ]
1137
+ }
1138
+ },
1139
+ "required": [
1140
+ "items",
1141
+ "nextBeforeSequence"
1142
+ ],
1143
+ "additionalProperties": false
1144
+ },
1145
+ "activeTurn": {
1146
+ "readOnly": true,
1147
+ "type": "object",
1148
+ "properties": {
1149
+ "id": {
1150
+ "type": "string",
1151
+ "format": "uuid",
1152
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1153
+ },
1154
+ "status": {
1155
+ "type": "string",
1156
+ "enum": [
1157
+ "running",
1158
+ "cancelling"
1159
+ ]
1160
+ },
1161
+ "startedAt": {
1162
+ "type": "string",
1163
+ "format": "date-time",
1164
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1165
+ }
1166
+ },
1167
+ "required": [
1168
+ "id",
1169
+ "status",
1170
+ "startedAt"
1171
+ ],
1172
+ "additionalProperties": false
1173
+ },
1174
+ "pendingApprovals": {
1175
+ "type": "array",
1176
+ "items": {
1177
+ "readOnly": true,
1178
+ "type": "object",
1179
+ "properties": {
1180
+ "id": {
1181
+ "type": "string",
1182
+ "format": "uuid",
1183
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1184
+ },
1185
+ "turnId": {
1186
+ "type": "string",
1187
+ "format": "uuid",
1188
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1189
+ },
1190
+ "agentName": {
1191
+ "type": "string",
1192
+ "minLength": 1
1193
+ },
1194
+ "toolName": {
1195
+ "type": "string",
1196
+ "minLength": 1
1197
+ },
1198
+ "preview": {
1199
+ "$ref": "#/$defs/__schema0"
1200
+ },
1201
+ "reason": {
1202
+ "type": "string"
1203
+ }
1204
+ },
1205
+ "required": [
1206
+ "id",
1207
+ "turnId",
1208
+ "agentName",
1209
+ "toolName",
1210
+ "preview"
1211
+ ],
1212
+ "additionalProperties": false
1213
+ }
1214
+ },
1215
+ "transcriptCompleteness": {
1216
+ "type": "string",
1217
+ "enum": [
1218
+ "complete",
1219
+ "legacy_snapshot"
1220
+ ]
1221
+ }
1222
+ },
1223
+ "required": [
1224
+ "thread",
1225
+ "messages",
1226
+ "operations",
1227
+ "pendingApprovals",
1228
+ "transcriptCompleteness"
1229
+ ],
1230
+ "additionalProperties": false,
1231
+ "$defs": {
1232
+ "__schema0": {
1233
+ "anyOf": [
1234
+ {
1235
+ "type": "string"
1236
+ },
1237
+ {
1238
+ "type": "number"
1239
+ },
1240
+ {
1241
+ "type": "boolean"
1242
+ },
1243
+ {
1244
+ "type": "null"
1245
+ },
1246
+ {
1247
+ "type": "array",
1248
+ "items": {
1249
+ "$ref": "#/$defs/__schema0"
1250
+ }
1251
+ },
1252
+ {
1253
+ "type": "object",
1254
+ "propertyNames": {
1255
+ "type": "string"
1256
+ },
1257
+ "additionalProperties": {
1258
+ "$ref": "#/$defs/__schema0"
1259
+ }
1260
+ }
1261
+ ]
1262
+ }
1263
+ }
1264
+ },
1265
+ "threadOpenRequest": {
1266
+ "type": "object",
1267
+ "properties": {
1268
+ "jsonrpc": {
1269
+ "const": "2.0"
1270
+ },
1271
+ "id": {
1272
+ "$ref": "#/$defs/jsonRpcId"
1273
+ },
1274
+ "method": {
1275
+ "const": "thread.open"
1276
+ },
1277
+ "params": {
1278
+ "$ref": "#/$defs/threadOpenParams"
1279
+ }
1280
+ },
1281
+ "required": [
1282
+ "jsonrpc",
1283
+ "id",
1284
+ "method",
1285
+ "params"
1286
+ ],
1287
+ "additionalProperties": false
1288
+ },
1289
+ "threadSnapshotParams": {
1290
+ "readOnly": true,
1291
+ "type": "object",
1292
+ "properties": {
1293
+ "threadId": {
1294
+ "type": "string",
1295
+ "format": "uuid",
1296
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1297
+ },
1298
+ "messageBeforeSequence": {
1299
+ "type": "integer",
1300
+ "minimum": 0,
1301
+ "maximum": 9007199254740991
1302
+ },
1303
+ "operationBeforeSequence": {
1304
+ "type": "integer",
1305
+ "minimum": 0,
1306
+ "maximum": 9007199254740991
1307
+ },
1308
+ "limit": {
1309
+ "default": 100,
1310
+ "type": "integer",
1311
+ "minimum": 1,
1312
+ "maximum": 500
1313
+ }
1314
+ },
1315
+ "required": [
1316
+ "threadId",
1317
+ "limit"
1318
+ ],
1319
+ "additionalProperties": false
1320
+ },
1321
+ "threadSnapshotResult": {
1322
+ "readOnly": true,
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "thread": {
1326
+ "readOnly": true,
1327
+ "type": "object",
1328
+ "properties": {
1329
+ "id": {
1330
+ "type": "string",
1331
+ "format": "uuid",
1332
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1333
+ },
1334
+ "title": {
1335
+ "type": "string"
1336
+ },
1337
+ "model": {
1338
+ "type": "string"
1339
+ },
1340
+ "createdAt": {
1341
+ "type": "string",
1342
+ "format": "date-time",
1343
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1344
+ },
1345
+ "updatedAt": {
1346
+ "type": "string",
1347
+ "format": "date-time",
1348
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1349
+ },
1350
+ "messageCount": {
1351
+ "type": "integer",
1352
+ "minimum": 0,
1353
+ "maximum": 9007199254740991
1354
+ }
1355
+ },
1356
+ "required": [
1357
+ "id",
1358
+ "createdAt",
1359
+ "updatedAt",
1360
+ "messageCount"
1361
+ ],
1362
+ "additionalProperties": false
1363
+ },
1364
+ "messages": {
1365
+ "readOnly": true,
1366
+ "type": "object",
1367
+ "properties": {
1368
+ "items": {
1369
+ "type": "array",
1370
+ "items": {
1371
+ "readOnly": true,
1372
+ "type": "object",
1373
+ "properties": {
1374
+ "sequence": {
1375
+ "type": "integer",
1376
+ "minimum": 0,
1377
+ "maximum": 9007199254740991
1378
+ },
1379
+ "role": {
1380
+ "type": "string",
1381
+ "enum": [
1382
+ "user",
1383
+ "assistant"
1384
+ ]
1385
+ },
1386
+ "createdAt": {
1387
+ "type": "string",
1388
+ "format": "date-time",
1389
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1390
+ },
1391
+ "parts": {
1392
+ "type": "array",
1393
+ "items": {
1394
+ "readOnly": true,
1395
+ "type": "object",
1396
+ "properties": {
1397
+ "type": {
1398
+ "type": "string",
1399
+ "const": "text"
1400
+ },
1401
+ "text": {
1402
+ "type": "string"
1403
+ }
1404
+ },
1405
+ "required": [
1406
+ "type",
1407
+ "text"
1408
+ ],
1409
+ "additionalProperties": false
1410
+ }
1411
+ }
1412
+ },
1413
+ "required": [
1414
+ "sequence",
1415
+ "role",
1416
+ "createdAt",
1417
+ "parts"
1418
+ ],
1419
+ "additionalProperties": false
1420
+ }
1421
+ },
1422
+ "nextBeforeSequence": {
1423
+ "anyOf": [
1424
+ {
1425
+ "type": "integer",
1426
+ "minimum": 0,
1427
+ "maximum": 9007199254740991
1428
+ },
1429
+ {
1430
+ "type": "null"
1431
+ }
1432
+ ]
1433
+ }
1434
+ },
1435
+ "required": [
1436
+ "items",
1437
+ "nextBeforeSequence"
1438
+ ],
1439
+ "additionalProperties": false
1440
+ },
1441
+ "operations": {
1442
+ "readOnly": true,
1443
+ "type": "object",
1444
+ "properties": {
1445
+ "items": {
1446
+ "type": "array",
1447
+ "items": {
1448
+ "readOnly": true,
1449
+ "type": "object",
1450
+ "properties": {
1451
+ "id": {
1452
+ "type": "string",
1453
+ "format": "uuid",
1454
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1455
+ },
1456
+ "sequence": {
1457
+ "type": "integer",
1458
+ "minimum": 0,
1459
+ "maximum": 9007199254740991
1460
+ },
1461
+ "toolCallId": {
1462
+ "type": "string",
1463
+ "minLength": 1
1464
+ },
1465
+ "agentName": {
1466
+ "type": "string",
1467
+ "minLength": 1
1468
+ },
1469
+ "toolName": {
1470
+ "type": "string",
1471
+ "minLength": 1
1472
+ },
1473
+ "createdAt": {
1474
+ "type": "string",
1475
+ "format": "date-time",
1476
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1477
+ },
1478
+ "outcome": {
1479
+ "readOnly": true,
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "kind": {
1483
+ "type": "string",
1484
+ "enum": [
1485
+ "success",
1486
+ "user_rejected",
1487
+ "policy_denied",
1488
+ "invalid_input",
1489
+ "cancelled",
1490
+ "tool_failed"
1491
+ ]
1492
+ },
1493
+ "reason": {
1494
+ "type": "string"
1495
+ }
1496
+ },
1497
+ "required": [
1498
+ "kind"
1499
+ ],
1500
+ "additionalProperties": false
1501
+ },
1502
+ "display": {
1503
+ "$ref": "#/$defs/__schema0"
1504
+ }
1505
+ },
1506
+ "required": [
1507
+ "id",
1508
+ "sequence",
1509
+ "toolCallId",
1510
+ "agentName",
1511
+ "toolName",
1512
+ "createdAt",
1513
+ "outcome",
1514
+ "display"
1515
+ ],
1516
+ "additionalProperties": false
1517
+ }
1518
+ },
1519
+ "nextBeforeSequence": {
1520
+ "anyOf": [
1521
+ {
1522
+ "type": "integer",
1523
+ "minimum": 0,
1524
+ "maximum": 9007199254740991
1525
+ },
1526
+ {
1527
+ "type": "null"
1528
+ }
1529
+ ]
1530
+ }
1531
+ },
1532
+ "required": [
1533
+ "items",
1534
+ "nextBeforeSequence"
1535
+ ],
1536
+ "additionalProperties": false
1537
+ },
1538
+ "activeTurn": {
1539
+ "readOnly": true,
1540
+ "type": "object",
1541
+ "properties": {
1542
+ "id": {
1543
+ "type": "string",
1544
+ "format": "uuid",
1545
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1546
+ },
1547
+ "status": {
1548
+ "type": "string",
1549
+ "enum": [
1550
+ "running",
1551
+ "cancelling"
1552
+ ]
1553
+ },
1554
+ "startedAt": {
1555
+ "type": "string",
1556
+ "format": "date-time",
1557
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1558
+ }
1559
+ },
1560
+ "required": [
1561
+ "id",
1562
+ "status",
1563
+ "startedAt"
1564
+ ],
1565
+ "additionalProperties": false
1566
+ },
1567
+ "pendingApprovals": {
1568
+ "type": "array",
1569
+ "items": {
1570
+ "readOnly": true,
1571
+ "type": "object",
1572
+ "properties": {
1573
+ "id": {
1574
+ "type": "string",
1575
+ "format": "uuid",
1576
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1577
+ },
1578
+ "turnId": {
1579
+ "type": "string",
1580
+ "format": "uuid",
1581
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1582
+ },
1583
+ "agentName": {
1584
+ "type": "string",
1585
+ "minLength": 1
1586
+ },
1587
+ "toolName": {
1588
+ "type": "string",
1589
+ "minLength": 1
1590
+ },
1591
+ "preview": {
1592
+ "$ref": "#/$defs/__schema0"
1593
+ },
1594
+ "reason": {
1595
+ "type": "string"
1596
+ }
1597
+ },
1598
+ "required": [
1599
+ "id",
1600
+ "turnId",
1601
+ "agentName",
1602
+ "toolName",
1603
+ "preview"
1604
+ ],
1605
+ "additionalProperties": false
1606
+ }
1607
+ },
1608
+ "transcriptCompleteness": {
1609
+ "type": "string",
1610
+ "enum": [
1611
+ "complete",
1612
+ "legacy_snapshot"
1613
+ ]
1614
+ }
1615
+ },
1616
+ "required": [
1617
+ "thread",
1618
+ "messages",
1619
+ "operations",
1620
+ "pendingApprovals",
1621
+ "transcriptCompleteness"
1622
+ ],
1623
+ "additionalProperties": false,
1624
+ "$defs": {
1625
+ "__schema0": {
1626
+ "anyOf": [
1627
+ {
1628
+ "type": "string"
1629
+ },
1630
+ {
1631
+ "type": "number"
1632
+ },
1633
+ {
1634
+ "type": "boolean"
1635
+ },
1636
+ {
1637
+ "type": "null"
1638
+ },
1639
+ {
1640
+ "type": "array",
1641
+ "items": {
1642
+ "$ref": "#/$defs/__schema0"
1643
+ }
1644
+ },
1645
+ {
1646
+ "type": "object",
1647
+ "propertyNames": {
1648
+ "type": "string"
1649
+ },
1650
+ "additionalProperties": {
1651
+ "$ref": "#/$defs/__schema0"
1652
+ }
1653
+ }
1654
+ ]
1655
+ }
1656
+ }
1657
+ },
1658
+ "threadSnapshotRequest": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "jsonrpc": {
1662
+ "const": "2.0"
1663
+ },
1664
+ "id": {
1665
+ "$ref": "#/$defs/jsonRpcId"
1666
+ },
1667
+ "method": {
1668
+ "const": "thread.snapshot"
1669
+ },
1670
+ "params": {
1671
+ "$ref": "#/$defs/threadSnapshotParams"
1672
+ }
1673
+ },
1674
+ "required": [
1675
+ "jsonrpc",
1676
+ "id",
1677
+ "method",
1678
+ "params"
1679
+ ],
1680
+ "additionalProperties": false
1681
+ },
1682
+ "threadRenameParams": {
1683
+ "readOnly": true,
1684
+ "type": "object",
1685
+ "properties": {
1686
+ "requestId": {
1687
+ "type": "string",
1688
+ "format": "uuid",
1689
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1690
+ },
1691
+ "threadId": {
1692
+ "type": "string",
1693
+ "format": "uuid",
1694
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1695
+ },
1696
+ "title": {
1697
+ "type": "string",
1698
+ "minLength": 1,
1699
+ "maxLength": 200
1700
+ }
1701
+ },
1702
+ "required": [
1703
+ "requestId",
1704
+ "threadId",
1705
+ "title"
1706
+ ],
1707
+ "additionalProperties": false
1708
+ },
1709
+ "threadRenameResult": {
1710
+ "readOnly": true,
1711
+ "type": "object",
1712
+ "properties": {
1713
+ "thread": {
1714
+ "readOnly": true,
1715
+ "type": "object",
1716
+ "properties": {
1717
+ "id": {
1718
+ "type": "string",
1719
+ "format": "uuid",
1720
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1721
+ },
1722
+ "title": {
1723
+ "type": "string"
1724
+ },
1725
+ "model": {
1726
+ "type": "string"
1727
+ },
1728
+ "createdAt": {
1729
+ "type": "string",
1730
+ "format": "date-time",
1731
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1732
+ },
1733
+ "updatedAt": {
1734
+ "type": "string",
1735
+ "format": "date-time",
1736
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
1737
+ },
1738
+ "messageCount": {
1739
+ "type": "integer",
1740
+ "minimum": 0,
1741
+ "maximum": 9007199254740991
1742
+ }
1743
+ },
1744
+ "required": [
1745
+ "id",
1746
+ "createdAt",
1747
+ "updatedAt",
1748
+ "messageCount"
1749
+ ],
1750
+ "additionalProperties": false
1751
+ }
1752
+ },
1753
+ "required": [
1754
+ "thread"
1755
+ ],
1756
+ "additionalProperties": false
1757
+ },
1758
+ "threadRenameRequest": {
1759
+ "type": "object",
1760
+ "properties": {
1761
+ "jsonrpc": {
1762
+ "const": "2.0"
1763
+ },
1764
+ "id": {
1765
+ "$ref": "#/$defs/jsonRpcId"
1766
+ },
1767
+ "method": {
1768
+ "const": "thread.rename"
1769
+ },
1770
+ "params": {
1771
+ "$ref": "#/$defs/threadRenameParams"
1772
+ }
1773
+ },
1774
+ "required": [
1775
+ "jsonrpc",
1776
+ "id",
1777
+ "method",
1778
+ "params"
1779
+ ],
1780
+ "additionalProperties": false
1781
+ },
1782
+ "threadDeleteParams": {
1783
+ "readOnly": true,
1784
+ "type": "object",
1785
+ "properties": {
1786
+ "requestId": {
1787
+ "type": "string",
1788
+ "format": "uuid",
1789
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1790
+ },
1791
+ "threadId": {
1792
+ "type": "string",
1793
+ "format": "uuid",
1794
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1795
+ }
1796
+ },
1797
+ "required": [
1798
+ "requestId",
1799
+ "threadId"
1800
+ ],
1801
+ "additionalProperties": false
1802
+ },
1803
+ "threadDeleteResult": {
1804
+ "readOnly": true,
1805
+ "type": "object",
1806
+ "properties": {
1807
+ "deleted": {
1808
+ "type": "boolean",
1809
+ "const": true
1810
+ }
1811
+ },
1812
+ "required": [
1813
+ "deleted"
1814
+ ],
1815
+ "additionalProperties": false
1816
+ },
1817
+ "threadDeleteRequest": {
1818
+ "type": "object",
1819
+ "properties": {
1820
+ "jsonrpc": {
1821
+ "const": "2.0"
1822
+ },
1823
+ "id": {
1824
+ "$ref": "#/$defs/jsonRpcId"
1825
+ },
1826
+ "method": {
1827
+ "const": "thread.delete"
1828
+ },
1829
+ "params": {
1830
+ "$ref": "#/$defs/threadDeleteParams"
1831
+ }
1832
+ },
1833
+ "required": [
1834
+ "jsonrpc",
1835
+ "id",
1836
+ "method",
1837
+ "params"
1838
+ ],
1839
+ "additionalProperties": false
1840
+ },
1841
+ "threadDetachParams": {
1842
+ "readOnly": true,
1843
+ "type": "object",
1844
+ "properties": {
1845
+ "requestId": {
1846
+ "type": "string",
1847
+ "format": "uuid",
1848
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1849
+ },
1850
+ "threadId": {
1851
+ "type": "string",
1852
+ "format": "uuid",
1853
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1854
+ }
1855
+ },
1856
+ "required": [
1857
+ "requestId",
1858
+ "threadId"
1859
+ ],
1860
+ "additionalProperties": false
1861
+ },
1862
+ "threadDetachResult": {
1863
+ "readOnly": true,
1864
+ "type": "object",
1865
+ "properties": {
1866
+ "detached": {
1867
+ "type": "boolean"
1868
+ }
1869
+ },
1870
+ "required": [
1871
+ "detached"
1872
+ ],
1873
+ "additionalProperties": false
1874
+ },
1875
+ "threadDetachRequest": {
1876
+ "type": "object",
1877
+ "properties": {
1878
+ "jsonrpc": {
1879
+ "const": "2.0"
1880
+ },
1881
+ "id": {
1882
+ "$ref": "#/$defs/jsonRpcId"
1883
+ },
1884
+ "method": {
1885
+ "const": "thread.detach"
1886
+ },
1887
+ "params": {
1888
+ "$ref": "#/$defs/threadDetachParams"
1889
+ }
1890
+ },
1891
+ "required": [
1892
+ "jsonrpc",
1893
+ "id",
1894
+ "method",
1895
+ "params"
1896
+ ],
1897
+ "additionalProperties": false
1898
+ },
1899
+ "threadCapabilitiesParams": {
1900
+ "readOnly": true,
1901
+ "type": "object",
1902
+ "properties": {
1903
+ "threadId": {
1904
+ "type": "string",
1905
+ "format": "uuid",
1906
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1907
+ }
1908
+ },
1909
+ "required": [
1910
+ "threadId"
1911
+ ],
1912
+ "additionalProperties": false
1913
+ },
1914
+ "threadCapabilitiesResult": {
1915
+ "readOnly": true,
1916
+ "type": "object",
1917
+ "properties": {
1918
+ "manifest": {
1919
+ "$ref": "#/$defs/__schema0"
1920
+ }
1921
+ },
1922
+ "required": [
1923
+ "manifest"
1924
+ ],
1925
+ "additionalProperties": false,
1926
+ "$defs": {
1927
+ "__schema0": {
1928
+ "anyOf": [
1929
+ {
1930
+ "type": "string"
1931
+ },
1932
+ {
1933
+ "type": "number"
1934
+ },
1935
+ {
1936
+ "type": "boolean"
1937
+ },
1938
+ {
1939
+ "type": "null"
1940
+ },
1941
+ {
1942
+ "type": "array",
1943
+ "items": {
1944
+ "$ref": "#/$defs/__schema0"
1945
+ }
1946
+ },
1947
+ {
1948
+ "type": "object",
1949
+ "propertyNames": {
1950
+ "type": "string"
1951
+ },
1952
+ "additionalProperties": {
1953
+ "$ref": "#/$defs/__schema0"
1954
+ }
1955
+ }
1956
+ ]
1957
+ }
1958
+ }
1959
+ },
1960
+ "threadCapabilitiesRequest": {
1961
+ "type": "object",
1962
+ "properties": {
1963
+ "jsonrpc": {
1964
+ "const": "2.0"
1965
+ },
1966
+ "id": {
1967
+ "$ref": "#/$defs/jsonRpcId"
1968
+ },
1969
+ "method": {
1970
+ "const": "thread.capabilities"
1971
+ },
1972
+ "params": {
1973
+ "$ref": "#/$defs/threadCapabilitiesParams"
1974
+ }
1975
+ },
1976
+ "required": [
1977
+ "jsonrpc",
1978
+ "id",
1979
+ "method",
1980
+ "params"
1981
+ ],
1982
+ "additionalProperties": false
1983
+ },
1984
+ "turnStartParams": {
1985
+ "readOnly": true,
1986
+ "type": "object",
1987
+ "properties": {
1988
+ "requestId": {
1989
+ "type": "string",
1990
+ "format": "uuid",
1991
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1992
+ },
1993
+ "threadId": {
1994
+ "type": "string",
1995
+ "format": "uuid",
1996
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
1997
+ },
1998
+ "turnId": {
1999
+ "type": "string",
2000
+ "format": "uuid",
2001
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2002
+ },
2003
+ "input": {
2004
+ "readOnly": true,
2005
+ "type": "object",
2006
+ "properties": {
2007
+ "text": {
2008
+ "type": "string",
2009
+ "minLength": 1
2010
+ }
2011
+ },
2012
+ "required": [
2013
+ "text"
2014
+ ],
2015
+ "additionalProperties": false
2016
+ }
2017
+ },
2018
+ "required": [
2019
+ "requestId",
2020
+ "threadId",
2021
+ "turnId",
2022
+ "input"
2023
+ ],
2024
+ "additionalProperties": false
2025
+ },
2026
+ "turnStartResult": {
2027
+ "readOnly": true,
2028
+ "type": "object",
2029
+ "properties": {
2030
+ "accepted": {
2031
+ "type": "boolean",
2032
+ "const": true
2033
+ },
2034
+ "turnId": {
2035
+ "type": "string",
2036
+ "format": "uuid",
2037
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2038
+ }
2039
+ },
2040
+ "required": [
2041
+ "accepted",
2042
+ "turnId"
2043
+ ],
2044
+ "additionalProperties": false
2045
+ },
2046
+ "turnStartRequest": {
2047
+ "type": "object",
2048
+ "properties": {
2049
+ "jsonrpc": {
2050
+ "const": "2.0"
2051
+ },
2052
+ "id": {
2053
+ "$ref": "#/$defs/jsonRpcId"
2054
+ },
2055
+ "method": {
2056
+ "const": "turn.start"
2057
+ },
2058
+ "params": {
2059
+ "$ref": "#/$defs/turnStartParams"
2060
+ }
2061
+ },
2062
+ "required": [
2063
+ "jsonrpc",
2064
+ "id",
2065
+ "method",
2066
+ "params"
2067
+ ],
2068
+ "additionalProperties": false
2069
+ },
2070
+ "turnCancelParams": {
2071
+ "readOnly": true,
2072
+ "type": "object",
2073
+ "properties": {
2074
+ "requestId": {
2075
+ "type": "string",
2076
+ "format": "uuid",
2077
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2078
+ },
2079
+ "threadId": {
2080
+ "type": "string",
2081
+ "format": "uuid",
2082
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2083
+ },
2084
+ "turnId": {
2085
+ "type": "string",
2086
+ "format": "uuid",
2087
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2088
+ }
2089
+ },
2090
+ "required": [
2091
+ "requestId",
2092
+ "threadId",
2093
+ "turnId"
2094
+ ],
2095
+ "additionalProperties": false
2096
+ },
2097
+ "turnCancelResult": {
2098
+ "readOnly": true,
2099
+ "type": "object",
2100
+ "properties": {
2101
+ "cancelling": {
2102
+ "type": "boolean"
2103
+ }
2104
+ },
2105
+ "required": [
2106
+ "cancelling"
2107
+ ],
2108
+ "additionalProperties": false
2109
+ },
2110
+ "turnCancelRequest": {
2111
+ "type": "object",
2112
+ "properties": {
2113
+ "jsonrpc": {
2114
+ "const": "2.0"
2115
+ },
2116
+ "id": {
2117
+ "$ref": "#/$defs/jsonRpcId"
2118
+ },
2119
+ "method": {
2120
+ "const": "turn.cancel"
2121
+ },
2122
+ "params": {
2123
+ "$ref": "#/$defs/turnCancelParams"
2124
+ }
2125
+ },
2126
+ "required": [
2127
+ "jsonrpc",
2128
+ "id",
2129
+ "method",
2130
+ "params"
2131
+ ],
2132
+ "additionalProperties": false
2133
+ },
2134
+ "approvalRespondParams": {
2135
+ "readOnly": true,
2136
+ "type": "object",
2137
+ "properties": {
2138
+ "requestId": {
2139
+ "type": "string",
2140
+ "format": "uuid",
2141
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2142
+ },
2143
+ "threadId": {
2144
+ "type": "string",
2145
+ "format": "uuid",
2146
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2147
+ },
2148
+ "turnId": {
2149
+ "type": "string",
2150
+ "format": "uuid",
2151
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2152
+ },
2153
+ "approvalId": {
2154
+ "type": "string",
2155
+ "format": "uuid",
2156
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2157
+ },
2158
+ "decision": {
2159
+ "type": "string",
2160
+ "enum": [
2161
+ "approve",
2162
+ "reject"
2163
+ ]
2164
+ },
2165
+ "reason": {
2166
+ "type": "string"
2167
+ }
2168
+ },
2169
+ "required": [
2170
+ "requestId",
2171
+ "threadId",
2172
+ "turnId",
2173
+ "approvalId",
2174
+ "decision"
2175
+ ],
2176
+ "additionalProperties": false
2177
+ },
2178
+ "approvalRespondResult": {
2179
+ "readOnly": true,
2180
+ "type": "object",
2181
+ "properties": {
2182
+ "resolved": {
2183
+ "type": "boolean",
2184
+ "const": true
2185
+ }
2186
+ },
2187
+ "required": [
2188
+ "resolved"
2189
+ ],
2190
+ "additionalProperties": false
2191
+ },
2192
+ "approvalRespondRequest": {
2193
+ "type": "object",
2194
+ "properties": {
2195
+ "jsonrpc": {
2196
+ "const": "2.0"
2197
+ },
2198
+ "id": {
2199
+ "$ref": "#/$defs/jsonRpcId"
2200
+ },
2201
+ "method": {
2202
+ "const": "approval.respond"
2203
+ },
2204
+ "params": {
2205
+ "$ref": "#/$defs/approvalRespondParams"
2206
+ }
2207
+ },
2208
+ "required": [
2209
+ "jsonrpc",
2210
+ "id",
2211
+ "method",
2212
+ "params"
2213
+ ],
2214
+ "additionalProperties": false
2215
+ },
2216
+ "operationGetParams": {
2217
+ "readOnly": true,
2218
+ "type": "object",
2219
+ "properties": {
2220
+ "threadId": {
2221
+ "type": "string",
2222
+ "format": "uuid",
2223
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2224
+ },
2225
+ "operationId": {
2226
+ "type": "string",
2227
+ "format": "uuid",
2228
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2229
+ }
2230
+ },
2231
+ "required": [
2232
+ "threadId",
2233
+ "operationId"
2234
+ ],
2235
+ "additionalProperties": false
2236
+ },
2237
+ "operationGetResult": {
2238
+ "readOnly": true,
2239
+ "type": "object",
2240
+ "properties": {
2241
+ "operation": {
2242
+ "anyOf": [
2243
+ {
2244
+ "readOnly": true,
2245
+ "type": "object",
2246
+ "properties": {
2247
+ "id": {
2248
+ "type": "string",
2249
+ "format": "uuid",
2250
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
2251
+ },
2252
+ "sequence": {
2253
+ "type": "integer",
2254
+ "minimum": 0,
2255
+ "maximum": 9007199254740991
2256
+ },
2257
+ "toolCallId": {
2258
+ "type": "string",
2259
+ "minLength": 1
2260
+ },
2261
+ "agentName": {
2262
+ "type": "string",
2263
+ "minLength": 1
2264
+ },
2265
+ "toolName": {
2266
+ "type": "string",
2267
+ "minLength": 1
2268
+ },
2269
+ "createdAt": {
2270
+ "type": "string",
2271
+ "format": "date-time",
2272
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-]\\d{2}:\\d{2})))$"
2273
+ },
2274
+ "outcome": {
2275
+ "readOnly": true,
2276
+ "type": "object",
2277
+ "properties": {
2278
+ "kind": {
2279
+ "type": "string",
2280
+ "enum": [
2281
+ "success",
2282
+ "user_rejected",
2283
+ "policy_denied",
2284
+ "invalid_input",
2285
+ "cancelled",
2286
+ "tool_failed"
2287
+ ]
2288
+ },
2289
+ "reason": {
2290
+ "type": "string"
2291
+ }
2292
+ },
2293
+ "required": [
2294
+ "kind"
2295
+ ],
2296
+ "additionalProperties": false
2297
+ },
2298
+ "display": {
2299
+ "$ref": "#/$defs/__schema0"
2300
+ }
2301
+ },
2302
+ "required": [
2303
+ "id",
2304
+ "sequence",
2305
+ "toolCallId",
2306
+ "agentName",
2307
+ "toolName",
2308
+ "createdAt",
2309
+ "outcome",
2310
+ "display"
2311
+ ],
2312
+ "additionalProperties": false
2313
+ },
2314
+ {
2315
+ "type": "null"
2316
+ }
2317
+ ]
2318
+ }
2319
+ },
2320
+ "required": [
2321
+ "operation"
2322
+ ],
2323
+ "additionalProperties": false,
2324
+ "$defs": {
2325
+ "__schema0": {
2326
+ "anyOf": [
2327
+ {
2328
+ "type": "string"
2329
+ },
2330
+ {
2331
+ "type": "number"
2332
+ },
2333
+ {
2334
+ "type": "boolean"
2335
+ },
2336
+ {
2337
+ "type": "null"
2338
+ },
2339
+ {
2340
+ "type": "array",
2341
+ "items": {
2342
+ "$ref": "#/$defs/__schema0"
2343
+ }
2344
+ },
2345
+ {
2346
+ "type": "object",
2347
+ "propertyNames": {
2348
+ "type": "string"
2349
+ },
2350
+ "additionalProperties": {
2351
+ "$ref": "#/$defs/__schema0"
2352
+ }
2353
+ }
2354
+ ]
2355
+ }
2356
+ }
2357
+ },
2358
+ "operationGetRequest": {
2359
+ "type": "object",
2360
+ "properties": {
2361
+ "jsonrpc": {
2362
+ "const": "2.0"
2363
+ },
2364
+ "id": {
2365
+ "$ref": "#/$defs/jsonRpcId"
2366
+ },
2367
+ "method": {
2368
+ "const": "operation.get"
2369
+ },
2370
+ "params": {
2371
+ "$ref": "#/$defs/operationGetParams"
2372
+ }
2373
+ },
2374
+ "required": [
2375
+ "jsonrpc",
2376
+ "id",
2377
+ "method",
2378
+ "params"
2379
+ ],
2380
+ "additionalProperties": false
2381
+ },
2382
+ "clientRequest": {
2383
+ "oneOf": [
2384
+ {
2385
+ "$ref": "#/$defs/initializeRequest"
2386
+ },
2387
+ {
2388
+ "$ref": "#/$defs/threadListRequest"
2389
+ },
2390
+ {
2391
+ "$ref": "#/$defs/threadCreateRequest"
2392
+ },
2393
+ {
2394
+ "$ref": "#/$defs/threadOpenRequest"
2395
+ },
2396
+ {
2397
+ "$ref": "#/$defs/threadSnapshotRequest"
2398
+ },
2399
+ {
2400
+ "$ref": "#/$defs/threadRenameRequest"
2401
+ },
2402
+ {
2403
+ "$ref": "#/$defs/threadDeleteRequest"
2404
+ },
2405
+ {
2406
+ "$ref": "#/$defs/threadDetachRequest"
2407
+ },
2408
+ {
2409
+ "$ref": "#/$defs/threadCapabilitiesRequest"
2410
+ },
2411
+ {
2412
+ "$ref": "#/$defs/turnStartRequest"
2413
+ },
2414
+ {
2415
+ "$ref": "#/$defs/turnCancelRequest"
2416
+ },
2417
+ {
2418
+ "$ref": "#/$defs/approvalRespondRequest"
2419
+ },
2420
+ {
2421
+ "$ref": "#/$defs/operationGetRequest"
2422
+ }
2423
+ ]
2424
+ },
2425
+ "runtimeEventNotification": {
2426
+ "type": "object",
2427
+ "properties": {
2428
+ "jsonrpc": {
2429
+ "const": "2.0"
2430
+ },
2431
+ "method": {
2432
+ "const": "runtime.event"
2433
+ },
2434
+ "params": {
2435
+ "$ref": "#/$defs/runtimeEventEnvelope"
2436
+ }
2437
+ },
2438
+ "required": [
2439
+ "jsonrpc",
2440
+ "method",
2441
+ "params"
2442
+ ],
2443
+ "additionalProperties": false
2444
+ },
2445
+ "successResponse": {
2446
+ "type": "object",
2447
+ "properties": {
2448
+ "jsonrpc": {
2449
+ "const": "2.0"
2450
+ },
2451
+ "id": {
2452
+ "$ref": "#/$defs/jsonRpcId"
2453
+ },
2454
+ "result": {
2455
+ "anyOf": [
2456
+ {
2457
+ "$ref": "#/$defs/initializeResult"
2458
+ },
2459
+ {
2460
+ "$ref": "#/$defs/threadListResult"
2461
+ },
2462
+ {
2463
+ "$ref": "#/$defs/threadCreateResult"
2464
+ },
2465
+ {
2466
+ "$ref": "#/$defs/threadOpenResult"
2467
+ },
2468
+ {
2469
+ "$ref": "#/$defs/threadSnapshotResult"
2470
+ },
2471
+ {
2472
+ "$ref": "#/$defs/threadRenameResult"
2473
+ },
2474
+ {
2475
+ "$ref": "#/$defs/threadDeleteResult"
2476
+ },
2477
+ {
2478
+ "$ref": "#/$defs/threadDetachResult"
2479
+ },
2480
+ {
2481
+ "$ref": "#/$defs/threadCapabilitiesResult"
2482
+ },
2483
+ {
2484
+ "$ref": "#/$defs/turnStartResult"
2485
+ },
2486
+ {
2487
+ "$ref": "#/$defs/turnCancelResult"
2488
+ },
2489
+ {
2490
+ "$ref": "#/$defs/approvalRespondResult"
2491
+ },
2492
+ {
2493
+ "$ref": "#/$defs/operationGetResult"
2494
+ }
2495
+ ]
2496
+ }
2497
+ },
2498
+ "required": [
2499
+ "jsonrpc",
2500
+ "id",
2501
+ "result"
2502
+ ],
2503
+ "additionalProperties": false
2504
+ },
2505
+ "errorResponse": {
2506
+ "type": "object",
2507
+ "properties": {
2508
+ "jsonrpc": {
2509
+ "const": "2.0"
2510
+ },
2511
+ "id": {
2512
+ "oneOf": [
2513
+ {
2514
+ "$ref": "#/$defs/jsonRpcId"
2515
+ },
2516
+ {
2517
+ "type": "null"
2518
+ }
2519
+ ]
2520
+ },
2521
+ "error": {
2522
+ "type": "object",
2523
+ "properties": {
2524
+ "code": {
2525
+ "type": "integer"
2526
+ },
2527
+ "message": {
2528
+ "type": "string"
2529
+ },
2530
+ "data": {
2531
+ "$ref": "#/$defs/runtimeProtocolErrorData"
2532
+ }
2533
+ },
2534
+ "required": [
2535
+ "code",
2536
+ "message"
2537
+ ],
2538
+ "additionalProperties": false
2539
+ }
2540
+ },
2541
+ "required": [
2542
+ "jsonrpc",
2543
+ "id",
2544
+ "error"
2545
+ ],
2546
+ "additionalProperties": false
2547
+ }
2548
+ },
2549
+ "x-roll-protocol-version": "1.0",
2550
+ "x-roll-methods": {
2551
+ "initialize": {
2552
+ "params": {
2553
+ "$ref": "#/$defs/initializeParams"
2554
+ },
2555
+ "result": {
2556
+ "$ref": "#/$defs/initializeResult"
2557
+ },
2558
+ "request": {
2559
+ "$ref": "#/$defs/initializeRequest"
2560
+ }
2561
+ },
2562
+ "thread.list": {
2563
+ "params": {
2564
+ "$ref": "#/$defs/threadListParams"
2565
+ },
2566
+ "result": {
2567
+ "$ref": "#/$defs/threadListResult"
2568
+ },
2569
+ "request": {
2570
+ "$ref": "#/$defs/threadListRequest"
2571
+ }
2572
+ },
2573
+ "thread.create": {
2574
+ "params": {
2575
+ "$ref": "#/$defs/threadCreateParams"
2576
+ },
2577
+ "result": {
2578
+ "$ref": "#/$defs/threadCreateResult"
2579
+ },
2580
+ "request": {
2581
+ "$ref": "#/$defs/threadCreateRequest"
2582
+ }
2583
+ },
2584
+ "thread.open": {
2585
+ "params": {
2586
+ "$ref": "#/$defs/threadOpenParams"
2587
+ },
2588
+ "result": {
2589
+ "$ref": "#/$defs/threadOpenResult"
2590
+ },
2591
+ "request": {
2592
+ "$ref": "#/$defs/threadOpenRequest"
2593
+ }
2594
+ },
2595
+ "thread.snapshot": {
2596
+ "params": {
2597
+ "$ref": "#/$defs/threadSnapshotParams"
2598
+ },
2599
+ "result": {
2600
+ "$ref": "#/$defs/threadSnapshotResult"
2601
+ },
2602
+ "request": {
2603
+ "$ref": "#/$defs/threadSnapshotRequest"
2604
+ }
2605
+ },
2606
+ "thread.rename": {
2607
+ "params": {
2608
+ "$ref": "#/$defs/threadRenameParams"
2609
+ },
2610
+ "result": {
2611
+ "$ref": "#/$defs/threadRenameResult"
2612
+ },
2613
+ "request": {
2614
+ "$ref": "#/$defs/threadRenameRequest"
2615
+ }
2616
+ },
2617
+ "thread.delete": {
2618
+ "params": {
2619
+ "$ref": "#/$defs/threadDeleteParams"
2620
+ },
2621
+ "result": {
2622
+ "$ref": "#/$defs/threadDeleteResult"
2623
+ },
2624
+ "request": {
2625
+ "$ref": "#/$defs/threadDeleteRequest"
2626
+ }
2627
+ },
2628
+ "thread.detach": {
2629
+ "params": {
2630
+ "$ref": "#/$defs/threadDetachParams"
2631
+ },
2632
+ "result": {
2633
+ "$ref": "#/$defs/threadDetachResult"
2634
+ },
2635
+ "request": {
2636
+ "$ref": "#/$defs/threadDetachRequest"
2637
+ }
2638
+ },
2639
+ "thread.capabilities": {
2640
+ "params": {
2641
+ "$ref": "#/$defs/threadCapabilitiesParams"
2642
+ },
2643
+ "result": {
2644
+ "$ref": "#/$defs/threadCapabilitiesResult"
2645
+ },
2646
+ "request": {
2647
+ "$ref": "#/$defs/threadCapabilitiesRequest"
2648
+ }
2649
+ },
2650
+ "turn.start": {
2651
+ "params": {
2652
+ "$ref": "#/$defs/turnStartParams"
2653
+ },
2654
+ "result": {
2655
+ "$ref": "#/$defs/turnStartResult"
2656
+ },
2657
+ "request": {
2658
+ "$ref": "#/$defs/turnStartRequest"
2659
+ }
2660
+ },
2661
+ "turn.cancel": {
2662
+ "params": {
2663
+ "$ref": "#/$defs/turnCancelParams"
2664
+ },
2665
+ "result": {
2666
+ "$ref": "#/$defs/turnCancelResult"
2667
+ },
2668
+ "request": {
2669
+ "$ref": "#/$defs/turnCancelRequest"
2670
+ }
2671
+ },
2672
+ "approval.respond": {
2673
+ "params": {
2674
+ "$ref": "#/$defs/approvalRespondParams"
2675
+ },
2676
+ "result": {
2677
+ "$ref": "#/$defs/approvalRespondResult"
2678
+ },
2679
+ "request": {
2680
+ "$ref": "#/$defs/approvalRespondRequest"
2681
+ }
2682
+ },
2683
+ "operation.get": {
2684
+ "params": {
2685
+ "$ref": "#/$defs/operationGetParams"
2686
+ },
2687
+ "result": {
2688
+ "$ref": "#/$defs/operationGetResult"
2689
+ },
2690
+ "request": {
2691
+ "$ref": "#/$defs/operationGetRequest"
2692
+ }
2693
+ }
2694
+ }
2695
+ }