@stigmer/runner 3.15.1 → 3.15.2-dev.20260913223433

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 (518) hide show
  1. package/README.md +2 -4
  2. package/dist/.build-fingerprint +1 -1
  3. package/dist/__test-utils__/execution-record-fixture.d.ts +14 -0
  4. package/dist/__test-utils__/execution-record-fixture.js +4 -0
  5. package/dist/__test-utils__/execution-record-fixture.js.map +1 -1
  6. package/dist/__test-utils__/file-review-projection.d.ts +40 -0
  7. package/dist/__test-utils__/file-review-projection.js +136 -0
  8. package/dist/__test-utils__/file-review-projection.js.map +1 -0
  9. package/dist/__test-utils__/harness-contract/types.d.ts +23 -1
  10. package/dist/__test-utils__/harness-contract/types.js +15 -0
  11. package/dist/__test-utils__/harness-contract/types.js.map +1 -1
  12. package/dist/__test-utils__/hermetic-activity.d.ts +44 -12
  13. package/dist/__test-utils__/hermetic-activity.js +52 -14
  14. package/dist/__test-utils__/hermetic-activity.js.map +1 -1
  15. package/dist/__test-utils__/model-registry-fixture.d.ts +32 -7
  16. package/dist/__test-utils__/model-registry-fixture.js +31 -7
  17. package/dist/__test-utils__/model-registry-fixture.js.map +1 -1
  18. package/dist/__test-utils__/turn-input-fixture.d.ts +1 -1
  19. package/dist/__test-utils__/turn-input-fixture.js +1 -1
  20. package/dist/__test-utils__/turn-input-fixture.js.map +1 -1
  21. package/dist/activities/call-agent.js +2 -2
  22. package/dist/activities/call-agent.js.map +1 -1
  23. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +45 -3
  24. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +1 -1
  25. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +0 -9
  26. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +2 -41
  27. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
  28. package/dist/activities/execute-cursor/adapter.d.ts +7 -5
  29. package/dist/activities/execute-cursor/adapter.js +7 -5
  30. package/dist/activities/execute-cursor/adapter.js.map +1 -1
  31. package/dist/activities/execute-cursor/approval-policy.d.ts +5 -2
  32. package/dist/activities/execute-cursor/approval-policy.js +5 -2
  33. package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
  34. package/dist/activities/execute-cursor/approval-state.d.ts +16 -8
  35. package/dist/activities/execute-cursor/approval-state.js +6 -3
  36. package/dist/activities/execute-cursor/approval-state.js.map +1 -1
  37. package/dist/activities/execute-cursor/cas-observations.d.ts +14 -2
  38. package/dist/activities/execute-cursor/cas-observations.js +19 -2
  39. package/dist/activities/execute-cursor/cas-observations.js.map +1 -1
  40. package/dist/activities/execute-cursor/cursor-capabilities.d.ts +8 -4
  41. package/dist/activities/execute-cursor/cursor-capabilities.js +21 -4
  42. package/dist/activities/execute-cursor/cursor-capabilities.js.map +1 -1
  43. package/dist/activities/execute-cursor/message-translator.d.ts +12 -20
  44. package/dist/activities/execute-cursor/message-translator.js +19 -32
  45. package/dist/activities/execute-cursor/message-translator.js.map +1 -1
  46. package/dist/activities/execute-cursor/prompt-builder.d.ts +48 -58
  47. package/dist/activities/execute-cursor/prompt-builder.js +76 -95
  48. package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
  49. package/dist/activities/execute-cursor/turn-boundary.d.ts +27 -55
  50. package/dist/activities/execute-cursor/turn-boundary.js +30 -90
  51. package/dist/activities/execute-cursor/turn-boundary.js.map +1 -1
  52. package/dist/activities/execute-cursor/turn-settle.d.ts +11 -7
  53. package/dist/activities/execute-cursor/turn-settle.js +37 -49
  54. package/dist/activities/execute-cursor/turn-settle.js.map +1 -1
  55. package/dist/activities/execute-cursor/turn-setup.d.ts +16 -24
  56. package/dist/activities/execute-cursor/turn-setup.js +29 -59
  57. package/dist/activities/execute-cursor/turn-setup.js.map +1 -1
  58. package/dist/activities/execute-cursor/turn-stream.d.ts +3 -8
  59. package/dist/activities/execute-cursor/turn-stream.js +9 -22
  60. package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
  61. package/dist/activities/execute-cursor/turn.js +5 -1
  62. package/dist/activities/execute-cursor/turn.js.map +1 -1
  63. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +93 -0
  64. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +348 -0
  65. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js.map +1 -0
  66. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +170 -0
  67. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +225 -0
  68. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -0
  69. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.d.ts +24 -0
  70. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js +41 -0
  71. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js.map +1 -0
  72. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.d.ts +54 -0
  73. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +72 -0
  74. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js.map +1 -0
  75. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.d.ts +187 -23
  76. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +238 -27
  77. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +1 -1
  78. package/dist/activities/execute-deep-agent/adapter.d.ts +41 -0
  79. package/dist/activities/execute-deep-agent/adapter.js +78 -0
  80. package/dist/activities/execute-deep-agent/adapter.js.map +1 -0
  81. package/dist/activities/execute-deep-agent/cas-capture-observer.d.ts +8 -0
  82. package/dist/activities/execute-deep-agent/cas-capture-observer.js +9 -0
  83. package/dist/activities/execute-deep-agent/cas-capture-observer.js.map +1 -1
  84. package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +31 -0
  85. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +40 -0
  86. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js.map +1 -0
  87. package/dist/activities/execute-deep-agent/execution-state.d.ts +4 -11
  88. package/dist/activities/execute-deep-agent/execution-state.js +4 -12
  89. package/dist/activities/execute-deep-agent/execution-state.js.map +1 -1
  90. package/dist/activities/execute-deep-agent/hitl.d.ts +49 -47
  91. package/dist/activities/execute-deep-agent/hitl.js +77 -103
  92. package/dist/activities/execute-deep-agent/hitl.js.map +1 -1
  93. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +51 -23
  94. package/dist/activities/execute-deep-agent/prompt-builder.js +115 -76
  95. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
  96. package/dist/activities/execute-deep-agent/status-builder-shared.d.ts +18 -32
  97. package/dist/activities/execute-deep-agent/status-builder-shared.js +10 -65
  98. package/dist/activities/execute-deep-agent/status-builder-shared.js.map +1 -1
  99. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +10 -8
  100. package/dist/activities/execute-deep-agent/streaming-side-effects.js +12 -14
  101. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
  102. package/dist/activities/execute-deep-agent/subagent-tracker.d.ts +36 -13
  103. package/dist/activities/execute-deep-agent/subagent-tracker.js +76 -39
  104. package/dist/activities/execute-deep-agent/subagent-tracker.js.map +1 -1
  105. package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +25 -28
  106. package/dist/activities/execute-deep-agent/subagent-transformer.js +29 -82
  107. package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
  108. package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +3 -2
  109. package/dist/activities/execute-deep-agent/subagent-wiring.js +2 -2
  110. package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -1
  111. package/dist/activities/execute-deep-agent/turn-settle.d.ts +42 -0
  112. package/dist/activities/execute-deep-agent/turn-settle.js +146 -0
  113. package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -0
  114. package/dist/activities/execute-deep-agent/turn-setup.d.ts +212 -0
  115. package/dist/activities/execute-deep-agent/turn-setup.js +430 -0
  116. package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -0
  117. package/dist/activities/execute-deep-agent/turn-stream.d.ts +97 -0
  118. package/dist/activities/execute-deep-agent/turn-stream.js +242 -0
  119. package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -0
  120. package/dist/activities/execute-deep-agent/turn.d.ts +42 -0
  121. package/dist/activities/execute-deep-agent/turn.js +116 -0
  122. package/dist/activities/execute-deep-agent/turn.js.map +1 -0
  123. package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +6 -5
  124. package/dist/activities/execute-deep-agent/v3-event-recorder.js +6 -5
  125. package/dist/activities/execute-deep-agent/v3-event-recorder.js.map +1 -1
  126. package/dist/activities/execute-deep-agent/v3-events.d.ts +1 -1
  127. package/dist/activities/execute-deep-agent/v3-events.js +1 -1
  128. package/dist/activities/execute-deep-agent/v3-status-builder.d.ts +60 -17
  129. package/dist/activities/execute-deep-agent/v3-status-builder.js +72 -57
  130. package/dist/activities/execute-deep-agent/v3-status-builder.js.map +1 -1
  131. package/dist/harness/approval-decisions.d.ts +61 -0
  132. package/dist/harness/approval-decisions.js +102 -0
  133. package/dist/harness/approval-decisions.js.map +1 -0
  134. package/dist/harness/capabilities.d.ts +16 -5
  135. package/dist/harness/capabilities.js +9 -0
  136. package/dist/harness/capabilities.js.map +1 -1
  137. package/dist/harness/capture.d.ts +144 -0
  138. package/dist/harness/capture.js +219 -0
  139. package/dist/harness/capture.js.map +1 -0
  140. package/dist/harness/persist-chokepoint.d.ts +19 -4
  141. package/dist/harness/persist-chokepoint.js +17 -4
  142. package/dist/harness/persist-chokepoint.js.map +1 -1
  143. package/dist/harness/run-turn.js +115 -29
  144. package/dist/harness/run-turn.js.map +1 -1
  145. package/dist/harness/terminal-table.d.ts +40 -11
  146. package/dist/harness/terminal-table.js +58 -19
  147. package/dist/harness/terminal-table.js.map +1 -1
  148. package/dist/harness/turn-context.d.ts +141 -76
  149. package/dist/harness/turn-context.js +194 -99
  150. package/dist/harness/turn-context.js.map +1 -1
  151. package/dist/harness/types.d.ts +65 -12
  152. package/dist/harness/types.js +8 -2
  153. package/dist/harness/types.js.map +1 -1
  154. package/dist/harness-adapters.d.ts +12 -8
  155. package/dist/harness-adapters.js +17 -9
  156. package/dist/harness-adapters.js.map +1 -1
  157. package/dist/middleware/approval-gate.d.ts +1 -1
  158. package/dist/middleware/approval-gate.js +1 -1
  159. package/dist/middleware/approval-gate.js.map +1 -1
  160. package/dist/middleware/cost-advisory.d.ts +39 -0
  161. package/dist/middleware/{cost-cap.js → cost-advisory.js} +37 -55
  162. package/dist/middleware/cost-advisory.js.map +1 -0
  163. package/dist/middleware/index.d.ts +23 -12
  164. package/dist/middleware/index.js +26 -18
  165. package/dist/middleware/index.js.map +1 -1
  166. package/dist/middleware/types.d.ts +3 -2
  167. package/dist/runner-manager.js +1 -5
  168. package/dist/runner-manager.js.map +1 -1
  169. package/dist/runner.js +1 -5
  170. package/dist/runner.js.map +1 -1
  171. package/dist/shared/attachment-resolver.d.ts +41 -18
  172. package/dist/shared/attachment-resolver.js +178 -46
  173. package/dist/shared/attachment-resolver.js.map +1 -1
  174. package/dist/shared/attachment-zip.d.ts +85 -0
  175. package/dist/shared/attachment-zip.js +185 -0
  176. package/dist/shared/attachment-zip.js.map +1 -0
  177. package/dist/shared/connect-backfill.js +5 -4
  178. package/dist/shared/connect-backfill.js.map +1 -1
  179. package/dist/shared/cost-guard.d.ts +3 -3
  180. package/dist/shared/cost-guard.js +3 -3
  181. package/dist/shared/execution-status-writer.d.ts +5 -5
  182. package/dist/shared/execution-status-writer.js +5 -5
  183. package/dist/shared/extract-structured-output.d.ts +8 -7
  184. package/dist/shared/extract-structured-output.js +8 -7
  185. package/dist/shared/extract-structured-output.js.map +1 -1
  186. package/dist/shared/filereview/cas-progress.d.ts +1 -18
  187. package/dist/shared/filereview/cas-progress.js +4 -0
  188. package/dist/shared/filereview/cas-progress.js.map +1 -1
  189. package/dist/shared/filereview/cas-touched.d.ts +56 -0
  190. package/dist/shared/filereview/cas-touched.js +63 -0
  191. package/dist/shared/filereview/cas-touched.js.map +1 -0
  192. package/dist/shared/filereview/index.d.ts +2 -1
  193. package/dist/shared/filereview/index.js +2 -1
  194. package/dist/shared/filereview/index.js.map +1 -1
  195. package/dist/shared/mcp-resolver.d.ts +4 -5
  196. package/dist/shared/mcp-resolver.js +4 -5
  197. package/dist/shared/mcp-resolver.js.map +1 -1
  198. package/dist/shared/persist-decision.d.ts +3 -4
  199. package/dist/shared/persist-decision.js +3 -4
  200. package/dist/shared/persist-decision.js.map +1 -1
  201. package/dist/shared/plan-mode-permissions.d.ts +2 -2
  202. package/dist/shared/plan-mode-permissions.js +2 -2
  203. package/dist/shared/plan-mode-prompt.d.ts +1 -1
  204. package/dist/shared/plan-mode-prompt.js +1 -1
  205. package/dist/shared/prompt-sections.d.ts +163 -0
  206. package/dist/shared/prompt-sections.js +164 -0
  207. package/dist/shared/prompt-sections.js.map +1 -0
  208. package/dist/shared/skill-resolver.d.ts +4 -2
  209. package/dist/shared/skill-resolver.js +4 -2
  210. package/dist/shared/skill-resolver.js.map +1 -1
  211. package/dist/shared/tool-rounds.d.ts +32 -0
  212. package/dist/shared/tool-rounds.js +43 -0
  213. package/dist/shared/tool-rounds.js.map +1 -1
  214. package/dist/shared/tool-row.d.ts +34 -0
  215. package/dist/shared/tool-row.js +52 -0
  216. package/dist/shared/tool-row.js.map +1 -1
  217. package/dist/shared/workspace/session-provision.d.ts +3 -3
  218. package/dist/shared/workspace/session-provision.js +3 -3
  219. package/dist/shared/workspace/stigmer-link.d.ts +3 -3
  220. package/dist/shared/workspace/stigmer-link.js +3 -3
  221. package/dist/shared/workspace/writeback-coordinator.d.ts +15 -22
  222. package/dist/shared/workspace/writeback-coordinator.js +16 -53
  223. package/dist/shared/workspace/writeback-coordinator.js.map +1 -1
  224. package/dist/tools/index.d.ts +1 -1
  225. package/dist/tools/index.js +1 -1
  226. package/package.json +4 -4
  227. package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +1 -0
  228. package/src/__test-utils__/execution-record-fixture.ts +18 -2
  229. package/src/__test-utils__/file-review-projection.ts +156 -0
  230. package/src/__test-utils__/git-workspace-fixture.ts +58 -0
  231. package/src/__test-utils__/harness-boot-order-child.ts +7 -2
  232. package/src/__test-utils__/harness-contract/contract.ts +33 -20
  233. package/src/__test-utils__/harness-contract/recording-sink.ts +11 -1
  234. package/src/__test-utils__/harness-contract/runtime-contract.ts +328 -10
  235. package/src/__test-utils__/harness-contract/scripted-adapter.ts +38 -6
  236. package/src/__test-utils__/harness-contract/types.ts +27 -3
  237. package/src/__test-utils__/hermetic-activity.ts +52 -14
  238. package/src/__test-utils__/model-registry-fixture.ts +32 -7
  239. package/src/__test-utils__/module-specifiers.ts +24 -0
  240. package/src/__test-utils__/turn-input-fixture.ts +2 -2
  241. package/src/__tests__/harness-boot-order.test.ts +9 -2
  242. package/src/activities/call-agent.ts +2 -2
  243. package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +47 -3
  244. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +2 -48
  245. package/src/activities/execute-cursor/__tests__/approval-decisions-agree.test.ts +1 -1
  246. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +6 -1
  247. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +52 -27
  248. package/src/activities/execute-cursor/__tests__/cas-observations.test.ts +25 -0
  249. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.everything.prompt.md +166 -0
  250. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.plan-mode.prompt.md +186 -0
  251. package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.recovery.prompt.md +191 -0
  252. package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.reinvocation.prompt.md +13 -0
  253. package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.prefixed.prompt.md +32 -0
  254. package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.raw.prompt.md +1 -0
  255. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +1 -2
  256. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.status.json +4 -0
  257. package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +24 -4
  258. package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +6 -5
  259. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +9 -0
  260. package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +11 -8
  261. package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +229 -0
  262. package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +3 -3
  263. package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +2 -2
  264. package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +78 -234
  265. package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +1 -26
  266. package/src/activities/execute-cursor/adapter.ts +7 -5
  267. package/src/activities/execute-cursor/approval-policy.ts +5 -2
  268. package/src/activities/execute-cursor/approval-state.ts +16 -8
  269. package/src/activities/execute-cursor/cas-observations.ts +20 -2
  270. package/src/activities/execute-cursor/cursor-capabilities.ts +24 -5
  271. package/src/activities/execute-cursor/message-translator.ts +29 -41
  272. package/src/activities/execute-cursor/prompt-builder.ts +99 -157
  273. package/src/activities/execute-cursor/turn-boundary.ts +34 -140
  274. package/src/activities/execute-cursor/turn-settle.ts +37 -51
  275. package/src/activities/execute-cursor/turn-setup.ts +30 -70
  276. package/src/activities/execute-cursor/turn-stream.ts +8 -31
  277. package/src/activities/execute-cursor/turn.ts +5 -1
  278. package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +391 -0
  279. package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +313 -0
  280. package/src/activities/execute-deep-agent/__test-utils__/hitl-script.ts +48 -0
  281. package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +85 -0
  282. package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +383 -36
  283. package/src/activities/execute-deep-agent/__tests__/adapter-graph-is-sdk-free.test.ts +76 -0
  284. package/src/activities/execute-deep-agent/__tests__/adapter-is-temporal-free.test.ts +47 -0
  285. package/src/activities/execute-deep-agent/__tests__/adapter.test.ts +80 -0
  286. package/src/activities/execute-deep-agent/__tests__/cas-capture-backend.test.ts +1 -1
  287. package/src/activities/execute-deep-agent/__tests__/execution-state-extended.test.ts +0 -2
  288. package/src/activities/execute-deep-agent/__tests__/execution-state.test.ts +0 -3
  289. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +172 -0
  290. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +167 -0
  291. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.prompt.md +36 -0
  292. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +178 -0
  293. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.skills-below-threshold.prompt.md +158 -0
  294. package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +210 -0
  295. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.status.json +74 -0
  296. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.status.json +104 -0
  297. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.status.json +78 -0
  298. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +138 -0
  299. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.status.json +68 -0
  300. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +154 -0
  301. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +116 -0
  302. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.status.json +69 -0
  303. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.status.json +67 -0
  304. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.status.json +47 -0
  305. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.status.json +68 -0
  306. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +280 -0
  307. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.status.json +77 -0
  308. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.status.json +18 -0
  309. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.status.json +99 -0
  310. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.status.json +109 -0
  311. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.status.json +76 -0
  312. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.status.json +51 -0
  313. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.status.json +51 -0
  314. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.status.json +56 -0
  315. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.status.json +90 -0
  316. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.status.json +70 -0
  317. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +71 -0
  318. package/src/activities/execute-deep-agent/__tests__/hermetic/harness-contract.test.ts +144 -0
  319. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-approve-all-lease.test.ts +184 -0
  320. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +203 -0
  321. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +170 -0
  322. package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +175 -0
  323. package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +206 -0
  324. package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +142 -0
  325. package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +126 -0
  326. package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +139 -0
  327. package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +122 -0
  328. package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +236 -0
  329. package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +161 -0
  330. package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +157 -0
  331. package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +152 -0
  332. package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +50 -122
  333. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +8 -6
  334. package/src/activities/execute-deep-agent/__tests__/plan-mode-path-normalization.test.ts +2 -2
  335. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +35 -35
  336. package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +247 -0
  337. package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +329 -0
  338. package/src/activities/execute-deep-agent/__tests__/status-builder-shared.test.ts +1 -20
  339. package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +78 -0
  340. package/src/activities/execute-deep-agent/__tests__/subagent-gitignored-capture.test.ts +1 -1
  341. package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +2 -2
  342. package/src/activities/execute-deep-agent/__tests__/subagent-tracker.test.ts +57 -31
  343. package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +19 -79
  344. package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +15 -15
  345. package/src/activities/execute-deep-agent/__tests__/summarization-verification.test.ts +1 -1
  346. package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +391 -0
  347. package/src/activities/execute-deep-agent/__tests__/v3-status-builder.test.ts +343 -38
  348. package/src/activities/execute-deep-agent/__tests__/vision-input.test.ts +5 -5
  349. package/src/activities/execute-deep-agent/adapter.ts +94 -0
  350. package/src/activities/execute-deep-agent/cas-capture-observer.ts +11 -0
  351. package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +43 -0
  352. package/src/activities/execute-deep-agent/execution-state.ts +4 -13
  353. package/src/activities/execute-deep-agent/hitl.ts +100 -123
  354. package/src/activities/execute-deep-agent/prompt-builder.ts +141 -115
  355. package/src/activities/execute-deep-agent/status-builder-shared.ts +21 -84
  356. package/src/activities/execute-deep-agent/streaming-side-effects.ts +13 -19
  357. package/src/activities/execute-deep-agent/subagent-tracker.ts +77 -42
  358. package/src/activities/execute-deep-agent/subagent-transformer.ts +46 -105
  359. package/src/activities/execute-deep-agent/subagent-wiring.ts +5 -4
  360. package/src/activities/execute-deep-agent/turn-settle.ts +164 -0
  361. package/src/activities/execute-deep-agent/turn-setup.ts +541 -0
  362. package/src/activities/execute-deep-agent/turn-stream.ts +313 -0
  363. package/src/activities/execute-deep-agent/turn.ts +131 -0
  364. package/src/activities/execute-deep-agent/v3-event-recorder.ts +6 -5
  365. package/src/activities/execute-deep-agent/v3-events.ts +1 -1
  366. package/src/activities/execute-deep-agent/v3-status-builder.ts +84 -63
  367. package/src/harness/__tests__/approval-decisions.test.ts +116 -0
  368. package/src/harness/__tests__/capture.test.ts +268 -0
  369. package/src/harness/__tests__/mount-skills.test.ts +169 -0
  370. package/src/harness/__tests__/persist-chokepoint.test.ts +38 -2
  371. package/src/harness/__tests__/run-turn-deterministic.test.ts +94 -0
  372. package/src/harness/__tests__/run-turn.test.ts +39 -23
  373. package/src/harness/__tests__/turn-attachments-vision.test.ts +80 -0
  374. package/src/harness/__tests__/turn-context.test.ts +73 -26
  375. package/src/harness/approval-decisions.ts +104 -0
  376. package/src/harness/capabilities.ts +16 -5
  377. package/src/harness/capture.ts +301 -0
  378. package/src/harness/persist-chokepoint.ts +24 -4
  379. package/src/harness/run-turn.ts +120 -29
  380. package/src/harness/terminal-table.ts +61 -20
  381. package/src/harness/turn-context.ts +208 -111
  382. package/src/harness/types.ts +66 -12
  383. package/src/harness-adapters.ts +17 -9
  384. package/src/middleware/__tests__/approval-gate.test.ts +1 -1
  385. package/src/middleware/__tests__/cost-advisory.test.ts +113 -0
  386. package/src/middleware/approval-gate.ts +2 -2
  387. package/src/middleware/{cost-cap.ts → cost-advisory.ts} +40 -70
  388. package/src/middleware/index.ts +29 -29
  389. package/src/middleware/types.ts +3 -2
  390. package/src/runner-manager.ts +0 -8
  391. package/src/runner.ts +0 -8
  392. package/src/shared/__tests__/attachment-naming.test.ts +6 -19
  393. package/src/shared/__tests__/attachment-resolver.test.ts +158 -8
  394. package/src/shared/__tests__/attachment-zip.test.ts +236 -0
  395. package/src/shared/__tests__/bedrock-adapter.test.ts +1 -1
  396. package/src/shared/__tests__/blueprint-resolver.test.ts +43 -0
  397. package/src/shared/__tests__/cost-guard.test.ts +3 -3
  398. package/src/shared/__tests__/prompt-sections.test.ts +167 -0
  399. package/src/shared/__tests__/secret-leak-scan.test.ts +2 -2
  400. package/src/{activities/execute-deep-agent → shared}/__tests__/stamp-flowed-rows.test.ts +33 -10
  401. package/src/shared/__tests__/vertex-adapter.test.ts +1 -1
  402. package/src/shared/attachment-resolver.ts +218 -55
  403. package/src/shared/attachment-zip.ts +281 -0
  404. package/src/shared/connect-backfill.ts +9 -11
  405. package/src/shared/cost-guard.ts +3 -3
  406. package/src/shared/execution-status-writer.ts +5 -5
  407. package/src/shared/extract-structured-output.ts +8 -7
  408. package/src/shared/filereview/__tests__/capture.test.ts +86 -4
  409. package/src/shared/filereview/__tests__/cas-progress.test.ts +2 -1
  410. package/src/shared/filereview/cas-progress.ts +5 -19
  411. package/src/shared/filereview/cas-touched.ts +89 -0
  412. package/src/shared/filereview/index.ts +4 -2
  413. package/src/shared/mcp-resolver.ts +4 -5
  414. package/src/shared/persist-decision.ts +3 -4
  415. package/src/shared/plan-mode-permissions.ts +2 -2
  416. package/src/shared/plan-mode-prompt.ts +1 -1
  417. package/src/shared/prompt-sections.ts +256 -0
  418. package/src/shared/skill-resolver.ts +4 -2
  419. package/src/shared/tool-rounds.ts +48 -0
  420. package/src/shared/tool-row.ts +61 -0
  421. package/src/shared/workspace/__tests__/stigmer-link.test.ts +7 -22
  422. package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +20 -61
  423. package/src/shared/workspace/session-provision.ts +3 -3
  424. package/src/shared/workspace/stigmer-link.ts +3 -3
  425. package/src/shared/workspace/writeback-coordinator.ts +16 -64
  426. package/src/tools/index.ts +1 -1
  427. package/dist/activities/execute-cursor/capture-flow.d.ts +0 -142
  428. package/dist/activities/execute-cursor/capture-flow.js +0 -285
  429. package/dist/activities/execute-cursor/capture-flow.js.map +0 -1
  430. package/dist/activities/execute-cursor/command-provenance.d.ts +0 -48
  431. package/dist/activities/execute-cursor/command-provenance.js +0 -38
  432. package/dist/activities/execute-cursor/command-provenance.js.map +0 -1
  433. package/dist/activities/execute-deep-agent/attachment-injector.d.ts +0 -134
  434. package/dist/activities/execute-deep-agent/attachment-injector.js +0 -386
  435. package/dist/activities/execute-deep-agent/attachment-injector.js.map +0 -1
  436. package/dist/activities/execute-deep-agent/command-provenance.d.ts +0 -61
  437. package/dist/activities/execute-deep-agent/command-provenance.js +0 -72
  438. package/dist/activities/execute-deep-agent/command-provenance.js.map +0 -1
  439. package/dist/activities/execute-deep-agent/environment.d.ts +0 -24
  440. package/dist/activities/execute-deep-agent/environment.js +0 -58
  441. package/dist/activities/execute-deep-agent/environment.js.map +0 -1
  442. package/dist/activities/execute-deep-agent/event-recorder.d.ts +0 -21
  443. package/dist/activities/execute-deep-agent/event-recorder.js +0 -67
  444. package/dist/activities/execute-deep-agent/event-recorder.js.map +0 -1
  445. package/dist/activities/execute-deep-agent/index.d.ts +0 -15
  446. package/dist/activities/execute-deep-agent/index.js +0 -918
  447. package/dist/activities/execute-deep-agent/index.js.map +0 -1
  448. package/dist/activities/execute-deep-agent/mcp-gate.d.ts +0 -28
  449. package/dist/activities/execute-deep-agent/mcp-gate.js +0 -22
  450. package/dist/activities/execute-deep-agent/mcp-gate.js.map +0 -1
  451. package/dist/activities/execute-deep-agent/post-stream.d.ts +0 -23
  452. package/dist/activities/execute-deep-agent/post-stream.js +0 -71
  453. package/dist/activities/execute-deep-agent/post-stream.js.map +0 -1
  454. package/dist/activities/execute-deep-agent/setup.d.ts +0 -136
  455. package/dist/activities/execute-deep-agent/setup.js +0 -767
  456. package/dist/activities/execute-deep-agent/setup.js.map +0 -1
  457. package/dist/activities/execute-deep-agent/stamp-flowed-rows.d.ts +0 -36
  458. package/dist/activities/execute-deep-agent/stamp-flowed-rows.js +0 -56
  459. package/dist/activities/execute-deep-agent/stamp-flowed-rows.js.map +0 -1
  460. package/dist/activities/execute-deep-agent/status-builder.d.ts +0 -93
  461. package/dist/activities/execute-deep-agent/status-builder.js +0 -365
  462. package/dist/activities/execute-deep-agent/status-builder.js.map +0 -1
  463. package/dist/activities/execute-deep-agent/streaming-terminal.d.ts +0 -21
  464. package/dist/activities/execute-deep-agent/streaming-terminal.js +0 -80
  465. package/dist/activities/execute-deep-agent/streaming-terminal.js.map +0 -1
  466. package/dist/activities/execute-deep-agent/streaming-v3.d.ts +0 -13
  467. package/dist/activities/execute-deep-agent/streaming-v3.js +0 -174
  468. package/dist/activities/execute-deep-agent/streaming-v3.js.map +0 -1
  469. package/dist/activities/execute-deep-agent/streaming.d.ts +0 -81
  470. package/dist/activities/execute-deep-agent/streaming.js +0 -160
  471. package/dist/activities/execute-deep-agent/streaming.js.map +0 -1
  472. package/dist/middleware/cost-cap.d.ts +0 -22
  473. package/dist/middleware/cost-cap.js.map +0 -1
  474. package/dist/middleware/graceful-stop.d.ts +0 -17
  475. package/dist/middleware/graceful-stop.js +0 -63
  476. package/dist/middleware/graceful-stop.js.map +0 -1
  477. package/dist/shared/skill-writer.d.ts +0 -75
  478. package/dist/shared/skill-writer.js +0 -207
  479. package/dist/shared/skill-writer.js.map +0 -1
  480. package/src/activities/execute-cursor/__tests__/capture-flow.test.ts +0 -1032
  481. package/src/activities/execute-cursor/__tests__/command-provenance.test.ts +0 -240
  482. package/src/activities/execute-cursor/__tests__/progress-substrate.test.ts +0 -169
  483. package/src/activities/execute-cursor/capture-flow.ts +0 -379
  484. package/src/activities/execute-cursor/command-provenance.ts +0 -73
  485. package/src/activities/execute-deep-agent/__tests__/attachment-injector.test.ts +0 -1161
  486. package/src/activities/execute-deep-agent/__tests__/command-provenance.test.ts +0 -252
  487. package/src/activities/execute-deep-agent/__tests__/environment.test.ts +0 -108
  488. package/src/activities/execute-deep-agent/__tests__/event-recorder.test.ts +0 -150
  489. package/src/activities/execute-deep-agent/__tests__/hitl-integration.test.ts +0 -226
  490. package/src/activities/execute-deep-agent/__tests__/hitl-reject.test.ts +0 -318
  491. package/src/activities/execute-deep-agent/__tests__/hitl-resume-approve-all.test.ts +0 -351
  492. package/src/activities/execute-deep-agent/__tests__/hitl-resume-history.test.ts +0 -293
  493. package/src/activities/execute-deep-agent/__tests__/index.test.ts +0 -99
  494. package/src/activities/execute-deep-agent/__tests__/mcp-gate.test.ts +0 -44
  495. package/src/activities/execute-deep-agent/__tests__/post-stream.test.ts +0 -112
  496. package/src/activities/execute-deep-agent/__tests__/sequential-gate-resume.test.ts +0 -358
  497. package/src/activities/execute-deep-agent/__tests__/status-builder.test.ts +0 -1933
  498. package/src/activities/execute-deep-agent/__tests__/streaming-terminal.test.ts +0 -40
  499. package/src/activities/execute-deep-agent/__tests__/streaming-v3.test.ts +0 -597
  500. package/src/activities/execute-deep-agent/__tests__/streaming.test.ts +0 -508
  501. package/src/activities/execute-deep-agent/attachment-injector.ts +0 -627
  502. package/src/activities/execute-deep-agent/command-provenance.ts +0 -102
  503. package/src/activities/execute-deep-agent/environment.ts +0 -76
  504. package/src/activities/execute-deep-agent/event-recorder.ts +0 -95
  505. package/src/activities/execute-deep-agent/index.ts +0 -1072
  506. package/src/activities/execute-deep-agent/mcp-gate.ts +0 -37
  507. package/src/activities/execute-deep-agent/post-stream.ts +0 -109
  508. package/src/activities/execute-deep-agent/setup.ts +0 -1081
  509. package/src/activities/execute-deep-agent/stamp-flowed-rows.ts +0 -64
  510. package/src/activities/execute-deep-agent/status-builder.ts +0 -481
  511. package/src/activities/execute-deep-agent/streaming-terminal.ts +0 -106
  512. package/src/activities/execute-deep-agent/streaming-v3.ts +0 -277
  513. package/src/activities/execute-deep-agent/streaming.ts +0 -313
  514. package/src/middleware/__tests__/cost-cap.test.ts +0 -192
  515. package/src/middleware/__tests__/graceful-stop.test.ts +0 -105
  516. package/src/middleware/graceful-stop.ts +0 -86
  517. package/src/shared/__tests__/skill-writer.test.ts +0 -372
  518. package/src/shared/skill-writer.ts +0 -266
