@stigmer/runner 3.14.1 → 3.15.1

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 (320) hide show
  1. package/dist/.build-fingerprint +1 -1
  2. package/dist/__test-utils__/execution-record-fixture.d.ts +47 -0
  3. package/dist/__test-utils__/execution-record-fixture.js +68 -0
  4. package/dist/__test-utils__/execution-record-fixture.js.map +1 -0
  5. package/dist/__test-utils__/harness-contract/types.d.ts +166 -0
  6. package/dist/__test-utils__/harness-contract/types.js +49 -0
  7. package/dist/__test-utils__/harness-contract/types.js.map +1 -0
  8. package/dist/__test-utils__/hermetic-activity.d.ts +28 -5
  9. package/dist/__test-utils__/hermetic-activity.js +23 -7
  10. package/dist/__test-utils__/hermetic-activity.js.map +1 -1
  11. package/dist/__test-utils__/mock-workspace.d.ts +15 -0
  12. package/dist/__test-utils__/mock-workspace.js +21 -0
  13. package/dist/__test-utils__/mock-workspace.js.map +1 -0
  14. package/dist/__test-utils__/model-registry-fixture.d.ts +56 -0
  15. package/dist/__test-utils__/model-registry-fixture.js +66 -0
  16. package/dist/__test-utils__/model-registry-fixture.js.map +1 -0
  17. package/dist/__test-utils__/turn-input-fixture.d.ts +60 -0
  18. package/dist/__test-utils__/turn-input-fixture.js +118 -0
  19. package/dist/__test-utils__/turn-input-fixture.js.map +1 -0
  20. package/dist/activities/execute-cursor/__test-utils__/contract-subject.d.ts +107 -0
  21. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +344 -0
  22. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +1 -0
  23. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.d.ts +20 -0
  24. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js +58 -0
  25. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js.map +1 -1
  26. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js +2 -32
  27. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js.map +1 -1
  28. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +38 -62
  29. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +47 -121
  30. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
  31. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.d.ts +17 -1
  32. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js +27 -4
  33. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js.map +1 -1
  34. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.d.ts +52 -11
  35. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js +66 -7
  36. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js.map +1 -1
  37. package/dist/activities/execute-cursor/adapter.d.ts +55 -0
  38. package/dist/activities/execute-cursor/adapter.js +119 -0
  39. package/dist/activities/execute-cursor/adapter.js.map +1 -0
  40. package/dist/activities/execute-cursor/approval-state.d.ts +2 -2
  41. package/dist/activities/execute-cursor/approval-state.js.map +1 -1
  42. package/dist/activities/execute-cursor/capture-flow.d.ts +15 -30
  43. package/dist/activities/execute-cursor/capture-flow.js +17 -26
  44. package/dist/activities/execute-cursor/capture-flow.js.map +1 -1
  45. package/dist/activities/execute-cursor/cursor-capabilities.d.ts +23 -0
  46. package/dist/activities/execute-cursor/cursor-capabilities.js +33 -0
  47. package/dist/activities/execute-cursor/cursor-capabilities.js.map +1 -0
  48. package/dist/activities/execute-cursor/cursor-mcp-config.d.ts +2 -2
  49. package/dist/activities/execute-cursor/cursor-mcp-config.js.map +1 -1
  50. package/dist/activities/execute-cursor/fetch-interceptor.d.ts +15 -25
  51. package/dist/activities/execute-cursor/fetch-interceptor.js +39 -33
  52. package/dist/activities/execute-cursor/fetch-interceptor.js.map +1 -1
  53. package/dist/activities/execute-cursor/http2-interceptor.d.ts +21 -17
  54. package/dist/activities/execute-cursor/http2-interceptor.js +38 -31
  55. package/dist/activities/execute-cursor/http2-interceptor.js.map +1 -1
  56. package/dist/activities/execute-cursor/message-translator.d.ts +28 -19
  57. package/dist/activities/execute-cursor/message-translator.js +76 -27
  58. package/dist/activities/execute-cursor/message-translator.js.map +1 -1
  59. package/dist/activities/execute-cursor/prompt-builder.d.ts +180 -11
  60. package/dist/activities/execute-cursor/prompt-builder.js +171 -0
  61. package/dist/activities/execute-cursor/prompt-builder.js.map +1 -1
  62. package/dist/activities/execute-cursor/rejection-capture.d.ts +3 -6
  63. package/dist/activities/execute-cursor/rejection-capture.js +5 -7
  64. package/dist/activities/execute-cursor/rejection-capture.js.map +1 -1
  65. package/dist/activities/execute-cursor/session-lifecycle.d.ts +1 -4
  66. package/dist/activities/execute-cursor/session-lifecycle.js.map +1 -1
  67. package/dist/activities/execute-cursor/turn-boundary.d.ts +1 -1
  68. package/dist/activities/execute-cursor/turn-settle.d.ts +49 -0
  69. package/dist/activities/execute-cursor/turn-settle.js +507 -0
  70. package/dist/activities/execute-cursor/turn-settle.js.map +1 -0
  71. package/dist/activities/execute-cursor/turn-setup.d.ts +173 -0
  72. package/dist/activities/execute-cursor/turn-setup.js +496 -0
  73. package/dist/activities/execute-cursor/turn-setup.js.map +1 -0
  74. package/dist/activities/execute-cursor/turn-stream.d.ts +41 -71
  75. package/dist/activities/execute-cursor/turn-stream.js +70 -135
  76. package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
  77. package/dist/activities/execute-cursor/turn.d.ts +43 -0
  78. package/dist/activities/execute-cursor/turn.js +222 -0
  79. package/dist/activities/execute-cursor/turn.js.map +1 -0
  80. package/dist/activities/execute-cursor/usage-pricing.d.ts +38 -0
  81. package/dist/activities/execute-cursor/usage-pricing.js +50 -0
  82. package/dist/activities/execute-cursor/usage-pricing.js.map +1 -0
  83. package/dist/activities/execute-deep-agent/approval-file-change.d.ts +1 -1
  84. package/dist/activities/execute-deep-agent/approval-file-change.js +1 -1
  85. package/dist/activities/execute-deep-agent/environment.js +1 -1
  86. package/dist/activities/execute-deep-agent/environment.js.map +1 -1
  87. package/dist/activities/execute-deep-agent/setup.js +3 -2
  88. package/dist/activities/execute-deep-agent/setup.js.map +1 -1
  89. package/dist/activities/hydrate-workflow-execution.js +1 -1
  90. package/dist/activities/hydrate-workflow-execution.js.map +1 -1
  91. package/dist/config.d.ts +15 -0
  92. package/dist/config.js.map +1 -1
  93. package/dist/harness/capabilities.d.ts +16 -0
  94. package/dist/harness/capabilities.js +1 -0
  95. package/dist/harness/capabilities.js.map +1 -1
  96. package/dist/harness/persist-chokepoint.d.ts +74 -0
  97. package/dist/harness/persist-chokepoint.js +88 -0
  98. package/dist/harness/persist-chokepoint.js.map +1 -0
  99. package/dist/harness/registry.d.ts +44 -5
  100. package/dist/harness/registry.js +61 -5
  101. package/dist/harness/registry.js.map +1 -1
  102. package/dist/harness/run-turn.d.ts +53 -0
  103. package/dist/harness/run-turn.js +528 -0
  104. package/dist/harness/run-turn.js.map +1 -0
  105. package/dist/harness/stop-controller.d.ts +50 -0
  106. package/dist/harness/stop-controller.js +62 -0
  107. package/dist/harness/stop-controller.js.map +1 -0
  108. package/dist/harness/terminal-table.d.ts +141 -0
  109. package/dist/harness/terminal-table.js +239 -0
  110. package/dist/harness/terminal-table.js.map +1 -0
  111. package/dist/harness/turn-context.d.ts +523 -0
  112. package/dist/harness/turn-context.js +739 -0
  113. package/dist/harness/turn-context.js.map +1 -0
  114. package/dist/harness/types.d.ts +232 -52
  115. package/dist/harness/types.js +17 -8
  116. package/dist/harness/types.js.map +1 -1
  117. package/dist/harness/usage-accumulator.d.ts +68 -0
  118. package/dist/harness/usage-accumulator.js +101 -0
  119. package/dist/harness/usage-accumulator.js.map +1 -0
  120. package/dist/harness-adapters.d.ts +27 -0
  121. package/dist/harness-adapters.js +28 -0
  122. package/dist/harness-adapters.js.map +1 -0
  123. package/dist/main.js.map +1 -1
  124. package/dist/runner-manager.js +64 -48
  125. package/dist/runner-manager.js.map +1 -1
  126. package/dist/runner.d.ts +5 -4
  127. package/dist/runner.js +65 -64
  128. package/dist/runner.js.map +1 -1
  129. package/dist/shared/approval-policy.d.ts +1 -1
  130. package/dist/shared/approval-policy.js.map +1 -1
  131. package/dist/{activities/execute-cursor → shared}/attachment-resolver.d.ts +2 -2
  132. package/dist/{activities/execute-cursor → shared}/attachment-resolver.js +5 -5
  133. package/dist/shared/attachment-resolver.js.map +1 -0
  134. package/dist/{activities/execute-cursor → shared}/blueprint-resolver.d.ts +7 -5
  135. package/dist/{activities/execute-cursor → shared}/blueprint-resolver.js +3 -63
  136. package/dist/shared/blueprint-resolver.js.map +1 -0
  137. package/dist/shared/channel-attachment.d.ts +1 -1
  138. package/dist/shared/channel-attachment.js.map +1 -1
  139. package/dist/{activities/execute-cursor → shared}/cost-guard.d.ts +5 -1
  140. package/dist/{activities/execute-cursor → shared}/cost-guard.js +5 -1
  141. package/dist/shared/cost-guard.js.map +1 -0
  142. package/dist/{activities/execute-cursor → shared}/env-resolver.d.ts +1 -1
  143. package/dist/shared/env-resolver.js.map +1 -0
  144. package/dist/{activities/execute-cursor → shared}/exact-apply.d.ts +1 -1
  145. package/dist/{activities/execute-cursor → shared}/exact-apply.js +6 -6
  146. package/dist/shared/exact-apply.js.map +1 -0
  147. package/dist/shared/execution-context.d.ts +35 -0
  148. package/dist/shared/execution-context.js +38 -0
  149. package/dist/shared/execution-context.js.map +1 -0
  150. package/dist/{activities/execute-cursor → shared}/extract-structured-output.d.ts +5 -2
  151. package/dist/{activities/execute-cursor → shared}/extract-structured-output.js +9 -6
  152. package/dist/shared/extract-structured-output.js.map +1 -0
  153. package/dist/shared/filereview/capture.d.ts +1 -1
  154. package/dist/shared/filereview/capture.js +1 -1
  155. package/dist/shared/heartbeat.d.ts +13 -11
  156. package/dist/shared/heartbeat.js +14 -29
  157. package/dist/shared/heartbeat.js.map +1 -1
  158. package/dist/{activities/execute-cursor → shared}/persist-decision.d.ts +5 -2
  159. package/dist/{activities/execute-cursor → shared}/persist-decision.js +4 -1
  160. package/dist/shared/persist-decision.js.map +1 -0
  161. package/dist/{activities/execute-cursor → shared}/skill-resolver.d.ts +16 -3
  162. package/dist/{activities/execute-cursor → shared}/skill-resolver.js +12 -4
  163. package/dist/shared/skill-resolver.js.map +1 -0
  164. package/dist/shared/subagent-rows.d.ts +21 -0
  165. package/dist/shared/subagent-rows.js +34 -0
  166. package/dist/shared/subagent-rows.js.map +1 -0
  167. package/dist/shared/worker-shutdown.d.ts +43 -16
  168. package/dist/shared/worker-shutdown.js +28 -13
  169. package/dist/shared/worker-shutdown.js.map +1 -1
  170. package/dist/shared/workspace/platform-dir.d.ts +1 -1
  171. package/dist/shared/workspace/platform-dir.js +1 -1
  172. package/dist/shared/workspace/session-provision.d.ts +54 -0
  173. package/dist/{activities/execute-cursor/workspace-provision.js → shared/workspace/session-provision.js} +15 -12
  174. package/dist/shared/workspace/session-provision.js.map +1 -0
  175. package/package.json +4 -4
  176. package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +110 -14
  177. package/src/__test-utils__/execution-record-fixture.ts +104 -0
  178. package/src/__test-utils__/harness-boot-order-child.ts +58 -0
  179. package/src/__test-utils__/harness-contract/contract.ts +128 -83
  180. package/src/__test-utils__/harness-contract/recording-sink.ts +15 -4
  181. package/src/__test-utils__/harness-contract/runtime-contract.ts +666 -0
  182. package/src/__test-utils__/harness-contract/scripted-adapter.ts +92 -32
  183. package/src/__test-utils__/harness-contract/types.ts +85 -9
  184. package/src/__test-utils__/hermetic-activity.ts +33 -8
  185. package/src/__test-utils__/model-registry-fixture.ts +72 -0
  186. package/src/__test-utils__/module-specifiers.ts +82 -0
  187. package/src/__test-utils__/turn-input-fixture.ts +155 -0
  188. package/src/__tests__/harness-boot-order.test.ts +77 -0
  189. package/src/__tests__/harness-contract.test.ts +7 -5
  190. package/src/__tests__/runner-manager.test.ts +18 -0
  191. package/src/activities/execute-cursor/__test-utils__/__tests__/scripted-double.test.ts +102 -0
  192. package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +396 -0
  193. package/src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts +66 -0
  194. package/src/activities/execute-cursor/__test-utils__/gateway-substrate.ts +2 -43
  195. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +65 -145
  196. package/src/activities/execute-cursor/__test-utils__/scripted-agent.ts +30 -4
  197. package/src/activities/execute-cursor/__test-utils__/scripted-sdk.ts +96 -8
  198. package/src/activities/execute-cursor/__tests__/adapter-is-temporal-free.test.ts +45 -0
  199. package/src/activities/execute-cursor/__tests__/approval-decisions-agree.test.ts +90 -0
  200. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +7 -8
  201. package/src/activities/execute-cursor/__tests__/capture-flow.test.ts +28 -1
  202. package/src/activities/execute-cursor/__tests__/deny-gate-exact-apply.test.ts +1 -1
  203. package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +64 -6
  204. package/src/activities/execute-cursor/__tests__/hermetic/deny-and-retry.test.ts +1 -1
  205. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +1 -1
  206. package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.status.json +53 -0
  207. package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.status.json +1 -6
  208. package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.status.json +56 -0
  209. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.status.json +48 -0
  210. package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.status.json +18 -0
  211. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.status.json +36 -0
  212. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.status.json +37 -0
  213. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.status.json +38 -0
  214. package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.status.json +59 -0
  215. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +79 -0
  216. package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.status.json +2 -7
  217. package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +170 -0
  218. package/src/activities/execute-cursor/__tests__/hermetic/pause-vs-shutdown.test.ts +22 -18
  219. package/src/activities/execute-cursor/__tests__/hermetic/plain-turn.test.ts +1 -1
  220. package/src/activities/execute-cursor/__tests__/hermetic/recovery-fresh-agent.test.ts +1 -1
  221. package/src/activities/execute-cursor/__tests__/hermetic/run-wait-arms.test.ts +286 -0
  222. package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +332 -0
  223. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +193 -0
  224. package/src/activities/execute-cursor/__tests__/hermetic/tool-call.test.ts +1 -1
  225. package/src/activities/execute-cursor/__tests__/hermetic/unattributed-hook-block.test.ts +185 -0
  226. package/src/activities/execute-cursor/__tests__/hermetic/workspace-lock-timeout.test.ts +151 -0
  227. package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +65 -35
  228. package/src/activities/execute-cursor/__tests__/message-translator.test.ts +0 -40
  229. package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +171 -0
  230. package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +118 -243
  231. package/src/activities/execute-cursor/__tests__/usage-pricing.test.ts +84 -0
  232. package/src/activities/execute-cursor/adapter.ts +138 -0
  233. package/src/activities/execute-cursor/approval-state.ts +2 -2
  234. package/src/activities/execute-cursor/capture-flow.ts +18 -41
  235. package/src/activities/execute-cursor/cursor-capabilities.ts +35 -0
  236. package/src/activities/execute-cursor/cursor-mcp-config.ts +2 -2
  237. package/src/activities/execute-cursor/fetch-interceptor.ts +48 -45
  238. package/src/activities/execute-cursor/http2-interceptor.ts +47 -34
  239. package/src/activities/execute-cursor/message-translator.ts +90 -45
  240. package/src/activities/execute-cursor/prompt-builder.ts +327 -12
  241. package/src/activities/execute-cursor/rejection-capture.ts +5 -12
  242. package/src/activities/execute-cursor/session-lifecycle.ts +1 -5
  243. package/src/activities/execute-cursor/turn-boundary.ts +1 -1
  244. package/src/activities/execute-cursor/turn-settle.ts +601 -0
  245. package/src/activities/execute-cursor/turn-setup.ts +645 -0
  246. package/src/activities/execute-cursor/turn-stream.ts +84 -210
  247. package/src/activities/execute-cursor/turn.ts +240 -0
  248. package/src/activities/execute-cursor/usage-pricing.ts +67 -0
  249. package/src/activities/execute-deep-agent/approval-file-change.ts +1 -1
  250. package/src/activities/execute-deep-agent/environment.ts +1 -1
  251. package/src/activities/execute-deep-agent/setup.ts +3 -2
  252. package/src/activities/hydrate-workflow-execution.ts +1 -1
  253. package/src/config.ts +13 -0
  254. package/src/harness/__tests__/import-direction.test.ts +168 -0
  255. package/src/harness/__tests__/persist-chokepoint.test.ts +146 -0
  256. package/src/harness/__tests__/registry.test.ts +1 -0
  257. package/src/harness/__tests__/run-turn.test.ts +165 -0
  258. package/src/harness/__tests__/stop-controller.test.ts +49 -0
  259. package/src/harness/__tests__/turn-context.test.ts +178 -0
  260. package/src/harness/__tests__/usage-accumulator.test.ts +83 -0
  261. package/src/harness/capabilities.ts +17 -0
  262. package/src/harness/persist-chokepoint.ts +112 -0
  263. package/src/harness/registry.ts +79 -5
  264. package/src/harness/run-turn.ts +618 -0
  265. package/src/harness/stop-controller.ts +83 -0
  266. package/src/harness/terminal-table.ts +276 -0
  267. package/src/harness/turn-context.ts +1028 -0
  268. package/src/harness/types.ts +248 -53
  269. package/src/harness/usage-accumulator.ts +122 -0
  270. package/src/harness-adapters.ts +30 -0
  271. package/src/main.ts +1 -1
  272. package/src/runner-manager.ts +68 -61
  273. package/src/runner.ts +67 -78
  274. package/src/shared/__tests__/attachment-naming.test.ts +1 -1
  275. package/src/{activities/execute-cursor → shared}/__tests__/attachment-resolver.test.ts +6 -4
  276. package/src/{activities/execute-cursor → shared}/__tests__/cost-guard.test.ts +2 -1
  277. package/src/{activities/execute-cursor → shared}/__tests__/exact-apply.test.ts +3 -3
  278. package/src/{activities/execute-cursor → shared}/__tests__/extract-structured-output.test.ts +8 -8
  279. package/src/{activities/execute-cursor → shared}/__tests__/persist-decision.test.ts +4 -2
  280. package/src/{activities/execute-cursor → shared}/__tests__/skill-resolver.test.ts +1 -1
  281. package/src/shared/__tests__/subagent-rows.test.ts +34 -0
  282. package/src/shared/__tests__/worker-shutdown.test.ts +44 -39
  283. package/src/shared/approval-policy.ts +1 -1
  284. package/src/{activities/execute-cursor → shared}/attachment-resolver.ts +6 -6
  285. package/src/{activities/execute-cursor → shared}/blueprint-resolver.ts +7 -78
  286. package/src/shared/channel-attachment.ts +1 -1
  287. package/src/{activities/execute-cursor → shared}/cost-guard.ts +5 -1
  288. package/src/{activities/execute-cursor → shared}/env-resolver.ts +1 -1
  289. package/src/{activities/execute-cursor → shared}/exact-apply.ts +7 -7
  290. package/src/shared/execution-context.ts +45 -0
  291. package/src/{activities/execute-cursor → shared}/extract-structured-output.ts +10 -7
  292. package/src/shared/filereview/capture.ts +1 -1
  293. package/src/shared/heartbeat.ts +13 -33
  294. package/src/{activities/execute-cursor → shared}/persist-decision.ts +5 -2
  295. package/src/{activities/execute-cursor → shared}/skill-resolver.ts +20 -6
  296. package/src/shared/subagent-rows.ts +39 -0
  297. package/src/shared/worker-shutdown.ts +55 -25
  298. package/src/{activities/execute-cursor/__tests__/workspace-provision.test.ts → shared/workspace/__tests__/session-provision.test.ts} +25 -28
  299. package/src/shared/workspace/platform-dir.ts +1 -1
  300. package/src/{activities/execute-cursor/workspace-provision.ts → shared/workspace/session-provision.ts} +29 -16
  301. package/dist/activities/execute-cursor/attachment-resolver.js.map +0 -1
  302. package/dist/activities/execute-cursor/blueprint-resolver.js.map +0 -1
  303. package/dist/activities/execute-cursor/cost-guard.js.map +0 -1
  304. package/dist/activities/execute-cursor/env-resolver.js.map +0 -1
  305. package/dist/activities/execute-cursor/exact-apply.js.map +0 -1
  306. package/dist/activities/execute-cursor/extract-structured-output.js.map +0 -1
  307. package/dist/activities/execute-cursor/index.d.ts +0 -209
  308. package/dist/activities/execute-cursor/index.js +0 -2345
  309. package/dist/activities/execute-cursor/index.js.map +0 -1
  310. package/dist/activities/execute-cursor/persist-decision.js.map +0 -1
  311. package/dist/activities/execute-cursor/skill-resolver.js.map +0 -1
  312. package/dist/activities/execute-cursor/usage-accumulator.d.ts +0 -89
  313. package/dist/activities/execute-cursor/usage-accumulator.js +0 -121
  314. package/dist/activities/execute-cursor/usage-accumulator.js.map +0 -1
  315. package/dist/activities/execute-cursor/workspace-provision.d.ts +0 -42
  316. package/dist/activities/execute-cursor/workspace-provision.js.map +0 -1
  317. package/src/activities/execute-cursor/__tests__/usage-accumulator.test.ts +0 -164
  318. package/src/activities/execute-cursor/index.ts +0 -2876
  319. package/src/activities/execute-cursor/usage-accumulator.ts +0 -169
  320. /package/dist/{activities/execute-cursor → shared}/env-resolver.js +0 -0
