@irogane/kaji 0.2.0-beta.11

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 (136) hide show
  1. package/LICENSE +105 -0
  2. package/README.md +598 -0
  3. package/contracts/README.md +14 -0
  4. package/contracts/beta-core-v1.json +52 -0
  5. package/contracts/cli/init-cases-v1.json +27 -0
  6. package/contracts/errors/error-codes.json +48 -0
  7. package/contracts/errors/integration-recovery-v1.json +127 -0
  8. package/contracts/errors/provider-normalization.json +111 -0
  9. package/contracts/events/conformance-invalid.json +20 -0
  10. package/contracts/events/conformance.json +511 -0
  11. package/contracts/events/new-kaji-event-v1.schema.json +1021 -0
  12. package/contracts/events/stored-kaji-event-v1.schema.json +1025 -0
  13. package/contracts/feature-tiers-v1.json +488 -0
  14. package/contracts/integrations/abi-index-v1.json +8 -0
  15. package/contracts/integrations/conformance-invalid.json +443 -0
  16. package/contracts/integrations/conformance-valid.json +121 -0
  17. package/contracts/integrations/copy-provenance-v1.schema.json +61 -0
  18. package/contracts/integrations/echo-tool-abi-v1.json +37 -0
  19. package/contracts/integrations/github-api-conformance-v1.json +644 -0
  20. package/contracts/integrations/github-tool-abi-typescript-v1.json +369 -0
  21. package/contracts/integrations/github-tool-abi-v1.json +146 -0
  22. package/contracts/integrations/gmail-api-conformance-v1.json +750 -0
  23. package/contracts/integrations/gmail-tool-abi-v1.json +62 -0
  24. package/contracts/integrations/index.schema.json +37 -0
  25. package/contracts/integrations/manifest.schema.json +119 -0
  26. package/contracts/parity/expected-normalized.json +4906 -0
  27. package/contracts/parity/scenarios.json +100 -0
  28. package/contracts/parity/scenarios.schema.json +214 -0
  29. package/contracts/providers/cost-conformance.json +112 -0
  30. package/contracts/release/github-proof-v1.schema.json +138 -0
  31. package/contracts/release/gmail-proof-v1.schema.json +138 -0
  32. package/contracts/release/kaji-ts-consumer-handoff-v1.schema.json +1289 -0
  33. package/contracts/release/publisher-identity-receipt-v1.schema.json +319 -0
  34. package/contracts/release/typescript-onboarding-evidence-v1.schema.json +740 -0
  35. package/contracts/tools/conformance-invalid.json +271 -0
  36. package/contracts/tools/conformance-valid.json +78 -0
  37. package/contracts/tools/tool-schema-v1.schema.json +18 -0
  38. package/dist/anthropic.cjs +1231 -0
  39. package/dist/anthropic.cjs.map +1 -0
  40. package/dist/anthropic.d.cts +26 -0
  41. package/dist/anthropic.d.ts +26 -0
  42. package/dist/anthropic.js +270 -0
  43. package/dist/anthropic.js.map +1 -0
  44. package/dist/auth.cjs +1507 -0
  45. package/dist/auth.cjs.map +1 -0
  46. package/dist/auth.d.cts +129 -0
  47. package/dist/auth.d.ts +129 -0
  48. package/dist/auth.js +1039 -0
  49. package/dist/auth.js.map +1 -0
  50. package/dist/base-B9FRMcP8.d.cts +140 -0
  51. package/dist/base-nHQd1VtS.d.ts +140 -0
  52. package/dist/chunk-AAM33KAO.js +4367 -0
  53. package/dist/chunk-AAM33KAO.js.map +1 -0
  54. package/dist/chunk-KAJ6BM64.js +153 -0
  55. package/dist/chunk-KAJ6BM64.js.map +1 -0
  56. package/dist/chunk-KCAXIOZS.js +308 -0
  57. package/dist/chunk-KCAXIOZS.js.map +1 -0
  58. package/dist/chunk-LSJ4AVO2.js +243 -0
  59. package/dist/chunk-LSJ4AVO2.js.map +1 -0
  60. package/dist/chunk-TM7ZGOJX.js +716 -0
  61. package/dist/chunk-TM7ZGOJX.js.map +1 -0
  62. package/dist/cli/bin.d.ts +2 -0
  63. package/dist/cli/bin.js +13 -0
  64. package/dist/cli/bin.js.map +1 -0
  65. package/dist/cli/chunk-2RCWPRVY.js +6277 -0
  66. package/dist/cli/chunk-2RCWPRVY.js.map +1 -0
  67. package/dist/cli/chunk-SEBX54TR.js +681 -0
  68. package/dist/cli/chunk-SEBX54TR.js.map +1 -0
  69. package/dist/cli/index.d.ts +232 -0
  70. package/dist/cli/index.js +11 -0
  71. package/dist/cli/index.js.map +1 -0
  72. package/dist/cli/init-worker.d.ts +2 -0
  73. package/dist/cli/init-worker.js +18 -0
  74. package/dist/cli/init-worker.js.map +1 -0
  75. package/dist/cli/integration-copy-worker.js +48 -0
  76. package/dist/cli/integration-copy-worker.js.map +1 -0
  77. package/dist/cli/package-entry-cjs.cjs +21 -0
  78. package/dist/cli/package-entry-cjs.cjs.map +1 -0
  79. package/dist/cli/package-entry-cjs.d.cts +2 -0
  80. package/dist/cli/package-entry.d.ts +2 -0
  81. package/dist/cli/package-entry.js +13 -0
  82. package/dist/cli/package-entry.js.map +1 -0
  83. package/dist/context-BaFHrQHv.d.cts +21 -0
  84. package/dist/context-BaFHrQHv.d.ts +21 -0
  85. package/dist/context-C-YPY-GS.d.cts +1538 -0
  86. package/dist/context-C-YPY-GS.d.ts +1538 -0
  87. package/dist/index.cjs +12346 -0
  88. package/dist/index.cjs.map +1 -0
  89. package/dist/index.d.cts +1560 -0
  90. package/dist/index.d.ts +1560 -0
  91. package/dist/index.js +7852 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/integrations/github.cjs +2092 -0
  94. package/dist/integrations/github.cjs.map +1 -0
  95. package/dist/integrations/github.d.cts +21 -0
  96. package/dist/integrations/github.d.ts +21 -0
  97. package/dist/integrations/github.js +2088 -0
  98. package/dist/integrations/github.js.map +1 -0
  99. package/dist/integrations.cjs +3370 -0
  100. package/dist/integrations.cjs.map +1 -0
  101. package/dist/integrations.d.cts +202 -0
  102. package/dist/integrations.d.ts +202 -0
  103. package/dist/integrations.js +2650 -0
  104. package/dist/integrations.js.map +1 -0
  105. package/dist/observability-Cj--OkME.d.cts +96 -0
  106. package/dist/observability-Cj--OkME.d.ts +96 -0
  107. package/dist/openai.cjs +1235 -0
  108. package/dist/openai.cjs.map +1 -0
  109. package/dist/openai.d.cts +32 -0
  110. package/dist/openai.d.ts +32 -0
  111. package/dist/openai.js +272 -0
  112. package/dist/openai.js.map +1 -0
  113. package/dist/testing.cjs +554 -0
  114. package/dist/testing.cjs.map +1 -0
  115. package/dist/testing.d.cts +43 -0
  116. package/dist/testing.d.ts +43 -0
  117. package/dist/testing.js +118 -0
  118. package/dist/testing.js.map +1 -0
  119. package/package.json +188 -0
  120. package/registry/echo/index.ts +53 -0
  121. package/registry/echo/manifest.json +53 -0
  122. package/registry/github/LICENSE +105 -0
  123. package/registry/github/client.ts +1727 -0
  124. package/registry/github/index.ts +263 -0
  125. package/registry/github/manifest.json +227 -0
  126. package/registry/github/owner-fixtures.json +10 -0
  127. package/registry/github/tests/github.test.ts +32 -0
  128. package/registry/gmail/LICENSE +105 -0
  129. package/registry/gmail/client.ts +548 -0
  130. package/registry/gmail/index.ts +165 -0
  131. package/registry/gmail/manifest.json +102 -0
  132. package/registry/gmail/owner-fixtures.json +10 -0
  133. package/registry/gmail/tests/gmail.test.ts +32 -0
  134. package/registry/index.json +21 -0
  135. package/registry/index.schema.json +37 -0
  136. package/registry/schema.json +119 -0
