@stigmer/runner 3.15.3-dev.20260914100347 → 3.15.3-dev.20260916211208

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 (549) hide show
  1. package/README.md +1 -0
  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 +14 -11
  12. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +1 -1
  13. package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +61 -0
  14. package/dist/activities/execute-cursor/__test-utils__/fold.js +94 -0
  15. package/dist/activities/execute-cursor/__test-utils__/fold.js.map +1 -0
  16. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js +1 -1
  17. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js.map +1 -1
  18. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +52 -14
  19. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +46 -12
  20. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
  21. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.d.ts +21 -28
  22. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js +27 -11
  23. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js.map +1 -1
  24. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.d.ts +70 -26
  25. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js +82 -32
  26. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js.map +1 -1
  27. package/dist/activities/execute-cursor/adapter.d.ts +8 -7
  28. package/dist/activities/execute-cursor/adapter.js +13 -9
  29. package/dist/activities/execute-cursor/adapter.js.map +1 -1
  30. package/dist/activities/execute-cursor/approval-policy.d.ts +10 -10
  31. package/dist/activities/execute-cursor/approval-policy.js +12 -23
  32. package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
  33. package/dist/activities/execute-cursor/approval-state.d.ts +35 -1
  34. package/dist/activities/execute-cursor/approval-state.js +65 -0
  35. package/dist/activities/execute-cursor/approval-state.js.map +1 -1
  36. package/dist/activities/execute-cursor/{message-translator.d.ts → boundary-rows.d.ts} +45 -341
  37. package/dist/activities/execute-cursor/boundary-rows.js +1018 -0
  38. package/dist/activities/execute-cursor/boundary-rows.js.map +1 -0
  39. package/dist/activities/execute-cursor/cursor-capabilities.d.ts +1 -1
  40. package/dist/activities/execute-cursor/cursor-capabilities.js +1 -1
  41. package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +33 -14
  42. package/dist/activities/execute-cursor/cursor-event-recorder.js +43 -21
  43. package/dist/activities/execute-cursor/cursor-event-recorder.js.map +1 -1
  44. package/dist/activities/execute-cursor/prompt-builder.d.ts +3 -3
  45. package/dist/activities/execute-cursor/prompt-builder.js +4 -4
  46. package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
  47. package/dist/activities/execute-cursor/sdk-warmup.d.ts +15 -6
  48. package/dist/activities/execute-cursor/sdk-warmup.js +15 -6
  49. package/dist/activities/execute-cursor/sdk-warmup.js.map +1 -1
  50. package/dist/activities/execute-cursor/service-tier.js +1 -2
  51. package/dist/activities/execute-cursor/service-tier.js.map +1 -1
  52. package/dist/activities/execute-cursor/session-lifecycle.d.ts +38 -59
  53. package/dist/activities/execute-cursor/session-lifecycle.js +59 -96
  54. package/dist/activities/execute-cursor/session-lifecycle.js.map +1 -1
  55. package/dist/activities/execute-cursor/session-store.d.ts +100 -0
  56. package/dist/activities/execute-cursor/session-store.js +157 -0
  57. package/dist/activities/execute-cursor/session-store.js.map +1 -0
  58. package/dist/activities/execute-cursor/sub-agent-steps.d.ts +79 -0
  59. package/dist/activities/execute-cursor/sub-agent-steps.js +180 -0
  60. package/dist/activities/execute-cursor/sub-agent-steps.js.map +1 -0
  61. package/dist/activities/execute-cursor/tool-result.d.ts +49 -0
  62. package/dist/activities/execute-cursor/tool-result.js +130 -0
  63. package/dist/activities/execute-cursor/tool-result.js.map +1 -0
  64. package/dist/activities/execute-cursor/translator.d.ts +178 -0
  65. package/dist/activities/execute-cursor/translator.js +485 -0
  66. package/dist/activities/execute-cursor/translator.js.map +1 -0
  67. package/dist/activities/execute-cursor/turn-boundary.d.ts +15 -5
  68. package/dist/activities/execute-cursor/turn-boundary.js +10 -14
  69. package/dist/activities/execute-cursor/turn-boundary.js.map +1 -1
  70. package/dist/activities/execute-cursor/turn-settle.d.ts +11 -7
  71. package/dist/activities/execute-cursor/turn-settle.js +47 -34
  72. package/dist/activities/execute-cursor/turn-settle.js.map +1 -1
  73. package/dist/activities/execute-cursor/turn-setup.d.ts +2 -2
  74. package/dist/activities/execute-cursor/turn-setup.js +5 -5
  75. package/dist/activities/execute-cursor/turn-setup.js.map +1 -1
  76. package/dist/activities/execute-cursor/turn-stream.d.ts +23 -14
  77. package/dist/activities/execute-cursor/turn-stream.js +41 -28
  78. package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
  79. package/dist/activities/execute-cursor/turn.d.ts +4 -4
  80. package/dist/activities/execute-cursor/turn.js +5 -5
  81. package/dist/activities/execute-cursor/usage-pricing.d.ts +2 -2
  82. package/dist/activities/execute-cursor/usage-pricing.js +2 -2
  83. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +2 -2
  84. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +2 -2
  85. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +16 -11
  86. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +22 -10
  87. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -1
  88. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js +1 -1
  89. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js.map +1 -1
  90. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.d.ts +2 -3
  91. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +2 -3
  92. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js.map +1 -1
  93. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.d.ts +12 -3
  94. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +18 -4
  95. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +1 -1
  96. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +10 -1
  97. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +24 -11
  98. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +1 -1
  99. package/dist/activities/execute-deep-agent/adapter.d.ts +1 -1
  100. package/dist/activities/execute-deep-agent/adapter.js +1 -1
  101. package/dist/activities/execute-deep-agent/approval-file-change.d.ts +19 -19
  102. package/dist/activities/execute-deep-agent/approval-file-change.js +16 -15
  103. package/dist/activities/execute-deep-agent/approval-file-change.js.map +1 -1
  104. package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +2 -2
  105. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +2 -2
  106. package/dist/activities/execute-deep-agent/hitl.d.ts +2 -2
  107. package/dist/activities/execute-deep-agent/hitl.js +2 -2
  108. package/dist/activities/execute-deep-agent/inline-publisher.d.ts +13 -3
  109. package/dist/activities/execute-deep-agent/inline-publisher.js +3 -3
  110. package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -1
  111. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +3 -3
  112. package/dist/activities/execute-deep-agent/prompt-builder.js +6 -7
  113. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
  114. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +16 -8
  115. package/dist/activities/execute-deep-agent/streaming-side-effects.js +20 -33
  116. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
  117. package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +3 -3
  118. package/dist/activities/execute-deep-agent/subagent-transformer.js +1 -1
  119. package/dist/activities/execute-deep-agent/translator.d.ts +134 -0
  120. package/dist/activities/execute-deep-agent/translator.js +418 -0
  121. package/dist/activities/execute-deep-agent/translator.js.map +1 -0
  122. package/dist/activities/execute-deep-agent/turn-settle.d.ts +13 -7
  123. package/dist/activities/execute-deep-agent/turn-settle.js +34 -45
  124. package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -1
  125. package/dist/activities/execute-deep-agent/turn-setup.d.ts +8 -8
  126. package/dist/activities/execute-deep-agent/turn-setup.js +7 -7
  127. package/dist/activities/execute-deep-agent/turn-stream.d.ts +13 -10
  128. package/dist/activities/execute-deep-agent/turn-stream.js +44 -41
  129. package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -1
  130. package/dist/activities/execute-deep-agent/turn.d.ts +3 -3
  131. package/dist/activities/execute-deep-agent/turn.js +3 -3
  132. package/dist/config.d.ts +2 -2
  133. package/dist/harness/approval-decisions.d.ts +1 -1
  134. package/dist/harness/approval-decisions.js +1 -1
  135. package/dist/harness/capabilities.d.ts +21 -11
  136. package/dist/harness/capabilities.js +2 -2
  137. package/dist/harness/capture.d.ts +4 -4
  138. package/dist/harness/capture.js +4 -4
  139. package/dist/harness/persist-chokepoint.d.ts +3 -3
  140. package/dist/harness/persist-chokepoint.js +3 -3
  141. package/dist/harness/registry.d.ts +2 -2
  142. package/dist/harness/registry.js +2 -2
  143. package/dist/harness/run-turn.d.ts +6 -4
  144. package/dist/harness/run-turn.js +31 -9
  145. package/dist/harness/run-turn.js.map +1 -1
  146. package/dist/harness/stop-controller.d.ts +1 -1
  147. package/dist/harness/stop-controller.js +1 -1
  148. package/dist/harness/terminal-table.d.ts +7 -7
  149. package/dist/harness/terminal-table.js +7 -7
  150. package/dist/harness/transcript/builder.d.ts +182 -0
  151. package/dist/harness/transcript/builder.js +693 -0
  152. package/dist/harness/transcript/builder.js.map +1 -0
  153. package/dist/harness/transcript/events.d.ts +218 -0
  154. package/dist/harness/transcript/events.js +50 -0
  155. package/dist/harness/transcript/events.js.map +1 -0
  156. package/dist/harness/transcript/state.d.ts +110 -0
  157. package/dist/harness/transcript/state.js +148 -0
  158. package/dist/harness/transcript/state.js.map +1 -0
  159. package/dist/harness/turn-context.d.ts +54 -38
  160. package/dist/harness/turn-context.js +42 -43
  161. package/dist/harness/turn-context.js.map +1 -1
  162. package/dist/harness/types.d.ts +63 -22
  163. package/dist/harness/types.js +12 -11
  164. package/dist/harness/types.js.map +1 -1
  165. package/dist/harness/usage-accumulator.d.ts +2 -2
  166. package/dist/harness/usage-accumulator.js +2 -2
  167. package/dist/harness-adapters.d.ts +5 -4
  168. package/dist/harness-adapters.js +5 -4
  169. package/dist/harness-adapters.js.map +1 -1
  170. package/dist/middleware/approval-gate.d.ts +6 -0
  171. package/dist/middleware/approval-gate.js +7 -57
  172. package/dist/middleware/approval-gate.js.map +1 -1
  173. package/dist/middleware/cost-advisory.d.ts +3 -3
  174. package/dist/middleware/cost-advisory.js +3 -3
  175. package/dist/middleware/index.d.ts +1 -1
  176. package/dist/middleware/index.js +1 -1
  177. package/dist/runner-manager.js +1 -1
  178. package/dist/runner-manager.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-vision.d.ts +2 -1
  188. package/dist/shared/attachment-vision.js.map +1 -1
  189. package/dist/shared/attachment-zip.d.ts +2 -2
  190. package/dist/shared/attachment-zip.js +2 -2
  191. package/dist/shared/cost-guard.d.ts +2 -2
  192. package/dist/shared/cost-guard.js +2 -2
  193. package/dist/shared/exact-apply.d.ts +1 -1
  194. package/dist/shared/exact-apply.js +1 -1
  195. package/dist/shared/execution-context.d.ts +2 -2
  196. package/dist/shared/execution-context.js +2 -2
  197. package/dist/shared/extract-structured-output.d.ts +2 -2
  198. package/dist/shared/extract-structured-output.js +2 -2
  199. package/dist/shared/filereview/cas-touched.d.ts +2 -2
  200. package/dist/shared/filereview/cas-touched.js +2 -2
  201. package/dist/shared/heartbeat.d.ts +1 -1
  202. package/dist/shared/heartbeat.js +1 -1
  203. package/dist/shared/llm-backend.d.ts +0 -4
  204. package/dist/shared/llm-backend.js +0 -4
  205. package/dist/shared/llm-backend.js.map +1 -1
  206. package/dist/shared/model-error.d.ts +1 -2
  207. package/dist/shared/model-error.js +1 -2
  208. package/dist/shared/model-error.js.map +1 -1
  209. package/dist/shared/persist-decision.d.ts +18 -24
  210. package/dist/shared/persist-decision.js +19 -11
  211. package/dist/shared/persist-decision.js.map +1 -1
  212. package/dist/shared/prompt-sections.d.ts +4 -4
  213. package/dist/shared/prompt-sections.js +4 -4
  214. package/dist/shared/skill-resolver.d.ts +3 -3
  215. package/dist/shared/skill-resolver.js +3 -3
  216. package/dist/shared/status-offload.d.ts +1 -1
  217. package/dist/shared/status-offload.js +2 -2
  218. package/dist/shared/status-offload.js.map +1 -1
  219. package/dist/shared/streaming-scheduler.d.ts +2 -7
  220. package/dist/shared/streaming-scheduler.js +6 -14
  221. package/dist/shared/streaming-scheduler.js.map +1 -1
  222. package/dist/shared/subagent-rows.d.ts +2 -2
  223. package/dist/shared/subagent-rows.js +2 -2
  224. package/dist/shared/todos.d.ts +3 -3
  225. package/dist/shared/todos.js +3 -3
  226. package/dist/shared/tool-row.d.ts +19 -1
  227. package/dist/shared/tool-row.js +36 -2
  228. package/dist/shared/tool-row.js.map +1 -1
  229. package/dist/shared/worker-shutdown.d.ts +1 -1
  230. package/dist/shared/worker-shutdown.js +1 -1
  231. package/dist/shared/workspace/session-provision.d.ts +1 -1
  232. package/dist/shared/workspace/session-provision.js +1 -1
  233. package/dist/shared/workspace/sources/empty.d.ts +1 -1
  234. package/dist/shared/workspace/sources/empty.js +1 -2
  235. package/dist/shared/workspace/sources/empty.js.map +1 -1
  236. package/dist/shared/workspace/sources/git.js +4 -4
  237. package/dist/shared/workspace/sources/git.js.map +1 -1
  238. package/dist/shared/workspace/sources/local-path.js +6 -6
  239. package/dist/shared/workspace/sources/local-path.js.map +1 -1
  240. package/dist/shared/workspace/stigmer-link.d.ts +1 -1
  241. package/dist/shared/workspace/stigmer-link.js +1 -1
  242. package/dist/shared/workspace/types.d.ts +2 -5
  243. package/dist/shared/workspace/types.js +0 -6
  244. package/dist/shared/workspace/types.js.map +1 -1
  245. package/dist/shared/workspace/writeback-coordinator.d.ts +17 -4
  246. package/dist/shared/workspace/writeback-coordinator.js +7 -9
  247. package/dist/shared/workspace/writeback-coordinator.js.map +1 -1
  248. package/package.json +5 -5
  249. package/src/__test-utils__/__tests__/execution-record-barrier.test.ts +70 -0
  250. package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +35 -1
  251. package/src/__test-utils__/approval-contract/contract.ts +1 -1
  252. package/src/__test-utils__/approval-contract/types.ts +1 -1
  253. package/src/__test-utils__/harness-boot-order-child.ts +1 -1
  254. package/src/__test-utils__/harness-contract/contract.ts +8 -8
  255. package/src/__test-utils__/harness-contract/recording-sink.ts +11 -1
  256. package/src/__test-utils__/harness-contract/runtime-contract.ts +52 -16
  257. package/src/__test-utils__/harness-contract/scripted-adapter.ts +47 -43
  258. package/src/__test-utils__/hermetic-activity.ts +113 -9
  259. package/src/__test-utils__/model-registry-fixture.ts +31 -7
  260. package/src/__test-utils__/module-specifiers.ts +32 -3
  261. package/src/__tests__/harness-boot-order.test.ts +1 -1
  262. package/src/__tests__/harness-contract.test.ts +1 -1
  263. package/src/__tests__/runner-manager.test.ts +1 -1
  264. package/src/activities/execute-cursor/__test-utils__/__tests__/scripted-double.test.ts +32 -8
  265. package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +12 -10
  266. package/src/activities/execute-cursor/__test-utils__/fold.ts +116 -0
  267. package/src/activities/execute-cursor/__test-utils__/gateway-substrate.ts +1 -1
  268. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +72 -19
  269. package/src/activities/execute-cursor/__test-utils__/scripted-agent.ts +35 -29
  270. package/src/activities/execute-cursor/__test-utils__/scripted-sdk.ts +94 -38
  271. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +2 -1
  272. package/src/activities/execute-cursor/__tests__/approval-state.test.ts +14 -21
  273. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +3 -3
  274. package/src/activities/execute-cursor/__tests__/coarse-fingerprint.test.ts +2 -1
  275. package/src/activities/execute-cursor/__tests__/cursor-baseurl-routing.test.ts +10 -8
  276. package/src/activities/execute-cursor/__tests__/cursor-event-recorder.test.ts +142 -0
  277. package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.test.ts +24 -12
  278. package/src/activities/execute-cursor/__tests__/cursor-generate-image-live.test.ts +7 -2
  279. package/src/activities/execute-cursor/__tests__/cursor-hook-protocol-live.test.ts +163 -0
  280. package/src/activities/execute-cursor/__tests__/cursor-sdk-auth-smoke.test.ts +23 -20
  281. package/src/activities/execute-cursor/__tests__/cursor-transcript-live.test.ts +298 -0
  282. package/src/activities/execute-cursor/__tests__/deny-gate-exact-apply.test.ts +4 -2
  283. package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +1 -1
  284. package/src/activities/execute-cursor/__tests__/hermetic/deny-and-retry.test.ts +5 -2
  285. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +5 -2
  286. package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.status.json +71 -0
  287. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.status.json +73 -0
  288. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +78 -0
  289. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +72 -0
  290. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +72 -0
  291. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.status.json +109 -0
  292. package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.status.json +78 -0
  293. package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.status.json +119 -0
  294. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.status.json +68 -0
  295. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.status.json +67 -0
  296. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +1 -1
  297. package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +10 -7
  298. package/src/activities/execute-cursor/__tests__/hermetic/mcp-tool-call.test.ts +146 -0
  299. package/src/activities/execute-cursor/__tests__/hermetic/pause-vs-shutdown.test.ts +8 -5
  300. package/src/activities/execute-cursor/__tests__/hermetic/plain-turn.test.ts +6 -2
  301. package/src/activities/execute-cursor/__tests__/hermetic/recovery-fresh-agent.test.ts +4 -1
  302. package/src/activities/execute-cursor/__tests__/hermetic/run-wait-arms.test.ts +6 -2
  303. package/src/activities/execute-cursor/__tests__/hermetic/sdk-task-note.test.ts +122 -0
  304. package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +276 -0
  305. package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +12 -9
  306. package/src/activities/execute-cursor/__tests__/hermetic/sub-agent-delegation.test.ts +196 -0
  307. package/src/activities/execute-cursor/__tests__/hermetic/thinking-turn.test.ts +145 -0
  308. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +4 -1
  309. package/src/activities/execute-cursor/__tests__/hermetic/todo-write.test.ts +165 -0
  310. package/src/activities/execute-cursor/__tests__/hermetic/tool-call.test.ts +7 -4
  311. package/src/activities/execute-cursor/__tests__/hermetic/tool-error.test.ts +138 -0
  312. package/src/activities/execute-cursor/__tests__/hermetic/tool-only-step.test.ts +130 -0
  313. package/src/activities/execute-cursor/__tests__/hermetic/unattributed-hook-block.test.ts +17 -2
  314. package/src/activities/execute-cursor/__tests__/hermetic/workspace-lock-timeout.test.ts +5 -2
  315. package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +43 -60
  316. package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +23 -28
  317. package/src/activities/execute-cursor/__tests__/hook-script.test.ts +2 -1
  318. package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +1 -1
  319. package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +5 -5
  320. package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +11 -13
  321. package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +8 -11
  322. package/src/activities/execute-cursor/__tests__/session-lifecycle.test.ts +86 -58
  323. package/src/activities/execute-cursor/__tests__/session-store.test.ts +220 -0
  324. package/src/activities/execute-cursor/__tests__/tool-result-image.test.ts +8 -22
  325. package/src/activities/execute-cursor/__tests__/translator.test.ts +594 -0
  326. package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +8 -5
  327. package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +87 -63
  328. package/src/activities/execute-cursor/adapter.ts +13 -9
  329. package/src/activities/execute-cursor/approval-policy.ts +12 -24
  330. package/src/activities/execute-cursor/approval-state.ts +66 -1
  331. package/src/activities/execute-cursor/boundary-rows.ts +1132 -0
  332. package/src/activities/execute-cursor/cursor-capabilities.ts +1 -1
  333. package/src/activities/execute-cursor/cursor-event-recorder.ts +57 -28
  334. package/src/activities/execute-cursor/fetch-interceptor.ts +1 -1
  335. package/src/activities/execute-cursor/http2-interceptor.ts +1 -1
  336. package/src/activities/execute-cursor/prompt-builder.ts +6 -6
  337. package/src/activities/execute-cursor/sdk-warmup.ts +15 -6
  338. package/src/activities/execute-cursor/service-tier.ts +1 -2
  339. package/src/activities/execute-cursor/session-lifecycle.ts +63 -109
  340. package/src/activities/execute-cursor/session-store.ts +187 -0
  341. package/src/activities/execute-cursor/sub-agent-steps.ts +188 -0
  342. package/src/activities/execute-cursor/tool-result.ts +128 -0
  343. package/src/activities/execute-cursor/translator.ts +541 -0
  344. package/src/activities/execute-cursor/turn-boundary.ts +21 -14
  345. package/src/activities/execute-cursor/turn-settle.ts +46 -34
  346. package/src/activities/execute-cursor/turn-setup.ts +5 -5
  347. package/src/activities/execute-cursor/turn-stream.ts +49 -46
  348. package/src/activities/execute-cursor/turn.ts +5 -5
  349. package/src/activities/execute-cursor/usage-pricing.ts +2 -2
  350. package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +2 -2
  351. package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +23 -11
  352. package/src/activities/execute-deep-agent/__test-utils__/hitl-script.ts +1 -1
  353. package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +2 -3
  354. package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +25 -4
  355. package/src/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.ts +25 -11
  356. package/src/activities/execute-deep-agent/__tests__/adapter-graph-is-sdk-free.test.ts +1 -1
  357. package/src/activities/execute-deep-agent/__tests__/adapter-is-temporal-free.test.ts +1 -1
  358. package/src/activities/execute-deep-agent/__tests__/approval-file-change.test.ts +6 -17
  359. package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +25 -8
  360. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.status.json +2 -7
  361. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.status.json +4 -14
  362. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.status.json +1 -5
  363. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +4 -7
  364. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.status.json +1 -5
  365. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +2 -9
  366. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +2 -9
  367. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.status.json +1 -4
  368. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.status.json +1 -4
  369. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.status.json +1 -4
  370. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +109 -76
  371. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.status.json +1 -5
  372. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.status.json +2 -10
  373. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.status.json +2 -10
  374. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.status.json +1 -5
  375. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.status.json +3 -6
  376. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.status.json +1 -4
  377. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +1 -4
  378. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.status.json +92 -0
  379. package/src/activities/execute-deep-agent/__tests__/hermetic/harness-contract.test.ts +3 -3
  380. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-approve-all-lease.test.ts +9 -5
  381. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +3 -3
  382. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +3 -3
  383. package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +7 -6
  384. package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +10 -11
  385. package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +4 -4
  386. package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +9 -8
  387. package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +21 -13
  388. package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +2 -2
  389. package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +7 -7
  390. package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +28 -12
  391. package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +21 -21
  392. package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +5 -5
  393. package/src/activities/execute-deep-agent/__tests__/hermetic/write-todos.test.ts +160 -0
  394. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +35 -30
  395. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +3 -4
  396. package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +12 -10
  397. package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +13 -3
  398. package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +26 -18
  399. package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +1 -1
  400. package/src/activities/execute-deep-agent/__tests__/{subagent-tracker.test.ts → translator-subagents.test.ts} +76 -57
  401. package/src/activities/execute-deep-agent/__tests__/{v3-status-builder.test.ts → translator-through-builder.test.ts} +213 -299
  402. package/src/activities/execute-deep-agent/__tests__/translator.test.ts +505 -0
  403. package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +11 -29
  404. package/src/activities/execute-deep-agent/adapter.ts +1 -1
  405. package/src/activities/execute-deep-agent/approval-file-change.ts +20 -22
  406. package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +2 -2
  407. package/src/activities/execute-deep-agent/hitl.ts +2 -2
  408. package/src/activities/execute-deep-agent/inline-publisher.ts +16 -5
  409. package/src/activities/execute-deep-agent/prompt-builder.ts +6 -7
  410. package/src/activities/execute-deep-agent/streaming-side-effects.ts +22 -31
  411. package/src/activities/execute-deep-agent/subagent-transformer.ts +3 -3
  412. package/src/activities/execute-deep-agent/translator.ts +463 -0
  413. package/src/activities/execute-deep-agent/turn-settle.ts +35 -43
  414. package/src/activities/execute-deep-agent/turn-setup.ts +8 -8
  415. package/src/activities/execute-deep-agent/turn-stream.ts +53 -51
  416. package/src/activities/execute-deep-agent/turn.ts +3 -3
  417. package/src/config.ts +2 -2
  418. package/src/harness/README.md +335 -0
  419. package/src/harness/__tests__/approval-decisions.test.ts +2 -2
  420. package/src/harness/__tests__/capture.test.ts +3 -3
  421. package/src/harness/__tests__/import-direction.test.ts +3 -2
  422. package/src/harness/__tests__/mount-skills.test.ts +4 -1
  423. package/src/harness/__tests__/readme-index.test.ts +339 -0
  424. package/src/harness/__tests__/run-turn.test.ts +131 -6
  425. package/src/harness/__tests__/transcript-is-engine-free.test.ts +83 -0
  426. package/src/harness/__tests__/transcript-writers.test.ts +191 -0
  427. package/src/harness/__tests__/turn-attachments-vision.test.ts +5 -2
  428. package/src/harness/__tests__/turn-context.test.ts +5 -5
  429. package/src/harness/approval-decisions.ts +1 -1
  430. package/src/harness/capabilities.ts +21 -11
  431. package/src/harness/capture.ts +4 -4
  432. package/src/harness/persist-chokepoint.ts +3 -3
  433. package/src/harness/registry.ts +2 -2
  434. package/src/harness/run-turn.ts +33 -9
  435. package/src/harness/stop-controller.ts +1 -1
  436. package/src/harness/terminal-table.ts +7 -7
  437. package/src/harness/transcript/__tests__/builder.test.ts +975 -0
  438. package/src/harness/transcript/__tests__/state.test.ts +143 -0
  439. package/src/harness/transcript/builder.ts +755 -0
  440. package/src/harness/transcript/events.ts +262 -0
  441. package/src/harness/transcript/state.ts +167 -0
  442. package/src/harness/turn-context.ts +61 -46
  443. package/src/harness/types.ts +64 -22
  444. package/src/harness/usage-accumulator.ts +2 -2
  445. package/src/harness-adapters.ts +5 -4
  446. package/src/middleware/__tests__/cost-advisory.test.ts +2 -2
  447. package/src/middleware/approval-gate.ts +7 -74
  448. package/src/middleware/cost-advisory.ts +3 -3
  449. package/src/middleware/index.ts +1 -1
  450. package/src/runner-manager.ts +1 -1
  451. package/src/shared/__tests__/approval-policy.test.ts +45 -0
  452. package/src/shared/__tests__/args-preview.test.ts +40 -20
  453. package/src/shared/__tests__/attachment-naming.test.ts +1 -1
  454. package/src/shared/__tests__/attachment-resolver.test.ts +5 -5
  455. package/src/shared/__tests__/attachment-zip.test.ts +1 -1
  456. package/src/shared/__tests__/blueprint-resolver.test.ts +1 -1
  457. package/src/shared/__tests__/cost-guard.test.ts +1 -1
  458. package/src/shared/__tests__/exact-apply.test.ts +2 -1
  459. package/src/shared/__tests__/persist-decision.test.ts +19 -33
  460. package/src/shared/__tests__/prompt-sections.test.ts +1 -1
  461. package/src/shared/__tests__/stamp-flowed-rows.test.ts +1 -1
  462. package/src/shared/__tests__/status-offload.test.ts +1 -1
  463. package/src/shared/__tests__/streaming-scheduler.test.ts +8 -9
  464. package/src/shared/__tests__/todos.test.ts +1 -1
  465. package/src/shared/__tests__/tool-row.test.ts +1 -1
  466. package/src/shared/approval-policy.ts +95 -0
  467. package/src/shared/args-preview.ts +51 -42
  468. package/src/shared/attachment-resolver.ts +4 -4
  469. package/src/shared/attachment-vision.ts +2 -1
  470. package/src/shared/attachment-zip.ts +2 -2
  471. package/src/shared/cost-guard.ts +2 -2
  472. package/src/shared/exact-apply.ts +1 -1
  473. package/src/shared/execution-context.ts +2 -2
  474. package/src/shared/extract-structured-output.ts +2 -2
  475. package/src/shared/filereview/__tests__/capture.test.ts +9 -5
  476. package/src/shared/filereview/__tests__/git-substrate.test.ts +4 -1
  477. package/src/shared/filereview/__tests__/proxy-reconcile.test.ts +3 -3
  478. package/src/shared/filereview/cas-touched.ts +2 -2
  479. package/src/shared/heartbeat.ts +1 -1
  480. package/src/shared/llm-backend.ts +0 -4
  481. package/src/shared/model-error.ts +1 -2
  482. package/src/shared/persist-decision.ts +19 -28
  483. package/src/shared/prompt-sections.ts +4 -4
  484. package/src/shared/skill-resolver.ts +3 -3
  485. package/src/shared/status-offload.ts +2 -2
  486. package/src/shared/streaming-scheduler.ts +8 -13
  487. package/src/shared/subagent-rows.ts +2 -2
  488. package/src/shared/todos.ts +3 -3
  489. package/src/shared/tool-row.ts +38 -2
  490. package/src/shared/worker-shutdown.ts +1 -1
  491. package/src/shared/workspace/__tests__/git-source.test.ts +3 -3
  492. package/src/shared/workspace/__tests__/provisioner.test.ts +5 -5
  493. package/src/shared/workspace/__tests__/session-provision.test.ts +2 -2
  494. package/src/shared/workspace/__tests__/writeback-coordinator.integration.test.ts +8 -9
  495. package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +25 -25
  496. package/src/shared/workspace/provisioner.ts +1 -1
  497. package/src/shared/workspace/session-provision.ts +1 -1
  498. package/src/shared/workspace/sources/empty.ts +2 -2
  499. package/src/shared/workspace/sources/git.ts +3 -4
  500. package/src/shared/workspace/sources/local-path.ts +5 -6
  501. package/src/shared/workspace/stigmer-link.ts +1 -1
  502. package/src/shared/workspace/types.ts +2 -5
  503. package/src/shared/workspace/writeback-coordinator.ts +23 -12
  504. package/dist/activities/execute-cursor/delta-enricher.d.ts +0 -87
  505. package/dist/activities/execute-cursor/delta-enricher.js +0 -265
  506. package/dist/activities/execute-cursor/delta-enricher.js.map +0 -1
  507. package/dist/activities/execute-cursor/message-translator.js +0 -2040
  508. package/dist/activities/execute-cursor/message-translator.js.map +0 -1
  509. package/dist/activities/execute-cursor/todo-tracker.d.ts +0 -40
  510. package/dist/activities/execute-cursor/todo-tracker.js +0 -80
  511. package/dist/activities/execute-cursor/todo-tracker.js.map +0 -1
  512. package/dist/activities/execute-deep-agent/execution-state.d.ts +0 -54
  513. package/dist/activities/execute-deep-agent/execution-state.js +0 -68
  514. package/dist/activities/execute-deep-agent/execution-state.js.map +0 -1
  515. package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +0 -65
  516. package/dist/activities/execute-deep-agent/status-builder-shared.js +0 -90
  517. package/dist/activities/execute-deep-agent/status-builder-shared.js.map +0 -1
  518. package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +0 -113
  519. package/dist/activities/execute-deep-agent/subagent-tracker.js +0 -400
  520. package/dist/activities/execute-deep-agent/subagent-tracker.js.map +0 -1
  521. package/dist/activities/execute-deep-agent/v3-events.d.ts +0 -102
  522. package/dist/activities/execute-deep-agent/v3-events.js +0 -35
  523. package/dist/activities/execute-deep-agent/v3-events.js.map +0 -1
  524. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.d.ts +0 -15
  525. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js +0 -235
  526. package/dist/activities/execute-deep-agent/v3-protocol-normalizer.js.map +0 -1
  527. package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +0 -111
  528. package/dist/activities/execute-deep-agent/v3-status-builder.js +0 -457
  529. package/dist/activities/execute-deep-agent/v3-status-builder.js.map +0 -1
  530. package/dist/shared/execution-status-writer.d.ts +0 -31
  531. package/dist/shared/execution-status-writer.js +0 -43
  532. package/dist/shared/execution-status-writer.js.map +0 -1
  533. package/src/activities/execute-cursor/__tests__/delta-enricher.test.ts +0 -310
  534. package/src/activities/execute-cursor/__tests__/message-translator.test.ts +0 -1033
  535. package/src/activities/execute-cursor/__tests__/todo-tracker.test.ts +0 -498
  536. package/src/activities/execute-cursor/delta-enricher.ts +0 -307
  537. package/src/activities/execute-cursor/message-translator.ts +0 -2319
  538. package/src/activities/execute-cursor/todo-tracker.ts +0 -91
  539. package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +0 -148
  540. package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +0 -154
  541. package/src/activities/execute-deep-agent/__tests__/status-builder-shared.test.ts +0 -47
  542. package/src/activities/execute-deep-agent/__tests__/v3-protocol-normalizer.test.ts +0 -324
  543. package/src/activities/execute-deep-agent/execution-state.ts +0 -78
  544. package/src/activities/execute-deep-agent/status-builder-shared.ts +0 -142
  545. package/src/activities/execute-deep-agent/subagent-tracker.ts +0 -479
  546. package/src/activities/execute-deep-agent/v3-events.ts +0 -153
  547. package/src/activities/execute-deep-agent/v3-protocol-normalizer.ts +0 -264
  548. package/src/activities/execute-deep-agent/v3-status-builder.ts +0 -565
  549. package/src/shared/execution-status-writer.ts +0 -56
