@roll-agent/relay-protocol 0.1.0 → 0.2.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 (35) hide show
  1. package/README.md +90 -39
  2. package/dist/conformance.d.ts +571 -4
  3. package/dist/conformance.js +677 -8
  4. package/dist/index.d.ts +3977 -303
  5. package/dist/index.js +664 -77
  6. package/dist/reference-adapter.d.ts +56 -0
  7. package/dist/reference-adapter.js +122 -0
  8. package/dist/schema/roll-relay-protocol-v1.1.schema.json +3791 -0
  9. package/fixtures/v1.1/invalid-approval-projection-raw-input-leak.json +19 -0
  10. package/fixtures/v1.1/invalid-authentication-local-only.json +12 -0
  11. package/fixtures/v1.1/invalid-file-picker-local-only.json +12 -0
  12. package/fixtures/v1.1/invalid-interaction-cancelled-reason-leak.json +10 -0
  13. package/fixtures/v1.1/invalid-interaction-resolved-result-leak.json +18 -0
  14. package/fixtures/v1.1/invalid-legacy-approval-candidate.json +7 -0
  15. package/fixtures/v1.1/invalid-legacy-approval-respond.json +7 -0
  16. package/fixtures/v1.1/invalid-n-minus-one-device-connect.json +6 -0
  17. package/fixtures/v1.1/invalid-non-normal-sensitivity.json +21 -0
  18. package/fixtures/v1.1/invalid-runtime-event-tool-input-leak.json +22 -0
  19. package/fixtures/v1.1/invalid-runtime-event-tool-output-leak.json +21 -0
  20. package/fixtures/v1.1/invalid-user-input-projection-secret-leak.json +22 -0
  21. package/fixtures/v1.1/manifest.json +673 -0
  22. package/fixtures/v1.1/valid-device-connect.json +6 -0
  23. package/fixtures/v1.1/valid-interaction-cancelled.json +9 -0
  24. package/fixtures/v1.1/valid-interaction-candidate-user-input.json +25 -0
  25. package/fixtures/v1.1/valid-interaction-request-approval.json +17 -0
  26. package/fixtures/v1.1/valid-interaction-request-user-input.json +40 -0
  27. package/fixtures/v1.1/valid-interaction-resolved.json +9 -0
  28. package/fixtures/v1.1/valid-runtime-ack.json +5 -0
  29. package/fixtures/v1.1/valid-runtime-encrypted-interaction.json +10 -0
  30. package/fixtures/v1.1/valid-runtime-event-runtime-n-minus-one.json +16 -0
  31. package/fixtures/v1.1/valid-runtime-event.json +16 -0
  32. package/fixtures/v1.1/valid-runtime-gap.json +7 -0
  33. package/fixtures/v1.1/valid-runtime-request.json +10 -0
  34. package/fixtures/v1.1/valid-runtime-response.json +8 -0
  35. package/package.json +8 -2