@@ -0,0 +1,4906 @@
1
+ {
2
+ "scenarios": [
3
+ {
4
+ "id": "text-one-turn",
5
+ "snapshot": {
6
+ "events": [
7
+ {
8
+ "id": "event-01",
9
+ "metadata": {},
10
+ "sequence": 1,
11
+ "session_id": "session-text",
12
+ "turn_id": "turn-1",
13
+ "type": "session.created",
14
+ "version": "1.0"
15
+ },
16
+ {
17
+ "content": "hello",
18
+ "id": "event-02",
19
+ "metadata": {},
20
+ "sequence": 2,
21
+ "session_id": "session-text",
22
+ "turn_id": "turn-1",
23
+ "type": "user.message",
24
+ "version": "1.0"
25
+ },
26
+ {
27
+ "id": "event-03",
28
+ "metadata": {},
29
+ "sequence": 3,
30
+ "session_id": "session-text",
31
+ "turn_id": "turn-1",
32
+ "type": "agent.reasoning.started",
33
+ "version": "1.0"
34
+ },
35
+ {
36
+ "delta": "hello back",
37
+ "id": "event-04",
38
+ "metadata": {},
39
+ "sequence": 4,
40
+ "session_id": "session-text",
41
+ "turn_id": "turn-1",
42
+ "type": "agent.message.delta",
43
+ "version": "1.0"
44
+ },
45
+ {
46
+ "content": "hello back",
47
+ "id": "event-05",
48
+ "metadata": {},
49
+ "sequence": 5,
50
+ "session_id": "session-text",
51
+ "turn_id": "turn-1",
52
+ "type": "agent.message.completed",
53
+ "version": "1.0"
54
+ }
55
+ ],
56
+ "operation_trace": ["provider:start:0", "provider:end:0"],
57
+ "provider_requests": [
58
+ {
59
+ "messages": [
60
+ { "content": "You are a helpful assistant.", "role": "system" },
61
+ { "content": "hello", "role": "user" }
62
+ ],
63
+ "tools": []
64
+ }
65
+ ],
66
+ "provider_responses": [{ "content": "hello back", "tool_calls": [] }],
67
+ "replay": {},
68
+ "result": {
69
+ "turns": [{ "session_id": "session-text", "text": "hello back", "turn_id": "turn-1" }]
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "id": "text-multi-turn",
75
+ "snapshot": {
76
+ "events": [
77
+ {
78
+ "id": "event-01",
79
+ "metadata": {},
80
+ "sequence": 1,
81
+ "session_id": "session-multi",
82
+ "turn_id": "turn-1",
83
+ "type": "session.created",
84
+ "version": "1.0"
85
+ },
86
+ {
87
+ "content": "first",
88
+ "id": "event-02",
89
+ "metadata": {},
90
+ "sequence": 2,
91
+ "session_id": "session-multi",
92
+ "turn_id": "turn-1",
93
+ "type": "user.message",
94
+ "version": "1.0"
95
+ },
96
+ {
97
+ "id": "event-03",
98
+ "metadata": {},
99
+ "sequence": 3,
100
+ "session_id": "session-multi",
101
+ "turn_id": "turn-1",
102
+ "type": "agent.reasoning.started",
103
+ "version": "1.0"
104
+ },
105
+ {
106
+ "delta": "first reply",
107
+ "id": "event-04",
108
+ "metadata": {},
109
+ "sequence": 4,
110
+ "session_id": "session-multi",
111
+ "turn_id": "turn-1",
112
+ "type": "agent.message.delta",
113
+ "version": "1.0"
114
+ },
115
+ {
116
+ "content": "first reply",
117
+ "id": "event-05",
118
+ "metadata": {},
119
+ "sequence": 5,
120
+ "session_id": "session-multi",
121
+ "turn_id": "turn-1",
122
+ "type": "agent.message.completed",
123
+ "version": "1.0"
124
+ },
125
+ {
126
+ "content": "second",
127
+ "id": "event-06",
128
+ "metadata": {},
129
+ "sequence": 6,
130
+ "session_id": "session-multi",
131
+ "turn_id": "turn-2",
132
+ "type": "user.message",
133
+ "version": "1.0"
134
+ },
135
+ {
136
+ "id": "event-07",
137
+ "metadata": {},
138
+ "sequence": 7,
139
+ "session_id": "session-multi",
140
+ "turn_id": "turn-2",
141
+ "type": "agent.reasoning.started",
142
+ "version": "1.0"
143
+ },
144
+ {
145
+ "delta": "second reply",
146
+ "id": "event-08",
147
+ "metadata": {},
148
+ "sequence": 8,
149
+ "session_id": "session-multi",
150
+ "turn_id": "turn-2",
151
+ "type": "agent.message.delta",
152
+ "version": "1.0"
153
+ },
154
+ {
155
+ "content": "second reply",
156
+ "id": "event-09",
157
+ "metadata": {},
158
+ "sequence": 9,
159
+ "session_id": "session-multi",
160
+ "turn_id": "turn-2",
161
+ "type": "agent.message.completed",
162
+ "version": "1.0"
163
+ }
164
+ ],
165
+ "operation_trace": [
166
+ "provider:start:0",
167
+ "provider:end:0",
168
+ "provider:start:1",
169
+ "provider:end:1"
170
+ ],
171
+ "provider_requests": [
172
+ {
173
+ "messages": [
174
+ { "content": "You are a helpful assistant.", "role": "system" },
175
+ { "content": "first", "role": "user" }
176
+ ],
177
+ "tools": []
178
+ },
179
+ {
180
+ "messages": [
181
+ { "content": "You are a helpful assistant.", "role": "system" },
182
+ { "content": "first", "role": "user" },
183
+ { "content": "first reply", "role": "assistant" },
184
+ { "content": "second", "role": "user" }
185
+ ],
186
+ "tools": []
187
+ }
188
+ ],
189
+ "provider_responses": [
190
+ { "content": "first reply", "tool_calls": [] },
191
+ { "content": "second reply", "tool_calls": [] }
192
+ ],
193
+ "replay": {},
194
+ "result": {
195
+ "turns": [
196
+ { "session_id": "session-multi", "text": "first reply", "turn_id": "turn-1" },
197
+ { "session_id": "session-multi", "text": "second reply", "turn_id": "turn-2" }
198
+ ]
199
+ }
200
+ }
201
+ },
202
+ {
203
+ "id": "one-tool",
204
+ "snapshot": {
205
+ "events": [
206
+ {
207
+ "id": "event-01",
208
+ "metadata": {},
209
+ "sequence": 1,
210
+ "session_id": "session-tool",
211
+ "turn_id": "turn-1",
212
+ "type": "session.created",
213
+ "version": "1.0"
214
+ },
215
+ {
216
+ "content": "use echo",
217
+ "id": "event-02",
218
+ "metadata": {},
219
+ "sequence": 2,
220
+ "session_id": "session-tool",
221
+ "turn_id": "turn-1",
222
+ "type": "user.message",
223
+ "version": "1.0"
224
+ },
225
+ {
226
+ "id": "event-03",
227
+ "metadata": {},
228
+ "sequence": 3,
229
+ "session_id": "session-tool",
230
+ "turn_id": "turn-1",
231
+ "type": "agent.reasoning.started",
232
+ "version": "1.0"
233
+ },
234
+ {
235
+ "id": "event-04",
236
+ "metadata": {},
237
+ "sequence": 4,
238
+ "session_id": "session-tool",
239
+ "tool_args": { "value": 1 },
240
+ "tool_call_id": "call-1",
241
+ "tool_name": "fixture_tool",
242
+ "turn_id": "turn-1",
243
+ "type": "tool.call.requested",
244
+ "version": "1.0"
245
+ },
246
+ {
247
+ "id": "event-05",
248
+ "metadata": {},
249
+ "sequence": 5,
250
+ "session_id": "session-tool",
251
+ "tool_call_id": "call-1",
252
+ "tool_name": "fixture_tool",
253
+ "turn_id": "turn-1",
254
+ "type": "tool.call.started",
255
+ "version": "1.0"
256
+ },
257
+ {
258
+ "id": "event-06",
259
+ "metadata": {},
260
+ "result": { "arguments": { "value": 1 }, "tool": "fixture_tool" },
261
+ "sequence": 6,
262
+ "session_id": "session-tool",
263
+ "tool_call_id": "call-1",
264
+ "tool_name": "fixture_tool",
265
+ "turn_id": "turn-1",
266
+ "type": "tool.call.completed",
267
+ "version": "1.0"
268
+ },
269
+ {
270
+ "id": "event-07",
271
+ "metadata": {},
272
+ "sequence": 7,
273
+ "session_id": "session-tool",
274
+ "turn_id": "turn-1",
275
+ "type": "agent.reasoning.started",
276
+ "version": "1.0"
277
+ },
278
+ {
279
+ "delta": "tool done",
280
+ "id": "event-08",
281
+ "metadata": {},
282
+ "sequence": 8,
283
+ "session_id": "session-tool",
284
+ "turn_id": "turn-1",
285
+ "type": "agent.message.delta",
286
+ "version": "1.0"
287
+ },
288
+ {
289
+ "content": "tool done",
290
+ "id": "event-09",
291
+ "metadata": {},
292
+ "sequence": 9,
293
+ "session_id": "session-tool",
294
+ "turn_id": "turn-1",
295
+ "type": "agent.message.completed",
296
+ "version": "1.0"
297
+ }
298
+ ],
299
+ "operation_trace": [
300
+ "provider:start:0",
301
+ "provider:end:0",
302
+ "tool:start:fixture",
303
+ "tool:end:fixture",
304
+ "provider:start:1",
305
+ "provider:end:1"
306
+ ],
307
+ "provider_requests": [
308
+ {
309
+ "messages": [
310
+ { "content": "You are a helpful assistant.", "role": "system" },
311
+ { "content": "use echo", "role": "user" }
312
+ ],
313
+ "tools": [
314
+ {
315
+ "description": "fixture tool",
316
+ "name": "fixture_tool",
317
+ "parameters": {
318
+ "additionalProperties": false,
319
+ "properties": { "value": { "type": "integer" } },
320
+ "type": "object"
321
+ }
322
+ }
323
+ ]
324
+ },
325
+ {
326
+ "messages": [
327
+ { "content": "You are a helpful assistant.", "role": "system" },
328
+ { "content": "use echo", "role": "user" },
329
+ {
330
+ "content": "",
331
+ "role": "assistant",
332
+ "tool_calls": [
333
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
334
+ ]
335
+ },
336
+ {
337
+ "content": "{\"arguments\":{\"value\":1},\"tool\":\"fixture_tool\"}",
338
+ "name": "fixture_tool",
339
+ "role": "tool",
340
+ "tool_call_id": "call-1"
341
+ }
342
+ ],
343
+ "tools": [
344
+ {
345
+ "description": "fixture tool",
346
+ "name": "fixture_tool",
347
+ "parameters": {
348
+ "additionalProperties": false,
349
+ "properties": { "value": { "type": "integer" } },
350
+ "type": "object"
351
+ }
352
+ }
353
+ ]
354
+ }
355
+ ],
356
+ "provider_responses": [
357
+ {
358
+ "content": "",
359
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
360
+ },
361
+ { "content": "tool done", "tool_calls": [] }
362
+ ],
363
+ "replay": {},
364
+ "result": {
365
+ "turns": [{ "session_id": "session-tool", "text": "tool done", "turn_id": "turn-1" }]
366
+ }
367
+ }
368
+ },
369
+ {
370
+ "id": "parallel-tools-reverse",
371
+ "snapshot": {
372
+ "events": [
373
+ {
374
+ "id": "event-01",
375
+ "metadata": {},
376
+ "sequence": 1,
377
+ "session_id": "session-parallel",
378
+ "turn_id": "turn-1",
379
+ "type": "session.created",
380
+ "version": "1.0"
381
+ },
382
+ {
383
+ "content": "run both",
384
+ "id": "event-02",
385
+ "metadata": {},
386
+ "sequence": 2,
387
+ "session_id": "session-parallel",
388
+ "turn_id": "turn-1",
389
+ "type": "user.message",
390
+ "version": "1.0"
391
+ },
392
+ {
393
+ "id": "event-03",
394
+ "metadata": {},
395
+ "sequence": 3,
396
+ "session_id": "session-parallel",
397
+ "turn_id": "turn-1",
398
+ "type": "agent.reasoning.started",
399
+ "version": "1.0"
400
+ },
401
+ {
402
+ "id": "event-04",
403
+ "metadata": {},
404
+ "sequence": 4,
405
+ "session_id": "session-parallel",
406
+ "tool_args": {},
407
+ "tool_call_id": "call-first",
408
+ "tool_name": "first_tool",
409
+ "turn_id": "turn-1",
410
+ "type": "tool.call.requested",
411
+ "version": "1.0"
412
+ },
413
+ {
414
+ "id": "event-05",
415
+ "metadata": {},
416
+ "sequence": 5,
417
+ "session_id": "session-parallel",
418
+ "tool_args": {},
419
+ "tool_call_id": "call-second",
420
+ "tool_name": "second_tool",
421
+ "turn_id": "turn-1",
422
+ "type": "tool.call.requested",
423
+ "version": "1.0"
424
+ },
425
+ {
426
+ "id": "event-06",
427
+ "metadata": {},
428
+ "sequence": 6,
429
+ "session_id": "session-parallel",
430
+ "tool_call_id": "call-first",
431
+ "tool_name": "first_tool",
432
+ "turn_id": "turn-1",
433
+ "type": "tool.call.started",
434
+ "version": "1.0"
435
+ },
436
+ {
437
+ "id": "event-07",
438
+ "metadata": {},
439
+ "sequence": 7,
440
+ "session_id": "session-parallel",
441
+ "tool_call_id": "call-second",
442
+ "tool_name": "second_tool",
443
+ "turn_id": "turn-1",
444
+ "type": "tool.call.started",
445
+ "version": "1.0"
446
+ },
447
+ {
448
+ "id": "event-08",
449
+ "metadata": {},
450
+ "result": { "arguments": {}, "tool": "first_tool" },
451
+ "sequence": 8,
452
+ "session_id": "session-parallel",
453
+ "tool_call_id": "call-first",
454
+ "tool_name": "first_tool",
455
+ "turn_id": "turn-1",
456
+ "type": "tool.call.completed",
457
+ "version": "1.0"
458
+ },
459
+ {
460
+ "id": "event-09",
461
+ "metadata": {},
462
+ "result": { "arguments": {}, "tool": "second_tool" },
463
+ "sequence": 9,
464
+ "session_id": "session-parallel",
465
+ "tool_call_id": "call-second",
466
+ "tool_name": "second_tool",
467
+ "turn_id": "turn-1",
468
+ "type": "tool.call.completed",
469
+ "version": "1.0"
470
+ },
471
+ {
472
+ "id": "event-10",
473
+ "metadata": {},
474
+ "sequence": 10,
475
+ "session_id": "session-parallel",
476
+ "turn_id": "turn-1",
477
+ "type": "agent.reasoning.started",
478
+ "version": "1.0"
479
+ },
480
+ {
481
+ "delta": "tools done",
482
+ "id": "event-11",
483
+ "metadata": {},
484
+ "sequence": 11,
485
+ "session_id": "session-parallel",
486
+ "turn_id": "turn-1",
487
+ "type": "agent.message.delta",
488
+ "version": "1.0"
489
+ },
490
+ {
491
+ "content": "tools done",
492
+ "id": "event-12",
493
+ "metadata": {},
494
+ "sequence": 12,
495
+ "session_id": "session-parallel",
496
+ "turn_id": "turn-1",
497
+ "type": "agent.message.completed",
498
+ "version": "1.0"
499
+ }
500
+ ],
501
+ "operation_trace": [
502
+ "provider:start:0",
503
+ "provider:end:0",
504
+ "tool:start:first",
505
+ "tool:start:second",
506
+ "tool:end:second",
507
+ "tool:end:first",
508
+ "provider:start:1",
509
+ "provider:end:1"
510
+ ],
511
+ "provider_requests": [
512
+ {
513
+ "messages": [
514
+ { "content": "You are a helpful assistant.", "role": "system" },
515
+ { "content": "run both", "role": "user" }
516
+ ],
517
+ "tools": [
518
+ {
519
+ "description": "fixture tool",
520
+ "name": "first_tool",
521
+ "parameters": {
522
+ "additionalProperties": false,
523
+ "properties": { "value": { "type": "integer" } },
524
+ "type": "object"
525
+ }
526
+ },
527
+ {
528
+ "description": "fixture tool",
529
+ "name": "second_tool",
530
+ "parameters": {
531
+ "additionalProperties": false,
532
+ "properties": { "value": { "type": "integer" } },
533
+ "type": "object"
534
+ }
535
+ }
536
+ ]
537
+ },
538
+ {
539
+ "messages": [
540
+ { "content": "You are a helpful assistant.", "role": "system" },
541
+ { "content": "run both", "role": "user" },
542
+ {
543
+ "content": "",
544
+ "role": "assistant",
545
+ "tool_calls": [
546
+ { "arguments": {}, "id": "call-first", "name": "first_tool" },
547
+ { "arguments": {}, "id": "call-second", "name": "second_tool" }
548
+ ]
549
+ },
550
+ {
551
+ "content": "{\"arguments\":{},\"tool\":\"first_tool\"}",
552
+ "name": "first_tool",
553
+ "role": "tool",
554
+ "tool_call_id": "call-first"
555
+ },
556
+ {
557
+ "content": "{\"arguments\":{},\"tool\":\"second_tool\"}",
558
+ "name": "second_tool",
559
+ "role": "tool",
560
+ "tool_call_id": "call-second"
561
+ }
562
+ ],
563
+ "tools": [
564
+ {
565
+ "description": "fixture tool",
566
+ "name": "first_tool",
567
+ "parameters": {
568
+ "additionalProperties": false,
569
+ "properties": { "value": { "type": "integer" } },
570
+ "type": "object"
571
+ }
572
+ },
573
+ {
574
+ "description": "fixture tool",
575
+ "name": "second_tool",
576
+ "parameters": {
577
+ "additionalProperties": false,
578
+ "properties": { "value": { "type": "integer" } },
579
+ "type": "object"
580
+ }
581
+ }
582
+ ]
583
+ }
584
+ ],
585
+ "provider_responses": [
586
+ {
587
+ "content": "",
588
+ "tool_calls": [
589
+ { "arguments": {}, "id": "call-first", "name": "first_tool" },
590
+ { "arguments": {}, "id": "call-second", "name": "second_tool" }
591
+ ]
592
+ },
593
+ { "content": "tools done", "tool_calls": [] }
594
+ ],
595
+ "replay": {},
596
+ "result": {
597
+ "turns": [{ "session_id": "session-parallel", "text": "tools done", "turn_id": "turn-1" }]
598
+ }
599
+ }
600
+ },
601
+ {
602
+ "id": "sequential-tools",
603
+ "snapshot": {
604
+ "events": [
605
+ {
606
+ "id": "event-01",
607
+ "metadata": {},
608
+ "sequence": 1,
609
+ "session_id": "session-sequential",
610
+ "turn_id": "turn-1",
611
+ "type": "session.created",
612
+ "version": "1.0"
613
+ },
614
+ {
615
+ "content": "run both",
616
+ "id": "event-02",
617
+ "metadata": {},
618
+ "sequence": 2,
619
+ "session_id": "session-sequential",
620
+ "turn_id": "turn-1",
621
+ "type": "user.message",
622
+ "version": "1.0"
623
+ },
624
+ {
625
+ "id": "event-03",
626
+ "metadata": {},
627
+ "sequence": 3,
628
+ "session_id": "session-sequential",
629
+ "turn_id": "turn-1",
630
+ "type": "agent.reasoning.started",
631
+ "version": "1.0"
632
+ },
633
+ {
634
+ "id": "event-04",
635
+ "metadata": {},
636
+ "sequence": 4,
637
+ "session_id": "session-sequential",
638
+ "tool_args": {},
639
+ "tool_call_id": "call-first",
640
+ "tool_name": "first_tool",
641
+ "turn_id": "turn-1",
642
+ "type": "tool.call.requested",
643
+ "version": "1.0"
644
+ },
645
+ {
646
+ "id": "event-05",
647
+ "metadata": {},
648
+ "sequence": 5,
649
+ "session_id": "session-sequential",
650
+ "tool_args": {},
651
+ "tool_call_id": "call-second",
652
+ "tool_name": "second_tool",
653
+ "turn_id": "turn-1",
654
+ "type": "tool.call.requested",
655
+ "version": "1.0"
656
+ },
657
+ {
658
+ "id": "event-06",
659
+ "metadata": {},
660
+ "sequence": 6,
661
+ "session_id": "session-sequential",
662
+ "tool_call_id": "call-first",
663
+ "tool_name": "first_tool",
664
+ "turn_id": "turn-1",
665
+ "type": "tool.call.started",
666
+ "version": "1.0"
667
+ },
668
+ {
669
+ "id": "event-07",
670
+ "metadata": {},
671
+ "sequence": 7,
672
+ "session_id": "session-sequential",
673
+ "tool_call_id": "call-second",
674
+ "tool_name": "second_tool",
675
+ "turn_id": "turn-1",
676
+ "type": "tool.call.started",
677
+ "version": "1.0"
678
+ },
679
+ {
680
+ "id": "event-08",
681
+ "metadata": {},
682
+ "result": { "arguments": {}, "tool": "first_tool" },
683
+ "sequence": 8,
684
+ "session_id": "session-sequential",
685
+ "tool_call_id": "call-first",
686
+ "tool_name": "first_tool",
687
+ "turn_id": "turn-1",
688
+ "type": "tool.call.completed",
689
+ "version": "1.0"
690
+ },
691
+ {
692
+ "id": "event-09",
693
+ "metadata": {},
694
+ "result": { "arguments": {}, "tool": "second_tool" },
695
+ "sequence": 9,
696
+ "session_id": "session-sequential",
697
+ "tool_call_id": "call-second",
698
+ "tool_name": "second_tool",
699
+ "turn_id": "turn-1",
700
+ "type": "tool.call.completed",
701
+ "version": "1.0"
702
+ },
703
+ {
704
+ "id": "event-10",
705
+ "metadata": {},
706
+ "sequence": 10,
707
+ "session_id": "session-sequential",
708
+ "turn_id": "turn-1",
709
+ "type": "agent.reasoning.started",
710
+ "version": "1.0"
711
+ },
712
+ {
713
+ "delta": "tools done",
714
+ "id": "event-11",
715
+ "metadata": {},
716
+ "sequence": 11,
717
+ "session_id": "session-sequential",
718
+ "turn_id": "turn-1",
719
+ "type": "agent.message.delta",
720
+ "version": "1.0"
721
+ },
722
+ {
723
+ "content": "tools done",
724
+ "id": "event-12",
725
+ "metadata": {},
726
+ "sequence": 12,
727
+ "session_id": "session-sequential",
728
+ "turn_id": "turn-1",
729
+ "type": "agent.message.completed",
730
+ "version": "1.0"
731
+ }
732
+ ],
733
+ "operation_trace": [
734
+ "provider:start:0",
735
+ "provider:end:0",
736
+ "tool:start:first",
737
+ "tool:end:first",
738
+ "tool:start:second",
739
+ "tool:end:second",
740
+ "provider:start:1",
741
+ "provider:end:1"
742
+ ],
743
+ "provider_requests": [
744
+ {
745
+ "messages": [
746
+ { "content": "You are a helpful assistant.", "role": "system" },
747
+ { "content": "run both", "role": "user" }
748
+ ],
749
+ "tools": [
750
+ {
751
+ "description": "fixture tool",
752
+ "name": "first_tool",
753
+ "parameters": {
754
+ "additionalProperties": false,
755
+ "properties": { "value": { "type": "integer" } },
756
+ "type": "object"
757
+ }
758
+ },
759
+ {
760
+ "description": "fixture tool",
761
+ "name": "second_tool",
762
+ "parameters": {
763
+ "additionalProperties": false,
764
+ "properties": { "value": { "type": "integer" } },
765
+ "type": "object"
766
+ }
767
+ }
768
+ ]
769
+ },
770
+ {
771
+ "messages": [
772
+ { "content": "You are a helpful assistant.", "role": "system" },
773
+ { "content": "run both", "role": "user" },
774
+ {
775
+ "content": "",
776
+ "role": "assistant",
777
+ "tool_calls": [
778
+ { "arguments": {}, "id": "call-first", "name": "first_tool" },
779
+ { "arguments": {}, "id": "call-second", "name": "second_tool" }
780
+ ]
781
+ },
782
+ {
783
+ "content": "{\"arguments\":{},\"tool\":\"first_tool\"}",
784
+ "name": "first_tool",
785
+ "role": "tool",
786
+ "tool_call_id": "call-first"
787
+ },
788
+ {
789
+ "content": "{\"arguments\":{},\"tool\":\"second_tool\"}",
790
+ "name": "second_tool",
791
+ "role": "tool",
792
+ "tool_call_id": "call-second"
793
+ }
794
+ ],
795
+ "tools": [
796
+ {
797
+ "description": "fixture tool",
798
+ "name": "first_tool",
799
+ "parameters": {
800
+ "additionalProperties": false,
801
+ "properties": { "value": { "type": "integer" } },
802
+ "type": "object"
803
+ }
804
+ },
805
+ {
806
+ "description": "fixture tool",
807
+ "name": "second_tool",
808
+ "parameters": {
809
+ "additionalProperties": false,
810
+ "properties": { "value": { "type": "integer" } },
811
+ "type": "object"
812
+ }
813
+ }
814
+ ]
815
+ }
816
+ ],
817
+ "provider_responses": [
818
+ {
819
+ "content": "",
820
+ "tool_calls": [
821
+ { "arguments": {}, "id": "call-first", "name": "first_tool" },
822
+ { "arguments": {}, "id": "call-second", "name": "second_tool" }
823
+ ]
824
+ },
825
+ { "content": "tools done", "tool_calls": [] }
826
+ ],
827
+ "replay": {},
828
+ "result": {
829
+ "turns": [
830
+ { "session_id": "session-sequential", "text": "tools done", "turn_id": "turn-1" }
831
+ ]
832
+ }
833
+ }
834
+ },
835
+ {
836
+ "id": "max-iteration-exhaustion",
837
+ "snapshot": {
838
+ "events": [
839
+ {
840
+ "id": "event-01",
841
+ "metadata": {},
842
+ "sequence": 1,
843
+ "session_id": "session-exhausted",
844
+ "turn_id": "turn-1",
845
+ "type": "session.created",
846
+ "version": "1.0"
847
+ },
848
+ {
849
+ "content": "keep calling",
850
+ "id": "event-02",
851
+ "metadata": {},
852
+ "sequence": 2,
853
+ "session_id": "session-exhausted",
854
+ "turn_id": "turn-1",
855
+ "type": "user.message",
856
+ "version": "1.0"
857
+ },
858
+ {
859
+ "id": "event-03",
860
+ "metadata": {},
861
+ "sequence": 3,
862
+ "session_id": "session-exhausted",
863
+ "turn_id": "turn-1",
864
+ "type": "agent.reasoning.started",
865
+ "version": "1.0"
866
+ },
867
+ {
868
+ "id": "event-04",
869
+ "metadata": {},
870
+ "sequence": 4,
871
+ "session_id": "session-exhausted",
872
+ "tool_args": { "value": 1 },
873
+ "tool_call_id": "call-1",
874
+ "tool_name": "fixture_tool",
875
+ "turn_id": "turn-1",
876
+ "type": "tool.call.requested",
877
+ "version": "1.0"
878
+ },
879
+ {
880
+ "id": "event-05",
881
+ "metadata": {},
882
+ "sequence": 5,
883
+ "session_id": "session-exhausted",
884
+ "tool_call_id": "call-1",
885
+ "tool_name": "fixture_tool",
886
+ "turn_id": "turn-1",
887
+ "type": "tool.call.started",
888
+ "version": "1.0"
889
+ },
890
+ {
891
+ "id": "event-06",
892
+ "metadata": {},
893
+ "result": { "arguments": { "value": 1 }, "tool": "fixture_tool" },
894
+ "sequence": 6,
895
+ "session_id": "session-exhausted",
896
+ "tool_call_id": "call-1",
897
+ "tool_name": "fixture_tool",
898
+ "turn_id": "turn-1",
899
+ "type": "tool.call.completed",
900
+ "version": "1.0"
901
+ },
902
+ {
903
+ "id": "event-07",
904
+ "metadata": {},
905
+ "sequence": 7,
906
+ "session_id": "session-exhausted",
907
+ "turn_id": "turn-1",
908
+ "type": "agent.reasoning.started",
909
+ "version": "1.0"
910
+ },
911
+ {
912
+ "id": "event-08",
913
+ "metadata": {},
914
+ "sequence": 8,
915
+ "session_id": "session-exhausted",
916
+ "tool_args": { "value": 2 },
917
+ "tool_call_id": "call-2",
918
+ "tool_name": "fixture_tool",
919
+ "turn_id": "turn-1",
920
+ "type": "tool.call.requested",
921
+ "version": "1.0"
922
+ },
923
+ {
924
+ "id": "event-09",
925
+ "metadata": {},
926
+ "sequence": 9,
927
+ "session_id": "session-exhausted",
928
+ "tool_call_id": "call-2",
929
+ "tool_name": "fixture_tool",
930
+ "turn_id": "turn-1",
931
+ "type": "tool.call.started",
932
+ "version": "1.0"
933
+ },
934
+ {
935
+ "id": "event-10",
936
+ "metadata": {},
937
+ "result": { "arguments": { "value": 2 }, "tool": "fixture_tool" },
938
+ "sequence": 10,
939
+ "session_id": "session-exhausted",
940
+ "tool_call_id": "call-2",
941
+ "tool_name": "fixture_tool",
942
+ "turn_id": "turn-1",
943
+ "type": "tool.call.completed",
944
+ "version": "1.0"
945
+ },
946
+ {
947
+ "id": "event-11",
948
+ "max_iterations": 2,
949
+ "metadata": {},
950
+ "pending_tool_calls": [
951
+ { "arguments": { "value": 2 }, "id": "call-2", "name": "fixture_tool" }
952
+ ],
953
+ "reason": "max_iterations",
954
+ "sequence": 11,
955
+ "session_id": "session-exhausted",
956
+ "turn_id": "turn-1",
957
+ "type": "agent.turn.exhausted",
958
+ "version": "1.0"
959
+ }
960
+ ],
961
+ "operation_trace": [
962
+ "provider:start:0",
963
+ "provider:end:0",
964
+ "tool:start:fixture",
965
+ "tool:end:fixture",
966
+ "provider:start:1",
967
+ "provider:end:1",
968
+ "tool:start:fixture",
969
+ "tool:end:fixture"
970
+ ],
971
+ "provider_requests": [
972
+ {
973
+ "messages": [
974
+ { "content": "You are a helpful assistant.", "role": "system" },
975
+ { "content": "keep calling", "role": "user" }
976
+ ],
977
+ "tools": [
978
+ {
979
+ "description": "fixture tool",
980
+ "name": "fixture_tool",
981
+ "parameters": {
982
+ "additionalProperties": false,
983
+ "properties": { "value": { "type": "integer" } },
984
+ "type": "object"
985
+ }
986
+ }
987
+ ]
988
+ },
989
+ {
990
+ "messages": [
991
+ { "content": "You are a helpful assistant.", "role": "system" },
992
+ { "content": "keep calling", "role": "user" },
993
+ {
994
+ "content": "",
995
+ "role": "assistant",
996
+ "tool_calls": [
997
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
998
+ ]
999
+ },
1000
+ {
1001
+ "content": "{\"arguments\":{\"value\":1},\"tool\":\"fixture_tool\"}",
1002
+ "name": "fixture_tool",
1003
+ "role": "tool",
1004
+ "tool_call_id": "call-1"
1005
+ }
1006
+ ],
1007
+ "tools": [
1008
+ {
1009
+ "description": "fixture tool",
1010
+ "name": "fixture_tool",
1011
+ "parameters": {
1012
+ "additionalProperties": false,
1013
+ "properties": { "value": { "type": "integer" } },
1014
+ "type": "object"
1015
+ }
1016
+ }
1017
+ ]
1018
+ }
1019
+ ],
1020
+ "provider_responses": [
1021
+ {
1022
+ "content": "",
1023
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1024
+ },
1025
+ {
1026
+ "content": "",
1027
+ "tool_calls": [{ "arguments": { "value": 2 }, "id": "call-2", "name": "fixture_tool" }]
1028
+ }
1029
+ ],
1030
+ "replay": {},
1031
+ "result": {
1032
+ "turns": [{ "session_id": "session-exhausted", "text": "", "turn_id": "turn-1" }]
1033
+ }
1034
+ }
1035
+ },
1036
+ {
1037
+ "id": "policy-deny",
1038
+ "snapshot": {
1039
+ "events": [
1040
+ {
1041
+ "id": "event-01",
1042
+ "metadata": {},
1043
+ "sequence": 1,
1044
+ "session_id": "session-deny",
1045
+ "turn_id": "turn-1",
1046
+ "type": "session.created",
1047
+ "version": "1.0"
1048
+ },
1049
+ {
1050
+ "content": "denied",
1051
+ "id": "event-02",
1052
+ "metadata": {},
1053
+ "sequence": 2,
1054
+ "session_id": "session-deny",
1055
+ "turn_id": "turn-1",
1056
+ "type": "user.message",
1057
+ "version": "1.0"
1058
+ },
1059
+ {
1060
+ "id": "event-03",
1061
+ "metadata": {},
1062
+ "sequence": 3,
1063
+ "session_id": "session-deny",
1064
+ "turn_id": "turn-1",
1065
+ "type": "agent.reasoning.started",
1066
+ "version": "1.0"
1067
+ },
1068
+ {
1069
+ "id": "event-04",
1070
+ "metadata": {},
1071
+ "sequence": 4,
1072
+ "session_id": "session-deny",
1073
+ "tool_args": { "value": 1 },
1074
+ "tool_call_id": "call-1",
1075
+ "tool_name": "fixture_tool",
1076
+ "turn_id": "turn-1",
1077
+ "type": "tool.call.requested",
1078
+ "version": "1.0"
1079
+ },
1080
+ {
1081
+ "error": "Tool not permitted",
1082
+ "error_code": "TOOL_NOT_ALLOWED",
1083
+ "id": "event-05",
1084
+ "metadata": {},
1085
+ "outcome": "not_started",
1086
+ "retryable": false,
1087
+ "sequence": 5,
1088
+ "session_id": "session-deny",
1089
+ "tool_call_id": "call-1",
1090
+ "tool_name": "fixture_tool",
1091
+ "turn_id": "turn-1",
1092
+ "type": "tool.call.failed",
1093
+ "version": "1.0"
1094
+ },
1095
+ {
1096
+ "id": "event-06",
1097
+ "metadata": {},
1098
+ "sequence": 6,
1099
+ "session_id": "session-deny",
1100
+ "turn_id": "turn-1",
1101
+ "type": "agent.reasoning.started",
1102
+ "version": "1.0"
1103
+ },
1104
+ {
1105
+ "delta": "handled",
1106
+ "id": "event-07",
1107
+ "metadata": {},
1108
+ "sequence": 7,
1109
+ "session_id": "session-deny",
1110
+ "turn_id": "turn-1",
1111
+ "type": "agent.message.delta",
1112
+ "version": "1.0"
1113
+ },
1114
+ {
1115
+ "content": "handled",
1116
+ "id": "event-08",
1117
+ "metadata": {},
1118
+ "sequence": 8,
1119
+ "session_id": "session-deny",
1120
+ "turn_id": "turn-1",
1121
+ "type": "agent.message.completed",
1122
+ "version": "1.0"
1123
+ }
1124
+ ],
1125
+ "operation_trace": [
1126
+ "provider:start:0",
1127
+ "provider:end:0",
1128
+ "provider:start:1",
1129
+ "provider:end:1"
1130
+ ],
1131
+ "provider_requests": [
1132
+ {
1133
+ "messages": [
1134
+ { "content": "You are a helpful assistant.", "role": "system" },
1135
+ { "content": "denied", "role": "user" }
1136
+ ],
1137
+ "tools": [
1138
+ {
1139
+ "description": "fixture tool",
1140
+ "name": "fixture_tool",
1141
+ "parameters": {
1142
+ "additionalProperties": false,
1143
+ "properties": { "value": { "type": "integer" } },
1144
+ "type": "object"
1145
+ }
1146
+ }
1147
+ ]
1148
+ },
1149
+ {
1150
+ "messages": [
1151
+ { "content": "You are a helpful assistant.", "role": "system" },
1152
+ { "content": "denied", "role": "user" },
1153
+ {
1154
+ "content": "",
1155
+ "role": "assistant",
1156
+ "tool_calls": [
1157
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
1158
+ ]
1159
+ },
1160
+ {
1161
+ "content": "Error: Tool not permitted",
1162
+ "name": "fixture_tool",
1163
+ "role": "tool",
1164
+ "tool_call_id": "call-1"
1165
+ }
1166
+ ],
1167
+ "tools": [
1168
+ {
1169
+ "description": "fixture tool",
1170
+ "name": "fixture_tool",
1171
+ "parameters": {
1172
+ "additionalProperties": false,
1173
+ "properties": { "value": { "type": "integer" } },
1174
+ "type": "object"
1175
+ }
1176
+ }
1177
+ ]
1178
+ }
1179
+ ],
1180
+ "provider_responses": [
1181
+ {
1182
+ "content": "",
1183
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1184
+ },
1185
+ { "content": "handled", "tool_calls": [] }
1186
+ ],
1187
+ "replay": {},
1188
+ "result": {
1189
+ "turns": [{ "session_id": "session-deny", "text": "handled", "turn_id": "turn-1" }]
1190
+ }
1191
+ }
1192
+ },
1193
+ {
1194
+ "id": "missing-risk",
1195
+ "snapshot": {
1196
+ "events": [],
1197
+ "operation_trace": [],
1198
+ "provider_requests": [],
1199
+ "provider_responses": [],
1200
+ "replay": {},
1201
+ "result": {
1202
+ "error": {
1203
+ "code": "UNCLASSIFIED_TOOL_RISK",
1204
+ "message": "Enabled tools require an explicit risk classification",
1205
+ "outcome": "not_started",
1206
+ "path": "/risk",
1207
+ "retryable": false
1208
+ }
1209
+ }
1210
+ }
1211
+ },
1212
+ {
1213
+ "id": "approval-reject",
1214
+ "snapshot": {
1215
+ "events": [
1216
+ {
1217
+ "id": "event-01",
1218
+ "metadata": {},
1219
+ "sequence": 1,
1220
+ "session_id": "session-approval-reject",
1221
+ "turn_id": "turn-1",
1222
+ "type": "session.created",
1223
+ "version": "1.0"
1224
+ },
1225
+ {
1226
+ "content": "write",
1227
+ "id": "event-02",
1228
+ "metadata": {},
1229
+ "sequence": 2,
1230
+ "session_id": "session-approval-reject",
1231
+ "turn_id": "turn-1",
1232
+ "type": "user.message",
1233
+ "version": "1.0"
1234
+ },
1235
+ {
1236
+ "id": "event-03",
1237
+ "metadata": {},
1238
+ "sequence": 3,
1239
+ "session_id": "session-approval-reject",
1240
+ "turn_id": "turn-1",
1241
+ "type": "agent.reasoning.started",
1242
+ "version": "1.0"
1243
+ },
1244
+ {
1245
+ "id": "event-04",
1246
+ "metadata": {},
1247
+ "sequence": 4,
1248
+ "session_id": "session-approval-reject",
1249
+ "tool_args": { "value": 1 },
1250
+ "tool_call_id": "call-1",
1251
+ "tool_name": "fixture_tool",
1252
+ "turn_id": "turn-1",
1253
+ "type": "tool.call.requested",
1254
+ "version": "1.0"
1255
+ },
1256
+ {
1257
+ "id": "event-05",
1258
+ "metadata": {},
1259
+ "risk": "write",
1260
+ "sequence": 5,
1261
+ "session_id": "session-approval-reject",
1262
+ "tool_args": { "value": 1 },
1263
+ "tool_call_id": "call-1",
1264
+ "tool_name": "fixture_tool",
1265
+ "turn_id": "turn-1",
1266
+ "type": "tool.approval.requested",
1267
+ "version": "1.0"
1268
+ },
1269
+ {
1270
+ "error_code": "APPROVAL_REJECTED",
1271
+ "id": "event-06",
1272
+ "metadata": {},
1273
+ "reason": "Fixture rejected",
1274
+ "sequence": 6,
1275
+ "session_id": "session-approval-reject",
1276
+ "tool_call_id": "call-1",
1277
+ "tool_name": "fixture_tool",
1278
+ "turn_id": "turn-1",
1279
+ "type": "tool.approval.rejected",
1280
+ "version": "1.0"
1281
+ },
1282
+ {
1283
+ "error": "Tool approval rejected",
1284
+ "error_code": "APPROVAL_REJECTED",
1285
+ "id": "event-07",
1286
+ "metadata": {},
1287
+ "outcome": "not_started",
1288
+ "retryable": false,
1289
+ "sequence": 7,
1290
+ "session_id": "session-approval-reject",
1291
+ "tool_call_id": "call-1",
1292
+ "tool_name": "fixture_tool",
1293
+ "turn_id": "turn-1",
1294
+ "type": "tool.call.failed",
1295
+ "version": "1.0"
1296
+ },
1297
+ {
1298
+ "id": "event-08",
1299
+ "metadata": {},
1300
+ "sequence": 8,
1301
+ "session_id": "session-approval-reject",
1302
+ "turn_id": "turn-1",
1303
+ "type": "agent.reasoning.started",
1304
+ "version": "1.0"
1305
+ },
1306
+ {
1307
+ "delta": "handled",
1308
+ "id": "event-09",
1309
+ "metadata": {},
1310
+ "sequence": 9,
1311
+ "session_id": "session-approval-reject",
1312
+ "turn_id": "turn-1",
1313
+ "type": "agent.message.delta",
1314
+ "version": "1.0"
1315
+ },
1316
+ {
1317
+ "content": "handled",
1318
+ "id": "event-10",
1319
+ "metadata": {},
1320
+ "sequence": 10,
1321
+ "session_id": "session-approval-reject",
1322
+ "turn_id": "turn-1",
1323
+ "type": "agent.message.completed",
1324
+ "version": "1.0"
1325
+ }
1326
+ ],
1327
+ "operation_trace": [
1328
+ "provider:start:0",
1329
+ "provider:end:0",
1330
+ "provider:start:1",
1331
+ "provider:end:1"
1332
+ ],
1333
+ "provider_requests": [
1334
+ {
1335
+ "messages": [
1336
+ { "content": "You are a helpful assistant.", "role": "system" },
1337
+ { "content": "write", "role": "user" }
1338
+ ],
1339
+ "tools": [
1340
+ {
1341
+ "description": "fixture tool",
1342
+ "name": "fixture_tool",
1343
+ "parameters": {
1344
+ "additionalProperties": false,
1345
+ "properties": { "value": { "type": "integer" } },
1346
+ "type": "object"
1347
+ }
1348
+ }
1349
+ ]
1350
+ },
1351
+ {
1352
+ "messages": [
1353
+ { "content": "You are a helpful assistant.", "role": "system" },
1354
+ { "content": "write", "role": "user" },
1355
+ {
1356
+ "content": "",
1357
+ "role": "assistant",
1358
+ "tool_calls": [
1359
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
1360
+ ]
1361
+ },
1362
+ {
1363
+ "content": "Error: Tool approval rejected",
1364
+ "name": "fixture_tool",
1365
+ "role": "tool",
1366
+ "tool_call_id": "call-1"
1367
+ }
1368
+ ],
1369
+ "tools": [
1370
+ {
1371
+ "description": "fixture tool",
1372
+ "name": "fixture_tool",
1373
+ "parameters": {
1374
+ "additionalProperties": false,
1375
+ "properties": { "value": { "type": "integer" } },
1376
+ "type": "object"
1377
+ }
1378
+ }
1379
+ ]
1380
+ }
1381
+ ],
1382
+ "provider_responses": [
1383
+ {
1384
+ "content": "",
1385
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1386
+ },
1387
+ { "content": "handled", "tool_calls": [] }
1388
+ ],
1389
+ "replay": {},
1390
+ "result": {
1391
+ "turns": [
1392
+ { "session_id": "session-approval-reject", "text": "handled", "turn_id": "turn-1" }
1393
+ ]
1394
+ }
1395
+ }
1396
+ },
1397
+ {
1398
+ "id": "approval-timeout",
1399
+ "snapshot": {
1400
+ "events": [
1401
+ {
1402
+ "id": "event-01",
1403
+ "metadata": {},
1404
+ "sequence": 1,
1405
+ "session_id": "session-approval-timeout",
1406
+ "turn_id": "turn-1",
1407
+ "type": "session.created",
1408
+ "version": "1.0"
1409
+ },
1410
+ {
1411
+ "content": "write",
1412
+ "id": "event-02",
1413
+ "metadata": {},
1414
+ "sequence": 2,
1415
+ "session_id": "session-approval-timeout",
1416
+ "turn_id": "turn-1",
1417
+ "type": "user.message",
1418
+ "version": "1.0"
1419
+ },
1420
+ {
1421
+ "id": "event-03",
1422
+ "metadata": {},
1423
+ "sequence": 3,
1424
+ "session_id": "session-approval-timeout",
1425
+ "turn_id": "turn-1",
1426
+ "type": "agent.reasoning.started",
1427
+ "version": "1.0"
1428
+ },
1429
+ {
1430
+ "id": "event-04",
1431
+ "metadata": {},
1432
+ "sequence": 4,
1433
+ "session_id": "session-approval-timeout",
1434
+ "tool_args": { "value": 1 },
1435
+ "tool_call_id": "call-1",
1436
+ "tool_name": "fixture_tool",
1437
+ "turn_id": "turn-1",
1438
+ "type": "tool.call.requested",
1439
+ "version": "1.0"
1440
+ },
1441
+ {
1442
+ "id": "event-05",
1443
+ "metadata": {},
1444
+ "risk": "write",
1445
+ "sequence": 5,
1446
+ "session_id": "session-approval-timeout",
1447
+ "tool_args": { "value": 1 },
1448
+ "tool_call_id": "call-1",
1449
+ "tool_name": "fixture_tool",
1450
+ "turn_id": "turn-1",
1451
+ "type": "tool.approval.requested",
1452
+ "version": "1.0"
1453
+ },
1454
+ {
1455
+ "error_code": "APPROVAL_TIMEOUT",
1456
+ "id": "event-06",
1457
+ "metadata": {},
1458
+ "reason": "Fixture timed out",
1459
+ "sequence": 6,
1460
+ "session_id": "session-approval-timeout",
1461
+ "tool_call_id": "call-1",
1462
+ "tool_name": "fixture_tool",
1463
+ "turn_id": "turn-1",
1464
+ "type": "tool.approval.rejected",
1465
+ "version": "1.0"
1466
+ },
1467
+ {
1468
+ "error": "Tool approval timed out",
1469
+ "error_code": "APPROVAL_TIMEOUT",
1470
+ "id": "event-07",
1471
+ "metadata": {},
1472
+ "outcome": "not_started",
1473
+ "retryable": true,
1474
+ "sequence": 7,
1475
+ "session_id": "session-approval-timeout",
1476
+ "tool_call_id": "call-1",
1477
+ "tool_name": "fixture_tool",
1478
+ "turn_id": "turn-1",
1479
+ "type": "tool.call.failed",
1480
+ "version": "1.0"
1481
+ },
1482
+ {
1483
+ "id": "event-08",
1484
+ "metadata": {},
1485
+ "sequence": 8,
1486
+ "session_id": "session-approval-timeout",
1487
+ "turn_id": "turn-1",
1488
+ "type": "agent.reasoning.started",
1489
+ "version": "1.0"
1490
+ },
1491
+ {
1492
+ "delta": "handled",
1493
+ "id": "event-09",
1494
+ "metadata": {},
1495
+ "sequence": 9,
1496
+ "session_id": "session-approval-timeout",
1497
+ "turn_id": "turn-1",
1498
+ "type": "agent.message.delta",
1499
+ "version": "1.0"
1500
+ },
1501
+ {
1502
+ "content": "handled",
1503
+ "id": "event-10",
1504
+ "metadata": {},
1505
+ "sequence": 10,
1506
+ "session_id": "session-approval-timeout",
1507
+ "turn_id": "turn-1",
1508
+ "type": "agent.message.completed",
1509
+ "version": "1.0"
1510
+ }
1511
+ ],
1512
+ "operation_trace": [
1513
+ "provider:start:0",
1514
+ "provider:end:0",
1515
+ "provider:start:1",
1516
+ "provider:end:1"
1517
+ ],
1518
+ "provider_requests": [
1519
+ {
1520
+ "messages": [
1521
+ { "content": "You are a helpful assistant.", "role": "system" },
1522
+ { "content": "write", "role": "user" }
1523
+ ],
1524
+ "tools": [
1525
+ {
1526
+ "description": "fixture tool",
1527
+ "name": "fixture_tool",
1528
+ "parameters": {
1529
+ "additionalProperties": false,
1530
+ "properties": { "value": { "type": "integer" } },
1531
+ "type": "object"
1532
+ }
1533
+ }
1534
+ ]
1535
+ },
1536
+ {
1537
+ "messages": [
1538
+ { "content": "You are a helpful assistant.", "role": "system" },
1539
+ { "content": "write", "role": "user" },
1540
+ {
1541
+ "content": "",
1542
+ "role": "assistant",
1543
+ "tool_calls": [
1544
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
1545
+ ]
1546
+ },
1547
+ {
1548
+ "content": "Error: Tool approval timed out",
1549
+ "name": "fixture_tool",
1550
+ "role": "tool",
1551
+ "tool_call_id": "call-1"
1552
+ }
1553
+ ],
1554
+ "tools": [
1555
+ {
1556
+ "description": "fixture tool",
1557
+ "name": "fixture_tool",
1558
+ "parameters": {
1559
+ "additionalProperties": false,
1560
+ "properties": { "value": { "type": "integer" } },
1561
+ "type": "object"
1562
+ }
1563
+ }
1564
+ ]
1565
+ }
1566
+ ],
1567
+ "provider_responses": [
1568
+ {
1569
+ "content": "",
1570
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1571
+ },
1572
+ { "content": "handled", "tool_calls": [] }
1573
+ ],
1574
+ "replay": {},
1575
+ "result": {
1576
+ "turns": [
1577
+ { "session_id": "session-approval-timeout", "text": "handled", "turn_id": "turn-1" }
1578
+ ]
1579
+ }
1580
+ }
1581
+ },
1582
+ {
1583
+ "id": "approval-unavailable",
1584
+ "snapshot": {
1585
+ "events": [
1586
+ {
1587
+ "id": "event-01",
1588
+ "metadata": {},
1589
+ "sequence": 1,
1590
+ "session_id": "session-approval-unavailable",
1591
+ "turn_id": "turn-1",
1592
+ "type": "session.created",
1593
+ "version": "1.0"
1594
+ },
1595
+ {
1596
+ "content": "write",
1597
+ "id": "event-02",
1598
+ "metadata": {},
1599
+ "sequence": 2,
1600
+ "session_id": "session-approval-unavailable",
1601
+ "turn_id": "turn-1",
1602
+ "type": "user.message",
1603
+ "version": "1.0"
1604
+ },
1605
+ {
1606
+ "id": "event-03",
1607
+ "metadata": {},
1608
+ "sequence": 3,
1609
+ "session_id": "session-approval-unavailable",
1610
+ "turn_id": "turn-1",
1611
+ "type": "agent.reasoning.started",
1612
+ "version": "1.0"
1613
+ },
1614
+ {
1615
+ "id": "event-04",
1616
+ "metadata": {},
1617
+ "sequence": 4,
1618
+ "session_id": "session-approval-unavailable",
1619
+ "tool_args": { "value": 1 },
1620
+ "tool_call_id": "call-1",
1621
+ "tool_name": "fixture_tool",
1622
+ "turn_id": "turn-1",
1623
+ "type": "tool.call.requested",
1624
+ "version": "1.0"
1625
+ },
1626
+ {
1627
+ "id": "event-05",
1628
+ "metadata": {},
1629
+ "risk": "write",
1630
+ "sequence": 5,
1631
+ "session_id": "session-approval-unavailable",
1632
+ "tool_args": { "value": 1 },
1633
+ "tool_call_id": "call-1",
1634
+ "tool_name": "fixture_tool",
1635
+ "turn_id": "turn-1",
1636
+ "type": "tool.approval.requested",
1637
+ "version": "1.0"
1638
+ },
1639
+ {
1640
+ "error_code": "APPROVAL_UNAVAILABLE",
1641
+ "id": "event-06",
1642
+ "metadata": {},
1643
+ "reason": "No approval handler registered",
1644
+ "sequence": 6,
1645
+ "session_id": "session-approval-unavailable",
1646
+ "tool_call_id": "call-1",
1647
+ "tool_name": "fixture_tool",
1648
+ "turn_id": "turn-1",
1649
+ "type": "tool.approval.rejected",
1650
+ "version": "1.0"
1651
+ },
1652
+ {
1653
+ "error": "Tool approval unavailable",
1654
+ "error_code": "APPROVAL_UNAVAILABLE",
1655
+ "id": "event-07",
1656
+ "metadata": {},
1657
+ "outcome": "not_started",
1658
+ "retryable": false,
1659
+ "sequence": 7,
1660
+ "session_id": "session-approval-unavailable",
1661
+ "tool_call_id": "call-1",
1662
+ "tool_name": "fixture_tool",
1663
+ "turn_id": "turn-1",
1664
+ "type": "tool.call.failed",
1665
+ "version": "1.0"
1666
+ },
1667
+ {
1668
+ "id": "event-08",
1669
+ "metadata": {},
1670
+ "sequence": 8,
1671
+ "session_id": "session-approval-unavailable",
1672
+ "turn_id": "turn-1",
1673
+ "type": "agent.reasoning.started",
1674
+ "version": "1.0"
1675
+ },
1676
+ {
1677
+ "delta": "handled",
1678
+ "id": "event-09",
1679
+ "metadata": {},
1680
+ "sequence": 9,
1681
+ "session_id": "session-approval-unavailable",
1682
+ "turn_id": "turn-1",
1683
+ "type": "agent.message.delta",
1684
+ "version": "1.0"
1685
+ },
1686
+ {
1687
+ "content": "handled",
1688
+ "id": "event-10",
1689
+ "metadata": {},
1690
+ "sequence": 10,
1691
+ "session_id": "session-approval-unavailable",
1692
+ "turn_id": "turn-1",
1693
+ "type": "agent.message.completed",
1694
+ "version": "1.0"
1695
+ }
1696
+ ],
1697
+ "operation_trace": [
1698
+ "provider:start:0",
1699
+ "provider:end:0",
1700
+ "provider:start:1",
1701
+ "provider:end:1"
1702
+ ],
1703
+ "provider_requests": [
1704
+ {
1705
+ "messages": [
1706
+ { "content": "You are a helpful assistant.", "role": "system" },
1707
+ { "content": "write", "role": "user" }
1708
+ ],
1709
+ "tools": [
1710
+ {
1711
+ "description": "fixture tool",
1712
+ "name": "fixture_tool",
1713
+ "parameters": {
1714
+ "additionalProperties": false,
1715
+ "properties": { "value": { "type": "integer" } },
1716
+ "type": "object"
1717
+ }
1718
+ }
1719
+ ]
1720
+ },
1721
+ {
1722
+ "messages": [
1723
+ { "content": "You are a helpful assistant.", "role": "system" },
1724
+ { "content": "write", "role": "user" },
1725
+ {
1726
+ "content": "",
1727
+ "role": "assistant",
1728
+ "tool_calls": [
1729
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
1730
+ ]
1731
+ },
1732
+ {
1733
+ "content": "Error: Tool approval unavailable",
1734
+ "name": "fixture_tool",
1735
+ "role": "tool",
1736
+ "tool_call_id": "call-1"
1737
+ }
1738
+ ],
1739
+ "tools": [
1740
+ {
1741
+ "description": "fixture tool",
1742
+ "name": "fixture_tool",
1743
+ "parameters": {
1744
+ "additionalProperties": false,
1745
+ "properties": { "value": { "type": "integer" } },
1746
+ "type": "object"
1747
+ }
1748
+ }
1749
+ ]
1750
+ }
1751
+ ],
1752
+ "provider_responses": [
1753
+ {
1754
+ "content": "",
1755
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1756
+ },
1757
+ { "content": "handled", "tool_calls": [] }
1758
+ ],
1759
+ "replay": {},
1760
+ "result": {
1761
+ "turns": [
1762
+ { "session_id": "session-approval-unavailable", "text": "handled", "turn_id": "turn-1" }
1763
+ ]
1764
+ }
1765
+ }
1766
+ },
1767
+ {
1768
+ "id": "approval-external-recorded",
1769
+ "snapshot": {
1770
+ "events": [
1771
+ {
1772
+ "id": "event-01",
1773
+ "metadata": {},
1774
+ "sequence": 1,
1775
+ "session_id": "session-approval-external",
1776
+ "turn_id": "turn-1",
1777
+ "type": "session.created",
1778
+ "version": "1.0"
1779
+ },
1780
+ {
1781
+ "content": "write",
1782
+ "id": "event-02",
1783
+ "metadata": {},
1784
+ "sequence": 2,
1785
+ "session_id": "session-approval-external",
1786
+ "turn_id": "turn-1",
1787
+ "type": "user.message",
1788
+ "version": "1.0"
1789
+ },
1790
+ {
1791
+ "id": "event-03",
1792
+ "metadata": {},
1793
+ "sequence": 3,
1794
+ "session_id": "session-approval-external",
1795
+ "turn_id": "turn-1",
1796
+ "type": "agent.reasoning.started",
1797
+ "version": "1.0"
1798
+ },
1799
+ {
1800
+ "id": "event-04",
1801
+ "metadata": {},
1802
+ "sequence": 4,
1803
+ "session_id": "session-approval-external",
1804
+ "tool_args": { "value": 1 },
1805
+ "tool_call_id": "call-1",
1806
+ "tool_name": "fixture_tool",
1807
+ "turn_id": "turn-1",
1808
+ "type": "tool.call.requested",
1809
+ "version": "1.0"
1810
+ },
1811
+ {
1812
+ "id": "event-05",
1813
+ "metadata": {},
1814
+ "risk": "write",
1815
+ "sequence": 5,
1816
+ "session_id": "session-approval-external",
1817
+ "tool_args": { "value": 1 },
1818
+ "tool_call_id": "call-1",
1819
+ "tool_name": "fixture_tool",
1820
+ "turn_id": "turn-1",
1821
+ "type": "tool.approval.requested",
1822
+ "version": "1.0"
1823
+ },
1824
+ {
1825
+ "id": "event-06",
1826
+ "metadata": {},
1827
+ "sequence": 6,
1828
+ "session_id": "session-approval-external",
1829
+ "tool_call_id": "call-1",
1830
+ "tool_name": "fixture_tool",
1831
+ "turn_id": "turn-1",
1832
+ "type": "tool.approval.approved",
1833
+ "version": "1.0"
1834
+ },
1835
+ {
1836
+ "id": "event-07",
1837
+ "metadata": {},
1838
+ "sequence": 7,
1839
+ "session_id": "session-approval-external",
1840
+ "tool_call_id": "call-1",
1841
+ "tool_name": "fixture_tool",
1842
+ "turn_id": "turn-1",
1843
+ "type": "tool.call.started",
1844
+ "version": "1.0"
1845
+ },
1846
+ {
1847
+ "id": "event-08",
1848
+ "metadata": {},
1849
+ "result": { "arguments": { "value": 1 }, "tool": "fixture_tool" },
1850
+ "sequence": 8,
1851
+ "session_id": "session-approval-external",
1852
+ "tool_call_id": "call-1",
1853
+ "tool_name": "fixture_tool",
1854
+ "turn_id": "turn-1",
1855
+ "type": "tool.call.completed",
1856
+ "version": "1.0"
1857
+ },
1858
+ {
1859
+ "id": "event-09",
1860
+ "metadata": {},
1861
+ "sequence": 9,
1862
+ "session_id": "session-approval-external",
1863
+ "turn_id": "turn-1",
1864
+ "type": "agent.reasoning.started",
1865
+ "version": "1.0"
1866
+ },
1867
+ {
1868
+ "delta": "handled",
1869
+ "id": "event-10",
1870
+ "metadata": {},
1871
+ "sequence": 10,
1872
+ "session_id": "session-approval-external",
1873
+ "turn_id": "turn-1",
1874
+ "type": "agent.message.delta",
1875
+ "version": "1.0"
1876
+ },
1877
+ {
1878
+ "content": "handled",
1879
+ "id": "event-11",
1880
+ "metadata": {},
1881
+ "sequence": 11,
1882
+ "session_id": "session-approval-external",
1883
+ "turn_id": "turn-1",
1884
+ "type": "agent.message.completed",
1885
+ "version": "1.0"
1886
+ }
1887
+ ],
1888
+ "operation_trace": [
1889
+ "provider:start:0",
1890
+ "provider:end:0",
1891
+ "tool:start:fixture",
1892
+ "tool:end:fixture",
1893
+ "provider:start:1",
1894
+ "provider:end:1"
1895
+ ],
1896
+ "provider_requests": [
1897
+ {
1898
+ "messages": [
1899
+ { "content": "You are a helpful assistant.", "role": "system" },
1900
+ { "content": "write", "role": "user" }
1901
+ ],
1902
+ "tools": [
1903
+ {
1904
+ "description": "fixture tool",
1905
+ "name": "fixture_tool",
1906
+ "parameters": {
1907
+ "additionalProperties": false,
1908
+ "properties": { "value": { "type": "integer" } },
1909
+ "type": "object"
1910
+ }
1911
+ }
1912
+ ]
1913
+ },
1914
+ {
1915
+ "messages": [
1916
+ { "content": "You are a helpful assistant.", "role": "system" },
1917
+ { "content": "write", "role": "user" },
1918
+ {
1919
+ "content": "",
1920
+ "role": "assistant",
1921
+ "tool_calls": [
1922
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
1923
+ ]
1924
+ },
1925
+ {
1926
+ "content": "{\"arguments\":{\"value\":1},\"tool\":\"fixture_tool\"}",
1927
+ "name": "fixture_tool",
1928
+ "role": "tool",
1929
+ "tool_call_id": "call-1"
1930
+ }
1931
+ ],
1932
+ "tools": [
1933
+ {
1934
+ "description": "fixture tool",
1935
+ "name": "fixture_tool",
1936
+ "parameters": {
1937
+ "additionalProperties": false,
1938
+ "properties": { "value": { "type": "integer" } },
1939
+ "type": "object"
1940
+ }
1941
+ }
1942
+ ]
1943
+ }
1944
+ ],
1945
+ "provider_responses": [
1946
+ {
1947
+ "content": "",
1948
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
1949
+ },
1950
+ { "content": "handled", "tool_calls": [] }
1951
+ ],
1952
+ "replay": {},
1953
+ "result": {
1954
+ "turns": [
1955
+ { "session_id": "session-approval-external", "text": "handled", "turn_id": "turn-1" }
1956
+ ]
1957
+ }
1958
+ }
1959
+ },
1960
+ {
1961
+ "id": "executor-error",
1962
+ "snapshot": {
1963
+ "events": [
1964
+ {
1965
+ "id": "event-01",
1966
+ "metadata": {},
1967
+ "sequence": 1,
1968
+ "session_id": "session-error",
1969
+ "turn_id": "turn-1",
1970
+ "type": "session.created",
1971
+ "version": "1.0"
1972
+ },
1973
+ {
1974
+ "content": "fail",
1975
+ "id": "event-02",
1976
+ "metadata": {},
1977
+ "sequence": 2,
1978
+ "session_id": "session-error",
1979
+ "turn_id": "turn-1",
1980
+ "type": "user.message",
1981
+ "version": "1.0"
1982
+ },
1983
+ {
1984
+ "id": "event-03",
1985
+ "metadata": {},
1986
+ "sequence": 3,
1987
+ "session_id": "session-error",
1988
+ "turn_id": "turn-1",
1989
+ "type": "agent.reasoning.started",
1990
+ "version": "1.0"
1991
+ },
1992
+ {
1993
+ "id": "event-04",
1994
+ "metadata": {},
1995
+ "sequence": 4,
1996
+ "session_id": "session-error",
1997
+ "tool_args": { "value": 1 },
1998
+ "tool_call_id": "call-1",
1999
+ "tool_name": "fixture_tool",
2000
+ "turn_id": "turn-1",
2001
+ "type": "tool.call.requested",
2002
+ "version": "1.0"
2003
+ },
2004
+ {
2005
+ "id": "event-05",
2006
+ "metadata": {},
2007
+ "sequence": 5,
2008
+ "session_id": "session-error",
2009
+ "tool_call_id": "call-1",
2010
+ "tool_name": "fixture_tool",
2011
+ "turn_id": "turn-1",
2012
+ "type": "tool.call.started",
2013
+ "version": "1.0"
2014
+ },
2015
+ {
2016
+ "error": "Tool execution failed",
2017
+ "error_code": "TOOL_EXECUTION_FAILED",
2018
+ "id": "event-06",
2019
+ "metadata": {},
2020
+ "outcome": "unknown",
2021
+ "retryable": false,
2022
+ "sequence": 6,
2023
+ "session_id": "session-error",
2024
+ "tool_call_id": "call-1",
2025
+ "tool_name": "fixture_tool",
2026
+ "turn_id": "turn-1",
2027
+ "type": "tool.call.failed",
2028
+ "version": "1.0"
2029
+ },
2030
+ {
2031
+ "id": "event-07",
2032
+ "metadata": {},
2033
+ "sequence": 7,
2034
+ "session_id": "session-error",
2035
+ "turn_id": "turn-1",
2036
+ "type": "agent.reasoning.started",
2037
+ "version": "1.0"
2038
+ },
2039
+ {
2040
+ "delta": "handled",
2041
+ "id": "event-08",
2042
+ "metadata": {},
2043
+ "sequence": 8,
2044
+ "session_id": "session-error",
2045
+ "turn_id": "turn-1",
2046
+ "type": "agent.message.delta",
2047
+ "version": "1.0"
2048
+ },
2049
+ {
2050
+ "content": "handled",
2051
+ "id": "event-09",
2052
+ "metadata": {},
2053
+ "sequence": 9,
2054
+ "session_id": "session-error",
2055
+ "turn_id": "turn-1",
2056
+ "type": "agent.message.completed",
2057
+ "version": "1.0"
2058
+ }
2059
+ ],
2060
+ "operation_trace": [
2061
+ "provider:start:0",
2062
+ "provider:end:0",
2063
+ "tool:start:fixture",
2064
+ "tool:end:fixture",
2065
+ "provider:start:1",
2066
+ "provider:end:1"
2067
+ ],
2068
+ "provider_requests": [
2069
+ {
2070
+ "messages": [
2071
+ { "content": "You are a helpful assistant.", "role": "system" },
2072
+ { "content": "fail", "role": "user" }
2073
+ ],
2074
+ "tools": [
2075
+ {
2076
+ "description": "fixture tool",
2077
+ "name": "fixture_tool",
2078
+ "parameters": {
2079
+ "additionalProperties": false,
2080
+ "properties": { "value": { "type": "integer" } },
2081
+ "type": "object"
2082
+ }
2083
+ }
2084
+ ]
2085
+ },
2086
+ {
2087
+ "messages": [
2088
+ { "content": "You are a helpful assistant.", "role": "system" },
2089
+ { "content": "fail", "role": "user" },
2090
+ {
2091
+ "content": "",
2092
+ "role": "assistant",
2093
+ "tool_calls": [
2094
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
2095
+ ]
2096
+ },
2097
+ {
2098
+ "content": "Error: Tool execution failed",
2099
+ "name": "fixture_tool",
2100
+ "role": "tool",
2101
+ "tool_call_id": "call-1"
2102
+ }
2103
+ ],
2104
+ "tools": [
2105
+ {
2106
+ "description": "fixture tool",
2107
+ "name": "fixture_tool",
2108
+ "parameters": {
2109
+ "additionalProperties": false,
2110
+ "properties": { "value": { "type": "integer" } },
2111
+ "type": "object"
2112
+ }
2113
+ }
2114
+ ]
2115
+ }
2116
+ ],
2117
+ "provider_responses": [
2118
+ {
2119
+ "content": "",
2120
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
2121
+ },
2122
+ { "content": "handled", "tool_calls": [] }
2123
+ ],
2124
+ "replay": {},
2125
+ "result": {
2126
+ "turns": [{ "session_id": "session-error", "text": "handled", "turn_id": "turn-1" }]
2127
+ }
2128
+ }
2129
+ },
2130
+ {
2131
+ "id": "queue-timeout",
2132
+ "snapshot": {
2133
+ "events": [
2134
+ {
2135
+ "id": "event-01",
2136
+ "metadata": {},
2137
+ "sequence": 1,
2138
+ "session_id": "session-queue-timeout",
2139
+ "turn_id": "turn-1",
2140
+ "type": "session.created",
2141
+ "version": "1.0"
2142
+ },
2143
+ {
2144
+ "content": "timeout",
2145
+ "id": "event-02",
2146
+ "metadata": {},
2147
+ "sequence": 2,
2148
+ "session_id": "session-queue-timeout",
2149
+ "turn_id": "turn-1",
2150
+ "type": "user.message",
2151
+ "version": "1.0"
2152
+ },
2153
+ {
2154
+ "id": "event-03",
2155
+ "metadata": {},
2156
+ "sequence": 3,
2157
+ "session_id": "session-queue-timeout",
2158
+ "turn_id": "turn-1",
2159
+ "type": "agent.reasoning.started",
2160
+ "version": "1.0"
2161
+ },
2162
+ {
2163
+ "id": "event-04",
2164
+ "metadata": {},
2165
+ "sequence": 4,
2166
+ "session_id": "session-queue-timeout",
2167
+ "tool_args": { "value": 1 },
2168
+ "tool_call_id": "call-1",
2169
+ "tool_name": "fixture_tool",
2170
+ "turn_id": "turn-1",
2171
+ "type": "tool.call.requested",
2172
+ "version": "1.0"
2173
+ },
2174
+ {
2175
+ "error": "Tool execution timed out",
2176
+ "error_code": "TOOL_TIMEOUT",
2177
+ "id": "event-05",
2178
+ "metadata": {},
2179
+ "outcome": "not_started",
2180
+ "retryable": true,
2181
+ "sequence": 5,
2182
+ "session_id": "session-queue-timeout",
2183
+ "tool_call_id": "call-1",
2184
+ "tool_name": "fixture_tool",
2185
+ "turn_id": "turn-1",
2186
+ "type": "tool.call.failed",
2187
+ "version": "1.0"
2188
+ },
2189
+ {
2190
+ "id": "event-06",
2191
+ "metadata": {},
2192
+ "sequence": 6,
2193
+ "session_id": "session-queue-timeout",
2194
+ "turn_id": "turn-1",
2195
+ "type": "agent.reasoning.started",
2196
+ "version": "1.0"
2197
+ },
2198
+ {
2199
+ "delta": "handled",
2200
+ "id": "event-07",
2201
+ "metadata": {},
2202
+ "sequence": 7,
2203
+ "session_id": "session-queue-timeout",
2204
+ "turn_id": "turn-1",
2205
+ "type": "agent.message.delta",
2206
+ "version": "1.0"
2207
+ },
2208
+ {
2209
+ "content": "handled",
2210
+ "id": "event-08",
2211
+ "metadata": {},
2212
+ "sequence": 8,
2213
+ "session_id": "session-queue-timeout",
2214
+ "turn_id": "turn-1",
2215
+ "type": "agent.message.completed",
2216
+ "version": "1.0"
2217
+ }
2218
+ ],
2219
+ "operation_trace": [
2220
+ "provider:start:0",
2221
+ "provider:end:0",
2222
+ "provider:start:1",
2223
+ "provider:end:1"
2224
+ ],
2225
+ "provider_requests": [
2226
+ {
2227
+ "messages": [
2228
+ { "content": "You are a helpful assistant.", "role": "system" },
2229
+ { "content": "timeout", "role": "user" }
2230
+ ],
2231
+ "tools": [
2232
+ {
2233
+ "description": "fixture tool",
2234
+ "name": "fixture_tool",
2235
+ "parameters": {
2236
+ "additionalProperties": false,
2237
+ "properties": { "value": { "type": "integer" } },
2238
+ "type": "object"
2239
+ }
2240
+ }
2241
+ ]
2242
+ },
2243
+ {
2244
+ "messages": [
2245
+ { "content": "You are a helpful assistant.", "role": "system" },
2246
+ { "content": "timeout", "role": "user" },
2247
+ {
2248
+ "content": "",
2249
+ "role": "assistant",
2250
+ "tool_calls": [
2251
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
2252
+ ]
2253
+ },
2254
+ {
2255
+ "content": "Error: Tool execution timed out",
2256
+ "name": "fixture_tool",
2257
+ "role": "tool",
2258
+ "tool_call_id": "call-1"
2259
+ }
2260
+ ],
2261
+ "tools": [
2262
+ {
2263
+ "description": "fixture tool",
2264
+ "name": "fixture_tool",
2265
+ "parameters": {
2266
+ "additionalProperties": false,
2267
+ "properties": { "value": { "type": "integer" } },
2268
+ "type": "object"
2269
+ }
2270
+ }
2271
+ ]
2272
+ }
2273
+ ],
2274
+ "provider_responses": [
2275
+ {
2276
+ "content": "",
2277
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
2278
+ },
2279
+ { "content": "handled", "tool_calls": [] }
2280
+ ],
2281
+ "replay": {},
2282
+ "result": {
2283
+ "turns": [
2284
+ { "session_id": "session-queue-timeout", "text": "handled", "turn_id": "turn-1" }
2285
+ ]
2286
+ }
2287
+ }
2288
+ },
2289
+ {
2290
+ "id": "started-timeout",
2291
+ "snapshot": {
2292
+ "events": [
2293
+ {
2294
+ "id": "event-01",
2295
+ "metadata": {},
2296
+ "sequence": 1,
2297
+ "session_id": "session-started-timeout",
2298
+ "turn_id": "turn-1",
2299
+ "type": "session.created",
2300
+ "version": "1.0"
2301
+ },
2302
+ {
2303
+ "content": "timeout",
2304
+ "id": "event-02",
2305
+ "metadata": {},
2306
+ "sequence": 2,
2307
+ "session_id": "session-started-timeout",
2308
+ "turn_id": "turn-1",
2309
+ "type": "user.message",
2310
+ "version": "1.0"
2311
+ },
2312
+ {
2313
+ "id": "event-03",
2314
+ "metadata": {},
2315
+ "sequence": 3,
2316
+ "session_id": "session-started-timeout",
2317
+ "turn_id": "turn-1",
2318
+ "type": "agent.reasoning.started",
2319
+ "version": "1.0"
2320
+ },
2321
+ {
2322
+ "id": "event-04",
2323
+ "metadata": {},
2324
+ "sequence": 4,
2325
+ "session_id": "session-started-timeout",
2326
+ "tool_args": { "value": 1 },
2327
+ "tool_call_id": "call-1",
2328
+ "tool_name": "fixture_tool",
2329
+ "turn_id": "turn-1",
2330
+ "type": "tool.call.requested",
2331
+ "version": "1.0"
2332
+ },
2333
+ {
2334
+ "id": "event-05",
2335
+ "metadata": {},
2336
+ "sequence": 5,
2337
+ "session_id": "session-started-timeout",
2338
+ "tool_call_id": "call-1",
2339
+ "tool_name": "fixture_tool",
2340
+ "turn_id": "turn-1",
2341
+ "type": "tool.call.started",
2342
+ "version": "1.0"
2343
+ },
2344
+ {
2345
+ "error": "Tool execution timed out",
2346
+ "error_code": "TOOL_TIMEOUT",
2347
+ "id": "event-06",
2348
+ "metadata": {},
2349
+ "outcome": "unknown",
2350
+ "retryable": false,
2351
+ "sequence": 6,
2352
+ "session_id": "session-started-timeout",
2353
+ "tool_call_id": "call-1",
2354
+ "tool_name": "fixture_tool",
2355
+ "turn_id": "turn-1",
2356
+ "type": "tool.call.failed",
2357
+ "version": "1.0"
2358
+ },
2359
+ {
2360
+ "id": "event-07",
2361
+ "metadata": {},
2362
+ "sequence": 7,
2363
+ "session_id": "session-started-timeout",
2364
+ "turn_id": "turn-1",
2365
+ "type": "agent.reasoning.started",
2366
+ "version": "1.0"
2367
+ },
2368
+ {
2369
+ "delta": "handled",
2370
+ "id": "event-08",
2371
+ "metadata": {},
2372
+ "sequence": 8,
2373
+ "session_id": "session-started-timeout",
2374
+ "turn_id": "turn-1",
2375
+ "type": "agent.message.delta",
2376
+ "version": "1.0"
2377
+ },
2378
+ {
2379
+ "content": "handled",
2380
+ "id": "event-09",
2381
+ "metadata": {},
2382
+ "sequence": 9,
2383
+ "session_id": "session-started-timeout",
2384
+ "turn_id": "turn-1",
2385
+ "type": "agent.message.completed",
2386
+ "version": "1.0"
2387
+ }
2388
+ ],
2389
+ "operation_trace": [
2390
+ "provider:start:0",
2391
+ "provider:end:0",
2392
+ "tool:start:fixture",
2393
+ "tool:end:fixture",
2394
+ "provider:start:1",
2395
+ "provider:end:1"
2396
+ ],
2397
+ "provider_requests": [
2398
+ {
2399
+ "messages": [
2400
+ { "content": "You are a helpful assistant.", "role": "system" },
2401
+ { "content": "timeout", "role": "user" }
2402
+ ],
2403
+ "tools": [
2404
+ {
2405
+ "description": "fixture tool",
2406
+ "name": "fixture_tool",
2407
+ "parameters": {
2408
+ "additionalProperties": false,
2409
+ "properties": { "value": { "type": "integer" } },
2410
+ "type": "object"
2411
+ }
2412
+ }
2413
+ ]
2414
+ },
2415
+ {
2416
+ "messages": [
2417
+ { "content": "You are a helpful assistant.", "role": "system" },
2418
+ { "content": "timeout", "role": "user" },
2419
+ {
2420
+ "content": "",
2421
+ "role": "assistant",
2422
+ "tool_calls": [
2423
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
2424
+ ]
2425
+ },
2426
+ {
2427
+ "content": "Error: Tool execution timed out",
2428
+ "name": "fixture_tool",
2429
+ "role": "tool",
2430
+ "tool_call_id": "call-1"
2431
+ }
2432
+ ],
2433
+ "tools": [
2434
+ {
2435
+ "description": "fixture tool",
2436
+ "name": "fixture_tool",
2437
+ "parameters": {
2438
+ "additionalProperties": false,
2439
+ "properties": { "value": { "type": "integer" } },
2440
+ "type": "object"
2441
+ }
2442
+ }
2443
+ ]
2444
+ }
2445
+ ],
2446
+ "provider_responses": [
2447
+ {
2448
+ "content": "",
2449
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
2450
+ },
2451
+ { "content": "handled", "tool_calls": [] }
2452
+ ],
2453
+ "replay": {},
2454
+ "result": {
2455
+ "turns": [
2456
+ { "session_id": "session-started-timeout", "text": "handled", "turn_id": "turn-1" }
2457
+ ]
2458
+ }
2459
+ }
2460
+ },
2461
+ {
2462
+ "id": "cancellation-before-start",
2463
+ "snapshot": {
2464
+ "events": [
2465
+ {
2466
+ "id": "event-01",
2467
+ "metadata": {},
2468
+ "sequence": 1,
2469
+ "session_id": "session-cancel-before",
2470
+ "turn_id": "turn-1",
2471
+ "type": "session.created",
2472
+ "version": "1.0"
2473
+ },
2474
+ {
2475
+ "content": "cancel",
2476
+ "id": "event-02",
2477
+ "metadata": {},
2478
+ "sequence": 2,
2479
+ "session_id": "session-cancel-before",
2480
+ "turn_id": "turn-1",
2481
+ "type": "user.message",
2482
+ "version": "1.0"
2483
+ },
2484
+ {
2485
+ "id": "event-03",
2486
+ "metadata": {},
2487
+ "sequence": 3,
2488
+ "session_id": "session-cancel-before",
2489
+ "turn_id": "turn-1",
2490
+ "type": "agent.reasoning.started",
2491
+ "version": "1.0"
2492
+ },
2493
+ {
2494
+ "id": "event-04",
2495
+ "metadata": {},
2496
+ "sequence": 4,
2497
+ "session_id": "session-cancel-before",
2498
+ "tool_args": { "value": 1 },
2499
+ "tool_call_id": "call-1",
2500
+ "tool_name": "fixture_tool",
2501
+ "turn_id": "turn-1",
2502
+ "type": "tool.call.requested",
2503
+ "version": "1.0"
2504
+ },
2505
+ {
2506
+ "error": "Tool execution cancelled",
2507
+ "error_code": "TOOL_CANCELLED",
2508
+ "id": "event-05",
2509
+ "metadata": {},
2510
+ "outcome": "not_started",
2511
+ "retryable": true,
2512
+ "sequence": 5,
2513
+ "session_id": "session-cancel-before",
2514
+ "tool_call_id": "call-1",
2515
+ "tool_name": "fixture_tool",
2516
+ "turn_id": "turn-1",
2517
+ "type": "tool.call.failed",
2518
+ "version": "1.0"
2519
+ },
2520
+ {
2521
+ "id": "event-06",
2522
+ "metadata": {},
2523
+ "sequence": 6,
2524
+ "session_id": "session-cancel-before",
2525
+ "turn_id": "turn-1",
2526
+ "type": "agent.reasoning.started",
2527
+ "version": "1.0"
2528
+ },
2529
+ {
2530
+ "delta": "handled",
2531
+ "id": "event-07",
2532
+ "metadata": {},
2533
+ "sequence": 7,
2534
+ "session_id": "session-cancel-before",
2535
+ "turn_id": "turn-1",
2536
+ "type": "agent.message.delta",
2537
+ "version": "1.0"
2538
+ },
2539
+ {
2540
+ "content": "handled",
2541
+ "id": "event-08",
2542
+ "metadata": {},
2543
+ "sequence": 8,
2544
+ "session_id": "session-cancel-before",
2545
+ "turn_id": "turn-1",
2546
+ "type": "agent.message.completed",
2547
+ "version": "1.0"
2548
+ }
2549
+ ],
2550
+ "operation_trace": [
2551
+ "provider:start:0",
2552
+ "provider:end:0",
2553
+ "provider:start:1",
2554
+ "provider:end:1"
2555
+ ],
2556
+ "provider_requests": [
2557
+ {
2558
+ "messages": [
2559
+ { "content": "You are a helpful assistant.", "role": "system" },
2560
+ { "content": "cancel", "role": "user" }
2561
+ ],
2562
+ "tools": [
2563
+ {
2564
+ "description": "fixture tool",
2565
+ "name": "fixture_tool",
2566
+ "parameters": {
2567
+ "additionalProperties": false,
2568
+ "properties": { "value": { "type": "integer" } },
2569
+ "type": "object"
2570
+ }
2571
+ }
2572
+ ]
2573
+ },
2574
+ {
2575
+ "messages": [
2576
+ { "content": "You are a helpful assistant.", "role": "system" },
2577
+ { "content": "cancel", "role": "user" },
2578
+ {
2579
+ "content": "",
2580
+ "role": "assistant",
2581
+ "tool_calls": [
2582
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
2583
+ ]
2584
+ },
2585
+ {
2586
+ "content": "Error: Tool execution cancelled",
2587
+ "name": "fixture_tool",
2588
+ "role": "tool",
2589
+ "tool_call_id": "call-1"
2590
+ }
2591
+ ],
2592
+ "tools": [
2593
+ {
2594
+ "description": "fixture tool",
2595
+ "name": "fixture_tool",
2596
+ "parameters": {
2597
+ "additionalProperties": false,
2598
+ "properties": { "value": { "type": "integer" } },
2599
+ "type": "object"
2600
+ }
2601
+ }
2602
+ ]
2603
+ }
2604
+ ],
2605
+ "provider_responses": [
2606
+ {
2607
+ "content": "",
2608
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
2609
+ },
2610
+ { "content": "handled", "tool_calls": [] }
2611
+ ],
2612
+ "replay": {},
2613
+ "result": {
2614
+ "turns": [
2615
+ { "session_id": "session-cancel-before", "text": "handled", "turn_id": "turn-1" }
2616
+ ]
2617
+ }
2618
+ }
2619
+ },
2620
+ {
2621
+ "id": "cancellation-after-start",
2622
+ "snapshot": {
2623
+ "events": [
2624
+ {
2625
+ "id": "event-01",
2626
+ "metadata": {},
2627
+ "sequence": 1,
2628
+ "session_id": "session-cancel-after",
2629
+ "turn_id": "turn-1",
2630
+ "type": "session.created",
2631
+ "version": "1.0"
2632
+ },
2633
+ {
2634
+ "content": "cancel",
2635
+ "id": "event-02",
2636
+ "metadata": {},
2637
+ "sequence": 2,
2638
+ "session_id": "session-cancel-after",
2639
+ "turn_id": "turn-1",
2640
+ "type": "user.message",
2641
+ "version": "1.0"
2642
+ },
2643
+ {
2644
+ "id": "event-03",
2645
+ "metadata": {},
2646
+ "sequence": 3,
2647
+ "session_id": "session-cancel-after",
2648
+ "turn_id": "turn-1",
2649
+ "type": "agent.reasoning.started",
2650
+ "version": "1.0"
2651
+ },
2652
+ {
2653
+ "id": "event-04",
2654
+ "metadata": {},
2655
+ "sequence": 4,
2656
+ "session_id": "session-cancel-after",
2657
+ "tool_args": { "value": 1 },
2658
+ "tool_call_id": "call-1",
2659
+ "tool_name": "fixture_tool",
2660
+ "turn_id": "turn-1",
2661
+ "type": "tool.call.requested",
2662
+ "version": "1.0"
2663
+ },
2664
+ {
2665
+ "id": "event-05",
2666
+ "metadata": {},
2667
+ "sequence": 5,
2668
+ "session_id": "session-cancel-after",
2669
+ "tool_call_id": "call-1",
2670
+ "tool_name": "fixture_tool",
2671
+ "turn_id": "turn-1",
2672
+ "type": "tool.call.started",
2673
+ "version": "1.0"
2674
+ },
2675
+ {
2676
+ "error": "Tool execution cancelled",
2677
+ "error_code": "TOOL_CANCELLED",
2678
+ "id": "event-06",
2679
+ "metadata": {},
2680
+ "outcome": "unknown",
2681
+ "retryable": false,
2682
+ "sequence": 6,
2683
+ "session_id": "session-cancel-after",
2684
+ "tool_call_id": "call-1",
2685
+ "tool_name": "fixture_tool",
2686
+ "turn_id": "turn-1",
2687
+ "type": "tool.call.failed",
2688
+ "version": "1.0"
2689
+ },
2690
+ {
2691
+ "id": "event-07",
2692
+ "metadata": {},
2693
+ "sequence": 7,
2694
+ "session_id": "session-cancel-after",
2695
+ "turn_id": "turn-1",
2696
+ "type": "agent.reasoning.started",
2697
+ "version": "1.0"
2698
+ },
2699
+ {
2700
+ "delta": "handled",
2701
+ "id": "event-08",
2702
+ "metadata": {},
2703
+ "sequence": 8,
2704
+ "session_id": "session-cancel-after",
2705
+ "turn_id": "turn-1",
2706
+ "type": "agent.message.delta",
2707
+ "version": "1.0"
2708
+ },
2709
+ {
2710
+ "content": "handled",
2711
+ "id": "event-09",
2712
+ "metadata": {},
2713
+ "sequence": 9,
2714
+ "session_id": "session-cancel-after",
2715
+ "turn_id": "turn-1",
2716
+ "type": "agent.message.completed",
2717
+ "version": "1.0"
2718
+ }
2719
+ ],
2720
+ "operation_trace": [
2721
+ "provider:start:0",
2722
+ "provider:end:0",
2723
+ "tool:start:fixture",
2724
+ "tool:end:fixture",
2725
+ "provider:start:1",
2726
+ "provider:end:1"
2727
+ ],
2728
+ "provider_requests": [
2729
+ {
2730
+ "messages": [
2731
+ { "content": "You are a helpful assistant.", "role": "system" },
2732
+ { "content": "cancel", "role": "user" }
2733
+ ],
2734
+ "tools": [
2735
+ {
2736
+ "description": "fixture tool",
2737
+ "name": "fixture_tool",
2738
+ "parameters": {
2739
+ "additionalProperties": false,
2740
+ "properties": { "value": { "type": "integer" } },
2741
+ "type": "object"
2742
+ }
2743
+ }
2744
+ ]
2745
+ },
2746
+ {
2747
+ "messages": [
2748
+ { "content": "You are a helpful assistant.", "role": "system" },
2749
+ { "content": "cancel", "role": "user" },
2750
+ {
2751
+ "content": "",
2752
+ "role": "assistant",
2753
+ "tool_calls": [
2754
+ { "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }
2755
+ ]
2756
+ },
2757
+ {
2758
+ "content": "Error: Tool execution cancelled",
2759
+ "name": "fixture_tool",
2760
+ "role": "tool",
2761
+ "tool_call_id": "call-1"
2762
+ }
2763
+ ],
2764
+ "tools": [
2765
+ {
2766
+ "description": "fixture tool",
2767
+ "name": "fixture_tool",
2768
+ "parameters": {
2769
+ "additionalProperties": false,
2770
+ "properties": { "value": { "type": "integer" } },
2771
+ "type": "object"
2772
+ }
2773
+ }
2774
+ ]
2775
+ }
2776
+ ],
2777
+ "provider_responses": [
2778
+ {
2779
+ "content": "",
2780
+ "tool_calls": [{ "arguments": { "value": 1 }, "id": "call-1", "name": "fixture_tool" }]
2781
+ },
2782
+ { "content": "handled", "tool_calls": [] }
2783
+ ],
2784
+ "replay": {},
2785
+ "result": {
2786
+ "turns": [
2787
+ { "session_id": "session-cancel-after", "text": "handled", "turn_id": "turn-1" }
2788
+ ]
2789
+ }
2790
+ }
2791
+ },
2792
+ {
2793
+ "id": "turn-queue-timeout",
2794
+ "snapshot": {
2795
+ "events": [
2796
+ {
2797
+ "error": "Agent turn timed out",
2798
+ "error_code": "TURN_TIMEOUT",
2799
+ "id": "event-01",
2800
+ "metadata": {},
2801
+ "outcome": "not_started",
2802
+ "phase": "queue",
2803
+ "retryable": true,
2804
+ "sequence": 1,
2805
+ "session_id": "session-turn-queue-timeout",
2806
+ "turn_id": "turn-1",
2807
+ "type": "agent.turn.failed",
2808
+ "version": "1.0"
2809
+ }
2810
+ ],
2811
+ "operation_trace": [],
2812
+ "provider_requests": [],
2813
+ "provider_responses": [],
2814
+ "replay": {},
2815
+ "result": {
2816
+ "error": {
2817
+ "code": "TURN_TIMEOUT",
2818
+ "outcome": "not_started",
2819
+ "phase": "queue",
2820
+ "retryable": true
2821
+ }
2822
+ }
2823
+ }
2824
+ },
2825
+ {
2826
+ "id": "turn-provider-open-timeout",
2827
+ "snapshot": {
2828
+ "events": [
2829
+ {
2830
+ "id": "event-01",
2831
+ "metadata": {},
2832
+ "sequence": 1,
2833
+ "session_id": "session-turn-provider-open-timeout",
2834
+ "turn_id": "turn-1",
2835
+ "type": "session.created",
2836
+ "version": "1.0"
2837
+ },
2838
+ {
2839
+ "content": "timeout",
2840
+ "id": "event-02",
2841
+ "metadata": {},
2842
+ "sequence": 2,
2843
+ "session_id": "session-turn-provider-open-timeout",
2844
+ "turn_id": "turn-1",
2845
+ "type": "user.message",
2846
+ "version": "1.0"
2847
+ },
2848
+ {
2849
+ "id": "event-03",
2850
+ "metadata": {},
2851
+ "sequence": 3,
2852
+ "session_id": "session-turn-provider-open-timeout",
2853
+ "turn_id": "turn-1",
2854
+ "type": "agent.reasoning.started",
2855
+ "version": "1.0"
2856
+ },
2857
+ {
2858
+ "error": "Agent turn timed out",
2859
+ "error_code": "TURN_TIMEOUT",
2860
+ "id": "event-04",
2861
+ "metadata": {},
2862
+ "outcome": "unknown",
2863
+ "phase": "provider_open",
2864
+ "retryable": true,
2865
+ "sequence": 4,
2866
+ "session_id": "session-turn-provider-open-timeout",
2867
+ "turn_id": "turn-1",
2868
+ "type": "agent.turn.failed",
2869
+ "version": "1.0"
2870
+ }
2871
+ ],
2872
+ "operation_trace": ["provider:start:0", "provider:end:0"],
2873
+ "provider_requests": [
2874
+ {
2875
+ "messages": [
2876
+ { "content": "You are a helpful assistant.", "role": "system" },
2877
+ { "content": "timeout", "role": "user" }
2878
+ ],
2879
+ "tools": []
2880
+ }
2881
+ ],
2882
+ "provider_responses": [{ "content": "", "tool_calls": [] }],
2883
+ "replay": {},
2884
+ "result": {
2885
+ "error": {
2886
+ "code": "TURN_TIMEOUT",
2887
+ "outcome": "unknown",
2888
+ "phase": "provider_open",
2889
+ "retryable": true
2890
+ }
2891
+ }
2892
+ }
2893
+ },
2894
+ {
2895
+ "id": "turn-provider-stream-timeout",
2896
+ "snapshot": {
2897
+ "events": [
2898
+ {
2899
+ "id": "event-01",
2900
+ "metadata": {},
2901
+ "sequence": 1,
2902
+ "session_id": "session-turn-provider-stream-timeout",
2903
+ "turn_id": "turn-1",
2904
+ "type": "session.created",
2905
+ "version": "1.0"
2906
+ },
2907
+ {
2908
+ "content": "timeout",
2909
+ "id": "event-02",
2910
+ "metadata": {},
2911
+ "sequence": 2,
2912
+ "session_id": "session-turn-provider-stream-timeout",
2913
+ "turn_id": "turn-1",
2914
+ "type": "user.message",
2915
+ "version": "1.0"
2916
+ },
2917
+ {
2918
+ "id": "event-03",
2919
+ "metadata": {},
2920
+ "sequence": 3,
2921
+ "session_id": "session-turn-provider-stream-timeout",
2922
+ "turn_id": "turn-1",
2923
+ "type": "agent.reasoning.started",
2924
+ "version": "1.0"
2925
+ },
2926
+ {
2927
+ "delta": "partial",
2928
+ "id": "event-04",
2929
+ "metadata": {},
2930
+ "sequence": 4,
2931
+ "session_id": "session-turn-provider-stream-timeout",
2932
+ "turn_id": "turn-1",
2933
+ "type": "agent.message.delta",
2934
+ "version": "1.0"
2935
+ },
2936
+ {
2937
+ "error": "Agent turn timed out",
2938
+ "error_code": "TURN_TIMEOUT",
2939
+ "id": "event-05",
2940
+ "metadata": {},
2941
+ "outcome": "unknown",
2942
+ "phase": "provider_stream",
2943
+ "retryable": true,
2944
+ "sequence": 5,
2945
+ "session_id": "session-turn-provider-stream-timeout",
2946
+ "turn_id": "turn-1",
2947
+ "type": "agent.turn.failed",
2948
+ "version": "1.0"
2949
+ }
2950
+ ],
2951
+ "operation_trace": ["provider:start:0", "provider:end:0"],
2952
+ "provider_requests": [
2953
+ {
2954
+ "messages": [
2955
+ { "content": "You are a helpful assistant.", "role": "system" },
2956
+ { "content": "timeout", "role": "user" }
2957
+ ],
2958
+ "tools": []
2959
+ }
2960
+ ],
2961
+ "provider_responses": [{ "content": "partial", "tool_calls": [] }],
2962
+ "replay": {},
2963
+ "result": {
2964
+ "error": {
2965
+ "code": "TURN_TIMEOUT",
2966
+ "outcome": "unknown",
2967
+ "phase": "provider_stream",
2968
+ "retryable": true
2969
+ }
2970
+ }
2971
+ }
2972
+ },
2973
+ {
2974
+ "id": "turn-cancellation-deadline-tie",
2975
+ "snapshot": {
2976
+ "events": [
2977
+ {
2978
+ "id": "event-01",
2979
+ "metadata": {},
2980
+ "sequence": 1,
2981
+ "session_id": "session-turn-cancellation-deadline-tie",
2982
+ "turn_id": "turn-1",
2983
+ "type": "session.created",
2984
+ "version": "1.0"
2985
+ },
2986
+ {
2987
+ "content": "cancel",
2988
+ "id": "event-02",
2989
+ "metadata": {},
2990
+ "sequence": 2,
2991
+ "session_id": "session-turn-cancellation-deadline-tie",
2992
+ "turn_id": "turn-1",
2993
+ "type": "user.message",
2994
+ "version": "1.0"
2995
+ },
2996
+ {
2997
+ "id": "event-03",
2998
+ "metadata": {},
2999
+ "sequence": 3,
3000
+ "session_id": "session-turn-cancellation-deadline-tie",
3001
+ "turn_id": "turn-1",
3002
+ "type": "agent.reasoning.started",
3003
+ "version": "1.0"
3004
+ },
3005
+ {
3006
+ "id": "event-04",
3007
+ "metadata": {},
3008
+ "sequence": 4,
3009
+ "session_id": "session-turn-cancellation-deadline-tie",
3010
+ "turn_id": "turn-1",
3011
+ "type": "cancellation.completed",
3012
+ "version": "1.0"
3013
+ }
3014
+ ],
3015
+ "operation_trace": ["provider:start:0", "provider:end:0"],
3016
+ "provider_requests": [
3017
+ {
3018
+ "messages": [
3019
+ { "content": "You are a helpful assistant.", "role": "system" },
3020
+ { "content": "cancel", "role": "user" }
3021
+ ],
3022
+ "tools": []
3023
+ }
3024
+ ],
3025
+ "provider_responses": [{ "content": "", "tool_calls": [] }],
3026
+ "replay": {},
3027
+ "result": {
3028
+ "turns": [
3029
+ {
3030
+ "session_id": "session-turn-cancellation-deadline-tie",
3031
+ "text": "",
3032
+ "turn_id": "turn-1"
3033
+ }
3034
+ ]
3035
+ }
3036
+ }
3037
+ },
3038
+ {
3039
+ "id": "schema-valid-nested",
3040
+ "snapshot": {
3041
+ "events": [],
3042
+ "operation_trace": [],
3043
+ "provider_requests": [],
3044
+ "provider_responses": [],
3045
+ "replay": {},
3046
+ "result": { "accepted": true, "fixture": "nested object, format, and bounded array" }
3047
+ }
3048
+ },
3049
+ {
3050
+ "id": "schema-valid-const-bounds",
3051
+ "snapshot": {
3052
+ "events": [],
3053
+ "operation_trace": [],
3054
+ "provider_requests": [],
3055
+ "provider_responses": [],
3056
+ "replay": {},
3057
+ "result": { "accepted": true, "fixture": "const and number bounds" }
3058
+ }
3059
+ },
3060
+ {
3061
+ "id": "schema-valid-union",
3062
+ "snapshot": {
3063
+ "events": [],
3064
+ "operation_trace": [],
3065
+ "provider_requests": [],
3066
+ "provider_responses": [],
3067
+ "replay": {},
3068
+ "result": { "accepted": true, "fixture": "union branch" }
3069
+ }
3070
+ },
3071
+ {
3072
+ "id": "schema-valid-ref",
3073
+ "snapshot": {
3074
+ "events": [],
3075
+ "operation_trace": [],
3076
+ "provider_requests": [],
3077
+ "provider_responses": [],
3078
+ "replay": {},
3079
+ "result": { "accepted": true, "fixture": "local reference" }
3080
+ }
3081
+ },
3082
+ {
3083
+ "id": "schema-invalid-nested-required",
3084
+ "snapshot": {
3085
+ "events": [],
3086
+ "operation_trace": [],
3087
+ "provider_requests": [],
3088
+ "provider_responses": [],
3089
+ "replay": {},
3090
+ "result": {
3091
+ "accepted": false,
3092
+ "error": {
3093
+ "code": "INVALID_TOOL_ARGUMENTS",
3094
+ "message": "Tool arguments failed required validation at /profile",
3095
+ "outcome": "not_started",
3096
+ "path": "/profile",
3097
+ "retryable": false
3098
+ },
3099
+ "fixture": "nested required"
3100
+ }
3101
+ }
3102
+ },
3103
+ {
3104
+ "id": "schema-invalid-nested-extra",
3105
+ "snapshot": {
3106
+ "events": [],
3107
+ "operation_trace": [],
3108
+ "provider_requests": [],
3109
+ "provider_responses": [],
3110
+ "replay": {},
3111
+ "result": {
3112
+ "accepted": false,
3113
+ "error": {
3114
+ "code": "INVALID_TOOL_ARGUMENTS",
3115
+ "message": "Tool arguments failed additionalProperties validation at /profile",
3116
+ "outcome": "not_started",
3117
+ "path": "/profile",
3118
+ "retryable": false
3119
+ },
3120
+ "fixture": "nested additional property"
3121
+ }
3122
+ }
3123
+ },
3124
+ {
3125
+ "id": "schema-invalid-top-extra",
3126
+ "snapshot": {
3127
+ "events": [],
3128
+ "operation_trace": [],
3129
+ "provider_requests": [],
3130
+ "provider_responses": [],
3131
+ "replay": {},
3132
+ "result": {
3133
+ "accepted": false,
3134
+ "error": {
3135
+ "code": "INVALID_TOOL_ARGUMENTS",
3136
+ "message": "Tool arguments failed additionalProperties validation at /",
3137
+ "outcome": "not_started",
3138
+ "path": "/",
3139
+ "retryable": false
3140
+ },
3141
+ "fixture": "top-level additional property"
3142
+ }
3143
+ }
3144
+ },
3145
+ {
3146
+ "id": "schema-invalid-const",
3147
+ "snapshot": {
3148
+ "events": [],
3149
+ "operation_trace": [],
3150
+ "provider_requests": [],
3151
+ "provider_responses": [],
3152
+ "replay": {},
3153
+ "result": {
3154
+ "accepted": false,
3155
+ "error": {
3156
+ "code": "INVALID_TOOL_ARGUMENTS",
3157
+ "message": "Tool arguments failed const validation at /mode",
3158
+ "outcome": "not_started",
3159
+ "path": "/mode",
3160
+ "retryable": false
3161
+ },
3162
+ "fixture": "const"
3163
+ }
3164
+ }
3165
+ },
3166
+ {
3167
+ "id": "schema-invalid-enum",
3168
+ "snapshot": {
3169
+ "events": [],
3170
+ "operation_trace": [],
3171
+ "provider_requests": [],
3172
+ "provider_responses": [],
3173
+ "replay": {},
3174
+ "result": {
3175
+ "accepted": false,
3176
+ "error": {
3177
+ "code": "INVALID_TOOL_ARGUMENTS",
3178
+ "message": "Tool arguments failed enum validation at /mode",
3179
+ "outcome": "not_started",
3180
+ "path": "/mode",
3181
+ "retryable": false
3182
+ },
3183
+ "fixture": "enum"
3184
+ }
3185
+ }
3186
+ },
3187
+ {
3188
+ "id": "schema-invalid-number-min",
3189
+ "snapshot": {
3190
+ "events": [],
3191
+ "operation_trace": [],
3192
+ "provider_requests": [],
3193
+ "provider_responses": [],
3194
+ "replay": {},
3195
+ "result": {
3196
+ "accepted": false,
3197
+ "error": {
3198
+ "code": "INVALID_TOOL_ARGUMENTS",
3199
+ "message": "Tool arguments failed minimum validation at /count",
3200
+ "outcome": "not_started",
3201
+ "path": "/count",
3202
+ "retryable": false
3203
+ },
3204
+ "fixture": "number minimum"
3205
+ }
3206
+ }
3207
+ },
3208
+ {
3209
+ "id": "schema-invalid-number-max",
3210
+ "snapshot": {
3211
+ "events": [],
3212
+ "operation_trace": [],
3213
+ "provider_requests": [],
3214
+ "provider_responses": [],
3215
+ "replay": {},
3216
+ "result": {
3217
+ "accepted": false,
3218
+ "error": {
3219
+ "code": "INVALID_TOOL_ARGUMENTS",
3220
+ "message": "Tool arguments failed maximum validation at /count",
3221
+ "outcome": "not_started",
3222
+ "path": "/count",
3223
+ "retryable": false
3224
+ },
3225
+ "fixture": "number maximum"
3226
+ }
3227
+ }
3228
+ },
3229
+ {
3230
+ "id": "schema-invalid-string-min",
3231
+ "snapshot": {
3232
+ "events": [],
3233
+ "operation_trace": [],
3234
+ "provider_requests": [],
3235
+ "provider_responses": [],
3236
+ "replay": {},
3237
+ "result": {
3238
+ "accepted": false,
3239
+ "error": {
3240
+ "code": "INVALID_TOOL_ARGUMENTS",
3241
+ "message": "Tool arguments failed minLength validation at /slug",
3242
+ "outcome": "not_started",
3243
+ "path": "/slug",
3244
+ "retryable": false
3245
+ },
3246
+ "fixture": "string minimum length"
3247
+ }
3248
+ }
3249
+ },
3250
+ {
3251
+ "id": "schema-invalid-string-max",
3252
+ "snapshot": {
3253
+ "events": [],
3254
+ "operation_trace": [],
3255
+ "provider_requests": [],
3256
+ "provider_responses": [],
3257
+ "replay": {},
3258
+ "result": {
3259
+ "accepted": false,
3260
+ "error": {
3261
+ "code": "INVALID_TOOL_ARGUMENTS",
3262
+ "message": "Tool arguments failed maxLength validation at /slug",
3263
+ "outcome": "not_started",
3264
+ "path": "/slug",
3265
+ "retryable": false
3266
+ },
3267
+ "fixture": "string maximum length"
3268
+ }
3269
+ }
3270
+ },
3271
+ {
3272
+ "id": "schema-invalid-pattern",
3273
+ "snapshot": {
3274
+ "events": [],
3275
+ "operation_trace": [],
3276
+ "provider_requests": [],
3277
+ "provider_responses": [],
3278
+ "replay": {},
3279
+ "result": {
3280
+ "accepted": false,
3281
+ "error": {
3282
+ "code": "INVALID_TOOL_ARGUMENTS",
3283
+ "message": "Tool arguments failed pattern validation at /slug",
3284
+ "outcome": "not_started",
3285
+ "path": "/slug",
3286
+ "retryable": false
3287
+ },
3288
+ "fixture": "string pattern"
3289
+ }
3290
+ }
3291
+ },
3292
+ {
3293
+ "id": "schema-invalid-array-min",
3294
+ "snapshot": {
3295
+ "events": [],
3296
+ "operation_trace": [],
3297
+ "provider_requests": [],
3298
+ "provider_responses": [],
3299
+ "replay": {},
3300
+ "result": {
3301
+ "accepted": false,
3302
+ "error": {
3303
+ "code": "INVALID_TOOL_ARGUMENTS",
3304
+ "message": "Tool arguments failed minItems validation at /ids",
3305
+ "outcome": "not_started",
3306
+ "path": "/ids",
3307
+ "retryable": false
3308
+ },
3309
+ "fixture": "array minimum items"
3310
+ }
3311
+ }
3312
+ },
3313
+ {
3314
+ "id": "schema-invalid-array-max",
3315
+ "snapshot": {
3316
+ "events": [],
3317
+ "operation_trace": [],
3318
+ "provider_requests": [],
3319
+ "provider_responses": [],
3320
+ "replay": {},
3321
+ "result": {
3322
+ "accepted": false,
3323
+ "error": {
3324
+ "code": "INVALID_TOOL_ARGUMENTS",
3325
+ "message": "Tool arguments failed maxItems validation at /ids",
3326
+ "outcome": "not_started",
3327
+ "path": "/ids",
3328
+ "retryable": false
3329
+ },
3330
+ "fixture": "array maximum items"
3331
+ }
3332
+ }
3333
+ },
3334
+ {
3335
+ "id": "schema-invalid-array-item",
3336
+ "snapshot": {
3337
+ "events": [],
3338
+ "operation_trace": [],
3339
+ "provider_requests": [],
3340
+ "provider_responses": [],
3341
+ "replay": {},
3342
+ "result": {
3343
+ "accepted": false,
3344
+ "error": {
3345
+ "code": "INVALID_TOOL_ARGUMENTS",
3346
+ "message": "Tool arguments failed type validation at /ids/1",
3347
+ "outcome": "not_started",
3348
+ "path": "/ids/1",
3349
+ "retryable": false
3350
+ },
3351
+ "fixture": "array item"
3352
+ }
3353
+ }
3354
+ },
3355
+ {
3356
+ "id": "schema-invalid-email",
3357
+ "snapshot": {
3358
+ "events": [],
3359
+ "operation_trace": [],
3360
+ "provider_requests": [],
3361
+ "provider_responses": [],
3362
+ "replay": {},
3363
+ "result": {
3364
+ "accepted": false,
3365
+ "error": {
3366
+ "code": "INVALID_TOOL_ARGUMENTS",
3367
+ "message": "Tool arguments failed format validation at /email",
3368
+ "outcome": "not_started",
3369
+ "path": "/email",
3370
+ "retryable": false
3371
+ },
3372
+ "fixture": "email format"
3373
+ }
3374
+ }
3375
+ },
3376
+ {
3377
+ "id": "schema-invalid-uri",
3378
+ "snapshot": {
3379
+ "events": [],
3380
+ "operation_trace": [],
3381
+ "provider_requests": [],
3382
+ "provider_responses": [],
3383
+ "replay": {},
3384
+ "result": {
3385
+ "accepted": false,
3386
+ "error": {
3387
+ "code": "INVALID_TOOL_ARGUMENTS",
3388
+ "message": "Tool arguments failed format validation at /url",
3389
+ "outcome": "not_started",
3390
+ "path": "/url",
3391
+ "retryable": false
3392
+ },
3393
+ "fixture": "uri format"
3394
+ }
3395
+ }
3396
+ },
3397
+ {
3398
+ "id": "schema-invalid-union",
3399
+ "snapshot": {
3400
+ "events": [],
3401
+ "operation_trace": [],
3402
+ "provider_requests": [],
3403
+ "provider_responses": [],
3404
+ "replay": {},
3405
+ "result": {
3406
+ "accepted": false,
3407
+ "error": {
3408
+ "code": "INVALID_TOOL_ARGUMENTS",
3409
+ "message": "Tool arguments failed oneOf validation at /target",
3410
+ "outcome": "not_started",
3411
+ "path": "/target",
3412
+ "retryable": false
3413
+ },
3414
+ "fixture": "union branches"
3415
+ }
3416
+ }
3417
+ },
3418
+ {
3419
+ "id": "schema-invalid-ref",
3420
+ "snapshot": {
3421
+ "events": [],
3422
+ "operation_trace": [],
3423
+ "provider_requests": [],
3424
+ "provider_responses": [],
3425
+ "replay": {},
3426
+ "result": {
3427
+ "accepted": false,
3428
+ "error": {
3429
+ "code": "INVALID_TOOL_ARGUMENTS",
3430
+ "message": "Tool arguments failed minimum validation at /value",
3431
+ "outcome": "not_started",
3432
+ "path": "/value",
3433
+ "retryable": false
3434
+ },
3435
+ "fixture": "local reference"
3436
+ }
3437
+ }
3438
+ },
3439
+ {
3440
+ "id": "schema-invalid-type-declaration",
3441
+ "snapshot": {
3442
+ "events": [],
3443
+ "operation_trace": [],
3444
+ "provider_requests": [],
3445
+ "provider_responses": [],
3446
+ "replay": {},
3447
+ "result": {
3448
+ "accepted": false,
3449
+ "error": {
3450
+ "code": "INVALID_TOOL_SCHEMA",
3451
+ "message": "Tool schema failed schema validation at /type",
3452
+ "outcome": "not_started",
3453
+ "path": "/type",
3454
+ "retryable": false
3455
+ },
3456
+ "fixture": "invalid type declaration"
3457
+ }
3458
+ }
3459
+ },
3460
+ {
3461
+ "id": "schema-invalid-required-declaration",
3462
+ "snapshot": {
3463
+ "events": [],
3464
+ "operation_trace": [],
3465
+ "provider_requests": [],
3466
+ "provider_responses": [],
3467
+ "replay": {},
3468
+ "result": {
3469
+ "accepted": false,
3470
+ "error": {
3471
+ "code": "INVALID_TOOL_SCHEMA",
3472
+ "message": "Tool schema failed schema validation at /required",
3473
+ "outcome": "not_started",
3474
+ "path": "/required",
3475
+ "retryable": false
3476
+ },
3477
+ "fixture": "invalid required declaration"
3478
+ }
3479
+ }
3480
+ },
3481
+ {
3482
+ "id": "replay-approval-and-failures",
3483
+ "snapshot": {
3484
+ "events": [
3485
+ {
3486
+ "id": "replay-event-1",
3487
+ "metadata": {},
3488
+ "sequence": 1,
3489
+ "session_id": "session-replay",
3490
+ "type": "session.created",
3491
+ "version": "1.0"
3492
+ },
3493
+ {
3494
+ "id": "replay-event-2",
3495
+ "metadata": {},
3496
+ "sequence": 2,
3497
+ "session_id": "session-replay",
3498
+ "turn_id": "turn-replay",
3499
+ "type": "agent.reasoning.started",
3500
+ "version": "1.0"
3501
+ },
3502
+ {
3503
+ "id": "replay-event-3",
3504
+ "metadata": {},
3505
+ "sequence": 3,
3506
+ "session_id": "session-replay",
3507
+ "tool_args": { "q": "café" },
3508
+ "tool_call_id": "call-ok",
3509
+ "tool_name": "lookup",
3510
+ "turn_id": "turn-replay",
3511
+ "type": "tool.call.requested",
3512
+ "version": "1.0"
3513
+ },
3514
+ {
3515
+ "id": "replay-event-4",
3516
+ "metadata": {},
3517
+ "risk": "write",
3518
+ "sequence": 4,
3519
+ "session_id": "session-replay",
3520
+ "tool_args": { "q": "café" },
3521
+ "tool_call_id": "call-ok",
3522
+ "tool_name": "lookup",
3523
+ "turn_id": "turn-replay",
3524
+ "type": "tool.approval.requested",
3525
+ "version": "1.0"
3526
+ },
3527
+ {
3528
+ "id": "replay-event-5",
3529
+ "metadata": {},
3530
+ "sequence": 5,
3531
+ "session_id": "session-replay",
3532
+ "tool_call_id": "call-ok",
3533
+ "tool_name": "lookup",
3534
+ "turn_id": "turn-replay",
3535
+ "type": "tool.approval.approved",
3536
+ "version": "1.0"
3537
+ },
3538
+ {
3539
+ "id": "replay-event-6",
3540
+ "metadata": {},
3541
+ "result": { "a": [2], "z": 1 },
3542
+ "sequence": 6,
3543
+ "session_id": "session-replay",
3544
+ "tool_call_id": "call-ok",
3545
+ "tool_name": "lookup",
3546
+ "turn_id": "turn-replay",
3547
+ "type": "tool.call.completed",
3548
+ "version": "1.0"
3549
+ },
3550
+ {
3551
+ "id": "replay-event-7",
3552
+ "metadata": {},
3553
+ "sequence": 7,
3554
+ "session_id": "session-replay",
3555
+ "tool_args": { "value": 3 },
3556
+ "tool_call_id": "call-failed",
3557
+ "tool_name": "write",
3558
+ "turn_id": "turn-replay",
3559
+ "type": "tool.call.requested",
3560
+ "version": "1.0"
3561
+ },
3562
+ {
3563
+ "id": "replay-event-8",
3564
+ "metadata": {},
3565
+ "risk": "write",
3566
+ "sequence": 8,
3567
+ "session_id": "session-replay",
3568
+ "tool_args": { "value": 3 },
3569
+ "tool_call_id": "call-failed",
3570
+ "tool_name": "write",
3571
+ "turn_id": "turn-replay",
3572
+ "type": "tool.approval.requested",
3573
+ "version": "1.0"
3574
+ },
3575
+ {
3576
+ "error_code": "APPROVAL_TIMEOUT",
3577
+ "id": "replay-event-9",
3578
+ "metadata": {},
3579
+ "reason": "Fixture timed out",
3580
+ "sequence": 9,
3581
+ "session_id": "session-replay",
3582
+ "tool_call_id": "call-failed",
3583
+ "tool_name": "write",
3584
+ "turn_id": "turn-replay",
3585
+ "type": "tool.approval.rejected",
3586
+ "version": "1.0"
3587
+ },
3588
+ {
3589
+ "error": "Tool approval timed out",
3590
+ "error_code": "APPROVAL_TIMEOUT",
3591
+ "id": "replay-event-10",
3592
+ "metadata": {},
3593
+ "outcome": "not_started",
3594
+ "retryable": true,
3595
+ "sequence": 10,
3596
+ "session_id": "session-replay",
3597
+ "tool_call_id": "call-failed",
3598
+ "tool_name": "write",
3599
+ "turn_id": "turn-replay",
3600
+ "type": "tool.call.failed",
3601
+ "version": "1.0"
3602
+ }
3603
+ ],
3604
+ "operation_trace": [],
3605
+ "provider_requests": [],
3606
+ "provider_responses": [],
3607
+ "replay": {
3608
+ "approved_approvals": [
3609
+ { "tool_call_id": "call-ok", "tool_name": "lookup", "turn_id": "turn-replay" }
3610
+ ],
3611
+ "is_active": true,
3612
+ "messages": [
3613
+ {
3614
+ "content": "",
3615
+ "role": "assistant",
3616
+ "tool_calls": [
3617
+ { "arguments": { "q": "café" }, "id": "call-ok", "name": "lookup" },
3618
+ { "arguments": { "value": 3 }, "id": "call-failed", "name": "write" }
3619
+ ]
3620
+ },
3621
+ {
3622
+ "content": "{\"a\":[2],\"z\":1}",
3623
+ "name": "lookup",
3624
+ "role": "tool",
3625
+ "tool_call_id": "call-ok"
3626
+ },
3627
+ {
3628
+ "content": "Error: Tool approval timed out",
3629
+ "name": "write",
3630
+ "role": "tool",
3631
+ "tool_call_id": "call-failed"
3632
+ }
3633
+ ],
3634
+ "pending_approvals": [],
3635
+ "rejected_approvals": [
3636
+ {
3637
+ "error_code": "APPROVAL_TIMEOUT",
3638
+ "tool_call_id": "call-failed",
3639
+ "tool_name": "write",
3640
+ "turn_id": "turn-replay"
3641
+ }
3642
+ ],
3643
+ "session_id": "session-replay"
3644
+ },
3645
+ "result": { "event_count": 10 }
3646
+ }
3647
+ },
3648
+ {
3649
+ "id": "replay-json-boolean",
3650
+ "snapshot": {
3651
+ "events": [
3652
+ {
3653
+ "id": "json-event-1",
3654
+ "metadata": {},
3655
+ "sequence": 1,
3656
+ "session_id": "session-json",
3657
+ "type": "session.created",
3658
+ "version": "1.0"
3659
+ },
3660
+ {
3661
+ "id": "json-event-2",
3662
+ "metadata": {},
3663
+ "sequence": 2,
3664
+ "session_id": "session-json",
3665
+ "tool_args": {},
3666
+ "tool_call_id": "call-json",
3667
+ "tool_name": "fixture",
3668
+ "turn_id": "turn-json",
3669
+ "type": "tool.call.requested",
3670
+ "version": "1.0"
3671
+ },
3672
+ {
3673
+ "id": "json-event-3",
3674
+ "metadata": {},
3675
+ "result": true,
3676
+ "sequence": 3,
3677
+ "session_id": "session-json",
3678
+ "tool_call_id": "call-json",
3679
+ "tool_name": "fixture",
3680
+ "turn_id": "turn-json",
3681
+ "type": "tool.call.completed",
3682
+ "version": "1.0"
3683
+ }
3684
+ ],
3685
+ "operation_trace": [],
3686
+ "provider_requests": [],
3687
+ "provider_responses": [],
3688
+ "replay": {
3689
+ "approved_approvals": [],
3690
+ "is_active": true,
3691
+ "messages": [
3692
+ {
3693
+ "content": "",
3694
+ "role": "assistant",
3695
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3696
+ },
3697
+ { "content": "true", "name": "fixture", "role": "tool", "tool_call_id": "call-json" }
3698
+ ],
3699
+ "pending_approvals": [],
3700
+ "rejected_approvals": [],
3701
+ "session_id": "session-json"
3702
+ },
3703
+ "result": { "event_count": 3, "tool_content": "true" }
3704
+ }
3705
+ },
3706
+ {
3707
+ "id": "replay-json-null",
3708
+ "snapshot": {
3709
+ "events": [
3710
+ {
3711
+ "id": "json-event-1",
3712
+ "metadata": {},
3713
+ "sequence": 1,
3714
+ "session_id": "session-json",
3715
+ "type": "session.created",
3716
+ "version": "1.0"
3717
+ },
3718
+ {
3719
+ "id": "json-event-2",
3720
+ "metadata": {},
3721
+ "sequence": 2,
3722
+ "session_id": "session-json",
3723
+ "tool_args": {},
3724
+ "tool_call_id": "call-json",
3725
+ "tool_name": "fixture",
3726
+ "turn_id": "turn-json",
3727
+ "type": "tool.call.requested",
3728
+ "version": "1.0"
3729
+ },
3730
+ {
3731
+ "id": "json-event-3",
3732
+ "metadata": {},
3733
+ "result": null,
3734
+ "sequence": 3,
3735
+ "session_id": "session-json",
3736
+ "tool_call_id": "call-json",
3737
+ "tool_name": "fixture",
3738
+ "turn_id": "turn-json",
3739
+ "type": "tool.call.completed",
3740
+ "version": "1.0"
3741
+ }
3742
+ ],
3743
+ "operation_trace": [],
3744
+ "provider_requests": [],
3745
+ "provider_responses": [],
3746
+ "replay": {
3747
+ "approved_approvals": [],
3748
+ "is_active": true,
3749
+ "messages": [
3750
+ {
3751
+ "content": "",
3752
+ "role": "assistant",
3753
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3754
+ },
3755
+ { "content": "null", "name": "fixture", "role": "tool", "tool_call_id": "call-json" }
3756
+ ],
3757
+ "pending_approvals": [],
3758
+ "rejected_approvals": [],
3759
+ "session_id": "session-json"
3760
+ },
3761
+ "result": { "event_count": 3, "tool_content": "null" }
3762
+ }
3763
+ },
3764
+ {
3765
+ "id": "replay-json-number",
3766
+ "snapshot": {
3767
+ "events": [
3768
+ {
3769
+ "id": "json-event-1",
3770
+ "metadata": {},
3771
+ "sequence": 1,
3772
+ "session_id": "session-json",
3773
+ "type": "session.created",
3774
+ "version": "1.0"
3775
+ },
3776
+ {
3777
+ "id": "json-event-2",
3778
+ "metadata": {},
3779
+ "sequence": 2,
3780
+ "session_id": "session-json",
3781
+ "tool_args": {},
3782
+ "tool_call_id": "call-json",
3783
+ "tool_name": "fixture",
3784
+ "turn_id": "turn-json",
3785
+ "type": "tool.call.requested",
3786
+ "version": "1.0"
3787
+ },
3788
+ {
3789
+ "id": "json-event-3",
3790
+ "metadata": {},
3791
+ "result": 7.5,
3792
+ "sequence": 3,
3793
+ "session_id": "session-json",
3794
+ "tool_call_id": "call-json",
3795
+ "tool_name": "fixture",
3796
+ "turn_id": "turn-json",
3797
+ "type": "tool.call.completed",
3798
+ "version": "1.0"
3799
+ }
3800
+ ],
3801
+ "operation_trace": [],
3802
+ "provider_requests": [],
3803
+ "provider_responses": [],
3804
+ "replay": {
3805
+ "approved_approvals": [],
3806
+ "is_active": true,
3807
+ "messages": [
3808
+ {
3809
+ "content": "",
3810
+ "role": "assistant",
3811
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3812
+ },
3813
+ { "content": "7.5", "name": "fixture", "role": "tool", "tool_call_id": "call-json" }
3814
+ ],
3815
+ "pending_approvals": [],
3816
+ "rejected_approvals": [],
3817
+ "session_id": "session-json"
3818
+ },
3819
+ "result": { "event_count": 3, "tool_content": "7.5" }
3820
+ }
3821
+ },
3822
+ {
3823
+ "id": "replay-json-integral-float",
3824
+ "snapshot": {
3825
+ "events": [
3826
+ {
3827
+ "id": "json-event-1",
3828
+ "metadata": {},
3829
+ "sequence": 1,
3830
+ "session_id": "session-json",
3831
+ "type": "session.created",
3832
+ "version": "1.0"
3833
+ },
3834
+ {
3835
+ "id": "json-event-2",
3836
+ "metadata": {},
3837
+ "sequence": 2,
3838
+ "session_id": "session-json",
3839
+ "tool_args": {},
3840
+ "tool_call_id": "call-json",
3841
+ "tool_name": "fixture",
3842
+ "turn_id": "turn-json",
3843
+ "type": "tool.call.requested",
3844
+ "version": "1.0"
3845
+ },
3846
+ {
3847
+ "id": "json-event-3",
3848
+ "metadata": {},
3849
+ "result": 1.0,
3850
+ "sequence": 3,
3851
+ "session_id": "session-json",
3852
+ "tool_call_id": "call-json",
3853
+ "tool_name": "fixture",
3854
+ "turn_id": "turn-json",
3855
+ "type": "tool.call.completed",
3856
+ "version": "1.0"
3857
+ }
3858
+ ],
3859
+ "operation_trace": [],
3860
+ "provider_requests": [],
3861
+ "provider_responses": [],
3862
+ "replay": {
3863
+ "approved_approvals": [],
3864
+ "is_active": true,
3865
+ "messages": [
3866
+ {
3867
+ "content": "",
3868
+ "role": "assistant",
3869
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3870
+ },
3871
+ { "content": "1", "name": "fixture", "role": "tool", "tool_call_id": "call-json" }
3872
+ ],
3873
+ "pending_approvals": [],
3874
+ "rejected_approvals": [],
3875
+ "session_id": "session-json"
3876
+ },
3877
+ "result": { "event_count": 3, "tool_content": "1" }
3878
+ }
3879
+ },
3880
+ {
3881
+ "id": "replay-json-negative-zero",
3882
+ "snapshot": {
3883
+ "events": [
3884
+ {
3885
+ "id": "json-event-1",
3886
+ "metadata": {},
3887
+ "sequence": 1,
3888
+ "session_id": "session-json",
3889
+ "type": "session.created",
3890
+ "version": "1.0"
3891
+ },
3892
+ {
3893
+ "id": "json-event-2",
3894
+ "metadata": {},
3895
+ "sequence": 2,
3896
+ "session_id": "session-json",
3897
+ "tool_args": {},
3898
+ "tool_call_id": "call-json",
3899
+ "tool_name": "fixture",
3900
+ "turn_id": "turn-json",
3901
+ "type": "tool.call.requested",
3902
+ "version": "1.0"
3903
+ },
3904
+ {
3905
+ "id": "json-event-3",
3906
+ "metadata": {},
3907
+ "result": -0.0,
3908
+ "sequence": 3,
3909
+ "session_id": "session-json",
3910
+ "tool_call_id": "call-json",
3911
+ "tool_name": "fixture",
3912
+ "turn_id": "turn-json",
3913
+ "type": "tool.call.completed",
3914
+ "version": "1.0"
3915
+ }
3916
+ ],
3917
+ "operation_trace": [],
3918
+ "provider_requests": [],
3919
+ "provider_responses": [],
3920
+ "replay": {
3921
+ "approved_approvals": [],
3922
+ "is_active": true,
3923
+ "messages": [
3924
+ {
3925
+ "content": "",
3926
+ "role": "assistant",
3927
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3928
+ },
3929
+ { "content": "0", "name": "fixture", "role": "tool", "tool_call_id": "call-json" }
3930
+ ],
3931
+ "pending_approvals": [],
3932
+ "rejected_approvals": [],
3933
+ "session_id": "session-json"
3934
+ },
3935
+ "result": { "event_count": 3, "tool_content": "0" }
3936
+ }
3937
+ },
3938
+ {
3939
+ "id": "replay-json-exponent-boundaries",
3940
+ "snapshot": {
3941
+ "events": [
3942
+ {
3943
+ "id": "json-event-1",
3944
+ "metadata": {},
3945
+ "sequence": 1,
3946
+ "session_id": "session-json",
3947
+ "type": "session.created",
3948
+ "version": "1.0"
3949
+ },
3950
+ {
3951
+ "id": "json-event-2",
3952
+ "metadata": {},
3953
+ "sequence": 2,
3954
+ "session_id": "session-json",
3955
+ "tool_args": {},
3956
+ "tool_call_id": "call-json",
3957
+ "tool_name": "fixture",
3958
+ "turn_id": "turn-json",
3959
+ "type": "tool.call.requested",
3960
+ "version": "1.0"
3961
+ },
3962
+ {
3963
+ "id": "json-event-3",
3964
+ "metadata": {},
3965
+ "result": [1e-6, 1.25e-7, 4503599627370495.5, -4503599627370495.5],
3966
+ "sequence": 3,
3967
+ "session_id": "session-json",
3968
+ "tool_call_id": "call-json",
3969
+ "tool_name": "fixture",
3970
+ "turn_id": "turn-json",
3971
+ "type": "tool.call.completed",
3972
+ "version": "1.0"
3973
+ }
3974
+ ],
3975
+ "operation_trace": [],
3976
+ "provider_requests": [],
3977
+ "provider_responses": [],
3978
+ "replay": {
3979
+ "approved_approvals": [],
3980
+ "is_active": true,
3981
+ "messages": [
3982
+ {
3983
+ "content": "",
3984
+ "role": "assistant",
3985
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
3986
+ },
3987
+ {
3988
+ "content": "[0.000001,1.25e-7,4503599627370495.5,-4503599627370495.5]",
3989
+ "name": "fixture",
3990
+ "role": "tool",
3991
+ "tool_call_id": "call-json"
3992
+ }
3993
+ ],
3994
+ "pending_approvals": [],
3995
+ "rejected_approvals": [],
3996
+ "session_id": "session-json"
3997
+ },
3998
+ "result": {
3999
+ "event_count": 3,
4000
+ "tool_content": "[0.000001,1.25e-7,4503599627370495.5,-4503599627370495.5]"
4001
+ }
4002
+ }
4003
+ },
4004
+ {
4005
+ "id": "replay-json-numeric-keys",
4006
+ "snapshot": {
4007
+ "events": [
4008
+ {
4009
+ "id": "json-event-1",
4010
+ "metadata": {},
4011
+ "sequence": 1,
4012
+ "session_id": "session-json",
4013
+ "type": "session.created",
4014
+ "version": "1.0"
4015
+ },
4016
+ {
4017
+ "id": "json-event-2",
4018
+ "metadata": {},
4019
+ "sequence": 2,
4020
+ "session_id": "session-json",
4021
+ "tool_args": {},
4022
+ "tool_call_id": "call-json",
4023
+ "tool_name": "fixture",
4024
+ "turn_id": "turn-json",
4025
+ "type": "tool.call.requested",
4026
+ "version": "1.0"
4027
+ },
4028
+ {
4029
+ "id": "json-event-3",
4030
+ "metadata": {},
4031
+ "result": { "10": "ten", "2": "two" },
4032
+ "sequence": 3,
4033
+ "session_id": "session-json",
4034
+ "tool_call_id": "call-json",
4035
+ "tool_name": "fixture",
4036
+ "turn_id": "turn-json",
4037
+ "type": "tool.call.completed",
4038
+ "version": "1.0"
4039
+ }
4040
+ ],
4041
+ "operation_trace": [],
4042
+ "provider_requests": [],
4043
+ "provider_responses": [],
4044
+ "replay": {
4045
+ "approved_approvals": [],
4046
+ "is_active": true,
4047
+ "messages": [
4048
+ {
4049
+ "content": "",
4050
+ "role": "assistant",
4051
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
4052
+ },
4053
+ {
4054
+ "content": "{\"10\":\"ten\",\"2\":\"two\"}",
4055
+ "name": "fixture",
4056
+ "role": "tool",
4057
+ "tool_call_id": "call-json"
4058
+ }
4059
+ ],
4060
+ "pending_approvals": [],
4061
+ "rejected_approvals": [],
4062
+ "session_id": "session-json"
4063
+ },
4064
+ "result": { "event_count": 3, "tool_content": "{\"10\":\"ten\",\"2\":\"two\"}" }
4065
+ }
4066
+ },
4067
+ {
4068
+ "id": "replay-json-safe-integer-boundary",
4069
+ "snapshot": {
4070
+ "events": [
4071
+ {
4072
+ "id": "json-event-1",
4073
+ "metadata": {},
4074
+ "sequence": 1,
4075
+ "session_id": "session-json",
4076
+ "type": "session.created",
4077
+ "version": "1.0"
4078
+ },
4079
+ {
4080
+ "id": "json-event-2",
4081
+ "metadata": {},
4082
+ "sequence": 2,
4083
+ "session_id": "session-json",
4084
+ "tool_args": {},
4085
+ "tool_call_id": "call-json",
4086
+ "tool_name": "fixture",
4087
+ "turn_id": "turn-json",
4088
+ "type": "tool.call.requested",
4089
+ "version": "1.0"
4090
+ },
4091
+ {
4092
+ "id": "json-event-3",
4093
+ "metadata": {},
4094
+ "result": 9007199254740991,
4095
+ "sequence": 3,
4096
+ "session_id": "session-json",
4097
+ "tool_call_id": "call-json",
4098
+ "tool_name": "fixture",
4099
+ "turn_id": "turn-json",
4100
+ "type": "tool.call.completed",
4101
+ "version": "1.0"
4102
+ }
4103
+ ],
4104
+ "operation_trace": [],
4105
+ "provider_requests": [],
4106
+ "provider_responses": [],
4107
+ "replay": {
4108
+ "approved_approvals": [],
4109
+ "is_active": true,
4110
+ "messages": [
4111
+ {
4112
+ "content": "",
4113
+ "role": "assistant",
4114
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
4115
+ },
4116
+ {
4117
+ "content": "9007199254740991",
4118
+ "name": "fixture",
4119
+ "role": "tool",
4120
+ "tool_call_id": "call-json"
4121
+ }
4122
+ ],
4123
+ "pending_approvals": [],
4124
+ "rejected_approvals": [],
4125
+ "session_id": "session-json"
4126
+ },
4127
+ "result": { "event_count": 3, "tool_content": "9007199254740991" }
4128
+ }
4129
+ },
4130
+ {
4131
+ "id": "replay-json-unrepresentable-integer",
4132
+ "snapshot": {
4133
+ "events": [],
4134
+ "operation_trace": [],
4135
+ "provider_requests": [],
4136
+ "provider_responses": [],
4137
+ "replay": {},
4138
+ "result": { "event_count": 3, "rejection": "integer_outside_i_json_safe_range" }
4139
+ }
4140
+ },
4141
+ {
4142
+ "id": "replay-json-utf16-keys",
4143
+ "snapshot": {
4144
+ "events": [
4145
+ {
4146
+ "id": "json-event-1",
4147
+ "metadata": {},
4148
+ "sequence": 1,
4149
+ "session_id": "session-json",
4150
+ "type": "session.created",
4151
+ "version": "1.0"
4152
+ },
4153
+ {
4154
+ "id": "json-event-2",
4155
+ "metadata": {},
4156
+ "sequence": 2,
4157
+ "session_id": "session-json",
4158
+ "tool_args": {},
4159
+ "tool_call_id": "call-json",
4160
+ "tool_name": "fixture",
4161
+ "turn_id": "turn-json",
4162
+ "type": "tool.call.requested",
4163
+ "version": "1.0"
4164
+ },
4165
+ {
4166
+ "id": "json-event-3",
4167
+ "metadata": {},
4168
+ "result": { "": "bmp", "𐀀": "astral" },
4169
+ "sequence": 3,
4170
+ "session_id": "session-json",
4171
+ "tool_call_id": "call-json",
4172
+ "tool_name": "fixture",
4173
+ "turn_id": "turn-json",
4174
+ "type": "tool.call.completed",
4175
+ "version": "1.0"
4176
+ }
4177
+ ],
4178
+ "operation_trace": [],
4179
+ "provider_requests": [],
4180
+ "provider_responses": [],
4181
+ "replay": {
4182
+ "approved_approvals": [],
4183
+ "is_active": true,
4184
+ "messages": [
4185
+ {
4186
+ "content": "",
4187
+ "role": "assistant",
4188
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
4189
+ },
4190
+ {
4191
+ "content": "{\"𐀀\":\"astral\",\"\":\"bmp\"}",
4192
+ "name": "fixture",
4193
+ "role": "tool",
4194
+ "tool_call_id": "call-json"
4195
+ }
4196
+ ],
4197
+ "pending_approvals": [],
4198
+ "rejected_approvals": [],
4199
+ "session_id": "session-json"
4200
+ },
4201
+ "result": { "event_count": 3, "tool_content": "{\"𐀀\":\"astral\",\"\":\"bmp\"}" }
4202
+ }
4203
+ },
4204
+ {
4205
+ "id": "replay-json-string",
4206
+ "snapshot": {
4207
+ "events": [
4208
+ {
4209
+ "id": "json-event-1",
4210
+ "metadata": {},
4211
+ "sequence": 1,
4212
+ "session_id": "session-json",
4213
+ "type": "session.created",
4214
+ "version": "1.0"
4215
+ },
4216
+ {
4217
+ "id": "json-event-2",
4218
+ "metadata": {},
4219
+ "sequence": 2,
4220
+ "session_id": "session-json",
4221
+ "tool_args": {},
4222
+ "tool_call_id": "call-json",
4223
+ "tool_name": "fixture",
4224
+ "turn_id": "turn-json",
4225
+ "type": "tool.call.requested",
4226
+ "version": "1.0"
4227
+ },
4228
+ {
4229
+ "id": "json-event-3",
4230
+ "metadata": {},
4231
+ "result": "café",
4232
+ "sequence": 3,
4233
+ "session_id": "session-json",
4234
+ "tool_call_id": "call-json",
4235
+ "tool_name": "fixture",
4236
+ "turn_id": "turn-json",
4237
+ "type": "tool.call.completed",
4238
+ "version": "1.0"
4239
+ }
4240
+ ],
4241
+ "operation_trace": [],
4242
+ "provider_requests": [],
4243
+ "provider_responses": [],
4244
+ "replay": {
4245
+ "approved_approvals": [],
4246
+ "is_active": true,
4247
+ "messages": [
4248
+ {
4249
+ "content": "",
4250
+ "role": "assistant",
4251
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
4252
+ },
4253
+ {
4254
+ "content": "\"café\"",
4255
+ "name": "fixture",
4256
+ "role": "tool",
4257
+ "tool_call_id": "call-json"
4258
+ }
4259
+ ],
4260
+ "pending_approvals": [],
4261
+ "rejected_approvals": [],
4262
+ "session_id": "session-json"
4263
+ },
4264
+ "result": { "event_count": 3, "tool_content": "\"café\"" }
4265
+ }
4266
+ },
4267
+ {
4268
+ "id": "replay-json-array",
4269
+ "snapshot": {
4270
+ "events": [
4271
+ {
4272
+ "id": "json-event-1",
4273
+ "metadata": {},
4274
+ "sequence": 1,
4275
+ "session_id": "session-json",
4276
+ "type": "session.created",
4277
+ "version": "1.0"
4278
+ },
4279
+ {
4280
+ "id": "json-event-2",
4281
+ "metadata": {},
4282
+ "sequence": 2,
4283
+ "session_id": "session-json",
4284
+ "tool_args": {},
4285
+ "tool_call_id": "call-json",
4286
+ "tool_name": "fixture",
4287
+ "turn_id": "turn-json",
4288
+ "type": "tool.call.requested",
4289
+ "version": "1.0"
4290
+ },
4291
+ {
4292
+ "id": "json-event-3",
4293
+ "metadata": {},
4294
+ "result": [1, false, null],
4295
+ "sequence": 3,
4296
+ "session_id": "session-json",
4297
+ "tool_call_id": "call-json",
4298
+ "tool_name": "fixture",
4299
+ "turn_id": "turn-json",
4300
+ "type": "tool.call.completed",
4301
+ "version": "1.0"
4302
+ }
4303
+ ],
4304
+ "operation_trace": [],
4305
+ "provider_requests": [],
4306
+ "provider_responses": [],
4307
+ "replay": {
4308
+ "approved_approvals": [],
4309
+ "is_active": true,
4310
+ "messages": [
4311
+ {
4312
+ "content": "",
4313
+ "role": "assistant",
4314
+ "tool_calls": [{ "arguments": {}, "id": "call-json", "name": "fixture" }]
4315
+ },
4316
+ {
4317
+ "content": "[1,false,null]",
4318
+ "name": "fixture",
4319
+ "role": "tool",
4320
+ "tool_call_id": "call-json"
4321
+ }
4322
+ ],
4323
+ "pending_approvals": [],
4324
+ "rejected_approvals": [],
4325
+ "session_id": "session-json"
4326
+ },
4327
+ "result": { "event_count": 3, "tool_content": "[1,false,null]" }
4328
+ }
4329
+ },
4330
+ {
4331
+ "id": "same-session-serialization",
4332
+ "snapshot": {
4333
+ "events": [
4334
+ {
4335
+ "id": "event-01",
4336
+ "metadata": {},
4337
+ "sequence": 1,
4338
+ "session_id": "same",
4339
+ "turn_id": "turn-1",
4340
+ "type": "session.created",
4341
+ "version": "1.0"
4342
+ },
4343
+ {
4344
+ "content": "first",
4345
+ "id": "event-02",
4346
+ "metadata": {},
4347
+ "sequence": 2,
4348
+ "session_id": "same",
4349
+ "turn_id": "turn-1",
4350
+ "type": "user.message",
4351
+ "version": "1.0"
4352
+ },
4353
+ {
4354
+ "id": "event-03",
4355
+ "metadata": {},
4356
+ "sequence": 3,
4357
+ "session_id": "same",
4358
+ "turn_id": "turn-1",
4359
+ "type": "agent.reasoning.started",
4360
+ "version": "1.0"
4361
+ },
4362
+ {
4363
+ "delta": "reply:first",
4364
+ "id": "event-04",
4365
+ "metadata": {},
4366
+ "sequence": 4,
4367
+ "session_id": "same",
4368
+ "turn_id": "turn-1",
4369
+ "type": "agent.message.delta",
4370
+ "version": "1.0"
4371
+ },
4372
+ {
4373
+ "content": "reply:first",
4374
+ "id": "event-05",
4375
+ "metadata": {},
4376
+ "sequence": 5,
4377
+ "session_id": "same",
4378
+ "turn_id": "turn-1",
4379
+ "type": "agent.message.completed",
4380
+ "version": "1.0"
4381
+ },
4382
+ {
4383
+ "content": "second",
4384
+ "id": "event-06",
4385
+ "metadata": {},
4386
+ "sequence": 6,
4387
+ "session_id": "same",
4388
+ "turn_id": "turn-2",
4389
+ "type": "user.message",
4390
+ "version": "1.0"
4391
+ },
4392
+ {
4393
+ "id": "event-07",
4394
+ "metadata": {},
4395
+ "sequence": 7,
4396
+ "session_id": "same",
4397
+ "turn_id": "turn-2",
4398
+ "type": "agent.reasoning.started",
4399
+ "version": "1.0"
4400
+ },
4401
+ {
4402
+ "delta": "reply:second",
4403
+ "id": "event-08",
4404
+ "metadata": {},
4405
+ "sequence": 8,
4406
+ "session_id": "same",
4407
+ "turn_id": "turn-2",
4408
+ "type": "agent.message.delta",
4409
+ "version": "1.0"
4410
+ },
4411
+ {
4412
+ "content": "reply:second",
4413
+ "id": "event-09",
4414
+ "metadata": {},
4415
+ "sequence": 9,
4416
+ "session_id": "same",
4417
+ "turn_id": "turn-2",
4418
+ "type": "agent.message.completed",
4419
+ "version": "1.0"
4420
+ }
4421
+ ],
4422
+ "operation_trace": [
4423
+ "provider:start:first",
4424
+ "provider:end:first",
4425
+ "provider:start:second",
4426
+ "provider:end:second"
4427
+ ],
4428
+ "provider_requests": [],
4429
+ "provider_responses": [],
4430
+ "replay": {},
4431
+ "result": {
4432
+ "active_before_release": 1,
4433
+ "max_active": 1,
4434
+ "texts": ["reply:first", "reply:second"]
4435
+ }
4436
+ }
4437
+ },
4438
+ {
4439
+ "id": "cross-session-overlap",
4440
+ "snapshot": {
4441
+ "events": [
4442
+ {
4443
+ "id": "event-01",
4444
+ "metadata": {},
4445
+ "sequence": 1,
4446
+ "session_id": "left",
4447
+ "turn_id": "turn-1",
4448
+ "type": "session.created",
4449
+ "version": "1.0"
4450
+ },
4451
+ {
4452
+ "content": "left",
4453
+ "id": "event-02",
4454
+ "metadata": {},
4455
+ "sequence": 2,
4456
+ "session_id": "left",
4457
+ "turn_id": "turn-1",
4458
+ "type": "user.message",
4459
+ "version": "1.0"
4460
+ },
4461
+ {
4462
+ "id": "event-03",
4463
+ "metadata": {},
4464
+ "sequence": 3,
4465
+ "session_id": "left",
4466
+ "turn_id": "turn-1",
4467
+ "type": "agent.reasoning.started",
4468
+ "version": "1.0"
4469
+ },
4470
+ {
4471
+ "delta": "reply:left",
4472
+ "id": "event-07",
4473
+ "metadata": {},
4474
+ "sequence": 4,
4475
+ "session_id": "left",
4476
+ "turn_id": "turn-1",
4477
+ "type": "agent.message.delta",
4478
+ "version": "1.0"
4479
+ },
4480
+ {
4481
+ "content": "reply:left",
4482
+ "id": "event-08",
4483
+ "metadata": {},
4484
+ "sequence": 5,
4485
+ "session_id": "left",
4486
+ "turn_id": "turn-1",
4487
+ "type": "agent.message.completed",
4488
+ "version": "1.0"
4489
+ },
4490
+ {
4491
+ "id": "event-04",
4492
+ "metadata": {},
4493
+ "sequence": 1,
4494
+ "session_id": "right",
4495
+ "turn_id": "turn-2",
4496
+ "type": "session.created",
4497
+ "version": "1.0"
4498
+ },
4499
+ {
4500
+ "content": "right",
4501
+ "id": "event-05",
4502
+ "metadata": {},
4503
+ "sequence": 2,
4504
+ "session_id": "right",
4505
+ "turn_id": "turn-2",
4506
+ "type": "user.message",
4507
+ "version": "1.0"
4508
+ },
4509
+ {
4510
+ "id": "event-06",
4511
+ "metadata": {},
4512
+ "sequence": 3,
4513
+ "session_id": "right",
4514
+ "turn_id": "turn-2",
4515
+ "type": "agent.reasoning.started",
4516
+ "version": "1.0"
4517
+ },
4518
+ {
4519
+ "delta": "reply:right",
4520
+ "id": "event-09",
4521
+ "metadata": {},
4522
+ "sequence": 4,
4523
+ "session_id": "right",
4524
+ "turn_id": "turn-2",
4525
+ "type": "agent.message.delta",
4526
+ "version": "1.0"
4527
+ },
4528
+ {
4529
+ "content": "reply:right",
4530
+ "id": "event-10",
4531
+ "metadata": {},
4532
+ "sequence": 5,
4533
+ "session_id": "right",
4534
+ "turn_id": "turn-2",
4535
+ "type": "agent.message.completed",
4536
+ "version": "1.0"
4537
+ }
4538
+ ],
4539
+ "operation_trace": [
4540
+ "provider:start:left",
4541
+ "provider:start:right",
4542
+ "provider:end:left",
4543
+ "provider:end:right"
4544
+ ],
4545
+ "provider_requests": [],
4546
+ "provider_responses": [],
4547
+ "replay": {},
4548
+ "result": {
4549
+ "active_before_release": 2,
4550
+ "max_active": 2,
4551
+ "texts": ["reply:left", "reply:right"]
4552
+ }
4553
+ }
4554
+ },
4555
+ {
4556
+ "id": "openai-non-stream",
4557
+ "snapshot": {
4558
+ "events": [],
4559
+ "operation_trace": [],
4560
+ "provider_requests": [
4561
+ {
4562
+ "messages": [
4563
+ { "content": "system", "role": "system" },
4564
+ { "content": "lookup", "role": "user" },
4565
+ {
4566
+ "content": "",
4567
+ "role": "assistant",
4568
+ "tool_calls": [
4569
+ { "arguments": { "q": "old" }, "id": "prior-call", "name": "lookup" }
4570
+ ]
4571
+ },
4572
+ { "content": "{\"ok\":true}", "role": "tool", "tool_call_id": "prior-call" }
4573
+ ],
4574
+ "model": "gpt-5.4-mini",
4575
+ "stream": false,
4576
+ "tools": [
4577
+ { "description": "Lookup", "name": "lookup", "parameters": { "type": "object" } }
4578
+ ]
4579
+ }
4580
+ ],
4581
+ "provider_responses": [
4582
+ {
4583
+ "content": "provider text",
4584
+ "cost_usd": 1.725e-5,
4585
+ "provider_error": {
4586
+ "action": "request",
4587
+ "code": "PROVIDER_NETWORK_ERROR",
4588
+ "retryable": true,
4589
+ "service": "openai",
4590
+ "status": null,
4591
+ "type": "network"
4592
+ },
4593
+ "tokens": { "input": 5, "output": 3 },
4594
+ "tool_calls": [
4595
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4596
+ {
4597
+ "arguments": { "__parse_error": "invalid JSON" },
4598
+ "id": "call-bad",
4599
+ "name": "lookup"
4600
+ }
4601
+ ]
4602
+ }
4603
+ ],
4604
+ "replay": {},
4605
+ "result": {
4606
+ "content": "provider text",
4607
+ "cost_usd": 1.725e-5,
4608
+ "provider_error": {
4609
+ "action": "request",
4610
+ "code": "PROVIDER_NETWORK_ERROR",
4611
+ "retryable": true,
4612
+ "service": "openai",
4613
+ "status": null,
4614
+ "type": "network"
4615
+ },
4616
+ "tokens": { "input": 5, "output": 3 },
4617
+ "tool_calls": [
4618
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4619
+ { "arguments": { "__parse_error": "invalid JSON" }, "id": "call-bad", "name": "lookup" }
4620
+ ]
4621
+ }
4622
+ }
4623
+ },
4624
+ {
4625
+ "id": "openai-stream",
4626
+ "snapshot": {
4627
+ "events": [],
4628
+ "operation_trace": [],
4629
+ "provider_requests": [
4630
+ {
4631
+ "messages": [
4632
+ { "content": "system", "role": "system" },
4633
+ { "content": "lookup", "role": "user" },
4634
+ {
4635
+ "content": "",
4636
+ "role": "assistant",
4637
+ "tool_calls": [
4638
+ { "arguments": { "q": "old" }, "id": "prior-call", "name": "lookup" }
4639
+ ]
4640
+ },
4641
+ { "content": "{\"ok\":true}", "role": "tool", "tool_call_id": "prior-call" }
4642
+ ],
4643
+ "model": "gpt-5.4-mini",
4644
+ "stream": true,
4645
+ "tools": [
4646
+ { "description": "Lookup", "name": "lookup", "parameters": { "type": "object" } }
4647
+ ]
4648
+ }
4649
+ ],
4650
+ "provider_responses": [
4651
+ {
4652
+ "content": "provider text",
4653
+ "cost_usd": 1.725e-5,
4654
+ "provider_error": {
4655
+ "action": "stream",
4656
+ "code": "PROVIDER_NETWORK_ERROR",
4657
+ "retryable": true,
4658
+ "service": "openai",
4659
+ "status": null,
4660
+ "type": "network"
4661
+ },
4662
+ "tokens": { "input": 5, "output": 3 },
4663
+ "tool_calls": [
4664
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4665
+ {
4666
+ "arguments": { "__parse_error": "invalid JSON" },
4667
+ "id": "call-bad",
4668
+ "name": "lookup"
4669
+ }
4670
+ ]
4671
+ }
4672
+ ],
4673
+ "replay": {},
4674
+ "result": {
4675
+ "content": "provider text",
4676
+ "cost_usd": 1.725e-5,
4677
+ "provider_error": {
4678
+ "action": "stream",
4679
+ "code": "PROVIDER_NETWORK_ERROR",
4680
+ "retryable": true,
4681
+ "service": "openai",
4682
+ "status": null,
4683
+ "type": "network"
4684
+ },
4685
+ "tokens": { "input": 5, "output": 3 },
4686
+ "tool_calls": [
4687
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4688
+ { "arguments": { "__parse_error": "invalid JSON" }, "id": "call-bad", "name": "lookup" }
4689
+ ]
4690
+ }
4691
+ }
4692
+ },
4693
+ {
4694
+ "id": "anthropic-non-stream",
4695
+ "snapshot": {
4696
+ "events": [],
4697
+ "operation_trace": [],
4698
+ "provider_requests": [
4699
+ {
4700
+ "messages": [
4701
+ { "content": "lookup", "role": "user" },
4702
+ {
4703
+ "content": "",
4704
+ "role": "assistant",
4705
+ "tool_calls": [
4706
+ { "arguments": { "q": "old" }, "id": "prior-call", "name": "lookup" }
4707
+ ]
4708
+ },
4709
+ { "content": "{\"ok\":true}", "role": "tool", "tool_call_id": "prior-call" }
4710
+ ],
4711
+ "model": "claude-sonnet-4-6",
4712
+ "stream": false,
4713
+ "system": "system",
4714
+ "tools": [
4715
+ { "description": "Lookup", "name": "lookup", "parameters": { "type": "object" } }
4716
+ ]
4717
+ }
4718
+ ],
4719
+ "provider_responses": [
4720
+ {
4721
+ "content": "provider text",
4722
+ "cost_usd": 6e-5,
4723
+ "provider_error": {
4724
+ "action": "request",
4725
+ "code": "PROVIDER_NETWORK_ERROR",
4726
+ "retryable": true,
4727
+ "service": "anthropic",
4728
+ "status": null,
4729
+ "type": "network"
4730
+ },
4731
+ "tokens": { "input": 5, "output": 3 },
4732
+ "tool_calls": [{ "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" }]
4733
+ }
4734
+ ],
4735
+ "replay": {},
4736
+ "result": {
4737
+ "content": "provider text",
4738
+ "cost_usd": 6e-5,
4739
+ "provider_error": {
4740
+ "action": "request",
4741
+ "code": "PROVIDER_NETWORK_ERROR",
4742
+ "retryable": true,
4743
+ "service": "anthropic",
4744
+ "status": null,
4745
+ "type": "network"
4746
+ },
4747
+ "tokens": { "input": 5, "output": 3 },
4748
+ "tool_calls": [{ "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" }]
4749
+ }
4750
+ }
4751
+ },
4752
+ {
4753
+ "id": "anthropic-stream",
4754
+ "snapshot": {
4755
+ "events": [],
4756
+ "operation_trace": [],
4757
+ "provider_requests": [
4758
+ {
4759
+ "messages": [
4760
+ { "content": "lookup", "role": "user" },
4761
+ {
4762
+ "content": "",
4763
+ "role": "assistant",
4764
+ "tool_calls": [
4765
+ { "arguments": { "q": "old" }, "id": "prior-call", "name": "lookup" }
4766
+ ]
4767
+ },
4768
+ { "content": "{\"ok\":true}", "role": "tool", "tool_call_id": "prior-call" }
4769
+ ],
4770
+ "model": "claude-sonnet-4-6",
4771
+ "stream": true,
4772
+ "system": "system",
4773
+ "tools": [
4774
+ { "description": "Lookup", "name": "lookup", "parameters": { "type": "object" } }
4775
+ ]
4776
+ }
4777
+ ],
4778
+ "provider_responses": [
4779
+ {
4780
+ "content": "provider text",
4781
+ "cost_usd": 6e-5,
4782
+ "provider_error": {
4783
+ "action": "stream",
4784
+ "code": "PROVIDER_NETWORK_ERROR",
4785
+ "retryable": true,
4786
+ "service": "anthropic",
4787
+ "status": null,
4788
+ "type": "network"
4789
+ },
4790
+ "tokens": { "input": 5, "output": 3 },
4791
+ "tool_calls": [
4792
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4793
+ {
4794
+ "arguments": { "__parse_error": "invalid JSON" },
4795
+ "id": "call-bad",
4796
+ "name": "lookup"
4797
+ }
4798
+ ]
4799
+ }
4800
+ ],
4801
+ "replay": {},
4802
+ "result": {
4803
+ "content": "provider text",
4804
+ "cost_usd": 6e-5,
4805
+ "provider_error": {
4806
+ "action": "stream",
4807
+ "code": "PROVIDER_NETWORK_ERROR",
4808
+ "retryable": true,
4809
+ "service": "anthropic",
4810
+ "status": null,
4811
+ "type": "network"
4812
+ },
4813
+ "tokens": { "input": 5, "output": 3 },
4814
+ "tool_calls": [
4815
+ { "arguments": { "q": "new" }, "id": "call-ok", "name": "lookup" },
4816
+ { "arguments": { "__parse_error": "invalid JSON" }, "id": "call-bad", "name": "lookup" }
4817
+ ]
4818
+ }
4819
+ }
4820
+ },
4821
+ {
4822
+ "id": "idempotency-permanent-failed",
4823
+ "snapshot": {
4824
+ "events": [],
4825
+ "operation_trace": [],
4826
+ "provider_requests": [],
4827
+ "provider_responses": [],
4828
+ "replay": {},
4829
+ "result": {
4830
+ "claim_kinds": ["owner", "owner"],
4831
+ "failure": { "error_code": "INTEGRATION_API_ERROR", "outcome": "failed", "retryable": false },
4832
+ "handler_count": 2
4833
+ }
4834
+ }
4835
+ },
4836
+ {
4837
+ "id": "idempotency-transient-failed",
4838
+ "snapshot": {
4839
+ "events": [],
4840
+ "operation_trace": [],
4841
+ "provider_requests": [],
4842
+ "provider_responses": [],
4843
+ "replay": {},
4844
+ "result": {
4845
+ "claim_kinds": ["owner", "owner"],
4846
+ "failure": { "error_code": "INTEGRATION_API_ERROR", "outcome": "failed", "retryable": true },
4847
+ "handler_count": 2
4848
+ }
4849
+ }
4850
+ },
4851
+ {
4852
+ "id": "idempotency-unknown",
4853
+ "snapshot": {
4854
+ "events": [],
4855
+ "operation_trace": [],
4856
+ "provider_requests": [],
4857
+ "provider_responses": [],
4858
+ "replay": {},
4859
+ "result": {
4860
+ "claim_kinds": ["owner", "unknown"],
4861
+ "failure": { "error_code": "TOOL_EXECUTION_FAILED", "outcome": "unknown", "retryable": false },
4862
+ "handler_count": 1
4863
+ }
4864
+ }
4865
+ },
4866
+ {
4867
+ "id": "idempotency-completed",
4868
+ "snapshot": {
4869
+ "events": [],
4870
+ "operation_trace": [],
4871
+ "provider_requests": [],
4872
+ "provider_responses": [],
4873
+ "replay": {},
4874
+ "result": {
4875
+ "claim_kinds": ["owner", "completed"],
4876
+ "handler_count": 1,
4877
+ "result": { "ok": true }
4878
+ }
4879
+ }
4880
+ }
4881
+ ],
4882
+ "thirdPartyIntegrationSurface": {
4883
+ "namespace": "sample",
4884
+ "registerAccepts": "ToolRegistry",
4885
+ "registeredCatalogNames": ["sample.full", "sample.minimal"],
4886
+ "tools": [
4887
+ {
4888
+ "catalogName": "sample.full",
4889
+ "declaredName": "full",
4890
+ "parallelSafe": true,
4891
+ "risk": "read",
4892
+ "specKeys": ["description", "name", "parallel_safe", "parameters", "risk", "timeout_ms"],
4893
+ "timeoutMs": 1000
4894
+ },
4895
+ {
4896
+ "catalogName": "sample.minimal",
4897
+ "declaredName": "minimal",
4898
+ "parallelSafe": false,
4899
+ "risk": "read",
4900
+ "specKeys": ["description", "name", "parameters", "risk"],
4901
+ "timeoutMs": null
4902
+ }
4903
+ ]
4904
+ },
4905
+ "version": "1.0.0"
4906
+ }