@@ -0,0 +1,418 @@
1
+ /**
2
+ * DeepAgentTranslator — the native harness's translator: LangGraph's v3
3
+ * protocol events in, the canonical `TranscriptEvent` union out
4
+ * (`harness/transcript/events.ts`).
5
+ *
6
+ * The one module that knows LangGraph's wire shape:
7
+ * the shared builder folds what comes out of here and nothing of the engine
8
+ * reaches it otherwise. Every engine fact the builder used to read is
9
+ * answered on this side now (since #1097):
10
+ *
11
+ * - the tool's result, rendered to the string the row carries — the
12
+ * LangChain ToolMessage envelope and the LangGraph Command unwrapped;
13
+ * - the tool's attribution (`mcpServerSlug`) and authorization provenance,
14
+ * from the gate's posture (`resolveApprovalProvenance`, the gate's
15
+ * read-side twin);
16
+ * - the SCOPE of every event — the root's transcript or one sub-agent's —
17
+ * from LangGraph's namespace grammar, and the sub-agent's own lifecycle
18
+ * (`sub_agent_started/finished/failed`) from deepagents' `task` tool
19
+ * Until #1097 the builder read the namespace and the
20
+ * tool's name itself, and kept a second copy of every handler for the
21
+ * sub-agents' transcripts.
22
+ *
23
+ * What this translator deliberately does NOT answer: whether the gate holds
24
+ * a call. On native it never has to. LangGraph's `interrupt()` runs inside
25
+ * the gate middleware BEFORE the tool handler, so a held call emits no
26
+ * `tool-started` at all; the `tool-started` that does arrive is the engine's
27
+ * own word that the call was authorized — capture mode let the file write
28
+ * flow, a lease or the policy chain cleared it, or the user approved it on a
29
+ * resume. The gate's decision has arms this side cannot evaluate (capture
30
+ * mode asks the workspace's git state, asynchronously;
31
+ * `middleware/approval-gate.ts`), and duplicating them would be a second copy
32
+ * of the decision — exactly the drift one writer per fact exists to end. So
33
+ * native emits no `tool_started.gate`; the held call reaches the transcript
34
+ * as `approval_proposed` from the post-stream seed. Until #1097 the builder
35
+ * carried a copy of the decision that gated MCP tools only, a path
36
+ * production never took.
37
+ *
38
+ * Attribution and provenance are answered for ROOT-scope calls only: a
39
+ * sub-agent's rows carry none on either harness today (#1133), and one
40
+ * handler set would otherwise stamp them as a side effect.
41
+ *
42
+ * The scope, in LangGraph 1.3.2's grammar (mirrors deepagents'
43
+ * `createSubagentTransformer`): the root's model events arrive under
44
+ * `["model_request:<uuid>"]` and its tool events under `["tools:<uuid>"]`
45
+ * (one segment); a `task` tool start at that depth opens a sub-agent, and
46
+ * the segment it arrived under is the prefix every event of that sub-agent's
47
+ * graph carries first (`["tools:<uuid>", "model_request:<inner>"]`, two or
48
+ * more segments). An event with a REGISTERED first segment and two or more
49
+ * segments is the sub-agent's; everything else is the root's — including a
50
+ * nested namespace whose prefix nobody registered, which folds into the
51
+ * root as it always did (a sub-agent resumed inside its own gate
52
+ * with no re-emitted `task` start is the production case). A `task` inside
53
+ * a sub-agent is an ordinary row of that sub-agent's transcript: one level
54
+ * of delegation is tracked, as before.
55
+ *
56
+ * Beside the transcript, {@link usageOf} answers the loop's one
57
+ * non-transcript question about the wire — the usage a
58
+ * `message-finish` carries — so the loop never parses a raw event itself.
59
+ * What the wire carries that the transcript does not: `lifecycle` and
60
+ * `provider` events, the standalone `usage` event, each event's `seq` and
61
+ * `node`. None of it was ever folded; the recorder keeps the raw event for
62
+ * a replay.
63
+ *
64
+ * The file was `v3-protocol-normalizer.ts` (a stateless `normalize`) until
65
+ * #1097 made it stateful — the same word as `execute-cursor/translator.ts`,
66
+ * so a third harness's author finds one shape in both.
67
+ *
68
+ * Defensive parsing: handles both snake_case and camelCase field names
69
+ * for tool IDs/names (protocol spec uses camelCase but recordings show
70
+ * snake_case). Uses `data.event` as canonical discriminator, with
71
+ * `data.type` as fallback (CP04 finding).
72
+ */
73
+ import { resolveApprovalProvenance } from "../../shared/approval-policy.js";
74
+ const loggedUnknowns = new Set();
75
+ /** deepagents' delegation tool: the one tool name this translator knows, because its start opens a sub-agent. */
76
+ const TASK_TOOL = "task";
77
+ // ── The translator ────────────────────────────────────────────────
78
+ export class DeepAgentTranslator {
79
+ gate;
80
+ /** First namespace segment → the sub-agent (its `task` call id) whose graph runs under it. */
81
+ subAgentByPrefix = new Map();
82
+ /** The `task` call ids whose completion closes a sub-agent. */
83
+ taskCalls = new Set();
84
+ /**
85
+ * @param gate the turn's gate posture, for attribution and provenance;
86
+ * `null` where a turn runs with none (the unit arms that drive the
87
+ * builder bare), and then every call is unattributed.
88
+ */
89
+ constructor(gate) {
90
+ this.gate = gate;
91
+ }
92
+ /** One raw event to its canonical events — `translate(raw)` is the one signature every harness's translator shares. */
93
+ translate(raw) {
94
+ const namespace = raw.params.namespace;
95
+ const subAgentId = this.scopeOf(namespace);
96
+ const out = [];
97
+ for (const event of normalize(raw)) {
98
+ if (subAgentId !== undefined) {
99
+ out.push({ ...event, subAgentId });
100
+ continue;
101
+ }
102
+ switch (event.kind) {
103
+ case "tool_started":
104
+ if (event.name === TASK_TOOL && namespace.length <= 1) {
105
+ out.push(this.openSubAgent(event, namespace));
106
+ }
107
+ out.push(this.attribute(event));
108
+ break;
109
+ case "tool_finished":
110
+ out.push(event);
111
+ if (this.taskCalls.has(event.callId)) {
112
+ out.push({ kind: "sub_agent_finished", subAgentId: event.callId, output: event.result });
113
+ }
114
+ break;
115
+ case "tool_error":
116
+ out.push(event);
117
+ if (this.taskCalls.has(event.callId)) {
118
+ out.push({ kind: "sub_agent_failed", subAgentId: event.callId, error: event.message });
119
+ }
120
+ break;
121
+ default:
122
+ out.push(event);
123
+ }
124
+ }
125
+ return out;
126
+ }
127
+ /** The sub-agent an event belongs to, or `undefined` for the root (see the header for the grammar). */
128
+ scopeOf(namespace) {
129
+ if (namespace.length < 2)
130
+ return undefined;
131
+ return this.subAgentByPrefix.get(namespace[0]);
132
+ }
133
+ /**
134
+ * A `task` start at the root opens a sub-agent keyed by the call id, with
135
+ * the segment it arrived under as the routing prefix (a depth-0 start —
136
+ * tests — gets a synthetic one so its children can still name it).
137
+ */
138
+ openSubAgent(event, namespace) {
139
+ const prefix = namespace[0] ?? `tools:${event.callId}`;
140
+ this.subAgentByPrefix.set(prefix, event.callId);
141
+ this.taskCalls.add(event.callId);
142
+ const description = stringArg(event.input, "description");
143
+ return {
144
+ kind: "sub_agent_started",
145
+ subAgentId: event.callId,
146
+ name: stringArg(event.input, "subagent_type") || TASK_TOOL,
147
+ subject: description,
148
+ input: description,
149
+ };
150
+ }
151
+ /** The attribution and provenance for one root-scope tool start. */
152
+ attribute(event) {
153
+ const gate = this.gate;
154
+ if (!gate)
155
+ return event;
156
+ const mcpServerSlug = gate.toolServerMap.get(event.name) ?? "";
157
+ const provenance = resolveApprovalProvenance(event.name, mcpServerSlug, gate.policies, gate.leasedCategories, gate.globalBypass);
158
+ return {
159
+ ...event,
160
+ mcpServerSlug,
161
+ ...(provenance !== undefined ? { provenance } : {}),
162
+ };
163
+ }
164
+ }
165
+ function stringArg(input, key) {
166
+ const value = input[key];
167
+ return typeof value === "string" ? value : "";
168
+ }
169
+ // ── The wire, event by event ──────────────────────────────────────
170
+ /**
171
+ * The stateless core: one raw event to its canonical events, root-scoped
172
+ * (no `subAgentId`) and unattributed (`mcpServerSlug: ""`, no provenance, no
173
+ * gate). The translator layers scope and the gate's answers on top; the arms
174
+ * that pin the wire's shape read this directly.
175
+ */
176
+ export function normalize(event) {
177
+ const method = event.method;
178
+ switch (method) {
179
+ case "messages": return normalizeMessage(event);
180
+ case "tools": return normalizeTool(event);
181
+ default:
182
+ return [];
183
+ }
184
+ }
185
+ /**
186
+ * The usage one raw event carries, or `undefined`. Read from `message-finish`
187
+ * ONLY — v3 also emits a standalone `usage` event for the same turn, and
188
+ * reading both would double-count. Every namespace's finish counts: a
189
+ * sub-agent's spend is the execution's spend (since #1096), and the cost
190
+ * cap the runtime enforces reads the whole execution.
191
+ *
192
+ * A loop concern, deliberately NOT a `TranscriptEvent`:
193
+ * usage is neither a row nor a message, and `translate`'s return type stays
194
+ * the one signature every harness's translator shares. The Cursor loop reads
195
+ * its usage from the SDK's `turn-ended` delta — the same division.
196
+ */
197
+ export function usageOf(event) {
198
+ if (event.method !== "messages")
199
+ return undefined;
200
+ const data = event.params.data;
201
+ if (!data || readEventType(data) !== "message-finish")
202
+ return undefined;
203
+ return normalizeUsagePayload(data.usage);
204
+ }
205
+ // ── Messages Channel ──────────────────────────────────────────────
206
+ function normalizeMessage(event) {
207
+ const data = event.params.data;
208
+ if (!data)
209
+ return [];
210
+ const eventType = readEventType(data);
211
+ const runId = (data.run_id ?? "");
212
+ switch (eventType) {
213
+ case "message-start":
214
+ return [{ kind: "message_start", runId }];
215
+ case "content-block-delta":
216
+ return normalizeContentBlockDelta(data, runId);
217
+ case "message-finish":
218
+ return [{ kind: "message_finish", runId }];
219
+ // Carried by the wire, not by the transcript (see the header).
220
+ case "usage":
221
+ case "provider":
222
+ case "content-block-start":
223
+ case "content-block-finish":
224
+ return [];
225
+ default:
226
+ logUnknown("messages", eventType);
227
+ return [];
228
+ }
229
+ }
230
+ function normalizeContentBlockDelta(data, runId) {
231
+ const delta = data.delta;
232
+ if (!delta)
233
+ return [];
234
+ const deltaType = delta.type;
235
+ if (deltaType === "text-delta") {
236
+ const text = (delta.text ?? "");
237
+ if (!text)
238
+ return [];
239
+ return [{ kind: "text_delta", runId, text }];
240
+ }
241
+ if (deltaType === "reasoning-delta") {
242
+ const text = (delta.reasoning ?? "");
243
+ if (!text)
244
+ return [];
245
+ return [{ kind: "reasoning_delta", runId, text }];
246
+ }
247
+ if (deltaType === "block-delta") {
248
+ const fields = delta.fields;
249
+ if (!fields)
250
+ return [];
251
+ if (fields.type === "tool_call_chunk") {
252
+ const callId = (fields.id ?? "");
253
+ const argsChunk = (fields.args ?? "");
254
+ if (!argsChunk && !callId)
255
+ return [];
256
+ return [{ kind: "tool_arg_delta", callId, argsChunk }];
257
+ }
258
+ }
259
+ return [];
260
+ }
261
+ // ── Tools Channel ─────────────────────────────────────────────────
262
+ function normalizeTool(event) {
263
+ const data = event.params.data;
264
+ if (!data)
265
+ return [];
266
+ const eventType = readEventType(data);
267
+ switch (eventType) {
268
+ case "tool-started": {
269
+ const callId = readToolCallId(data);
270
+ const name = readToolName(data);
271
+ const input = parseToolInput(data.input);
272
+ return [{ kind: "tool_started", callId, name, input, mcpServerSlug: "" }];
273
+ }
274
+ case "tool-finished": {
275
+ const callId = readToolCallId(data);
276
+ return [{ kind: "tool_finished", callId, result: extractToolResult(data.output) }];
277
+ }
278
+ case "tool-error": {
279
+ const callId = readToolCallId(data);
280
+ const message = (data.message ?? data.error ?? "");
281
+ return [{ kind: "tool_error", callId, message }];
282
+ }
283
+ case "tool-output-delta": {
284
+ const callId = readToolCallId(data);
285
+ const delta = (data.delta ?? "");
286
+ return [{ kind: "tool_output_delta", callId, delta: String(delta) }];
287
+ }
288
+ default:
289
+ logUnknown("tools", eventType);
290
+ return [];
291
+ }
292
+ }
293
+ // ── Tool Result ───────────────────────────────────────────────────
294
+ /**
295
+ * Serialize a LangChain message `content` field into the canonical tool-result
296
+ * string.
297
+ *
298
+ * Text-only content is a plain string and passes through unchanged. Multimodal
299
+ * content (image, or mixed text+image — e.g. a computer-use screenshot) is an
300
+ * array of content blocks; we serialize the blocks array ITSELF, not the
301
+ * surrounding message envelope, so the result lands in the exact top-level-array
302
+ * shape the persist-time offload (`detectImagePayload`/`contentBlocks` in
303
+ * status-offload.ts) consumes to lift the image out into a renderable
304
+ * `ToolCallOutputRef`. Serializing the envelope instead would bury the base64
305
+ * one level deeper and defeat that detection.
306
+ *
307
+ * Returns undefined when `content` is neither a string nor an array, letting the
308
+ * caller fall back to serializing whatever else it holds.
309
+ */
310
+ function serializeToolContent(content) {
311
+ if (typeof content === "string")
312
+ return content;
313
+ if (Array.isArray(content))
314
+ return JSON.stringify(content);
315
+ return undefined;
316
+ }
317
+ /**
318
+ * The `result: string` a `tool_finished` carries, from the v3 `tool-finished`
319
+ * output — engine knowledge that stays on this side of the union (it was
320
+ * `extractToolResultV3` in `harness/transcript/tool-result.ts` for a few
321
+ * commits of #1097). v3 wraps a LangChain `ToolMessage` in a constructor
322
+ * envelope, `{ lc, type, id, kwargs: { content, status, ... } }`; the content
323
+ * is what the row shows. Anything else is serialized as it came.
324
+ *
325
+ * A state-mutating tool returns a LangGraph `Command` instead —
326
+ * `{ lg_name: "Command", update: { ..., messages: [ToolMessage] }, goto }` —
327
+ * with its ToolMessage nested in the update (deepagents' `write_todos` and
328
+ * `task` both do). The row shows that ToolMessage's content, not the whole
329
+ * Command (since #1097; until then the row carried the serialized
330
+ * Command, the todos array twice over).
331
+ */
332
+ function extractToolResult(output) {
333
+ if (typeof output === "string")
334
+ return output;
335
+ if (typeof output === "object" && output !== null) {
336
+ const obj = output;
337
+ const commandMessage = toolMessageOfCommand(obj);
338
+ if (commandMessage !== undefined)
339
+ return extractToolResult(commandMessage);
340
+ const kwargs = obj.kwargs;
341
+ if (kwargs) {
342
+ const fromKwargs = serializeToolContent(kwargs.content);
343
+ if (fromKwargs !== undefined)
344
+ return fromKwargs;
345
+ }
346
+ const fromContent = serializeToolContent(obj.content);
347
+ if (fromContent !== undefined)
348
+ return fromContent;
349
+ }
350
+ try {
351
+ return JSON.stringify(output);
352
+ }
353
+ catch {
354
+ return "[serialization error]";
355
+ }
356
+ }
357
+ /**
358
+ * The ToolMessage a LangGraph `Command` carries in `update.messages`, or
359
+ * `undefined` when the object is not a Command or carries none. The LAST
360
+ * message is the tool's own reply (a Command may prepend others); a Command
361
+ * with no message falls through to plain serialization, so nothing is lost.
362
+ */
363
+ function toolMessageOfCommand(obj) {
364
+ if (obj.lg_name !== "Command")
365
+ return undefined;
366
+ const update = obj.update;
367
+ const messages = update?.messages;
368
+ if (!Array.isArray(messages) || messages.length === 0)
369
+ return undefined;
370
+ return messages[messages.length - 1];
371
+ }
372
+ // ── Defensive Field Parsers ───────────────────────────────────────
373
+ function readEventType(data) {
374
+ return (data.event ?? data.type) ?? "";
375
+ }
376
+ function readToolCallId(data) {
377
+ return (data.tool_call_id ?? data.toolCallId) ?? "";
378
+ }
379
+ function readToolName(data) {
380
+ return (data.tool_name ?? data.toolName ?? data.name) ?? "unknown_tool";
381
+ }
382
+ function parseToolInput(raw) {
383
+ if (raw === undefined || raw === null)
384
+ return {};
385
+ if (typeof raw === "object" && !Array.isArray(raw))
386
+ return raw;
387
+ if (typeof raw === "string") {
388
+ try {
389
+ return JSON.parse(raw);
390
+ }
391
+ catch {
392
+ return {};
393
+ }
394
+ }
395
+ return {};
396
+ }
397
+ function normalizeUsagePayload(raw) {
398
+ if (!raw)
399
+ return undefined;
400
+ const details = raw.input_token_details;
401
+ return {
402
+ input_tokens: raw.input_tokens,
403
+ output_tokens: raw.output_tokens,
404
+ total_tokens: raw.total_tokens,
405
+ input_token_details: details ? {
406
+ cache_creation: details.cache_creation,
407
+ cache_read: details.cache_read,
408
+ } : undefined,
409
+ };
410
+ }
411
+ function logUnknown(method, eventType) {
412
+ const key = `${method}:${eventType}`;
413
+ if (loggedUnknowns.has(key))
414
+ return;
415
+ loggedUnknowns.add(key);
416
+ console.debug(`[DeepAgentTranslator] Unknown event: method=${method} event=${eventType}`);
417
+ }
418
+ //# sourceMappingURL=translator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/translator.ts"],"names":[],"mappings":"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"}
@@ -8,26 +8,32 @@
8
8
  * the runtime's stop, mark in-flight sub-agent rows through the shared act