@@ -0,0 +1,3791 @@
1
+ {
2
+ "anyOf": [
3
+ {
4
+ "readOnly": true,
5
+ "type": "object",
6
+ "properties": {
7
+ "type": {
8
+ "type": "string",
9
+ "const": "device.connect"
10
+ },
11
+ "protocolVersion": {
12
+ "type": "string",
13
+ "const": "1.1"
14
+ },
15
+ "deviceId": {
16
+ "type": "string",
17
+ "format": "uuid",
18
+ "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)$"
19
+ },
20
+ "pairingToken": {
21
+ "type": "string",
22
+ "minLength": 16
23
+ }
24
+ },
25
+ "required": ["type", "protocolVersion", "deviceId", "pairingToken"],
26
+ "additionalProperties": false
27
+ },
28
+ {
29
+ "readOnly": true,
30
+ "type": "object",
31
+ "properties": {
32
+ "type": {
33
+ "type": "string",
34
+ "const": "runtime.request"
35
+ },
36
+ "requestId": {
37
+ "type": "string",
38
+ "format": "uuid",
39
+ "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)$"
40
+ },
41
+ "workspaceId": {
42
+ "type": "string",
43
+ "format": "uuid",
44
+ "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)$"
45
+ },
46
+ "method": {
47
+ "type": "string",
48
+ "enum": [
49
+ "initialize",
50
+ "thread.list",
51
+ "thread.create",
52
+ "thread.open",
53
+ "thread.snapshot",
54
+ "thread.rename",
55
+ "thread.delete",
56
+ "thread.detach",
57
+ "thread.capabilities",
58
+ "turn.start",
59
+ "turn.cancel",
60
+ "operation.get",
61
+ "interaction.candidate"
62
+ ]
63
+ },
64
+ "params": {
65
+ "$ref": "#/$defs/sharedSchema0"
66
+ }
67
+ },
68
+ "required": ["type", "requestId", "workspaceId", "method", "params"],
69
+ "additionalProperties": false
70
+ },
71
+ {
72
+ "readOnly": true,
73
+ "type": "object",
74
+ "properties": {
75
+ "type": {
76
+ "type": "string",
77
+ "const": "runtime.response"
78
+ },
79
+ "requestId": {
80
+ "type": "string",
81
+ "format": "uuid",
82
+ "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)$"
83
+ },
84
+ "workspaceId": {
85
+ "type": "string",
86
+ "format": "uuid",
87
+ "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)$"
88
+ },
89
+ "result": {
90
+ "$ref": "#/$defs/sharedSchema0"
91
+ },
92
+ "error": {
93
+ "readOnly": true,
94
+ "type": "object",
95
+ "properties": {
96
+ "code": {
97
+ "type": "string",
98
+ "minLength": 1
99
+ },
100
+ "message": {
101
+ "type": "string"
102
+ },
103
+ "retryable": {
104
+ "type": "boolean"
105
+ }
106
+ },
107
+ "required": ["code", "message", "retryable"],
108
+ "additionalProperties": false
109
+ }
110
+ },
111
+ "required": ["type", "requestId", "workspaceId"],
112
+ "additionalProperties": false
113
+ },
114
+ {
115
+ "readOnly": true,
116
+ "type": "object",
117
+ "properties": {
118
+ "type": {
119
+ "type": "string",
120
+ "const": "runtime.event"
121
+ },
122
+ "workspaceId": {
123
+ "type": "string",
124
+ "format": "uuid",
125
+ "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)$"
126
+ },
127
+ "relaySequence": {
128
+ "type": "integer",
129
+ "minimum": 0,
130
+ "maximum": 9007199254740991
131
+ },
132
+ "event": {
133
+ "readOnly": true,
134
+ "type": "object",
135
+ "properties": {
136
+ "protocolVersion": {
137
+ "type": "string",
138
+ "enum": ["1.1", "1.0"]
139
+ },
140
+ "runtimeInstanceId": {
141
+ "type": "string",
142
+ "format": "uuid",
143
+ "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)$"
144
+ },
145
+ "sequence": {
146
+ "type": "integer",
147
+ "minimum": 0,
148
+ "maximum": 9007199254740991
149
+ },
150
+ "timestamp": {
151
+ "type": "string",
152
+ "format": "date-time",
153
+ "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})))$"
154
+ },
155
+ "threadId": {
156
+ "type": "string",
157
+ "format": "uuid",
158
+ "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)$"
159
+ },
160
+ "turnId": {
161
+ "type": "string",
162
+ "format": "uuid",
163
+ "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)$"
164
+ },
165
+ "event": {
166
+ "anyOf": [
167
+ {
168
+ "readOnly": true,
169
+ "type": "object",
170
+ "properties": {
171
+ "type": {
172
+ "type": "string",
173
+ "const": "turn.started"
174
+ }
175
+ },
176
+ "required": ["type"],
177
+ "additionalProperties": false
178
+ },
179
+ {
180
+ "readOnly": true,
181
+ "type": "object",
182
+ "properties": {
183
+ "type": {
184
+ "type": "string",
185
+ "const": "message.started"
186
+ },
187
+ "streamId": {
188
+ "type": "string",
189
+ "format": "uuid",
190
+ "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)$"
191
+ }
192
+ },
193
+ "required": ["type", "streamId"],
194
+ "additionalProperties": false
195
+ },
196
+ {
197
+ "readOnly": true,
198
+ "type": "object",
199
+ "properties": {
200
+ "type": {
201
+ "type": "string",
202
+ "const": "message.delta"
203
+ },
204
+ "streamId": {
205
+ "type": "string",
206
+ "format": "uuid",
207
+ "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)$"
208
+ },
209
+ "delta": {
210
+ "type": "string"
211
+ }
212
+ },
213
+ "required": ["type", "streamId", "delta"],
214
+ "additionalProperties": false
215
+ },
216
+ {
217
+ "readOnly": true,
218
+ "type": "object",
219
+ "properties": {
220
+ "type": {
221
+ "type": "string",
222
+ "const": "message.completed"
223
+ },
224
+ "streamId": {
225
+ "type": "string",
226
+ "format": "uuid",
227
+ "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)$"
228
+ },
229
+ "text": {
230
+ "type": "string"
231
+ }
232
+ },
233
+ "required": ["type", "streamId", "text"],
234
+ "additionalProperties": false
235
+ },
236
+ {
237
+ "readOnly": true,
238
+ "type": "object",
239
+ "properties": {
240
+ "type": {
241
+ "type": "string",
242
+ "const": "reasoning.summary.delta"
243
+ },
244
+ "reasoningId": {
245
+ "type": "string",
246
+ "minLength": 1
247
+ },
248
+ "delta": {
249
+ "type": "string"
250
+ }
251
+ },
252
+ "required": ["type", "reasoningId", "delta"],
253
+ "additionalProperties": false
254
+ },
255
+ {
256
+ "readOnly": true,
257
+ "type": "object",
258
+ "properties": {
259
+ "type": {
260
+ "type": "string",
261
+ "const": "tool.started"
262
+ },
263
+ "toolCallId": {
264
+ "type": "string",
265
+ "minLength": 1
266
+ },
267
+ "agentName": {
268
+ "type": "string",
269
+ "minLength": 1
270
+ },
271
+ "toolName": {
272
+ "type": "string",
273
+ "minLength": 1
274
+ }
275
+ },
276
+ "required": ["type", "toolCallId", "agentName", "toolName"],
277
+ "additionalProperties": false
278
+ },
279
+ {
280
+ "readOnly": true,
281
+ "type": "object",
282
+ "properties": {
283
+ "type": {
284
+ "type": "string",
285
+ "const": "tool.completed"
286
+ },
287
+ "toolCallId": {
288
+ "type": "string",
289
+ "minLength": 1
290
+ },
291
+ "agentName": {
292
+ "type": "string",
293
+ "minLength": 1
294
+ },
295
+ "toolName": {
296
+ "type": "string",
297
+ "minLength": 1
298
+ },
299
+ "outcome": {
300
+ "readOnly": true,
301
+ "type": "object",
302
+ "properties": {
303
+ "kind": {
304
+ "type": "string",
305
+ "enum": [
306
+ "success",
307
+ "user_rejected",
308
+ "policy_denied",
309
+ "invalid_input",
310
+ "cancelled",
311
+ "tool_failed"
312
+ ]
313
+ }
314
+ },
315
+ "required": ["kind"],
316
+ "additionalProperties": false
317
+ }
318
+ },
319
+ "required": ["type", "toolCallId", "agentName", "toolName"],
320
+ "additionalProperties": false
321
+ },
322
+ {
323
+ "readOnly": true,
324
+ "type": "object",
325
+ "properties": {
326
+ "type": {
327
+ "type": "string",
328
+ "const": "approval.required"
329
+ },
330
+ "approval": {
331
+ "readOnly": true,
332
+ "type": "object",
333
+ "properties": {
334
+ "approvalId": {
335
+ "type": "string",
336
+ "format": "uuid",
337
+ "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)$"
338
+ },
339
+ "agentName": {
340
+ "type": "string",
341
+ "minLength": 1
342
+ },
343
+ "toolName": {
344
+ "type": "string",
345
+ "minLength": 1
346
+ },
347
+ "explanation": {
348
+ "type": "string",
349
+ "minLength": 1,
350
+ "maxLength": 100
351
+ }
352
+ },
353
+ "required": ["approvalId", "agentName", "toolName"],
354
+ "additionalProperties": false
355
+ }
356
+ },
357
+ "required": ["type", "approval"],
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
+ "enum": ["approve", "reject"]
386
+ }
387
+ },
388
+ "required": ["status", "decision"],
389
+ "additionalProperties": false
390
+ },
391
+ {
392
+ "readOnly": true,
393
+ "type": "object",
394
+ "properties": {
395
+ "status": {
396
+ "type": "string",
397
+ "const": "cancelled"
398
+ }
399
+ },
400
+ "required": ["status"],
401
+ "additionalProperties": false
402
+ },
403
+ {
404
+ "readOnly": true,
405
+ "type": "object",
406
+ "properties": {
407
+ "status": {
408
+ "type": "string",
409
+ "const": "expired"
410
+ }
411
+ },
412
+ "required": ["status"],
413
+ "additionalProperties": false
414
+ }
415
+ ]
416
+ }
417
+ },
418
+ "required": ["type", "approvalId", "resolution"],
419
+ "additionalProperties": false
420
+ },
421
+ {
422
+ "readOnly": true,
423
+ "type": "object",
424
+ "properties": {
425
+ "type": {
426
+ "type": "string",
427
+ "const": "turn.completed"
428
+ }
429
+ },
430
+ "required": ["type"],
431
+ "additionalProperties": false
432
+ },
433
+ {
434
+ "readOnly": true,
435
+ "type": "object",
436
+ "properties": {
437
+ "type": {
438
+ "type": "string",
439
+ "const": "turn.cancelled"
440
+ }
441
+ },
442
+ "required": ["type"],
443
+ "additionalProperties": false
444
+ },
445
+ {
446
+ "readOnly": true,
447
+ "type": "object",
448
+ "properties": {
449
+ "type": {
450
+ "type": "string",
451
+ "const": "turn.failed"
452
+ },
453
+ "stage": {
454
+ "type": "string",
455
+ "enum": ["bootstrap", "plan", "execute"]
456
+ }
457
+ },
458
+ "required": ["type", "stage"],
459
+ "additionalProperties": false
460
+ },
461
+ {
462
+ "readOnly": true,
463
+ "type": "object",
464
+ "properties": {
465
+ "type": {
466
+ "type": "string",
467
+ "const": "capabilities.changed"
468
+ }
469
+ },
470
+ "required": ["type"],
471
+ "additionalProperties": false
472
+ }
473
+ ]
474
+ }
475
+ },
476
+ "required": [
477
+ "protocolVersion",
478
+ "runtimeInstanceId",
479
+ "sequence",
480
+ "timestamp",
481
+ "threadId",
482
+ "event"
483
+ ],
484
+ "additionalProperties": false
485
+ }
486
+ },
487
+ "required": ["type", "workspaceId", "relaySequence", "event"],
488
+ "additionalProperties": false
489
+ },
490
+ {
491
+ "readOnly": true,
492
+ "type": "object",
493
+ "properties": {
494
+ "type": {
495
+ "type": "string",
496
+ "const": "runtime.ack"
497
+ },
498
+ "workspaceId": {
499
+ "type": "string",
500
+ "format": "uuid",
501
+ "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)$"
502
+ },
503
+ "throughRelaySequence": {
504
+ "type": "integer",
505
+ "minimum": -1,
506
+ "maximum": 9007199254740991
507
+ }
508
+ },
509
+ "required": ["type", "workspaceId", "throughRelaySequence"],
510
+ "additionalProperties": false
511
+ },
512
+ {
513
+ "readOnly": true,
514
+ "type": "object",
515
+ "properties": {
516
+ "type": {
517
+ "type": "string",
518
+ "const": "runtime.gap"
519
+ },
520
+ "workspaceId": {
521
+ "type": "string",
522
+ "format": "uuid",
523
+ "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)$"
524
+ },
525
+ "fromRelaySequence": {
526
+ "type": "integer",
527
+ "minimum": 0,
528
+ "maximum": 9007199254740991
529
+ },
530
+ "throughRelaySequence": {
531
+ "type": "integer",
532
+ "minimum": 0,
533
+ "maximum": 9007199254740991
534
+ },
535
+ "recovery": {
536
+ "type": "string",
537
+ "const": "thread.snapshot"
538
+ }
539
+ },
540
+ "required": [
541
+ "type",
542
+ "workspaceId",
543
+ "fromRelaySequence",
544
+ "throughRelaySequence",
545
+ "recovery"
546
+ ],
547
+ "additionalProperties": false
548
+ },
549
+ {
550
+ "readOnly": true,
551
+ "type": "object",
552
+ "properties": {
553
+ "type": {
554
+ "type": "string",
555
+ "const": "runtime.encrypted"
556
+ },
557
+ "workspaceId": {
558
+ "type": "string",
559
+ "format": "uuid",
560
+ "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)$"
561
+ },
562
+ "envelopeId": {
563
+ "type": "string",
564
+ "format": "uuid",
565
+ "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)$"
566
+ },
567
+ "payloadKind": {
568
+ "type": "string",
569
+ "enum": ["request", "response", "event", "interaction"]
570
+ },
571
+ "requestId": {
572
+ "type": "string",
573
+ "format": "uuid",
574
+ "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)$"
575
+ },
576
+ "relaySequence": {
577
+ "type": "integer",
578
+ "minimum": 0,
579
+ "maximum": 9007199254740991
580
+ },
581
+ "algorithm": {
582
+ "type": "string",
583
+ "minLength": 1
584
+ },
585
+ "nonce": {
586
+ "type": "string",
587
+ "minLength": 1
588
+ },
589
+ "ciphertext": {
590
+ "type": "string",
591
+ "minLength": 1
592
+ }
593
+ },
594
+ "required": [
595
+ "type",
596
+ "workspaceId",
597
+ "envelopeId",
598
+ "payloadKind",
599
+ "algorithm",
600
+ "nonce",
601
+ "ciphertext"
602
+ ],
603
+ "additionalProperties": false
604
+ },
605
+ {
606
+ "anyOf": [
607
+ {
608
+ "readOnly": true,
609
+ "type": "object",
610
+ "properties": {
611
+ "type": {
612
+ "type": "string",
613
+ "const": "interaction.request"
614
+ },
615
+ "workspaceId": {
616
+ "type": "string",
617
+ "format": "uuid",
618
+ "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)$"
619
+ },
620
+ "relaySequence": {
621
+ "type": "integer",
622
+ "minimum": 0,
623
+ "maximum": 9007199254740991
624
+ },
625
+ "interactionId": {
626
+ "type": "string",
627
+ "format": "uuid",
628
+ "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)$"
629
+ },
630
+ "threadId": {
631
+ "type": "string",
632
+ "format": "uuid",
633
+ "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)$"
634
+ },
635
+ "turnId": {
636
+ "type": "string",
637
+ "format": "uuid",
638
+ "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)$"
639
+ },
640
+ "expiresAt": {
641
+ "type": "string",
642
+ "format": "date-time",
643
+ "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})))$"
644
+ },
645
+ "sensitivity": {
646
+ "type": "string",
647
+ "const": "normal"
648
+ },
649
+ "method": {
650
+ "type": "string",
651
+ "const": "approval.request"
652
+ },
653
+ "projection": {
654
+ "readOnly": true,
655
+ "type": "object",
656
+ "properties": {
657
+ "approvalId": {
658
+ "type": "string",
659
+ "format": "uuid",
660
+ "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)$"
661
+ },
662
+ "agentName": {
663
+ "type": "string",
664
+ "minLength": 1
665
+ },
666
+ "toolName": {
667
+ "type": "string",
668
+ "minLength": 1
669
+ },
670
+ "explanation": {
671
+ "type": "string",
672
+ "minLength": 1,
673
+ "maxLength": 100
674
+ }
675
+ },
676
+ "required": ["approvalId", "agentName", "toolName"],
677
+ "additionalProperties": false
678
+ }
679
+ },
680
+ "required": [
681
+ "type",
682
+ "workspaceId",
683
+ "relaySequence",
684
+ "interactionId",
685
+ "threadId",
686
+ "turnId",
687
+ "expiresAt",
688
+ "sensitivity",
689
+ "method",
690
+ "projection"
691
+ ],
692
+ "additionalProperties": false
693
+ },
694
+ {
695
+ "readOnly": true,
696
+ "type": "object",
697
+ "properties": {
698
+ "type": {
699
+ "type": "string",
700
+ "const": "interaction.request"
701
+ },
702
+ "workspaceId": {
703
+ "type": "string",
704
+ "format": "uuid",
705
+ "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)$"
706
+ },
707
+ "relaySequence": {
708
+ "type": "integer",
709
+ "minimum": 0,
710
+ "maximum": 9007199254740991
711
+ },
712
+ "interactionId": {
713
+ "type": "string",
714
+ "format": "uuid",
715
+ "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)$"
716
+ },
717
+ "threadId": {
718
+ "type": "string",
719
+ "format": "uuid",
720
+ "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)$"
721
+ },
722
+ "turnId": {
723
+ "type": "string",
724
+ "format": "uuid",
725
+ "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)$"
726
+ },
727
+ "expiresAt": {
728
+ "type": "string",
729
+ "format": "date-time",
730
+ "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})))$"
731
+ },
732
+ "sensitivity": {
733
+ "type": "string",
734
+ "const": "normal"
735
+ },
736
+ "method": {
737
+ "type": "string",
738
+ "const": "userInput.request"
739
+ },
740
+ "projection": {
741
+ "readOnly": true,
742
+ "type": "object",
743
+ "properties": {
744
+ "title": {
745
+ "type": "string",
746
+ "minLength": 1,
747
+ "maxLength": 200
748
+ },
749
+ "description": {
750
+ "type": "string",
751
+ "minLength": 1,
752
+ "maxLength": 500
753
+ },
754
+ "controls": {
755
+ "minItems": 1,
756
+ "maxItems": 16,
757
+ "type": "array",
758
+ "items": {
759
+ "anyOf": [
760
+ {
761
+ "readOnly": true,
762
+ "type": "object",
763
+ "properties": {
764
+ "type": {
765
+ "type": "string",
766
+ "const": "text"
767
+ },
768
+ "id": {
769
+ "type": "string",
770
+ "minLength": 1,
771
+ "maxLength": 64
772
+ },
773
+ "label": {
774
+ "type": "string",
775
+ "minLength": 1,
776
+ "maxLength": 200
777
+ },
778
+ "description": {
779
+ "type": "string",
780
+ "minLength": 1,
781
+ "maxLength": 500
782
+ },
783
+ "required": {
784
+ "type": "boolean"
785
+ },
786
+ "minLength": {
787
+ "type": "integer",
788
+ "minimum": 0,
789
+ "maximum": 10000
790
+ },
791
+ "maxLength": {
792
+ "type": "integer",
793
+ "minimum": 0,
794
+ "maximum": 10000
795
+ }
796
+ },
797
+ "required": ["type", "id", "label", "required"],
798
+ "additionalProperties": false
799
+ },
800
+ {
801
+ "readOnly": true,
802
+ "type": "object",
803
+ "properties": {
804
+ "type": {
805
+ "type": "string",
806
+ "const": "multiline"
807
+ },
808
+ "id": {
809
+ "type": "string",
810
+ "minLength": 1,
811
+ "maxLength": 64
812
+ },
813
+ "label": {
814
+ "type": "string",
815
+ "minLength": 1,
816
+ "maxLength": 200
817
+ },
818
+ "description": {
819
+ "type": "string",
820
+ "minLength": 1,
821
+ "maxLength": 500
822
+ },
823
+ "required": {
824
+ "type": "boolean"
825
+ },
826
+ "minLength": {
827
+ "type": "integer",
828
+ "minimum": 0,
829
+ "maximum": 10000
830
+ },
831
+ "maxLength": {
832
+ "type": "integer",
833
+ "minimum": 0,
834
+ "maximum": 10000
835
+ }
836
+ },
837
+ "required": ["type", "id", "label", "required"],
838
+ "additionalProperties": false
839
+ },
840
+ {
841
+ "readOnly": true,
842
+ "type": "object",
843
+ "properties": {
844
+ "type": {
845
+ "type": "string",
846
+ "const": "number"
847
+ },
848
+ "id": {
849
+ "type": "string",
850
+ "minLength": 1,
851
+ "maxLength": 64
852
+ },
853
+ "label": {
854
+ "type": "string",
855
+ "minLength": 1,
856
+ "maxLength": 200
857
+ },
858
+ "description": {
859
+ "type": "string",
860
+ "minLength": 1,
861
+ "maxLength": 500
862
+ },
863
+ "required": {
864
+ "type": "boolean"
865
+ },
866
+ "min": {
867
+ "type": "number"
868
+ },
869
+ "max": {
870
+ "type": "number"
871
+ },
872
+ "integer": {
873
+ "type": "boolean"
874
+ }
875
+ },
876
+ "required": ["type", "id", "label", "required"],
877
+ "additionalProperties": false
878
+ },
879
+ {
880
+ "readOnly": true,
881
+ "type": "object",
882
+ "properties": {
883
+ "type": {
884
+ "type": "string",
885
+ "const": "boolean"
886
+ },
887
+ "id": {
888
+ "type": "string",
889
+ "minLength": 1,
890
+ "maxLength": 64
891
+ },
892
+ "label": {
893
+ "type": "string",
894
+ "minLength": 1,
895
+ "maxLength": 200
896
+ },
897
+ "description": {
898
+ "type": "string",
899
+ "minLength": 1,
900
+ "maxLength": 500
901
+ },
902
+ "required": {
903
+ "type": "boolean"
904
+ }
905
+ },
906
+ "required": ["type", "id", "label", "required"],
907
+ "additionalProperties": false
908
+ },
909
+ {
910
+ "readOnly": true,
911
+ "type": "object",
912
+ "properties": {
913
+ "type": {
914
+ "type": "string",
915
+ "const": "choice"
916
+ },
917
+ "id": {
918
+ "type": "string",
919
+ "minLength": 1,
920
+ "maxLength": 64
921
+ },
922
+ "label": {
923
+ "type": "string",
924
+ "minLength": 1,
925
+ "maxLength": 200
926
+ },
927
+ "description": {
928
+ "type": "string",
929
+ "minLength": 1,
930
+ "maxLength": 500
931
+ },
932
+ "required": {
933
+ "type": "boolean"
934
+ },
935
+ "multiple": {
936
+ "type": "boolean"
937
+ },
938
+ "options": {
939
+ "minItems": 1,
940
+ "maxItems": 50,
941
+ "type": "array",
942
+ "items": {
943
+ "readOnly": true,
944
+ "type": "object",
945
+ "properties": {
946
+ "id": {
947
+ "type": "string",
948
+ "minLength": 1,
949
+ "maxLength": 64
950
+ },
951
+ "label": {
952
+ "type": "string",
953
+ "minLength": 1,
954
+ "maxLength": 200
955
+ },
956
+ "description": {
957
+ "type": "string",
958
+ "minLength": 1,
959
+ "maxLength": 500
960
+ }
961
+ },
962
+ "required": ["id", "label"],
963
+ "additionalProperties": false
964
+ }
965
+ },
966
+ "minSelections": {
967
+ "type": "integer",
968
+ "minimum": 0,
969
+ "maximum": 50
970
+ },
971
+ "maxSelections": {
972
+ "type": "integer",
973
+ "minimum": 1,
974
+ "maximum": 50
975
+ }
976
+ },
977
+ "required": [
978
+ "type",
979
+ "id",
980
+ "label",
981
+ "required",
982
+ "multiple",
983
+ "options"
984
+ ],
985
+ "additionalProperties": false
986
+ }
987
+ ]
988
+ }
989
+ }
990
+ },
991
+ "required": ["controls"],
992
+ "additionalProperties": false
993
+ }
994
+ },
995
+ "required": [
996
+ "type",
997
+ "workspaceId",
998
+ "relaySequence",
999
+ "interactionId",
1000
+ "threadId",
1001
+ "turnId",
1002
+ "expiresAt",
1003
+ "sensitivity",
1004
+ "method",
1005
+ "projection"
1006
+ ],
1007
+ "additionalProperties": false
1008
+ }
1009
+ ]
1010
+ },
1011
+ {
1012
+ "readOnly": true,
1013
+ "type": "object",
1014
+ "properties": {
1015
+ "type": {
1016
+ "type": "string",
1017
+ "const": "interaction.resolved"
1018
+ },
1019
+ "workspaceId": {
1020
+ "type": "string",
1021
+ "format": "uuid",
1022
+ "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)$"
1023
+ },
1024
+ "relaySequence": {
1025
+ "type": "integer",
1026
+ "minimum": 0,
1027
+ "maximum": 9007199254740991
1028
+ },
1029
+ "interactionId": {
1030
+ "type": "string",
1031
+ "format": "uuid",
1032
+ "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)$"
1033
+ },
1034
+ "threadId": {
1035
+ "type": "string",
1036
+ "format": "uuid",
1037
+ "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)$"
1038
+ },
1039
+ "turnId": {
1040
+ "type": "string",
1041
+ "format": "uuid",
1042
+ "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)$"
1043
+ },
1044
+ "method": {
1045
+ "type": "string",
1046
+ "enum": ["approval.request", "userInput.request"]
1047
+ }
1048
+ },
1049
+ "required": [
1050
+ "type",
1051
+ "workspaceId",
1052
+ "relaySequence",
1053
+ "interactionId",
1054
+ "threadId",
1055
+ "turnId",
1056
+ "method"
1057
+ ],
1058
+ "additionalProperties": false
1059
+ },
1060
+ {
1061
+ "readOnly": true,
1062
+ "type": "object",
1063
+ "properties": {
1064
+ "type": {
1065
+ "type": "string",
1066
+ "const": "interaction.cancelled"
1067
+ },
1068
+ "workspaceId": {
1069
+ "type": "string",
1070
+ "format": "uuid",
1071
+ "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)$"
1072
+ },
1073
+ "relaySequence": {
1074
+ "type": "integer",
1075
+ "minimum": 0,
1076
+ "maximum": 9007199254740991
1077
+ },
1078
+ "interactionId": {
1079
+ "type": "string",
1080
+ "format": "uuid",
1081
+ "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)$"
1082
+ },
1083
+ "threadId": {
1084
+ "type": "string",
1085
+ "format": "uuid",
1086
+ "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)$"
1087
+ },
1088
+ "turnId": {
1089
+ "type": "string",
1090
+ "format": "uuid",
1091
+ "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)$"
1092
+ },
1093
+ "method": {
1094
+ "type": "string",
1095
+ "enum": ["approval.request", "userInput.request"]
1096
+ }
1097
+ },
1098
+ "required": [
1099
+ "type",
1100
+ "workspaceId",
1101
+ "relaySequence",
1102
+ "interactionId",
1103
+ "threadId",
1104
+ "turnId",
1105
+ "method"
1106
+ ],
1107
+ "additionalProperties": false
1108
+ }
1109
+ ],
1110
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1111
+ "$id": "https://roll-agent.dev/schemas/relay-protocol/1.1",
1112
+ "title": "Roll Relay Protocol v1.1",
1113
+ "description": "Versioned Companion Relay frames shared by Browser, Cloud Relay and Companion.",
1114
+ "$defs": {
1115
+ "relayMessage": {
1116
+ "anyOf": [
1117
+ {
1118
+ "readOnly": true,
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "type": {
1122
+ "type": "string",
1123
+ "const": "device.connect"
1124
+ },
1125
+ "protocolVersion": {
1126
+ "type": "string",
1127
+ "const": "1.1"
1128
+ },
1129
+ "deviceId": {
1130
+ "type": "string",
1131
+ "format": "uuid",
1132
+ "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)$"
1133
+ },
1134
+ "pairingToken": {
1135
+ "type": "string",
1136
+ "minLength": 16
1137
+ }
1138
+ },
1139
+ "required": ["type", "protocolVersion", "deviceId", "pairingToken"],
1140
+ "additionalProperties": false
1141
+ },
1142
+ {
1143
+ "readOnly": true,
1144
+ "type": "object",
1145
+ "properties": {
1146
+ "type": {
1147
+ "type": "string",
1148
+ "const": "runtime.request"
1149
+ },
1150
+ "requestId": {
1151
+ "type": "string",
1152
+ "format": "uuid",
1153
+ "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)$"
1154
+ },
1155
+ "workspaceId": {
1156
+ "type": "string",
1157
+ "format": "uuid",
1158
+ "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)$"
1159
+ },
1160
+ "method": {
1161
+ "type": "string",
1162
+ "enum": [
1163
+ "initialize",
1164
+ "thread.list",
1165
+ "thread.create",
1166
+ "thread.open",
1167
+ "thread.snapshot",
1168
+ "thread.rename",
1169
+ "thread.delete",
1170
+ "thread.detach",
1171
+ "thread.capabilities",
1172
+ "turn.start",
1173
+ "turn.cancel",
1174
+ "operation.get",
1175
+ "interaction.candidate"
1176
+ ]
1177
+ },
1178
+ "params": {
1179
+ "$ref": "#/$defs/sharedSchema0"
1180
+ }
1181
+ },
1182
+ "required": ["type", "requestId", "workspaceId", "method", "params"],
1183
+ "additionalProperties": false
1184
+ },
1185
+ {
1186
+ "readOnly": true,
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "type": {
1190
+ "type": "string",
1191
+ "const": "runtime.response"
1192
+ },
1193
+ "requestId": {
1194
+ "type": "string",
1195
+ "format": "uuid",
1196
+ "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)$"
1197
+ },
1198
+ "workspaceId": {
1199
+ "type": "string",
1200
+ "format": "uuid",
1201
+ "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)$"
1202
+ },
1203
+ "result": {
1204
+ "$ref": "#/$defs/sharedSchema0"
1205
+ },
1206
+ "error": {
1207
+ "readOnly": true,
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "code": {
1211
+ "type": "string",
1212
+ "minLength": 1
1213
+ },
1214
+ "message": {
1215
+ "type": "string"
1216
+ },
1217
+ "retryable": {
1218
+ "type": "boolean"
1219
+ }
1220
+ },
1221
+ "required": ["code", "message", "retryable"],
1222
+ "additionalProperties": false
1223
+ }
1224
+ },
1225
+ "required": ["type", "requestId", "workspaceId"],
1226
+ "additionalProperties": false
1227
+ },
1228
+ {
1229
+ "readOnly": true,
1230
+ "type": "object",
1231
+ "properties": {
1232
+ "type": {
1233
+ "type": "string",
1234
+ "const": "runtime.event"
1235
+ },
1236
+ "workspaceId": {
1237
+ "type": "string",
1238
+ "format": "uuid",
1239
+ "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)$"
1240
+ },
1241
+ "relaySequence": {
1242
+ "type": "integer",
1243
+ "minimum": 0,
1244
+ "maximum": 9007199254740991
1245
+ },
1246
+ "event": {
1247
+ "readOnly": true,
1248
+ "type": "object",
1249
+ "properties": {
1250
+ "protocolVersion": {
1251
+ "type": "string",
1252
+ "enum": ["1.1", "1.0"]
1253
+ },
1254
+ "runtimeInstanceId": {
1255
+ "type": "string",
1256
+ "format": "uuid",
1257
+ "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)$"
1258
+ },
1259
+ "sequence": {
1260
+ "type": "integer",
1261
+ "minimum": 0,
1262
+ "maximum": 9007199254740991
1263
+ },
1264
+ "timestamp": {
1265
+ "type": "string",
1266
+ "format": "date-time",
1267
+ "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})))$"
1268
+ },
1269
+ "threadId": {
1270
+ "type": "string",
1271
+ "format": "uuid",
1272
+ "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)$"
1273
+ },
1274
+ "turnId": {
1275
+ "type": "string",
1276
+ "format": "uuid",
1277
+ "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)$"
1278
+ },
1279
+ "event": {
1280
+ "anyOf": [
1281
+ {
1282
+ "readOnly": true,
1283
+ "type": "object",
1284
+ "properties": {
1285
+ "type": {
1286
+ "type": "string",
1287
+ "const": "turn.started"
1288
+ }
1289
+ },
1290
+ "required": ["type"],
1291
+ "additionalProperties": false
1292
+ },
1293
+ {
1294
+ "readOnly": true,
1295
+ "type": "object",
1296
+ "properties": {
1297
+ "type": {
1298
+ "type": "string",
1299
+ "const": "message.started"
1300
+ },
1301
+ "streamId": {
1302
+ "type": "string",
1303
+ "format": "uuid",
1304
+ "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)$"
1305
+ }
1306
+ },
1307
+ "required": ["type", "streamId"],
1308
+ "additionalProperties": false
1309
+ },
1310
+ {
1311
+ "readOnly": true,
1312
+ "type": "object",
1313
+ "properties": {
1314
+ "type": {
1315
+ "type": "string",
1316
+ "const": "message.delta"
1317
+ },
1318
+ "streamId": {
1319
+ "type": "string",
1320
+ "format": "uuid",
1321
+ "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)$"
1322
+ },
1323
+ "delta": {
1324
+ "type": "string"
1325
+ }
1326
+ },
1327
+ "required": ["type", "streamId", "delta"],
1328
+ "additionalProperties": false
1329
+ },
1330
+ {
1331
+ "readOnly": true,
1332
+ "type": "object",
1333
+ "properties": {
1334
+ "type": {
1335
+ "type": "string",
1336
+ "const": "message.completed"
1337
+ },
1338
+ "streamId": {
1339
+ "type": "string",
1340
+ "format": "uuid",
1341
+ "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)$"
1342
+ },
1343
+ "text": {
1344
+ "type": "string"
1345
+ }
1346
+ },
1347
+ "required": ["type", "streamId", "text"],
1348
+ "additionalProperties": false
1349
+ },
1350
+ {
1351
+ "readOnly": true,
1352
+ "type": "object",
1353
+ "properties": {
1354
+ "type": {
1355
+ "type": "string",
1356
+ "const": "reasoning.summary.delta"
1357
+ },
1358
+ "reasoningId": {
1359
+ "type": "string",
1360
+ "minLength": 1
1361
+ },
1362
+ "delta": {
1363
+ "type": "string"
1364
+ }
1365
+ },
1366
+ "required": ["type", "reasoningId", "delta"],
1367
+ "additionalProperties": false
1368
+ },
1369
+ {
1370
+ "readOnly": true,
1371
+ "type": "object",
1372
+ "properties": {
1373
+ "type": {
1374
+ "type": "string",
1375
+ "const": "tool.started"
1376
+ },
1377
+ "toolCallId": {
1378
+ "type": "string",
1379
+ "minLength": 1
1380
+ },
1381
+ "agentName": {
1382
+ "type": "string",
1383
+ "minLength": 1
1384
+ },
1385
+ "toolName": {
1386
+ "type": "string",
1387
+ "minLength": 1
1388
+ }
1389
+ },
1390
+ "required": [
1391
+ "type",
1392
+ "toolCallId",
1393
+ "agentName",
1394
+ "toolName"
1395
+ ],
1396
+ "additionalProperties": false
1397
+ },
1398
+ {
1399
+ "readOnly": true,
1400
+ "type": "object",
1401
+ "properties": {
1402
+ "type": {
1403
+ "type": "string",
1404
+ "const": "tool.completed"
1405
+ },
1406
+ "toolCallId": {
1407
+ "type": "string",
1408
+ "minLength": 1
1409
+ },
1410
+ "agentName": {
1411
+ "type": "string",
1412
+ "minLength": 1
1413
+ },
1414
+ "toolName": {
1415
+ "type": "string",
1416
+ "minLength": 1
1417
+ },
1418
+ "outcome": {
1419
+ "readOnly": true,
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "kind": {
1423
+ "type": "string",
1424
+ "enum": [
1425
+ "success",
1426
+ "user_rejected",
1427
+ "policy_denied",
1428
+ "invalid_input",
1429
+ "cancelled",
1430
+ "tool_failed"
1431
+ ]
1432
+ }
1433
+ },
1434
+ "required": ["kind"],
1435
+ "additionalProperties": false
1436
+ }
1437
+ },
1438
+ "required": [
1439
+ "type",
1440
+ "toolCallId",
1441
+ "agentName",
1442
+ "toolName"
1443
+ ],
1444
+ "additionalProperties": false
1445
+ },
1446
+ {
1447
+ "readOnly": true,
1448
+ "type": "object",
1449
+ "properties": {
1450
+ "type": {
1451
+ "type": "string",
1452
+ "const": "approval.required"
1453
+ },
1454
+ "approval": {
1455
+ "readOnly": true,
1456
+ "type": "object",
1457
+ "properties": {
1458
+ "approvalId": {
1459
+ "type": "string",
1460
+ "format": "uuid",
1461
+ "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)$"
1462
+ },
1463
+ "agentName": {
1464
+ "type": "string",
1465
+ "minLength": 1
1466
+ },
1467
+ "toolName": {
1468
+ "type": "string",
1469
+ "minLength": 1
1470
+ },
1471
+ "explanation": {
1472
+ "type": "string",
1473
+ "minLength": 1,
1474
+ "maxLength": 100
1475
+ }
1476
+ },
1477
+ "required": ["approvalId", "agentName", "toolName"],
1478
+ "additionalProperties": false
1479
+ }
1480
+ },
1481
+ "required": ["type", "approval"],
1482
+ "additionalProperties": false
1483
+ },
1484
+ {
1485
+ "readOnly": true,
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "type": {
1489
+ "type": "string",
1490
+ "const": "approval.resolved"
1491
+ },
1492
+ "approvalId": {
1493
+ "type": "string",
1494
+ "format": "uuid",
1495
+ "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)$"
1496
+ },
1497
+ "resolution": {
1498
+ "anyOf": [
1499
+ {
1500
+ "readOnly": true,
1501
+ "type": "object",
1502
+ "properties": {
1503
+ "status": {
1504
+ "type": "string",
1505
+ "const": "resolved"
1506
+ },
1507
+ "decision": {
1508
+ "type": "string",
1509
+ "enum": ["approve", "reject"]
1510
+ }
1511
+ },
1512
+ "required": ["status", "decision"],
1513
+ "additionalProperties": false
1514
+ },
1515
+ {
1516
+ "readOnly": true,
1517
+ "type": "object",
1518
+ "properties": {
1519
+ "status": {
1520
+ "type": "string",
1521
+ "const": "cancelled"
1522
+ }
1523
+ },
1524
+ "required": ["status"],
1525
+ "additionalProperties": false
1526
+ },
1527
+ {
1528
+ "readOnly": true,
1529
+ "type": "object",
1530
+ "properties": {
1531
+ "status": {
1532
+ "type": "string",
1533
+ "const": "expired"
1534
+ }
1535
+ },
1536
+ "required": ["status"],
1537
+ "additionalProperties": false
1538
+ }
1539
+ ]
1540
+ }
1541
+ },
1542
+ "required": ["type", "approvalId", "resolution"],
1543
+ "additionalProperties": false
1544
+ },
1545
+ {
1546
+ "readOnly": true,
1547
+ "type": "object",
1548
+ "properties": {
1549
+ "type": {
1550
+ "type": "string",
1551
+ "const": "turn.completed"
1552
+ }
1553
+ },
1554
+ "required": ["type"],
1555
+ "additionalProperties": false
1556
+ },
1557
+ {
1558
+ "readOnly": true,
1559
+ "type": "object",
1560
+ "properties": {
1561
+ "type": {
1562
+ "type": "string",
1563
+ "const": "turn.cancelled"
1564
+ }
1565
+ },
1566
+ "required": ["type"],
1567
+ "additionalProperties": false
1568
+ },
1569
+ {
1570
+ "readOnly": true,
1571
+ "type": "object",
1572
+ "properties": {
1573
+ "type": {
1574
+ "type": "string",
1575
+ "const": "turn.failed"
1576
+ },
1577
+ "stage": {
1578
+ "type": "string",
1579
+ "enum": ["bootstrap", "plan", "execute"]
1580
+ }
1581
+ },
1582
+ "required": ["type", "stage"],
1583
+ "additionalProperties": false
1584
+ },
1585
+ {
1586
+ "readOnly": true,
1587
+ "type": "object",
1588
+ "properties": {
1589
+ "type": {
1590
+ "type": "string",
1591
+ "const": "capabilities.changed"
1592
+ }
1593
+ },
1594
+ "required": ["type"],
1595
+ "additionalProperties": false
1596
+ }
1597
+ ]
1598
+ }
1599
+ },
1600
+ "required": [
1601
+ "protocolVersion",
1602
+ "runtimeInstanceId",
1603
+ "sequence",
1604
+ "timestamp",
1605
+ "threadId",
1606
+ "event"
1607
+ ],
1608
+ "additionalProperties": false
1609
+ }
1610
+ },
1611
+ "required": ["type", "workspaceId", "relaySequence", "event"],
1612
+ "additionalProperties": false
1613
+ },
1614
+ {
1615
+ "readOnly": true,
1616
+ "type": "object",
1617
+ "properties": {
1618
+ "type": {
1619
+ "type": "string",
1620
+ "const": "runtime.ack"
1621
+ },
1622
+ "workspaceId": {
1623
+ "type": "string",
1624
+ "format": "uuid",
1625
+ "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)$"
1626
+ },
1627
+ "throughRelaySequence": {
1628
+ "type": "integer",
1629
+ "minimum": -1,
1630
+ "maximum": 9007199254740991
1631
+ }
1632
+ },
1633
+ "required": ["type", "workspaceId", "throughRelaySequence"],
1634
+ "additionalProperties": false
1635
+ },
1636
+ {
1637
+ "readOnly": true,
1638
+ "type": "object",
1639
+ "properties": {
1640
+ "type": {
1641
+ "type": "string",
1642
+ "const": "runtime.gap"
1643
+ },
1644
+ "workspaceId": {
1645
+ "type": "string",
1646
+ "format": "uuid",
1647
+ "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)$"
1648
+ },
1649
+ "fromRelaySequence": {
1650
+ "type": "integer",
1651
+ "minimum": 0,
1652
+ "maximum": 9007199254740991
1653
+ },
1654
+ "throughRelaySequence": {
1655
+ "type": "integer",
1656
+ "minimum": 0,
1657
+ "maximum": 9007199254740991
1658
+ },
1659
+ "recovery": {
1660
+ "type": "string",
1661
+ "const": "thread.snapshot"
1662
+ }
1663
+ },
1664
+ "required": [
1665
+ "type",
1666
+ "workspaceId",
1667
+ "fromRelaySequence",
1668
+ "throughRelaySequence",
1669
+ "recovery"
1670
+ ],
1671
+ "additionalProperties": false
1672
+ },
1673
+ {
1674
+ "readOnly": true,
1675
+ "type": "object",
1676
+ "properties": {
1677
+ "type": {
1678
+ "type": "string",
1679
+ "const": "runtime.encrypted"
1680
+ },
1681
+ "workspaceId": {
1682
+ "type": "string",
1683
+ "format": "uuid",
1684
+ "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)$"
1685
+ },
1686
+ "envelopeId": {
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
+ "payloadKind": {
1692
+ "type": "string",
1693
+ "enum": ["request", "response", "event", "interaction"]
1694
+ },
1695
+ "requestId": {
1696
+ "type": "string",
1697
+ "format": "uuid",
1698
+ "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)$"
1699
+ },
1700
+ "relaySequence": {
1701
+ "type": "integer",
1702
+ "minimum": 0,
1703
+ "maximum": 9007199254740991
1704
+ },
1705
+ "algorithm": {
1706
+ "type": "string",
1707
+ "minLength": 1
1708
+ },
1709
+ "nonce": {
1710
+ "type": "string",
1711
+ "minLength": 1
1712
+ },
1713
+ "ciphertext": {
1714
+ "type": "string",
1715
+ "minLength": 1
1716
+ }
1717
+ },
1718
+ "required": [
1719
+ "type",
1720
+ "workspaceId",
1721
+ "envelopeId",
1722
+ "payloadKind",
1723
+ "algorithm",
1724
+ "nonce",
1725
+ "ciphertext"
1726
+ ],
1727
+ "additionalProperties": false
1728
+ },
1729
+ {
1730
+ "anyOf": [
1731
+ {
1732
+ "readOnly": true,
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "type": {
1736
+ "type": "string",
1737
+ "const": "interaction.request"
1738
+ },
1739
+ "workspaceId": {
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
+ "relaySequence": {
1745
+ "type": "integer",
1746
+ "minimum": 0,
1747
+ "maximum": 9007199254740991
1748
+ },
1749
+ "interactionId": {
1750
+ "type": "string",
1751
+ "format": "uuid",
1752
+ "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)$"
1753
+ },
1754
+ "threadId": {
1755
+ "type": "string",
1756
+ "format": "uuid",
1757
+ "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)$"
1758
+ },
1759
+ "turnId": {
1760
+ "type": "string",
1761
+ "format": "uuid",
1762
+ "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)$"
1763
+ },
1764
+ "expiresAt": {
1765
+ "type": "string",
1766
+ "format": "date-time",
1767
+ "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})))$"
1768
+ },
1769
+ "sensitivity": {
1770
+ "type": "string",
1771
+ "const": "normal"
1772
+ },
1773
+ "method": {
1774
+ "type": "string",
1775
+ "const": "approval.request"
1776
+ },
1777
+ "projection": {
1778
+ "readOnly": true,
1779
+ "type": "object",
1780
+ "properties": {
1781
+ "approvalId": {
1782
+ "type": "string",
1783
+ "format": "uuid",
1784
+ "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)$"
1785
+ },
1786
+ "agentName": {
1787
+ "type": "string",
1788
+ "minLength": 1
1789
+ },
1790
+ "toolName": {
1791
+ "type": "string",
1792
+ "minLength": 1
1793
+ },
1794
+ "explanation": {
1795
+ "type": "string",
1796
+ "minLength": 1,
1797
+ "maxLength": 100
1798
+ }
1799
+ },
1800
+ "required": ["approvalId", "agentName", "toolName"],
1801
+ "additionalProperties": false
1802
+ }
1803
+ },
1804
+ "required": [
1805
+ "type",
1806
+ "workspaceId",
1807
+ "relaySequence",
1808
+ "interactionId",
1809
+ "threadId",
1810
+ "turnId",
1811
+ "expiresAt",
1812
+ "sensitivity",
1813
+ "method",
1814
+ "projection"
1815
+ ],
1816
+ "additionalProperties": false
1817
+ },
1818
+ {
1819
+ "readOnly": true,
1820
+ "type": "object",
1821
+ "properties": {
1822
+ "type": {
1823
+ "type": "string",
1824
+ "const": "interaction.request"
1825
+ },
1826
+ "workspaceId": {
1827
+ "type": "string",
1828
+ "format": "uuid",
1829
+ "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)$"
1830
+ },
1831
+ "relaySequence": {
1832
+ "type": "integer",
1833
+ "minimum": 0,
1834
+ "maximum": 9007199254740991
1835
+ },
1836
+ "interactionId": {
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
+ "expiresAt": {
1852
+ "type": "string",
1853
+ "format": "date-time",
1854
+ "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})))$"
1855
+ },
1856
+ "sensitivity": {
1857
+ "type": "string",
1858
+ "const": "normal"
1859
+ },
1860
+ "method": {
1861
+ "type": "string",
1862
+ "const": "userInput.request"
1863
+ },
1864
+ "projection": {
1865
+ "readOnly": true,
1866
+ "type": "object",
1867
+ "properties": {
1868
+ "title": {
1869
+ "type": "string",
1870
+ "minLength": 1,
1871
+ "maxLength": 200
1872
+ },
1873
+ "description": {
1874
+ "type": "string",
1875
+ "minLength": 1,
1876
+ "maxLength": 500
1877
+ },
1878
+ "controls": {
1879
+ "minItems": 1,
1880
+ "maxItems": 16,
1881
+ "type": "array",
1882
+ "items": {
1883
+ "anyOf": [
1884
+ {
1885
+ "readOnly": true,
1886
+ "type": "object",
1887
+ "properties": {
1888
+ "type": {
1889
+ "type": "string",
1890
+ "const": "text"
1891
+ },
1892
+ "id": {
1893
+ "type": "string",
1894
+ "minLength": 1,
1895
+ "maxLength": 64
1896
+ },
1897
+ "label": {
1898
+ "type": "string",
1899
+ "minLength": 1,
1900
+ "maxLength": 200
1901
+ },
1902
+ "description": {
1903
+ "type": "string",
1904
+ "minLength": 1,
1905
+ "maxLength": 500
1906
+ },
1907
+ "required": {
1908
+ "type": "boolean"
1909
+ },
1910
+ "minLength": {
1911
+ "type": "integer",
1912
+ "minimum": 0,
1913
+ "maximum": 10000
1914
+ },
1915
+ "maxLength": {
1916
+ "type": "integer",
1917
+ "minimum": 0,
1918
+ "maximum": 10000
1919
+ }
1920
+ },
1921
+ "required": ["type", "id", "label", "required"],
1922
+ "additionalProperties": false
1923
+ },
1924
+ {
1925
+ "readOnly": true,
1926
+ "type": "object",
1927
+ "properties": {
1928
+ "type": {
1929
+ "type": "string",
1930
+ "const": "multiline"
1931
+ },
1932
+ "id": {
1933
+ "type": "string",
1934
+ "minLength": 1,
1935
+ "maxLength": 64
1936
+ },
1937
+ "label": {
1938
+ "type": "string",
1939
+ "minLength": 1,
1940
+ "maxLength": 200
1941
+ },
1942
+ "description": {
1943
+ "type": "string",
1944
+ "minLength": 1,
1945
+ "maxLength": 500
1946
+ },
1947
+ "required": {
1948
+ "type": "boolean"
1949
+ },
1950
+ "minLength": {
1951
+ "type": "integer",
1952
+ "minimum": 0,
1953
+ "maximum": 10000
1954
+ },
1955
+ "maxLength": {
1956
+ "type": "integer",
1957
+ "minimum": 0,
1958
+ "maximum": 10000
1959
+ }
1960
+ },
1961
+ "required": ["type", "id", "label", "required"],
1962
+ "additionalProperties": false
1963
+ },
1964
+ {
1965
+ "readOnly": true,
1966
+ "type": "object",
1967
+ "properties": {
1968
+ "type": {
1969
+ "type": "string",
1970
+ "const": "number"
1971
+ },
1972
+ "id": {
1973
+ "type": "string",
1974
+ "minLength": 1,
1975
+ "maxLength": 64
1976
+ },
1977
+ "label": {
1978
+ "type": "string",
1979
+ "minLength": 1,
1980
+ "maxLength": 200
1981
+ },
1982
+ "description": {
1983
+ "type": "string",
1984
+ "minLength": 1,
1985
+ "maxLength": 500
1986
+ },
1987
+ "required": {
1988
+ "type": "boolean"
1989
+ },
1990
+ "min": {
1991
+ "type": "number"
1992
+ },
1993
+ "max": {
1994
+ "type": "number"
1995
+ },
1996
+ "integer": {
1997
+ "type": "boolean"
1998
+ }
1999
+ },
2000
+ "required": ["type", "id", "label", "required"],
2001
+ "additionalProperties": false
2002
+ },
2003
+ {
2004
+ "readOnly": true,
2005
+ "type": "object",
2006
+ "properties": {
2007
+ "type": {
2008
+ "type": "string",
2009
+ "const": "boolean"
2010
+ },
2011
+ "id": {
2012
+ "type": "string",
2013
+ "minLength": 1,
2014
+ "maxLength": 64
2015
+ },
2016
+ "label": {
2017
+ "type": "string",
2018
+ "minLength": 1,
2019
+ "maxLength": 200
2020
+ },
2021
+ "description": {
2022
+ "type": "string",
2023
+ "minLength": 1,
2024
+ "maxLength": 500
2025
+ },
2026
+ "required": {
2027
+ "type": "boolean"
2028
+ }
2029
+ },
2030
+ "required": ["type", "id", "label", "required"],
2031
+ "additionalProperties": false
2032
+ },
2033
+ {
2034
+ "readOnly": true,
2035
+ "type": "object",
2036
+ "properties": {
2037
+ "type": {
2038
+ "type": "string",
2039
+ "const": "choice"
2040
+ },
2041
+ "id": {
2042
+ "type": "string",
2043
+ "minLength": 1,
2044
+ "maxLength": 64
2045
+ },
2046
+ "label": {
2047
+ "type": "string",
2048
+ "minLength": 1,
2049
+ "maxLength": 200
2050
+ },
2051
+ "description": {
2052
+ "type": "string",
2053
+ "minLength": 1,
2054
+ "maxLength": 500
2055
+ },
2056
+ "required": {
2057
+ "type": "boolean"
2058
+ },
2059
+ "multiple": {
2060
+ "type": "boolean"
2061
+ },
2062
+ "options": {
2063
+ "minItems": 1,
2064
+ "maxItems": 50,
2065
+ "type": "array",
2066
+ "items": {
2067
+ "readOnly": true,
2068
+ "type": "object",
2069
+ "properties": {
2070
+ "id": {
2071
+ "type": "string",
2072
+ "minLength": 1,
2073
+ "maxLength": 64
2074
+ },
2075
+ "label": {
2076
+ "type": "string",
2077
+ "minLength": 1,
2078
+ "maxLength": 200
2079
+ },
2080
+ "description": {
2081
+ "type": "string",
2082
+ "minLength": 1,
2083
+ "maxLength": 500
2084
+ }
2085
+ },
2086
+ "required": ["id", "label"],
2087
+ "additionalProperties": false
2088
+ }
2089
+ },
2090
+ "minSelections": {
2091
+ "type": "integer",
2092
+ "minimum": 0,
2093
+ "maximum": 50
2094
+ },
2095
+ "maxSelections": {
2096
+ "type": "integer",
2097
+ "minimum": 1,
2098
+ "maximum": 50
2099
+ }
2100
+ },
2101
+ "required": [
2102
+ "type",
2103
+ "id",
2104
+ "label",
2105
+ "required",
2106
+ "multiple",
2107
+ "options"
2108
+ ],
2109
+ "additionalProperties": false
2110
+ }
2111
+ ]
2112
+ }
2113
+ }
2114
+ },
2115
+ "required": ["controls"],
2116
+ "additionalProperties": false
2117
+ }
2118
+ },
2119
+ "required": [
2120
+ "type",
2121
+ "workspaceId",
2122
+ "relaySequence",
2123
+ "interactionId",
2124
+ "threadId",
2125
+ "turnId",
2126
+ "expiresAt",
2127
+ "sensitivity",
2128
+ "method",
2129
+ "projection"
2130
+ ],
2131
+ "additionalProperties": false
2132
+ }
2133
+ ]
2134
+ },
2135
+ {
2136
+ "readOnly": true,
2137
+ "type": "object",
2138
+ "properties": {
2139
+ "type": {
2140
+ "type": "string",
2141
+ "const": "interaction.resolved"
2142
+ },
2143
+ "workspaceId": {
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
+ "relaySequence": {
2149
+ "type": "integer",
2150
+ "minimum": 0,
2151
+ "maximum": 9007199254740991
2152
+ },
2153
+ "interactionId": {
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
+ "threadId": {
2159
+ "type": "string",
2160
+ "format": "uuid",
2161
+ "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)$"
2162
+ },
2163
+ "turnId": {
2164
+ "type": "string",
2165
+ "format": "uuid",
2166
+ "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)$"
2167
+ },
2168
+ "method": {
2169
+ "type": "string",
2170
+ "enum": ["approval.request", "userInput.request"]
2171
+ }
2172
+ },
2173
+ "required": [
2174
+ "type",
2175
+ "workspaceId",
2176
+ "relaySequence",
2177
+ "interactionId",
2178
+ "threadId",
2179
+ "turnId",
2180
+ "method"
2181
+ ],
2182
+ "additionalProperties": false
2183
+ },
2184
+ {
2185
+ "readOnly": true,
2186
+ "type": "object",
2187
+ "properties": {
2188
+ "type": {
2189
+ "type": "string",
2190
+ "const": "interaction.cancelled"
2191
+ },
2192
+ "workspaceId": {
2193
+ "type": "string",
2194
+ "format": "uuid",
2195
+ "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)$"
2196
+ },
2197
+ "relaySequence": {
2198
+ "type": "integer",
2199
+ "minimum": 0,
2200
+ "maximum": 9007199254740991
2201
+ },
2202
+ "interactionId": {
2203
+ "type": "string",
2204
+ "format": "uuid",
2205
+ "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)$"
2206
+ },
2207
+ "threadId": {
2208
+ "type": "string",
2209
+ "format": "uuid",
2210
+ "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)$"
2211
+ },
2212
+ "turnId": {
2213
+ "type": "string",
2214
+ "format": "uuid",
2215
+ "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)$"
2216
+ },
2217
+ "method": {
2218
+ "type": "string",
2219
+ "enum": ["approval.request", "userInput.request"]
2220
+ }
2221
+ },
2222
+ "required": [
2223
+ "type",
2224
+ "workspaceId",
2225
+ "relaySequence",
2226
+ "interactionId",
2227
+ "threadId",
2228
+ "turnId",
2229
+ "method"
2230
+ ],
2231
+ "additionalProperties": false
2232
+ }
2233
+ ]
2234
+ },
2235
+ "initializeParams": {
2236
+ "readOnly": true,
2237
+ "type": "object",
2238
+ "properties": {
2239
+ "protocolVersions": {
2240
+ "minItems": 1,
2241
+ "type": "array",
2242
+ "items": {
2243
+ "type": "string",
2244
+ "minLength": 1
2245
+ }
2246
+ },
2247
+ "client": {
2248
+ "readOnly": true,
2249
+ "type": "object",
2250
+ "properties": {
2251
+ "name": {
2252
+ "type": "string",
2253
+ "minLength": 1,
2254
+ "maxLength": 100
2255
+ },
2256
+ "version": {
2257
+ "type": "string",
2258
+ "minLength": 1,
2259
+ "maxLength": 100
2260
+ }
2261
+ },
2262
+ "required": ["name", "version"],
2263
+ "additionalProperties": false
2264
+ }
2265
+ },
2266
+ "required": ["protocolVersions", "client"],
2267
+ "additionalProperties": false
2268
+ },
2269
+ "initializeResult": {
2270
+ "readOnly": true,
2271
+ "type": "object",
2272
+ "properties": {
2273
+ "protocolVersion": {
2274
+ "type": "string",
2275
+ "enum": ["1.1", "1.0"]
2276
+ },
2277
+ "runtimeInstanceId": {
2278
+ "type": "string",
2279
+ "format": "uuid",
2280
+ "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)$"
2281
+ },
2282
+ "server": {
2283
+ "readOnly": true,
2284
+ "type": "object",
2285
+ "properties": {
2286
+ "name": {
2287
+ "type": "string",
2288
+ "minLength": 1,
2289
+ "maxLength": 100
2290
+ },
2291
+ "version": {
2292
+ "type": "string",
2293
+ "minLength": 1,
2294
+ "maxLength": 100
2295
+ },
2296
+ "runtimeVersion": {
2297
+ "type": "string",
2298
+ "minLength": 1,
2299
+ "maxLength": 100
2300
+ }
2301
+ },
2302
+ "required": ["name", "version", "runtimeVersion"],
2303
+ "additionalProperties": false
2304
+ },
2305
+ "features": {
2306
+ "type": "array",
2307
+ "items": {
2308
+ "type": "string",
2309
+ "enum": [
2310
+ "thread-management",
2311
+ "snapshots",
2312
+ "turns",
2313
+ "approvals",
2314
+ "tool-streaming",
2315
+ "reasoning-summary",
2316
+ "operation-projection",
2317
+ "process-local-sequence"
2318
+ ]
2319
+ }
2320
+ },
2321
+ "limits": {
2322
+ "readOnly": true,
2323
+ "type": "object",
2324
+ "properties": {
2325
+ "maxFrameBytes": {
2326
+ "type": "integer",
2327
+ "exclusiveMinimum": 0,
2328
+ "maximum": 9007199254740991
2329
+ },
2330
+ "maxPageSize": {
2331
+ "type": "integer",
2332
+ "exclusiveMinimum": 0,
2333
+ "maximum": 9007199254740991
2334
+ },
2335
+ "eventReplay": {
2336
+ "type": "boolean",
2337
+ "const": false
2338
+ },
2339
+ "idempotencyCacheEntries": {
2340
+ "type": "integer",
2341
+ "exclusiveMinimum": 0,
2342
+ "maximum": 9007199254740991
2343
+ }
2344
+ },
2345
+ "required": [
2346
+ "maxFrameBytes",
2347
+ "maxPageSize",
2348
+ "eventReplay",
2349
+ "idempotencyCacheEntries"
2350
+ ],
2351
+ "additionalProperties": false
2352
+ }
2353
+ },
2354
+ "required": [
2355
+ "protocolVersion",
2356
+ "runtimeInstanceId",
2357
+ "server",
2358
+ "features",
2359
+ "limits"
2360
+ ],
2361
+ "additionalProperties": false
2362
+ },
2363
+ "threadListParams": {
2364
+ "readOnly": true,
2365
+ "type": "object",
2366
+ "properties": {
2367
+ "cursor": {
2368
+ "type": "string",
2369
+ "pattern": "^\\d+$"
2370
+ },
2371
+ "limit": {
2372
+ "default": 100,
2373
+ "type": "integer",
2374
+ "minimum": 1,
2375
+ "maximum": 500
2376
+ }
2377
+ },
2378
+ "required": ["limit"],
2379
+ "additionalProperties": false
2380
+ },
2381
+ "threadListResult": {
2382
+ "readOnly": true,
2383
+ "type": "object",
2384
+ "properties": {
2385
+ "items": {
2386
+ "type": "array",
2387
+ "items": {
2388
+ "readOnly": true,
2389
+ "type": "object",
2390
+ "properties": {
2391
+ "id": {
2392
+ "type": "string",
2393
+ "format": "uuid",
2394
+ "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)$"
2395
+ },
2396
+ "title": {
2397
+ "type": "string"
2398
+ },
2399
+ "model": {
2400
+ "type": "string"
2401
+ },
2402
+ "createdAt": {
2403
+ "type": "string",
2404
+ "format": "date-time",
2405
+ "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})))$"
2406
+ },
2407
+ "updatedAt": {
2408
+ "type": "string",
2409
+ "format": "date-time",
2410
+ "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})))$"
2411
+ },
2412
+ "messageCount": {
2413
+ "type": "integer",
2414
+ "minimum": 0,
2415
+ "maximum": 9007199254740991
2416
+ }
2417
+ },
2418
+ "required": ["id", "createdAt", "updatedAt", "messageCount"],
2419
+ "additionalProperties": false
2420
+ }
2421
+ },
2422
+ "nextCursor": {
2423
+ "anyOf": [
2424
+ {
2425
+ "type": "string",
2426
+ "pattern": "^\\d+$"
2427
+ },
2428
+ {
2429
+ "type": "null"
2430
+ }
2431
+ ]
2432
+ }
2433
+ },
2434
+ "required": ["items", "nextCursor"],
2435
+ "additionalProperties": false
2436
+ },
2437
+ "threadCreateParams": {
2438
+ "readOnly": true,
2439
+ "type": "object",
2440
+ "properties": {
2441
+ "requestId": {
2442
+ "type": "string",
2443
+ "format": "uuid",
2444
+ "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)$"
2445
+ },
2446
+ "title": {
2447
+ "type": "string",
2448
+ "minLength": 1,
2449
+ "maxLength": 200
2450
+ }
2451
+ },
2452
+ "required": ["requestId"],
2453
+ "additionalProperties": false
2454
+ },
2455
+ "threadCreateResult": {
2456
+ "readOnly": true,
2457
+ "type": "object",
2458
+ "properties": {
2459
+ "thread": {
2460
+ "readOnly": true,
2461
+ "type": "object",
2462
+ "properties": {
2463
+ "id": {
2464
+ "type": "string",
2465
+ "format": "uuid",
2466
+ "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)$"
2467
+ },
2468
+ "title": {
2469
+ "type": "string"
2470
+ },
2471
+ "model": {
2472
+ "type": "string"
2473
+ },
2474
+ "createdAt": {
2475
+ "type": "string",
2476
+ "format": "date-time",
2477
+ "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})))$"
2478
+ },
2479
+ "updatedAt": {
2480
+ "type": "string",
2481
+ "format": "date-time",
2482
+ "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})))$"
2483
+ },
2484
+ "messageCount": {
2485
+ "type": "integer",
2486
+ "minimum": 0,
2487
+ "maximum": 9007199254740991
2488
+ }
2489
+ },
2490
+ "required": ["id", "createdAt", "updatedAt", "messageCount"],
2491
+ "additionalProperties": false
2492
+ }
2493
+ },
2494
+ "required": ["thread"],
2495
+ "additionalProperties": false
2496
+ },
2497
+ "threadOpenParams": {
2498
+ "readOnly": true,
2499
+ "type": "object",
2500
+ "properties": {
2501
+ "threadId": {
2502
+ "type": "string",
2503
+ "format": "uuid",
2504
+ "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)$"
2505
+ }
2506
+ },
2507
+ "required": ["threadId"],
2508
+ "additionalProperties": false
2509
+ },
2510
+ "threadOpenResult": {
2511
+ "readOnly": true,
2512
+ "type": "object",
2513
+ "properties": {
2514
+ "thread": {
2515
+ "readOnly": true,
2516
+ "type": "object",
2517
+ "properties": {
2518
+ "id": {
2519
+ "type": "string",
2520
+ "format": "uuid",
2521
+ "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)$"
2522
+ },
2523
+ "title": {
2524
+ "type": "string"
2525
+ },
2526
+ "model": {
2527
+ "type": "string"
2528
+ },
2529
+ "createdAt": {
2530
+ "type": "string",
2531
+ "format": "date-time",
2532
+ "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})))$"
2533
+ },
2534
+ "updatedAt": {
2535
+ "type": "string",
2536
+ "format": "date-time",
2537
+ "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})))$"
2538
+ },
2539
+ "messageCount": {
2540
+ "type": "integer",
2541
+ "minimum": 0,
2542
+ "maximum": 9007199254740991
2543
+ }
2544
+ },
2545
+ "required": ["id", "createdAt", "updatedAt", "messageCount"],
2546
+ "additionalProperties": false
2547
+ },
2548
+ "messages": {
2549
+ "readOnly": true,
2550
+ "type": "object",
2551
+ "properties": {
2552
+ "items": {
2553
+ "type": "array",
2554
+ "items": {
2555
+ "readOnly": true,
2556
+ "type": "object",
2557
+ "properties": {
2558
+ "sequence": {
2559
+ "type": "integer",
2560
+ "minimum": 0,
2561
+ "maximum": 9007199254740991
2562
+ },
2563
+ "role": {
2564
+ "type": "string",
2565
+ "enum": ["user", "assistant"]
2566
+ },
2567
+ "createdAt": {
2568
+ "type": "string",
2569
+ "format": "date-time",
2570
+ "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})))$"
2571
+ },
2572
+ "parts": {
2573
+ "type": "array",
2574
+ "items": {
2575
+ "readOnly": true,
2576
+ "type": "object",
2577
+ "properties": {
2578
+ "type": {
2579
+ "type": "string",
2580
+ "const": "text"
2581
+ },
2582
+ "text": {
2583
+ "type": "string"
2584
+ }
2585
+ },
2586
+ "required": ["type", "text"],
2587
+ "additionalProperties": false
2588
+ }
2589
+ }
2590
+ },
2591
+ "required": ["sequence", "role", "createdAt", "parts"],
2592
+ "additionalProperties": false
2593
+ }
2594
+ },
2595
+ "nextBeforeSequence": {
2596
+ "anyOf": [
2597
+ {
2598
+ "type": "integer",
2599
+ "minimum": 0,
2600
+ "maximum": 9007199254740991
2601
+ },
2602
+ {
2603
+ "type": "null"
2604
+ }
2605
+ ]
2606
+ }
2607
+ },
2608
+ "required": ["items", "nextBeforeSequence"],
2609
+ "additionalProperties": false
2610
+ },
2611
+ "operations": {
2612
+ "readOnly": true,
2613
+ "type": "object",
2614
+ "properties": {
2615
+ "items": {
2616
+ "type": "array",
2617
+ "items": {
2618
+ "readOnly": true,
2619
+ "type": "object",
2620
+ "properties": {
2621
+ "id": {
2622
+ "type": "string",
2623
+ "format": "uuid",
2624
+ "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)$"
2625
+ },
2626
+ "sequence": {
2627
+ "type": "integer",
2628
+ "minimum": 0,
2629
+ "maximum": 9007199254740991
2630
+ },
2631
+ "toolCallId": {
2632
+ "type": "string",
2633
+ "minLength": 1
2634
+ },
2635
+ "agentName": {
2636
+ "type": "string",
2637
+ "minLength": 1
2638
+ },
2639
+ "toolName": {
2640
+ "type": "string",
2641
+ "minLength": 1
2642
+ },
2643
+ "createdAt": {
2644
+ "type": "string",
2645
+ "format": "date-time",
2646
+ "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})))$"
2647
+ },
2648
+ "outcome": {
2649
+ "readOnly": true,
2650
+ "type": "object",
2651
+ "properties": {
2652
+ "kind": {
2653
+ "type": "string",
2654
+ "enum": [
2655
+ "success",
2656
+ "user_rejected",
2657
+ "policy_denied",
2658
+ "invalid_input",
2659
+ "cancelled",
2660
+ "tool_failed"
2661
+ ]
2662
+ },
2663
+ "reason": {
2664
+ "type": "string"
2665
+ }
2666
+ },
2667
+ "required": ["kind"],
2668
+ "additionalProperties": false
2669
+ },
2670
+ "display": {
2671
+ "$ref": "#/$defs/sharedSchema0"
2672
+ }
2673
+ },
2674
+ "required": [
2675
+ "id",
2676
+ "sequence",
2677
+ "toolCallId",
2678
+ "agentName",
2679
+ "toolName",
2680
+ "createdAt",
2681
+ "outcome",
2682
+ "display"
2683
+ ],
2684
+ "additionalProperties": false
2685
+ }
2686
+ },
2687
+ "nextBeforeSequence": {
2688
+ "anyOf": [
2689
+ {
2690
+ "type": "integer",
2691
+ "minimum": 0,
2692
+ "maximum": 9007199254740991
2693
+ },
2694
+ {
2695
+ "type": "null"
2696
+ }
2697
+ ]
2698
+ }
2699
+ },
2700
+ "required": ["items", "nextBeforeSequence"],
2701
+ "additionalProperties": false
2702
+ },
2703
+ "activeTurn": {
2704
+ "readOnly": true,
2705
+ "type": "object",
2706
+ "properties": {
2707
+ "id": {
2708
+ "type": "string",
2709
+ "format": "uuid",
2710
+ "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)$"
2711
+ },
2712
+ "status": {
2713
+ "type": "string",
2714
+ "enum": ["running", "cancelling"]
2715
+ },
2716
+ "startedAt": {
2717
+ "type": "string",
2718
+ "format": "date-time",
2719
+ "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})))$"
2720
+ }
2721
+ },
2722
+ "required": ["id", "status", "startedAt"],
2723
+ "additionalProperties": false
2724
+ },
2725
+ "pendingApprovals": {
2726
+ "type": "array",
2727
+ "items": {
2728
+ "readOnly": true,
2729
+ "type": "object",
2730
+ "properties": {
2731
+ "id": {
2732
+ "type": "string",
2733
+ "format": "uuid",
2734
+ "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)$"
2735
+ },
2736
+ "turnId": {
2737
+ "type": "string",
2738
+ "format": "uuid",
2739
+ "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)$"
2740
+ },
2741
+ "agentName": {
2742
+ "type": "string",
2743
+ "minLength": 1
2744
+ },
2745
+ "toolName": {
2746
+ "type": "string",
2747
+ "minLength": 1
2748
+ },
2749
+ "preview": {
2750
+ "$ref": "#/$defs/sharedSchema0"
2751
+ },
2752
+ "reason": {
2753
+ "type": "string"
2754
+ }
2755
+ },
2756
+ "required": ["id", "turnId", "agentName", "toolName", "preview"],
2757
+ "additionalProperties": false
2758
+ }
2759
+ },
2760
+ "transcriptCompleteness": {
2761
+ "type": "string",
2762
+ "enum": ["complete", "legacy_snapshot"]
2763
+ }
2764
+ },
2765
+ "required": [
2766
+ "thread",
2767
+ "messages",
2768
+ "operations",
2769
+ "pendingApprovals",
2770
+ "transcriptCompleteness"
2771
+ ],
2772
+ "additionalProperties": false
2773
+ },
2774
+ "threadSnapshotParams": {
2775
+ "readOnly": true,
2776
+ "type": "object",
2777
+ "properties": {
2778
+ "threadId": {
2779
+ "type": "string",
2780
+ "format": "uuid",
2781
+ "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)$"
2782
+ },
2783
+ "messageBeforeSequence": {
2784
+ "type": "integer",
2785
+ "minimum": 0,
2786
+ "maximum": 9007199254740991
2787
+ },
2788
+ "operationBeforeSequence": {
2789
+ "type": "integer",
2790
+ "minimum": 0,
2791
+ "maximum": 9007199254740991
2792
+ },
2793
+ "limit": {
2794
+ "default": 100,
2795
+ "type": "integer",
2796
+ "minimum": 1,
2797
+ "maximum": 500
2798
+ }
2799
+ },
2800
+ "required": ["threadId", "limit"],
2801
+ "additionalProperties": false
2802
+ },
2803
+ "threadSnapshotResult": {
2804
+ "readOnly": true,
2805
+ "type": "object",
2806
+ "properties": {
2807
+ "thread": {
2808
+ "readOnly": true,
2809
+ "type": "object",
2810
+ "properties": {
2811
+ "id": {
2812
+ "type": "string",
2813
+ "format": "uuid",
2814
+ "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)$"
2815
+ },
2816
+ "title": {
2817
+ "type": "string"
2818
+ },
2819
+ "model": {
2820
+ "type": "string"
2821
+ },
2822
+ "createdAt": {
2823
+ "type": "string",
2824
+ "format": "date-time",
2825
+ "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})))$"
2826
+ },
2827
+ "updatedAt": {
2828
+ "type": "string",
2829
+ "format": "date-time",
2830
+ "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})))$"
2831
+ },
2832
+ "messageCount": {
2833
+ "type": "integer",
2834
+ "minimum": 0,
2835
+ "maximum": 9007199254740991
2836
+ }
2837
+ },
2838
+ "required": ["id", "createdAt", "updatedAt", "messageCount"],
2839
+ "additionalProperties": false
2840
+ },
2841
+ "messages": {
2842
+ "readOnly": true,
2843
+ "type": "object",
2844
+ "properties": {
2845
+ "items": {
2846
+ "type": "array",
2847
+ "items": {
2848
+ "readOnly": true,
2849
+ "type": "object",
2850
+ "properties": {
2851
+ "sequence": {
2852
+ "type": "integer",
2853
+ "minimum": 0,
2854
+ "maximum": 9007199254740991
2855
+ },
2856
+ "role": {
2857
+ "type": "string",
2858
+ "enum": ["user", "assistant"]
2859
+ },
2860
+ "createdAt": {
2861
+ "type": "string",
2862
+ "format": "date-time",
2863
+ "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})))$"
2864
+ },
2865
+ "parts": {
2866
+ "type": "array",
2867
+ "items": {
2868
+ "readOnly": true,
2869
+ "type": "object",
2870
+ "properties": {
2871
+ "type": {
2872
+ "type": "string",
2873
+ "const": "text"
2874
+ },
2875
+ "text": {
2876
+ "type": "string"
2877
+ }
2878
+ },
2879
+ "required": ["type", "text"],
2880
+ "additionalProperties": false
2881
+ }
2882
+ }
2883
+ },
2884
+ "required": ["sequence", "role", "createdAt", "parts"],
2885
+ "additionalProperties": false
2886
+ }
2887
+ },
2888
+ "nextBeforeSequence": {
2889
+ "anyOf": [
2890
+ {
2891
+ "type": "integer",
2892
+ "minimum": 0,
2893
+ "maximum": 9007199254740991
2894
+ },
2895
+ {
2896
+ "type": "null"
2897
+ }
2898
+ ]
2899
+ }
2900
+ },
2901
+ "required": ["items", "nextBeforeSequence"],
2902
+ "additionalProperties": false
2903
+ },
2904
+ "operations": {
2905
+ "readOnly": true,
2906
+ "type": "object",
2907
+ "properties": {
2908
+ "items": {
2909
+ "type": "array",
2910
+ "items": {
2911
+ "readOnly": true,
2912
+ "type": "object",
2913
+ "properties": {
2914
+ "id": {
2915
+ "type": "string",
2916
+ "format": "uuid",
2917
+ "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)$"
2918
+ },
2919
+ "sequence": {
2920
+ "type": "integer",
2921
+ "minimum": 0,
2922
+ "maximum": 9007199254740991
2923
+ },
2924
+ "toolCallId": {
2925
+ "type": "string",
2926
+ "minLength": 1
2927
+ },
2928
+ "agentName": {
2929
+ "type": "string",
2930
+ "minLength": 1
2931
+ },
2932
+ "toolName": {
2933
+ "type": "string",
2934
+ "minLength": 1
2935
+ },
2936
+ "createdAt": {
2937
+ "type": "string",
2938
+ "format": "date-time",
2939
+ "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})))$"
2940
+ },
2941
+ "outcome": {
2942
+ "readOnly": true,
2943
+ "type": "object",
2944
+ "properties": {
2945
+ "kind": {
2946
+ "type": "string",
2947
+ "enum": [
2948
+ "success",
2949
+ "user_rejected",
2950
+ "policy_denied",
2951
+ "invalid_input",
2952
+ "cancelled",
2953
+ "tool_failed"
2954
+ ]
2955
+ },
2956
+ "reason": {
2957
+ "type": "string"
2958
+ }
2959
+ },
2960
+ "required": ["kind"],
2961
+ "additionalProperties": false
2962
+ },
2963
+ "display": {
2964
+ "$ref": "#/$defs/sharedSchema0"
2965
+ }
2966
+ },
2967
+ "required": [
2968
+ "id",
2969
+ "sequence",
2970
+ "toolCallId",
2971
+ "agentName",
2972
+ "toolName",
2973
+ "createdAt",
2974
+ "outcome",
2975
+ "display"
2976
+ ],
2977
+ "additionalProperties": false
2978
+ }
2979
+ },
2980
+ "nextBeforeSequence": {
2981
+ "anyOf": [
2982
+ {
2983
+ "type": "integer",
2984
+ "minimum": 0,
2985
+ "maximum": 9007199254740991
2986
+ },
2987
+ {
2988
+ "type": "null"
2989
+ }
2990
+ ]
2991
+ }
2992
+ },
2993
+ "required": ["items", "nextBeforeSequence"],
2994
+ "additionalProperties": false
2995
+ },
2996
+ "activeTurn": {
2997
+ "readOnly": true,
2998
+ "type": "object",
2999
+ "properties": {
3000
+ "id": {
3001
+ "type": "string",
3002
+ "format": "uuid",
3003
+ "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)$"
3004
+ },
3005
+ "status": {
3006
+ "type": "string",
3007
+ "enum": ["running", "cancelling"]
3008
+ },
3009
+ "startedAt": {
3010
+ "type": "string",
3011
+ "format": "date-time",
3012
+ "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})))$"
3013
+ }
3014
+ },
3015
+ "required": ["id", "status", "startedAt"],
3016
+ "additionalProperties": false
3017
+ },
3018
+ "pendingApprovals": {
3019
+ "type": "array",
3020
+ "items": {
3021
+ "readOnly": true,
3022
+ "type": "object",
3023
+ "properties": {
3024
+ "id": {
3025
+ "type": "string",
3026
+ "format": "uuid",
3027
+ "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)$"
3028
+ },
3029
+ "turnId": {
3030
+ "type": "string",
3031
+ "format": "uuid",
3032
+ "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)$"
3033
+ },
3034
+ "agentName": {
3035
+ "type": "string",
3036
+ "minLength": 1
3037
+ },
3038
+ "toolName": {
3039
+ "type": "string",
3040
+ "minLength": 1
3041
+ },
3042
+ "preview": {
3043
+ "$ref": "#/$defs/sharedSchema0"
3044
+ },
3045
+ "reason": {
3046
+ "type": "string"
3047
+ }
3048
+ },
3049
+ "required": ["id", "turnId", "agentName", "toolName", "preview"],
3050
+ "additionalProperties": false
3051
+ }
3052
+ },
3053
+ "transcriptCompleteness": {
3054
+ "type": "string",
3055
+ "enum": ["complete", "legacy_snapshot"]
3056
+ }
3057
+ },
3058
+ "required": [
3059
+ "thread",
3060
+ "messages",
3061
+ "operations",
3062
+ "pendingApprovals",
3063
+ "transcriptCompleteness"
3064
+ ],
3065
+ "additionalProperties": false
3066
+ },
3067
+ "threadRenameParams": {
3068
+ "readOnly": true,
3069
+ "type": "object",
3070
+ "properties": {
3071
+ "requestId": {
3072
+ "type": "string",
3073
+ "format": "uuid",
3074
+ "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)$"
3075
+ },
3076
+ "threadId": {
3077
+ "type": "string",
3078
+ "format": "uuid",
3079
+ "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)$"
3080
+ },
3081
+ "title": {
3082
+ "type": "string",
3083
+ "minLength": 1,
3084
+ "maxLength": 200
3085
+ }
3086
+ },
3087
+ "required": ["requestId", "threadId", "title"],
3088
+ "additionalProperties": false
3089
+ },
3090
+ "threadRenameResult": {
3091
+ "readOnly": true,
3092
+ "type": "object",
3093
+ "properties": {
3094
+ "thread": {
3095
+ "readOnly": true,
3096
+ "type": "object",
3097
+ "properties": {
3098
+ "id": {
3099
+ "type": "string",
3100
+ "format": "uuid",
3101
+ "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)$"
3102
+ },
3103
+ "title": {
3104
+ "type": "string"
3105
+ },
3106
+ "model": {
3107
+ "type": "string"
3108
+ },
3109
+ "createdAt": {
3110
+ "type": "string",
3111
+ "format": "date-time",
3112
+ "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})))$"
3113
+ },
3114
+ "updatedAt": {
3115
+ "type": "string",
3116
+ "format": "date-time",
3117
+ "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})))$"
3118
+ },
3119
+ "messageCount": {
3120
+ "type": "integer",
3121
+ "minimum": 0,
3122
+ "maximum": 9007199254740991
3123
+ }
3124
+ },
3125
+ "required": ["id", "createdAt", "updatedAt", "messageCount"],
3126
+ "additionalProperties": false
3127
+ }
3128
+ },
3129
+ "required": ["thread"],
3130
+ "additionalProperties": false
3131
+ },
3132
+ "threadDeleteParams": {
3133
+ "readOnly": true,
3134
+ "type": "object",
3135
+ "properties": {
3136
+ "requestId": {
3137
+ "type": "string",
3138
+ "format": "uuid",
3139
+ "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)$"
3140
+ },
3141
+ "threadId": {
3142
+ "type": "string",
3143
+ "format": "uuid",
3144
+ "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)$"
3145
+ }
3146
+ },
3147
+ "required": ["requestId", "threadId"],
3148
+ "additionalProperties": false
3149
+ },
3150
+ "threadDeleteResult": {
3151
+ "readOnly": true,
3152
+ "type": "object",
3153
+ "properties": {
3154
+ "deleted": {
3155
+ "type": "boolean",
3156
+ "const": true
3157
+ }
3158
+ },
3159
+ "required": ["deleted"],
3160
+ "additionalProperties": false
3161
+ },
3162
+ "threadDetachParams": {
3163
+ "readOnly": true,
3164
+ "type": "object",
3165
+ "properties": {
3166
+ "requestId": {
3167
+ "type": "string",
3168
+ "format": "uuid",
3169
+ "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)$"
3170
+ },
3171
+ "threadId": {
3172
+ "type": "string",
3173
+ "format": "uuid",
3174
+ "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)$"
3175
+ }
3176
+ },
3177
+ "required": ["requestId", "threadId"],
3178
+ "additionalProperties": false
3179
+ },
3180
+ "threadDetachResult": {
3181
+ "readOnly": true,
3182
+ "type": "object",
3183
+ "properties": {
3184
+ "detached": {
3185
+ "type": "boolean"
3186
+ }
3187
+ },
3188
+ "required": ["detached"],
3189
+ "additionalProperties": false
3190
+ },
3191
+ "threadCapabilitiesParams": {
3192
+ "readOnly": true,
3193
+ "type": "object",
3194
+ "properties": {
3195
+ "threadId": {
3196
+ "type": "string",
3197
+ "format": "uuid",
3198
+ "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)$"
3199
+ }
3200
+ },
3201
+ "required": ["threadId"],
3202
+ "additionalProperties": false
3203
+ },
3204
+ "threadCapabilitiesResult": {
3205
+ "readOnly": true,
3206
+ "type": "object",
3207
+ "properties": {
3208
+ "manifest": {
3209
+ "$ref": "#/$defs/sharedSchema0"
3210
+ }
3211
+ },
3212
+ "required": ["manifest"],
3213
+ "additionalProperties": false
3214
+ },
3215
+ "turnStartParams": {
3216
+ "readOnly": true,
3217
+ "type": "object",
3218
+ "properties": {
3219
+ "requestId": {
3220
+ "type": "string",
3221
+ "format": "uuid",
3222
+ "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)$"
3223
+ },
3224
+ "threadId": {
3225
+ "type": "string",
3226
+ "format": "uuid",
3227
+ "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)$"
3228
+ },
3229
+ "turnId": {
3230
+ "type": "string",
3231
+ "format": "uuid",
3232
+ "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)$"
3233
+ },
3234
+ "input": {
3235
+ "readOnly": true,
3236
+ "type": "object",
3237
+ "properties": {
3238
+ "text": {
3239
+ "type": "string",
3240
+ "minLength": 1
3241
+ }
3242
+ },
3243
+ "required": ["text"],
3244
+ "additionalProperties": false
3245
+ }
3246
+ },
3247
+ "required": ["requestId", "threadId", "turnId", "input"],
3248
+ "additionalProperties": false
3249
+ },
3250
+ "turnStartResult": {
3251
+ "readOnly": true,
3252
+ "type": "object",
3253
+ "properties": {
3254
+ "accepted": {
3255
+ "type": "boolean",
3256
+ "const": true
3257
+ },
3258
+ "turnId": {
3259
+ "type": "string",
3260
+ "format": "uuid",
3261
+ "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)$"
3262
+ }
3263
+ },
3264
+ "required": ["accepted", "turnId"],
3265
+ "additionalProperties": false
3266
+ },
3267
+ "turnCancelParams": {
3268
+ "readOnly": true,
3269
+ "type": "object",
3270
+ "properties": {
3271
+ "requestId": {
3272
+ "type": "string",
3273
+ "format": "uuid",
3274
+ "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)$"
3275
+ },
3276
+ "threadId": {
3277
+ "type": "string",
3278
+ "format": "uuid",
3279
+ "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)$"
3280
+ },
3281
+ "turnId": {
3282
+ "type": "string",
3283
+ "format": "uuid",
3284
+ "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)$"
3285
+ }
3286
+ },
3287
+ "required": ["requestId", "threadId", "turnId"],
3288
+ "additionalProperties": false
3289
+ },
3290
+ "turnCancelResult": {
3291
+ "readOnly": true,
3292
+ "type": "object",
3293
+ "properties": {
3294
+ "cancelling": {
3295
+ "type": "boolean"
3296
+ }
3297
+ },
3298
+ "required": ["cancelling"],
3299
+ "additionalProperties": false
3300
+ },
3301
+ "operationGetParams": {
3302
+ "readOnly": true,
3303
+ "type": "object",
3304
+ "properties": {
3305
+ "threadId": {
3306
+ "type": "string",
3307
+ "format": "uuid",
3308
+ "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)$"
3309
+ },
3310
+ "operationId": {
3311
+ "type": "string",
3312
+ "format": "uuid",
3313
+ "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)$"
3314
+ }
3315
+ },
3316
+ "required": ["threadId", "operationId"],
3317
+ "additionalProperties": false
3318
+ },
3319
+ "operationGetResult": {
3320
+ "readOnly": true,
3321
+ "type": "object",
3322
+ "properties": {
3323
+ "operation": {
3324
+ "anyOf": [
3325
+ {
3326
+ "readOnly": true,
3327
+ "type": "object",
3328
+ "properties": {
3329
+ "id": {
3330
+ "type": "string",
3331
+ "format": "uuid",
3332
+ "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)$"
3333
+ },
3334
+ "sequence": {
3335
+ "type": "integer",
3336
+ "minimum": 0,
3337
+ "maximum": 9007199254740991
3338
+ },
3339
+ "toolCallId": {
3340
+ "type": "string",
3341
+ "minLength": 1
3342
+ },
3343
+ "agentName": {
3344
+ "type": "string",
3345
+ "minLength": 1
3346
+ },
3347
+ "toolName": {
3348
+ "type": "string",
3349
+ "minLength": 1
3350
+ },
3351
+ "createdAt": {
3352
+ "type": "string",
3353
+ "format": "date-time",
3354
+ "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})))$"
3355
+ },
3356
+ "outcome": {
3357
+ "readOnly": true,
3358
+ "type": "object",
3359
+ "properties": {
3360
+ "kind": {
3361
+ "type": "string",
3362
+ "enum": [
3363
+ "success",
3364
+ "user_rejected",
3365
+ "policy_denied",
3366
+ "invalid_input",
3367
+ "cancelled",
3368
+ "tool_failed"
3369
+ ]
3370
+ },
3371
+ "reason": {
3372
+ "type": "string"
3373
+ }
3374
+ },
3375
+ "required": ["kind"],
3376
+ "additionalProperties": false
3377
+ },
3378
+ "display": {
3379
+ "$ref": "#/$defs/sharedSchema0"
3380
+ }
3381
+ },
3382
+ "required": [
3383
+ "id",
3384
+ "sequence",
3385
+ "toolCallId",
3386
+ "agentName",
3387
+ "toolName",
3388
+ "createdAt",
3389
+ "outcome",
3390
+ "display"
3391
+ ],
3392
+ "additionalProperties": false
3393
+ },
3394
+ {
3395
+ "type": "null"
3396
+ }
3397
+ ]
3398
+ }
3399
+ },
3400
+ "required": ["operation"],
3401
+ "additionalProperties": false
3402
+ },
3403
+ "interactionCandidateParams": {
3404
+ "anyOf": [
3405
+ {
3406
+ "readOnly": true,
3407
+ "type": "object",
3408
+ "properties": {
3409
+ "interactionId": {
3410
+ "type": "string",
3411
+ "format": "uuid",
3412
+ "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)$"
3413
+ },
3414
+ "threadId": {
3415
+ "type": "string",
3416
+ "format": "uuid",
3417
+ "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)$"
3418
+ },
3419
+ "turnId": {
3420
+ "type": "string",
3421
+ "format": "uuid",
3422
+ "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)$"
3423
+ },
3424
+ "method": {
3425
+ "type": "string",
3426
+ "const": "approval.request"
3427
+ },
3428
+ "candidate": {
3429
+ "anyOf": [
3430
+ {
3431
+ "readOnly": true,
3432
+ "type": "object",
3433
+ "properties": {
3434
+ "decision": {
3435
+ "type": "string",
3436
+ "const": "approve"
3437
+ }
3438
+ },
3439
+ "required": ["decision"],
3440
+ "additionalProperties": false
3441
+ },
3442
+ {
3443
+ "readOnly": true,
3444
+ "type": "object",
3445
+ "properties": {
3446
+ "decision": {
3447
+ "type": "string",
3448
+ "const": "reject"
3449
+ },
3450
+ "reason": {
3451
+ "type": "string",
3452
+ "minLength": 1
3453
+ }
3454
+ },
3455
+ "required": ["decision"],
3456
+ "additionalProperties": false
3457
+ }
3458
+ ]
3459
+ }
3460
+ },
3461
+ "required": [
3462
+ "interactionId",
3463
+ "threadId",
3464
+ "turnId",
3465
+ "method",
3466
+ "candidate"
3467
+ ],
3468
+ "additionalProperties": false
3469
+ },
3470
+ {
3471
+ "readOnly": true,
3472
+ "type": "object",
3473
+ "properties": {
3474
+ "interactionId": {
3475
+ "type": "string",
3476
+ "format": "uuid",
3477
+ "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)$"
3478
+ },
3479
+ "threadId": {
3480
+ "type": "string",
3481
+ "format": "uuid",
3482
+ "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)$"
3483
+ },
3484
+ "turnId": {
3485
+ "type": "string",
3486
+ "format": "uuid",
3487
+ "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)$"
3488
+ },
3489
+ "method": {
3490
+ "type": "string",
3491
+ "const": "userInput.request"
3492
+ },
3493
+ "candidate": {
3494
+ "anyOf": [
3495
+ {
3496
+ "readOnly": true,
3497
+ "type": "object",
3498
+ "properties": {
3499
+ "status": {
3500
+ "type": "string",
3501
+ "const": "submitted"
3502
+ },
3503
+ "values": {
3504
+ "maxItems": 16,
3505
+ "type": "array",
3506
+ "items": {
3507
+ "readOnly": true,
3508
+ "type": "object",
3509
+ "properties": {
3510
+ "id": {
3511
+ "type": "string",
3512
+ "minLength": 1,
3513
+ "maxLength": 64
3514
+ },
3515
+ "value": {
3516
+ "anyOf": [
3517
+ {
3518
+ "type": "string",
3519
+ "maxLength": 10000
3520
+ },
3521
+ {
3522
+ "type": "number"
3523
+ },
3524
+ {
3525
+ "type": "boolean"
3526
+ },
3527
+ {
3528
+ "maxItems": 50,
3529
+ "type": "array",
3530
+ "items": {
3531
+ "type": "string",
3532
+ "maxLength": 64
3533
+ }
3534
+ }
3535
+ ]
3536
+ }
3537
+ },
3538
+ "required": ["id", "value"],
3539
+ "additionalProperties": false
3540
+ }
3541
+ }
3542
+ },
3543
+ "required": ["status", "values"],
3544
+ "additionalProperties": false
3545
+ },
3546
+ {
3547
+ "readOnly": true,
3548
+ "type": "object",
3549
+ "properties": {
3550
+ "status": {
3551
+ "type": "string",
3552
+ "const": "cancelled"
3553
+ },
3554
+ "reason": {
3555
+ "type": "string",
3556
+ "minLength": 1,
3557
+ "maxLength": 500
3558
+ }
3559
+ },
3560
+ "required": ["status"],
3561
+ "additionalProperties": false
3562
+ }
3563
+ ]
3564
+ }
3565
+ },
3566
+ "required": [
3567
+ "interactionId",
3568
+ "threadId",
3569
+ "turnId",
3570
+ "method",
3571
+ "candidate"
3572
+ ],
3573
+ "additionalProperties": false
3574
+ }
3575
+ ]
3576
+ },
3577
+ "interactionCandidateResult": {
3578
+ "readOnly": true,
3579
+ "type": "object",
3580
+ "properties": {
3581
+ "accepted": {
3582
+ "type": "boolean",
3583
+ "const": true
3584
+ }
3585
+ },
3586
+ "required": ["accepted"],
3587
+ "additionalProperties": false
3588
+ },
3589
+ "sharedSchema0": {
3590
+ "anyOf": [
3591
+ {
3592
+ "type": "string"
3593
+ },
3594
+ {
3595
+ "type": "number"
3596
+ },
3597
+ {
3598
+ "type": "boolean"
3599
+ },
3600
+ {
3601
+ "type": "null"
3602
+ },
3603
+ {
3604
+ "type": "array",
3605
+ "items": {
3606
+ "$ref": "#/$defs/sharedSchema0"
3607
+ }
3608
+ },
3609
+ {
3610
+ "type": "object",
3611
+ "propertyNames": {
3612
+ "type": "string"
3613
+ },
3614
+ "additionalProperties": {
3615
+ "$ref": "#/$defs/sharedSchema0"
3616
+ }
3617
+ }
3618
+ ]
3619
+ }
3620
+ },
3621
+ "x-roll-relay-protocol-version": "1.1",
3622
+ "x-roll-message-types": [
3623
+ "device.connect",
3624
+ "runtime.request",
3625
+ "runtime.response",
3626
+ "runtime.event",
3627
+ "runtime.ack",
3628
+ "runtime.gap",
3629
+ "runtime.encrypted",
3630
+ "interaction.request",
3631
+ "interaction.resolved",
3632
+ "interaction.cancelled"
3633
+ ],
3634
+ "x-roll-request-methods": [
3635
+ "initialize",
3636
+ "thread.list",
3637
+ "thread.create",
3638
+ "thread.open",
3639
+ "thread.snapshot",
3640
+ "thread.rename",
3641
+ "thread.delete",
3642
+ "thread.detach",
3643
+ "thread.capabilities",
3644
+ "turn.start",
3645
+ "turn.cancel",
3646
+ "operation.get",
3647
+ "interaction.candidate"
3648
+ ],
3649
+ "x-roll-request-method-dispositions": {
3650
+ "initialize": "local-only",
3651
+ "thread.list": "query",
3652
+ "thread.create": "mutation",
3653
+ "thread.open": "query",
3654
+ "thread.snapshot": "query",
3655
+ "thread.rename": "mutation",
3656
+ "thread.delete": "mutation",
3657
+ "thread.detach": "mutation",
3658
+ "thread.capabilities": "query",
3659
+ "turn.start": "mutation",
3660
+ "turn.cancel": "mutation",
3661
+ "operation.get": "query",
3662
+ "interaction.candidate": "mutation"
3663
+ },
3664
+ "x-roll-mutation-methods": [
3665
+ "thread.create",
3666
+ "thread.rename",
3667
+ "thread.delete",
3668
+ "thread.detach",
3669
+ "turn.start",
3670
+ "turn.cancel",
3671
+ "interaction.candidate"
3672
+ ],
3673
+ "x-roll-relay-error-retryability": {
3674
+ "RELAY_PROTOCOL_VERSION_UNSUPPORTED": false,
3675
+ "RELAY_INVALID_FRAME": false,
3676
+ "INVALID_PARAMS": false,
3677
+ "RELAY_REQUEST_ID_CONFLICT": false,
3678
+ "WORKSPACE_NOT_FOUND": false,
3679
+ "RELAY_ENCRYPTION_REQUIRED": false,
3680
+ "ENCRYPTED_PAYLOAD_INVALID": false,
3681
+ "LocalApprovalDeniedError": false,
3682
+ "LocalConfirmationRequiredError": false,
3683
+ "COMPANION_ERROR": false
3684
+ },
3685
+ "x-roll-request-method-schemas": {
3686
+ "initialize": {
3687
+ "params": {
3688
+ "$ref": "#/$defs/initializeParams"
3689
+ },
3690
+ "result": {
3691
+ "$ref": "#/$defs/initializeResult"
3692
+ }
3693
+ },
3694
+ "thread.list": {
3695
+ "params": {
3696
+ "$ref": "#/$defs/threadListParams"
3697
+ },
3698
+ "result": {
3699
+ "$ref": "#/$defs/threadListResult"
3700
+ }
3701
+ },
3702
+ "thread.create": {
3703
+ "params": {
3704
+ "$ref": "#/$defs/threadCreateParams"
3705
+ },
3706
+ "result": {
3707
+ "$ref": "#/$defs/threadCreateResult"
3708
+ }
3709
+ },
3710
+ "thread.open": {
3711
+ "params": {
3712
+ "$ref": "#/$defs/threadOpenParams"
3713
+ },
3714
+ "result": {
3715
+ "$ref": "#/$defs/threadOpenResult"
3716
+ }
3717
+ },
3718
+ "thread.snapshot": {
3719
+ "params": {
3720
+ "$ref": "#/$defs/threadSnapshotParams"
3721
+ },
3722
+ "result": {
3723
+ "$ref": "#/$defs/threadSnapshotResult"
3724
+ }
3725
+ },
3726
+ "thread.rename": {
3727
+ "params": {
3728
+ "$ref": "#/$defs/threadRenameParams"
3729
+ },
3730
+ "result": {
3731
+ "$ref": "#/$defs/threadRenameResult"
3732
+ }
3733
+ },
3734
+ "thread.delete": {
3735
+ "params": {
3736
+ "$ref": "#/$defs/threadDeleteParams"
3737
+ },
3738
+ "result": {
3739
+ "$ref": "#/$defs/threadDeleteResult"
3740
+ }
3741
+ },
3742
+ "thread.detach": {
3743
+ "params": {
3744
+ "$ref": "#/$defs/threadDetachParams"
3745
+ },
3746
+ "result": {
3747
+ "$ref": "#/$defs/threadDetachResult"
3748
+ }
3749
+ },
3750
+ "thread.capabilities": {
3751
+ "params": {
3752
+ "$ref": "#/$defs/threadCapabilitiesParams"
3753
+ },
3754
+ "result": {
3755
+ "$ref": "#/$defs/threadCapabilitiesResult"
3756
+ }
3757
+ },
3758
+ "turn.start": {
3759
+ "params": {
3760
+ "$ref": "#/$defs/turnStartParams"
3761
+ },
3762
+ "result": {
3763
+ "$ref": "#/$defs/turnStartResult"
3764
+ }
3765
+ },
3766
+ "turn.cancel": {
3767
+ "params": {
3768
+ "$ref": "#/$defs/turnCancelParams"
3769
+ },
3770
+ "result": {
3771
+ "$ref": "#/$defs/turnCancelResult"
3772
+ }
3773
+ },
3774
+ "operation.get": {
3775
+ "params": {
3776
+ "$ref": "#/$defs/operationGetParams"
3777
+ },
3778
+ "result": {
3779
+ "$ref": "#/$defs/operationGetResult"
3780
+ }
3781
+ },
3782
+ "interaction.candidate": {
3783
+ "params": {
3784
+ "$ref": "#/$defs/interactionCandidateParams"
3785
+ },
3786
+ "result": {
3787
+ "$ref": "#/$defs/interactionCandidateResult"
3788
+ }
3789
+ }
3790
+ }
3791
+ }