@@ -18,6 +18,7 @@
18
18
  * the returned ResolvedMcpServer[] into its SDK-specific format.
19
19
  */
20
20
  import { resolveMcpServers } from "./mcp-resolver.js";
21
+ import { withTimeout } from "./with-timeout.js";
21
22
  const CONNECT_TIMEOUT_MS = 60_000;
22
23
  /**
23
24
  * When true, skip connect backfill entirely. The runner discovers
@@ -71,10 +72,10 @@ export async function backfillMcpServersIfNeeded(client, currentServers, usages,
71
72
  const runtimeEnv = extractRuntimeEnvForServer(fullServer, envVars, secretKeys);
72
73
  console.log(`[connect-backfill] Triggering connect for "${server.slug}" (${serverId})`);
73
74
  onHeartbeat?.();
74
- const updated = await Promise.race([
75
- client.connectMcpServer(serverId, org, runtimeEnv),
76
- new Promise((_, reject) => setTimeout(() => reject(new Error(`Connect timed out after ${CONNECT_TIMEOUT_MS / 1000}s`)), CONNECT_TIMEOUT_MS)),
77
- ]);
75
+ // Bounded through the shared helper so the timer is cleared when the
76
+ // connect wins; a bare `setTimeout` in a `Promise.race` stays armed and
77
+ // holds the event loop open for the full bound (stigmer#1008).
78
+ const updated = await withTimeout(CONNECT_TIMEOUT_MS, `Connect timed out after ${CONNECT_TIMEOUT_MS / 1000}s`, () => client.connectMcpServer(serverId, org, runtimeEnv));
78
79
  const toolCount = updated.status?.discoveredCapabilities?.tools.length ?? 0;
79
80
  const approvalCount = updated.status?.toolApprovals?.length ?? 0;
80
81
  console.log(`[connect-backfill] "${server.slug}" — ` +
@@ -1 +1 @@
1
- {"version":3,"file":"connect-backfill.js","sourceRoot":"","sources":["../../src/shared/connect-backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-backfill.js","sourceRoot":"","sources":["../../src/shared/connect-backfill.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,8 @@
13
13
  * same clean-cancel pattern the stall watchdog and first-denial stop use.
14
14
  * Slightly harsher than native by construction; both harnesses terminate with
15
15
  * the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
16
- * conversation continues on the next message — the recursion-limit precedent
17
- * in execute-deep-agent/streaming-terminal.ts).
16
+ * conversation continues on the next message — the recursion-limit precedent,
17
+ * `harness/terminal-table.ts` `toolCallLimitArm`).
18
18
  *
19
19
  * The running figure is the usage accumulator's local pricing-table estimate
20
20
  * (authoritative billing is the BiDi proxy). That is the same estimation
@@ -30,7 +30,7 @@
30
30
  export declare function costCapExceeded(maxCostUsd: number, estimatedCostUsd: number): boolean;
31
31
  /**
32
32
  * Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
33
- * pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (streaming-terminal.ts): consumers
33
+ * pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (tool-rounds.ts): consumers
34
34
  * that need to distinguish "ran out of cost budget" from other TERMINATED
35
35
  * causes can match on this prefix, because AgentExecutionStatus carries no
36
36
  * structured termination reason. Do not reword without checking consumers.
@@ -13,8 +13,8 @@
13
13
  * same clean-cancel pattern the stall watchdog and first-denial stop use.
14
14
  * Slightly harsher than native by construction; both harnesses terminate with
15
15
  * the same honesty semantics (EXECUTION_TERMINATED, work checkpointed, the
16
- * conversation continues on the next message — the recursion-limit precedent
17
- * in execute-deep-agent/streaming-terminal.ts).
16
+ * conversation continues on the next message — the recursion-limit precedent,
17
+ * `harness/terminal-table.ts` `toolCallLimitArm`).
18
18
  *
19
19
  * The running figure is the usage accumulator's local pricing-table estimate
20
20
  * (authoritative billing is the BiDi proxy). That is the same estimation
@@ -32,7 +32,7 @@ export function costCapExceeded(maxCostUsd, estimatedCostUsd) {
32
32
  }
33
33
  /**
34
34
  * Stable prefix of the cost-limit terminal error. Mirrors the cross-repo
35
- * pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (streaming-terminal.ts): consumers
35
+ * pattern of TOOL_CALL_LIMIT_ERROR_PREFIX (tool-rounds.ts): consumers
36
36
  * that need to distinguish "ran out of cost budget" from other TERMINATED
37
37
  * causes can match on this prefix, because AgentExecutionStatus carries no
38
38
  * structured termination reason. Do not reword without checking consumers.
@@ -2,10 +2,10 @@
2
2
  * Shared interface for proto mutation consumed by side-effect classes
3
3
  * (InlinePublisher, WriteBackCoordinator) and streaming loops.
4
4
  *
5
- * The deep-agent harness implements it on its v2 StatusBuilder and
6
- * V3StatusBuilder; the Cursor harness — which mutates a bare status proto
7
- * with no builder — uses {@link statusProtoWriter}. Side-effect classes
8
- * depend only on this interface, never on a specific implementation.
5
+ * The deep-agent harness implements it on its `V3StatusBuilder`; the Cursor
6
+ * harness — which mutates a bare status proto with no builder — uses
7
+ * {@link statusProtoWriter}. Side-effect classes depend only on this
8
+ * interface, never on a specific implementation.
9
9
  */