@@ -26,11 +26,18 @@
26
26
  * scenarios with different agents against the same mocked module.
27
27
  *
28
28
  * Resolution rules a scenario declares, mirroring what the real SDK does:
29
- * - `Agent.create` hands out the NEXT unclaimed agent in `agents` (turn 1 of a
30
- * fresh session; the fresh agent of a poisoned-handle recovery).
29
+ * - `Agent.create` hands out the agent declared for the session it is asked
30
+ * for (`agentForSession`, when the scenario resolves agents per session
31
+ * the harness contract kit runs several sessions concurrently on one
32
+ * adapter, and the order their creates arrive in is real I/O timing), else
33
+ * the NEXT unclaimed agent in `agents` (turn 1 of a fresh session; the fresh
34
+ * agent of a poisoned-handle recovery) — unless the scenario declared a
35
+ * `createFailure`, which the FIRST create throws instead (the SDK refusing
36
+ * to mint an agent: a 401 on the key, a validation error).
31
37
  * - `Agent.resume(id)` hands back the agent with that id if the scenario
32
- * declared it (in `agents` or `resumableAgents`), else throws `resolveAgent`
33
- * then falls back to `create`, which is the production shape of a lost handle.
38
+ * declared it (in `agents` or `resumableAgents`, or handed out for a
39
+ * session), else throws — `resolveAgent` then falls back to `create`, which
40
+ * is the production shape of a lost handle.
34
41
  * - `Cursor.models.list` answers the scenario's catalog.