9
9
  * and settle `interrupted` with nothing further; the graph's
10
10
  * `structuredResponse` folded onto the status; the interrupts a completed
11
- * stream left pending seeded as WAITING rows; and the outcome.
11
+ * stream left pending proposed through the builder as WAITING rows; and the
12
+ * outcome.
12
13
  *
13
14
  * What this module never does: write a phase, a terminal copy or
14
15
  * `completedAt` — those are the runtime's (`harness/run-turn.ts`,
15
- * `terminal-table.ts`); settle SKIP and REJECT rows — the runtime's
16
+ * `terminal-table.ts`); close the transcript's streaming flags — the
17
+ * runtime's, once `runTurn` returns, on every path (since #1097; until then this
18
+ * settle finalized the builder itself, and a turn that threw before
19
+ * reaching it left its last message streaming); settle SKIP and REJECT rows — the runtime's
16
20
  * (`harness/approval-decisions.ts`, after every outcome); withhold secret
17
21
  * content — the runtime's chokepoint does it on every write; finalize the
18
22
  * write-back — the runtime's epilogue; capture the turn's file changes or
19
23
  * decide whether a review is pending — the runtime's (`harness/capture.ts`,
20
24
  * once, over whatever the whole turn left on the tree, after this settle
21
- * returns; S3 M4). It does mutate `sink.status`'s transcript rows, which
22
- * are this harness's to write.
25
+ * returns; since #1096). Transcript rows it CREATES go through the builder
26
+ * (`approval_proposed`, since #1097); the one row it AMENDS by identity is the
27
+ * gate's unattended skip (`reconcileUnattendedSkips`), whose evidence exists
28
+ * only inside this harness.
23
29
  *
24
30
  * The structured response is folded BEFORE the outcome is decided, so a turn
25
31
  * the runtime then pauses for file review persists it and the pure
26
32
  * file-review resume completes with it (the runtime's text fallback runs on
27
- * the review-pending path too, Q-M4-8).
33
+ * the review-pending path too).
28
34
  *
