@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
@@ -57,43 +57,73 @@ export function unregisterWorkerShutdownSignal(taskQueue: string): void {
57
57
  registry.delete(taskQueue);
58
58
  }
59
59
 
60
- /** The evidence a turn's post-stream classification weighs (see below). */
60
+ /**
61
+ * Why Temporal cancelled the activity, as the SDK states it: the message of
62
+ * the `CancelledFailure` it aborted `Context.current().cancellationSignal`
63
+ * with (`@temporalio/activity`'s module header lists them — `CANCELLED` for a
64
+ * workflow-requested cancel, `TIMED_OUT` when a heartbeat or other timeout
65
+ * fired server-side, `NOT_FOUND` when the run closed, `WORKER_SHUTDOWN`,
66
+ * `HEARTBEAT_DETAILS_CONVERSION_FAILED`, `PAUSED`). `undefined` when no
67
+ * cancellation was delivered.
68
+ */
69
+ export type CancellationReason = string | undefined;
70
+
71
+ /** The reason a cancellation signal carries, or `undefined` when it has not aborted. */
72
+ export function cancellationReasonOf(signal: AbortSignal): CancellationReason {
73
+ if (!signal.aborted) return undefined;
74
+ const reason: unknown = signal.reason;
75
+ if (reason instanceof Error) return reason.message;
76
+ return typeof reason === "string" ? reason : "CANCELLED";
77
+ }
78
+
79
+ /** The evidence a turn's interruption classification weighs (see below). */
61
80
  export interface TurnInterruptionEvidence {
62
- /** The periodic heartbeat threw CancelledFailure with no shutdown signal. */
63
- heartbeatCancelled: boolean;
64
- /** The periodic heartbeat threw CancelledFailure with the signal aborted. */
65
- heartbeatWorkerShutdown: boolean;
66
- /** Temporal delivered cancellation to the activity. */
67
- cancellationSignalAborted: boolean;
81
+ /** The delivered cancellation's reason; `undefined` when none was delivered. */
82
+ readonly cancellationReason: CancellationReason;
68
83
  /** This queue's worker-shutdown signal is aborted. */
69
- shutdownSignalAborted: boolean;
84
+ readonly shutdownSignalAborted: boolean;
70
85
  }
71
86
 
72
87
  /**
73
- * Classify how (whether) a turn's stream was interrupted, from the evidence
74
- * available after the stream ends. Pure so the decision table is directly
75
- * testable the activities feed it their heartbeat flags and signals.
88
+ * How Temporal's cancellation reads to the turn:
89
+ * - `worker-shutdown`: the runner is draining (the queue's signal, or the
90
+ * SDK's own `WORKER_SHUTDOWN`); FAILED with the shutdown copy, thrown.
91
+ * - `pause`: the workflow asked (`CANCELLED`, the Pause RPC's path);
92
+ * PAUSED, thrown.
93
+ * - `infrastructure`: the platform cancelled for its own reason (a heartbeat
94
+ * timeout, a closed run); FAILED with the unresponsive copy, thrown.
95
+ * - `none`: nothing was delivered.
96
+ */
97
+ export type TurnInterruption = "worker-shutdown" | "pause" | "infrastructure" | "none";
98
+
99
+ /**
100
+ * Classify how (whether) Temporal interrupted the turn, from the two live
101
+ * facts: the reason on the cancellation signal and the queue's shutdown
102
+ * signal. Pure so the decision table is directly testable.
76
103
  *
77
104
  * The load-bearing rule is the grace-window guard (#776): an aborted
78
105
  * shutdown signal ALONE is "none", because a run that completes normally
79
106
  * inside the drain grace window reaches the classification with the signal
80
- * already aborted and nothing actually interrupted. Shutdown requires
81
- * interruption evidence (a heartbeat CancelledFailure or a delivered
82
- * cancellation) alongside the signal; a heartbeat cancellation with no
83
- * shutdown signal is the orchestrator's pause.
107
+ * already aborted and nothing actually interrupted. Shutdown requires a
108
+ * delivered cancellation alongside the signal.
109
+ *
110
+ * Until S2 M3 the evidence also carried two flags from the periodic
111
+ * heartbeat ("it threw `CancelledFailure`"), and a delivered cancellation
112
+ * without them read as "none". `Context.heartbeat()` never throws in the
113
+ * Temporal TypeScript SDK (it enqueues to the worker's heartbeat subject;
114
+ * `@temporalio/activity/lib/index.js` `Context.heartbeat`,
115
+ * `@temporalio/worker/lib/worker.js` the heartbeat callback), so the flags
116
+ * were never set and a pause was in fact recognised by the stream loop's
117
+ * own cancellation check. The reason the SDK puts on the signal is the
118
+ * direct identity that inference stood in for.
84
119
  */
