@stigmer/runner 3.15.3-dev.20260914121148 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/README.md +2 -1
  2. package/dist/.build-fingerprint +1 -1
  3. package/dist/__test-utils__/approval-contract/types.d.ts +1 -1
  4. package/dist/__test-utils__/hermetic-activity.d.ts +61 -7
  5. package/dist/__test-utils__/hermetic-activity.js +100 -9
  6. package/dist/__test-utils__/hermetic-activity.js.map +1 -1
  7. package/dist/__test-utils__/model-registry-fixture.d.ts +22 -3
  8. package/dist/__test-utils__/model-registry-fixture.js +22 -7
  9. package/dist/__test-utils__/model-registry-fixture.js.map +1 -1
  10. package/dist/activities/execute-cursor/__test-utils__/contract-subject.d.ts +2 -2
  11. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +2 -2
  12. package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +61 -0
  13. package/dist/activities/execute-cursor/__test-utils__/fold.js +94 -0
  14. package/dist/activities/execute-cursor/__test-utils__/fold.js.map +1 -0
  15. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js +1 -1
  16. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js.map +1 -1
  17. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +47 -12
  18. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +41 -10
  19. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
  20. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.d.ts +15 -6
  21. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js +17 -4
  22. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js.map +1 -1
  23. package/dist/activities/execute-cursor/adapter.d.ts +4 -4
  24. package/dist/activities/execute-cursor/adapter.js +4 -4
  25. package/dist/activities/execute-cursor/approval-policy.d.ts +10 -10
  26. package/dist/activities/execute-cursor/approval-policy.js +12 -23
  27. package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
  28. package/dist/activities/execute-cursor/approval-state.d.ts +35 -1
  29. package/dist/activities/execute-cursor/approval-state.js +65 -0
  30. package/dist/activities/execute-cursor/approval-state.js.map +1 -1
  31. package/dist/activities/execute-cursor/{message-translator.d.ts → boundary-rows.d.ts} +45 -341
  32. package/dist/activities/execute-cursor/boundary-rows.js +1018 -0
  33. package/dist/activities/execute-cursor/boundary-rows.js.map +1 -0
  34. package/dist/activities/execute-cursor/cursor-capabilities.d.ts +1 -1
  35. package/dist/activities/execute-cursor/cursor-capabilities.js +1 -1
  36. package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +33 -14
  37. package/dist/activities/execute-cursor/cursor-event-recorder.js +43 -21
  38. package/dist/activities/execute-cursor/cursor-event-recorder.js.map +1 -1
  39. package/dist/activities/execute-cursor/prompt-builder.d.ts +3 -3
  40. package/dist/activities/execute-cursor/prompt-builder.js +4 -4
  41. package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
  42. package/dist/activities/execute-cursor/service-tier.js +1 -2
  43. package/dist/activities/execute-cursor/service-tier.js.map +1 -1
  44. package/dist/activities/execute-cursor/sub-agent-steps.d.ts +79 -0
  45. package/dist/activities/execute-cursor/sub-agent-steps.js +180 -0
  46. package/dist/activities/execute-cursor/sub-agent-steps.js.map +1 -0
  47. package/dist/activities/execute-cursor/tool-result.d.ts +49 -0
  48. package/dist/activities/execute-cursor/tool-result.js +130 -0
  49. package/dist/activities/execute-cursor/tool-result.js.map +1 -0
  50. package/dist/activities/execute-cursor/translator.d.ts +178 -0
  51. package/dist/activities/execute-cursor/translator.js +485 -0
  52. package/dist/activities/execute-cursor/translator.js.map +1 -0
  53. package/dist/activities/execute-cursor/turn-boundary.d.ts +15 -5
  54. package/dist/activities/execute-cursor/turn-boundary.js +10 -14
  55. package/dist/activities/execute-cursor/turn-boundary.js.map +1 -1
  56. package/dist/activities/execute-cursor/turn-settle.d.ts +11 -7
  57. package/dist/activities/execute-cursor/turn-settle.js +47 -34
  58. package/dist/activities/execute-cursor/turn-settle.js.map +1 -1
  59. package/dist/activities/execute-cursor/turn-setup.d.ts +2 -2
  60. package/dist/activities/execute-cursor/turn-setup.js +5 -5
  61. package/dist/activities/execute-cursor/turn-setup.js.map +1 -1
  62. package/dist/activities/execute-cursor/turn-stream.d.ts +23 -14
  63. package/dist/activities/execute-cursor/turn-stream.js +41 -28
  64. package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
  65. package/dist/activities/execute-cursor/turn.d.ts +4 -4
  66. package/dist/activities/execute-cursor/turn.js +5 -5
  67. package/dist/activities/execute-cursor/usage-pricing.d.ts +2 -2
  68. package/dist/activities/execute-cursor/usage-pricing.js +2 -2
  69. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +2 -2
  70. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +2 -2
  71. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +16 -11
  72. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +22 -10
  73. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -1
  74. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js +1 -1
  75. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js.map +1 -1
  76. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.d.ts +2 -3
  77. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +2 -3
  78. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js.map +1 -1
  79. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.d.ts +12 -3
  80. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +18 -4
  81. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +1 -1
  82. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +10 -1
  83. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +24 -11
  84. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +1 -1
  85. package/dist/activities/execute-deep-agent/adapter.d.ts +1 -1
  86. package/dist/activities/execute-deep-agent/adapter.js +1 -1
  87. package/dist/activities/execute-deep-agent/approval-file-change.d.ts +19 -19
  88. package/dist/activities/execute-deep-agent/approval-file-change.js +16 -15
  89. package/dist/activities/execute-deep-agent/approval-file-change.js.map +1 -1
  90. package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +2 -2
  91. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +2 -2
  92. package/dist/activities/execute-deep-agent/hitl.d.ts +2 -2
  93. package/dist/activities/execute-deep-agent/hitl.js +2 -2
  94. package/dist/activities/execute-deep-agent/inline-publisher.d.ts +13 -3
  95. package/dist/activities/execute-deep-agent/inline-publisher.js +3 -3
  96. package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -1
  97. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +3 -3
  98. package/dist/activities/execute-deep-agent/prompt-builder.js +6 -7
  99. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
  100. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +16 -8
  101. package/dist/activities/execute-deep-agent/streaming-side-effects.js +20 -33
  102. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
  103. package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +3 -3
  104. package/dist/activities/execute-deep-agent/subagent-transformer.js +1 -1
  105. package/dist/activities/execute-deep-agent/translator.d.ts +134 -0
  106. package/dist/activities/execute-deep-agent/translator.js +418 -0
  107. package/dist/activities/execute-deep-agent/translator.js.map +1 -0
  108. package/dist/activities/execute-deep-agent/turn-settle.d.ts +13 -7
  109. package/dist/activities/execute-deep-agent/turn-settle.js +34 -45
  110. package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -1
  111. package/dist/activities/execute-deep-agent/turn-setup.d.ts +8 -8
  112. package/dist/activities/execute-deep-agent/turn-setup.js +7 -7
  113. package/dist/activities/execute-deep-agent/turn-stream.d.ts +13 -10
  114. package/dist/activities/execute-deep-agent/turn-stream.js +44 -41
  115. package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -1
  116. package/dist/activities/execute-deep-agent/turn.d.ts +3 -3
  117. package/dist/activities/execute-deep-agent/turn.js +3 -3
  118. package/dist/activities/generate-session-subject.d.ts +25 -4
  119. package/dist/activities/generate-session-subject.js +17 -7
  120. package/dist/activities/generate-session-subject.js.map +1 -1
  121. package/dist/client/stigmer-client.d.ts +17 -6
  122. package/dist/client/stigmer-client.js +47 -14
  123. package/dist/client/stigmer-client.js.map +1 -1
  124. package/dist/config.d.ts +6 -3
  125. package/dist/config.js +4 -1
  126. package/dist/config.js.map +1 -1
  127. package/dist/harness/approval-decisions.d.ts +1 -1
  128. package/dist/harness/approval-decisions.js +1 -1
  129. package/dist/harness/capabilities.d.ts +21 -11
  130. package/dist/harness/capabilities.js +2 -2
  131. package/dist/harness/capture.d.ts +4 -4
  132. package/dist/harness/capture.js +4 -4
  133. package/dist/harness/persist-chokepoint.d.ts +3 -3
  134. package/dist/harness/persist-chokepoint.js +3 -3
  135. package/dist/harness/registry.d.ts +2 -2
  136. package/dist/harness/registry.js +2 -2
  137. package/dist/harness/run-turn.d.ts +6 -4
  138. package/dist/harness/run-turn.js +31 -9
  139. package/dist/harness/run-turn.js.map +1 -1
  140. package/dist/harness/stop-controller.d.ts +1 -1
  141. package/dist/harness/stop-controller.js +1 -1
  142. package/dist/harness/terminal-table.d.ts +7 -7
  143. package/dist/harness/terminal-table.js +7 -7
  144. package/dist/harness/transcript/builder.d.ts +182 -0
  145. package/dist/harness/transcript/builder.js +693 -0
  146. package/dist/harness/transcript/builder.js.map +1 -0
  147. package/dist/harness/transcript/events.d.ts +218 -0
  148. package/dist/harness/transcript/events.js +50 -0
  149. package/dist/harness/transcript/events.js.map +1 -0
  150. package/dist/harness/transcript/state.d.ts +110 -0
  151. package/dist/harness/transcript/state.js +148 -0
  152. package/dist/harness/transcript/state.js.map +1 -0
  153. package/dist/harness/turn-context.d.ts +54 -38
  154. package/dist/harness/turn-context.js +42 -43
  155. package/dist/harness/turn-context.js.map +1 -1
  156. package/dist/harness/types.d.ts +63 -22
  157. package/dist/harness/types.js +12 -11
  158. package/dist/harness/types.js.map +1 -1
  159. package/dist/harness/usage-accumulator.d.ts +2 -2
  160. package/dist/harness/usage-accumulator.js +2 -2
  161. package/dist/harness-adapters.d.ts +5 -4
  162. package/dist/harness-adapters.js +5 -4
  163. package/dist/harness-adapters.js.map +1 -1
  164. package/dist/interceptors/run-credential-activity.d.ts +28 -0
  165. package/dist/interceptors/run-credential-activity.js +56 -0
  166. package/dist/interceptors/run-credential-activity.js.map +1 -0
  167. package/dist/middleware/approval-gate.d.ts +6 -0
  168. package/dist/middleware/approval-gate.js +7 -57
  169. package/dist/middleware/approval-gate.js.map +1 -1
  170. package/dist/middleware/cost-advisory.d.ts +3 -3
  171. package/dist/middleware/cost-advisory.js +3 -3
  172. package/dist/middleware/index.d.ts +1 -1
  173. package/dist/middleware/index.js +1 -1
  174. package/dist/runner-manager.js +10 -4
  175. package/dist/runner-manager.js.map +1 -1
  176. package/dist/shared/activity-input.d.ts +9 -0
  177. package/dist/shared/activity-input.js +17 -0
  178. package/dist/shared/activity-input.js.map +1 -1
  179. package/dist/shared/approval-policy.d.ts +53 -0
  180. package/dist/shared/approval-policy.js +76 -0
  181. package/dist/shared/approval-policy.js.map +1 -1
  182. package/dist/shared/args-preview.d.ts +45 -22
  183. package/dist/shared/args-preview.js +51 -41
  184. package/dist/shared/args-preview.js.map +1 -1
  185. package/dist/shared/attachment-resolver.d.ts +4 -4
  186. package/dist/shared/attachment-resolver.js +4 -4
  187. package/dist/shared/attachment-zip.d.ts +2 -2
  188. package/dist/shared/attachment-zip.js +2 -2
  189. package/dist/shared/channel-attachment.d.ts +8 -5
  190. package/dist/shared/channel-attachment.js +10 -6
  191. package/dist/shared/channel-attachment.js.map +1 -1
  192. package/dist/shared/cost-guard.d.ts +2 -2
  193. package/dist/shared/cost-guard.js +2 -2
  194. package/dist/shared/exact-apply.d.ts +1 -1
  195. package/dist/shared/exact-apply.js +1 -1
  196. package/dist/shared/execution-context.d.ts +2 -2
  197. package/dist/shared/execution-context.js +2 -2
  198. package/dist/shared/extract-structured-output.d.ts +2 -2
  199. package/dist/shared/extract-structured-output.js +2 -2
  200. package/dist/shared/filereview/cas-touched.d.ts +2 -2
  201. package/dist/shared/filereview/cas-touched.js +2 -2
  202. package/dist/shared/filereview/progress.d.ts +13 -0
  203. package/dist/shared/filereview/progress.js +13 -0
  204. package/dist/shared/filereview/progress.js.map +1 -1
  205. package/dist/shared/heartbeat.d.ts +1 -1
  206. package/dist/shared/heartbeat.js +1 -1
  207. package/dist/shared/llm-backend.d.ts +0 -4
  208. package/dist/shared/llm-backend.js +0 -4
  209. package/dist/shared/llm-backend.js.map +1 -1
  210. package/dist/shared/memory-attachment.d.ts +16 -9
  211. package/dist/shared/memory-attachment.js +18 -10
  212. package/dist/shared/memory-attachment.js.map +1 -1
  213. package/dist/shared/model-error.d.ts +1 -2
  214. package/dist/shared/model-error.js +1 -2
  215. package/dist/shared/model-error.js.map +1 -1
  216. package/dist/shared/persist-decision.d.ts +18 -24
  217. package/dist/shared/persist-decision.js +19 -11
  218. package/dist/shared/persist-decision.js.map +1 -1
  219. package/dist/shared/prompt-sections.d.ts +4 -4
  220. package/dist/shared/prompt-sections.js +4 -4
  221. package/dist/shared/run-credential-store.d.ts +32 -0
  222. package/dist/shared/run-credential-store.js +39 -0
  223. package/dist/shared/run-credential-store.js.map +1 -0
  224. package/dist/shared/run-credential.d.ts +61 -0
  225. package/dist/shared/run-credential.js +68 -0
  226. package/dist/shared/run-credential.js.map +1 -0
  227. package/dist/shared/skill-resolver.d.ts +3 -3
  228. package/dist/shared/skill-resolver.js +3 -3
  229. package/dist/shared/status-offload.d.ts +1 -1
  230. package/dist/shared/status-offload.js +2 -2
  231. package/dist/shared/status-offload.js.map +1 -1
  232. package/dist/shared/streaming-scheduler.d.ts +2 -7
  233. package/dist/shared/streaming-scheduler.js +6 -14
  234. package/dist/shared/streaming-scheduler.js.map +1 -1
  235. package/dist/shared/subagent-rows.d.ts +2 -2
  236. package/dist/shared/subagent-rows.js +2 -2
  237. package/dist/shared/synthesized-attachment.d.ts +30 -3
  238. package/dist/shared/synthesized-attachment.js +26 -0
  239. package/dist/shared/synthesized-attachment.js.map +1 -1
  240. package/dist/shared/todos.d.ts +3 -3
  241. package/dist/shared/todos.js +3 -3
  242. package/dist/shared/tool-row.d.ts +19 -1
  243. package/dist/shared/tool-row.js +36 -2
  244. package/dist/shared/tool-row.js.map +1 -1
  245. package/dist/shared/worker-shutdown.d.ts +1 -1
  246. package/dist/shared/worker-shutdown.js +1 -1
  247. package/dist/shared/workspace/session-provision.d.ts +1 -1
  248. package/dist/shared/workspace/session-provision.js +1 -1
  249. package/dist/shared/workspace/sources/empty.d.ts +1 -1
  250. package/dist/shared/workspace/sources/empty.js +1 -2
  251. package/dist/shared/workspace/sources/empty.js.map +1 -1
  252. package/dist/shared/workspace/sources/git.js +4 -4
  253. package/dist/shared/workspace/sources/git.js.map +1 -1
  254. package/dist/shared/workspace/sources/local-path.js +6 -6
  255. package/dist/shared/workspace/sources/local-path.js.map +1 -1
  256. package/dist/shared/workspace/stigmer-link.d.ts +1 -1
  257. package/dist/shared/workspace/stigmer-link.js +1 -1
  258. package/dist/shared/workspace/types.d.ts +2 -5
  259. package/dist/shared/workspace/types.js +0 -6
  260. package/dist/shared/workspace/types.js.map +1 -1
  261. package/dist/shared/workspace/writeback-coordinator.d.ts +17 -4
  262. package/dist/shared/workspace/writeback-coordinator.js +7 -9
  263. package/dist/shared/workspace/writeback-coordinator.js.map +1 -1
  264. package/dist/worker.js +10 -3
  265. package/dist/worker.js.map +1 -1
  266. package/dist/workflow-source.d.ts +10 -0
  267. package/dist/workflow-source.js +12 -0
  268. package/dist/workflow-source.js.map +1 -1
  269. package/dist/workflows/execute-from-execution.d.ts +15 -0
  270. package/dist/workflows/execute-from-execution.js +11 -0
  271. package/dist/workflows/execute-from-execution.js.map +1 -1
  272. package/dist/workflows/index.d.ts +5 -3
  273. package/dist/workflows/index.js +5 -3
  274. package/dist/workflows/index.js.map +1 -1
  275. package/dist/workflows/interceptors/run-credential.d.ts +34 -0
  276. package/dist/workflows/interceptors/run-credential.js +71 -0
  277. package/dist/workflows/interceptors/run-credential.js.map +1 -0
  278. package/package.json +4 -4
  279. package/src/__test-utils__/__tests__/execution-record-barrier.test.ts +70 -0
  280. package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +35 -1
  281. package/src/__test-utils__/approval-contract/contract.ts +1 -1
  282. package/src/__test-utils__/approval-contract/types.ts +1 -1
  283. package/src/__test-utils__/harness-boot-order-child.ts +1 -1
  284. package/src/__test-utils__/harness-contract/contract.ts +8 -8
  285. package/src/__test-utils__/harness-contract/recording-sink.ts +11 -1
  286. package/src/__test-utils__/harness-contract/runtime-contract.ts +52 -16
  287. package/src/__test-utils__/harness-contract/scripted-adapter.ts +47 -43
  288. package/src/__test-utils__/hermetic-activity.ts +113 -9
  289. package/src/__test-utils__/model-registry-fixture.ts +31 -7
  290. package/src/__test-utils__/module-specifiers.ts +32 -3
  291. package/src/__tests__/harness-boot-order.test.ts +1 -1
  292. package/src/__tests__/harness-contract.test.ts +1 -1
  293. package/src/__tests__/run-credential-e2e.test.ts +233 -0
  294. package/src/__tests__/run-credential-registration.test.ts +80 -0
  295. package/src/__tests__/runner-manager.test.ts +1 -1
  296. package/src/activities/__tests__/generate-session-subject-wire.test.ts +119 -0
  297. package/src/activities/execute-cursor/__test-utils__/__tests__/scripted-double.test.ts +1 -1
  298. package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +2 -2
  299. package/src/activities/execute-cursor/__test-utils__/fold.ts +116 -0
  300. package/src/activities/execute-cursor/__test-utils__/gateway-substrate.ts +1 -1
  301. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +67 -17
  302. package/src/activities/execute-cursor/__test-utils__/scripted-agent.ts +19 -5
  303. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +2 -1
  304. package/src/activities/execute-cursor/__tests__/approval-state.test.ts +14 -21
  305. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +3 -3
  306. package/src/activities/execute-cursor/__tests__/coarse-fingerprint.test.ts +2 -1
  307. package/src/activities/execute-cursor/__tests__/cursor-event-recorder.test.ts +142 -0
  308. package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.test.ts +19 -8
  309. package/src/activities/execute-cursor/__tests__/cursor-sdk-auth-smoke.test.ts +10 -8
  310. package/src/activities/execute-cursor/__tests__/cursor-transcript-live.test.ts +298 -0
  311. package/src/activities/execute-cursor/__tests__/deny-gate-exact-apply.test.ts +4 -2
  312. package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +1 -1
  313. package/src/activities/execute-cursor/__tests__/hermetic/deny-and-retry.test.ts +1 -1
  314. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +1 -1
  315. package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.status.json +71 -0
  316. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.status.json +73 -0
  317. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +78 -0
  318. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +72 -0
  319. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +72 -0
  320. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.status.json +109 -0
  321. package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.status.json +78 -0
  322. package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.status.json +119 -0
  323. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.status.json +68 -0
  324. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.status.json +67 -0
  325. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +1 -1
  326. package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +7 -7
  327. package/src/activities/execute-cursor/__tests__/hermetic/mcp-tool-call.test.ts +146 -0
  328. package/src/activities/execute-cursor/__tests__/hermetic/pause-vs-shutdown.test.ts +5 -5
  329. package/src/activities/execute-cursor/__tests__/hermetic/plain-turn.test.ts +2 -1
  330. package/src/activities/execute-cursor/__tests__/hermetic/run-wait-arms.test.ts +2 -1
  331. package/src/activities/execute-cursor/__tests__/hermetic/sdk-task-note.test.ts +122 -0
  332. package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +276 -0
  333. package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +8 -8
  334. package/src/activities/execute-cursor/__tests__/hermetic/sub-agent-delegation.test.ts +196 -0
  335. package/src/activities/execute-cursor/__tests__/hermetic/thinking-turn.test.ts +145 -0
  336. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +1 -1
  337. package/src/activities/execute-cursor/__tests__/hermetic/todo-write.test.ts +165 -0
  338. package/src/activities/execute-cursor/__tests__/hermetic/tool-call.test.ts +3 -3
  339. package/src/activities/execute-cursor/__tests__/hermetic/tool-error.test.ts +138 -0
  340. package/src/activities/execute-cursor/__tests__/hermetic/tool-only-step.test.ts +130 -0
  341. package/src/activities/execute-cursor/__tests__/hermetic/unattributed-hook-block.test.ts +13 -1
  342. package/src/activities/execute-cursor/__tests__/hermetic/workspace-lock-timeout.test.ts +2 -2
  343. package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +43 -60
  344. package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +23 -28
  345. package/src/activities/execute-cursor/__tests__/hook-script.test.ts +2 -1
  346. package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +1 -1
  347. package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +5 -5
  348. package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +11 -13
  349. package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +8 -11
  350. package/src/activities/execute-cursor/__tests__/tool-result-image.test.ts +8 -22
  351. package/src/activities/execute-cursor/__tests__/translator.test.ts +594 -0
  352. package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +8 -5
  353. package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +87 -63
  354. package/src/activities/execute-cursor/adapter.ts +4 -4
  355. package/src/activities/execute-cursor/approval-policy.ts +12 -24
  356. package/src/activities/execute-cursor/approval-state.ts +66 -1
  357. package/src/activities/execute-cursor/boundary-rows.ts +1132 -0
  358. package/src/activities/execute-cursor/cursor-capabilities.ts +1 -1
  359. package/src/activities/execute-cursor/cursor-event-recorder.ts +57 -28
  360. package/src/activities/execute-cursor/fetch-interceptor.ts +1 -1
  361. package/src/activities/execute-cursor/http2-interceptor.ts +1 -1
  362. package/src/activities/execute-cursor/prompt-builder.ts +6 -6
  363. package/src/activities/execute-cursor/service-tier.ts +1 -2
  364. package/src/activities/execute-cursor/sub-agent-steps.ts +188 -0
  365. package/src/activities/execute-cursor/tool-result.ts +128 -0
  366. package/src/activities/execute-cursor/translator.ts +541 -0
  367. package/src/activities/execute-cursor/turn-boundary.ts +21 -14
  368. package/src/activities/execute-cursor/turn-settle.ts +46 -34
  369. package/src/activities/execute-cursor/turn-setup.ts +5 -5
  370. package/src/activities/execute-cursor/turn-stream.ts +49 -46
  371. package/src/activities/execute-cursor/turn.ts +5 -5
  372. package/src/activities/execute-cursor/usage-pricing.ts +2 -2
  373. package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +2 -2
  374. package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +23 -11
  375. package/src/activities/execute-deep-agent/__test-utils__/hitl-script.ts +1 -1
  376. package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +2 -3
  377. package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +25 -4
  378. package/src/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.ts +25 -11
  379. package/src/activities/execute-deep-agent/__tests__/adapter-graph-is-sdk-free.test.ts +1 -1
  380. package/src/activities/execute-deep-agent/__tests__/adapter-is-temporal-free.test.ts +1 -1
  381. package/src/activities/execute-deep-agent/__tests__/approval-file-change.test.ts +6 -17
  382. package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +25 -8
  383. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.status.json +2 -7
  384. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.status.json +4 -14
  385. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.status.json +1 -5
  386. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +4 -7
  387. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.status.json +1 -5
  388. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +2 -9
  389. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +2 -9
  390. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.status.json +1 -4
  391. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.status.json +1 -4
  392. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.status.json +1 -4
  393. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +109 -76
  394. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.status.json +1 -5
  395. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.status.json +2 -10
  396. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.status.json +2 -10
  397. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.status.json +1 -5
  398. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.status.json +3 -6
  399. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.status.json +1 -4
  400. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +1 -4
  401. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.status.json +92 -0
  402. package/src/activities/execute-deep-agent/__tests__/hermetic/harness-contract.test.ts +3 -3
  403. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-approve-all-lease.test.ts +9 -5
  404. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +3 -3
  405. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +3 -3
  406. package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +7 -6
  407. package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +10 -11
  408. package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +4 -4
  409. package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +9 -8
  410. package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +21 -13
  411. package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +2 -2
  412. package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +7 -7
  413. package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +28 -12
  414. package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +21 -21
  415. package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +5 -5
  416. package/src/activities/execute-deep-agent/__tests__/hermetic/write-todos.test.ts +160 -0
  417. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +35 -30
  418. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +3 -4
  419. package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +12 -10
  420. package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +13 -3
  421. package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +26 -18
  422. package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +1 -1
  423. package/src/activities/execute-deep-agent/__tests__/{subagent-tracker.test.ts → translator-subagents.test.ts} +76 -57
  424. package/src/activities/execute-deep-agent/__tests__/{v3-status-builder.test.ts → translator-through-builder.test.ts} +213 -299
  425. package/src/activities/execute-deep-agent/__tests__/translator.test.ts +505 -0
  426. package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +11 -29
  427. package/src/activities/execute-deep-agent/adapter.ts +1 -1
  428. package/src/activities/execute-deep-agent/approval-file-change.ts +20 -22
  429. package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +2 -2
  430. package/src/activities/execute-deep-agent/hitl.ts +2 -2
  431. package/src/activities/execute-deep-agent/inline-publisher.ts +16 -5
  432. package/src/activities/execute-deep-agent/prompt-builder.ts +6 -7
  433. package/src/activities/execute-deep-agent/streaming-side-effects.ts +22 -31
  434. package/src/activities/execute-deep-agent/subagent-transformer.ts +3 -3
  435. package/src/activities/execute-deep-agent/translator.ts +463 -0
  436. package/src/activities/execute-deep-agent/turn-settle.ts +35 -43
  437. package/src/activities/execute-deep-agent/turn-setup.ts +8 -8
  438. package/src/activities/execute-deep-agent/turn-stream.ts +53 -51
  439. package/src/activities/execute-deep-agent/turn.ts +3 -3
  440. package/src/activities/generate-session-subject.ts +29 -4
  441. package/src/client/__tests__/stigmer-client.test.ts +92 -0
  442. package/src/client/stigmer-client.ts +48 -14
  443. package/src/config.ts +6 -3
  444. package/src/harness/README.md +335 -0
  445. package/src/harness/__tests__/approval-decisions.test.ts +2 -2
  446. package/src/harness/__tests__/capture.test.ts +3 -3
  447. package/src/harness/__tests__/import-direction.test.ts +3 -2
  448. package/src/harness/__tests__/mount-skills.test.ts +4 -1
  449. package/src/harness/__tests__/readme-index.test.ts +339 -0
  450. package/src/harness/__tests__/run-turn.test.ts +131 -6
  451. package/src/harness/__tests__/transcript-is-engine-free.test.ts +83 -0
  452. package/src/harness/__tests__/transcript-writers.test.ts +191 -0
  453. package/src/harness/__tests__/turn-attachments-vision.test.ts +5 -2
  454. package/src/harness/__tests__/turn-context.test.ts +5 -5
  455. package/src/harness/approval-decisions.ts +1 -1
  456. package/src/harness/capabilities.ts +21 -11
  457. package/src/harness/capture.ts +4 -4
  458. package/src/harness/persist-chokepoint.ts +3 -3
  459. package/src/harness/registry.ts +2 -2
  460. package/src/harness/run-turn.ts +33 -9
  461. package/src/harness/stop-controller.ts +1 -1
  462. package/src/harness/terminal-table.ts +7 -7
  463. package/src/harness/transcript/__tests__/builder.test.ts +975 -0
  464. package/src/harness/transcript/__tests__/state.test.ts +143 -0
  465. package/src/harness/transcript/builder.ts +755 -0
  466. package/src/harness/transcript/events.ts +262 -0
  467. package/src/harness/transcript/state.ts +167 -0
  468. package/src/harness/turn-context.ts +61 -46
  469. package/src/harness/types.ts +64 -22
  470. package/src/harness/usage-accumulator.ts +2 -2
  471. package/src/harness-adapters.ts +5 -4
  472. package/src/interceptors/__tests__/run-credential-activity.test.ts +133 -0
  473. package/src/interceptors/run-credential-activity.ts +67 -0
  474. package/src/middleware/__tests__/cost-advisory.test.ts +2 -2
  475. package/src/middleware/approval-gate.ts +7 -74
  476. package/src/middleware/cost-advisory.ts +3 -3
  477. package/src/middleware/index.ts +1 -1
  478. package/src/runner-manager.ts +14 -4
  479. package/src/shared/__tests__/approval-policy.test.ts +45 -0
  480. package/src/shared/__tests__/args-preview.test.ts +40 -20
  481. package/src/shared/__tests__/attachment-naming.test.ts +1 -1
  482. package/src/shared/__tests__/attachment-resolver.test.ts +5 -5
  483. package/src/shared/__tests__/attachment-zip.test.ts +1 -1
  484. package/src/shared/__tests__/blueprint-resolver.test.ts +1 -1
  485. package/src/shared/__tests__/channel-attachment.test.ts +12 -0
  486. package/src/shared/__tests__/cost-guard.test.ts +1 -1
  487. package/src/shared/__tests__/exact-apply.test.ts +2 -1
  488. package/src/shared/__tests__/memory-attachment.test.ts +17 -0
  489. package/src/shared/__tests__/persist-decision.test.ts +19 -33
  490. package/src/shared/__tests__/prompt-sections.test.ts +1 -1
  491. package/src/shared/__tests__/run-credential.test.ts +111 -0
  492. package/src/shared/__tests__/stamp-flowed-rows.test.ts +1 -1
  493. package/src/shared/__tests__/status-offload.test.ts +1 -1
  494. package/src/shared/__tests__/streaming-scheduler.test.ts +8 -9
  495. package/src/shared/__tests__/todos.test.ts +1 -1
  496. package/src/shared/__tests__/tool-row.test.ts +1 -1
  497. package/src/shared/activity-input.ts +21 -0
  498. package/src/shared/approval-policy.ts +95 -0
  499. package/src/shared/args-preview.ts +51 -42
  500. package/src/shared/attachment-resolver.ts +4 -4
  501. package/src/shared/attachment-zip.ts +2 -2
  502. package/src/shared/channel-attachment.ts +14 -6
  503. package/src/shared/cost-guard.ts +2 -2
  504. package/src/shared/exact-apply.ts +1 -1
  505. package/src/shared/execution-context.ts +2 -2
  506. package/src/shared/extract-structured-output.ts +2 -2
  507. package/src/shared/filereview/__tests__/capture.test.ts +9 -5
  508. package/src/shared/filereview/__tests__/git-substrate.test.ts +4 -1
  509. package/src/shared/filereview/__tests__/proxy-reconcile.test.ts +3 -3
  510. package/src/shared/filereview/cas-touched.ts +2 -2
  511. package/src/shared/filereview/progress.ts +13 -0
  512. package/src/shared/heartbeat.ts +1 -1
  513. package/src/shared/llm-backend.ts +0 -4
  514. package/src/shared/memory-attachment.ts +22 -10
  515. package/src/shared/model-error.ts +1 -2
  516. package/src/shared/persist-decision.ts +19 -28
  517. package/src/shared/prompt-sections.ts +4 -4
  518. package/src/shared/run-credential-store.ts +45 -0
  519. package/src/shared/run-credential.ts +70 -0
  520. package/src/shared/skill-resolver.ts +3 -3
  521. package/src/shared/status-offload.ts +2 -2
  522. package/src/shared/streaming-scheduler.ts +8 -13
  523. package/src/shared/subagent-rows.ts +2 -2
  524. package/src/shared/synthesized-attachment.ts +38 -3
  525. package/src/shared/todos.ts +3 -3
  526. package/src/shared/tool-row.ts +38 -2
  527. package/src/shared/worker-shutdown.ts +1 -1
  528. package/src/shared/workspace/__tests__/git-source.test.ts +3 -3
  529. package/src/shared/workspace/__tests__/provisioner.test.ts +5 -5
  530. package/src/shared/workspace/__tests__/session-provision.test.ts +2 -2
  531. package/src/shared/workspace/__tests__/writeback-coordinator.integration.test.ts +8 -9
  532. package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +25 -25
  533. package/src/shared/workspace/provisioner.ts +1 -1
  534. package/src/shared/workspace/session-provision.ts +1 -1
  535. package/src/shared/workspace/sources/empty.ts +2 -2
  536. package/src/shared/workspace/sources/git.ts +3 -4
  537. package/src/shared/workspace/sources/local-path.ts +5 -6
  538. package/src/shared/workspace/stigmer-link.ts +1 -1
  539. package/src/shared/workspace/types.ts +2 -5
  540. package/src/shared/workspace/writeback-coordinator.ts +23 -12
  541. package/src/worker.ts +15 -3
  542. package/src/workflow-source.ts +15 -0
  543. package/src/workflows/__tests__/run-credential-interceptor.test.ts +178 -0
  544. package/src/workflows/execute-from-execution.ts +17 -0
  545. package/src/workflows/index.ts +5 -3
  546. package/src/workflows/interceptors/run-credential.ts +101 -0
  547. package/dist/activities/execute-cursor/delta-enricher.d.ts +0 -87
  548. package/dist/activities/execute-cursor/delta-enricher.js +0 -265
  549. package/dist/activities/execute-cursor/delta-enricher.js.map +0 -1
  550. package/dist/activities/execute-cursor/message-translator.js +0 -2040
  551. package/dist/activities/execute-cursor/message-translator.js.map +0 -1
  552. package/dist/activities/execute-cursor/todo-tracker.d.ts +0 -40
  553. package/dist/activities/execute-cursor/todo-tracker.js +0 -80
  554. package/dist/activities/execute-cursor/todo-tracker.js.map +0 -1
  555. package/dist/activities/execute-deep-agent/execution-state.d.ts +0 -54
  556. package/dist/activities/execute-deep-agent/execution-state.js +0 -68
  557. package/dist/activities/execute-deep-agent/execution-state.js.map +0 -1
  558. package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +0 -65
  559. package/dist/activities/execute-deep-agent/status-builder-shared.js +0 -90
  560. package/dist/activities/execute-deep-agent/status-builder-shared.js.map +0 -1
  561. package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +0 -113
  562. package/dist/activities/execute-deep-agent/subagent-tracker.js +0 -400
  563. package/dist/activities/execute-deep-agent/subagent-tracker.js.map +0 -1
  564. package/dist/activities/execute-deep-agent/v3-events.d.ts +0 -102
  565. package/dist/activities/execute-deep-agent/v3-events.js +0 -35
  566. package/dist/activities/execute-deep-agent/v3-events.js.map +0 -1
  567. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.d.ts +0 -15
  568. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js +0 -235
  569. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js.map +0 -1
  570. package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +0 -111
  571. package/dist/activities/execute-deep-agent/v3-status-builder.js +0 -457
  572. package/dist/activities/execute-deep-agent/v3-status-builder.js.map +0 -1
  573. package/dist/shared/execution-status-writer.d.ts +0 -31
  574. package/dist/shared/execution-status-writer.js +0 -43
  575. package/dist/shared/execution-status-writer.js.map +0 -1
  576. package/src/activities/execute-cursor/__tests__/delta-enricher.test.ts +0 -310
  577. package/src/activities/execute-cursor/__tests__/message-translator.test.ts +0 -1033
  578. package/src/activities/execute-cursor/__tests__/todo-tracker.test.ts +0 -498
  579. package/src/activities/execute-cursor/delta-enricher.ts +0 -307
  580. package/src/activities/execute-cursor/message-translator.ts +0 -2319
  581. package/src/activities/execute-cursor/todo-tracker.ts +0 -91
  582. package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +0 -148
  583. package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +0 -154
  584. package/src/activities/execute-deep-agent/__tests__/status-builder-shared.test.ts +0 -47
  585. package/src/activities/execute-deep-agent/__tests__/v3-protocol-normalizer.test.ts +0 -324
  586. package/src/activities/execute-deep-agent/execution-state.ts +0 -78
  587. package/src/activities/execute-deep-agent/status-builder-shared.ts +0 -142
  588. package/src/activities/execute-deep-agent/subagent-tracker.ts +0 -479
  589. package/src/activities/execute-deep-agent/v3-events.ts +0 -153
  590. package/src/activities/execute-deep-agent/v3-protocol-normalizer.ts +0 -264
  591. package/src/activities/execute-deep-agent/v3-status-builder.ts +0 -565
  592. package/src/shared/execution-status-writer.ts +0 -56
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "Reading file 0.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -19,8 +15,16 @@
19
15
  "status": "TOOL_CALL_COMPLETED",