29
- * Moved from `index.ts` (post-stream through the terminal arms) at S3 M2a;
30
- * the capture boundary left for the runtime at M4.
35
+ * Moved from `index.ts` (post-stream through the terminal arms) in #1096,
36
+ * where the capture boundary also left for the runtime.
31
37
  */
32
38
  import type { TurnInput, TurnOutcome, TurnSink } from "../../harness/types.js";
33
39
  import type { DeepAgentEngine } from "./turn-setup.js";
@@ -8,34 +8,34 @@
8
8
  * the runtime's stop, mark in-flight sub-agent rows through the shared act
9
9
  * and settle `interrupted` with nothing further; the graph's
10
10
  * `structuredResponse` folded onto the status; the interrupts a completed
11
- * stream left pending seeded as WAITING rows; and the outcome.
11
+ * stream left pending proposed through the builder as WAITING rows; and the
12
+ * outcome.
12
13
  *
13
14
  * What this module never does: write a phase, a terminal copy or
14
15
  * `completedAt` — those are the runtime's (`harness/run-turn.ts`,
15
- * `terminal-table.ts`); settle SKIP and REJECT rows — the runtime's
16
+ * `terminal-table.ts`); close the transcript's streaming flags — the
17
+ * runtime's, once `runTurn` returns, on every path (since #1097; until then this
18
+ * settle finalized the builder itself, and a turn that threw before
19
+ * reaching it left its last message streaming); settle SKIP and REJECT rows — the runtime's
16
20
  * (`harness/approval-decisions.ts`, after every outcome); withhold secret