85
- export function classifyTurnInterruption(
86
- evidence: TurnInterruptionEvidence,
87
- ): "worker-shutdown" | "pause" | "none" {
88
- const interrupted =
89
- evidence.heartbeatCancelled ||
90
- evidence.heartbeatWorkerShutdown ||
91
- evidence.cancellationSignalAborted;
92
- if (!interrupted) {
120
+ export function classifyTurnInterruption(evidence: TurnInterruptionEvidence): TurnInterruption {
121
+ const { cancellationReason, shutdownSignalAborted } = evidence;
122
+ if (cancellationReason === undefined) {
93
123
  return "none";
94
124
  }
95
- if (evidence.heartbeatWorkerShutdown || evidence.shutdownSignalAborted) {
125
+ if (shutdownSignalAborted || cancellationReason === "WORKER_SHUTDOWN") {
96
126
  return "worker-shutdown";
97
127
  }
98
- return evidence.heartbeatCancelled ? "pause" : "none";
128
+ return cancellationReason === "CANCELLED" ? "pause" : "infrastructure";
99
129
  }
@@ -1,3 +1,14 @@
1
+ /**
2
+ * Pins session workspace provisioning: git-repo workspace entries are cloned
3
+ * locally (never delegated to a cloud agent), local-path entries are
4
+ * mounted, and a session with no entries gets its own empty per-session root.
5
+ * Harness-agnostic; the Cursor activity is today's only caller and the turn
6
+ * runtime takes it over in S2 M3.
7
+ *
8
+ * Uses a real, hermetic local git repository (no network, no harness API) so
9
+ * the clone is deterministic.
10
+ */
11
+
1
12
  import { describe, it, expect, beforeEach, afterEach } from "vitest";
2
13
  import { execFileSync } from "node:child_process";
3
14
  import { mkdtempSync, mkdirSync, writeFileSync, existsSync, readFileSync, rmSync } from "node:fs";
@@ -12,18 +23,7 @@ import {
12
23
  } from "@stigmer/protos/ai/stigmer/agentic/session/v1/workspace_pb";
13
24
  import type { WorkspaceEntry } from "@stigmer/protos/ai/stigmer/agentic/session/v1/workspace_pb";
14
25
  import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
15
- import type { Config } from "../../../config.js";
16
- import { provisionCursorWorkspace } from "../workspace-provision.js";
17
-
18
- /**
19
- * Verifies that the Cursor harness provisions git-repo workspace entries
20
- * locally (clones them) instead of relying on Cursor cloud agents. This is
21
- * the behavior that makes git-backed Cursor sessions work now that cloud is
22
- * disabled.
23
- *
24
- * Uses a real, hermetic local git repository (no network, no Cursor API) so
25
- * the clone is deterministic.
26
- */
26
+ import { provisionSessionWorkspace, type SessionProvisionConfig } from "../session-provision.js";
27
27
 
28
28
  const MARKER_FILE = "MARKER.txt";
29
29
  const MARKER_CONTENT = "stigmer-cursor-clone-proof-7e3a1c";
@@ -55,11 +55,8 @@ function seedSourceRepo(branch = "main", content = MARKER_CONTENT): string {
55
55
  return repo;
56
56
  }
57
57
 
58
- function makeConfig(workspaceRootDir: string): Config {
59
- return {
60
- mode: "local",
61
- workspaceRootDir,
62
- } as unknown as Config;
58
+ function makeConfig(workspaceRootDir: string): SessionProvisionConfig {
59
+ return { mode: "local", workspaceRootDir };
63
60
  }
64
61
 
65
62
  function gitRepoSession(url: string, branch = "main"): Session {
@@ -114,7 +111,7 @@ function emptySession(): Session {
114
111
  // these tests use a generous timeout instead of vitest's 5s default.
115
112
  const GIT_TEST_TIMEOUT_MS = 30_000;
116
113
 
117
- describe("provisionCursorWorkspace", () => {
114
+ describe("provisionSessionWorkspace", () => {
118
115
  beforeEach(() => {
119
116
  tmpRoot = mkdtempSync(join(tmpdir(), "cursor-ws-"));
120
117
  // Redirect the platform dir (~/.stigmer/...) into the temp tree so the
@@ -139,7 +136,7 @@ describe("provisionCursorWorkspace", () => {
139
136
  mkdirSync(workspaceRoot, { recursive: true });
140
137
 
141
138
  const { workspaceDirs: dirs, provisionResults, workspaceBackend } =
142
- await provisionCursorWorkspace(
139
+ await provisionSessionWorkspace(
143
140
  makeConfig(workspaceRoot),
144
141
  gitRepoSession(source),
145
142
  {},
@@ -168,7 +165,7 @@ describe("provisionCursorWorkspace", () => {
168
165
  mkdirSync(join(workspaceRoot, "lost+found"), { recursive: true });
169
166
  writeFileSync(join(workspaceRoot, "lost+found", "stray"), "fsck-artifact");
170
167
 
171
- const { workspaceDirs: dirs } = await provisionCursorWorkspace(
168
+ const { workspaceDirs: dirs } = await provisionSessionWorkspace(
172
169
  makeConfig(workspaceRoot),
173
170
  gitRepoSession(source),
174
171
  {},
@@ -203,7 +200,7 @@ describe("provisionCursorWorkspace", () => {
203
200
  const workspaceRoot = join(tmpRoot, "default-branch-workspace");
204
201
  mkdirSync(workspaceRoot, { recursive: true });
205
202
 
206
- const { workspaceDirs: dirs } = await provisionCursorWorkspace(
203
+ const { workspaceDirs: dirs } = await provisionSessionWorkspace(
207
204
  makeConfig(workspaceRoot),
208
205
  gitRepoSessionNoBranch(source),
209
206
  {},
@@ -228,7 +225,7 @@ describe("provisionCursorWorkspace", () => {
228
225
  // a worktree here, so it must be left untouched.
229
226
  mkdirSync(join(workspaceRoot, "lost+found"), { recursive: true });
230
227
 
231
- const { workspaceDirs: dirs } = await provisionCursorWorkspace(
228
+ const { workspaceDirs: dirs } = await provisionSessionWorkspace(
232
229
  makeConfig(workspaceRoot),
233
230
  multiGitRepoSession([
234
231
  { name: "frontend", url: frontend },
@@ -266,7 +263,7 @@ describe("provisionCursorWorkspace", () => {
266
263
  // Leftovers from other sessions at the shared root must not be visible.
267
264
  writeFileSync(join(workspaceRoot, "other-session-leftover.md"), "not yours");
268
265
 
269
- const { workspaceDirs: dirs, provisionResults } = await provisionCursorWorkspace(
266
+ const { workspaceDirs: dirs, provisionResults } = await provisionSessionWorkspace(
270
267
  makeConfig(workspaceRoot),
271
268
  emptySession(),
272
269
  {},
@@ -284,9 +281,9 @@ describe("provisionCursorWorkspace", () => {
284
281
  mkdirSync(workspaceRoot, { recursive: true });
285
282
  const config = makeConfig(workspaceRoot);
286
283
 
287
- const turn1 = (await provisionCursorWorkspace(config, emptySession(), {}, "stable-session")).workspaceDirs;
284
+ const turn1 = (await provisionSessionWorkspace(config, emptySession(), {}, "stable-session")).workspaceDirs;
288
285
  writeFileSync(join(turn1[0], "notes.md"), "turn 1 output");
289
- const turn2 = (await provisionCursorWorkspace(config, emptySession(), {}, "stable-session")).workspaceDirs;
286
+ const turn2 = (await provisionSessionWorkspace(config, emptySession(), {}, "stable-session")).workspaceDirs;
290
287
 
291
288
  expect(turn2).toEqual(turn1);
292
289
  expect(readFileSync(join(turn2[0], "notes.md"), "utf-8")).toBe("turn 1 output");
@@ -297,8 +294,8 @@ describe("provisionCursorWorkspace", () => {
297
294
  mkdirSync(workspaceRoot, { recursive: true });
298
295
  const config = makeConfig(workspaceRoot);
299
296
 
300
- const [dirA] = (await provisionCursorWorkspace(config, emptySession(), {}, "session-a")).workspaceDirs;
301
- const [dirB] = (await provisionCursorWorkspace(config, emptySession(), {}, "session-b")).workspaceDirs;
297
+ const [dirA] = (await provisionSessionWorkspace(config, emptySession(), {}, "session-a")).workspaceDirs;
298
+ const [dirB] = (await provisionSessionWorkspace(config, emptySession(), {}, "session-b")).workspaceDirs;
302
299
 
303
300
  expect(dirA).not.toBe(dirB);
304
301
  writeFileSync(join(dirA, "a.md"), "session a");
@@ -312,7 +309,7 @@ describe("provisionCursorWorkspace", () => {
312
309
  const workspaceRoot = join(tmpRoot, "workspace-local");
313
310
  mkdirSync(workspaceRoot, { recursive: true });
314
311
 
315
- const { workspaceDirs: dirs } = await provisionCursorWorkspace(
312
+ const { workspaceDirs: dirs } = await provisionSessionWorkspace(
316
313
  makeConfig(workspaceRoot),
317
314
  localPathSession(projectDir),
318
315
  {},
@@ -12,7 +12,7 @@
12
12
  * path is written into the workspace itself.
13
13
  *
14
14
  * This module replaces the duplicated `getPlatformDir` helpers in
15
- * execute-cursor/skill-resolver.ts and execute-cursor/attachment-resolver.ts.
15
+ * execute-cursor/skill-resolver.ts and shared/attachment-resolver.ts.
16
16
  */
17
17
 
18
18
  import { join } from "node:path";
@@ -1,22 +1,35 @@
1
1
  /**
2
- * Local workspace provisioning for the Cursor harness.
2
+ * Local workspace provisioning for a harness turn.
3
3
  *
4
- * Cursor agents run LOCAL (cloud is disabled see cursor-mode.ts), so the
5
- * runner must clone git-repo workspace entries itself and mount local-path
6
- * entries before the agent runs, mirroring the native harness. Cloud agents
7
- * previously cloned git repos server-side; that path is no longer used.
4
+ * Harness-agnostic: the Cursor activity is today's only caller, the turn
5
+ * runtime takes it over in S2 M3, and S3 retires the native twin
6
+ * (execute-deep-agent/setup.ts `provisionWorkspace`). Agents run LOCAL
7
+ * (cloud is disabled see execute-cursor/cursor-mode.ts), so the runner
8
+ * must clone git-repo workspace entries itself and mount local-path entries
9
+ * before the agent runs. Cloud agents previously cloned git repos
10
+ * server-side; that path is no longer used.
8
11
  */
9
12
 
10
13
  import type { Config } from "../../config.js";
11
14
  import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
12
- import { WorkspaceProvisioner } from "../../shared/workspace/provisioner.js";
13
- import type { ProvisionResult, WorkspaceBackend } from "../../shared/workspace/types.js";
14
- import { LocalWorkspaceBackend } from "../../shared/workspace/local-backend.js";
15
- import { ensurePlatformDir } from "../../shared/workspace/platform-dir.js";
16
- import { resolveSessionWorkspaceRoot } from "../../shared/workspace/session-root.js";
15
+ import { WorkspaceProvisioner } from "./provisioner.js";
16
+ import type { ProvisionResult, WorkspaceBackend } from "./types.js";
17
+ import { LocalWorkspaceBackend } from "./local-backend.js";
18
+ import { ensurePlatformDir } from "./platform-dir.js";
19
+ import { resolveSessionWorkspaceRoot } from "./session-root.js";
17
20
 
18
- /** What {@link provisionCursorWorkspace} hands back to the harness. */
19
- export interface CursorWorkspaceProvision {
21
+ /**
22
+ * The two runner settings provisioning reads. A `Pick` over `Config` rather
23
+ * than a fresh options type so a caller holding the whole `Config` (the turn
24
+ * orchestrator, and the runtime that replaces it) passes it unchanged, while
25
+ * the signature states exactly what is consumed: the root every workspace
26
+ * resolves under, and the mode that decides whether git entries are cloned
27
+ * or expected in place. A test constructs the two fields and nothing else.
28
+ */
29
+ export type SessionProvisionConfig = Pick<Config, "workspaceRootDir" | "mode">;
30
+
31
+ /** What {@link provisionSessionWorkspace} hands back to the harness. */
32
+ export interface SessionWorkspaceProvision {
20
33
  /** The directories the agent should operate in (never empty). */
21
34
  readonly workspaceDirs: string[];
22
35
  /**
@@ -33,7 +46,7 @@ export interface CursorWorkspaceProvision {
33
46
  }
34
47
 
35
48
  /**
36
- * Provision the session's workspace entries for a LOCAL Cursor agent.
49
+ * Provision the session's workspace entries for a LOCAL agent.
37
50
  *
38
51
  * Clones git-repo entries (using the user's GITHUB_TOKEN from the resolved
39
52
  * execution environment) and mounts local-path entries, then returns the
@@ -46,12 +59,12 @@ export interface CursorWorkspaceProvision {
46
59
  * provisionGit is idempotent (it reuses an existing clone), so this is safe
47
60
  * to call on every execution, including multi-turn and HITL reinvocations.
48
61
  */
49
- export async function provisionCursorWorkspace(
50
- config: Config,
62
+ export async function provisionSessionWorkspace(
63
+ config: SessionProvisionConfig,
51
64
  session: Session,
52
65
  envVars: Record<string, string>,
53
66
  sessionId: string,
54
- ): Promise<CursorWorkspaceProvision> {
67
+ ): Promise<SessionWorkspaceProvision> {
55
68
  const entries = session.spec?.workspaceEntries ?? [];
56
69
  const platformDir = await ensurePlatformDir(sessionId);
57
70
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"attachment-resolver.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/attachment-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blueprint-resolver.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/blueprint-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cost-guard.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/cost-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,gBAAwB;IAC1E,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAEtE,uDAAuD;AACvD,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,gBAAwB;IAC/E,OAAO,CACL,GAAG,uBAAuB,oBAAoB;QAC9C,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;QAC9E,mCAAmC,CACpC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAC/B,qDAAqD;IACrD,wCAAwC;IACxC,4DAA4D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-resolver.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/env-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAqB,EACrB,WAAmB;IAEnB,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,kEAAkE;IAClE,0EAA0E;IAC1E,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC;QACxD,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAAyB,EAAE,IAAI,CAAC;QAC9C,4DAA4D;QAC5D,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,2CAA2C,WAAW,KAAK;gBACzD,oCAAoC,CACvC,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAChD,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IAEhC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;YAC/B,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACvB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,8CAA8C;QAC5C,cAAc,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI;QACtC,aAAa,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI;QAC5C,gBAAgB,UAAU,CAAC,IAAI,IAAI;QACnC,SAAS,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrD,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exact-apply.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/exact-apply.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-structured-output.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/extract-structured-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAErE;;;;;;;;;;;;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,209 +0,0 @@
1
- /**
2
- * ExecuteCursor Temporal activity — the core of the cursor-runner service.
3
- *
4
- * Implements the same Slim-Payload Pattern as ExecuteGraphton:
5
- * - Receives only executionId + harnessStateId (Cursor agentId)
6
- * - Hydrates execution from DB via gRPC
7
- * - Resolves full agent blueprint (instructions, MCP servers, skills, sub-agents)
8
- * - Runs the Cursor agent, streams events, reports status
9
- * - Returns slim AgentExecutionStatus to workflow
10
- *
11
- * Durable HITL Model:
12
- * When a tool requires approval, the preToolUse hook denies it. The activity
13
- * captures the denied tool details, reports WAITING_FOR_APPROVAL, and RETURNS
14
- * to the workflow. The workflow waits for the approvalGateResolved signal,
15
- * then reinvokes this activity. On reinvocation, the activity resumes the
16
- * Cursor Agent and prompts it to execute the approved tool.
17
- *
18
- * This is identical to the LangGraph flow from the workflow's perspective.
19
- *
20
- * Durable Continuation Model:
21
- * Conversation continuity is carried by the Cursor SDK's native local agent
22
- * state, whose SQLite store is persisted on the durable workspace volume
23
- * (see resolvePlatformOptions) so Agent.resume() survives pod restart,
24
- * reschedule, and snapshot restore. When resume fails (store lost/corrupted
25
- * or agent unknown), resolveAgent() creates a fresh agent and the next turn
26
- * starts from the user message plus re-injected instructions.
27
- */
28
- import { InteractionMode, ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
29
- import type { Config } from "../../config.js";
30
- import type { AgentResolution, AgentResolutionReason } from "./session-lifecycle.js";
31
- import { type ExecuteActivityInput } from "../../shared/activity-input.js";
32
- /**
33
- * Creates the activity functions bound to the runner config.
34
- * Returned object is passed to Temporal Worker.create({ activities }).
35
- */
36
- export declare function createCursorActivities(config: Config): {
37
- ExecuteCursor: (arg0: ExecuteActivityInput | string, arg1?: string) => Promise<unknown>;
38
- };
39
- export interface BuildPromptInput {
40
- resolution: AgentResolution;
41
- approvalDecisions: Map<string, ApprovalAction> | undefined;
42
- instructions: string;
43
- userMessage: string;
44
- skills: import("./prompt-builder.js").SkillMetadata[];
45
- /**
46
- * Serving proactive channels + their templates (the DD-006 D2
47
- * discovery read) — the `<available_channel_templates>` section.
48
- */
49
- channelMessaging?: import("../../shared/channel-attachment.js").ChannelMessagingInfo[];
50
- subAgents: import("@stigmer/protos/ai/stigmer/agentic/agent/v1/spec_pb").SubAgent[];
51
- workspaceDirs: string[];
52
- workspaceFileRefs: string[];
53
- /**
54
- * This turn's resolved attachments for the `<input_files>` section —
55
- * final paths plus duplicate-rename disclosure (attachment-resolver.ts).
56
- */
57
- attachments: import("./prompt-builder.js").AttachmentPromptEntry[];
58
- /**
59
- * Vision facts for the input-files section (T04): which attachments the
60
- * model sees inline and which degraded to path-only. PER-TURN like the
61
- * catchup — it rides both the enhanced prompt and a resumed turn's prefix.
62
- */
63
- vision?: import("./prompt-builder.js").VisionPromptInfo;
64
- /**
65
- * What kind of URL the turn's storage backend mints (issue #532) — keys
66
- * the input-files hand-off wording. Sourced from the resolved
67
- * artifactStorage's self-description; absent when no storage resolved.
68
- */
69
- downloadUrlKind?: import("../../shared/attachment-download-urls.js").DownloadUrlKind;
70
- pendingApprovals: import("@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb").PendingApproval[];
71
- /**
72
- * Approved whole-file writes the runner already applied itself (exact-apply).
73
- * The reinvocation prompt marks these as done so the model does not redo them;
74
- * the remaining approved actions are the ones it must still carry out.
75
- */
76
- appliedToolCallIds?: ReadonlySet<string>;
77
- interactionMode?: InteractionMode;
78
- /**
79
- * The execution is a Build-from-plan turn (spec.execution_config
80
- * .build_from_plan): both prompt paths carry the implement-plan directive.
81
- */
82
- buildFromPlan?: boolean;
83
- /**
84
- * Rollover context bridge from `SessionSpec.metadata` (cloud DD-013).
85
- * Only the enhanced-prompt path consumes it — a resumed agent's native
86
- * context IS the previous conversation, so it needs no bridge.
87
- */
88
- contextBridge?: string;
89
- /**
90
- * Channel sender identity from `SessionSpec.metadata`. Like the bridge,
91
- * only the enhanced-prompt path consumes it — a resumed agent's native
92
- * context already carries it from the session's first turn.
93
- */
94
- senderIdentity?: import("../../shared/sender-identity.js").SenderIdentity;
95
- /**
96
- * Embedder-supplied session context from `SessionSpec.metadata`. Like
97
- * the bridge, only the enhanced-prompt path consumes it — a resumed
98
- * agent's native context already carries it from the session's first
99
- * turn.
100
- */
101
- sessionContext?: string;
102
- /**
103
- * Platform-declared standing preferences from the execution spec's
104
- * `declared_preferences` (stigmer/stigmer#293). Like the bridge, only
105
- * the enhanced-prompt path consumes it — deliberately frozen per Cursor
106
- * session (DD-002 D3): the first turn delivers it into the agent's own
107
- * conversation store, and repeating it on resumed turns would bloat the
108
- * store with identical content.
109
- */
110
- declaredPreferences?: import("../../shared/declared-preferences.js").DeclaredPreferencesContent;
111
- /**
112
- * The subject's confirmed memories from the execution spec's
113
- * `recalled_memories` (stigmer/stigmer#293 Phase 2, DD-006). Like the
114
- * preferences, only the enhanced-prompt path consumes it — deliberately
115
- * frozen per Cursor session (DD-002 D3, inherited by DD-006 D4): the
116
- * first turn delivers it into the agent's own conversation store, and
117
- * repeating it on resumed turns would bloat the store with identical
118
- * content.
119
- */
120
- recalledMemories?: import("../../shared/recalled-memories.js").RecalledMemoriesContent;
121
- /**
122
- * Conversation catchup from the execution spec's `conversation_catchup`
123
- * (cloud DD-006): what happened on the channel conversation that the
124
- * agent has not seen. PER-TURN, so unlike the standing values
125
- * above it rides BOTH prompt paths — the enhanced prompt and a resumed
126
- * turn's prefix (the `interaction_mode` shape). Handback lands
127
- * mid-session on a resumed agent: the resumed path is the one that
128
- * matters. Once delivered, the digest persists in the agent's own
129
- * conversation store; the next turn's field is composed fresh and is
130
- * usually blank.
131
- */
132
- conversationCatchup?: string;
133
- /**
134
- * The turn's recorded transcript rendered as digest lines
135
- * (turn-recovery.ts), composed from `status.messages` at the call site.
136
- * Consumed ONLY by the HITL-recovery shape — a fresh agent that replaced
137
- * a lost one mid-HITL needs the story of the work it no longer remembers
138
- * (issue #366); every other shape either has native context or no prior
139
- * work to tell.
140
- */
141
- turnRecoveryDigest?: string;
142
- }
143
- /**
144
- * Select and build the appropriate prompt based on resolution reason and
145
- * HITL state.
146
- *
147
- * Conversation continuation is carried entirely by the Cursor SDK's native
148
- * agent state (the local SQLite store persisted on the durable workspace
149
- * volume, or cloud server-side state) — there is no separate continuation
150
- * store. The prompt therefore depends only on how the agent was resolved:
151
- *
152
- * 1. HITL reinvocation, -> buildReinvocationPrompt (approval decisions
153
- * resumed agent only; the resumed agent's native context
154
- * carries the prior conversation)
155
- * 2. HITL reinvocation, -> buildHitlRecoveryPrompt (full context +
156
- * fresh agent after the turn's recorded transcript + decisions;
157
- * resume failure the replacement agent's conversation is
158
- * empty, and both fresh-agent crossings —
159
- * resolution-time resume failure and mid-send
160
- * poisoned-handle recovery — land here by
161
- * keying on the reason, issue #366)
162
- * 3. resumed_successfully -> raw userMessage (native context carries it)
163
- * 4. first execution / fresh -> buildEnhancedPrompt (full instructions +
164
- * agent after resume failure skills; no prior conversation to inherit)
165
- */
166
- /**
167
- * Whether this activity invocation is a HITL re-invocation — the turn resumes
168
- * an agent purely to convey approval decisions, carrying NO user message.
169
- * Discriminates the two surfaces that depend on the agent already holding
170
- * this turn's content natively — the prompt shape (below) and the primary
171
- * send's vision payload — but never alone: both pair it with
172
- * `resolution.reason`, because a FRESH agent mid-HITL holds nothing and
173
- * needs the full re-delivery (issue #366).
174
- */
175
- export declare function isHitlReinvocation(approvalDecisions: Map<string, ApprovalAction> | undefined): approvalDecisions is Map<string, ApprovalAction>;
176
- /**
177
- * Whether the PRIMARY send delivers the turn's vision payload. The invariant
178
- * is "images accompany the user's turn message, wherever the conversation
179
- * does not already hold them" — so the only send that skips them is a HITL
180
- * re-invocation of a successfully RESUMED agent, whose native conversation
181
- * carries the images from the original send. A fresh agent mid-HITL
182
- * (resolution-time resume failure — issue #366's vision corollary) holds
183
- * nothing and needs the re-delivery. The mid-send recovery retries always
184
- * run on a fresh agent, so their send sites carry the payload
185
- * unconditionally rather than consulting this.
186
- */
187
- export declare function primarySendCarriesImages(approvalDecisions: Map<string, ApprovalAction> | undefined, reason: AgentResolutionReason): boolean;
188
- /**
189
- * Whether a prompt built for this resolution carries the STANDING context —
190
- * instructions, skills, declared preferences, recalled memories, session
191
- * context. Exactly one resolution shape does not: a successfully RESUMED
192
- * agent, whose native conversation already holds the first message's
193
- * context (both its prompt shapes — the raw follow-up and the
194
- * decisions-only HITL reinvocation — send no standing sections).
195
- *
196
- * The named authority for that routing property (the
197
- * primarySendCarriesImages idiom): buildPrompt's internal routing and the
198
- * activity's standing-context preparation (e.g. the memory selection gate)
199
- * both consult THIS predicate, so the two can never drift.
200
- */
201
- export declare function promptCarriesStandingContext(reason: AgentResolutionReason): boolean;
202
- /**
203
- * Append the structured-output contract to a prompt when the execution
204
- * requests one. A per-turn directive (the buildFromPlan rule): it must ride
205
- * every prompt this turn sends — the primary send AND the poisoned-handle
206
- * recovery rebuild, which previously lost it (issue #366 ride-along).
207
- */
208
- export declare function appendStructuredOutputDirective(basePrompt: string, schema: Record<string, unknown> | undefined): string;
209
- export declare function buildPrompt(input: BuildPromptInput): string;