20
16
  "startedAt": "2026-01-01T00:00:01.000Z",
21
17
  "completedAt": "2026-01-01T00:00:01.000Z",
18
+ "argsPreview": "{\"file_path\":\"/f0.md\"}",
22
19
  "toolKind": "TOOL_KIND_FILE_READ"
23
- },
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "type": "MESSAGE_AI",
25
+ "content": "Reading file 1.",
26
+ "timestamp": "2026-01-01T00:00:02.000Z",
27
+ "toolCalls": [
24
28
  {
25
29
  "id": "call-hermetic-loop-0001",
26
30
  "name": "read_file",
@@ -31,8 +35,16 @@
31
35
  "status": "TOOL_CALL_COMPLETED",
32
36
  "startedAt": "2026-01-01T00:00:02.000Z",
33
37
  "completedAt": "2026-01-01T00:00:02.000Z",
38
+ "argsPreview": "{\"file_path\":\"/f1.md\"}",
34
39
  "toolKind": "TOOL_KIND_FILE_READ"
35
- },
40
+ }
41
+ ]
42
+ },
43
+ {
44
+ "type": "MESSAGE_AI",
45
+ "content": "Reading file 2.",
46
+ "timestamp": "2026-01-01T00:00:03.000Z",
47
+ "toolCalls": [
36
48
  {
37
49
  "id": "call-hermetic-loop-0002",
38
50
  "name": "read_file",
@@ -43,8 +55,16 @@
43
55
  "status": "TOOL_CALL_COMPLETED",
44
56
  "startedAt": "2026-01-01T00:00:03.000Z",
45
57
  "completedAt": "2026-01-01T00:00:03.000Z",
58
+ "argsPreview": "{\"file_path\":\"/f2.md\"}",
46
59
  "toolKind": "TOOL_KIND_FILE_READ"
47
- },
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "type": "MESSAGE_AI",
65
+ "content": "Reading file 3.",
66
+ "timestamp": "2026-01-01T00:00:04.000Z",
67
+ "toolCalls": [
48
68
  {
49
69
  "id": "call-hermetic-loop-0003",
50
70
  "name": "read_file",
@@ -55,8 +75,16 @@
55
75
  "status": "TOOL_CALL_COMPLETED",
56
76
  "startedAt": "2026-01-01T00:00:04.000Z",
57
77
  "completedAt": "2026-01-01T00:00:04.000Z",
78
+ "argsPreview": "{\"file_path\":\"/f3.md\"}",
58
79
  "toolKind": "TOOL_KIND_FILE_READ"
59
- },
80
+ }
81
+ ]
82
+ },
83
+ {
84
+ "type": "MESSAGE_AI",
85
+ "content": "Reading file 4.",
86
+ "timestamp": "2026-01-01T00:00:05.000Z",
87
+ "toolCalls": [
60
88
  {
61
89
  "id": "call-hermetic-loop-0004",
62
90
  "name": "read_file",
@@ -67,8 +95,16 @@
67
95
  "status": "TOOL_CALL_COMPLETED",
68
96
  "startedAt": "2026-01-01T00:00:05.000Z",
69
97
  "completedAt": "2026-01-01T00:00:05.000Z",
98
+ "argsPreview": "{\"file_path\":\"/f4.md\"}",
70
99
  "toolKind": "TOOL_KIND_FILE_READ"
71
- },
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ "type": "MESSAGE_AI",
105
+ "content": "Reading file 5.",
106
+ "timestamp": "2026-01-01T00:00:06.000Z",
107
+ "toolCalls": [
72
108
  {
73
109
  "id": "call-hermetic-loop-0005",
74
110
  "name": "read_file",
@@ -79,8 +115,16 @@
79
115
  "status": "TOOL_CALL_COMPLETED",
80
116
  "startedAt": "2026-01-01T00:00:06.000Z",
81
117
  "completedAt": "2026-01-01T00:00:06.000Z",
118
+ "argsPreview": "{\"file_path\":\"/f5.md\"}",
82
119
  "toolKind": "TOOL_KIND_FILE_READ"
83
- },
120
+ }
121
+ ]
122
+ },
123
+ {
124
+ "type": "MESSAGE_AI",
125
+ "content": "Reading file 6.",
126
+ "timestamp": "2026-01-01T00:00:07.000Z",
127
+ "toolCalls": [
84
128
  {
85
129
  "id": "call-hermetic-loop-0006",
86
130
  "name": "read_file",
@@ -91,8 +135,16 @@
91
135
  "status": "TOOL_CALL_COMPLETED",
92
136
  "startedAt": "2026-01-01T00:00:07.000Z",
93
137
  "completedAt": "2026-01-01T00:00:07.000Z",
138
+ "argsPreview": "{\"file_path\":\"/f6.md\"}",
94
139
  "toolKind": "TOOL_KIND_FILE_READ"
95
- },
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ "type": "MESSAGE_AI",
145
+ "content": "Reading file 7.",
146
+ "timestamp": "2026-01-01T00:00:08.000Z",
147
+ "toolCalls": [
96
148
  {
97
149
  "id": "call-hermetic-loop-0007",
98
150
  "name": "read_file",
@@ -103,8 +155,16 @@
103
155
  "status": "TOOL_CALL_COMPLETED",
104
156
  "startedAt": "2026-01-01T00:00:08.000Z",
105
157
  "completedAt": "2026-01-01T00:00:08.000Z",
158
+ "argsPreview": "{\"file_path\":\"/f7.md\"}",
106
159
  "toolKind": "TOOL_KIND_FILE_READ"
107
- },
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "type": "MESSAGE_AI",
165
+ "content": "Reading file 8.",
166
+ "timestamp": "2026-01-01T00:00:09.000Z",
167
+ "toolCalls": [
108
168
  {
109
169
  "id": "call-hermetic-loop-0008",
110
170
  "name": "read_file",
@@ -115,8 +175,16 @@
115
175
  "status": "TOOL_CALL_COMPLETED",
116
176
  "startedAt": "2026-01-01T00:00:09.000Z",
117
177
  "completedAt": "2026-01-01T00:00:09.000Z",
178
+ "argsPreview": "{\"file_path\":\"/f8.md\"}",
118
179
  "toolKind": "TOOL_KIND_FILE_READ"
119
- },
180
+ }
181
+ ]
182
+ },
183
+ {
184
+ "type": "MESSAGE_AI",
185
+ "content": "Reading file 9.",
186
+ "timestamp": "2026-01-01T00:00:10.000Z",
187
+ "toolCalls": [
120
188
  {
121
189
  "id": "call-hermetic-loop-0009",
122
190
  "name": "read_file",
@@ -127,8 +195,16 @@
127
195
  "status": "TOOL_CALL_COMPLETED",
128
196
  "startedAt": "2026-01-01T00:00:10.000Z",
129
197
  "completedAt": "2026-01-01T00:00:10.000Z",
198
+ "argsPreview": "{\"file_path\":\"/f9.md\"}",
130
199
  "toolKind": "TOOL_KIND_FILE_READ"
131
- },
200
+ }
201
+ ]
202
+ },
203
+ {
204
+ "type": "MESSAGE_AI",
205
+ "content": "Reading file 10.",
206
+ "timestamp": "2026-01-01T00:00:11.000Z",
207
+ "toolCalls": [
132
208
  {
133
209
  "id": "call-hermetic-loop-0010",
134
210
  "name": "read_file",
@@ -139,8 +215,16 @@
139
215
  "status": "TOOL_CALL_COMPLETED",
140
216
  "startedAt": "2026-01-01T00:00:11.000Z",
141
217
  "completedAt": "2026-01-01T00:00:11.000Z",
218
+ "argsPreview": "{\"file_path\":\"/f10.md\"}",
142
219
  "toolKind": "TOOL_KIND_FILE_READ"
143
- },
220
+ }
221
+ ]
222
+ },
223
+ {
224
+ "type": "MESSAGE_AI",
225
+ "content": "Reading file 11.",
226
+ "timestamp": "2026-01-01T00:00:12.000Z",
227
+ "toolCalls": [
144
228
  {
145
229
  "id": "call-hermetic-loop-0011",
146
230
  "name": "read_file",
@@ -151,8 +235,16 @@
151
235
  "status": "TOOL_CALL_COMPLETED",
152
236
  "startedAt": "2026-01-01T00:00:12.000Z",
153
237
  "completedAt": "2026-01-01T00:00:12.000Z",
238
+ "argsPreview": "{\"file_path\":\"/f11.md\"}",
154
239
  "toolKind": "TOOL_KIND_FILE_READ"
155
- },
240
+ }
241
+ ]
242
+ },
243
+ {
244
+ "type": "MESSAGE_AI",
245
+ "content": "Reading file 12.",
246
+ "timestamp": "2026-01-01T00:00:13.000Z",
247
+ "toolCalls": [
156
248
  {
157
249
  "id": "call-hermetic-loop-0012",
158
250
  "name": "read_file",
@@ -163,70 +255,11 @@
163
255
  "status": "TOOL_CALL_COMPLETED",
164
256
  "startedAt": "2026-01-01T00:00:13.000Z",
165
257
  "completedAt": "2026-01-01T00:00:13.000Z",
258
+ "argsPreview": "{\"file_path\":\"/f12.md\"}",
166
259
  "toolKind": "TOOL_KIND_FILE_READ"
167
260
  }
168
261
  ]
169
262
  },