10
10
  import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
11
11
  import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
@@ -25,7 +25,7 @@ export interface ExecutionStatusWriter {
25
25
  * concern the direct-mutation style has no use for, so it stays `false`.
26
26
  *
27
27
  * Write-backs upsert by `workspaceEntryName` — the same contract as the
28
- * deep-agent `StatusBuilder.addWriteBack`: each git-backed workspace entry
28
+ * deep-agent `V3StatusBuilder.addWriteBack`: each git-backed workspace entry
29
29
  * carries at most one record, progressing through phases.
30
30
  */
31
31
  export declare function statusProtoWriter(status: AgentExecutionStatus): ExecutionStatusWriter;
@@ -2,10 +2,10 @@
2
2
  * Shared interface for proto mutation consumed by side-effect classes
3
3
  * (InlinePublisher, WriteBackCoordinator) and streaming loops.
4
4
  *
5
- * The deep-agent harness implements it on its v2 StatusBuilder and
6
- * V3StatusBuilder; the Cursor harness — which mutates a bare status proto
7
- * with no builder — uses {@link statusProtoWriter}. Side-effect classes
8
- * depend only on this interface, never on a specific implementation.
5
+ * The deep-agent harness implements it on its `V3StatusBuilder`; the Cursor
6
+ * harness — which mutates a bare status proto with no builder — uses
7
+ * {@link statusProtoWriter}. Side-effect classes depend only on this
8
+ * interface, never on a specific implementation.
9
9
  */
10
10
  /**
11
11
  * An {@link ExecutionStatusWriter} over a bare status proto, for harnesses
@@ -15,7 +15,7 @@
15
15
  * concern the direct-mutation style has no use for, so it stays `false`.
16
16
  *
17
17
  * Write-backs upsert by `workspaceEntryName` — the same contract as the
18
- * deep-agent `StatusBuilder.addWriteBack`: each git-backed workspace entry
18
+ * deep-agent `V3StatusBuilder.addWriteBack`: each git-backed workspace entry
19
19
  * carries at most one record, progressing through phases.
20
20
  */
21
21
  export function statusProtoWriter(status) {
@@ -1,19 +1,20 @@
1
1
  /**
2
2
  * Tier-2 structured-output extraction for a harness turn.
3
3
  *
4
- * Harness-agnostic: the Cursor activity is today's only caller and the turn
5
- * runtime takes it over in S2 M3 (the native harness has no tier 2 today).
4
+ * Harness-agnostic, and called from one place: the turn runtime's epilogue
5
+ * (`harness/run-turn.ts` `extractStructuredOutputFromText`), so both
6
+ * harnesses have it — Cursor since S2 M3, native since S3 M2a (pinned by the
7
+ * native hermetic `structured-output` tier-2 arm since M2b, Q-S3-7).
6
8
  *
7
9
  * When tier-1 text extraction (shared/extract-json.ts) cannot find JSON in
8
10
  * the agent's free-text response, this tier asks an economy-tier LLM to
9
11
  * extract it via withStructuredOutput (function-calling), which guarantees
10
12
  * schema-conformant output through the API's tool-use mechanism.
11
13
  *
12
- * Lives in its own module (rather than inside execute-cursor/index.ts) so
13
- * the LangChain construction path stays out of the Cursor activity's module
14
- * graph until a run actually needs tier 2 index.ts imports this module
15
- * lazily at the call site, mirroring its tier-1 import, which is what
16
- * bundle-slim's deferred evaluation preserves.
14
+ * Lives in its own module so the LangChain construction path stays out of
15
+ * the runtime's module graph until a run actually needs tier 2 — the
16
+ * runtime imports this module lazily at the call site, mirroring its tier-1
17
+ * import, which is what bundle-slim's deferred evaluation preserves.
17
18
  */
18
19
  import type { Config } from "../config.js";
19
20
  /**
@@ -1,19 +1,20 @@
1
1
  /**
2
2
  * Tier-2 structured-output extraction for a harness turn.
3
3
  *
4
- * Harness-agnostic: the Cursor activity is today's only caller and the turn
5
- * runtime takes it over in S2 M3 (the native harness has no tier 2 today).
4
+ * Harness-agnostic, and called from one place: the turn runtime's epilogue
5
+ * (`harness/run-turn.ts` `extractStructuredOutputFromText`), so both
6
+ * harnesses have it — Cursor since S2 M3, native since S3 M2a (pinned by the
7
+ * native hermetic `structured-output` tier-2 arm since M2b, Q-S3-7).
6
8
  *
7
9
  * When tier-1 text extraction (shared/extract-json.ts) cannot find JSON in
8
10
  * the agent's free-text response, this tier asks an economy-tier LLM to
9
11
  * extract it via withStructuredOutput (function-calling), which guarantees
10
12
  * schema-conformant output through the API's tool-use mechanism.
11
13
  *
12
- * Lives in its own module (rather than inside execute-cursor/index.ts) so
13
- * the LangChain construction path stays out of the Cursor activity's module
14
- * graph until a run actually needs tier 2 index.ts imports this module
15
- * lazily at the call site, mirroring its tier-1 import, which is what
16
- * bundle-slim's deferred evaluation preserves.
14
+ * Lives in its own module so the LangChain construction path stays out of
15
+ * the runtime's module graph until a run actually needs tier 2 — the
16
+ * runtime imports this module lazily at the call site, mirroring its tier-1
17
+ * import, which is what bundle-slim's deferred evaluation preserves.
17
18
  */
18
19
  import { getEconomyModel } from "./model-registry.js";
19
20
  import { buildChatModel } from "./model-client.js";
@@ -1 +1 @@
1
- {"version":3,"file":"extract-structured-output.js","sourceRoot":"","sources":["../../src/shared/extract-structured-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,MAA+B,EAC/B,MAAc,EACd,YAAoB;IAEpB,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,SAAS;gBAC3D,IAAI,eAAe,iCAAiC,OAAO,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,cAAc,CAAC;QAC1C,SAAS,EAAE,eAAe;QAC1B,aAAa;QACb,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;QAC9C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;QACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sGAAsG,EAAE;QACnI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"extract-structured-output.js","sourceRoot":"","sources":["../../src/shared/extract-structured-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,MAA+B,EAC/B,MAAc,EACd,YAAoB;IAEpB,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,0CAA0C,QAAQ,SAAS;gBAC3D,IAAI,eAAe,iCAAiC,OAAO,EAAE,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,cAAc,CAAC;QAC1C,SAAS,EAAE,eAAe;QAC1B,aAAa;QACb,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;QAC9C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;QACrC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,sGAAsG,EAAE;QACnI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE;KACzC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC"}
@@ -30,24 +30,7 @@
30
30
  * @since File-Change HITL Redesign (non-git + hybrid mid-run progress / DD-33)
31
31
  */
32
32
  import { type ProgressSubstrate } from "./progress.js";
33
- /**
34
- * A snapshot of the turn's CAS-observed paths, read on each capture:
35
- * - `before`: first-touched paths' pre-turn bytes (`null` = the path did not
36
- * exist before → an ADD). The KEYS are the touched-path set.
37
- * - `blockedSecretPaths`: paths the gate hard-blocked as secret-like — excluded
38
- * from capture.
39
- *
40
- * Deep-agent supplies a synchronous copy of its live `CasCaptureObserver`; Cursor
41
- * supplies a reader over the hook's on-disk sidecar. The reader MUST return an
42
- * atomic snapshot (copy the live map before any await) so a concurrent sub-agent
43
- * write cannot mutate it mid-capture.
44
- */
45
- export interface CasTouchedSnapshot {
46
- readonly before: ReadonlyMap<string, Uint8Array | null>;
47
- readonly blockedSecretPaths: ReadonlySet<string>;
48
- }
49
- /** Produces a {@link CasTouchedSnapshot} for one capture. */
50
- export type CasTouchedReader = () => CasTouchedSnapshot | Promise<CasTouchedSnapshot>;
33
+ import type { CasTouchedReader } from "./cas-touched.js";
51
34
  /**
52
35
  * The CAS progress substrate. Reads the touched set on each capture, computes
53
36
  * kind + `+N −M` for the bounded read-prefix via {@link classifyCasChange}, and
@@ -36,6 +36,10 @@ import { classifyCasChange } from "./cas-substrate.js";
36
36
  import { LINE_COUNT_MAX_BYTES } from "./line-counts.js";
37
37
  import { PROGRESS_MAX_ENTRIES, } from "./progress.js";
38
38
  import { partitionIgnoredPathsBySecret } from "./secret-paths.js";
39
+ // The snapshot this substrate reads (`CasTouchedSnapshot`) and the reader that
40
+ // produces it live in `cas-touched.ts`, the one home of "what the engine
41
+ // observed touching CAS-owned paths": the turn-boundary capture reads the same
42
+ // snapshot, so neither consumer owns the shape.
39
43
  /**
40
44
  * The CAS progress substrate. Reads the touched set on each capture, computes
41
45
  * kind + `+N −M` for the bounded read-prefix via {@link classifyCasChange}, and
@@ -1 +1 @@
1
- {"version":3,"file":"cas-progress.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cas-progress.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-progress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * What the engine observed touching CAS-owned paths this turn — the one fact
3
+ * about a turn's file changes that the runtime cannot read from the tree and
4
+ * the engine cannot help knowing.
5
+ *
6
+ * In a git work tree the tracked changes are a `git diff` against the pinned
7
+ * baseline; the gitignored ones are invisible to git, and in a non-git
8
+ * workspace EVERY change is. For those paths the only record of the
9
+ * pre-turn bytes is the one taken at mutation time, by whatever sits between
10
+ * the engine and the disk: the deep-agent's `CasCaptureObserver` (fed by its
11
+ * filesystem backend and its approval gate) or the Cursor hook's on-disk
12
+ * sidecar. Both produce this one snapshot shape, and both consumers read it:
13
+ * the mid-run progress slice (`cas-progress.ts`) and the turn-boundary
14
+ * capture ({@link buildCasTurnCaptures}), which composes it into the
15
+ * {@link CasPathCapture}s the CAS substrate stores.
16
+ *
17
+ * Until S3 M4 each harness carried its own copy of `buildCasTurnCaptures`
18
+ * beside its observation source; the copies were byte-near-identical
19
+ * (F-M4-P6) and now live here once. The AFTER bytes are always re-read from
20
+ * disk at composition time (the authoritative net result of the turn), so
21
+ * many edits to one path collapse to one before/after.
22
+ */
23
+ import type { FileCaptureClass } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
24
+ import type { CasPathCapture } from "./cas-substrate.js";
25
+ /**
26
+ * The CAS-owned paths touched so far this turn: pre-turn bytes per
27
+ * first-touched path (`null` = the path did not exist → an ADD) and the paths
28
+ * the gate hard-blocked as secret-like (never applied, never captured; the
29
+ * boundary authors a content-less entry for each). Keyed workspace-root-
30
+ * relative. A reader MUST return an atomic snapshot (copy the live map before
31
+ * any await) so a concurrent sub-agent write cannot mutate it mid-capture.
32
+ */
33
+ export interface CasTouchedSnapshot {
34
+ readonly before: ReadonlyMap<string, Uint8Array | null>;
35
+ readonly blockedSecretPaths: ReadonlySet<string>;
36
+ }
37
+ /** Produces a {@link CasTouchedSnapshot} for one capture. */
38
+ export type CasTouchedReader = () => CasTouchedSnapshot | Promise<CasTouchedSnapshot>;
39
+ /**
40
+ * Compose the turn's CAS captures from what the engine observed: for each
41
+ * observed path the before-bytes come from the snapshot and the after-bytes
42
+ * are re-read from disk now (`null` = the file is gone). Secret-like paths are
43
+ * diverted to `unreviewablePaths` and their before-bytes dropped — the
44
+ * fail-closed backstop that holds even under the global bypass, where the
45
+ * gate did not run to block them up front ({@link partitionIgnoredPathsBySecret}
46
+ * is the one decision; this shell performs only the IO for the capturable
47
+ * set). `captureClass` is the turn's CAS substrate class — GIT_IGNORED_CAPTURED
48
+ * for a git work tree's ignored paths, NON_GIT_CAS for a non-git workspace
49
+ * (where these ARE the whole change set) — so each captured path carries its
50
+ * true provenance. An empty snapshot yields empty results and leaves the
51
+ * shared capture unchanged.
52
+ */
53
+ export declare function buildCasTurnCaptures(snapshot: CasTouchedSnapshot, workspaceRoot: string, captureClass: FileCaptureClass): Promise<{
54
+ casCaptures: CasPathCapture[];
55
+ unreviewablePaths: string[];
56
+ }>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * What the engine observed touching CAS-owned paths this turn — the one fact
3
+ * about a turn's file changes that the runtime cannot read from the tree and
4
+ * the engine cannot help knowing.
5
+ *
6
+ * In a git work tree the tracked changes are a `git diff` against the pinned
7
+ * baseline; the gitignored ones are invisible to git, and in a non-git
8
+ * workspace EVERY change is. For those paths the only record of the
9
+ * pre-turn bytes is the one taken at mutation time, by whatever sits between
10
+ * the engine and the disk: the deep-agent's `CasCaptureObserver` (fed by its
11
+ * filesystem backend and its approval gate) or the Cursor hook's on-disk
12
+ * sidecar. Both produce this one snapshot shape, and both consumers read it:
13
+ * the mid-run progress slice (`cas-progress.ts`) and the turn-boundary
14
+ * capture ({@link buildCasTurnCaptures}), which composes it into the
15
+ * {@link CasPathCapture}s the CAS substrate stores.
16
+ *
17
+ * Until S3 M4 each harness carried its own copy of `buildCasTurnCaptures`
18
+ * beside its observation source; the copies were byte-near-identical
19
+ * (F-M4-P6) and now live here once. The AFTER bytes are always re-read from
20
+ * disk at composition time (the authoritative net result of the turn), so
21
+ * many edits to one path collapse to one before/after.
22
+ */
23
+ import { readFile } from "node:fs/promises";
24
+ import { join } from "node:path";
25
+ import { partitionIgnoredPathsBySecret } from "./secret-paths.js";
26
+ /**
27
+ * Compose the turn's CAS captures from what the engine observed: for each
28
+ * observed path the before-bytes come from the snapshot and the after-bytes
29
+ * are re-read from disk now (`null` = the file is gone). Secret-like paths are
30
+ * diverted to `unreviewablePaths` and their before-bytes dropped — the
31
+ * fail-closed backstop that holds even under the global bypass, where the
32
+ * gate did not run to block them up front ({@link partitionIgnoredPathsBySecret}
33
+ * is the one decision; this shell performs only the IO for the capturable
34
+ * set). `captureClass` is the turn's CAS substrate class — GIT_IGNORED_CAPTURED
35
+ * for a git work tree's ignored paths, NON_GIT_CAS for a non-git workspace
36
+ * (where these ARE the whole change set) — so each captured path carries its
37
+ * true provenance. An empty snapshot yields empty results and leaves the
38
+ * shared capture unchanged.
39
+ */
40
+ export async function buildCasTurnCaptures(snapshot, workspaceRoot, captureClass) {
41
+ const { capturablePaths, unreviewablePaths } = partitionIgnoredPathsBySecret(snapshot.before.keys(), snapshot.blockedSecretPaths);
42
+ const casCaptures = [];
43
+ for (const relPath of capturablePaths) {
44
+ const after = await readFileOrNull(join(workspaceRoot, relPath));
45
+ casCaptures.push({
46
+ path: relPath,
47
+ before: snapshot.before.get(relPath) ?? null,
48
+ after,
49
+ captureClass,
50
+ });
51
+ }
52
+ return { casCaptures, unreviewablePaths: [...unreviewablePaths] };
53
+ }
54
+ /** Raw bytes of a file, or `null` when it does not exist (a DELETE, or an ADD since removed). */
55
+ async function readFileOrNull(absolutePath) {
56
+ try {
57
+ return await readFile(absolutePath);
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ //# sourceMappingURL=cas-touched.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cas-touched.js","sourceRoot":"","sources":["../../../src/shared/filereview/cas-touched.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAkBlE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAA4B,EAC5B,aAAqB,EACrB,YAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,6BAA6B,CAC1E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EACtB,QAAQ,CAAC,kBAAkB,CAC5B,CAAC;IACF,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;YAC5C,KAAK;YACL,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,cAAc,CAAC,YAAoB;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -8,7 +8,8 @@ export { appendFileReviewEvents, buildBaselineCapturedEvent, buildCandidateCaptu
8
8
  export { applyCaptureDecisions, captureBaselineToLedger, captureCandidateToLedger, type CaptureResumeResult, } from "./capture.js";
9
9
  export { captureProgressDelta, isGitWorkTree, type GitProgressDelta, type GitProgressEntry, } from "./git-substrate.js";
10
10
  export { buildFileChangeProgress, captureFileChangeProgress, createGitProgressSubstrate, createHybridProgressSubstrate, newProgressCaptureState, PROGRESS_CAPTURE_MIN_INTERVAL_MS, PROGRESS_MAX_ENTRIES, shouldCaptureProgress, type ProgressCapture, type ProgressCaptureState, type ProgressDelta, type ProgressEntry, type ProgressSubstrate, } from "./progress.js";
11
- export { createCasProgressSubstrate, type CasTouchedReader, type CasTouchedSnapshot, } from "./cas-progress.js";
11
+ export { createCasProgressSubstrate } from "./cas-progress.js";
12
+ export { buildCasTurnCaptures, type CasTouchedReader, type CasTouchedSnapshot, } from "./cas-touched.js";
12
13
  export { countLineChanges, LINE_COUNT_MAX_BYTES, type LineChangeCounts, } from "./line-counts.js";
13
14
  export { applyCasApproved, casBlobKey, casBlobReader, casManifestKey, classifyCasChange, loadCasManifest, restoreCasToBaseline, snapshotCasChangeSet, type BlobReader, type CasBlobRef, type CasCapturedFile, type CasChangeClassification, type CasManifest, type CasPathCapture, type CasSnapshotRef, } from "./cas-substrate.js";
14
15
  export { isSecretLikePath, partitionIgnoredPathsBySecret, SECRET_BASENAME_PATTERNS, SECRET_PATH_PATTERNS, type CasSecretPartition, } from "./secret-paths.js";
@@ -8,7 +8,8 @@ export { appendFileReviewEvents, buildBaselineCapturedEvent, buildCandidateCaptu
8
8
  export { applyCaptureDecisions, captureBaselineToLedger, captureCandidateToLedger, } from "./capture.js";
9
9
  export { captureProgressDelta, isGitWorkTree, } from "./git-substrate.js";
10
10
  export { buildFileChangeProgress, captureFileChangeProgress, createGitProgressSubstrate, createHybridProgressSubstrate, newProgressCaptureState, PROGRESS_CAPTURE_MIN_INTERVAL_MS, PROGRESS_MAX_ENTRIES, shouldCaptureProgress, } from "./progress.js";
11
- export { createCasProgressSubstrate, } from "./cas-progress.js";
11
+ export { createCasProgressSubstrate } from "./cas-progress.js";
12
+ export { buildCasTurnCaptures, } from "./cas-touched.js";
12
13
  export { countLineChanges, LINE_COUNT_MAX_BYTES, } from "./line-counts.js";
13
14
  export { applyCasApproved, casBlobKey, casBlobReader, casManifestKey, classifyCasChange, loadCasManifest, restoreCasToBaseline, snapshotCasChangeSet, } from "./cas-substrate.js";
14
15
  export { isSecretLikePath, partitionIgnoredPathsBySecret, SECRET_BASENAME_PATTERNS, SECRET_PATH_PATTERNS, } from "./secret-paths.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/filereview/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,0BAA0B,GAG3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GAQrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/filereview/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,SAAS,GAEV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,OAAO,EACP,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,aAAa,GAGd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,oBAAoB,EACpB,qBAAqB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,oBAAoB,GAGrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GAQrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,GAErB,MAAM,mBAAmB,CAAC"}
@@ -3,9 +3,8 @@
3
3
  * ResolvedMcpServer format.
4
4
  *
5
5
  * THE single resolver for both harnesses (oss#387 retired the Cursor
6
- * harness's near-duplicate): the deep-agent harness
7
- * (execute-deep-agent/setup.ts), the Cursor harness
8
- * (execute-cursor/index.ts), the connect backfill
6
+ * harness's near-duplicate): the turn runtime's MCP phase
7
+ * (harness/turn-context.ts, serving both adapters), the connect backfill
9
8
  * (shared/connect-backfill.ts), and the discovery activity
10
9
  * (activities/discover-mcp-server.ts, via mcpServerToResolved) all consume
11
10
  * it. Each harness maps the result into its SDK format at the last hop:
@@ -84,8 +83,8 @@ export declare function mcpServerToResolved(server: McpServer, slug: string, env
84
83
  * - If both reference the same slug, session-level takes precedence —
85
84
  * the WHOLE usage, including enabled_tools and approval overrides
86
85
  *
87
- * Shared by both harnesses (blueprint-resolver.ts for Cursor,
88
- * execute-deep-agent/setup.ts for the native harness) so a duplicate slug
86
+ * Shared by both harnesses (through blueprint-resolver.ts, the turn
87
+ * runtime's blueprint phase) so a duplicate slug
89
88
  * resolves identically everywhere: exactly one usage per server, whose
90
89
  * enabled_tools is the one the enforcement filter honors.
91
90
  */
@@ -3,9 +3,8 @@
3
3
  * ResolvedMcpServer format.
4
4
  *
5
5
  * THE single resolver for both harnesses (oss#387 retired the Cursor
6
- * harness's near-duplicate): the deep-agent harness
7
- * (execute-deep-agent/setup.ts), the Cursor harness
8
- * (execute-cursor/index.ts), the connect backfill
6
+ * harness's near-duplicate): the turn runtime's MCP phase
7
+ * (harness/turn-context.ts, serving both adapters), the connect backfill
9
8
  * (shared/connect-backfill.ts), and the discovery activity
10
9
  * (activities/discover-mcp-server.ts, via mcpServerToResolved) all consume
11
10
  * it. Each harness maps the result into its SDK format at the last hop:
@@ -125,8 +124,8 @@ export function mcpServerToResolved(server, slug, envVars, usageEnabledTools, us
125
124
  * - If both reference the same slug, session-level takes precedence —
126
125
  * the WHOLE usage, including enabled_tools and approval overrides
127
126
  *
128
- * Shared by both harnesses (blueprint-resolver.ts for Cursor,
129
- * execute-deep-agent/setup.ts for the native harness) so a duplicate slug
127
+ * Shared by both harnesses (through blueprint-resolver.ts, the turn
128
+ * runtime's blueprint phase) so a duplicate slug
130
129
  * resolves identically everywhere: exactly one usage per server, whose
131
130
  * enabled_tools is the one the enforcement filter honors.
132
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-resolver.js","sourceRoot":"","sources":["../../src/shared/mcp-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-resolver.js","sourceRoot":"","sources":["../../src/shared/mcp-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * Streaming persist decision for a harness turn.
3
3
  *
4
- * Harness-agnostic: the Cursor stream loop is today's only caller, the turn
5
- * runtime takes it over in S2 M3, and S3 retires the native twin below.
6
- *
7
- * Mirrors the native deep-agent harness (execute-deep-agent/streaming.ts):
4
+ * Harness-agnostic, and both adapters' stream loops read it
5
+ * (`execute-cursor/turn-stream.ts`, `execute-deep-agent/turn-stream.ts`; the
6
+ * native orchestrator's own copy of the rule retired with it at S3 M2b):
8
7
  * `shouldPersist = forceFlush || scheduler.shouldSendUpdate(eventCount)`.
9
8
  * Both harnesses thus share one cadence model — discrete state changes flush
10
9
  * immediately, high-frequency token deltas ride a bounded time cadence.
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * Streaming persist decision for a harness turn.
3
3
  *
4
- * Harness-agnostic: the Cursor stream loop is today's only caller, the turn
5
- * runtime takes it over in S2 M3, and S3 retires the native twin below.
6
- *
7
- * Mirrors the native deep-agent harness (execute-deep-agent/streaming.ts):
4
+ * Harness-agnostic, and both adapters' stream loops read it
5
+ * (`execute-cursor/turn-stream.ts`, `execute-deep-agent/turn-stream.ts`; the
6
+ * native orchestrator's own copy of the rule retired with it at S3 M2b):
8
7
  * `shouldPersist = forceFlush || scheduler.shouldSendUpdate(eventCount)`.
9
8
  * Both harnesses thus share one cadence model — discrete state changes flush
10
9
  * immediately, high-frequency token deltas ride a bounded time cadence.
@@ -1 +1 @@
1
- {"version":3,"file":"persist-decision.js","sourceRoot":"","sources":["../../src/shared/persist-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoBH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA0B,EAC1B,SAAmC,EACnC,UAAkB,EAClB,KAAc;IAEd,MAAM,UAAU,GACd,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAC3E,OAAO,UAAU,IAAI,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"persist-decision.js","sourceRoot":"","sources":["../../src/shared/persist-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA0B,EAC1B,SAAmC,EACnC,UAAkB,EAClB,KAAc;IAEd,MAAM,UAAU,GACd,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;IAC3E,OAAO,UAAU,IAAI,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
@@ -22,12 +22,12 @@
22
22
  * (shared/workspace/stigmer-link.ts), an in-root path string in either
23
23
  * dialect.
24
24
  *
25
- * Applied in execute-deep-agent/setup.ts to the parent graph AND threaded
25
+ * Applied in execute-deep-agent/turn-setup.ts to the parent graph AND threaded
26
26
  * into every compiled sub-agent graph: deepagents' parent-permission
27
27
  * inheritance covers only spec-style sub-agents, and ours are pre-built
28
28
  * CompiledSubAgents, so each sub-agent graph must carry the rules itself
29
29
  * (issue #255). Kept as its own side-effect-free module so tests can pin the
30
- * production rules without dragging in setup.ts's import graph.
30
+ * production rules without dragging in the engine build's import graph.
31
31
  *
32
32
  * Invariant: never combine these rules with a shell-capable (sandbox)
33
33
  * backend — deepagents rejects that pairing at graph construction (see the
@@ -22,12 +22,12 @@
22
22
  * (shared/workspace/stigmer-link.ts), an in-root path string in either
23
23
  * dialect.
24
24
  *
25
- * Applied in execute-deep-agent/setup.ts to the parent graph AND threaded
25
+ * Applied in execute-deep-agent/turn-setup.ts to the parent graph AND threaded
26
26
  * into every compiled sub-agent graph: deepagents' parent-permission
27
27
  * inheritance covers only spec-style sub-agents, and ours are pre-built
28
28
  * CompiledSubAgents, so each sub-agent graph must carry the rules itself
29
29
  * (issue #255). Kept as its own side-effect-free module so tests can pin the
30
- * production rules without dragging in setup.ts's import graph.
30
+ * production rules without dragging in the engine build's import graph.
31
31
  *
32
32
  * Invariant: never combine these rules with a shell-capable (sandbox)
33
33
  * backend — deepagents rejects that pairing at graph construction (see the
@@ -16,7 +16,7 @@
16
16
  * is house style; the words are shared.
17
17
  *
18
18
  * Enforcement is separate from instruction: the native harness ALSO denies
19
- * filesystem writes at the tool layer (see execute-deep-agent/setup.ts), so
19
+ * filesystem writes at the tool layer (see execute-deep-agent/turn-setup.ts), so
20
20
  * for it this directive is guidance toward a well-formed plan, not the
21
21
  * enforcement mechanism. The Cursor harness has no tool-level lever (the
22
22
  * Cursor SDK exposes no mode parameter), so there this directive is the
@@ -16,7 +16,7 @@
16
16
  * is house style; the words are shared.
17
17
  *
18
18
  * Enforcement is separate from instruction: the native harness ALSO denies
19
- * filesystem writes at the tool layer (see execute-deep-agent/setup.ts), so
19
+ * filesystem writes at the tool layer (see execute-deep-agent/turn-setup.ts), so
20
20
  * for it this directive is guidance toward a well-formed plan, not the
21
21
  * enforcement mechanism. The Cursor harness has no tool-level lever (the
22
22
  * Cursor SDK exposes no mode parameter), so there this directive is the