35
42
  */
36
43
  import type { AgentOptions, ModelListItem, SDKAgent } from "@cursor/sdk";
@@ -38,11 +45,29 @@ import type { ScriptedCursorAgent } from "./scripted-agent.js";
38
45
  export interface ScriptedSdkOptions {
39
46
  /** Agents handed out by `Agent.create`, in order. Also resumable by id. */
40
47
  readonly agents: readonly ScriptedCursorAgent[];
48
+ /**
49
+ * The agent `Agent.create` hands out for the session the create names,
50
+ * consulted before the ordered list. The SDK's create options carry the
51
+ * session as `platform.workspaceRef` (`session-lifecycle.ts`
52
+ * `resolvePlatformOptions`: `stigmer-session:<sessionId>`), so the resolver
53
+ * is keyed by that ref — a scenario computes the ref the same way the
54
+ * adapter does. `undefined` falls through to the list. Consulted live on
55
+ * every create, so a scenario may mint the session's agent only when it
56
+ * learns of the session.
57
+ */
58
+ readonly agentForWorkspaceRef?: (workspaceRef: string) => ScriptedCursorAgent | undefined;
41
59
  /**
42
60
  * Agents `Agent.resume` finds by id but `Agent.create` never hands out — a
43
61
  * previous turn's agent the session knows only by `harness_state_id`.
44
62
  */
45
63
  readonly resumableAgents?: readonly ScriptedCursorAgent[];
64
+ /**
65
+ * Thrown by the FIRST `Agent.create` instead of handing out an agent; later
66
+ * creates hand out `agents` as usual. A {@link ScriptedCursorSdkError} here is
67
+ * the SDK's own refusal (the activity's outer catch keys on `instanceof`);
68
+ * a plain `Error` is anything else that can escape the SDK boundary.
69
+ */
70
+ readonly createFailure?: Error;
46
71
  /** What `Cursor.models.list` answers. */
47
72
  readonly catalog: readonly ModelListItem[];
48
73
  }
