@oar-sh/oar 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +269 -0
  2. package/README.md +407 -424
  3. package/bin/oar.js +25 -10
  4. package/package.json +7 -4
  5. package/server/README.md +1 -1
  6. package/server/claude-worker/claude-session-process.mjs +981 -44
  7. package/server/claude-worker/claude-session-worker.mjs +45 -4
  8. package/server/claude-worker/claude-turn-publisher.mjs +81 -20
  9. package/server/claude-worker/claude-worker-link-wiring.mjs +9 -0
  10. package/server/copilot-worker/copilot-ask-user-tool.mjs +89 -0
  11. package/server/copilot-worker/copilot-continuation-signals.mjs +55 -0
  12. package/server/copilot-worker/copilot-question-bridge.mjs +34 -12
  13. package/server/copilot-worker/copilot-sdk-event-normalizer.mjs +101 -12
  14. package/server/copilot-worker/copilot-sdk-session-process.mjs +2269 -492
  15. package/server/copilot-worker/copilot-sdk-session-worker.mjs +82 -20
  16. package/server/db-schema.mjs +20 -0
  17. package/server/migrations/0004-steer-settle-markers.mjs +119 -0
  18. package/server/public/app/api-client.js +22 -2
  19. package/server/public/app/ask-user-view.js +102 -13
  20. package/server/public/app/attachments-view.js +37 -2
  21. package/server/public/app/background-task-timeout-options.mjs +9 -0
  22. package/server/public/app/background-tasks-view.mjs +33 -18
  23. package/server/public/app/bootstrap.js +34 -8
  24. package/server/public/app/composer-control-state.mjs +52 -34
  25. package/server/public/app/conversation-draft-sync.mjs +187 -0
  26. package/server/public/app/conversation-list-filter.mjs +86 -0
  27. package/server/public/app/conversation-provider-indicator.mjs +8 -0
  28. package/server/public/app/conversation-view.js +919 -194
  29. package/server/public/app/emoji-view.js +2 -0
  30. package/server/public/app/font-scaling.js +4 -37
  31. package/server/public/app/journal-view.js +145 -5
  32. package/server/public/app/model-selector-options.mjs +1 -1
  33. package/server/public/app/question-multi-select.mjs +52 -0
  34. package/server/public/app/relay-prompt-sanitizer.mjs +17 -2
  35. package/server/public/app/settings-modal.js +8 -6
  36. package/server/public/app/socket-handlers.js +19 -0
  37. package/server/public/app/steered-turn-merge.mjs +100 -0
  38. package/server/public/app/store.js +126 -15
  39. package/server/public/app/sync-outbox.mjs +16 -8
  40. package/server/public/app/tool-activity-emoji.mjs +36 -0
  41. package/server/public/app/transcript-viewport-anchor.mjs +210 -0
  42. package/server/public/index.html +206 -9
  43. package/server/public/sw.js +7 -0
  44. package/server/relay-tools.md +2 -0
  45. package/server/repositories/message-repository.mjs +61 -18
  46. package/server/repositories/question-repository.mjs +15 -0
  47. package/server/repositories/session-repository.mjs +7 -31
  48. package/server/routes/messages-routes.mjs +488 -46
  49. package/server/routes/sessions-routes.mjs +298 -55
  50. package/server/server-runtime.mjs +65 -25
  51. package/server/services/live-turn-picker.mjs +47 -0
  52. package/server/services/relay-prompt-sanitizer.mjs +17 -2
  53. package/server/services/relay-question-context.mjs +46 -0
  54. package/server/services/sdk-session-import-service.mjs +49 -7
  55. package/server/services/session-worker-registry-service.mjs +75 -0
  56. package/server/services/session-worker-supervisor-service.mjs +7 -1
  57. package/server/services/session-worker-websocket-service.mjs +23 -1
  58. package/server/services/steer-resend.mjs +45 -0
  59. package/shared/background-task-timeout.mjs +12 -4
  60. package/shared/control-poller.mjs +4 -1
  61. package/shared/question-multi-select.mjs +16 -0
  62. package/shared/relay-stop-failure.mjs +15 -0
  63. package/shared/slash-command-guard.mjs +76 -0
  64. package/shared/steer-note.mjs +66 -0
  65. package/shared/steer-settle-failure.mjs +89 -0
  66. package/shared/steer-settle-markers.mjs +18 -0
  67. package/shared/worker-crash-guard.mjs +40 -25
  68. package/shared/worker-runtime/heartbeat.mjs +55 -1
  69. package/shared/worker-runtime/runner-link-wiring.mjs +44 -0
  70. package/shared/worker-runtime/worker-websocket-link.mjs +119 -8
  71. package/server/claude-worker/claude-session-test-harness.mjs +0 -250
  72. package/server/claude-worker/fixtures/workflow-run-record.json +0 -1
  73. package/server/copilot-worker/copilot-sdk-test-harness.mjs +0 -382
  74. package/server/copilot-worker/fixtures/abort-turn.json +0 -588
  75. package/server/copilot-worker/fixtures/ask-user-turn.json +0 -1154
  76. package/server/copilot-worker/fixtures/background-timer-continuation.json +0 -445
  77. package/server/copilot-worker/fixtures/background-timer-turn.json +0 -497
  78. package/server/copilot-worker/fixtures/happy-turn.json +0 -566
  79. package/server/copilot-worker/fixtures/quota-turn.json +0 -647
  80. package/server/copilot-worker/fixtures/reasoning-turn.json +0 -625
  81. package/server/copilot-worker/fixtures/resume-turn.json +0 -700
  82. package/server/copilot-worker/fixtures/subagent-turn.json +0 -1378
  83. package/server/copilot-worker/fixtures/tool-permission-turn.json +0 -1293
  84. package/server/routes/messages-routes-test-harness.mjs +0 -111
  85. package/server/services/fixtures/claude-auth-stub.cmd +0 -1
  86. package/server/services/fixtures/claude-auth-stub.mjs +0 -76
  87. package/server/services/fixtures/claude-auth-stub.sh +0 -4
  88. package/server/services/fixtures/cli-install-stub.cmd +0 -1
  89. package/server/services/fixtures/cli-install-stub.mjs +0 -98
  90. package/server/services/fixtures/cli-install-stub.sh +0 -4
  91. package/server/services/fixtures/grok-stub.cmd +0 -1
  92. package/server/services/fixtures/grok-stub.mjs +0 -89
  93. package/server/services/fixtures/grok-stub.sh +0 -4
  94. package/shared/fixtures/copilot-catalog-raw-2026-09-07.json +0 -2363