170
- {
171
- "type": "MESSAGE_AI",
172
- "content": "Reading file 1.",
173
- "timestamp": "2026-01-01T00:00:02.000Z"
174
- },
175
- {
176
- "type": "MESSAGE_AI",
177
- "content": "Reading file 2.",
178
- "timestamp": "2026-01-01T00:00:03.000Z"
179
- },
180
- {
181
- "type": "MESSAGE_AI",
182
- "content": "Reading file 3.",
183
- "timestamp": "2026-01-01T00:00:04.000Z"
184
- },
185
- {
186
- "type": "MESSAGE_AI",
187
- "content": "Reading file 4.",
188
- "timestamp": "2026-01-01T00:00:05.000Z"
189
- },
190
- {
191
- "type": "MESSAGE_AI",
192
- "content": "Reading file 5.",
193
- "timestamp": "2026-01-01T00:00:06.000Z"
194
- },
195
- {
196
- "type": "MESSAGE_AI",
197
- "content": "Reading file 6.",
198
- "timestamp": "2026-01-01T00:00:07.000Z"
199
- },
200
- {
201
- "type": "MESSAGE_AI",
202
- "content": "Reading file 7.",
203
- "timestamp": "2026-01-01T00:00:08.000Z"
204
- },
205
- {
206
- "type": "MESSAGE_AI",
207
- "content": "Reading file 8.",
208
- "timestamp": "2026-01-01T00:00:09.000Z"
209
- },
210
- {
211
- "type": "MESSAGE_AI",
212
- "content": "Reading file 9.",
213
- "timestamp": "2026-01-01T00:00:10.000Z"
214
- },
215
- {
216
- "type": "MESSAGE_AI",
217
- "content": "Reading file 10.",
218
- "timestamp": "2026-01-01T00:00:11.000Z"
219
- },
220
- {
221
- "type": "MESSAGE_AI",
222
- "content": "Reading file 11.",
223
- "timestamp": "2026-01-01T00:00:12.000Z"
224
- },
225
- {
226
- "type": "MESSAGE_AI",
227
- "content": "Reading file 12.",
228
- "timestamp": "2026-01-01T00:00:13.000Z"
229
- },
230
263
  {
231
264
  "type": "MESSAGE_AI",
232
265
  "content": "Reading file 13.",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "I will run the command.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -19,7 +15,7 @@
19
15
  "startedAt": "2026-01-01T00:00:01.000Z",
20
16
  "error": "Rejected by user",
21
17
  "requiresApproval": true,
22
- "approvalMessage": "Execute command: echo hermetic-a",
18
+ "approvalMessage": "Run command: echo hermetic-a",
23
19
  "approvalRequestedAt": "2026-01-01T00:00:01.000Z",
24
20
  "approvalDecidedAt": "2026-01-01T00:00:30.000Z",
25
21
  "approvalAction": "APPROVAL_ACTION_REJECT",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "I will run the command.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -20,7 +16,7 @@
20
16
  "startedAt": "2026-01-01T00:00:01.000Z",
21
17
  "completedAt": "2026-01-01T00:00:01.000Z",
22
18
  "requiresApproval": true,
23
- "approvalMessage": "Execute command: echo hermetic-a",
19
+ "approvalMessage": "Run command: echo hermetic-a",
24
20
  "approvalRequestedAt": "2026-01-01T00:00:01.000Z",
25
21
  "approvalDecidedAt": "2026-01-01T00:00:30.000Z",
26
22
  "approvalAction": "APPROVAL_ACTION_APPROVE",
@@ -34,10 +30,6 @@
34
30
  {
35
31
  "type": "MESSAGE_AI",
36
32
  "content": "Now the second command.",
37
- "timestamp": "2026-01-01T00:00:02.000Z"
38
- },
39
- {
40
- "type": "MESSAGE_AI",
41
33
  "timestamp": "2026-01-01T00:00:02.000Z",
42
34
  "toolCalls": [
43
35
  {
@@ -49,7 +41,7 @@
49
41
  "status": "TOOL_CALL_WAITING_APPROVAL",
50
42
  "startedAt": "2026-01-01T00:00:02.000Z",
51
43
  "requiresApproval": true,
52
- "approvalMessage": "Execute command: echo hermetic-b",
44
+ "approvalMessage": "Run command: echo hermetic-b",
53
45
  "approvalRequestedAt": "2026-01-01T00:00:02.000Z",
54
46
  "argsPreview": "{\"command\":\"echo hermetic-b\"}",
55
47
  "toolKind": "TOOL_KIND_SHELL",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "I will run the command.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -20,7 +16,7 @@
20
16
  "startedAt": "2026-01-01T00:00:01.000Z",
21
17
  "completedAt": "2026-01-01T00:00:01.000Z",
22
18
  "requiresApproval": true,
23
- "approvalMessage": "Execute command: echo hermetic-a",
19
+ "approvalMessage": "Run command: echo hermetic-a",
24
20
  "approvalRequestedAt": "2026-01-01T00:00:01.000Z",
25
21
  "approvalDecidedAt": "2026-01-01T00:00:30.000Z",
26
22
  "approvalAction": "APPROVAL_ACTION_APPROVE",
@@ -34,10 +30,6 @@
34
30
  {
35
31
  "type": "MESSAGE_AI",
36
32
  "content": "Now the second command.",
37
- "timestamp": "2026-01-01T00:00:02.000Z"
38
- },
39
- {
40
- "type": "MESSAGE_AI",
41
33
  "timestamp": "2026-01-01T00:00:02.000Z",
42
34
  "toolCalls": [
43
35
  {
@@ -51,7 +43,7 @@
51
43
  "startedAt": "2026-01-01T00:00:02.000Z",
52
44
  "completedAt": "2026-01-01T00:00:02.000Z",
53
45
  "requiresApproval": true,
54
- "approvalMessage": "Execute command: echo hermetic-b",
46
+ "approvalMessage": "Run command: echo hermetic-b",
55
47
  "approvalRequestedAt": "2026-01-01T00:00:02.000Z",
56
48
  "approvalDecidedAt": "2026-01-01T00:01:00.000Z",
57
49
  "approvalAction": "APPROVAL_ACTION_APPROVE",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "I will run the command.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -18,7 +14,7 @@
18
14
  "status": "TOOL_CALL_SKIPPED",
19
15
  "startedAt": "2026-01-01T00:00:01.000Z",
20
16
  "requiresApproval": true,
21
- "approvalMessage": "Execute command: echo hermetic-a",
17
+ "approvalMessage": "Run command: echo hermetic-a",
22
18
  "approvalRequestedAt": "2026-01-01T00:00:01.000Z",
23
19
  "approvalDecidedAt": "2026-01-01T00:00:30.000Z",
24
20
  "approvalAction": "APPROVAL_ACTION_SKIP",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "Delegating to the helper.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -16,10 +12,11 @@
16
12
  "description": "Look up the fixture value.",
17
13
  "subagent_type": "helper"
18
14
  },
19
- "result": "{\"lg_name\":\"Command\",\"update\":{\"files\":{},\"messages\":[{\"lc\":1,\"type\":\"constructor\",\"id\":[\"langchain_core\",\"messages\",\"ToolMessage\"],\"kwargs\":{\"content\":[{\"type\":\"text\",\"text\":\"The fixture value is forty-two.\"}],\"tool_call_id\":\"call-hermetic-task-0001\",\"name\":\"task\",\"additional_kwargs\":{},\"response_metadata\":{}}}]},\"goto\":[]}",
15
+ "result": "[{\"type\":\"text\",\"text\":\"The fixture value is forty-two.\"}]",
20
16
  "status": "TOOL_CALL_COMPLETED",
21
17
  "startedAt": "2026-01-01T00:00:01.000Z",
22
18
  "completedAt": "2026-01-01T00:00:02.000Z",
19
+ "argsPreview": "{\"description\":\"Look up the fixture value.\",\"subagent_type\":\"helper\"}",
23
20
  "toolKind": "TOOL_KIND_SUBAGENT"
24
21
  }
25
22
  ]
@@ -36,7 +33,7 @@
36
33
  "id": "call-hermetic-task-0001",
37
34
  "name": "helper",
38
35
  "input": "Look up the fixture value.",
39
- "output": "{\"lg_name\":\"Command\",\"update\":{\"files\":{},\"messages\":[{\"lc\":1,\"type\":\"constructor\",\"id\":[\"langchain_core\",\"messages\",\"ToolMessage\"],\"kwargs\":{\"content\":[{\"type\":\"text\",\"text\":\"The fixture value is forty-two.\"}],\"tool_call_id\":\"call-hermetic-task-0001\",\"name\":\"task\",\"additional_kwargs\":{},\"response_metadata\":{}}}]},\"goto\":[]}",
36
+ "output": "[{\"type\":\"text\",\"text\":\"The fixture value is forty-two.\"}]",
40
37
  "status": "SUB_AGENT_COMPLETED",
41
38
  "startedAt": "2026-01-01T00:00:01.000Z",
42
39
  "completedAt": "2026-01-01T00:00:02.000Z",
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "Let me read it.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -19,6 +15,7 @@
19
15
  "status": "TOOL_CALL_COMPLETED",
20
16
  "startedAt": "2026-01-01T00:00:01.000Z",
21
17
  "completedAt": "2026-01-01T00:00:01.000Z",
18
+ "argsPreview": "{\"file_path\":\"/README.md\"}",
22
19
  "toolKind": "TOOL_KIND_FILE_READ"
23
20
  }
24
21
  ]
@@ -3,10 +3,6 @@
3
3
  {
4
4
  "type": "MESSAGE_AI",
5
5
  "content": "Let me look.",
6
- "timestamp": "2026-01-01T00:00:01.000Z"
7
- },
8
- {
9
- "type": "MESSAGE_AI",
10
6
  "timestamp": "2026-01-01T00:00:01.000Z",
11
7
  "toolCalls": [
12
8
  {
@@ -19,6 +15,7 @@
19
15
  "status": "TOOL_CALL_COMPLETED",
20
16
  "startedAt": "2026-01-01T00:00:01.000Z",
21
17
  "completedAt": "2026-01-01T00:00:01.000Z",
18
+ "argsPreview": "{\"file_path\":\"/notes.md\"}",
22
19
  "toolKind": "TOOL_KIND_FILE_READ"
23
20
  }
24
21
  ]
@@ -0,0 +1,92 @@
1
+ {
2
+ "messages": [
3
+ {
4
+ "type": "MESSAGE_AI",
5
+ "content": "Planning the two steps.",
6
+ "timestamp": "2026-01-01T00:00:01.000Z",
7
+ "toolCalls": [
8
+ {
9
+ "id": "call-hermetic-todos-0001",
10
+ "name": "write_todos",
11
+ "args": {
12
+ "todos": [
13
+ {
14
+ "content": "Read the fixture",
15
+ "status": "pending"
16
+ },
17
+ {
18
+ "content": "Summarise it",
19
+ "status": "in_progress"
20
+ }
21
+ ]
22
+ },
23
+ "result": "Updated todo list to [{\"content\":\"Read the fixture\",\"status\":\"pending\"},{\"content\":\"Summarise it\",\"status\":\"in_progress\"}]",
24
+ "status": "TOOL_CALL_COMPLETED",
25
+ "startedAt": "2026-01-01T00:00:01.000Z",
26
+ "completedAt": "2026-01-01T00:00:01.000Z",
27
+ "argsPreview": "{\"todos\":[{\"content\":\"Read the fixture\",\"status\":\"pending\"},{\"content\":\"Summarise it\",\"status\":\"in_progress\"}]}",
28
+ "toolKind": "TOOL_KIND_TODO"
29
+ }
30
+ ]
31
+ },
32
+ {
33
+ "type": "MESSAGE_AI",
34
+ "content": "The plan is written.",
35
+ "timestamp": "2026-01-01T00:00:02.000Z"
36
+ }
37
+ ],
38
+ "phase": "EXECUTION_COMPLETED",
39
+ "startedAt": "2026-01-01T00:00:00.000Z",
40
+ "completedAt": "2026-01-01T00:00:02.000Z",
41
+ "todos": {
42
+ "todo-0": {
43
+ "id": "todo-0",
44
+ "content": "Read the fixture",
45
+ "status": "TODO_PENDING",
46
+ "createdAt": "2026-01-01T00:00:01.000Z",
47
+ "updatedAt": "2026-01-01T00:00:01.000Z"
48
+ },
49
+ "todo-1": {
50
+ "id": "todo-1",
51
+ "content": "Summarise it",
52
+ "status": "TODO_IN_PROGRESS",
53
+ "createdAt": "2026-01-01T00:00:01.000Z",
54
+ "updatedAt": "2026-01-01T00:00:01.000Z"
55
+ }
56
+ },
57
+ "streamingUsage": {
58
+ "inputTokens": "3000",
59
+ "outputTokens": "90",
60
+ "totalTokens": "3090",
61
+ "turnCount": 2,
62
+ "estimatedCostUsd": 0.00345,
63
+ "model": "claude-haiku-4.5",
64
+ "observedAt": "2026-01-01T00:00:02.000Z",
65
+ "requestedServiceTier": "SERVICE_TIER_STANDARD",
66
+ "requestedThinkingMode": "THINKING_MODE_DISABLED"
67
+ },
68
+ "fileReviewEventStream": {
69
+ "executionId": "aex_hermetic_0001",
70
+ "events": [
71
+ {
72
+ "eventId": "aex_hermetic_0001:0:aex_hermetic_0001:0:FILE_REVIEW_EVENT_TYPE_BASELINE_CAPTURED",
73
+ "changeSetId": "aex_hermetic_0001:0",
74
+ "eventType": "FILE_REVIEW_EVENT_TYPE_BASELINE_CAPTURED",
75
+ "timestamp": "2026-01-01T00:00:00.000Z",
76
+ "actor": "runner",
77
+ "baselineCaptured": {
78
+ "changeSetId": "aex_hermetic_0001:0",
79
+ "turnId": "aex_hermetic_0001:0",
80
+ "harnessId": "deep-agent",
81
+ "baselineSnapshot": {
82
+ "kind": "SNAPSHOT_KIND_CAS_MANIFEST"
83
+ }
84
+ }
85
+ }
86
+ ]
87
+ },
88
+ "fileChangeProgress": {
89
+ "changeSetId": "aex_hermetic_0001:0",
90
+ "capturedAt": "2026-01-01T00:00:00.000Z"
91
+ }
92
+ }
@@ -18,7 +18,7 @@
18
18
  *
19
19
  * The posture is sqlite, the production local default (`config.ts`): the
20
20
  * test-only memory saver re-interrupts on replay and duplicates the gated
21
- * row (S3 M0 finding F-M0-3), so it cannot carry the HITL arms. One sqlite
21
+ * row (found in #1096), so it cannot carry the HITL arms. One sqlite
22
22
  * file per session lands under the hermetic `HOME`, opened and closed per
23
23
  * turn by the adapter.
24
24
  *
@@ -32,7 +32,7 @@
32
32
  * express — the interrupt primitive's own facts: an APPROVED pending action
33
33
  * executes at the resume, before the model is asked (the order the kit's
34
34
  * invariant 4 used to assert the other way round, until this adapter showed
35
- * it is the primitive's and not the contract's — S3 M3 F-M3-1, Q-M3-2); a
35
+ * it is the primitive's and not the contract's, in #1096); a
36
36
  * REJECT reaches the model as the gate's denial `ToolMessage` in the
37
37
  * conversation, and the model proposes the call exactly once (the denial is
38
38
  * a tool result the model reads, never a second gate); and one sqlite
@@ -93,7 +93,7 @@ describe("ExecuteDeepAgent hermetic — the harness contract kit against the rea
93
93
  await subject.adapter.boot(subject.config);
94
94
  });
95
95
 
96
- it("executes an APPROVED pending action at the resume, before the model is asked — even when the model then hangs and the turn is stopped (interrupt order, F-M3-1)", async () => {
96
+ it("executes an APPROVED pending action at the resume, before the model is asked — even when the model then hangs and the turn is stopped (interrupt order)", async () => {
97
97
  const driver = new ExecutionDriver(subject, "obs-approved-at-resume");
98
98
  const id = "obs-approved-at-resume-write";
99
99
 
@@ -4,7 +4,11 @@
4
4
  *
5
5
  * Turn 1: the model thinks (a leading reasoning block, persisted as a
6
6
  * THINKING message), says it will run two commands, and proposes the first
7
- * gated `execute`; the gate pauses; WAITING_FOR_APPROVAL.
7
+ * gated `execute`; the gate pauses; WAITING_FOR_APPROVAL. The THINKING row
8
+ * is closed — since #1097 the settle finalizes every streaming flag
9
+ * however the stream ended; until then this row persisted
10
+ * `isStreaming: true` in both goldens, the one rendered defect that PR's
11
+ * review found on native.
8
12
  *
9
13
  * Between turns: APPROVE_ALL on the WAITING row. `deriveActiveLeases`
10
14
  * reduces it to the scope of the tool it was made on — for a built-in, its
@@ -23,12 +27,12 @@
23
27
  * reconciled in place (exactly one copy, now COMPLETED), and the leased
24
28
  * follow-up is appended COMPLETED with no interrupt. That test leased an MCP
25
29
  * SERVER (`getAppState` on open-computer-use); this arm leases a CATEGORY,
26
- * the same `deriveLeaseScope` path with the other scope kind (S3 M0 ruling
27
- * Q-M0-4). The server-scoped lease stays pinned by `approval-policy`'s unit
30
+ * the same `deriveLeaseScope` path with the other scope kind. The
31
+ * server-scoped lease stays pinned by `approval-policy`'s unit
28
32
  * tests and the conformance execution class.
29
33
  *
30
- * What every reinvocation golden here shows since S3 M2a (the runtime over
31
- * the native adapter; Q-S3-16 and Q-M2a-2): `startedAt` is THIS turn's own,
34
+ * What every reinvocation golden here shows since #1096 (the runtime over
35
+ * the native adapter): `startedAt` is THIS turn's own,
32
36
  * not turn 1's carried by the orchestrator's whole-status clone; the
33
37
  * `fileReviewEventStream` carries only the events THIS turn authored (the
34
38
  * runtime seeds messages, sub-agents, artifacts, write-backs, todos, usage,
@@ -36,11 +36,11 @@
36
36
  * history.test.ts` (seed + single copy), `hitl-resume-approve-all.test.ts`'s
37
37
  * superset assertion (the leased variant lives in `hitl-approve-all-lease`).
38
38
  *
39
- * The REJECT arm is what Q-S3-2 aligns the runtime to (REJECT continues on
39
+ * The REJECT arm is what #1096 aligned the runtime to (REJECT continues on
40
40
  * both harnesses); this golden is the native truth it must reproduce.
41
41
  *
42
- * What every reinvocation golden here shows since S3 M2a (the runtime over
43
- * the native adapter; Q-S3-16 and Q-M2a-2): `startedAt` is THIS turn's own,
42
+ * What every reinvocation golden here shows since #1096 (the runtime over
43
+ * the native adapter): `startedAt` is THIS turn's own,
44
44
  * not turn 1's carried by the orchestrator's whole-status clone; the
45
45
  * `fileReviewEventStream` carries only the events THIS turn authored (the
46
46
  * runtime seeds messages, sub-agents, artifacts, write-backs, todos, usage,
@@ -19,11 +19,11 @@
19
19
  * memory checkpointer's replay through a mocked graph. On the real graph the
20
20
  * memory posture (a test-only opt-in; `config.ts` resolves `sqlite` locally
21
21
  * and `http` in cloud) re-interrupts the same call on replay and duplicates
22
- * the row (S3 M0 finding F-M0-3), so the invariant is recorded on the durable
22
+ * the row (found in #1096), so the invariant is recorded on the durable
23
23
  * posture, where the reinvocation resumes instead of replaying.
24
24
  *
25
- * What every reinvocation golden here shows since S3 M2a (the runtime over
26
- * the native adapter; Q-S3-16 and Q-M2a-2): `startedAt` is THIS turn's own,
25
+ * What every reinvocation golden here shows since #1096 (the runtime over
26
+ * the native adapter): `startedAt` is THIS turn's own,
27
27
  * not turn 1's carried by the orchestrator's whole-status clone; the
28
28
  * `fileReviewEventStream` carries only the events THIS turn authored (the
29
29
  * runtime seeds messages, sub-agents, artifacts, write-backs, todos, usage,