@@ -57,6 +82,7 @@ export declare class ScriptedCursorSdk {
57
82
  readonly resolutions: RecordedResolution[];
58
83
  readonly archived: string[];
59
84
  private nextCreate;
85
+ private createFailurePending;
60
86
  private readonly byId;
61
87
  constructor(options: ScriptedSdkOptions);
62
88
  create(options: AgentOptions): SDKAgent;
@@ -64,19 +90,34 @@ export declare class ScriptedCursorSdk {
64
90
  archive(agentId: string): void;
65
91
  listModels(): readonly ModelListItem[];
66
92
  }
93
+ /** The construction options of the SDK's `CursorSdkError` (`errors.d.ts`), minus `cause`. */
94
+ export interface ScriptedCursorSdkErrorOptions {
95
+ readonly isRetryable?: boolean;
96
+ readonly code?: string;
97
+ readonly status?: number;
98
+ readonly endpoint?: string;
99
+ readonly requestId?: string;
100
+ readonly operation?: string;
101
+ }
67
102
  /**
68
103
  * The `CursorSdkError` the mocked module exports. A real `Error` subclass with
69
- * the two fields the classifier reads (`isRetryable`, `code`), under the SDK's
70
- * class name so `err.constructor.name` and `instanceof` (against THIS module's
71
- * export, which is what the activity's dynamic import resolves to) both hold.
104
+ * the SDK class's public surface (`@cursor/sdk` `errors.d.ts`: `isRetryable`,
105
+ * `code`, `status`, `endpoint`, `requestId`, `operation`, `toJSON()`), under
106
+ * the SDK's class name so `err.constructor.name` and `instanceof` (against
107
+ * THIS module's export, which is what the activity's dynamic import resolves
108
+ * to) both hold. The activity's outer catch reads `code`, `status` and
109
+ * `message` for the classifier and logs `toJSON()`; the double must carry the
110
+ * whole surface or the catch arm itself throws instead of mapping the error.
72
111
  */
73
112
  export declare class ScriptedCursorSdkError extends Error {
74
113
  readonly isRetryable: boolean;
75
114
  readonly code: string | undefined;
76
- constructor(message: string, opts?: {
77
- isRetryable?: boolean;
78
- code?: string;
79
- });
115
+ readonly status: number | undefined;
116
+ readonly endpoint: string | undefined;
117
+ readonly requestId: string | undefined;
118
+ readonly operation: string | undefined;
119
+ constructor(message: string, opts?: ScriptedCursorSdkErrorOptions);
120
+ toJSON(): Record<string, unknown>;
80
121
  }
81
122
  /** Bind the SDK the mocked module serves for the current scenario. */
82
123
  export declare function bindScriptedSdk(sdk: ScriptedCursorSdk): void;
@@ -26,26 +26,61 @@
26
26
  * scenarios with different agents against the same mocked module.
27
27
  *
28
28
  * Resolution rules a scenario declares, mirroring what the real SDK does:
29
- * - `Agent.create` hands out the NEXT unclaimed agent in `agents` (turn 1 of a
30
- * fresh session; the fresh agent of a poisoned-handle recovery).
29
+ * - `Agent.create` hands out the agent declared for the session it is asked
30
+ * for (`agentForSession`, when the scenario resolves agents per session
31
+ * the harness contract kit runs several sessions concurrently on one
32
+ * adapter, and the order their creates arrive in is real I/O timing), else
33
+ * the NEXT unclaimed agent in `agents` (turn 1 of a fresh session; the fresh
34
+ * agent of a poisoned-handle recovery) — unless the scenario declared a
35
+ * `createFailure`, which the FIRST create throws instead (the SDK refusing
36
+ * to mint an agent: a 401 on the key, a validation error).
31
37
  * - `Agent.resume(id)` hands back the agent with that id if the scenario
32
- * declared it (in `agents` or `resumableAgents`), else throws `resolveAgent`
33
- * then falls back to `create`, which is the production shape of a lost handle.
38
+ * declared it (in `agents` or `resumableAgents`, or handed out for a
39
+ * session), else throws — `resolveAgent` then falls back to `create`, which
40
+ * is the production shape of a lost handle.
34
41
  * - `Cursor.models.list` answers the scenario's catalog.
35
42
  */
43
+ /**
44
+ * The `platform.workspaceRef` a create names, read defensively: the platform
45
+ * option's type re-exports from the unshipped `@anysphere/cursor-sdk-local-runtime`
46
+ * and resolves to `any` under `skipLibCheck` (the same gap `scripted-agent.ts`
47
+ * records for the delta channel), so the shape is checked here, not assumed.
48
+ */
49
+ function workspaceRefOf(options) {
50
+ const platform = options.platform;
51
+ if (typeof platform !== "object" || platform === null)
52
+ return undefined;
53
+ const ref = platform.workspaceRef;
54
+ return typeof ref === "string" ? ref : undefined;
55
+ }
36
56
  export class ScriptedCursorSdk {
37
57
  options;
38
58
  resolutions = [];
39
59
  archived = [];
40
60
  nextCreate = 0;
61
+ createFailurePending;
41
62
  byId = new Map();
42
63
  constructor(options) {
43
64
  this.options = options;
44
65
  for (const a of [...options.agents, ...(options.resumableAgents ?? [])]) {
45
66
  this.byId.set(a.agentId, a);
46
67
  }
68
+ this.createFailurePending = options.createFailure !== undefined;
47
69
  }
48
70
  create(options) {
71
+ if (this.createFailurePending && this.options.createFailure) {
72
+ this.createFailurePending = false;
73
+ this.resolutions.push({ kind: "create", agentId: undefined, options });
74
+ throw this.options.createFailure;
75
+ }
76
+ const workspaceRef = workspaceRefOf(options);
77
+ const forSession = workspaceRef !== undefined ? this.options.agentForWorkspaceRef?.(workspaceRef) : undefined;
78
+ if (forSession) {
79
+ this.byId.set(forSession.agentId, forSession);
80
+ forSession.model = options.model;
81
+ this.resolutions.push({ kind: "create", agentId: forSession.agentId, options });
82
+ return forSession;
83
+ }
49
84
  const agent = this.options.agents[this.nextCreate];
50
85
  if (!agent) {
51
86
  throw new Error(`ScriptedCursorSdk: Agent.create() #${this.nextCreate + 1} has no agent ` +
@@ -75,18 +110,42 @@ export class ScriptedCursorSdk {
75
110
  }
76
111
  /**
77
112
  * The `CursorSdkError` the mocked module exports. A real `Error` subclass with
78
- * the two fields the classifier reads (`isRetryable`, `code`), under the SDK's
79
- * class name so `err.constructor.name` and `instanceof` (against THIS module's
80
- * export, which is what the activity's dynamic import resolves to) both hold.
113
+ * the SDK class's public surface (`@cursor/sdk` `errors.d.ts`: `isRetryable`,
114
+ * `code`, `status`, `endpoint`, `requestId`, `operation`, `toJSON()`), under
115
+ * the SDK's class name so `err.constructor.name` and `instanceof` (against
116
+ * THIS module's export, which is what the activity's dynamic import resolves
117
+ * to) both hold. The activity's outer catch reads `code`, `status` and
118
+ * `message` for the classifier and logs `toJSON()`; the double must carry the
119
+ * whole surface or the catch arm itself throws instead of mapping the error.
81
120
  */
82
121
  export class ScriptedCursorSdkError extends Error {
83
122
  isRetryable;
84
123
  code;
124
+ status;
125
+ endpoint;
126
+ requestId;
127
+ operation;
85
128
  constructor(message, opts = {}) {
86
129
  super(message);
87
130
  this.name = "CursorSdkError";
88
131
  this.isRetryable = opts.isRetryable ?? false;
89
132
  this.code = opts.code;
133
+ this.status = opts.status;
134
+ this.endpoint = opts.endpoint;
135
+ this.requestId = opts.requestId;
136
+ this.operation = opts.operation;
137
+ }
138
+ toJSON() {
139
+ return {
140
+ name: this.name,
141
+ message: this.message,
142
+ isRetryable: this.isRetryable,
143
+ code: this.code,
144
+ status: this.status,
145
+ endpoint: this.endpoint,
146
+ requestId: this.requestId,
147
+ operation: this.operation,
148
+ };
90
149
  }
91
150
  }
92
151
  let bound;
@@ -1 +1 @@
1
- {"version":3,"file":"scripted-sdk.js","sourceRoot":"","sources":["../../../../src/activities/execute-cursor/__test-utils__/scripted-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scripted-sdk.js","sourceRoot":"","sources":["../../../../src/activities/execute-cursor/__test-utils__/scripted-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The Cursor harness as a `HarnessAdapter` — the worker- and session-lifetime
3
+ * half of its SDK slice, behind the turn runtime's contract
4
+ * (`harness/types.ts`). One engine turn is `turn.ts`'s `runCursorTurn`; this
5
+ * module boots, releases, and delegates.
6
+ *
7
+ * What this adapter owns: the proxy interceptors and the parked-agent cache
8
+ * (worker lifetime), the parked agent per session (session lifetime), and one
9
+ * engine turn (`runTurn`, through `turn.ts`). Everything else about a turn is
10
+ * the runtime's (`harness/run-turn.ts`).
11
+ *
12
+ * THIS MODULE'S STATIC GRAPH IS SDK-FREE, ON PURPOSE. The composition roots
13
+ * import it (through `src/harness-adapters.ts`) BEFORE they boot it, and
14
+ * `boot` is where the fetch and HTTP/2 interceptors are installed. The HTTP/2
15
+ * one patches `node:http2`, whose ESM facade is snapshotted the first time
16
+ * `@connectrpc/connect-node` is imported — and `@cursor/sdk` imports
17
+ * connect-node. So the SDK-touching half of this harness (`turn.ts` and,
18
+ * through it, `turn-setup.ts` and its siblings) is loaded with a dynamic
19
+ * import INSIDE `boot`, after the installs and after
20
+ * `assertHttp2ConnectPatched` has proven the facade sees the patch. This is
21
+ * the contract's own rule ("vendor SDKs are imported lazily inside" boot,
22
+ * `types.ts`), and the runner's dynamic-import-for-order convention
23
+ * (`bootstrap.ts`). `src/__tests__/harness-boot-order.test.ts` boots a fresh
24
+ * process through this path and fails if the graph regresses; the modules
25
+ * this file imports statically must each stay connect-free.
26
+ *
27
+ * The interceptors read the proxy credential from `Config.proxyTokenRef` per
28
+ * request; which credential that is (the static root's control-plane token,
29
+ * the manager's minted runner token) is the root's decision, not this
30
+ * module's (Q-S2-7).
31
+ *
32
+ * What this adapter never does: throw out of `runTurn` (an SDK failure is
33
+ * `failed` with the classifier's sentence; an unexpected exception is
34
+ * `failed` on the `internal` surface; a `CancelledFailure` never exists
35
+ * here), branch on why `stopSignal` aborted, write a phase or a terminal
36
+ * copy, or import `@temporalio/*` (`__tests__/adapter-is-temporal-free.test.ts`
37
+ * pins it, which is what lets the contract kit run this adapter outside any
38
+ * activity context).
39
+ *
40
+ * The file-review boundary (`turn-boundary.ts`) runs whole inside `turn.ts`
41
+ * for S2 (Q-S2-1): five of its six steps read the denial ledger, this
42
+ * harness's deny-and-retry primitive. S3 lifts the capture into the runtime
43
+ * with both harnesses' captures in view; `types.ts`'s "the file-review
44
+ * boundary is the runtime's" becomes true then.
45
+ *
46
+ * Extracted from `index.ts` `createCursorActivities` at S2 M3b; split from
47
+ * the turn body at S2 M5. The seventeen hermetic goldens under
48
+ * `__tests__/hermetic/` pin the result byte for byte.
49
+ */
50
+ import type { Config } from "../../config.js";
51
+ import type { HarnessAdapter } from "../../harness/types.js";
52
+ import type { CursorAdapterConfig } from "./turn-setup.js";
53
+ /** The config slice this adapter reads per turn, taken at `boot`; a whole `Config` satisfies it. */
54
+ export declare function resolveCursorConfig(config: Config): CursorAdapterConfig;
55
+ export declare function createCursorAdapter(): HarnessAdapter;
@@ -0,0 +1,119 @@
1
+ /**
2
+ * The Cursor harness as a `HarnessAdapter` — the worker- and session-lifetime
3
+ * half of its SDK slice, behind the turn runtime's contract
4
+ * (`harness/types.ts`). One engine turn is `turn.ts`'s `runCursorTurn`; this
5
+ * module boots, releases, and delegates.
6
+ *
7
+ * What this adapter owns: the proxy interceptors and the parked-agent cache
8
+ * (worker lifetime), the parked agent per session (session lifetime), and one
9
+ * engine turn (`runTurn`, through `turn.ts`). Everything else about a turn is
10
+ * the runtime's (`harness/run-turn.ts`).
11
+ *
12
+ * THIS MODULE'S STATIC GRAPH IS SDK-FREE, ON PURPOSE. The composition roots
13
+ * import it (through `src/harness-adapters.ts`) BEFORE they boot it, and
14
+ * `boot` is where the fetch and HTTP/2 interceptors are installed. The HTTP/2
15
+ * one patches `node:http2`, whose ESM facade is snapshotted the first time
16
+ * `@connectrpc/connect-node` is imported — and `@cursor/sdk` imports
17
+ * connect-node. So the SDK-touching half of this harness (`turn.ts` and,
18
+ * through it, `turn-setup.ts` and its siblings) is loaded with a dynamic
19
+ * import INSIDE `boot`, after the installs and after
20
+ * `assertHttp2ConnectPatched` has proven the facade sees the patch. This is
21
+ * the contract's own rule ("vendor SDKs are imported lazily inside" boot,
22
+ * `types.ts`), and the runner's dynamic-import-for-order convention
23
+ * (`bootstrap.ts`). `src/__tests__/harness-boot-order.test.ts` boots a fresh
24
+ * process through this path and fails if the graph regresses; the modules
25
+ * this file imports statically must each stay connect-free.
26
+ *
27
+ * The interceptors read the proxy credential from `Config.proxyTokenRef` per
28
+ * request; which credential that is (the static root's control-plane token,
29
+ * the manager's minted runner token) is the root's decision, not this
30
+ * module's (Q-S2-7).
31
+ *
32
+ * What this adapter never does: throw out of `runTurn` (an SDK failure is
33
+ * `failed` with the classifier's sentence; an unexpected exception is
34
+ * `failed` on the `internal` surface; a `CancelledFailure` never exists
35
+ * here), branch on why `stopSignal` aborted, write a phase or a terminal
36
+ * copy, or import `@temporalio/*` (`__tests__/adapter-is-temporal-free.test.ts`
37
+ * pins it, which is what lets the contract kit run this adapter outside any
38
+ * activity context).
39
+ *
40
+ * The file-review boundary (`turn-boundary.ts`) runs whole inside `turn.ts`
41
+ * for S2 (Q-S2-1): five of its six steps read the denial ledger, this
42
+ * harness's deny-and-retry primitive. S3 lifts the capture into the runtime
43
+ * with both harnesses' captures in view; `types.ts`'s "the file-review
44
+ * boundary is the runtime's" becomes true then.
45
+ *
46
+ * Extracted from `index.ts` `createCursorActivities` at S2 M3b; split from
47
+ * the turn body at S2 M5. The seventeen hermetic goldens under
48
+ * `__tests__/hermetic/` pin the result byte for byte.
49
+ */
50
+ import { markBoot } from "../../shared/cold-start-timing.js";
51
+ import { closeAllCachedAgents, evictSessionAgent } from "./agent-session-cache.js";
52
+ import { CURSOR_CAPABILITIES } from "./cursor-capabilities.js";
53
+ import { installFetchInterceptor } from "./fetch-interceptor.js";
54
+ import { assertHttp2ConnectPatched, installHttp2Interceptor } from "./http2-interceptor.js";
55
+ /** The config slice this adapter reads per turn, taken at `boot`; a whole `Config` satisfies it. */
56
+ export function resolveCursorConfig(config) {
57
+ return {
58
+ proxyEndpoint: config.proxyEndpoint,
59
+ cursorApiKey: config.cursorApiKey,
60
+ stigmerToken: config.stigmerToken,
61
+ stigmerTokenRef: config.stigmerTokenRef,
62
+ workspaceRootDir: config.workspaceRootDir,
63
+ cloudModeEnabled: config.cloudModeEnabled,
64
+ agentResolveTimeoutMs: config.agentResolveTimeoutMs,
65
+ };
66
+ }
67
+ export function createCursorAdapter() {
68
+ let booted;
69
+ return {
70
+ name: "cursor",
71
+ capabilities: CURSOR_CAPABILITIES,
72
+ /**
73
+ * Install the proxy transport, prove the HTTP/2 patch reached the facade,
74
+ * then load the SDK slice — in that order, for the reason in the header.
75
+ * Runs before bootstrap resolution, so `bootConfig` carries no Temporal
76
+ * coordinates yet; every field the slice reads is known at that point.
77
+ * Idempotent: a re-boot rebinds the interceptors and re-reads the slice.
78
+ */
79
+ async boot(bootConfig) {
80
+ if (bootConfig.proxyEndpoint && !bootConfig.proxyTokenRef) {
81
+ throw new Error("cursor adapter: a proxy endpoint needs Config.proxyTokenRef (the composition root binds its proxy credential there; see config.ts)");
82
+ }
83
+ // The Cursor SDK's REST client resolves `fetch` at call time and its
84
+ // Connect transport opens native HTTP/2 sessions; the two interceptors
85
+ // route the first through the proxy and stamp the second with the proxy
86
+ // credential and the execution id. Both are no-ops without a proxy.
87
+ installFetchInterceptor({
88
+ proxyEndpoint: bootConfig.proxyEndpoint ?? undefined,
89
+ proxyTokenRef: bootConfig.proxyTokenRef,
90
+ });
91
+ installHttp2Interceptor({
92
+ proxyEndpoint: bootConfig.proxyEndpoint ?? undefined,
93
+ proxyTokenRef: bootConfig.proxyTokenRef,
94
+ });
95
+ markBoot("interceptors_installed");
96
+ // Fail loudly at boot if a load-order regression left the node:http2 ESM
97
+ // facade unpatched (otherwise BiDi streams would silently 401). No-op
98
+ // when the interceptor is unconfigured (no proxy).
99
+ await assertHttp2ConnectPatched();
100
+ const { runCursorTurn } = await import("./turn.js");
101
+ booted = { config: resolveCursorConfig(bootConfig), runCursorTurn };
102
+ },
103
+ /** Close every parked agent (their executor leases and MCP subprocesses). */
104
+ async shutdown() {
105
+ closeAllCachedAgents();
106
+ },
107
+ /** The session is done on this host: close the agent parked for it, if any (#215). */
108
+ async releaseSession(sessionId) {
109
+ evictSessionAgent(sessionId);
110
+ },
111
+ async runTurn(input, sink) {
112
+ if (booted === undefined) {
113
+ throw new Error("cursor adapter: runTurn before boot (the registry boots every adapter before the worker polls)");
114
+ }
115
+ return booted.runCursorTurn(input, sink, booted.config);
116
+ },
117
+ };
118
+ }
119
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAG5F,oGAAoG;AACpG,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;KACpD,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB;IACjC,IAAI,MAAuC,CAAC;IAE5C,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,mBAAmB;QAEjC;;;;;;WAMG;QACH,KAAK,CAAC,IAAI,CAAC,UAAkB;YAC3B,IAAI,UAAU,CAAC,aAAa,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;YACJ,CAAC;YACD,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,oEAAoE;YACpE,uBAAuB,CAAC;gBACtB,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,SAAS;gBACpD,aAAa,EAAE,UAAU,CAAC,aAAa;aACxC,CAAC,CAAC;YACH,uBAAuB,CAAC;gBACtB,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,SAAS;gBACpD,aAAa,EAAE,UAAU,CAAC,aAAa;aACxC,CAAC,CAAC;YACH,QAAQ,CAAC,wBAAwB,CAAC,CAAC;YACnC,yEAAyE;YACzE,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,yBAAyB,EAAE,CAAC;YAElC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;QACtE,CAAC;QAED,6EAA6E;QAC7E,KAAK,CAAC,QAAQ;YACZ,oBAAoB,EAAE,CAAC;QACzB,CAAC;QAED,sFAAsF;QACtF,KAAK,CAAC,cAAc,CAAC,SAAiB;YACpC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,IAAc;YAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;YACpH,CAAC;YACD,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -277,7 +277,7 @@ export declare function emitCursorGrantReceipts(grants: readonly ApprovalGrant[]
277
277
  * grant carries the canonical {@link ToolIdentity} (category + salient resource)
278
278
  * so the hook allows the exact approved resource on the resumed turn.
279
279
  */
280
- export declare function buildApprovalGrants(pendingApprovals: PendingApproval[], decisions: Map<string, ApprovalAction>, contentDigests?: Map<string, string>): ApprovalGrant[];
280
+ export declare function buildApprovalGrants(pendingApprovals: PendingApproval[], decisions: ReadonlyMap<string, ApprovalAction>, contentDigests?: Map<string, string>): ApprovalGrant[];
281
281
  /**
282
282
  * Build the approval state file content from merged policies and any approval
283
283
  * grants from a previous HITL cycle.
@@ -295,7 +295,7 @@ export declare function buildApprovalGrants(pendingApprovals: PendingApproval[],
295
295
  * The static gated built-in set and its category mapping are baked into the
296
296
  * generated hook script (from approval-policy.ts), not carried here.
297
297
  */
298
- export declare function buildApprovalState(mergedPolicies: Map<string, MergedToolPolicy>, globalBypass: boolean, leasedCategories: ReadonlySet<ApprovalCategory>, grants?: ApprovalGrant[], captureMode?: boolean, captureIgnored?: boolean, gitWorkspace?: boolean, unattendedSkip?: boolean, mcpServerEnabledTools?: Record<string, string[]>): ApprovalStateFile;
298
+ export declare function buildApprovalState(mergedPolicies: ReadonlyMap<string, MergedToolPolicy>, globalBypass: boolean, leasedCategories: ReadonlySet<ApprovalCategory>, grants?: ApprovalGrant[], captureMode?: boolean, captureIgnored?: boolean, gitWorkspace?: boolean, unattendedSkip?: boolean, mcpServerEnabledTools?: Record<string, string[]>): ApprovalStateFile;
299
299
  /**
300
300
  * Write the approval state file into the session's HITL directory for the hook
301
301
  * script to read.
@@ -1 +1 @@
1
- {"version":3,"file":"approval-state.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/approval-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-state.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/approval-state.ts"],"names":[],"mappings":"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"}
@@ -14,17 +14,27 @@
14
14
  * observational/audit records at their transcript positions, while
15
15
  * `file_change_sets` remains the single DECISION surface.
16
16
  *
17
- * The three turn-boundary functions keep their original signatures so the
18
- * activity wiring (index.ts) and the cutover tests are unchanged.
17
+ * The resume-time reconcile is NOT here since S2 M2: the turn runtime's
18
+ * `reconcileReinvocation` (`harness/turn-context.ts`) calls the shared
19
+ * reconcile directly under {@link CURSOR_FILE_REVIEW_IDENTITY}, the one
20
+ * export that carries the two Cursor facts it needs. The two capture
21
+ * functions keep their original signatures so the activity wiring (index.ts)
22
+ * and the cutover tests are unchanged.
19
23
  */
20
24
  import type { AgentMessage } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
21
25
  import type { AgentExecutionStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
22
- import type { FileChangeSet, TurnCommandProvenance } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
23
- import { type CaptureResumeResult } from "../../shared/filereview/capture.js";
26
+ import type { TurnCommandProvenance } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/filereview_pb";
24
27
  import { type ProgressSubstrate } from "../../shared/filereview/progress.js";
25
28
  import type { GitSubstrateChange as GitCapturedChange } from "../../shared/filereview/git-substrate.js";
26
29
  import type { ArtifactStorage } from "../../shared/artifact-storage.js";
27
- export type { CaptureResumeResult };
30
+ import type { FileReviewIdentity } from "../../harness/capabilities.js";
31
+ /**
32
+ * The two facts the runtime's resume-time reconcile needs from this harness
33
+ * (`harness/turn-context.ts` `reconcileReinvocation`): the same id and
34
+ * exclude list the capture functions below stamp and apply, so the baseline a
35
+ * turn authors and the reconcile a resume runs agree by construction.
36
+ */
37
+ export declare const CURSOR_FILE_REVIEW_IDENTITY: FileReviewIdentity;
28
38
  export { deriveCaptureMode } from "../../shared/filereview/capture.js";
29
39
  /**
30
40
  * Turn start: pin the pre-turn working tree behind the baseline ref and author
@@ -130,28 +140,3 @@ export declare function buildCursorProgressSubstrate(opts: {
130
140
  readonly hitlDir: string | undefined;
131
141
  readonly storage: ArtifactStorage | undefined;
132
142
  }): ProgressSubstrate | undefined;
133
- /**
134
- * Resume: reconcile the working tree to the change set's DECIDED decisions
135
- * (keep approved "after" bytes, snap rejected/undecided back to baseline,
136
- * hash-verified), author RECONCILED / FAILED, and release the refs. Delegates to
137
- * the shared orchestration with the Cursor harness id + exclude paths.
138
- *
139
- * `storage` threads the CAS blob store + reader so gitignored (CAS) files in the
140
- * change set reconcile from the durable manifest — approved after-blobs written
141
- * (hash-verified), rejected files snapped back to their before-blobs. Omit for a
142
- * git-only harness/turn; the shared CAS branch is then skipped. The read path is
143
- * the same one `exact-apply` already uses (`ArtifactStorage.download`).
144
- */
145
- export declare function applyCaptureDecisions(opts: {
146
- readonly status: AgentExecutionStatus;
147
- readonly gitRoot: string;
148
- readonly executionId: string;
149
- readonly changeSet: FileChangeSet;
150
- readonly storage?: ArtifactStorage;
151
- /**
152
- * True (default) for a git work tree; false for a CAS-only non-git workspace
153
- * (Slice 2c). When false the reconcile never consults git refs — it is driven
154
- * entirely by the durable CAS manifest.
155
- */
156
- readonly gitWorkspace?: boolean;
157
- }): Promise<CaptureResumeResult>;
@@ -14,8 +14,12 @@
14
14
  * observational/audit records at their transcript positions, while
15
15
  * `file_change_sets` remains the single DECISION surface.
16
16
  *
17
- * The three turn-boundary functions keep their original signatures so the
18
- * activity wiring (index.ts) and the cutover tests are unchanged.
17
+ * The resume-time reconcile is NOT here since S2 M2: the turn runtime's
18
+ * `reconcileReinvocation` (`harness/turn-context.ts`) calls the shared
19
+ * reconcile directly under {@link CURSOR_FILE_REVIEW_IDENTITY}, the one
20
+ * export that carries the two Cursor facts it needs. The two capture
21
+ * functions keep their original signatures so the activity wiring (index.ts)
22
+ * and the cutover tests are unchanged.
19
23
  */
20
24
  import { readFile } from "node:fs/promises";
21
25
  import { join } from "node:path";
@@ -25,12 +29,11 @@ import { toolIdentity, primaryToken } from "./approval-state.js";
25
29
  import { readCasObservations } from "./cas-observations.js";
26
30
  import { contentDigest } from "../../shared/file-tools.js";
27
31
  import { isToolCallRowHidden, stampFileEditRow } from "../../shared/tool-row.js";
28
- import { applyCaptureDecisions as sharedApplyCaptureDecisions, captureBaselineToLedger as sharedCaptureBaselineToLedger, captureCandidateToLedger as sharedCaptureCandidateToLedger, } from "../../shared/filereview/capture.js";
32
+ import { captureBaselineToLedger as sharedCaptureBaselineToLedger, captureCandidateToLedger as sharedCaptureCandidateToLedger, } from "../../shared/filereview/capture.js";
29
33
  import { createGitProgressSubstrate, createHybridProgressSubstrate, } from "../../shared/filereview/progress.js";
30
34
  import { createCasProgressSubstrate, } from "../../shared/filereview/cas-progress.js";
31
35
  import { hasCandidateCaptured } from "../../shared/filereview/events.js";
32
36
  import { partitionIgnoredPathsBySecret } from "../../shared/filereview/secret-paths.js";
33
- import { casBlobReader } from "../../shared/filereview/cas-substrate.js";
34
37
  /** The harness id the projection reads from the BASELINE payload (load-bearing). */
35
38
  const HARNESS_ID = "cursor";
36
39
  /**
@@ -43,6 +46,16 @@ const CURSOR_RUNNER_OWNED_PATHS = [
43
46
  ".cursor/hooks.json",
44
47
  ".cursor/rules/stigmer-tool-approval.mdc",
45
48
  ];
49
+ /**
50
+ * The two facts the runtime's resume-time reconcile needs from this harness
51
+ * (`harness/turn-context.ts` `reconcileReinvocation`): the same id and
52
+ * exclude list the capture functions below stamp and apply, so the baseline a
53
+ * turn authors and the reconcile a resume runs agree by construction.
54
+ */
55
+ export const CURSOR_FILE_REVIEW_IDENTITY = {
56
+ harnessId: HARNESS_ID,
57
+ excludePaths: CURSOR_RUNNER_OWNED_PATHS,
58
+ };
46
59
  // `deriveCaptureMode` is the single capture-vs-deny-gate decision, now shared by
47
60
  // BOTH harnesses from `shared/filereview/capture.ts`. Re-exported here so existing
48
61
  // Cursor imports (index.ts, the deny-gate-exact-apply seam test) keep resolving
@@ -231,28 +244,6 @@ async function readFileOrNull(absolutePath) {
231
244
  return null;
232
245
  }
233
246
  }
234
- /**
235
- * Resume: reconcile the working tree to the change set's DECIDED decisions
236
- * (keep approved "after" bytes, snap rejected/undecided back to baseline,
237
- * hash-verified), author RECONCILED / FAILED, and release the refs. Delegates to
238
- * the shared orchestration with the Cursor harness id + exclude paths.
239
- *
240
- * `storage` threads the CAS blob store + reader so gitignored (CAS) files in the
241
- * change set reconcile from the durable manifest — approved after-blobs written
242
- * (hash-verified), rejected files snapped back to their before-blobs. Omit for a
243
- * git-only harness/turn; the shared CAS branch is then skipped. The read path is
244
- * the same one `exact-apply` already uses (`ArtifactStorage.download`).
245
- */
246
- export function applyCaptureDecisions(opts) {
247
- const { storage, ...rest } = opts;
248
- return sharedApplyCaptureDecisions({
249
- ...rest,
250
- harnessId: HARNESS_ID,
251
- excludePaths: CURSOR_RUNNER_OWNED_PATHS,
252
- storage,
253
- readBlob: storage ? casBlobReader(storage) : undefined,
254
- });
255
- }
256
247
  // ---------------------------------------------------------------------------
257
248
  // Cursor-specific presentation
258
249
  // ---------------------------------------------------------------------------