@code-yeongyu/senpi 2026.11.2-1 → 2026.11.2-2

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 (67) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/bundle/chunks/{chunk-AMCDEC5A.js → chunk-B2LRAXQU.js} +2 -2
  3. package/dist/bundle/chunks/{chunk-D22YF34L.js → chunk-CQ3G57HE.js} +1 -1
  4. package/dist/bundle/chunks/{chunk-ZUVGFXCS.js → chunk-FVYWSBX3.js} +3 -3
  5. package/dist/bundle/chunks/{chunk-665UPAKG.js → chunk-H3BTMIH5.js} +6 -6
  6. package/dist/bundle/chunks/{chunk-KEJWNCLN.js → chunk-HUSQY3ID.js} +1 -1
  7. package/dist/bundle/chunks/{chunk-IBV4OVXQ.js → chunk-N6OHYIJR.js} +1 -1
  8. package/dist/bundle/chunks/{chunk-XZR4J6HM.js → chunk-PP52OWBB.js} +1 -1
  9. package/dist/bundle/chunks/{chunk-XVQISKHL.js → chunk-QV2IEA3B.js} +4 -4
  10. package/dist/bundle/chunks/{chunk-2V6BR24J.js → chunk-VEWJSPOZ.js} +1 -1
  11. package/dist/bundle/chunks/{cli-main-REFQSP6S.js → cli-main-6ZI4QO2Z.js} +1 -1
  12. package/dist/bundle/chunks/{host-command-Y3ZT6YLD.js → host-command-O3ALG2O3.js} +1 -1
  13. package/dist/bundle/chunks/{host-lifecycle-VW73K4WA.js → host-lifecycle-SGTVODHB.js} +1 -1
  14. package/dist/bundle/chunks/host-lifecycle.js +5 -5
  15. package/dist/bundle/chunks/{host-session-command-YDEUZBTX.js → host-session-command-4WRR5JSB.js} +1 -1
  16. package/dist/bundle/chunks/{interactive-mode-UZXPNJ4V.js → interactive-mode-TF7R35GK.js} +1 -1
  17. package/dist/bundle/chunks/{main-O5G75MYS.js → main-XLUYSOXP.js} +1 -1
  18. package/dist/bundle/chunks/{multi-session-host-AZKJYA2X.js → multi-session-host-CADYC2BS.js} +4 -3
  19. package/dist/bundle/chunks/{package-manager-cli-2YDUGJNR.js → package-manager-cli-I62KMIWK.js} +1 -1
  20. package/dist/bundle/chunks/{rpc-mode-KZD5HZNI.js → rpc-mode-T5GVMUBQ.js} +1 -1
  21. package/dist/bundle/chunks/{schedule-command-7LSJAINZ.js → schedule-command-YXGRN5CM.js} +1 -1
  22. package/dist/bundle/chunks/{session-control-endpoint-BG2KQ6MJ.js → session-control-endpoint-PREVS5UO.js} +1 -1
  23. package/dist/bundle/chunks/session-worker.js +63 -62
  24. package/dist/bundle/cli.js +2 -2
  25. package/dist/bundle/host-supervisor.js +5 -5
  26. package/dist/bundle/index.js +1 -1
  27. package/dist/bundle/rpc-entry.js +1 -1
  28. package/dist/bundle/runtime-manifest.json +1 -1
  29. package/dist/core/session-recovery-identity.d.ts +12 -1
  30. package/dist/modes/rpc/compact-call-fold.d.ts +3 -1
  31. package/dist/modes/rpc/compact-call-fold.js +17 -6
  32. package/dist/modes/rpc/compact-call-identity.d.ts +13 -0
  33. package/dist/modes/rpc/compact-call-identity.js +30 -0
  34. package/dist/modes/rpc/compact-call-model.d.ts +14 -0
  35. package/dist/modes/rpc/compact-call-model.js +4 -0
  36. package/dist/modes/rpc/compact-call-table.d.ts +9 -0
  37. package/dist/modes/rpc/compact-call-table.js +20 -0
  38. package/dist/modes/rpc/compact-catalog-settled.d.ts +5 -0
  39. package/dist/modes/rpc/compact-catalog-settled.js +9 -2
  40. package/dist/modes/rpc/compact-lane-current.d.ts +2 -0
  41. package/dist/modes/rpc/compact-lane-current.js +4 -0
  42. package/dist/modes/rpc/compact-message-identity.d.ts +74 -0
  43. package/dist/modes/rpc/compact-message-identity.js +101 -0
  44. package/dist/modes/rpc/compact-session-calls.d.ts +5 -4
  45. package/dist/modes/rpc/compact-session-calls.js +13 -8
  46. package/dist/modes/rpc/compact-session-state.d.ts +2 -0
  47. package/dist/modes/rpc/compact-session-state.js +4 -0
  48. package/dist/modes/rpc/compact-settled-messages.d.ts +12 -4
  49. package/dist/modes/rpc/compact-settled-messages.js +18 -10
  50. package/dist/modes/rpc/connection-handler.js +1 -1
  51. package/dist/modes/rpc/connection-question-bridge.d.ts +2 -1
  52. package/dist/modes/rpc/connection-question-bridge.js +3 -1
  53. package/dist/modes/rpc/host-lifecycle-proxy.d.ts +9 -0
  54. package/dist/modes/rpc/host-lifecycle-proxy.js +29 -7
  55. package/dist/modes/rpc/rpc-question-types.d.ts +2 -0
  56. package/dist/modes/rpc/session-acceptance-compact.d.ts +17 -7
  57. package/dist/modes/rpc/session-acceptance-compact.js +20 -8
  58. package/dist/modes/rpc/session-acceptance-lane.d.ts +5 -0
  59. package/dist/modes/rpc/session-acceptance-lane.js +12 -11
  60. package/dist/modes/rpc/session-event-writer-destinations.d.ts +2 -1
  61. package/dist/modes/rpc/session-event-writer-destinations.js +24 -9
  62. package/dist/utils/version-check.js +9 -3
  63. package/docs/engine-socket/fixtures/admission-routes/i-live-identity.json +716 -0
  64. package/docs/engine-socket/fixtures/admission-routes/index.json +3 -1
  65. package/docs/engine-socket/fixtures/admission-routes/j-live-call-identity.json +1020 -0
  66. package/docs/rpc.md +66 -0
  67. package/package.json +6 -6
