@roll-agent/protocol 0.2.0 → 0.4.0

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