@@ -1,1293 +0,0 @@
1
- [
2
- {
3
- "type": "pending_messages.modified",
4
- "data": {},
5
- "ephemeral": true,
6
- "id": "07afb991-8692-431d-8ce2-332e5d113bfa",
7
- "timestamp": "2026-08-31T09:23:30.351Z",
8
- "parentId": "c9e5606d-6785-4203-93b4-da752f8a0acf"
9
- },
10
- {
11
- "type": "pending_messages.modified",
12
- "data": {},
13
- "ephemeral": true,
14
- "id": "4660c90c-dfec-4a23-9aa9-c88969c2766a",
15
- "timestamp": "2026-08-31T09:23:30.352Z",
16
- "parentId": "c9e5606d-6785-4203-93b4-da752f8a0acf"
17
- },
18
- {
19
- "type": "session.mcp_servers_loaded",
20
- "data": {
21
- "servers": [
22
- {
23
- "name": "github-mcp-server",
24
- "status": "connected",
25
- "source": "builtin"
26
- }
27
- ]
28
- },
29
- "ephemeral": true,
30
- "id": "1d5e7c3f-788b-445f-be29-687cab12ede1",
31
- "timestamp": "2026-08-31T09:23:30.355Z",
32
- "parentId": "c9e5606d-6785-4203-93b4-da752f8a0acf"
33
- },
34
- {
35
- "type": "session.tools_updated",
36
- "data": {
37
- "model": "spike-model"
38
- },
39
- "ephemeral": true,
40
- "id": "4e397996-c9fe-4cec-96bd-026e2dd5f379",
41
- "timestamp": "2026-08-31T09:23:30.363Z",
42
- "parentId": "c9e5606d-6785-4203-93b4-da752f8a0acf"
43
- },
44
- {
45
- "type": "user.message",
46
- "data": {
47
- "content": "SPIKE_SHELL: run the echo command",
48
- "transformedContent": "<current_datetime>2026-08-31T09:23:30.363+00:00</current_datetime>\n\nSPIKE_SHELL: run the echo command",
49
- "supportedNativeDocumentMimeTypes": [],
50
- "delivery": "idle",
51
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
52
- "turnId": "0",
53
- "parentAgentTaskId": "87cf283b-ed17-4d0c-b788-e819fafa021d"
54
- },
55
- "id": "1c5f2036-4560-4560-af0e-6d97158eee0b",
56
- "timestamp": "2026-08-31T09:23:30.363Z",
57
- "parentId": "c9e5606d-6785-4203-93b4-da752f8a0acf"
58
- },
59
- {
60
- "type": "model.turn_started",
61
- "data": {
62
- "kind": "turn_started",
63
- "model": "spike-model",
64
- "modelInfo": {
65
- "id": "spike-model",
66
- "name": "spike-model",
67
- "capabilities": {
68
- "supports": {
69
- "vision": false,
70
- "adaptive_thinking": "unsupported"
71
- },
72
- "limits": {
73
- "max_prompt_tokens": 128000,
74
- "max_context_window_tokens": 200000,
75
- "vision": {
76
- "max_prompt_image_size": 3145728,
77
- "max_prompt_images": 1,
78
- "supported_media_types": [
79
- "image/jpeg",
80
- "image/png",
81
- "image/webp"
82
- ]
83
- }
84
- }
85
- },
86
- "supported_endpoints": [
87
- "/chat/completions"
88
- ]
89
- },
90
- "turn": 0,
91
- "timestampMs": 1788168210367
92
- },
93
- "ephemeral": true,
94
- "id": "71859993-995c-46fb-a8b3-445e001d5f25",
95
- "timestamp": "2026-08-31T09:23:30.367Z",
96
- "parentId": "96d222dc-9f70-4a43-a790-86d0c1277eb9"
97
- },
98
- {
99
- "type": "assistant.turn_start",
100
- "data": {
101
- "turnId": "0",
102
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038"
103
- },
104
- "id": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf",
105
- "timestamp": "2026-08-31T09:23:30.368Z",
106
- "parentId": "96d222dc-9f70-4a43-a790-86d0c1277eb9"
107
- },
108
- {
109
- "type": "session.usage_info",
110
- "ephemeral": true,
111
- "data": {
112
- "tokenLimit": 128000,
113
- "currentTokens": 12565,
114
- "messagesLength": 4,
115
- "systemTokens": 5597,
116
- "conversationTokens": 81,
117
- "toolDefinitionsTokens": 6887,
118
- "isInitial": true
119
- },
120
- "id": "4363338b-1319-494a-ae40-c8b986bdfee3",
121
- "timestamp": "2026-08-31T09:23:30.398Z",
122
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
123
- },
124
- {
125
- "type": "model.log",
126
- "data": {
127
- "kind": "log",
128
- "level": "debug",
129
- "message": "Model does not support vision, skipping image processing"
130
- },
131
- "ephemeral": true,
132
- "id": "c522baa6-67ae-4df5-ab02-beab3b09f9f6",
133
- "timestamp": "2026-08-31T09:23:30.399Z",
134
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
135
- },
136
- {
137
- "type": "model.call_start",
138
- "data": {
139
- "turnId": "0",
140
- "model": "spike-model"
141
- },
142
- "ephemeral": true,
143
- "id": "98c5b64f-82ef-472b-9d60-9fee10d175c1",
144
- "timestamp": "2026-08-31T09:23:30.400Z",
145
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
146
- },
147
- {
148
- "type": "model.model_call_started",
149
- "data": {
150
- "kind": "model_call_started",
151
- "model": "spike-model",
152
- "modelInfo": {
153
- "id": "spike-model",
154
- "name": "spike-model",
155
- "capabilities": {
156
- "supports": {
157
- "vision": false,
158
- "adaptive_thinking": "unsupported"
159
- },
160
- "limits": {
161
- "max_prompt_tokens": 128000,
162
- "max_context_window_tokens": 200000,
163
- "vision": {
164
- "max_prompt_image_size": 3145728,
165
- "max_prompt_images": 1,
166
- "supported_media_types": [
167
- "image/jpeg",
168
- "image/png",
169
- "image/webp"
170
- ]
171
- }
172
- }
173
- },
174
- "supported_endpoints": [
175
- "/chat/completions"
176
- ]
177
- },
178
- "turn": 0,
179
- "timestampMs": 1788168210400
180
- },
181
- "ephemeral": true,
182
- "id": "29ef17f0-0653-4394-aea4-ab1e33c1067e",
183
- "timestamp": "2026-08-31T09:23:30.400Z",
184
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
185
- },
186
- {
187
- "type": "assistant.streaming_delta",
188
- "data": {
189
- "totalResponseSizeBytes": 33
190
- },
191
- "ephemeral": true,
192
- "id": "23697e21-39eb-42b4-ab96-ce4a46e3fd10",
193
- "timestamp": "2026-08-31T09:23:30.402Z",
194
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
195
- },
196
- {
197
- "type": "assistant.tool_call_delta",
198
- "data": {
199
- "toolCallId": "call_spike_2",
200
- "toolName": "bash",
201
- "toolType": "function",
202
- "inputDelta": "{\"command\":\"echo SPIKE_PERM\"}"
203
- },
204
- "ephemeral": true,
205
- "id": "8f331db6-a322-4b70-851a-af618c6da77e",
206
- "timestamp": "2026-08-31T09:23:30.403Z",
207
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
208
- },
209
- {
210
- "type": "assistant.usage",
211
- "data": {
212
- "model": "spike-model",
213
- "inputTokens": 0,
214
- "outputTokens": 0,
215
- "cacheReadTokens": 0,
216
- "cacheWriteTokens": 0,
217
- "reasoningTokens": 0,
218
- "cost": 0,
219
- "duration": 5,
220
- "timeToFirstTokenMs": 1.891769,
221
- "outputTtftMs": 1.93505,
222
- "interTokenLatencyMs": 0.2085925,
223
- "initiator": "user",
224
- "interactionType": "conversation-agent",
225
- "isByok": true,
226
- "isAuto": false,
227
- "maxPromptTokens": 128000,
228
- "transport": "http",
229
- "apiCallId": "chatcmpl-spike-2",
230
- "rte": false,
231
- "apiEndpoint": "/chat/completions",
232
- "quotaSnapshots": {},
233
- "reasoningEffort": "medium",
234
- "availableToolCount": 22,
235
- "toolTokenCount": 6887,
236
- "frontierSource": "estimated",
237
- "cacheDetailsReported": false,
238
- "numToolCalls": 1,
239
- "toolCounts": {
240
- "bash": 1
241
- },
242
- "finishReason": "tool_calls",
243
- "contentFilterTriggered": false
244
- },
245
- "ephemeral": true,
246
- "id": "eb2a4ca9-434f-4caf-9594-2d60d2c132ad",
247
- "timestamp": "2026-08-31T09:23:30.405Z",
248
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
249
- },
250
- {
251
- "type": "model.model_call_success",
252
- "data": {
253
- "kind": "model_call_success",
254
- "turn": 0,
255
- "modelCallDurationMs": 5,
256
- "ttftMs": 1.891769,
257
- "outputTtftMs": 1.93505,
258
- "interTokenLatencyMs": 0.2085925,
259
- "modelCall": {
260
- "model": "spike-model",
261
- "api_id": "chatcmpl-spike-2",
262
- "api_endpoint": "/chat/completions",
263
- "request_id": null,
264
- "client_request_id": null,
265
- "service_request_id": null,
266
- "rte": false,
267
- "initiator": "user",
268
- "transport": "http"
269
- },
270
- "responseChunk": {
271
- "object": "chat.completion.chunk",
272
- "id": "chatcmpl-spike-2",
273
- "choices": [
274
- {
275
- "delta": {
276
- "role": "assistant",
277
- "content": null,
278
- "refusal": null,
279
- "tool_calls": [
280
- {
281
- "id": "call_spike_2",
282
- "type": "function",
283
- "function": {
284
- "name": "bash",
285
- "arguments": "{\"command\":\"echo SPIKE_PERM\"}"
286
- },
287
- "index": 0
288
- }
289
- ]
290
- },
291
- "finish_reason": "tool_calls",
292
- "index": 0
293
- }
294
- ],
295
- "created": 1788168210,
296
- "model": "spike-model"
297
- },
298
- "quotaSnapshots": {},
299
- "rte": false,
300
- "reasoningEffort": "medium",
301
- "maxPromptTokens": 128000,
302
- "toolCount": 22,
303
- "toolTokenCount": 6887
304
- },
305
- "ephemeral": true,
306
- "id": "fe0f4eb2-2719-4062-bc4c-40bfd00212c3",
307
- "timestamp": "2026-08-31T09:23:30.407Z",
308
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
309
- },
310
- {
311
- "type": "model.call_finished",
312
- "data": {
313
- "turnId": "0",
314
- "dispatchDurationMs": 5,
315
- "outcome": "success",
316
- "editClassifierVersion": 1,
317
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
318
- "containsBuiltInFileEditRequest": false
319
- },
320
- "ephemeral": true,
321
- "id": "a730bd61-6c7f-403d-970d-e882fd359ede",
322
- "timestamp": "2026-08-31T09:23:30.407Z",
323
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
324
- },
325
- {
326
- "type": "model.message",
327
- "data": {
328
- "kind": "message",
329
- "turn": 0,
330
- "modelCall": {
331
- "model": "spike-model",
332
- "api_id": "chatcmpl-spike-2",
333
- "api_endpoint": "/chat/completions",
334
- "request_id": null,
335
- "client_request_id": null,
336
- "service_request_id": null,
337
- "rte": false,
338
- "initiator": "user",
339
- "transport": "http"
340
- },
341
- "message": {
342
- "role": "assistant",
343
- "content": null,
344
- "refusal": null,
345
- "tool_calls": [
346
- {
347
- "id": "call_spike_2",
348
- "type": "function",
349
- "function": {
350
- "name": "bash",
351
- "arguments": "{\"command\":\"echo SPIKE_PERM\"}"
352
- }
353
- }
354
- ],
355
- "apiCallId": "chatcmpl-spike-2"
356
- }
357
- },
358
- "ephemeral": true,
359
- "id": "7716db4b-c6f9-44b7-9bdd-446ee05ac3f4",
360
- "timestamp": "2026-08-31T09:23:30.407Z",
361
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
362
- },
363
- {
364
- "type": "assistant.message",
365
- "data": {
366
- "messageId": "b329431a-1631-44b9-99ef-ed24865c1842",
367
- "model": "spike-model",
368
- "content": "",
369
- "toolRequests": [
370
- {
371
- "toolCallId": "call_spike_2",
372
- "name": "bash",
373
- "arguments": {
374
- "command": "echo SPIKE_PERM"
375
- },
376
- "type": "function",
377
- "intentionSummary": "echo SPIKE_PERM"
378
- }
379
- ],
380
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
381
- "turnId": "0",
382
- "rte": false,
383
- "apiCallId": "chatcmpl-spike-2"
384
- },
385
- "id": "bb4d4694-bf3e-4a73-bf79-7a1ca070a089",
386
- "timestamp": "2026-08-31T09:23:30.408Z",
387
- "parentId": "af3a446e-99c9-4c9e-8b3d-c71e7d3e1caf"
388
- },
389
- {
390
- "type": "tool.execution_start",
391
- "data": {
392
- "toolCallId": "call_spike_2",
393
- "toolName": "bash",
394
- "arguments": {
395
- "command": "echo SPIKE_PERM"
396
- },
397
- "turnId": "0",
398
- "model": "spike-model",
399
- "shellToolInfo": {
400
- "possiblePaths": [],
401
- "hasWriteFileRedirection": false
402
- }
403
- },
404
- "id": "ff0f27b6-f87c-4f4d-9351-8de145b6858f",
405
- "timestamp": "2026-08-31T09:23:30.409Z",
406
- "parentId": "bb4d4694-bf3e-4a73-bf79-7a1ca070a089"
407
- },
408
- {
409
- "type": "session.background_tasks_changed",
410
- "data": {},
411
- "ephemeral": true,
412
- "id": "55577b8a-3125-44cd-8821-8c988a81e019",
413
- "timestamp": "2026-08-31T09:23:30.435Z",
414
- "parentId": "ff0f27b6-f87c-4f4d-9351-8de145b6858f"
415
- },
416
- {
417
- "type": "session.background_tasks_changed",
418
- "data": {},
419
- "ephemeral": true,
420
- "id": "8ab5ad83-1264-4a99-8299-b03099b66bd6",
421
- "timestamp": "2026-08-31T09:23:30.436Z",
422
- "parentId": "ff0f27b6-f87c-4f4d-9351-8de145b6858f"
423
- },
424
- {
425
- "type": "permission.requested",
426
- "data": {
427
- "requestId": "157990c8-1c8d-4f5d-a7b4-db3c6a6385ea",
428
- "permissionRequest": {
429
- "kind": "shell",
430
- "toolCallId": "call_spike_2",
431
- "fullCommandText": "echo SPIKE_PERM",
432
- "intention": "Running command",
433
- "commands": [
434
- {
435
- "identifier": "echo SPIKE_PERM",
436
- "readOnly": false
437
- }
438
- ],
439
- "commandSegments": [
440
- {
441
- "identifier": "echo",
442
- "fullCommandText": "echo SPIKE_PERM"
443
- }
444
- ],
445
- "possiblePaths": [],
446
- "possibleUrls": [],
447
- "hasWriteFileRedirection": false,
448
- "canOfferSessionApproval": false
449
- },
450
- "promptRequest": {
451
- "kind": "commands",
452
- "fullCommandText": "echo SPIKE_PERM",
453
- "intention": "Running command",
454
- "commandIdentifiers": [
455
- "echo SPIKE_PERM"
456
- ],
457
- "canOfferSessionApproval": false,
458
- "toolCallId": "call_spike_2"
459
- }
460
- },
461
- "id": "64aef674-be13-43e1-849a-68d6d06d4239",
462
- "timestamp": "2026-08-31T09:23:30.436Z",
463
- "parentId": "ff0f27b6-f87c-4f4d-9351-8de145b6858f"
464
- },
465
- {
466
- "type": "session.background_tasks_changed",
467
- "data": {},
468
- "ephemeral": true,
469
- "id": "5cd43eb3-291b-4ad4-8229-f80851a02972",
470
- "timestamp": "2026-08-31T09:23:30.437Z",
471
- "parentId": "64aef674-be13-43e1-849a-68d6d06d4239"
472
- },
473
- {
474
- "type": "permission.completed",
475
- "data": {
476
- "requestId": "157990c8-1c8d-4f5d-a7b4-db3c6a6385ea",
477
- "toolCallId": "call_spike_2",
478
- "result": {
479
- "kind": "approved"
480
- }
481
- },
482
- "id": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94",
483
- "timestamp": "2026-08-31T09:23:30.442Z",
484
- "parentId": "64aef674-be13-43e1-849a-68d6d06d4239"
485
- },
486
- {
487
- "type": "session.background_tasks_changed",
488
- "data": {},
489
- "ephemeral": true,
490
- "id": "9d775618-cff3-44af-a454-46e39de8f52b",
491
- "timestamp": "2026-08-31T09:23:30.443Z",
492
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
493
- },
494
- {
495
- "type": "session.background_tasks_changed",
496
- "data": {},
497
- "ephemeral": true,
498
- "id": "7962c1a6-8451-4da7-b65c-e5101717e096",
499
- "timestamp": "2026-08-31T09:23:30.444Z",
500
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
501
- },
502
- {
503
- "type": "session.background_tasks_changed",
504
- "data": {},
505
- "ephemeral": true,
506
- "id": "265b70ff-e46f-4bb9-9a6d-6243bc0e97b6",
507
- "timestamp": "2026-08-31T09:23:30.444Z",
508
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
509
- },
510
- {
511
- "type": "session.background_tasks_changed",
512
- "data": {},
513
- "ephemeral": true,
514
- "id": "38ceb111-6427-431f-b52e-df5d408bb16e",
515
- "timestamp": "2026-08-31T09:23:30.444Z",
516
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
517
- },
518
- {
519
- "type": "session.background_tasks_changed",
520
- "data": {},
521
- "ephemeral": true,
522
- "id": "5cfc5e04-1198-40aa-aa90-8dad64aa640a",
523
- "timestamp": "2026-08-31T09:23:30.452Z",
524
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
525
- },
526
- {
527
- "type": "session.background_tasks_changed",
528
- "data": {},
529
- "ephemeral": true,
530
- "id": "37b28332-1260-4bef-8bb5-0d18825b5193",
531
- "timestamp": "2026-08-31T09:23:30.454Z",
532
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
533
- },
534
- {
535
- "type": "session.background_tasks_changed",
536
- "data": {},
537
- "ephemeral": true,
538
- "id": "316d3189-c50b-4e14-8f2d-d3f22a3231e1",
539
- "timestamp": "2026-08-31T09:23:30.455Z",
540
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
541
- },
542
- {
543
- "type": "sandbox.decision",
544
- "data": {
545
- "kind": "enforcement_state",
546
- "control": "process",
547
- "outcome": "inactive",
548
- "toolCallId": "call_spike_2",
549
- "platform": "linux",
550
- "backend": "unsupported",
551
- "enforcementPoint": "shell"
552
- },
553
- "ephemeral": true,
554
- "id": "15e14d5f-c0e6-4c3a-b534-80fae45fdc29",
555
- "timestamp": "2026-08-31T09:23:30.457Z",
556
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
557
- },
558
- {
559
- "type": "tool.execution_partial_result",
560
- "data": {
561
- "toolCallId": "call_spike_2",
562
- "partialOutput": "SPIKE_PERM\n"
563
- },
564
- "ephemeral": true,
565
- "id": "3474aaf6-6645-457f-a8dd-e7a2d4b4f279",
566
- "timestamp": "2026-08-31T09:23:30.457Z",
567
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
568
- },
569
- {
570
- "type": "tool.execution_partial_result",
571
- "data": {
572
- "toolCallId": "call_spike_2",
573
- "partialOutput": "SPIKE_PERM\n"
574
- },
575
- "ephemeral": true,
576
- "id": "3875e117-a152-4a91-ae90-b1cbc0a4b197",
577
- "timestamp": "2026-08-31T09:23:30.457Z",
578
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
579
- },
580
- {
581
- "type": "session.background_tasks_changed",
582
- "data": {},
583
- "ephemeral": true,
584
- "id": "1e3b3fb8-495d-4df8-96ea-faba0498305b",
585
- "timestamp": "2026-08-31T09:23:30.458Z",
586
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
587
- },
588
- {
589
- "type": "session.background_tasks_changed",
590
- "data": {},
591
- "ephemeral": true,
592
- "id": "1a083fd7-aeee-4ab2-954f-6e18b9e9cf51",
593
- "timestamp": "2026-08-31T09:23:30.458Z",
594
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
595
- },
596
- {
597
- "type": "session.background_tasks_changed",
598
- "data": {},
599
- "ephemeral": true,
600
- "id": "39fd5255-5a3b-4e5e-b045-63301d1e32e6",
601
- "timestamp": "2026-08-31T09:23:30.458Z",
602
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
603
- },
604
- {
605
- "type": "session.background_tasks_changed",
606
- "data": {},
607
- "ephemeral": true,
608
- "id": "fe9978a3-5a1b-4cdf-b189-5ea7d3b51ed8",
609
- "timestamp": "2026-08-31T09:23:30.459Z",
610
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
611
- },
612
- {
613
- "type": "session.background_tasks_changed",
614
- "data": {},
615
- "ephemeral": true,
616
- "id": "b7eebaf8-cdde-43b4-867d-cf6e4cf36d5c",
617
- "timestamp": "2026-08-31T09:23:30.459Z",
618
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
619
- },
620
- {
621
- "type": "session.background_tasks_changed",
622
- "data": {},
623
- "ephemeral": true,
624
- "id": "9559050a-4f6a-4446-b72e-33c7a59ee374",
625
- "timestamp": "2026-08-31T09:23:30.459Z",
626
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
627
- },
628
- {
629
- "type": "session.background_tasks_changed",
630
- "data": {},
631
- "ephemeral": true,
632
- "id": "ab27f70a-f682-45c1-ad05-2020427d5c1c",
633
- "timestamp": "2026-08-31T09:23:30.459Z",
634
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
635
- },
636
- {
637
- "type": "session.background_tasks_changed",
638
- "data": {},
639
- "ephemeral": true,
640
- "id": "bd51f220-f9db-4552-8b9b-a4ec7e53e3ea",
641
- "timestamp": "2026-08-31T09:23:30.460Z",
642
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
643
- },
644
- {
645
- "type": "session.background_tasks_changed",
646
- "data": {},
647
- "ephemeral": true,
648
- "id": "a7e92275-76a0-4ad5-a24a-1d80918a975b",
649
- "timestamp": "2026-08-31T09:23:30.462Z",
650
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
651
- },
652
- {
653
- "type": "session.background_tasks_changed",
654
- "data": {},
655
- "ephemeral": true,
656
- "id": "701bb0b9-830a-4d3b-b796-9a9fd7eb7391",
657
- "timestamp": "2026-08-31T09:23:30.464Z",
658
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
659
- },
660
- {
661
- "type": "session.background_tasks_changed",
662
- "data": {},
663
- "ephemeral": true,
664
- "id": "e0baa17b-62d9-4e2e-826f-87e239c67cdf",
665
- "timestamp": "2026-08-31T09:23:30.465Z",
666
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
667
- },
668
- {
669
- "type": "model.message",
670
- "data": {
671
- "kind": "message",
672
- "turn": 0,
673
- "modelCall": {
674
- "model": "spike-model",
675
- "api_id": "chatcmpl-spike-2",
676
- "api_endpoint": "/chat/completions",
677
- "request_id": null,
678
- "client_request_id": null,
679
- "service_request_id": null,
680
- "rte": false,
681
- "initiator": "user",
682
- "transport": "http"
683
- },
684
- "message": {
685
- "role": "tool",
686
- "tool_call_id": "call_spike_2",
687
- "content": "SPIKE_PERM\n<shellId: 0 completed with exit code 0>"
688
- }
689
- },
690
- "ephemeral": true,
691
- "id": "19781311-8677-4233-9efd-5cebea08b96e",
692
- "timestamp": "2026-08-31T09:23:30.465Z",
693
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
694
- },
695
- {
696
- "type": "session.background_tasks_changed",
697
- "data": {},
698
- "ephemeral": true,
699
- "id": "abbc3d9e-c7a8-45ad-9094-4af281b5c48b",
700
- "timestamp": "2026-08-31T09:23:30.466Z",
701
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
702
- },
703
- {
704
- "type": "tool.execution_complete",
705
- "data": {
706
- "toolCallId": "call_spike_2",
707
- "model": "spike-model",
708
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
709
- "turnId": "0",
710
- "rte": false,
711
- "success": true,
712
- "result": {
713
- "content": "SPIKE_PERM\n<shellId: 0 completed with exit code 0>",
714
- "detailedContent": "SPIKE_PERM\n<shellId: 0 completed with exit code 0>",
715
- "contents": [
716
- {
717
- "type": "shell_exit",
718
- "shellId": "0",
719
- "exitCode": 0,
720
- "cwd": "/tmp/relay-fixture-workspace",
721
- "outputPreview": "SPIKE_PERM\n"
722
- }
723
- ]
724
- },
725
- "toolTelemetry": {
726
- "properties": {
727
- "customTimeout": "false",
728
- "executionMode": "sync",
729
- "detached": "false",
730
- "sandboxApplied": "false",
731
- "sandboxOptOutRequested": "false"
732
- },
733
- "metrics": {
734
- "commandTimeout": 30000
735
- }
736
- }
737
- },
738
- "id": "571076a7-43d9-4d6c-9397-e3a9d72a7ada",
739
- "timestamp": "2026-08-31T09:23:30.466Z",
740
- "parentId": "4f91c2cc-c1a0-46c9-923c-21ef5cecdc94"
741
- },
742
- {
743
- "type": "model.tool_execution",
744
- "data": {
745
- "kind": "tool_execution",
746
- "turn": 0,
747
- "toolCallId": "call_spike_2",
748
- "toolResult": {
749
- "textResultForLlm": "SPIKE_PERM\n<shellId: 0 completed with exit code 0>",
750
- "resultType": "success",
751
- "sessionLog": "SPIKE_PERM\n<shellId: 0 completed with exit code 0>",
752
- "toolTelemetry": {
753
- "properties": {
754
- "customTimeout": "false",
755
- "executionMode": "sync",
756
- "detached": "false",
757
- "sandboxApplied": "false",
758
- "sandboxOptOutRequested": "false"
759
- },
760
- "metrics": {
761
- "commandTimeout": 30000
762
- }
763
- },
764
- "contents": [
765
- {
766
- "type": "shell_exit",
767
- "shellId": "0",
768
- "exitCode": 0,
769
- "cwd": "/tmp/relay-fixture-workspace",
770
- "outputPreview": "SPIKE_PERM\n"
771
- }
772
- ]
773
- },
774
- "durationMs": 54.256086,
775
- "rte": false
776
- },
777
- "ephemeral": true,
778
- "id": "aa53abce-ed04-42b6-a77c-d855fbc1eac3",
779
- "timestamp": "2026-08-31T09:23:30.468Z",
780
- "parentId": "571076a7-43d9-4d6c-9397-e3a9d72a7ada"
781
- },
782
- {
783
- "type": "model.turn_ended",
784
- "data": {
785
- "kind": "turn_ended",
786
- "model": "spike-model",
787
- "modelInfo": {
788
- "id": "spike-model",
789
- "name": "spike-model",
790
- "capabilities": {
791
- "supports": {
792
- "vision": false,
793
- "adaptive_thinking": "unsupported"
794
- },
795
- "limits": {
796
- "max_prompt_tokens": 128000,
797
- "max_context_window_tokens": 200000,
798
- "vision": {
799
- "max_prompt_image_size": 3145728,
800
- "max_prompt_images": 1,
801
- "supported_media_types": [
802
- "image/jpeg",
803
- "image/png",
804
- "image/webp"
805
- ]
806
- }
807
- }
808
- },
809
- "supported_endpoints": [
810
- "/chat/completions"
811
- ]
812
- },
813
- "turn": 0,
814
- "timestampMs": 1788168210472
815
- },
816
- "ephemeral": true,
817
- "id": "80500500-7c1c-429b-8faa-7c295779f803",
818
- "timestamp": "2026-08-31T09:23:30.472Z",
819
- "parentId": "571076a7-43d9-4d6c-9397-e3a9d72a7ada"
820
- },
821
- {
822
- "type": "assistant.turn_end",
823
- "data": {
824
- "turnId": "0"
825
- },
826
- "id": "d5070fe6-4882-4d67-94f4-d8bbebba3491",
827
- "timestamp": "2026-08-31T09:23:30.472Z",
828
- "parentId": "571076a7-43d9-4d6c-9397-e3a9d72a7ada"
829
- },
830
- {
831
- "type": "model.turn_started",
832
- "data": {
833
- "kind": "turn_started",
834
- "model": "spike-model",
835
- "modelInfo": {
836
- "id": "spike-model",
837
- "name": "spike-model",
838
- "capabilities": {
839
- "supports": {
840
- "vision": false,
841
- "adaptive_thinking": "unsupported"
842
- },
843
- "limits": {
844
- "max_prompt_tokens": 128000,
845
- "max_context_window_tokens": 200000,
846
- "vision": {
847
- "max_prompt_image_size": 3145728,
848
- "max_prompt_images": 1,
849
- "supported_media_types": [
850
- "image/jpeg",
851
- "image/png",
852
- "image/webp"
853
- ]
854
- }
855
- }
856
- },
857
- "supported_endpoints": [
858
- "/chat/completions"
859
- ]
860
- },
861
- "turn": 1,
862
- "timestampMs": 1788168210472
863
- },
864
- "ephemeral": true,
865
- "id": "f70fefd2-9167-431e-a51f-7d74e4004eea",
866
- "timestamp": "2026-08-31T09:23:30.472Z",
867
- "parentId": "d5070fe6-4882-4d67-94f4-d8bbebba3491"
868
- },
869
- {
870
- "type": "assistant.turn_start",
871
- "data": {
872
- "turnId": "1",
873
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038"
874
- },
875
- "id": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c",
876
- "timestamp": "2026-08-31T09:23:30.472Z",
877
- "parentId": "d5070fe6-4882-4d67-94f4-d8bbebba3491"
878
- },
879
- {
880
- "type": "session.usage_info",
881
- "ephemeral": true,
882
- "data": {
883
- "tokenLimit": 128000,
884
- "currentTokens": 12618,
885
- "messagesLength": 6,
886
- "systemTokens": 5597,
887
- "conversationTokens": 134,
888
- "toolDefinitionsTokens": 6887,
889
- "isInitial": false
890
- },
891
- "id": "d8513d7e-9122-4845-a1b2-4471a405b493",
892
- "timestamp": "2026-08-31T09:23:30.496Z",
893
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
894
- },
895
- {
896
- "type": "model.log",
897
- "data": {
898
- "kind": "log",
899
- "level": "debug",
900
- "message": "Model does not support vision, skipping image processing"
901
- },
902
- "ephemeral": true,
903
- "id": "ad6521b2-6dce-4ba8-9570-efc19f1bf7ab",
904
- "timestamp": "2026-08-31T09:23:30.497Z",
905
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
906
- },
907
- {
908
- "type": "model.call_start",
909
- "data": {
910
- "turnId": "1",
911
- "model": "spike-model"
912
- },
913
- "ephemeral": true,
914
- "id": "462eff3e-bab0-4723-8853-5ea5a6069462",
915
- "timestamp": "2026-08-31T09:23:30.498Z",
916
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
917
- },
918
- {
919
- "type": "model.model_call_started",
920
- "data": {
921
- "kind": "model_call_started",
922
- "model": "spike-model",
923
- "modelInfo": {
924
- "id": "spike-model",
925
- "name": "spike-model",
926
- "capabilities": {
927
- "supports": {
928
- "vision": false,
929
- "adaptive_thinking": "unsupported"
930
- },
931
- "limits": {
932
- "max_prompt_tokens": 128000,
933
- "max_context_window_tokens": 200000,
934
- "vision": {
935
- "max_prompt_image_size": 3145728,
936
- "max_prompt_images": 1,
937
- "supported_media_types": [
938
- "image/jpeg",
939
- "image/png",
940
- "image/webp"
941
- ]
942
- }
943
- }
944
- },
945
- "supported_endpoints": [
946
- "/chat/completions"
947
- ]
948
- },
949
- "turn": 1,
950
- "timestampMs": 1788168210498
951
- },
952
- "ephemeral": true,
953
- "id": "ae77913e-96bb-4db0-b5b0-028283d1acc7",
954
- "timestamp": "2026-08-31T09:23:30.498Z",
955
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
956
- },
957
- {
958
- "type": "assistant.streaming_delta",
959
- "data": {
960
- "totalResponseSizeBytes": 36
961
- },
962
- "ephemeral": true,
963
- "id": "4471837e-6c98-4a8a-8a24-e2a29f453a3e",
964
- "timestamp": "2026-08-31T09:23:30.501Z",
965
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
966
- },
967
- {
968
- "type": "assistant.message_start",
969
- "data": {
970
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090"
971
- },
972
- "ephemeral": true,
973
- "id": "568099d6-aa64-4adc-8f00-00ca10307a0a",
974
- "timestamp": "2026-08-31T09:23:30.501Z",
975
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
976
- },
977
- {
978
- "type": "assistant.message_delta",
979
- "data": {
980
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090",
981
- "deltaContent": "SPI"
982
- },
983
- "ephemeral": true,
984
- "id": "cdddb132-7422-41e5-ad0e-5dbdafc613b9",
985
- "timestamp": "2026-08-31T09:23:30.501Z",
986
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
987
- },
988
- {
989
- "type": "assistant.streaming_delta",
990
- "data": {
991
- "totalResponseSizeBytes": 38
992
- },
993
- "ephemeral": true,
994
- "id": "2cd657cb-d716-4dac-a255-9147dbf93930",
995
- "timestamp": "2026-08-31T09:23:30.582Z",
996
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
997
- },
998
- {
999
- "type": "assistant.message_delta",
1000
- "data": {
1001
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090",
1002
- "deltaContent": "KE"
1003
- },
1004
- "ephemeral": true,
1005
- "id": "498b2238-0950-4493-b00d-ad44f14b0a63",
1006
- "timestamp": "2026-08-31T09:23:30.582Z",
1007
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1008
- },
1009
- {
1010
- "type": "assistant.streaming_delta",
1011
- "data": {
1012
- "totalResponseSizeBytes": 39
1013
- },
1014
- "ephemeral": true,
1015
- "id": "3feadd2f-be43-418c-9b68-4c8cdb9622bf",
1016
- "timestamp": "2026-08-31T09:23:30.663Z",
1017
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1018
- },
1019
- {
1020
- "type": "assistant.message_delta",
1021
- "data": {
1022
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090",
1023
- "deltaContent": "_"
1024
- },
1025
- "ephemeral": true,
1026
- "id": "9ed440cf-b17d-4ad5-bd06-3aaad9c47a97",
1027
- "timestamp": "2026-08-31T09:23:30.663Z",
1028
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1029
- },
1030
- {
1031
- "type": "assistant.streaming_delta",
1032
- "data": {
1033
- "totalResponseSizeBytes": 41
1034
- },
1035
- "ephemeral": true,
1036
- "id": "6a8a6228-968f-4307-9232-86f2d885f325",
1037
- "timestamp": "2026-08-31T09:23:30.743Z",
1038
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1039
- },
1040
- {
1041
- "type": "assistant.message_delta",
1042
- "data": {
1043
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090",
1044
- "deltaContent": "OK"
1045
- },
1046
- "ephemeral": true,
1047
- "id": "1d119a5d-0680-4795-b35c-517a34d19d6b",
1048
- "timestamp": "2026-08-31T09:23:30.744Z",
1049
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1050
- },
1051
- {
1052
- "type": "assistant.usage",
1053
- "data": {
1054
- "model": "spike-model",
1055
- "inputTokens": 0,
1056
- "outputTokens": 0,
1057
- "cacheReadTokens": 0,
1058
- "cacheWriteTokens": 0,
1059
- "reasoningTokens": 0,
1060
- "cost": 0,
1061
- "duration": 328,
1062
- "timeToFirstTokenMs": 2.1582600000000003,
1063
- "outputTtftMs": 2.186653,
1064
- "interTokenLatencyMs": 64.5249366,
1065
- "initiator": "agent",
1066
- "interactionType": "conversation-agent",
1067
- "isByok": true,
1068
- "isAuto": false,
1069
- "maxPromptTokens": 128000,
1070
- "transport": "http",
1071
- "apiCallId": "chatcmpl-spike-3",
1072
- "rte": false,
1073
- "apiEndpoint": "/chat/completions",
1074
- "quotaSnapshots": {},
1075
- "reasoningEffort": "medium",
1076
- "availableToolCount": 22,
1077
- "toolTokenCount": 6887,
1078
- "frontierSource": "estimated",
1079
- "cacheDetailsReported": false,
1080
- "numToolCalls": 0,
1081
- "toolCounts": {},
1082
- "finishReason": "stop",
1083
- "contentFilterTriggered": false
1084
- },
1085
- "ephemeral": true,
1086
- "id": "abdf76ee-4e29-46f3-a035-9262e2929337",
1087
- "timestamp": "2026-08-31T09:23:30.826Z",
1088
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1089
- },
1090
- {
1091
- "type": "model.model_call_success",
1092
- "data": {
1093
- "kind": "model_call_success",
1094
- "turn": 1,
1095
- "modelCallDurationMs": 328,
1096
- "ttftMs": 2.1582600000000003,
1097
- "outputTtftMs": 2.186653,
1098
- "interTokenLatencyMs": 64.5249366,
1099
- "modelCall": {
1100
- "model": "spike-model",
1101
- "api_id": "chatcmpl-spike-3",
1102
- "api_endpoint": "/chat/completions",
1103
- "request_id": null,
1104
- "client_request_id": null,
1105
- "service_request_id": null,
1106
- "rte": false,
1107
- "initiator": "agent",
1108
- "transport": "http"
1109
- },
1110
- "responseChunk": {
1111
- "object": "chat.completion.chunk",
1112
- "id": "chatcmpl-spike-3",
1113
- "choices": [
1114
- {
1115
- "delta": {
1116
- "responses_message_status": "completed",
1117
- "role": "assistant",
1118
- "content": "SPIKE_OK",
1119
- "refusal": null
1120
- },
1121
- "finish_reason": "stop",
1122
- "index": 0
1123
- }
1124
- ],
1125
- "created": 1788168210,
1126
- "model": "spike-model"
1127
- },
1128
- "quotaSnapshots": {},
1129
- "rte": false,
1130
- "reasoningEffort": "medium",
1131
- "maxPromptTokens": 128000,
1132
- "toolCount": 22,
1133
- "toolTokenCount": 6887
1134
- },
1135
- "ephemeral": true,
1136
- "id": "017bd538-b1f2-4031-9dcc-bd1d387c528e",
1137
- "timestamp": "2026-08-31T09:23:30.828Z",
1138
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1139
- },
1140
- {
1141
- "type": "model.call_finished",
1142
- "data": {
1143
- "turnId": "1",
1144
- "dispatchDurationMs": 328,
1145
- "outcome": "success",
1146
- "editClassifierVersion": 1,
1147
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
1148
- "containsBuiltInFileEditRequest": false
1149
- },
1150
- "ephemeral": true,
1151
- "id": "a7c3c123-c49b-4d18-b631-f77ec60c458c",
1152
- "timestamp": "2026-08-31T09:23:30.828Z",
1153
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1154
- },
1155
- {
1156
- "type": "model.message",
1157
- "data": {
1158
- "kind": "message",
1159
- "turn": 1,
1160
- "modelCall": {
1161
- "model": "spike-model",
1162
- "api_id": "chatcmpl-spike-3",
1163
- "api_endpoint": "/chat/completions",
1164
- "request_id": null,
1165
- "client_request_id": null,
1166
- "service_request_id": null,
1167
- "rte": false,
1168
- "initiator": "agent",
1169
- "transport": "http"
1170
- },
1171
- "message": {
1172
- "content": "SPIKE_OK",
1173
- "role": "assistant",
1174
- "refusal": null,
1175
- "apiCallId": "chatcmpl-spike-3"
1176
- }
1177
- },
1178
- "ephemeral": true,
1179
- "id": "1363af70-b284-4ef3-8686-e69702073a66",
1180
- "timestamp": "2026-08-31T09:23:30.828Z",
1181
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1182
- },
1183
- {
1184
- "type": "assistant.message",
1185
- "data": {
1186
- "messageId": "e7e71fd2-5d8b-4276-9ff0-80fcf8525090",
1187
- "model": "spike-model",
1188
- "content": "SPIKE_OK",
1189
- "toolRequests": [],
1190
- "interactionId": "2779f759-206d-4053-aade-86b1c78c5038",
1191
- "turnId": "1",
1192
- "rte": false,
1193
- "apiCallId": "chatcmpl-spike-3"
1194
- },
1195
- "id": "480e4bfc-15ed-4a49-8afb-ecfce594d85b",
1196
- "timestamp": "2026-08-31T09:23:30.828Z",
1197
- "parentId": "a0e4ae4b-671d-4fc6-80c6-2ec00b98176c"
1198
- },
1199
- {
1200
- "type": "model.response",
1201
- "data": {
1202
- "kind": "response",
1203
- "turn": 1,
1204
- "modelCall": {
1205
- "model": "spike-model",
1206
- "api_id": "chatcmpl-spike-3"
1207
- },
1208
- "response": {
1209
- "content": "SPIKE_OK",
1210
- "role": "assistant",
1211
- "refusal": null
1212
- }
1213
- },
1214
- "ephemeral": true,
1215
- "id": "254835fc-23af-4e0c-b385-71bf9f9a1f29",
1216
- "timestamp": "2026-08-31T09:23:30.829Z",
1217
- "parentId": "480e4bfc-15ed-4a49-8afb-ecfce594d85b"
1218
- },
1219
- {
1220
- "type": "model.turn_ended",
1221
- "data": {
1222
- "kind": "turn_ended",
1223
- "model": "spike-model",
1224
- "modelInfo": {
1225
- "id": "spike-model",
1226
- "name": "spike-model",
1227
- "capabilities": {
1228
- "supports": {
1229
- "vision": false,
1230
- "adaptive_thinking": "unsupported"
1231
- },
1232
- "limits": {
1233
- "max_prompt_tokens": 128000,
1234
- "max_context_window_tokens": 200000,
1235
- "vision": {
1236
- "max_prompt_image_size": 3145728,
1237
- "max_prompt_images": 1,
1238
- "supported_media_types": [
1239
- "image/jpeg",
1240
- "image/png",
1241
- "image/webp"
1242
- ]
1243
- }
1244
- }
1245
- },
1246
- "supported_endpoints": [
1247
- "/chat/completions"
1248
- ]
1249
- },
1250
- "turn": 1,
1251
- "timestampMs": 1788168210830
1252
- },
1253
- "ephemeral": true,
1254
- "id": "44af1d48-8e0f-4cb7-86c4-8f2ecf8bfebe",
1255
- "timestamp": "2026-08-31T09:23:30.830Z",
1256
- "parentId": "480e4bfc-15ed-4a49-8afb-ecfce594d85b"
1257
- },
1258
- {
1259
- "type": "assistant.turn_end",
1260
- "data": {
1261
- "turnId": "1"
1262
- },
1263
- "id": "904062c6-4791-4570-b963-fee41f7107b2",
1264
- "timestamp": "2026-08-31T09:23:30.830Z",
1265
- "parentId": "480e4bfc-15ed-4a49-8afb-ecfce594d85b"
1266
- },
1267
- {
1268
- "type": "assistant.idle",
1269
- "data": {},
1270
- "ephemeral": true,
1271
- "id": "7c0e9c07-621e-43f4-bf90-f78cee6a1345",
1272
- "timestamp": "2026-08-31T09:23:30.834Z",
1273
- "parentId": "904062c6-4791-4570-b963-fee41f7107b2"
1274
- },
1275
- {
1276
- "type": "session.background_tasks_changed",
1277
- "data": {},
1278
- "ephemeral": true,
1279
- "id": "d1010171-fbad-48db-8d85-b18ecbc47cc8",
1280
- "timestamp": "2026-08-31T09:23:30.835Z",
1281
- "parentId": "904062c6-4791-4570-b963-fee41f7107b2"
1282
- },
1283
- {
1284
- "type": "session.idle",
1285
- "data": {
1286
- "mode": "interactive"
1287
- },
1288
- "ephemeral": true,
1289
- "id": "7b4b83dc-b380-4166-b4f8-926851c1fd4e",
1290
- "timestamp": "2026-08-31T09:23:30.835Z",
1291
- "parentId": "904062c6-4791-4570-b963-fee41f7107b2"
1292
- }
1293
- ]