@@ -0,0 +1,716 @@
1
+ {
2
+ "compact": [
3
+ {
4
+ "type": "message_end",
5
+ "message": {
6
+ "role": "custom",
7
+ "customType": "environment-context",
8
+ "content": "<environment_context>\n <cwd><root>/cwd</cwd>\n <current_date>2026-11-01</current_date>\n</environment_context>",
9
+ "display": false,
10
+ "details": {
11
+ "cwd": "<root>/cwd",
12
+ "currentDate": "2026-11-01"
13
+ },
14
+ "timestamp": 1793491200000
15
+ },
16
+ "sessionId": "rpc-1",
17
+ "messageId": "00000000-0000-4000-8000-000000000001",
18
+ "terminalSequence": 1
19
+ },
20
+ {
21
+ "type": "message_end",
22
+ "message": {
23
+ "role": "user",
24
+ "content": [
25
+ {
26
+ "type": "text",
27
+ "text": "first"
28
+ }
29
+ ],
30
+ "timestamp": 1793491200000
31
+ },
32
+ "sessionId": "rpc-1",
33
+ "messageId": "00000000-0000-4000-8000-000000000002",
34
+ "terminalSequence": 2
35
+ },
36
+ {
37
+ "type": "entry_appended",
38
+ "entry": {
39
+ "type": "message",
40
+ "id": "00000001",
41
+ "parentId": "00000002",
42
+ "timestamp": "2026-11-01T00:00:00.000Z",
43
+ "message": {
44
+ "role": "user",
45
+ "content": [
46
+ {
47
+ "type": "text",
48
+ "text": "first"
49
+ }
50
+ ],
51
+ "timestamp": 1793491200000
52
+ },
53
+ "inputSource": "rpc"
54
+ },
55
+ "sessionId": "rpc-1",
56
+ "owningMessageId": "00000000-0000-4000-8000-000000000002"
57
+ },
58
+ {
59
+ "type": "message_end",
60
+ "message": {
61
+ "role": "custom",
62
+ "customType": "senpi.todo-first-turn",
63
+ "content": "<system-reminder>\nThis is the first request of the session. Before continuing, call the todo tool with op \"init\" and a phased list covering the whole request end to end, with only the phases this request needs - a question is one task, and its reply is the answer itself, with no handoff block. Give every task a unique 5-10 word label; phase names are short noun phrases. Then continue the request in this same turn - the init is not a turn by itself.\n</system-reminder>",
64
+ "display": false,
65
+ "timestamp": 1793491200000
66
+ },
67
+ "sessionId": "rpc-1",
68
+ "messageId": "00000000-0000-4000-8000-000000000003",
69
+ "terminalSequence": 3
70
+ },
71
+ {
72
+ "type": "message_end",
73
+ "message": {
74
+ "role": "assistant",
75
+ "content": [
76
+ {
77
+ "type": "text",
78
+ "text": "persisted answer"
79
+ }
80
+ ],
81
+ "api": "faux:fixture",
82
+ "provider": "faux",
83
+ "model": "faux-a",
84
+ "usage": {
85
+ "input": "<tokens>",
86
+ "output": "<tokens>",
87
+ "cacheRead": "<tokens>",
88
+ "cacheWrite": "<tokens>",
89
+ "totalTokens": "<tokens>",
90
+ "cost": {
91
+ "input": 0,
92
+ "output": 0,
93
+ "cacheRead": 0,
94
+ "cacheWrite": 0,
95
+ "total": 0
96
+ }
97
+ },
98
+ "stopReason": "stop",
99
+ "timestamp": 1,
100
+ "thinkingLevel": "off",
101
+ "timing": {
102
+ "requestedAt": 1793491200000,
103
+ "firstTokenAt": 1793491200000,
104
+ "lastTokenAt": 1793491200000,
105
+ "endedAt": 1793491200000
106
+ }
107
+ },
108
+ "sessionId": "rpc-1",
109
+ "messageId": "00000000-0000-4000-8000-000000000004",
110
+ "terminalSequence": 4
111
+ },
112
+ {
113
+ "type": "entry_appended",
114
+ "entry": {
115
+ "type": "message",
116
+ "id": "00000003",
117
+ "parentId": "00000004",
118
+ "timestamp": "2026-11-01T00:00:00.000Z",
119
+ "message": {
120
+ "role": "assistant",
121
+ "content": [
122
+ {
123
+ "type": "text",
124
+ "text": "persisted answer"
125
+ }
126
+ ],
127
+ "api": "faux:fixture",
128
+ "provider": "faux",
129
+ "model": "faux-a",
130
+ "usage": {
131
+ "input": "<tokens>",
132
+ "output": "<tokens>",
133
+ "cacheRead": "<tokens>",
134
+ "cacheWrite": "<tokens>",
135
+ "totalTokens": "<tokens>",
136
+ "cost": {
137
+ "input": 0,
138
+ "output": 0,
139
+ "cacheRead": 0,
140
+ "cacheWrite": 0,
141
+ "total": 0
142
+ }
143
+ },
144
+ "stopReason": "stop",
145
+ "timestamp": 1,
146
+ "thinkingLevel": "off",
147
+ "timing": {
148
+ "requestedAt": 1793491200000,
149
+ "firstTokenAt": 1793491200000,
150
+ "lastTokenAt": 1793491200000,
151
+ "endedAt": 1793491200000
152
+ }
153
+ }
154
+ },
155
+ "sessionId": "rpc-1",
156
+ "owningMessageId": "00000000-0000-4000-8000-000000000004"
157
+ },
158
+ {
159
+ "type": "message_end",
160
+ "message": {
161
+ "role": "user",
162
+ "content": [
163
+ {
164
+ "type": "text",
165
+ "text": "second"
166
+ }
167
+ ],
168
+ "timestamp": 1793491200000
169
+ },
170
+ "sessionId": "rpc-1",
171
+ "messageId": "00000000-0000-4000-8000-000000000005",
172
+ "terminalSequence": 5
173
+ },
174
+ {
175
+ "type": "entry_appended",
176
+ "entry": {
177
+ "type": "message",
178
+ "id": "00000005",
179
+ "parentId": "00000006",
180
+ "timestamp": "2026-11-01T00:00:00.000Z",
181
+ "message": {
182
+ "role": "user",
183
+ "content": [
184
+ {
185
+ "type": "text",
186
+ "text": "second"
187
+ }
188
+ ],
189
+ "timestamp": 1793491200000
190
+ },
191
+ "inputSource": "rpc"
192
+ },
193
+ "sessionId": "rpc-1",
194
+ "owningMessageId": "00000000-0000-4000-8000-000000000005"
195
+ },
196
+ {
197
+ "type": "message_end",
198
+ "message": {
199
+ "role": "assistant",
200
+ "content": [
201
+ {
202
+ "type": "text",
203
+ "text": "refused answer"
204
+ }
205
+ ],
206
+ "api": "faux:fixture",
207
+ "provider": "faux",
208
+ "model": "faux-a",
209
+ "usage": {
210
+ "input": "<tokens>",
211
+ "output": "<tokens>",
212
+ "cacheRead": "<tokens>",
213
+ "cacheWrite": "<tokens>",
214
+ "totalTokens": "<tokens>",
215
+ "cost": {
216
+ "input": 0,
217
+ "output": 0,
218
+ "cacheRead": 0,
219
+ "cacheWrite": 0,
220
+ "total": 0
221
+ }
222
+ },
223
+ "stopReason": "stop",
224
+ "timestamp": 1,
225
+ "thinkingLevel": "off",
226
+ "timing": {
227
+ "requestedAt": 1793491200000,
228
+ "firstTokenAt": 1793491200000,
229
+ "lastTokenAt": 1793491200000,
230
+ "endedAt": 1793491200000
231
+ }
232
+ },
233
+ "sessionId": "rpc-1",
234
+ "messageId": "00000000-0000-4000-8000-000000000006",
235
+ "terminalSequence": 6
236
+ },
237
+ {
238
+ "type": "transcript_write_failed",
239
+ "role": "assistant",
240
+ "errorMessage": "EACCES: injected transcript failure",
241
+ "sessionId": "rpc-1",
242
+ "messageId": "00000000-0000-4000-8000-000000000006"
243
+ },
244
+ {
245
+ "type": "message_end",
246
+ "message": {
247
+ "role": "user",
248
+ "content": [
249
+ {
250
+ "type": "text",
251
+ "text": "third"
252
+ }
253
+ ],
254
+ "timestamp": 1793491200000
255
+ },
256
+ "sessionId": "rpc-1",
257
+ "messageId": "00000000-0000-4000-8000-000000000007",
258
+ "terminalSequence": 7
259
+ },
260
+ {
261
+ "type": "entry_appended",
262
+ "entry": {
263
+ "type": "message",
264
+ "id": "00000007",
265
+ "parentId": "00000008",
266
+ "timestamp": "2026-11-01T00:00:00.000Z",
267
+ "message": {
268
+ "role": "user",
269
+ "content": [
270
+ {
271
+ "type": "text",
272
+ "text": "third"
273
+ }
274
+ ],
275
+ "timestamp": 1793491200000
276
+ },
277
+ "inputSource": "rpc"
278
+ },
279
+ "sessionId": "rpc-1",
280
+ "owningMessageId": "00000000-0000-4000-8000-000000000007"
281
+ },
282
+ {
283
+ "type": "message_end",
284
+ "message": {
285
+ "role": "assistant",
286
+ "content": [
287
+ {
288
+ "type": "text",
289
+ "text": "after the failure"
290
+ }
291
+ ],
292
+ "api": "faux:fixture",
293
+ "provider": "faux",
294
+ "model": "faux-a",
295
+ "usage": {
296
+ "input": "<tokens>",
297
+ "output": "<tokens>",
298
+ "cacheRead": "<tokens>",
299
+ "cacheWrite": "<tokens>",
300
+ "totalTokens": "<tokens>",
301
+ "cost": {
302
+ "input": 0,
303
+ "output": 0,
304
+ "cacheRead": 0,
305
+ "cacheWrite": 0,
306
+ "total": 0
307
+ }
308
+ },
309
+ "stopReason": "stop",
310
+ "timestamp": 1,
311
+ "thinkingLevel": "off",
312
+ "timing": {
313
+ "requestedAt": 1793491200000,
314
+ "firstTokenAt": 1793491200000,
315
+ "lastTokenAt": 1793491200000,
316
+ "endedAt": 1793491200000
317
+ }
318
+ },
319
+ "sessionId": "rpc-1",
320
+ "messageId": "00000000-0000-4000-8000-000000000008",
321
+ "terminalSequence": 8
322
+ },
323
+ {
324
+ "type": "entry_appended",
325
+ "entry": {
326
+ "type": "message",
327
+ "id": "00000009",
328
+ "parentId": "00000007",
329
+ "timestamp": "2026-11-01T00:00:00.000Z",
330
+ "message": {
331
+ "role": "assistant",
332
+ "content": [
333
+ {
334
+ "type": "text",
335
+ "text": "after the failure"
336
+ }
337
+ ],
338
+ "api": "faux:fixture",
339
+ "provider": "faux",
340
+ "model": "faux-a",
341
+ "usage": {
342
+ "input": "<tokens>",
343
+ "output": "<tokens>",
344
+ "cacheRead": "<tokens>",
345
+ "cacheWrite": "<tokens>",
346
+ "totalTokens": "<tokens>",
347
+ "cost": {
348
+ "input": 0,
349
+ "output": 0,
350
+ "cacheRead": 0,
351
+ "cacheWrite": 0,
352
+ "total": 0
353
+ }
354
+ },
355
+ "stopReason": "stop",
356
+ "timestamp": 1,
357
+ "thinkingLevel": "off",
358
+ "timing": {
359
+ "requestedAt": 1793491200000,
360
+ "firstTokenAt": 1793491200000,
361
+ "lastTokenAt": 1793491200000,
362
+ "endedAt": 1793491200000
363
+ }
364
+ }
365
+ },
366
+ "sessionId": "rpc-1",
367
+ "owningMessageId": "00000000-0000-4000-8000-000000000008"
368
+ }
369
+ ],
370
+ "legacy": [
371
+ {
372
+ "type": "message_end",
373
+ "message": {
374
+ "role": "custom",
375
+ "customType": "environment-context",
376
+ "content": "<environment_context>\n <cwd><root>/cwd</cwd>\n <current_date>2026-11-01</current_date>\n</environment_context>",
377
+ "display": false,
378
+ "details": {
379
+ "cwd": "<root>/cwd",
380
+ "currentDate": "2026-11-01"
381
+ },
382
+ "timestamp": 1793491200000
383
+ },
384
+ "sessionId": "rpc-1"
385
+ },
386
+ {
387
+ "type": "message_end",
388
+ "message": {
389
+ "role": "user",
390
+ "content": [
391
+ {
392
+ "type": "text",
393
+ "text": "first"
394
+ }
395
+ ],
396
+ "timestamp": 1793491200000
397
+ },
398
+ "sessionId": "rpc-1"
399
+ },
400
+ {
401
+ "type": "entry_appended",
402
+ "entry": {
403
+ "type": "message",
404
+ "id": "00000001",
405
+ "parentId": "00000002",
406
+ "timestamp": "2026-11-01T00:00:00.000Z",
407
+ "message": {
408
+ "role": "user",
409
+ "content": [
410
+ {
411
+ "type": "text",
412
+ "text": "first"
413
+ }
414
+ ],
415
+ "timestamp": 1793491200000
416
+ },
417
+ "inputSource": "rpc"
418
+ },
419
+ "sessionId": "rpc-1"
420
+ },
421
+ {
422
+ "type": "message_end",
423
+ "message": {
424
+ "role": "custom",
425
+ "customType": "senpi.todo-first-turn",
426
+ "content": "<system-reminder>\nThis is the first request of the session. Before continuing, call the todo tool with op \"init\" and a phased list covering the whole request end to end, with only the phases this request needs - a question is one task, and its reply is the answer itself, with no handoff block. Give every task a unique 5-10 word label; phase names are short noun phrases. Then continue the request in this same turn - the init is not a turn by itself.\n</system-reminder>",
427
+ "display": false,
428
+ "timestamp": 1793491200000
429
+ },
430
+ "sessionId": "rpc-1"
431
+ },
432
+ {
433
+ "type": "message_end",
434
+ "message": {
435
+ "role": "assistant",
436
+ "content": [
437
+ {
438
+ "type": "text",
439
+ "text": "persisted answer"
440
+ }
441
+ ],
442
+ "api": "faux:fixture",
443
+ "provider": "faux",
444
+ "model": "faux-a",
445
+ "usage": {
446
+ "input": "<tokens>",
447
+ "output": "<tokens>",
448
+ "cacheRead": "<tokens>",
449
+ "cacheWrite": "<tokens>",
450
+ "totalTokens": "<tokens>",
451
+ "cost": {
452
+ "input": 0,
453
+ "output": 0,
454
+ "cacheRead": 0,
455
+ "cacheWrite": 0,
456
+ "total": 0
457
+ }
458
+ },
459
+ "stopReason": "stop",
460
+ "timestamp": 1,
461
+ "thinkingLevel": "off",
462
+ "timing": {
463
+ "requestedAt": 1793491200000,
464
+ "firstTokenAt": 1793491200000,
465
+ "lastTokenAt": 1793491200000,
466
+ "endedAt": 1793491200000
467
+ }
468
+ },
469
+ "sessionId": "rpc-1"
470
+ },
471
+ {
472
+ "type": "entry_appended",
473
+ "entry": {
474
+ "type": "message",
475
+ "id": "00000003",
476
+ "parentId": "00000004",
477
+ "timestamp": "2026-11-01T00:00:00.000Z",
478
+ "message": {
479
+ "role": "assistant",
480
+ "content": [
481
+ {
482
+ "type": "text",
483
+ "text": "persisted answer"
484
+ }
485
+ ],
486
+ "api": "faux:fixture",
487
+ "provider": "faux",
488
+ "model": "faux-a",
489
+ "usage": {
490
+ "input": "<tokens>",
491
+ "output": "<tokens>",
492
+ "cacheRead": "<tokens>",
493
+ "cacheWrite": "<tokens>",
494
+ "totalTokens": "<tokens>",
495
+ "cost": {
496
+ "input": 0,
497
+ "output": 0,
498
+ "cacheRead": 0,
499
+ "cacheWrite": 0,
500
+ "total": 0
501
+ }
502
+ },
503
+ "stopReason": "stop",
504
+ "timestamp": 1,
505
+ "thinkingLevel": "off",
506
+ "timing": {
507
+ "requestedAt": 1793491200000,
508
+ "firstTokenAt": 1793491200000,
509
+ "lastTokenAt": 1793491200000,
510
+ "endedAt": 1793491200000
511
+ }
512
+ }
513
+ },
514
+ "sessionId": "rpc-1"
515
+ },
516
+ {
517
+ "type": "message_end",
518
+ "message": {
519
+ "role": "user",
520
+ "content": [
521
+ {
522
+ "type": "text",
523
+ "text": "second"
524
+ }
525
+ ],
526
+ "timestamp": 1793491200000
527
+ },
528
+ "sessionId": "rpc-1"
529
+ },
530
+ {
531
+ "type": "entry_appended",
532
+ "entry": {
533
+ "type": "message",
534
+ "id": "00000005",
535
+ "parentId": "00000006",
536
+ "timestamp": "2026-11-01T00:00:00.000Z",
537
+ "message": {
538
+ "role": "user",
539
+ "content": [
540
+ {
541
+ "type": "text",
542
+ "text": "second"
543
+ }
544
+ ],
545
+ "timestamp": 1793491200000
546
+ },
547
+ "inputSource": "rpc"
548
+ },
549
+ "sessionId": "rpc-1"
550
+ },
551
+ {
552
+ "type": "message_end",
553
+ "message": {
554
+ "role": "assistant",
555
+ "content": [
556
+ {
557
+ "type": "text",
558
+ "text": "refused answer"
559
+ }
560
+ ],
561
+ "api": "faux:fixture",
562
+ "provider": "faux",
563
+ "model": "faux-a",
564
+ "usage": {
565
+ "input": "<tokens>",
566
+ "output": "<tokens>",
567
+ "cacheRead": "<tokens>",
568
+ "cacheWrite": "<tokens>",
569
+ "totalTokens": "<tokens>",
570
+ "cost": {
571
+ "input": 0,
572
+ "output": 0,
573
+ "cacheRead": 0,
574
+ "cacheWrite": 0,
575
+ "total": 0
576
+ }
577
+ },
578
+ "stopReason": "stop",
579
+ "timestamp": 1,
580
+ "thinkingLevel": "off",
581
+ "timing": {
582
+ "requestedAt": 1793491200000,
583
+ "firstTokenAt": 1793491200000,
584
+ "lastTokenAt": 1793491200000,
585
+ "endedAt": 1793491200000
586
+ }
587
+ },
588
+ "sessionId": "rpc-1"
589
+ },
590
+ {
591
+ "type": "transcript_write_failed",
592
+ "role": "assistant",
593
+ "errorMessage": "EACCES: injected transcript failure",
594
+ "sessionId": "rpc-1"
595
+ },
596
+ {
597
+ "type": "message_end",
598
+ "message": {
599
+ "role": "user",
600
+ "content": [
601
+ {
602
+ "type": "text",
603
+ "text": "third"
604
+ }
605
+ ],
606
+ "timestamp": 1793491200000
607
+ },
608
+ "sessionId": "rpc-1"
609
+ },
610
+ {
611
+ "type": "entry_appended",
612
+ "entry": {
613
+ "type": "message",
614
+ "id": "00000007",
615
+ "parentId": "00000008",
616
+ "timestamp": "2026-11-01T00:00:00.000Z",
617
+ "message": {
618
+ "role": "user",
619
+ "content": [
620
+ {
621
+ "type": "text",
622
+ "text": "third"
623
+ }
624
+ ],
625
+ "timestamp": 1793491200000
626
+ },
627
+ "inputSource": "rpc"
628
+ },
629
+ "sessionId": "rpc-1"
630
+ },
631
+ {
632
+ "type": "message_end",
633
+ "message": {
634
+ "role": "assistant",
635
+ "content": [
636
+ {
637
+ "type": "text",
638
+ "text": "after the failure"
639
+ }
640
+ ],
641
+ "api": "faux:fixture",
642
+ "provider": "faux",
643
+ "model": "faux-a",
644
+ "usage": {
645
+ "input": "<tokens>",
646
+ "output": "<tokens>",
647
+ "cacheRead": "<tokens>",
648
+ "cacheWrite": "<tokens>",
649
+ "totalTokens": "<tokens>",
650
+ "cost": {
651
+ "input": 0,
652
+ "output": 0,
653
+ "cacheRead": 0,
654
+ "cacheWrite": 0,
655
+ "total": 0
656
+ }
657
+ },
658
+ "stopReason": "stop",
659
+ "timestamp": 1,
660
+ "thinkingLevel": "off",
661
+ "timing": {
662
+ "requestedAt": 1793491200000,
663
+ "firstTokenAt": 1793491200000,
664
+ "lastTokenAt": 1793491200000,
665
+ "endedAt": 1793491200000
666
+ }
667
+ },
668
+ "sessionId": "rpc-1"
669
+ },
670
+ {
671
+ "type": "entry_appended",
672
+ "entry": {
673
+ "type": "message",
674
+ "id": "00000009",
675
+ "parentId": "00000007",
676
+ "timestamp": "2026-11-01T00:00:00.000Z",
677
+ "message": {
678
+ "role": "assistant",
679
+ "content": [
680
+ {
681
+ "type": "text",
682
+ "text": "after the failure"
683
+ }
684
+ ],
685
+ "api": "faux:fixture",
686
+ "provider": "faux",
687
+ "model": "faux-a",
688
+ "usage": {
689
+ "input": "<tokens>",
690
+ "output": "<tokens>",
691
+ "cacheRead": "<tokens>",
692
+ "cacheWrite": "<tokens>",
693
+ "totalTokens": "<tokens>",
694
+ "cost": {
695
+ "input": 0,
696
+ "output": 0,
697
+ "cacheRead": 0,
698
+ "cacheWrite": 0,
699
+ "total": 0
700
+ }
701
+ },
702
+ "stopReason": "stop",
703
+ "timestamp": 1,
704
+ "thinkingLevel": "off",
705
+ "timing": {
706
+ "requestedAt": 1793491200000,
707
+ "firstTokenAt": 1793491200000,
708
+ "lastTokenAt": 1793491200000,
709
+ "endedAt": 1793491200000
710
+ }
711
+ }
712
+ },
713
+ "sessionId": "rpc-1"
714
+ }
715
+ ]
716
+ }