@oar-sh/oar 0.9.1 → 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 (146) hide show
  1. package/.github/extensions/web-relay/extension.mjs +0 -3
  2. package/.github/extensions/web-relay/polling/heartbeat.mjs +2 -55
  3. package/.github/extensions/web-relay/polling/polling-loop.mjs +0 -1
  4. package/.github/extensions/web-relay/runtime/api-client.mjs +2 -34
  5. package/.github/extensions/web-relay/runtime/config-loader.mjs +2 -104
  6. package/.github/extensions/web-relay/runtime/send-and-wait-errors.mjs +2 -170
  7. package/.github/extensions/web-relay/runtime/session-io.mjs +1 -71
  8. package/.github/extensions/web-relay/runtime/worker-websocket-link.mjs +2 -325
  9. package/.github/extensions/web-relay/skills/prompt-context.mjs +2 -160
  10. package/CHANGELOG.md +269 -0
  11. package/README.md +407 -424
  12. package/bin/oar.js +142 -11
  13. package/package.json +8 -4
  14. package/server/README.md +59 -22
  15. package/server/claude-worker/claude-sdk-adapter.mjs +7 -2
  16. package/server/claude-worker/claude-session-process.mjs +1013 -45
  17. package/server/claude-worker/claude-session-worker.mjs +54 -9
  18. package/server/claude-worker/claude-turn-publisher.mjs +110 -19
  19. package/server/claude-worker/claude-worker-link-wiring.mjs +9 -0
  20. package/server/copilot-sdk-runtime.mjs +12 -3
  21. package/server/copilot-worker/copilot-ask-user-tool.mjs +89 -0
  22. package/server/copilot-worker/copilot-attachments.mjs +35 -2
  23. package/server/copilot-worker/copilot-continuation-signals.mjs +55 -0
  24. package/server/copilot-worker/copilot-model-switch.mjs +425 -0
  25. package/server/copilot-worker/copilot-prompt-context.mjs +20 -8
  26. package/server/copilot-worker/copilot-question-bridge.mjs +129 -16
  27. package/server/copilot-worker/copilot-sdk-adapter.mjs +59 -11
  28. package/server/copilot-worker/copilot-sdk-event-normalizer.mjs +136 -12
  29. package/server/copilot-worker/copilot-sdk-session-process.mjs +2753 -527
  30. package/server/copilot-worker/copilot-sdk-session-worker.mjs +94 -25
  31. package/server/cursor-worker/cursor-session-worker.mjs +5 -5
  32. package/server/cursor-worker/cursor-turn-runner.mjs +50 -4
  33. package/server/db-schema.mjs +61 -1
  34. package/server/features.mjs +155 -41
  35. package/server/grok-worker/grok-session-worker.mjs +5 -5
  36. package/server/grok-worker/grok-turn-runner.mjs +45 -4
  37. package/server/migrations/0004-steer-settle-markers.mjs +119 -0
  38. package/server/public/app/annotate-core.mjs +181 -0
  39. package/server/public/app/annotate-editor.js +617 -0
  40. package/server/public/app/api-client.js +86 -5
  41. package/server/public/app/ask-user-view.js +102 -13
  42. package/server/public/app/attachments-view.js +172 -3
  43. package/server/public/app/background-task-timeout-options.mjs +9 -0
  44. package/server/public/app/background-tasks-view.mjs +34 -19
  45. package/server/public/app/bootstrap.js +153 -69
  46. package/server/public/app/composer-control-state.mjs +52 -34
  47. package/server/public/app/context-tier-options.mjs +24 -4
  48. package/server/public/app/conversation-draft-sync.mjs +187 -0
  49. package/server/public/app/conversation-list-filter.mjs +86 -0
  50. package/server/public/app/conversation-preferences.mjs +47 -10
  51. package/server/public/app/conversation-provider-indicator.mjs +8 -0
  52. package/server/public/app/conversation-view.js +1032 -218
  53. package/server/public/app/emoji-view.js +2 -0
  54. package/server/public/app/font-scaling.js +4 -37
  55. package/server/public/app/journal-view.js +190 -24
  56. package/server/public/app/model-selector-options.mjs +185 -1
  57. package/server/public/app/new-conversation-model-choice.mjs +29 -9
  58. package/server/public/app/pwa-install.js +64 -136
  59. package/server/public/app/question-multi-select.mjs +52 -0
  60. package/server/public/app/reasoning-effort-labels.mjs +13 -3
  61. package/server/public/app/relay-prompt-sanitizer.mjs +26 -3
  62. package/server/public/app/router.js +120 -11
  63. package/server/public/app/settings-modal.js +225 -20
  64. package/server/public/app/settings-tabs.js +1 -1
  65. package/server/public/app/socket-handlers.js +47 -4
  66. package/server/public/app/steered-turn-merge.mjs +100 -0
  67. package/server/public/app/store.js +159 -16
  68. package/server/public/app/sync-outbox.mjs +16 -8
  69. package/server/public/app/tool-activity-emoji.mjs +36 -0
  70. package/server/public/app/transcript-viewport-anchor.mjs +210 -0
  71. package/server/public/app/update-ui.js +194 -0
  72. package/server/public/index.html +483 -24
  73. package/server/public/sw.js +7 -0
  74. package/server/relay-tools.md +2 -0
  75. package/server/relay.mjs +23 -21
  76. package/server/repositories/message-repository.mjs +78 -21
  77. package/server/repositories/question-repository.mjs +19 -1
  78. package/server/repositories/session-repository.mjs +7 -31
  79. package/server/routes/ask-user-routes.mjs +10 -0
  80. package/server/routes/messages-routes.mjs +689 -159
  81. package/server/routes/sessions-routes.mjs +574 -80
  82. package/server/server-runtime.mjs +393 -925
  83. package/server/services/claude-auth-service.mjs +7 -1
  84. package/server/services/cli-install-service.mjs +8 -27
  85. package/server/services/cli-process-runner.mjs +30 -0
  86. package/server/services/copilot-model-discovery-service.mjs +202 -0
  87. package/server/services/data-dir-resolution.mjs +47 -0
  88. package/server/services/grok-auth-service.mjs +9 -1
  89. package/server/services/live-turn-picker.mjs +47 -0
  90. package/server/services/model-variant-catalog-service.mjs +1183 -0
  91. package/server/services/oar-cli-helpers.mjs +6 -2
  92. package/server/services/relay-prompt-sanitizer.mjs +30 -3
  93. package/server/services/relay-question-context.mjs +46 -0
  94. package/server/services/sdk-session-import-service.mjs +144 -16
  95. package/server/services/sdk-session-sync-service.mjs +84 -27
  96. package/server/services/session-worker-registry-service.mjs +116 -3
  97. package/server/services/session-worker-supervisor-service.mjs +7 -1
  98. package/server/services/session-worker-websocket-service.mjs +119 -24
  99. package/server/services/status-event-service.mjs +8 -2
  100. package/server/services/steer-resend.mjs +45 -0
  101. package/server/services/update-check-service.mjs +220 -0
  102. package/server/services/update-install-service.mjs +279 -0
  103. package/server/services/windows-autostart-service.mjs +42 -6
  104. package/server/services/windows-boot-autostart-service.mjs +487 -0
  105. package/shared/ask-user-bridge.mjs +37 -5
  106. package/shared/background-task-timeout.mjs +12 -4
  107. package/shared/claude-model-catalog.mjs +49 -0
  108. package/shared/context-window-fallbacks.mjs +1 -0
  109. package/shared/control-poller.mjs +4 -1
  110. package/shared/copilot-model-order.mjs +182 -0
  111. package/shared/media-embed-instructions.mjs +35 -0
  112. package/shared/model-descriptors.mjs +181 -30
  113. package/shared/model-id.mjs +6 -0
  114. package/shared/pwa-app-name.mjs +44 -0
  115. package/shared/question-multi-select.mjs +16 -0
  116. package/shared/relay-stop-failure.mjs +15 -0
  117. package/shared/slash-command-guard.mjs +76 -0
  118. package/shared/steer-note.mjs +66 -0
  119. package/shared/steer-settle-failure.mjs +89 -0
  120. package/shared/steer-settle-markers.mjs +18 -0
  121. package/shared/update-semver.mjs +50 -0
  122. package/shared/worker-crash-guard.mjs +40 -14
  123. package/shared/worker-runtime/api-client.mjs +34 -0
  124. package/shared/worker-runtime/config-loader.mjs +104 -0
  125. package/shared/worker-runtime/heartbeat.mjs +109 -0
  126. package/shared/worker-runtime/prompt-context.mjs +160 -0
  127. package/shared/worker-runtime/runner-link-wiring.mjs +44 -0
  128. package/shared/worker-runtime/send-and-wait-errors.mjs +170 -0
  129. package/shared/worker-runtime/worker-websocket-link.mjs +436 -0
  130. package/server/claude-worker/claude-session-test-harness.mjs +0 -236
  131. package/server/claude-worker/fixtures/workflow-run-record.json +0 -1
  132. package/server/copilot-worker/copilot-sdk-test-harness.mjs +0 -329
  133. package/server/copilot-worker/fixtures/abort-turn.json +0 -588
  134. package/server/copilot-worker/fixtures/ask-user-turn.json +0 -1154
  135. package/server/copilot-worker/fixtures/background-timer-continuation.json +0 -445
  136. package/server/copilot-worker/fixtures/background-timer-turn.json +0 -497
  137. package/server/copilot-worker/fixtures/happy-turn.json +0 -566
  138. package/server/copilot-worker/fixtures/quota-turn.json +0 -647
  139. package/server/copilot-worker/fixtures/reasoning-turn.json +0 -625
  140. package/server/copilot-worker/fixtures/resume-turn.json +0 -700
  141. package/server/copilot-worker/fixtures/subagent-turn.json +0 -1378
  142. package/server/copilot-worker/fixtures/tool-permission-turn.json +0 -1293
  143. package/server/routes/messages-routes-test-harness.mjs +0 -111
  144. package/server/services/fixtures/claude-auth-stub.sh +0 -62
  145. package/server/services/fixtures/cli-install-stub.sh +0 -75
  146. package/server/services/fixtures/grok-stub.sh +0 -86