17
21
  * content — the runtime's chokepoint does it on every write; finalize the
18
22
  * write-back — the runtime's epilogue; capture the turn's file changes or
19
23
  * decide whether a review is pending — the runtime's (`harness/capture.ts`,
20
24
  * once, over whatever the whole turn left on the tree, after this settle
21
- * returns; S3 M4). It does mutate `sink.status`'s transcript rows, which
22
- * are this harness's to write.
25
+ * returns; since #1096). Transcript rows it CREATES go through the builder
26
+ * (`approval_proposed`, since #1097); the one row it AMENDS by identity is the
27
+ * gate's unattended skip (`reconcileUnattendedSkips`), whose evidence exists
28
+ * only inside this harness.
23
29
  *
24
30
  * The structured response is folded BEFORE the outcome is decided, so a turn
25
31
  * the runtime then pauses for file review persists it and the pure
26
32
  * file-review resume completes with it (the runtime's text fallback runs on
27
- * the review-pending path too, Q-M4-8).
33
+ * the review-pending path too).
28
34
  *
29
- * Moved from `index.ts` (post-stream through the terminal arms) at S3 M2a;
30
- * the capture boundary left for the runtime at M4.
35
+ * Moved from `index.ts` (post-stream through the terminal arms) in #1096,
36
+ * where the capture boundary also left for the runtime.
31
37
  */