@@ -1,1154 +0,0 @@
1
- [
2
- {
3
- "type": "pending_messages.modified",
4
- "data": {},
5
- "ephemeral": true,
6
- "id": "28d15ad9-70f3-4ed3-a702-d4735701cd3d",
7
- "timestamp": "2026-08-31T09:24:29.660Z",
8
- "parentId": "876bffd8-eda2-4a99-a188-dbd98237443b"
9
- },
10
- {
11
- "type": "pending_messages.modified",
12
- "data": {},
13
- "ephemeral": true,
14
- "id": "0e3eaff7-050a-47a7-9a77-d200e7dfcef1",
15
- "timestamp": "2026-08-31T09:24:29.660Z",
16
- "parentId": "876bffd8-eda2-4a99-a188-dbd98237443b"
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": "52aeed4c-3651-41a8-8a8f-aa09593d622e",
31
- "timestamp": "2026-08-31T09:24:29.662Z",
32
- "parentId": "876bffd8-eda2-4a99-a188-dbd98237443b"
33
- },
34
- {
35
- "type": "session.tools_updated",
36
- "data": {
37
- "model": "spike-model"
38
- },
39
- "ephemeral": true,
40
- "id": "722b0828-f8fb-4301-999e-77d5ae74a98a",
41
- "timestamp": "2026-08-31T09:24:29.670Z",
42
- "parentId": "876bffd8-eda2-4a99-a188-dbd98237443b"
43
- },
44
- {
45
- "type": "user.message",
46
- "data": {
47
- "content": "SPIKE_ASK: ask me which environment",
48
- "transformedContent": "<current_datetime>2026-08-31T09:24:29.670+00:00</current_datetime>\n\nSPIKE_ASK: ask me which environment",
49
- "supportedNativeDocumentMimeTypes": [],
50
- "delivery": "idle",
51
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
52
- "turnId": "0",
53
- "parentAgentTaskId": "685baaa4-a80e-491e-a494-7275f7433e88"
54
- },
55
- "id": "29125620-005c-4b7b-8314-8ecbfab4c8ba",
56
- "timestamp": "2026-08-31T09:24:29.670Z",
57
- "parentId": "876bffd8-eda2-4a99-a188-dbd98237443b"
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": 1788168269673
92
- },
93
- "ephemeral": true,
94
- "id": "0d16aaf1-2663-4464-b2c9-07f4811a2780",
95
- "timestamp": "2026-08-31T09:24:29.673Z",
96
- "parentId": "2f831ca3-b8ae-490f-9acf-4b823164c230"
97
- },
98
- {
99
- "type": "assistant.turn_start",
100
- "data": {
101
- "turnId": "0",
102
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02"
103
- },
104
- "id": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25",
105
- "timestamp": "2026-08-31T09:24:29.673Z",
106
- "parentId": "2f831ca3-b8ae-490f-9acf-4b823164c230"
107
- },
108
- {
109
- "type": "session.usage_info",
110
- "ephemeral": true,
111
- "data": {
112
- "tokenLimit": 128000,
113
- "currentTokens": 13286,
114
- "messagesLength": 4,
115
- "systemTokens": 6142,
116
- "conversationTokens": 93,
117
- "toolDefinitionsTokens": 7051,
118
- "isInitial": true
119
- },
120
- "id": "0456ff39-e509-4a48-9c98-8c4522b19477",
121
- "timestamp": "2026-08-31T09:24:29.702Z",
122
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
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": "da0a5424-4f5d-48c0-af37-8aac10ffc740",
133
- "timestamp": "2026-08-31T09:24:29.703Z",
134
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
135
- },
136
- {
137
- "type": "model.call_start",
138
- "data": {
139
- "turnId": "0",
140
- "model": "spike-model"
141
- },
142
- "ephemeral": true,
143
- "id": "dc3cb29e-8a5f-4a60-8769-b2342fe4848e",
144
- "timestamp": "2026-08-31T09:24:29.703Z",
145
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
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": 1788168269703
180
- },
181
- "ephemeral": true,
182
- "id": "74b6ac1f-01d1-4a01-9975-aa32c5677f47",
183
- "timestamp": "2026-08-31T09:24:29.704Z",
184
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
185
- },
186
- {
187
- "type": "assistant.streaming_delta",
188
- "data": {
189
- "totalResponseSizeBytes": 95
190
- },
191
- "ephemeral": true,
192
- "id": "563e24c4-c415-401b-8968-2f17d1ef604b",
193
- "timestamp": "2026-08-31T09:24:29.706Z",
194
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
195
- },
196
- {
197
- "type": "assistant.tool_call_delta",
198
- "data": {
199
- "toolCallId": "call_ask_2",
200
- "toolName": "ask_user",
201
- "toolType": "function",
202
- "inputDelta": "{\"question\":\"Which environment should I deploy to?\",\"choices\":[\"staging\",\"production\"]}"
203
- },
204
- "ephemeral": true,
205
- "id": "d743467c-0ceb-483e-973f-ae987d6dd39e",
206
- "timestamp": "2026-08-31T09:24:29.707Z",
207
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
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.760712,
221
- "outputTtftMs": 1.799395,
222
- "interTokenLatencyMs": 0.14474749999999997,
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": 23,
235
- "toolTokenCount": 7051,
236
- "frontierSource": "estimated",
237
- "cacheDetailsReported": false,
238
- "numToolCalls": 1,
239
- "toolCounts": {
240
- "ask_user": 1
241
- },
242
- "finishReason": "tool_calls",
243
- "contentFilterTriggered": false
244
- },
245
- "ephemeral": true,
246
- "id": "1ca1b8a5-e1ad-48af-bd11-934b5eaed167",
247
- "timestamp": "2026-08-31T09:24:29.710Z",
248
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
249
- },
250
- {
251
- "type": "model.model_call_success",
252
- "data": {
253
- "kind": "model_call_success",
254
- "turn": 0,
255
- "modelCallDurationMs": 5,
256
- "ttftMs": 1.760712,
257
- "outputTtftMs": 1.799395,
258
- "interTokenLatencyMs": 0.14474749999999997,
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_ask_2",
282
- "type": "function",
283
- "function": {
284
- "name": "ask_user",
285
- "arguments": "{\"question\":\"Which environment should I deploy to?\",\"choices\":[\"staging\",\"production\"]}"
286
- },
287
- "index": 0
288
- }
289
- ]
290
- },
291
- "finish_reason": "tool_calls",
292
- "index": 0
293
- }
294
- ],
295
- "created": 1788168269,
296
- "model": "spike-model"
297
- },
298
- "quotaSnapshots": {},
299
- "rte": false,
300
- "reasoningEffort": "medium",
301
- "maxPromptTokens": 128000,
302
- "toolCount": 23,
303
- "toolTokenCount": 7051
304
- },
305
- "ephemeral": true,
306
- "id": "d242d01f-75fe-497a-b525-9bf452fe627d",
307
- "timestamp": "2026-08-31T09:24:29.711Z",
308
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
309
- },
310
- {
311
- "type": "model.call_finished",
312
- "data": {
313
- "turnId": "0",
314
- "dispatchDurationMs": 5,
315
- "outcome": "success",
316
- "editClassifierVersion": 1,
317
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
318
- "containsBuiltInFileEditRequest": false
319
- },
320
- "ephemeral": true,
321
- "id": "50bed940-2121-4bc2-9d54-d6a30812c1dd",
322
- "timestamp": "2026-08-31T09:24:29.712Z",
323
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
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_ask_2",
348
- "type": "function",
349
- "function": {
350
- "name": "ask_user",
351
- "arguments": "{\"question\":\"Which environment should I deploy to?\",\"choices\":[\"staging\",\"production\"]}"
352
- }
353
- }
354
- ],
355
- "apiCallId": "chatcmpl-spike-2"
356
- }
357
- },
358
- "ephemeral": true,
359
- "id": "b5059490-8c04-44f8-b92d-7a129c0de723",
360
- "timestamp": "2026-08-31T09:24:29.712Z",
361
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
362
- },
363
- {
364
- "type": "assistant.message",
365
- "data": {
366
- "messageId": "9043fc52-2ed9-4050-9364-0a922c7d330a",
367
- "model": "spike-model",
368
- "content": "",
369
- "toolRequests": [
370
- {
371
- "toolCallId": "call_ask_2",
372
- "name": "ask_user",
373
- "arguments": {
374
- "question": "Which environment should I deploy to?",
375
- "choices": [
376
- "staging",
377
- "production"
378
- ]
379
- },
380
- "type": "function",
381
- "intentionSummary": "Which environment should I deploy to?",
382
- "toolTitle": "Asking user"
383
- }
384
- ],
385
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
386
- "turnId": "0",
387
- "rte": false,
388
- "apiCallId": "chatcmpl-spike-2"
389
- },
390
- "id": "0c4b5859-46d1-41d5-b706-6a543448be40",
391
- "timestamp": "2026-08-31T09:24:29.713Z",
392
- "parentId": "2aa4d9a4-3acd-44db-825a-8cdc3bfb1d25"
393
- },
394
- {
395
- "type": "tool.execution_start",
396
- "data": {
397
- "toolCallId": "call_ask_2",
398
- "toolName": "ask_user",
399
- "arguments": {
400
- "question": "Which environment should I deploy to?",
401
- "choices": [
402
- "staging",
403
- "production"
404
- ]
405
- },
406
- "turnId": "0",
407
- "model": "spike-model",
408
- "toolTitle": "Asking user"
409
- },
410
- "id": "e8694c5b-b0aa-4190-8304-1c920f926f37",
411
- "timestamp": "2026-08-31T09:24:29.714Z",
412
- "parentId": "0c4b5859-46d1-41d5-b706-6a543448be40"
413
- },
414
- {
415
- "type": "user_input.requested",
416
- "data": {
417
- "requestId": "be197f03-c3ef-4c66-86ca-2c15c76c5cc4",
418
- "question": "Which environment should I deploy to?",
419
- "choices": [
420
- "staging",
421
- "production"
422
- ],
423
- "allowFreeform": true,
424
- "toolCallId": "call_ask_2"
425
- },
426
- "ephemeral": true,
427
- "id": "4b2a276a-25cc-43ca-b8e1-10174512dd29",
428
- "timestamp": "2026-08-31T09:24:29.715Z",
429
- "parentId": "e8694c5b-b0aa-4190-8304-1c920f926f37"
430
- },
431
- {
432
- "type": "user_input.completed",
433
- "data": {
434
- "answer": "The user was unable to respond due to an error",
435
- "wasFreeform": true,
436
- "requestId": "be197f03-c3ef-4c66-86ca-2c15c76c5cc4"
437
- },
438
- "ephemeral": true,
439
- "id": "2e9d8c8b-f376-4454-aff0-4b7f01884129",
440
- "timestamp": "2026-08-31T09:24:29.717Z",
441
- "parentId": "e8694c5b-b0aa-4190-8304-1c920f926f37"
442
- },
443
- {
444
- "type": "model.message",
445
- "data": {
446
- "kind": "message",
447
- "turn": 0,
448
- "modelCall": {
449
- "model": "spike-model",
450
- "api_id": "chatcmpl-spike-2",
451
- "api_endpoint": "/chat/completions",
452
- "request_id": null,
453
- "client_request_id": null,
454
- "service_request_id": null,
455
- "rte": false,
456
- "initiator": "user",
457
- "transport": "http"
458
- },
459
- "message": {
460
- "role": "tool",
461
- "tool_call_id": "call_ask_2",
462
- "content": "User responded: The user was unable to respond due to an error"
463
- }
464
- },
465
- "ephemeral": true,
466
- "id": "7664f222-6704-4e2e-b31d-35487911ace6",
467
- "timestamp": "2026-08-31T09:24:29.718Z",
468
- "parentId": "e8694c5b-b0aa-4190-8304-1c920f926f37"
469
- },
470
- {
471
- "type": "tool.execution_complete",
472
- "data": {
473
- "toolCallId": "call_ask_2",
474
- "model": "spike-model",
475
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
476
- "turnId": "0",
477
- "rte": false,
478
- "success": true,
479
- "result": {
480
- "content": "User responded: The user was unable to respond due to an error",
481
- "detailedContent": "User responded: The user was unable to respond due to an error"
482
- },
483
- "toolTelemetry": {
484
- "properties": {
485
- "outcome": "answered",
486
- "had_choices": true,
487
- "was_freeform": true
488
- },
489
- "restrictedProperties": {
490
- "question": "Which environment should I deploy to?",
491
- "choices": "[\"staging\",\"production\"]",
492
- "answer": "The user was unable to respond due to an error"
493
- }
494
- }
495
- },
496
- "id": "7e7a3e1a-3633-4997-b255-50dfaff99766",
497
- "timestamp": "2026-08-31T09:24:29.718Z",
498
- "parentId": "e8694c5b-b0aa-4190-8304-1c920f926f37"
499
- },
500
- {
501
- "type": "model.tool_execution",
502
- "data": {
503
- "kind": "tool_execution",
504
- "turn": 0,
505
- "toolCallId": "call_ask_2",
506
- "toolResult": {
507
- "textResultForLlm": "User responded: The user was unable to respond due to an error",
508
- "resultType": "success",
509
- "toolTelemetry": {
510
- "properties": {
511
- "outcome": "answered",
512
- "had_choices": true,
513
- "was_freeform": true
514
- },
515
- "restrictedProperties": {
516
- "question": "Which environment should I deploy to?",
517
- "choices": "[\"staging\",\"production\"]",
518
- "answer": "The user was unable to respond due to an error"
519
- }
520
- }
521
- },
522
- "durationMs": 2.276261,
523
- "rte": false
524
- },
525
- "ephemeral": true,
526
- "id": "63348d98-df04-447e-8650-186d76cbdbfa",
527
- "timestamp": "2026-08-31T09:24:29.719Z",
528
- "parentId": "7e7a3e1a-3633-4997-b255-50dfaff99766"
529
- },
530
- {
531
- "type": "model.turn_ended",
532
- "data": {
533
- "kind": "turn_ended",
534
- "model": "spike-model",
535
- "modelInfo": {
536
- "id": "spike-model",
537
- "name": "spike-model",
538
- "capabilities": {
539
- "supports": {
540
- "vision": false,
541
- "adaptive_thinking": "unsupported"
542
- },
543
- "limits": {
544
- "max_prompt_tokens": 128000,
545
- "max_context_window_tokens": 200000,
546
- "vision": {
547
- "max_prompt_image_size": 3145728,
548
- "max_prompt_images": 1,
549
- "supported_media_types": [
550
- "image/jpeg",
551
- "image/png",
552
- "image/webp"
553
- ]
554
- }
555
- }
556
- },
557
- "supported_endpoints": [
558
- "/chat/completions"
559
- ]
560
- },
561
- "turn": 0,
562
- "timestampMs": 1788168269721
563
- },
564
- "ephemeral": true,
565
- "id": "06eec9dd-bb05-4cb8-835f-fc6e76e113f0",
566
- "timestamp": "2026-08-31T09:24:29.721Z",
567
- "parentId": "7e7a3e1a-3633-4997-b255-50dfaff99766"
568
- },
569
- {
570
- "type": "assistant.turn_end",
571
- "data": {
572
- "turnId": "0"
573
- },
574
- "id": "d5b6dba0-e21d-42bd-a073-01b4665ce624",
575
- "timestamp": "2026-08-31T09:24:29.721Z",
576
- "parentId": "7e7a3e1a-3633-4997-b255-50dfaff99766"
577
- },
578
- {
579
- "type": "model.turn_started",
580
- "data": {
581
- "kind": "turn_started",
582
- "model": "spike-model",
583
- "modelInfo": {
584
- "id": "spike-model",
585
- "name": "spike-model",
586
- "capabilities": {
587
- "supports": {
588
- "vision": false,
589
- "adaptive_thinking": "unsupported"
590
- },
591
- "limits": {
592
- "max_prompt_tokens": 128000,
593
- "max_context_window_tokens": 200000,
594
- "vision": {
595
- "max_prompt_image_size": 3145728,
596
- "max_prompt_images": 1,
597
- "supported_media_types": [
598
- "image/jpeg",
599
- "image/png",
600
- "image/webp"
601
- ]
602
- }
603
- }
604
- },
605
- "supported_endpoints": [
606
- "/chat/completions"
607
- ]
608
- },
609
- "turn": 1,
610
- "timestampMs": 1788168269721
611
- },
612
- "ephemeral": true,
613
- "id": "b34bd478-6cf9-458b-8cdc-fdfcea46af70",
614
- "timestamp": "2026-08-31T09:24:29.721Z",
615
- "parentId": "d5b6dba0-e21d-42bd-a073-01b4665ce624"
616
- },
617
- {
618
- "type": "assistant.turn_start",
619
- "data": {
620
- "turnId": "1",
621
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02"
622
- },
623
- "id": "94117434-c05c-421a-9c96-1e3f15cecabe",
624
- "timestamp": "2026-08-31T09:24:29.722Z",
625
- "parentId": "d5b6dba0-e21d-42bd-a073-01b4665ce624"
626
- },
627
- {
628
- "type": "session.usage_info",
629
- "ephemeral": true,
630
- "data": {
631
- "tokenLimit": 128000,
632
- "currentTokens": 13345,
633
- "messagesLength": 6,
634
- "systemTokens": 6142,
635
- "conversationTokens": 152,
636
- "toolDefinitionsTokens": 7051,
637
- "isInitial": false
638
- },
639
- "id": "a1ba749c-7fc3-42f2-84ac-a16cf9417249",
640
- "timestamp": "2026-08-31T09:24:29.741Z",
641
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
642
- },
643
- {
644
- "type": "model.log",
645
- "data": {
646
- "kind": "log",
647
- "level": "debug",
648
- "message": "Model does not support vision, skipping image processing"
649
- },
650
- "ephemeral": true,
651
- "id": "108394e4-c713-4fc8-b867-1e6e6d82bdae",
652
- "timestamp": "2026-08-31T09:24:29.742Z",
653
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
654
- },
655
- {
656
- "type": "model.call_start",
657
- "data": {
658
- "turnId": "1",
659
- "model": "spike-model"
660
- },
661
- "ephemeral": true,
662
- "id": "3dbcab59-e717-46c3-a060-5f9b31b06553",
663
- "timestamp": "2026-08-31T09:24:29.743Z",
664
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
665
- },
666
- {
667
- "type": "model.model_call_started",
668
- "data": {
669
- "kind": "model_call_started",
670
- "model": "spike-model",
671
- "modelInfo": {
672
- "id": "spike-model",
673
- "name": "spike-model",
674
- "capabilities": {
675
- "supports": {
676
- "vision": false,
677
- "adaptive_thinking": "unsupported"
678
- },
679
- "limits": {
680
- "max_prompt_tokens": 128000,
681
- "max_context_window_tokens": 200000,
682
- "vision": {
683
- "max_prompt_image_size": 3145728,
684
- "max_prompt_images": 1,
685
- "supported_media_types": [
686
- "image/jpeg",
687
- "image/png",
688
- "image/webp"
689
- ]
690
- }
691
- }
692
- },
693
- "supported_endpoints": [
694
- "/chat/completions"
695
- ]
696
- },
697
- "turn": 1,
698
- "timestampMs": 1788168269743
699
- },
700
- "ephemeral": true,
701
- "id": "85eb40a0-ae40-4283-bcc0-f73ca97557d2",
702
- "timestamp": "2026-08-31T09:24:29.743Z",
703
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
704
- },
705
- {
706
- "type": "assistant.streaming_delta",
707
- "data": {
708
- "totalResponseSizeBytes": 107
709
- },
710
- "ephemeral": true,
711
- "id": "43258708-1433-483f-85e6-d9ef9cba0409",
712
- "timestamp": "2026-08-31T09:24:29.745Z",
713
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
714
- },
715
- {
716
- "type": "assistant.reasoning_delta",
717
- "data": {
718
- "reasoningId": "aefb0003-b149-4bbe-b077-b0e1c4023ae1",
719
- "deltaContent": "Let me think"
720
- },
721
- "ephemeral": true,
722
- "id": "bed23ac8-fc23-4985-bbc7-163a349375cf",
723
- "timestamp": "2026-08-31T09:24:29.745Z",
724
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
725
- },
726
- {
727
- "type": "assistant.streaming_delta",
728
- "data": {
729
- "totalResponseSizeBytes": 118
730
- },
731
- "ephemeral": true,
732
- "id": "11db0f67-5eef-4fc6-913b-177719aad809",
733
- "timestamp": "2026-08-31T09:24:29.805Z",
734
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
735
- },
736
- {
737
- "type": "assistant.reasoning_delta",
738
- "data": {
739
- "reasoningId": "aefb0003-b149-4bbe-b077-b0e1c4023ae1",
740
- "deltaContent": " about this"
741
- },
742
- "ephemeral": true,
743
- "id": "6064c779-0adf-4930-a495-79f0a5d05cd0",
744
- "timestamp": "2026-08-31T09:24:29.806Z",
745
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
746
- },
747
- {
748
- "type": "assistant.streaming_delta",
749
- "data": {
750
- "totalResponseSizeBytes": 129
751
- },
752
- "ephemeral": true,
753
- "id": "d4ae1727-a3fd-459a-953c-ce55b3607e80",
754
- "timestamp": "2026-08-31T09:24:29.865Z",
755
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
756
- },
757
- {
758
- "type": "assistant.reasoning_delta",
759
- "data": {
760
- "reasoningId": "aefb0003-b149-4bbe-b077-b0e1c4023ae1",
761
- "deltaContent": " carefully."
762
- },
763
- "ephemeral": true,
764
- "id": "f063ca84-8b22-4aa6-99fd-415e259def7d",
765
- "timestamp": "2026-08-31T09:24:29.866Z",
766
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
767
- },
768
- {
769
- "type": "assistant.streaming_delta",
770
- "data": {
771
- "totalResponseSizeBytes": 132
772
- },
773
- "ephemeral": true,
774
- "id": "eece3602-70c8-4c3a-b43b-e398b01cfa2c",
775
- "timestamp": "2026-08-31T09:24:29.925Z",
776
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
777
- },
778
- {
779
- "type": "assistant.message_start",
780
- "data": {
781
- "messageId": "2c31d113-4c3b-4a41-9657-20edc0e86035"
782
- },
783
- "ephemeral": true,
784
- "id": "f98248ee-6c70-4603-98f0-2ac5e6796251",
785
- "timestamp": "2026-08-31T09:24:29.926Z",
786
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
787
- },
788
- {
789
- "type": "assistant.message_delta",
790
- "data": {
791
- "messageId": "2c31d113-4c3b-4a41-9657-20edc0e86035",
792
- "deltaContent": "SPI"
793
- },
794
- "ephemeral": true,
795
- "id": "9f28a8dc-24fa-4156-995c-deca22c3e530",
796
- "timestamp": "2026-08-31T09:24:29.926Z",
797
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
798
- },
799
- {
800
- "type": "assistant.streaming_delta",
801
- "data": {
802
- "totalResponseSizeBytes": 134
803
- },
804
- "ephemeral": true,
805
- "id": "b17f1dd0-0898-48a7-961b-c1e4a8903054",
806
- "timestamp": "2026-08-31T09:24:29.985Z",
807
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
808
- },
809
- {
810
- "type": "assistant.message_delta",
811
- "data": {
812
- "messageId": "2c31d113-4c3b-4a41-9657-20edc0e86035",
813
- "deltaContent": "KE"
814
- },
815
- "ephemeral": true,
816
- "id": "2b6a1edd-27d3-404f-aad8-5ef29041a1fe",
817
- "timestamp": "2026-08-31T09:24:29.985Z",
818
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
819
- },
820
- {
821
- "type": "assistant.streaming_delta",
822
- "data": {
823
- "totalResponseSizeBytes": 137
824
- },
825
- "ephemeral": true,
826
- "id": "92369587-9489-43a9-92f5-033eee95c0ea",
827
- "timestamp": "2026-08-31T09:24:30.045Z",
828
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
829
- },
830
- {
831
- "type": "assistant.message_delta",
832
- "data": {
833
- "messageId": "2c31d113-4c3b-4a41-9657-20edc0e86035",
834
- "deltaContent": "_OK"
835
- },
836
- "ephemeral": true,
837
- "id": "c034b569-3e14-4e29-b61b-873f2fbbdfda",
838
- "timestamp": "2026-08-31T09:24:30.046Z",
839
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
840
- },
841
- {
842
- "type": "assistant.usage",
843
- "data": {
844
- "model": "spike-model",
845
- "inputTokens": 0,
846
- "outputTokens": 0,
847
- "cacheReadTokens": 0,
848
- "cacheWriteTokens": 0,
849
- "reasoningTokens": 0,
850
- "cost": 0,
851
- "duration": 365,
852
- "timeToFirstTokenMs": 1.803582,
853
- "outputTtftMs": 1.823629,
854
- "interTokenLatencyMs": 51.490311428571424,
855
- "initiator": "agent",
856
- "interactionType": "conversation-agent",
857
- "isByok": true,
858
- "isAuto": false,
859
- "maxPromptTokens": 128000,
860
- "transport": "http",
861
- "apiCallId": "chatcmpl-spike-3",
862
- "rte": false,
863
- "apiEndpoint": "/chat/completions",
864
- "quotaSnapshots": {},
865
- "reasoningEffort": "medium",
866
- "availableToolCount": 23,
867
- "toolTokenCount": 7051,
868
- "frontierSource": "estimated",
869
- "cacheDetailsReported": false,
870
- "numToolCalls": 0,
871
- "toolCounts": {},
872
- "finishReason": "stop",
873
- "contentFilterTriggered": false
874
- },
875
- "ephemeral": true,
876
- "id": "ce0b3f8f-618a-4c2d-9597-dccbd00f7eba",
877
- "timestamp": "2026-08-31T09:24:30.108Z",
878
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
879
- },
880
- {
881
- "type": "model.model_call_success",
882
- "data": {
883
- "kind": "model_call_success",
884
- "turn": 1,
885
- "modelCallDurationMs": 365,
886
- "ttftMs": 1.803582,
887
- "outputTtftMs": 1.823629,
888
- "interTokenLatencyMs": 51.490311428571424,
889
- "modelCall": {
890
- "model": "spike-model",
891
- "api_id": "chatcmpl-spike-3",
892
- "api_endpoint": "/chat/completions",
893
- "request_id": null,
894
- "client_request_id": null,
895
- "service_request_id": null,
896
- "rte": false,
897
- "initiator": "agent",
898
- "transport": "http"
899
- },
900
- "responseChunk": {
901
- "object": "chat.completion.chunk",
902
- "id": "chatcmpl-spike-3",
903
- "choices": [
904
- {
905
- "delta": {
906
- "responses_message_status": "completed",
907
- "role": "assistant",
908
- "content": "SPIKE_OK",
909
- "refusal": null,
910
- "reasoning_text": "Let me think about this carefully."
911
- },
912
- "finish_reason": "stop",
913
- "index": 0
914
- }
915
- ],
916
- "created": 1788168270,
917
- "model": "spike-model"
918
- },
919
- "quotaSnapshots": {},
920
- "rte": false,
921
- "reasoningEffort": "medium",
922
- "maxPromptTokens": 128000,
923
- "toolCount": 23,
924
- "toolTokenCount": 7051
925
- },
926
- "ephemeral": true,
927
- "id": "d49a6c7e-2580-444b-aeb9-81f21c37395b",
928
- "timestamp": "2026-08-31T09:24:30.110Z",
929
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
930
- },
931
- {
932
- "type": "model.call_finished",
933
- "data": {
934
- "turnId": "1",
935
- "dispatchDurationMs": 365,
936
- "outcome": "success",
937
- "editClassifierVersion": 1,
938
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
939
- "containsBuiltInFileEditRequest": false
940
- },
941
- "ephemeral": true,
942
- "id": "c966d116-0da5-40f1-a82c-14026bc5dfe1",
943
- "timestamp": "2026-08-31T09:24:30.110Z",
944
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
945
- },
946
- {
947
- "type": "model.message",
948
- "data": {
949
- "kind": "message",
950
- "turn": 1,
951
- "modelCall": {
952
- "model": "spike-model",
953
- "api_id": "chatcmpl-spike-3",
954
- "api_endpoint": "/chat/completions",
955
- "request_id": null,
956
- "client_request_id": null,
957
- "service_request_id": null,
958
- "rte": false,
959
- "initiator": "agent",
960
- "transport": "http"
961
- },
962
- "reasoningWireField": "reasoning_content",
963
- "message": {
964
- "reasoning_text": "Let me think about this carefully.",
965
- "content": "SPIKE_OK",
966
- "role": "assistant",
967
- "refusal": null,
968
- "apiCallId": "chatcmpl-spike-3"
969
- }
970
- },
971
- "ephemeral": true,
972
- "id": "88f18da8-b186-48a3-aea2-1d7f7fef366a",
973
- "timestamp": "2026-08-31T09:24:30.110Z",
974
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
975
- },
976
- {
977
- "type": "assistant.message",
978
- "data": {
979
- "messageId": "2c31d113-4c3b-4a41-9657-20edc0e86035",
980
- "model": "spike-model",
981
- "content": "SPIKE_OK",
982
- "toolRequests": [],
983
- "interactionId": "5949678f-9069-47e7-8e05-f6857a5aee02",
984
- "turnId": "1",
985
- "reasoningText": "Let me think about this carefully.",
986
- "rte": false,
987
- "apiCallId": "chatcmpl-spike-3"
988
- },
989
- "id": "607f6b9d-cf43-4d7a-a739-5b8266a3808e",
990
- "timestamp": "2026-08-31T09:24:30.110Z",
991
- "parentId": "94117434-c05c-421a-9c96-1e3f15cecabe"
992
- },
993
- {
994
- "type": "assistant.reasoning",
995
- "data": {
996
- "reasoningId": "aefb0003-b149-4bbe-b077-b0e1c4023ae1",
997
- "content": "Let me think about this carefully.",
998
- "rte": false
999
- },
1000
- "ephemeral": true,
1001
- "id": "2cfa8cf7-921e-41f5-b5df-7f22764f83b7",
1002
- "timestamp": "2026-08-31T09:24:30.111Z",
1003
- "parentId": "607f6b9d-cf43-4d7a-a739-5b8266a3808e"
1004
- },
1005
- {
1006
- "type": "model.response",
1007
- "data": {
1008
- "kind": "response",
1009
- "turn": 1,
1010
- "modelCall": {
1011
- "model": "spike-model",
1012
- "api_id": "chatcmpl-spike-3"
1013
- },
1014
- "response": {
1015
- "reasoning_text": "Let me think about this carefully.",
1016
- "content": "SPIKE_OK",
1017
- "role": "assistant",
1018
- "refusal": null
1019
- }
1020
- },
1021
- "ephemeral": true,
1022
- "id": "cdf3ce29-17fa-4f62-b10f-bd678dcd7807",
1023
- "timestamp": "2026-08-31T09:24:30.113Z",
1024
- "parentId": "607f6b9d-cf43-4d7a-a739-5b8266a3808e"
1025
- },
1026
- {
1027
- "type": "model.turn_ended",
1028
- "data": {
1029
- "kind": "turn_ended",
1030
- "model": "spike-model",
1031
- "modelInfo": {
1032
- "id": "spike-model",
1033
- "name": "spike-model",
1034
- "capabilities": {
1035
- "supports": {
1036
- "vision": false,
1037
- "adaptive_thinking": "unsupported"
1038
- },
1039
- "limits": {
1040
- "max_prompt_tokens": 128000,
1041
- "max_context_window_tokens": 200000,
1042
- "vision": {
1043
- "max_prompt_image_size": 3145728,
1044
- "max_prompt_images": 1,
1045
- "supported_media_types": [
1046
- "image/jpeg",
1047
- "image/png",
1048
- "image/webp"
1049
- ]
1050
- }
1051
- }
1052
- },
1053
- "supported_endpoints": [
1054
- "/chat/completions"
1055
- ]
1056
- },
1057
- "turn": 1,
1058
- "timestampMs": 1788168270113
1059
- },
1060
- "ephemeral": true,
1061
- "id": "f6e1a4c8-0a94-4aa4-980b-73f591bcd526",
1062
- "timestamp": "2026-08-31T09:24:30.113Z",
1063
- "parentId": "607f6b9d-cf43-4d7a-a739-5b8266a3808e"
1064
- },
1065
- {
1066
- "type": "assistant.turn_end",
1067
- "data": {
1068
- "turnId": "1"
1069
- },
1070
- "id": "d2729a59-7676-4fe0-bfc0-32c59e131695",
1071
- "timestamp": "2026-08-31T09:24:30.113Z",
1072
- "parentId": "607f6b9d-cf43-4d7a-a739-5b8266a3808e"
1073
- },
1074
- {
1075
- "type": "assistant.idle",
1076
- "data": {},
1077
- "ephemeral": true,
1078
- "id": "688a8ff4-2578-429c-8f5d-d1bf8ddb2c88",
1079
- "timestamp": "2026-08-31T09:24:30.115Z",
1080
- "parentId": "d2729a59-7676-4fe0-bfc0-32c59e131695"
1081
- },
1082
- {
1083
- "type": "session.idle",
1084
- "data": {
1085
- "mode": "interactive"
1086
- },
1087
- "ephemeral": true,
1088
- "id": "0ac0b27b-5510-4afb-88c2-30165d79bf62",
1089
- "timestamp": "2026-08-31T09:24:30.116Z",
1090
- "parentId": "d2729a59-7676-4fe0-bfc0-32c59e131695"
1091
- },
1092
- {
1093
- "type": "session.shutdown",
1094
- "data": {
1095
- "shutdownType": "routine",
1096
- "totalPremiumRequests": 0,
1097
- "totalNanoAiu": 0,
1098
- "totalApiDurationMs": 742,
1099
- "sessionStartTime": 1788168268571,
1100
- "eventsFileSizeBytes": 34481,
1101
- "codeChanges": {
1102
- "linesAdded": 0,
1103
- "linesRemoved": 0,
1104
- "filesModified": []
1105
- },
1106
- "modelMetrics": {
1107
- "spike-model": {
1108
- "requests": {
1109
- "count": 3,
1110
- "cost": 0
1111
- },
1112
- "usage": {
1113
- "inputTokens": 0,
1114
- "outputTokens": 0,
1115
- "cacheReadTokens": 0,
1116
- "cacheWriteTokens": 0,
1117
- "reasoningTokens": 0
1118
- },
1119
- "totalNanoAiu": 0
1120
- }
1121
- },
1122
- "agentMetrics": {
1123
- "main": {
1124
- "totalApiDurationMs": 742,
1125
- "totalNanoAiu": 0,
1126
- "modelMetrics": {
1127
- "spike-model": {
1128
- "requests": {
1129
- "count": 3,
1130
- "cost": 0
1131
- },
1132
- "usage": {
1133
- "inputTokens": 0,
1134
- "outputTokens": 0,
1135
- "cacheReadTokens": 0,
1136
- "cacheWriteTokens": 0,
1137
- "reasoningTokens": 0
1138
- },
1139
- "totalNanoAiu": 0
1140
- }
1141
- }
1142
- }
1143
- },
1144
- "currentModel": "spike-model",
1145
- "currentTokens": 13414,
1146
- "systemTokens": 6142,
1147
- "conversationTokens": 173,
1148
- "toolDefinitionsTokens": 7096
1149
- },
1150
- "id": "048f96df-2777-4b26-a6ff-8f86903f01fb",
1151
- "timestamp": "2026-08-31T09:24:30.129Z",
1152
- "parentId": "d2729a59-7676-4fe0-bfc0-32c59e131695"
1153
- }
1154
- ]