32
- import { create } from "@bufbuild/protobuf";
33
- import { AgentMessageSchema, ToolCallSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
34
- import { MessageType, ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
35
- import { POLICY_ENGINE_VERSION, toProtoPolicySource } from "../../shared/approval-policy.js";
36
- import { utcTimestamp } from "../../shared/status.js";
37
38
  import { cancelInProgressSubAgentProtos } from "../../shared/subagent-rows.js";
38
- import { classifyTool } from "../../shared/tool-kind.js";
39
39
  import { captureApprovalArtifacts } from "./approval-file-change.js";
40
40
  import { autoPublishWrittenFiles } from "./auto-publish.js";
41
41
  import { detectPendingInterrupts, reconcileUnattendedSkips } from "./hitl.js";
@@ -66,10 +66,9 @@ export async function settleDeepAgentTurn(deps) {
66
66
  if (stream.reason === "interrupted") {
67
67
  // A stopped turn aborted the graph run, so any sub-agent the parent had
68
68
  // delegated is no longer executing: CANCELLED through the one shared act
69
- // (the runtime marks them itself only on its thrown arms), its messages'
70
- // streaming flags cleared. There is no review to open.
69
+ // (the runtime marks them itself only on its thrown arms). There is no
70
+ // review to open.
71
71
  cancelInProgressSubAgentProtos(status.subAgentExecutions);
72
- transcript.builder.finalizeSubAgentStreaming();
73
72
  return { kind: "interrupted" };
74
73
  }
75
74
  // The graph's structured response, when the run surfaced one: folded now,
@@ -98,11 +97,17 @@ export async function settleDeepAgentTurn(deps) {
98
97
  return { kind: "completed" };
99
98
  }
100
99
  /**
101
- * Seed one WAITING_APPROVAL row per interrupt the graph left pending, on one
102
- * AI message, with the sanitized args preview AND the redacted args read
103
- * from the AI message in graph state (the single source of truth for the
104
- * proposed call; issue #754: a placeholder without args rendered a pathless
105
- * header). Returns whether any was seeded.
100
+ * Propose, through the builder, one approval per interrupt the graph left
101
+ * pending — the gate's hold reaching the transcript as `approval_proposed`
102
+ * (since #1097). LangGraph's `interrupt()` ran before the tool
103
+ * handler, so the stream showed no row for the call; the builder creates
104
+ * the WAITING row on the message whose text proposed it, with the redacted
105
+ * args read from the AI message in graph state (the single source of truth
106
+ * for the proposed call; issue #754: a placeholder without args rendered a
107
+ * pathless header). Until #1097 this settle built the message and the rows
108
+ * itself, on a new empty AI message of its own, with no by-id check against
109
+ * rows the stream had created (the upsert closes it).
110
+ * Returns whether any was proposed.
106
111
  */
107
112
  async function seedPendingInterrupts(deps) {
108
113
  const { input, sink, engine } = deps;
@@ -113,34 +118,18 @@ async function seedPendingInterrupts(deps) {
113
118
  const graphMessages = graphState.values.messages;
114
119
  const aiMessages = Array.isArray(graphMessages) ? graphMessages : [];
115
120
  console.log(`[turn-settle] Detected ${pending.length} pending interrupt(s) for execution ${input.executionId} — awaiting approval`);
116
- const aiMsg = create(AgentMessageSchema, {
117
- type: MessageType.MESSAGE_AI,
118
- content: "",
119
- timestamp: utcTimestamp(),
120
- isStreaming: false,
121
- });
122
121
  for (const intr of pending) {
123
- const toolCall = create(ToolCallSchema, {
124
- id: intr.toolCallId,
122
+ const { args } = captureApprovalArtifacts({ toolCallId: intr.toolCallId, messages: aiMessages });
123
+ sink.transcript.apply({
124
+ kind: "approval_proposed",
125
+ callId: intr.toolCallId,
125
126
  name: intr.toolName,
126
- status: ToolCallStatus.TOOL_CALL_WAITING_APPROVAL,
127
- requiresApproval: true,
128
- approvalMessage: intr.message,
129
- approvalRequestedAt: utcTimestamp(),
130
127
  mcpServerSlug: intr.mcpServerSlug,
131
- startedAt: utcTimestamp(),
132
- toolKind: classifyTool(intr.toolName, intr.mcpServerSlug),
133
- approvalPolicySource: toProtoPolicySource(intr.policySource),
134
- policyEngineVersion: intr.policySource ? POLICY_ENGINE_VERSION : "",
128
+ message: intr.message,
129
+ ...(args ? { args } : {}),
130
+ ...(intr.policySource ? { provenance: intr.policySource } : {}),
135
131
  });
136
- const { argsPreview, args } = captureApprovalArtifacts({ toolCallId: intr.toolCallId, messages: aiMessages });
137
- if (argsPreview)
138
- toolCall.argsPreview = argsPreview;
139
- if (args)
140
- toolCall.args = args;
141
- aiMsg.toolCalls.push(toolCall);
142
132
  }
143
- sink.status.messages.push(aiMsg);
144
- return true;
133
+ return sink.transcript.awaitingApproval;
145
134
  }
146
135
  //# sourceMappingURL=turn-settle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-settle.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/turn-settle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-settle.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/turn-settle.ts"],"names":[],"mappings":"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"}