@stigmer/runner 0.1.0-dev.20261017064309.g94d062a29f89 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2116) hide show
  1. package/README.md +52 -40
  2. package/dist/.build-fingerprint +1 -1
  3. package/dist/activities/ensure-thread.d.ts +2 -2
  4. package/dist/activities/ensure-thread.js +5 -3
  5. package/dist/activities/ensure-thread.js.map +1 -1
  6. package/dist/activities/execute-claude/adapter.d.ts +90 -0
  7. package/dist/activities/execute-claude/adapter.js +216 -0
  8. package/dist/activities/execute-claude/adapter.js.map +1 -0
  9. package/dist/activities/execute-claude/agents.d.ts +128 -0
  10. package/dist/activities/execute-claude/agents.js +259 -0
  11. package/dist/activities/execute-claude/agents.js.map +1 -0
  12. package/dist/activities/execute-claude/claude-capabilities.d.ts +54 -0
  13. package/dist/activities/execute-claude/claude-capabilities.js +68 -0
  14. package/dist/activities/execute-claude/claude-capabilities.js.map +1 -0
  15. package/dist/activities/execute-claude/engine-env.d.ts +64 -0
  16. package/dist/activities/execute-claude/engine-env.js +77 -0
  17. package/dist/activities/execute-claude/engine-env.js.map +1 -0
  18. package/dist/activities/execute-claude/engine-fetch.d.ts +80 -0
  19. package/dist/activities/execute-claude/engine-fetch.js +239 -0
  20. package/dist/activities/execute-claude/engine-fetch.js.map +1 -0
  21. package/dist/activities/execute-claude/engine-home.d.ts +125 -0
  22. package/dist/activities/execute-claude/engine-home.js +210 -0
  23. package/dist/activities/execute-claude/engine-home.js.map +1 -0
  24. package/dist/activities/execute-claude/engine-options.d.ts +116 -0
  25. package/dist/activities/execute-claude/engine-options.js +162 -0
  26. package/dist/activities/execute-claude/engine-options.js.map +1 -0
  27. package/dist/activities/execute-claude/engine-session-id.d.ts +28 -0
  28. package/dist/activities/execute-claude/engine-session-id.js +48 -0
  29. package/dist/activities/execute-claude/engine-session-id.js.map +1 -0
  30. package/dist/activities/execute-claude/file-store.d.ts +40 -0
  31. package/dist/activities/execute-claude/file-store.js +108 -0
  32. package/dist/activities/execute-claude/file-store.js.map +1 -0
  33. package/dist/activities/execute-claude/gate.d.ts +456 -0
  34. package/dist/activities/execute-claude/gate.js +712 -0
  35. package/dist/activities/execute-claude/gate.js.map +1 -0
  36. package/dist/activities/execute-claude/hook-views.d.ts +59 -0
  37. package/dist/activities/execute-claude/hook-views.js +133 -0
  38. package/dist/activities/execute-claude/hook-views.js.map +1 -0
  39. package/dist/activities/execute-claude/hooks.d.ts +64 -0
  40. package/dist/activities/execute-claude/hooks.js +136 -0
  41. package/dist/activities/execute-claude/hooks.js.map +1 -0
  42. package/dist/activities/execute-claude/host-shell.d.ts +74 -0
  43. package/dist/activities/execute-claude/host-shell.js +109 -0
  44. package/dist/activities/execute-claude/host-shell.js.map +1 -0
  45. package/dist/activities/execute-claude/http-store.d.ts +42 -0
  46. package/dist/activities/execute-claude/http-store.js +85 -0
  47. package/dist/activities/execute-claude/http-store.js.map +1 -0
  48. package/dist/activities/execute-claude/loopback-mcp.d.ts +78 -0
  49. package/dist/activities/execute-claude/loopback-mcp.js +147 -0
  50. package/dist/activities/execute-claude/loopback-mcp.js.map +1 -0
  51. package/dist/activities/execute-claude/mcp-bridge.d.ts +63 -0
  52. package/dist/activities/execute-claude/mcp-bridge.js +145 -0
  53. package/dist/activities/execute-claude/mcp-bridge.js.map +1 -0
  54. package/dist/activities/execute-claude/mid-turn-input.d.ts +72 -0
  55. package/dist/activities/execute-claude/mid-turn-input.js +123 -0
  56. package/dist/activities/execute-claude/mid-turn-input.js.map +1 -0
  57. package/dist/activities/execute-claude/prompt-stream.d.ts +24 -0
  58. package/dist/activities/execute-claude/prompt-stream.js +47 -0
  59. package/dist/activities/execute-claude/prompt-stream.js.map +1 -0
  60. package/dist/activities/execute-claude/prompt.d.ts +84 -0
  61. package/dist/activities/execute-claude/prompt.js +228 -0
  62. package/dist/activities/execute-claude/prompt.js.map +1 -0
  63. package/dist/activities/execute-claude/session-store.d.ts +75 -0
  64. package/dist/activities/execute-claude/session-store.js +170 -0
  65. package/dist/activities/execute-claude/session-store.js.map +1 -0
  66. package/dist/activities/execute-claude/settle.d.ts +45 -0
  67. package/dist/activities/execute-claude/settle.js +71 -0
  68. package/dist/activities/execute-claude/settle.js.map +1 -0
  69. package/dist/activities/execute-claude/skill-plugins.d.ts +79 -0
  70. package/dist/activities/execute-claude/skill-plugins.js +146 -0
  71. package/dist/activities/execute-claude/skill-plugins.js.map +1 -0
  72. package/dist/activities/execute-claude/transcript-facts.d.ts +42 -0
  73. package/dist/activities/execute-claude/transcript-facts.js +61 -0
  74. package/dist/activities/execute-claude/transcript-facts.js.map +1 -0
  75. package/dist/activities/execute-claude/translator.d.ts +112 -0
  76. package/dist/activities/execute-claude/translator.js +282 -0
  77. package/dist/activities/execute-claude/translator.js.map +1 -0
  78. package/dist/activities/execute-claude/turn.d.ts +119 -0
  79. package/dist/activities/execute-claude/turn.js +643 -0
  80. package/dist/activities/execute-claude/turn.js.map +1 -0
  81. package/dist/activities/execute-claude/usage.d.ts +55 -0
  82. package/dist/activities/execute-claude/usage.js +108 -0
  83. package/dist/activities/execute-claude/usage.js.map +1 -0
  84. package/dist/activities/execute-deep-agent/adapter.d.ts +12 -8
  85. package/dist/activities/execute-deep-agent/adapter.js +32 -12
  86. package/dist/activities/execute-deep-agent/adapter.js.map +1 -1
  87. package/dist/activities/execute-deep-agent/approval-file-change.d.ts +3 -4
  88. package/dist/activities/execute-deep-agent/approval-file-change.js +3 -4
  89. package/dist/activities/execute-deep-agent/approval-file-change.js.map +1 -1
  90. package/dist/activities/execute-deep-agent/background-facts.d.ts +36 -0
  91. package/dist/activities/execute-deep-agent/background-facts.js +104 -0
  92. package/dist/activities/execute-deep-agent/background-facts.js.map +1 -0
  93. package/dist/activities/execute-deep-agent/cas-capture-backend.d.ts +33 -8
  94. package/dist/activities/execute-deep-agent/cas-capture-backend.js +64 -7
  95. package/dist/activities/execute-deep-agent/cas-capture-backend.js.map +1 -1
  96. package/dist/activities/execute-deep-agent/deep-agent-capabilities.d.ts +16 -13
  97. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js +21 -20
  98. package/dist/activities/execute-deep-agent/deep-agent-capabilities.js.map +1 -1
  99. package/dist/activities/execute-deep-agent/deepagents-profiles.d.ts +1 -1
  100. package/dist/activities/execute-deep-agent/deepagents-profiles.js +1 -1
  101. package/dist/activities/execute-deep-agent/deepagents-profiles.js.map +1 -1
  102. package/dist/activities/execute-deep-agent/engine-tools.d.ts +1 -1
  103. package/dist/activities/execute-deep-agent/engine-tools.js +1 -1
  104. package/dist/activities/execute-deep-agent/hitl.d.ts +13 -38
  105. package/dist/activities/execute-deep-agent/hitl.js +19 -65
  106. package/dist/activities/execute-deep-agent/hitl.js.map +1 -1
  107. package/dist/activities/execute-deep-agent/hooks-setup.d.ts +6 -6
  108. package/dist/activities/execute-deep-agent/hooks-setup.js +8 -8
  109. package/dist/activities/execute-deep-agent/hooks-setup.js.map +1 -1
  110. package/dist/activities/execute-deep-agent/input-barrier.d.ts +44 -0
  111. package/dist/activities/execute-deep-agent/input-barrier.js +67 -0
  112. package/dist/activities/execute-deep-agent/input-barrier.js.map +1 -0
  113. package/dist/activities/execute-deep-agent/loose-edit.d.ts +42 -0
  114. package/dist/activities/execute-deep-agent/loose-edit.js +67 -0
  115. package/dist/activities/execute-deep-agent/loose-edit.js.map +1 -0
  116. package/dist/activities/execute-deep-agent/platform-route.d.ts +126 -46
  117. package/dist/activities/execute-deep-agent/platform-route.js +196 -84
  118. package/dist/activities/execute-deep-agent/platform-route.js.map +1 -1
  119. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +34 -21
  120. package/dist/activities/execute-deep-agent/prompt-builder.js +33 -25
  121. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
  122. package/dist/activities/execute-deep-agent/repository-instructions.d.ts +22 -0
  123. package/dist/activities/execute-deep-agent/repository-instructions.js +41 -0
  124. package/dist/activities/execute-deep-agent/repository-instructions.js.map +1 -0
  125. package/dist/activities/execute-deep-agent/resumed-history.d.ts +1 -1
  126. package/dist/activities/execute-deep-agent/resumed-history.js +1 -1
  127. package/dist/activities/execute-deep-agent/run-stamp.d.ts +37 -0
  128. package/dist/activities/execute-deep-agent/run-stamp.js +41 -0
  129. package/dist/activities/execute-deep-agent/run-stamp.js.map +1 -0
  130. package/dist/activities/execute-deep-agent/shell-tool.d.ts +138 -0
  131. package/dist/activities/execute-deep-agent/shell-tool.js +280 -0
  132. package/dist/activities/execute-deep-agent/shell-tool.js.map +1 -0
  133. package/dist/activities/execute-deep-agent/subagent-transformer.d.ts +69 -8
  134. package/dist/activities/execute-deep-agent/subagent-transformer.js +78 -26
  135. package/dist/activities/execute-deep-agent/subagent-transformer.js.map +1 -1
  136. package/dist/activities/execute-deep-agent/subagent-wiring.d.ts +23 -6
  137. package/dist/activities/execute-deep-agent/subagent-wiring.js +40 -6
  138. package/dist/activities/execute-deep-agent/subagent-wiring.js.map +1 -1
  139. package/dist/activities/execute-deep-agent/translator.d.ts +51 -23
  140. package/dist/activities/execute-deep-agent/translator.js +108 -34
  141. package/dist/activities/execute-deep-agent/translator.js.map +1 -1
  142. package/dist/activities/execute-deep-agent/turn-input-middleware.d.ts +80 -0
  143. package/dist/activities/execute-deep-agent/turn-input-middleware.js +121 -0
  144. package/dist/activities/execute-deep-agent/turn-input-middleware.js.map +1 -0
  145. package/dist/activities/execute-deep-agent/turn-settle.d.ts +3 -5
  146. package/dist/activities/execute-deep-agent/turn-settle.js +3 -19
  147. package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -1
  148. package/dist/activities/execute-deep-agent/turn-setup.d.ts +63 -28
  149. package/dist/activities/execute-deep-agent/turn-setup.js +219 -85
  150. package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -1
  151. package/dist/activities/execute-deep-agent/turn-stream.d.ts +29 -19
  152. package/dist/activities/execute-deep-agent/turn-stream.js +71 -22
  153. package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -1
  154. package/dist/activities/execute-deep-agent/turn.d.ts +17 -6
  155. package/dist/activities/execute-deep-agent/turn.js +79 -23
  156. package/dist/activities/execute-deep-agent/turn.js.map +1 -1
  157. package/dist/activities/execute-deep-agent/v3-event-recorder.d.ts +1 -1
  158. package/dist/activities/execute-deep-agent/v3-event-recorder.js +1 -1
  159. package/dist/activities/generate-session-subject.d.ts +14 -24
  160. package/dist/activities/generate-session-subject.js +17 -25
  161. package/dist/activities/generate-session-subject.js.map +1 -1
  162. package/dist/activities/list-plugin-tools.d.ts +8 -0
  163. package/dist/activities/list-plugin-tools.js +15 -0
  164. package/dist/activities/list-plugin-tools.js.map +1 -1
  165. package/dist/agent-host/channel.d.ts +4 -1
  166. package/dist/agent-host/channel.js +8 -3
  167. package/dist/agent-host/channel.js.map +1 -1
  168. package/dist/agent-host/codec.d.ts +28 -54
  169. package/dist/agent-host/codec.js +50 -69
  170. package/dist/agent-host/codec.js.map +1 -1
  171. package/dist/agent-host/entry.js +0 -6
  172. package/dist/agent-host/entry.js.map +1 -1
  173. package/dist/agent-host/environment.d.ts +13 -3
  174. package/dist/agent-host/environment.js +20 -4
  175. package/dist/agent-host/environment.js.map +1 -1
  176. package/dist/agent-host/host-sink.d.ts +17 -5
  177. package/dist/agent-host/host-sink.js +55 -10
  178. package/dist/agent-host/host-sink.js.map +1 -1
  179. package/dist/agent-host/host.d.ts +2 -2
  180. package/dist/agent-host/host.js +21 -32
  181. package/dist/agent-host/host.js.map +1 -1
  182. package/dist/agent-host/hosting.d.ts +5 -31
  183. package/dist/agent-host/hosting.js +13 -46
  184. package/dist/agent-host/hosting.js.map +1 -1
  185. package/dist/agent-host/protocol.d.ts +95 -49
  186. package/dist/agent-host/protocol.js +116 -7
  187. package/dist/agent-host/protocol.js.map +1 -1
  188. package/dist/agent-host/remote-adapter.d.ts +14 -11
  189. package/dist/agent-host/remote-adapter.js +59 -42
  190. package/dist/agent-host/remote-adapter.js.map +1 -1
  191. package/dist/agent-host/remote-fs.js +20 -0
  192. package/dist/agent-host/remote-fs.js.map +1 -1
  193. package/dist/agent-host/supervisor.d.ts +9 -7
  194. package/dist/agent-host/supervisor.js +25 -18
  195. package/dist/agent-host/supervisor.js.map +1 -1
  196. package/dist/agent-proxy/lanes.d.ts +16 -5
  197. package/dist/agent-proxy/lanes.js +26 -9
  198. package/dist/agent-proxy/lanes.js.map +1 -1
  199. package/dist/agent-proxy/relay.d.ts +8 -10
  200. package/dist/agent-proxy/relay.js +2 -18
  201. package/dist/agent-proxy/relay.js.map +1 -1
  202. package/dist/agent-proxy/server.d.ts +22 -11
  203. package/dist/agent-proxy/server.js +61 -31
  204. package/dist/agent-proxy/server.js.map +1 -1
  205. package/dist/attach/push.d.ts +12 -6
  206. package/dist/attach/push.js +26 -10
  207. package/dist/attach/push.js.map +1 -1
  208. package/dist/attach/waiter.d.ts +5 -1
  209. package/dist/attach/waiter.js +20 -3
  210. package/dist/attach/waiter.js.map +1 -1
  211. package/dist/bootstrap.d.ts +16 -9
  212. package/dist/bootstrap.js +15 -7
  213. package/dist/bootstrap.js.map +1 -1
  214. package/dist/client/server-contracts.d.ts +2 -2
  215. package/dist/client/server-contracts.js +2 -2
  216. package/dist/client/stigmer-client.d.ts +84 -44
  217. package/dist/client/stigmer-client.js +84 -46
  218. package/dist/client/stigmer-client.js.map +1 -1
  219. package/dist/client/token-claims.d.ts +3 -6
  220. package/dist/client/token-claims.js +3 -6
  221. package/dist/client/token-claims.js.map +1 -1
  222. package/dist/config.d.ts +95 -80
  223. package/dist/config.js +80 -39
  224. package/dist/config.js.map +1 -1
  225. package/dist/environment/install.d.ts +141 -0
  226. package/dist/environment/install.js +389 -0
  227. package/dist/environment/install.js.map +1 -0
  228. package/dist/environment/prefix.d.ts +13 -0
  229. package/dist/environment/prefix.js +20 -0
  230. package/dist/environment/prefix.js.map +1 -0
  231. package/dist/environment/spec.d.ts +67 -0
  232. package/dist/environment/spec.js +113 -0
  233. package/dist/environment/spec.js.map +1 -0
  234. package/dist/exit-backstop.d.ts +3 -3
  235. package/dist/exit-backstop.js +3 -3
  236. package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.d.ts +58 -39
  237. package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.js +57 -38
  238. package/dist/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.js.map +1 -1
  239. package/dist/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.d.ts +1 -1
  240. package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.d.ts +141 -92
  241. package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.js +17 -7
  242. package/dist/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.js.map +1 -1
  243. package/dist/gen-ai-conventions.d.ts +1 -7
  244. package/dist/gen-ai-conventions.js +2 -8
  245. package/dist/gen-ai-conventions.js.map +1 -1
  246. package/dist/harness/approval-answers.d.ts +3 -7
  247. package/dist/harness/approval-answers.js +5 -7
  248. package/dist/harness/approval-answers.js.map +1 -1
  249. package/dist/harness/approval-decisions.d.ts +7 -8
  250. package/dist/harness/approval-decisions.js +7 -8
  251. package/dist/harness/approval-decisions.js.map +1 -1
  252. package/dist/harness/background-stops.d.ts +74 -0
  253. package/dist/harness/background-stops.js +126 -0
  254. package/dist/harness/background-stops.js.map +1 -0
  255. package/dist/harness/capabilities.d.ts +80 -86
  256. package/dist/harness/capabilities.js +61 -32
  257. package/dist/harness/capabilities.js.map +1 -1
  258. package/dist/harness/capture.d.ts +23 -18
  259. package/dist/harness/capture.js +37 -47
  260. package/dist/harness/capture.js.map +1 -1
  261. package/dist/harness/cost-cap-watch.d.ts +17 -1
  262. package/dist/harness/cost-cap-watch.js +24 -0
  263. package/dist/harness/cost-cap-watch.js.map +1 -1
  264. package/dist/harness/events/emitter.d.ts +124 -9
  265. package/dist/harness/events/emitter.js +384 -22
  266. package/dist/harness/events/emitter.js.map +1 -1
  267. package/dist/harness/events/ids.d.ts +21 -2
  268. package/dist/harness/events/ids.js +30 -2
  269. package/dist/harness/events/ids.js.map +1 -1
  270. package/dist/harness/liveness-pump.d.ts +73 -0
  271. package/dist/harness/liveness-pump.js +117 -0
  272. package/dist/harness/liveness-pump.js.map +1 -0
  273. package/dist/harness/open-operations.d.ts +158 -0
  274. package/dist/harness/open-operations.js +253 -0
  275. package/dist/harness/open-operations.js.map +1 -0
  276. package/dist/harness/owed-undos.d.ts +5 -3
  277. package/dist/harness/owed-undos.js +6 -4
  278. package/dist/harness/owed-undos.js.map +1 -1
  279. package/dist/harness/persist-chokepoint.d.ts +41 -6
  280. package/dist/harness/persist-chokepoint.js +69 -7
  281. package/dist/harness/persist-chokepoint.js.map +1 -1
  282. package/dist/harness/preview-pump.d.ts +47 -0
  283. package/dist/harness/preview-pump.js +67 -0
  284. package/dist/harness/preview-pump.js.map +1 -0
  285. package/dist/harness/registry.d.ts +22 -32
  286. package/dist/harness/registry.js +22 -27
  287. package/dist/harness/registry.js.map +1 -1
  288. package/dist/harness/run-span.d.ts +1 -2
  289. package/dist/harness/run-span.js +1 -2
  290. package/dist/harness/run-span.js.map +1 -1
  291. package/dist/harness/run-turn.d.ts +20 -15
  292. package/dist/harness/run-turn.js +304 -101
  293. package/dist/harness/run-turn.js.map +1 -1
  294. package/dist/harness/stop-controller.d.ts +41 -8
  295. package/dist/harness/stop-controller.js +42 -8
  296. package/dist/harness/stop-controller.js.map +1 -1
  297. package/dist/harness/terminal-table.d.ts +126 -24
  298. package/dist/harness/terminal-table.js +138 -34
  299. package/dist/harness/terminal-table.js.map +1 -1
  300. package/dist/harness/transcript/builder.d.ts +59 -51
  301. package/dist/harness/transcript/builder.js +192 -139
  302. package/dist/harness/transcript/builder.js.map +1 -1
  303. package/dist/harness/transcript/events.d.ts +142 -60
  304. package/dist/harness/transcript/events.js +21 -15
  305. package/dist/harness/transcript/events.js.map +1 -1
  306. package/dist/harness/transcript/resume-seed.d.ts +7 -9
  307. package/dist/harness/transcript/resume-seed.js +7 -10
  308. package/dist/harness/transcript/resume-seed.js.map +1 -1
  309. package/dist/harness/transcript/state.d.ts +4 -5
  310. package/dist/harness/transcript/state.js +4 -5
  311. package/dist/harness/transcript/state.js.map +1 -1
  312. package/dist/harness/turn-context.d.ts +151 -161
  313. package/dist/harness/turn-context.js +257 -277
  314. package/dist/harness/turn-context.js.map +1 -1
  315. package/dist/harness/turn-input.d.ts +106 -0
  316. package/dist/harness/turn-input.js +97 -0
  317. package/dist/harness/turn-input.js.map +1 -0
  318. package/dist/harness/turn-timeline.d.ts +35 -33
  319. package/dist/harness/turn-timeline.js +72 -37
  320. package/dist/harness/turn-timeline.js.map +1 -1
  321. package/dist/harness/types.d.ts +149 -108
  322. package/dist/harness/types.js +4 -5
  323. package/dist/harness/types.js.map +1 -1
  324. package/dist/harness/usage-accumulator.d.ts +19 -6
  325. package/dist/harness/usage-accumulator.js +29 -7
  326. package/dist/harness/usage-accumulator.js.map +1 -1
  327. package/dist/harness-adapters.d.ts +17 -17
  328. package/dist/harness-adapters.js +21 -21
  329. package/dist/harness-adapters.js.map +1 -1
  330. package/dist/in-flight.d.ts +1 -1
  331. package/dist/in-flight.js +1 -1
  332. package/dist/interceptors/run-credential-activity.d.ts +2 -4
  333. package/dist/interceptors/run-credential-activity.js +2 -4
  334. package/dist/interceptors/run-credential-activity.js.map +1 -1
  335. package/dist/ipc-protocol-fixtures.d.ts +0 -1
  336. package/dist/ipc-protocol-fixtures.js +0 -1
  337. package/dist/ipc-protocol-fixtures.js.map +1 -1
  338. package/dist/ipc-protocol.d.ts +1 -1
  339. package/dist/ipc-protocol.js +1 -1
  340. package/dist/main.d.ts +1 -8
  341. package/dist/main.js +26 -144
  342. package/dist/main.js.map +1 -1
  343. package/dist/middleware/approval-gate.d.ts +64 -76
  344. package/dist/middleware/approval-gate.js +149 -158
  345. package/dist/middleware/approval-gate.js.map +1 -1
  346. package/dist/middleware/background-commands.d.ts +102 -0
  347. package/dist/middleware/background-commands.js +303 -0
  348. package/dist/middleware/background-commands.js.map +1 -0
  349. package/dist/middleware/compaction-prompt.d.ts +69 -0
  350. package/dist/middleware/compaction-prompt.js +132 -0
  351. package/dist/middleware/compaction-prompt.js.map +1 -0
  352. package/dist/middleware/compaction.d.ts +71 -0
  353. package/dist/middleware/compaction.js +104 -0
  354. package/dist/middleware/compaction.js.map +1 -0
  355. package/dist/middleware/error-hints.d.ts +3 -1
  356. package/dist/middleware/error-hints.js +6 -1
  357. package/dist/middleware/error-hints.js.map +1 -1
  358. package/dist/middleware/execution-budget.d.ts +1 -1
  359. package/dist/middleware/execution-budget.js +1 -1
  360. package/dist/middleware/folder-instructions.d.ts +94 -0
  361. package/dist/middleware/folder-instructions.js +217 -0
  362. package/dist/middleware/folder-instructions.js.map +1 -0
  363. package/dist/middleware/index.d.ts +33 -8
  364. package/dist/middleware/index.js +56 -9
  365. package/dist/middleware/index.js.map +1 -1
  366. package/dist/middleware/model-retry.d.ts +52 -0
  367. package/dist/middleware/model-retry.js +98 -0
  368. package/dist/middleware/model-retry.js.map +1 -0
  369. package/dist/middleware/otel-spans.d.ts +7 -3
  370. package/dist/middleware/otel-spans.js +13 -6
  371. package/dist/middleware/otel-spans.js.map +1 -1
  372. package/dist/middleware/path-normalization.d.ts +3 -3
  373. package/dist/middleware/path-normalization.js +3 -3
  374. package/dist/middleware/shell.d.ts +59 -0
  375. package/dist/middleware/shell.js +133 -0
  376. package/dist/middleware/shell.js.map +1 -0
  377. package/dist/middleware/tool-intent.d.ts +5 -5
  378. package/dist/middleware/tool-intent.js +5 -5
  379. package/dist/middleware/tool-scope.d.ts +67 -30
  380. package/dist/middleware/tool-scope.js +103 -67
  381. package/dist/middleware/tool-scope.js.map +1 -1
  382. package/dist/middleware/tool-truncation.d.ts +140 -8
  383. package/dist/middleware/tool-truncation.js +304 -32
  384. package/dist/middleware/tool-truncation.js.map +1 -1
  385. package/dist/middleware/turn-boundary.d.ts +59 -0
  386. package/dist/middleware/turn-boundary.js +75 -0
  387. package/dist/middleware/turn-boundary.js.map +1 -0
  388. package/dist/middleware/types.d.ts +70 -4
  389. package/dist/middleware/types.js +1 -1
  390. package/dist/operator-bounds.d.ts +24 -0
  391. package/dist/operator-bounds.js +24 -0
  392. package/dist/operator-bounds.js.map +1 -0
  393. package/dist/otel-export.d.ts +1 -1
  394. package/dist/otel-export.js +1 -1
  395. package/dist/otel-metrics.d.ts +1 -2
  396. package/dist/otel-metrics.js +1 -5
  397. package/dist/otel-metrics.js.map +1 -1
  398. package/dist/otel.d.ts +0 -10
  399. package/dist/otel.js +0 -29
  400. package/dist/otel.js.map +1 -1
  401. package/dist/preflight.d.ts +12 -4
  402. package/dist/preflight.js +21 -4
  403. package/dist/preflight.js.map +1 -1
  404. package/dist/run-trace-id.d.ts +1 -1
  405. package/dist/run-trace-id.js +1 -1
  406. package/dist/runner-manager.d.ts +21 -38
  407. package/dist/runner-manager.js +85 -185
  408. package/dist/runner-manager.js.map +1 -1
  409. package/dist/runner-token-coordinator.d.ts +5 -4
  410. package/dist/runner-token-coordinator.js +3 -2
  411. package/dist/runner-token-coordinator.js.map +1 -1
  412. package/dist/runner.d.ts +47 -21
  413. package/dist/runner.js +86 -72
  414. package/dist/runner.js.map +1 -1
  415. package/dist/sandbox-token-renewal.d.ts +11 -8
  416. package/dist/sandbox-token-renewal.js +20 -13
  417. package/dist/sandbox-token-renewal.js.map +1 -1
  418. package/dist/shared/activity-input.d.ts +13 -25
  419. package/dist/shared/activity-input.js +13 -28
  420. package/dist/shared/activity-input.js.map +1 -1
  421. package/dist/shared/agent-fs.d.ts +4 -0
  422. package/dist/shared/agent-fs.js +21 -0
  423. package/dist/shared/agent-fs.js.map +1 -1
  424. package/dist/shared/agent-handover.d.ts +2 -2
  425. package/dist/shared/agent-handover.js +3 -3
  426. package/dist/shared/agent-handover.js.map +1 -1
  427. package/dist/shared/agent-identity.d.ts +24 -1
  428. package/dist/shared/agent-identity.js +53 -2
  429. package/dist/shared/agent-identity.js.map +1 -1
  430. package/dist/shared/approval-canonicalize.js +1 -1
  431. package/dist/shared/approval-canonicalize.js.map +1 -1
  432. package/dist/shared/approval-fingerprint.d.ts +6 -54
  433. package/dist/shared/approval-fingerprint.js +7 -53
  434. package/dist/shared/approval-fingerprint.js.map +1 -1
  435. package/dist/shared/approval-policy.d.ts +30 -27
  436. package/dist/shared/approval-policy.js +28 -23
  437. package/dist/shared/approval-policy.js.map +1 -1
  438. package/dist/shared/archive-mount.d.ts +20 -19
  439. package/dist/shared/archive-mount.js +11 -10
  440. package/dist/shared/archive-mount.js.map +1 -1
  441. package/dist/shared/args-preview.d.ts +15 -25
  442. package/dist/shared/args-preview.js +15 -25
  443. package/dist/shared/args-preview.js.map +1 -1
  444. package/dist/shared/artifact-storage.d.ts +9 -12
  445. package/dist/shared/artifact-storage.js +9 -12
  446. package/dist/shared/artifact-storage.js.map +1 -1
  447. package/dist/shared/attachment-vision.d.ts +43 -46
  448. package/dist/shared/attachment-vision.js +31 -53
  449. package/dist/shared/attachment-vision.js.map +1 -1
  450. package/dist/shared/blueprint-resolver.d.ts +0 -16
  451. package/dist/shared/blueprint-resolver.js +0 -28
  452. package/dist/shared/blueprint-resolver.js.map +1 -1
  453. package/dist/shared/builtin-assistant-prompt.d.ts +3 -3
  454. package/dist/shared/builtin-assistant-prompt.js +3 -3
  455. package/dist/shared/builtin-judge.d.ts +1 -1
  456. package/dist/shared/builtin-judge.js +5 -5
  457. package/dist/shared/builtin-judge.js.map +1 -1
  458. package/dist/shared/channel-attachment.js +3 -5
  459. package/dist/shared/channel-attachment.js.map +1 -1
  460. package/dist/shared/checkpointer/factory.d.ts +2 -3
  461. package/dist/shared/checkpointer/factory.js +2 -3
  462. package/dist/shared/checkpointer/factory.js.map +1 -1
  463. package/dist/shared/checkpointer/http-saver.d.ts +7 -8
  464. package/dist/shared/checkpointer/http-saver.js +10 -11
  465. package/dist/shared/checkpointer/http-saver.js.map +1 -1
  466. package/dist/shared/checkpointer/sqlite-saver.d.ts +2 -2
  467. package/dist/shared/checkpointer/sqlite-saver.js +2 -2
  468. package/dist/shared/checkpointer/types.d.ts +1 -1
  469. package/dist/shared/checkpointer/types.js +1 -1
  470. package/dist/shared/cold-start-timing.js +0 -3
  471. package/dist/shared/cold-start-timing.js.map +1 -1
  472. package/dist/shared/context-bridge.d.ts +1 -2
  473. package/dist/shared/context-bridge.js +1 -2
  474. package/dist/shared/context-bridge.js.map +1 -1
  475. package/dist/shared/conversation-catchup.d.ts +1 -1
  476. package/dist/shared/conversation-catchup.js +1 -1
  477. package/dist/shared/cost-guard.d.ts +4 -5
  478. package/dist/shared/cost-guard.js +4 -5
  479. package/dist/shared/cost-guard.js.map +1 -1
  480. package/dist/shared/edit-match.d.ts +85 -0
  481. package/dist/shared/edit-match.js +261 -0
  482. package/dist/shared/edit-match.js.map +1 -0
  483. package/dist/shared/error-chain.d.ts +31 -0
  484. package/dist/shared/error-chain.js +75 -0
  485. package/dist/shared/error-chain.js.map +1 -0
  486. package/dist/shared/eval-case/agent-mock.d.ts +1 -1
  487. package/dist/shared/eval-case/agent-mock.js +2 -2
  488. package/dist/shared/eval-case/agent-mock.js.map +1 -1
  489. package/dist/shared/eval-case/case-archive.d.ts +17 -6
  490. package/dist/shared/eval-case/case-archive.js +31 -16
  491. package/dist/shared/eval-case/case-archive.js.map +1 -1
  492. package/dist/shared/eval-case/mock-endpoint.d.ts +0 -5
  493. package/dist/shared/eval-case/mock-endpoint.js +1 -2
  494. package/dist/shared/eval-case/mock-endpoint.js.map +1 -1
  495. package/dist/shared/eval-case/prepare-case.d.ts +11 -10
  496. package/dist/shared/eval-case/prepare-case.js +7 -6
  497. package/dist/shared/eval-case/prepare-case.js.map +1 -1
  498. package/dist/shared/execution-context.d.ts +8 -11
  499. package/dist/shared/execution-context.js +8 -11
  500. package/dist/shared/execution-context.js.map +1 -1
  501. package/dist/shared/extract-structured-output.d.ts +2 -2
  502. package/dist/shared/extract-structured-output.js +2 -2
  503. package/dist/shared/file-change.d.ts +6 -6
  504. package/dist/shared/file-change.js +6 -6
  505. package/dist/shared/file-change.js.map +1 -1
  506. package/dist/shared/file-edit-policy.d.ts +154 -0
  507. package/dist/shared/file-edit-policy.js +143 -0
  508. package/dist/shared/file-edit-policy.js.map +1 -0
  509. package/dist/shared/file-mount.d.ts +114 -0
  510. package/dist/shared/file-mount.js +369 -0
  511. package/dist/shared/file-mount.js.map +1 -0
  512. package/dist/shared/file-tools.d.ts +18 -46
  513. package/dist/shared/file-tools.js +23 -67
  514. package/dist/shared/file-tools.js.map +1 -1
  515. package/dist/shared/filereview/capture.d.ts +22 -6
  516. package/dist/shared/filereview/capture.js +23 -6
  517. package/dist/shared/filereview/capture.js.map +1 -1
  518. package/dist/shared/filereview/cas-capture-observer.d.ts +86 -0
  519. package/dist/shared/filereview/cas-capture-observer.js +120 -0
  520. package/dist/shared/filereview/cas-capture-observer.js.map +1 -0
  521. package/dist/shared/filereview/cas-substrate.d.ts +2 -2
  522. package/dist/shared/filereview/cas-substrate.js +2 -2
  523. package/dist/shared/filereview/cas-touched.d.ts +2 -2
  524. package/dist/shared/filereview/cas-touched.js +2 -2
  525. package/dist/shared/filereview/command-provenance.d.ts +5 -8
  526. package/dist/shared/filereview/command-provenance.js +1 -1
  527. package/dist/shared/filereview/command-provenance.js.map +1 -1
  528. package/dist/shared/filereview/digest.d.ts +2 -3
  529. package/dist/shared/filereview/digest.js +4 -6
  530. package/dist/shared/filereview/digest.js.map +1 -1
  531. package/dist/shared/filereview/events.d.ts +4 -4
  532. package/dist/shared/filereview/events.js +5 -6
  533. package/dist/shared/filereview/events.js.map +1 -1
  534. package/dist/shared/filereview/git-substrate.d.ts +21 -10
  535. package/dist/shared/filereview/git-substrate.js +62 -18
  536. package/dist/shared/filereview/git-substrate.js.map +1 -1
  537. package/dist/shared/filereview/index.d.ts +2 -2
  538. package/dist/shared/filereview/index.js +2 -2
  539. package/dist/shared/filereview/progress.d.ts +8 -0
  540. package/dist/shared/filereview/progress.js +7 -1
  541. package/dist/shared/filereview/progress.js.map +1 -1
  542. package/dist/shared/filereview/record.d.ts +23 -0
  543. package/dist/shared/filereview/record.js +49 -0
  544. package/dist/shared/filereview/record.js.map +1 -1
  545. package/dist/shared/fingerprint-secret.d.ts +2 -3
  546. package/dist/shared/fingerprint-secret.js +2 -3
  547. package/dist/shared/fingerprint-secret.js.map +1 -1
  548. package/dist/shared/heartbeat.d.ts +22 -0
  549. package/dist/shared/heartbeat.js +22 -0
  550. package/dist/shared/heartbeat.js.map +1 -1
  551. package/dist/shared/hooks/condition.d.ts +9 -4
  552. package/dist/shared/hooks/condition.js +16 -8
  553. package/dist/shared/hooks/condition.js.map +1 -1
  554. package/dist/shared/hooks/evaluate.d.ts +9 -12
  555. package/dist/shared/hooks/evaluate.js +30 -13
  556. package/dist/shared/hooks/evaluate.js.map +1 -1
  557. package/dist/shared/hooks/formats/claude-code.d.ts +6 -3
  558. package/dist/shared/hooks/formats/claude-code.js +10 -4
  559. package/dist/shared/hooks/formats/claude-code.js.map +1 -1
  560. package/dist/shared/hooks/formats/cursor.d.ts +3 -3
  561. package/dist/shared/hooks/formats/cursor.js +3 -13
  562. package/dist/shared/hooks/formats/cursor.js.map +1 -1
  563. package/dist/shared/hooks/hook-set.d.ts +4 -0
  564. package/dist/shared/hooks/hook-set.js +3 -1
  565. package/dist/shared/hooks/hook-set.js.map +1 -1
  566. package/dist/shared/hooks/matcher.d.ts +37 -10
  567. package/dist/shared/hooks/matcher.js +75 -20
  568. package/dist/shared/hooks/matcher.js.map +1 -1
  569. package/dist/shared/hooks/messages.d.ts +13 -6
  570. package/dist/shared/hooks/messages.js +17 -6
  571. package/dist/shared/hooks/messages.js.map +1 -1
  572. package/dist/shared/hooks/setup.d.ts +3 -3
  573. package/dist/shared/hooks/setup.js +7 -5
  574. package/dist/shared/hooks/setup.js.map +1 -1
  575. package/dist/shared/hooks/shell-commands.d.ts +22 -7
  576. package/dist/shared/hooks/shell-commands.js +75 -23
  577. package/dist/shared/hooks/shell-commands.js.map +1 -1
  578. package/dist/shared/hooks/tool-view.d.ts +20 -21
  579. package/dist/shared/hooks/tool-view.js +39 -39
  580. package/dist/shared/hooks/tool-view.js.map +1 -1
  581. package/dist/shared/implement-plan-prompt.d.ts +19 -12
  582. package/dist/shared/implement-plan-prompt.js +19 -20
  583. package/dist/shared/implement-plan-prompt.js.map +1 -1
  584. package/dist/shared/json-schema-to-zod.d.ts +2 -2
  585. package/dist/shared/json-schema-to-zod.js +2 -2
  586. package/dist/shared/json-value.d.ts +18 -0
  587. package/dist/shared/json-value.js +26 -0
  588. package/dist/shared/json-value.js.map +1 -0
  589. package/dist/shared/llm-backend.d.ts +5 -5
  590. package/dist/shared/llm-backend.js +4 -4
  591. package/dist/shared/mcp-manager.d.ts +20 -6
  592. package/dist/shared/mcp-manager.js +43 -8
  593. package/dist/shared/mcp-manager.js.map +1 -1
  594. package/dist/shared/mcp-network-errors.d.ts +43 -0
  595. package/dist/shared/mcp-network-errors.js +132 -0
  596. package/dist/shared/mcp-network-errors.js.map +1 -0
  597. package/dist/shared/mcp-oauth-detect.d.ts +3 -2
  598. package/dist/shared/mcp-oauth-detect.js +3 -2
  599. package/dist/shared/mcp-oauth-detect.js.map +1 -1
  600. package/dist/shared/mcp-resolver.d.ts +6 -6
  601. package/dist/shared/mcp-resolver.js +4 -4
  602. package/dist/shared/mcp-schema-sanitizer.d.ts +3 -2
  603. package/dist/shared/mcp-schema-sanitizer.js +4 -3
  604. package/dist/shared/mcp-schema-sanitizer.js.map +1 -1
  605. package/dist/shared/mcp-tool-listing.d.ts +43 -17
  606. package/dist/shared/mcp-tool-listing.js +39 -35
  607. package/dist/shared/mcp-tool-listing.js.map +1 -1
  608. package/dist/shared/mcp-tool-names.d.ts +80 -0
  609. package/dist/shared/mcp-tool-names.js +122 -0
  610. package/dist/shared/mcp-tool-names.js.map +1 -0
  611. package/dist/shared/mcp-transport-guard.d.ts +2 -3
  612. package/dist/shared/mcp-transport-guard.js +2 -3
  613. package/dist/shared/mcp-transport-guard.js.map +1 -1
  614. package/dist/shared/memory-retrieval.d.ts +2 -2
  615. package/dist/shared/memory-retrieval.js +2 -2
  616. package/dist/shared/model-client.d.ts +19 -13
  617. package/dist/shared/model-client.js +18 -12
  618. package/dist/shared/model-client.js.map +1 -1
  619. package/dist/shared/model-error.d.ts +29 -3
  620. package/dist/shared/model-error.js +108 -23
  621. package/dist/shared/model-error.js.map +1 -1
  622. package/dist/shared/model-facts.d.ts +1 -1
  623. package/dist/shared/model-facts.js +1 -1
  624. package/dist/shared/model-registry.d.ts +37 -25
  625. package/dist/shared/model-registry.js +48 -29
  626. package/dist/shared/model-registry.js.map +1 -1
  627. package/dist/shared/model-retry.d.ts +135 -0
  628. package/dist/shared/model-retry.js +249 -0
  629. package/dist/shared/model-retry.js.map +1 -0
  630. package/dist/shared/model-window.d.ts +60 -0
  631. package/dist/shared/model-window.js +104 -0
  632. package/dist/shared/model-window.js.map +1 -0
  633. package/dist/shared/outputs.d.ts +106 -0
  634. package/dist/shared/outputs.js +388 -0
  635. package/dist/shared/outputs.js.map +1 -0
  636. package/dist/shared/persist-decision.d.ts +3 -7
  637. package/dist/shared/persist-decision.js +3 -7
  638. package/dist/shared/persist-decision.js.map +1 -1
  639. package/dist/shared/plan-file.d.ts +65 -0
  640. package/dist/shared/plan-file.js +155 -0
  641. package/dist/shared/plan-file.js.map +1 -0
  642. package/dist/shared/plan-mode-permissions.d.ts +2 -2
  643. package/dist/shared/plan-mode-permissions.js +2 -2
  644. package/dist/shared/plan-mode-prompt.d.ts +9 -10
  645. package/dist/shared/plan-mode-prompt.js +9 -10
  646. package/dist/shared/plan-mode-prompt.js.map +1 -1
  647. package/dist/shared/platform-hold.d.ts +30 -0
  648. package/dist/shared/platform-hold.js +49 -0
  649. package/dist/shared/platform-hold.js.map +1 -0
  650. package/dist/shared/plugin-mount.js +1 -4
  651. package/dist/shared/plugin-mount.js.map +1 -1
  652. package/dist/shared/prompt-sections.d.ts +52 -39
  653. package/dist/shared/prompt-sections.js +59 -47
  654. package/dist/shared/prompt-sections.js.map +1 -1
  655. package/dist/shared/provider-reach.d.ts +49 -0
  656. package/dist/shared/provider-reach.js +126 -0
  657. package/dist/shared/provider-reach.js.map +1 -0
  658. package/dist/shared/repository-instructions.d.ts +101 -0
  659. package/dist/shared/repository-instructions.js +155 -0
  660. package/dist/shared/repository-instructions.js.map +1 -0
  661. package/dist/shared/run-credential-store.d.ts +4 -3
  662. package/dist/shared/run-credential-store.js +4 -3
  663. package/dist/shared/run-credential-store.js.map +1 -1
  664. package/dist/shared/run-credential.d.ts +4 -4
  665. package/dist/shared/run-credential.js +4 -4
  666. package/dist/shared/run-values.d.ts +4 -4
  667. package/dist/shared/run-values.js +3 -3
  668. package/dist/shared/run-values.js.map +1 -1
  669. package/dist/shared/runner-credential-keys.js +6 -10
  670. package/dist/shared/runner-credential-keys.js.map +1 -1
  671. package/dist/shared/runner-credential-store.d.ts +5 -7
  672. package/dist/shared/runner-credential-store.js +5 -7
  673. package/dist/shared/runner-credential-store.js.map +1 -1
  674. package/dist/shared/service-tier.d.ts +3 -6
  675. package/dist/shared/service-tier.js +3 -6
  676. package/dist/shared/service-tier.js.map +1 -1
  677. package/dist/shared/shell/background-commands.d.ts +170 -0
  678. package/dist/shared/shell/background-commands.js +245 -0
  679. package/dist/shared/shell/background-commands.js.map +1 -0
  680. package/dist/shared/shell/limits.d.ts +16 -0
  681. package/dist/shared/shell/limits.js +17 -0
  682. package/dist/shared/shell/limits.js.map +1 -0
  683. package/dist/shared/shell/run-command.d.ts +105 -0
  684. package/dist/shared/shell/run-command.js +255 -0
  685. package/dist/shared/shell/run-command.js.map +1 -0
  686. package/dist/shared/shell-env.d.ts +4 -4
  687. package/dist/shared/shell-env.js +8 -9
  688. package/dist/shared/shell-env.js.map +1 -1
  689. package/dist/shared/skill-mount.d.ts +13 -16
  690. package/dist/shared/skill-mount.js +15 -21
  691. package/dist/shared/skill-mount.js.map +1 -1
  692. package/dist/shared/skill-resolver.d.ts +2 -5
  693. package/dist/shared/skill-resolver.js +2 -5
  694. package/dist/shared/skill-resolver.js.map +1 -1
  695. package/dist/shared/stall-watchdog.d.ts +22 -9
  696. package/dist/shared/stall-watchdog.js +24 -9
  697. package/dist/shared/stall-watchdog.js.map +1 -1
  698. package/dist/shared/status-offload.d.ts +7 -6
  699. package/dist/shared/status-offload.js +16 -19
  700. package/dist/shared/status-offload.js.map +1 -1
  701. package/dist/shared/status.d.ts +11 -6
  702. package/dist/shared/status.js +6 -6
  703. package/dist/shared/status.js.map +1 -1
  704. package/dist/shared/streaming-scheduler.d.ts +1 -1
  705. package/dist/shared/streaming-scheduler.js +1 -1
  706. package/dist/shared/subagent-gate.d.ts +1 -1
  707. package/dist/shared/subagent-gate.js +1 -1
  708. package/dist/shared/subagent-rows.d.ts +1 -4
  709. package/dist/shared/subagent-rows.js +1 -4
  710. package/dist/shared/subagent-rows.js.map +1 -1
  711. package/dist/shared/subagents.d.ts +23 -4
  712. package/dist/shared/subagents.js +14 -4
  713. package/dist/shared/subagents.js.map +1 -1
  714. package/dist/shared/task-queues.d.ts +24 -0
  715. package/dist/shared/task-queues.js +25 -0
  716. package/dist/shared/task-queues.js.map +1 -0
  717. package/dist/shared/text-cut.d.ts +34 -0
  718. package/dist/shared/text-cut.js +64 -0
  719. package/dist/shared/text-cut.js.map +1 -0
  720. package/dist/shared/thinking-mode.d.ts +11 -15
  721. package/dist/shared/thinking-mode.js +8 -12
  722. package/dist/shared/thinking-mode.js.map +1 -1
  723. package/dist/shared/todos.d.ts +2 -3
  724. package/dist/shared/todos.js +2 -3
  725. package/dist/shared/todos.js.map +1 -1
  726. package/dist/shared/tool-kind.d.ts +16 -16
  727. package/dist/shared/tool-kind.js +17 -17
  728. package/dist/shared/tool-kind.js.map +1 -1
  729. package/dist/shared/tool-lists.d.ts +12 -66
  730. package/dist/shared/tool-lists.js +14 -110
  731. package/dist/shared/tool-lists.js.map +1 -1
  732. package/dist/shared/tool-row.d.ts +20 -41
  733. package/dist/shared/tool-row.js +23 -61
  734. package/dist/shared/tool-row.js.map +1 -1
  735. package/dist/shared/unattended-skips.d.ts +40 -0
  736. package/dist/shared/unattended-skips.js +64 -0
  737. package/dist/shared/unattended-skips.js.map +1 -0
  738. package/dist/shared/with-timeout.d.ts +3 -4
  739. package/dist/shared/with-timeout.js +3 -4
  740. package/dist/shared/with-timeout.js.map +1 -1
  741. package/dist/shared/worker-shutdown.d.ts +35 -17
  742. package/dist/shared/worker-shutdown.js +42 -19
  743. package/dist/shared/worker-shutdown.js.map +1 -1
  744. package/dist/shared/workspace/clone-handoff.d.ts +41 -0
  745. package/dist/shared/workspace/clone-handoff.js +81 -0
  746. package/dist/shared/workspace/clone-handoff.js.map +1 -0
  747. package/dist/shared/workspace/git-credential.d.ts +17 -63
  748. package/dist/shared/workspace/git-credential.js +18 -159
  749. package/dist/shared/workspace/git-credential.js.map +1 -1
  750. package/dist/shared/workspace/local-backend.d.ts +1 -1
  751. package/dist/shared/workspace/local-backend.js +1 -1
  752. package/dist/shared/workspace/platform-dir.d.ts +25 -52
  753. package/dist/shared/workspace/platform-dir.js +35 -68
  754. package/dist/shared/workspace/platform-dir.js.map +1 -1
  755. package/dist/shared/workspace/platform-mount.d.ts +0 -2
  756. package/dist/shared/workspace/platform-mount.js +0 -2
  757. package/dist/shared/workspace/platform-mount.js.map +1 -1
  758. package/dist/shared/workspace/provisioner.d.ts +41 -27
  759. package/dist/shared/workspace/provisioner.js +26 -18
  760. package/dist/shared/workspace/provisioner.js.map +1 -1
  761. package/dist/shared/workspace/runner-git.d.ts +113 -0
  762. package/dist/shared/workspace/runner-git.js +372 -0
  763. package/dist/shared/workspace/runner-git.js.map +1 -0
  764. package/dist/shared/workspace/runtime-git.d.ts +22 -0
  765. package/dist/shared/workspace/runtime-git.js +42 -0
  766. package/dist/shared/workspace/runtime-git.js.map +1 -0
  767. package/dist/shared/workspace/session-provision.d.ts +13 -13
  768. package/dist/shared/workspace/session-provision.js +13 -13
  769. package/dist/shared/workspace/session-provision.js.map +1 -1
  770. package/dist/shared/workspace/session-root.d.ts +7 -7
  771. package/dist/shared/workspace/session-root.js +8 -8
  772. package/dist/shared/workspace/session-root.js.map +1 -1
  773. package/dist/shared/workspace/sources/git.d.ts +16 -7
  774. package/dist/shared/workspace/sources/git.js +117 -83
  775. package/dist/shared/workspace/sources/git.js.map +1 -1
  776. package/dist/shared/workspace/sources/local-path.js +1 -1
  777. package/dist/shared/workspace/sources/local-path.js.map +1 -1
  778. package/dist/shared/workspace/stigmer-link.d.ts +38 -11
  779. package/dist/shared/workspace/stigmer-link.js +91 -11
  780. package/dist/shared/workspace/stigmer-link.js.map +1 -1
  781. package/dist/shared/workspace/types.d.ts +6 -5
  782. package/dist/shared/workspace/types.js +1 -1
  783. package/dist/shared/workspace/workspace-lock.d.ts +19 -4
  784. package/dist/shared/workspace/workspace-lock.js +27 -13
  785. package/dist/shared/workspace/workspace-lock.js.map +1 -1
  786. package/dist/shared/workspace/writeback-coordinator.d.ts +34 -5
  787. package/dist/shared/workspace/writeback-coordinator.js +95 -31
  788. package/dist/shared/workspace/writeback-coordinator.js.map +1 -1
  789. package/dist/shared/zip-extract.d.ts +2 -5
  790. package/dist/shared/zip-extract.js +2 -5
  791. package/dist/shared/zip-extract.js.map +1 -1
  792. package/dist/temporal-lane.d.ts +86 -0
  793. package/dist/temporal-lane.js +93 -0
  794. package/dist/temporal-lane.js.map +1 -0
  795. package/dist/tools/index.d.ts +4 -4
  796. package/dist/tools/index.js +4 -4
  797. package/dist/tools/url-guard.d.ts +3 -5
  798. package/dist/tools/url-guard.js +3 -5
  799. package/dist/tools/url-guard.js.map +1 -1
  800. package/dist/tools/web-fetch-tool.d.ts +5 -5
  801. package/dist/tools/web-fetch-tool.js +5 -5
  802. package/dist/tools/web-fetch-tool.js.map +1 -1
  803. package/dist/worker.d.ts +9 -9
  804. package/dist/worker.js +23 -42
  805. package/dist/worker.js.map +1 -1
  806. package/package.json +26 -13
  807. package/src/__test-utils__/__tests__/harness-contract-self-check.test.ts +19 -10
  808. package/src/__test-utils__/__tests__/known-gap.test.ts +56 -0
  809. package/src/__test-utils__/__tests__/live-gate.test.ts +15 -15
  810. package/src/__test-utils__/__tests__/real-model-registry.test.ts +9 -15
  811. package/src/__test-utils__/agent-host-probe-child.ts +1 -1
  812. package/src/__test-utils__/approval-contract/contract.ts +51 -14
  813. package/src/__test-utils__/approval-contract/hook-commands.ts +1 -1
  814. package/src/__test-utils__/approval-contract/types.ts +33 -34
  815. package/src/__test-utils__/approval-log.ts +2 -3
  816. package/src/__test-utils__/claude-engine-fixture.ts +121 -0
  817. package/src/__test-utils__/config-fixture.ts +9 -5
  818. package/src/__test-utils__/engine-install-child.ts +29 -0
  819. package/src/__test-utils__/execution-record-fixture.ts +15 -12
  820. package/src/__test-utils__/fake-runner-repository.ts +30 -0
  821. package/src/__test-utils__/git-workspace-fixture.ts +11 -15
  822. package/src/__test-utils__/harness-boot-order-child.ts +19 -35
  823. package/src/__test-utils__/harness-contract/contract.ts +143 -115
  824. package/src/__test-utils__/harness-contract/kit-operations.ts +122 -0
  825. package/src/__test-utils__/harness-contract/message-queue.ts +51 -0
  826. package/src/__test-utils__/harness-contract/recording-sink.ts +30 -22
  827. package/src/__test-utils__/harness-contract/runtime-contract.ts +1287 -190
  828. package/src/__test-utils__/harness-contract/scripted-adapter.ts +221 -88
  829. package/src/__test-utils__/harness-contract/types.ts +135 -15
  830. package/src/__test-utils__/hermetic-activity.ts +133 -57
  831. package/src/__test-utils__/http-mcp-server.ts +80 -0
  832. package/src/__test-utils__/known-gap.ts +98 -0
  833. package/src/__test-utils__/live-gate.ts +2 -2
  834. package/src/__test-utils__/loopback-host.ts +9 -4
  835. package/src/__test-utils__/minted-download.ts +15 -0
  836. package/src/__test-utils__/mock-client.ts +7 -3
  837. package/src/__test-utils__/model-registry-fixture.ts +89 -51
  838. package/src/__test-utils__/module-specifiers.ts +7 -4
  839. package/src/__test-utils__/real-model-registry.ts +4 -12
  840. package/src/__test-utils__/refuse-engine-sdks.ts +5 -4
  841. package/src/__test-utils__/turn-input-fixture.ts +8 -11
  842. package/src/__tests__/approval-gateway-contract.test.ts +10 -9
  843. package/src/__tests__/bootstrap.test.ts +39 -1
  844. package/src/__tests__/config-boundary.test.ts +5 -5
  845. package/src/__tests__/config.test.ts +74 -51
  846. package/src/__tests__/harness-boot-order.test.ts +15 -21
  847. package/src/__tests__/harness-contract.test.ts +7 -12
  848. package/src/__tests__/ipc-protocol-fixtures.test.ts +0 -7
  849. package/src/__tests__/ipc-protocol.test.ts +1 -1
  850. package/src/__tests__/operator-bounds.test.ts +84 -0
  851. package/src/__tests__/otel-export.test.ts +2 -2
  852. package/src/__tests__/otel-metrics.test.ts +7 -3
  853. package/src/__tests__/preflight.test.ts +31 -2
  854. package/src/__tests__/readme-environment.test.ts +4 -0
  855. package/src/__tests__/runner-hosting.test.ts +116 -11
  856. package/src/__tests__/runner-is-undici-free.test.ts +53 -0
  857. package/src/__tests__/runner-manager-interceptors.test.ts +15 -47
  858. package/src/__tests__/runner-manager-shutdown.test.ts +88 -26
  859. package/src/__tests__/runner-manager.test.ts +4 -7
  860. package/src/__tests__/runner.test.ts +32 -14
  861. package/src/__tests__/sandbox-token-renewal.test.ts +18 -7
  862. package/src/__tests__/temporal-lane.test.ts +130 -0
  863. package/src/__tests__/worker.test.ts +39 -27
  864. package/src/activities/__tests__/generate-session-subject-wire.test.ts +6 -13
  865. package/src/activities/__tests__/generate-session-subject.test.ts +1 -1
  866. package/src/activities/__tests__/list-plugin-tools.test.ts +32 -0
  867. package/src/activities/ensure-thread.ts +5 -3
  868. package/src/activities/execute-claude/__test-utils__/claude-wire.ts +73 -0
  869. package/src/activities/execute-claude/__test-utils__/contract-subject.ts +549 -0
  870. package/src/activities/execute-claude/__test-utils__/gateway-substrate.ts +486 -0
  871. package/src/activities/execute-claude/__test-utils__/hermetic-claude.ts +237 -0
  872. package/src/activities/execute-claude/__test-utils__/hermetic-plugin.ts +57 -0
  873. package/src/activities/execute-claude/__test-utils__/served-client.ts +39 -0
  874. package/src/activities/execute-claude/__test-utils__/tool-view-capture.ts +52 -0
  875. package/src/activities/execute-claude/__tests__/adapter-engine-source.test.ts +337 -0
  876. package/src/activities/execute-claude/__tests__/adapter-graph-is-sdk-free.test.ts +70 -0
  877. package/src/activities/execute-claude/__tests__/adapter-is-temporal-free.test.ts +40 -0
  878. package/src/activities/execute-claude/__tests__/adapter.test.ts +140 -0
  879. package/src/activities/execute-claude/__tests__/admit-held.test.ts +56 -0
  880. package/src/activities/execute-claude/__tests__/agents.test.ts +246 -0
  881. package/src/activities/execute-claude/__tests__/claude-approval.live.test.ts +110 -0
  882. package/src/activities/execute-claude/__tests__/claude-capabilities.test.ts +41 -0
  883. package/src/activities/execute-claude/__tests__/engine-env.test.ts +103 -0
  884. package/src/activities/execute-claude/__tests__/engine-fetch.test.ts +398 -0
  885. package/src/activities/execute-claude/__tests__/engine-home.test.ts +236 -0
  886. package/src/activities/execute-claude/__tests__/engine-not-distributed.test.ts +47 -0
  887. package/src/activities/execute-claude/__tests__/engine-options.test.ts +302 -0
  888. package/src/activities/execute-claude/__tests__/engine-pin-tarballs.test.ts +63 -0
  889. package/src/activities/execute-claude/__tests__/engine-session-id.test.ts +48 -0
  890. package/src/activities/execute-claude/__tests__/gate.test.ts +1022 -0
  891. package/src/activities/execute-claude/__tests__/hermetic/approvals.test.ts +242 -0
  892. package/src/activities/execute-claude/__tests__/hermetic/cloud-store.test.ts +124 -0
  893. package/src/activities/execute-claude/__tests__/hermetic/file-review.test.ts +111 -0
  894. package/src/activities/execute-claude/__tests__/hermetic/goldens/ask-alone.events.json +127 -0
  895. package/src/activities/execute-claude/__tests__/hermetic/goldens/ask-alone.rows.json +31 -0
  896. package/src/activities/execute-claude/__tests__/hermetic/goldens/ask-alone.status.json +16 -0
  897. package/src/activities/execute-claude/__tests__/hermetic/goldens/hooks.events.json +156 -0
  898. package/src/activities/execute-claude/__tests__/hermetic/goldens/hooks.rows.json +31 -0
  899. package/src/activities/execute-claude/__tests__/hermetic/goldens/hooks.status.json +16 -0
  900. package/src/activities/execute-claude/__tests__/hermetic/goldens/mcp-servers.events.json +104 -0
  901. package/src/activities/execute-claude/__tests__/hermetic/goldens/mcp-servers.rows.json +71 -0
  902. package/src/activities/execute-claude/__tests__/hermetic/goldens/mcp-servers.status.json +16 -0
  903. package/src/activities/execute-claude/__tests__/hermetic/goldens/own-skills.events.json +83 -0
  904. package/src/activities/execute-claude/__tests__/hermetic/goldens/own-skills.rows.json +54 -0
  905. package/src/activities/execute-claude/__tests__/hermetic/goldens/own-skills.status.json +32 -0
  906. package/src/activities/execute-claude/__tests__/hermetic/goldens/plain-turn.events.json +14 -0
  907. package/src/activities/execute-claude/__tests__/hermetic/goldens/plain-turn.rows.json +9 -0
  908. package/src/activities/execute-claude/__tests__/hermetic/goldens/plain-turn.status.json +16 -0
  909. package/src/activities/execute-claude/__tests__/hermetic/goldens/platform-stop.events.json +25 -0
  910. package/src/activities/execute-claude/__tests__/hermetic/goldens/platform-stop.rows.json +28 -0
  911. package/src/activities/execute-claude/__tests__/hermetic/goldens/platform-stop.status.json +17 -0
  912. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-skill.events.json +37 -0
  913. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-skill.rows.json +28 -0
  914. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-skill.status.json +26 -0
  915. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-subagent.events.json +175 -0
  916. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-subagent.rows.json +97 -0
  917. package/src/activities/execute-claude/__tests__/hermetic/goldens/plugin-subagent.status.json +26 -0
  918. package/src/activities/execute-claude/__tests__/hermetic/goldens/saved-subagent.events.json +248 -0
  919. package/src/activities/execute-claude/__tests__/hermetic/goldens/saved-subagent.rows.json +143 -0
  920. package/src/activities/execute-claude/__tests__/hermetic/goldens/saved-subagent.status.json +26 -0
  921. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-approved.events.json +58 -0
  922. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-approved.rows.json +31 -0
  923. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-approved.status.json +16 -0
  924. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-rejected.events.json +60 -0
  925. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-rejected.rows.json +30 -0
  926. package/src/activities/execute-claude/__tests__/hermetic/goldens/shell-rejected.status.json +16 -0
  927. package/src/activities/execute-claude/__tests__/hermetic/goldens/structured-output.events.json +34 -0
  928. package/src/activities/execute-claude/__tests__/hermetic/goldens/structured-output.rows.json +25 -0
  929. package/src/activities/execute-claude/__tests__/hermetic/goldens/structured-output.status.json +16 -0
  930. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-refusals.events.json +361 -0
  931. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-refusals.rows.json +147 -0
  932. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-refusals.status.json +26 -0
  933. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-unattended-skip.events.json +131 -0
  934. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-unattended-skip.rows.json +70 -0
  935. package/src/activities/execute-claude/__tests__/hermetic/goldens/subagent-unattended-skip.status.json +26 -0
  936. package/src/activities/execute-claude/__tests__/hermetic/goldens/todo-list.events.json +72 -0
  937. package/src/activities/execute-claude/__tests__/hermetic/goldens/todo-list.rows.json +68 -0
  938. package/src/activities/execute-claude/__tests__/hermetic/goldens/todo-list.status.json +16 -0
  939. package/src/activities/execute-claude/__tests__/hermetic/goldens/tool-results.cases.json +73 -0
  940. package/src/activities/execute-claude/__tests__/hermetic/goldens/unattended-skip.events.json +40 -0
  941. package/src/activities/execute-claude/__tests__/hermetic/goldens/unattended-skip.rows.json +31 -0
  942. package/src/activities/execute-claude/__tests__/hermetic/goldens/unattended-skip.status.json +16 -0
  943. package/src/activities/execute-claude/__tests__/hermetic/harness-contract.test.ts +58 -0
  944. package/src/activities/execute-claude/__tests__/hermetic/hooks.test.ts +196 -0
  945. package/src/activities/execute-claude/__tests__/hermetic/isolation.test.ts +122 -0
  946. package/src/activities/execute-claude/__tests__/hermetic/lost-runner.test.ts +119 -0
  947. package/src/activities/execute-claude/__tests__/hermetic/mcp-servers.test.ts +138 -0
  948. package/src/activities/execute-claude/__tests__/hermetic/plain-turn.test.ts +76 -0
  949. package/src/activities/execute-claude/__tests__/hermetic/resume.test.ts +62 -0
  950. package/src/activities/execute-claude/__tests__/hermetic/signals.test.ts +160 -0
  951. package/src/activities/execute-claude/__tests__/hermetic/skills.test.ts +243 -0
  952. package/src/activities/execute-claude/__tests__/hermetic/subagents.test.ts +446 -0
  953. package/src/activities/execute-claude/__tests__/hermetic/tool-results.test.ts +69 -0
  954. package/src/activities/execute-claude/__tests__/hermetic/tool-turns.test.ts +168 -0
  955. package/src/activities/execute-claude/__tests__/hook-views.test.ts +103 -0
  956. package/src/activities/execute-claude/__tests__/hooks.test.ts +184 -0
  957. package/src/activities/execute-claude/__tests__/host-shell.test.ts +255 -0
  958. package/src/activities/execute-claude/__tests__/loopback-mcp.test.ts +163 -0
  959. package/src/activities/execute-claude/__tests__/mcp-bridge.test.ts +372 -0
  960. package/src/activities/execute-claude/__tests__/mid-turn-input.test.ts +280 -0
  961. package/src/activities/execute-claude/__tests__/prompt-stream.test.ts +91 -0
  962. package/src/activities/execute-claude/__tests__/prompt.test.ts +392 -0
  963. package/src/activities/execute-claude/__tests__/session-store.test.ts +550 -0
  964. package/src/activities/execute-claude/__tests__/settle.test.ts +216 -0
  965. package/src/activities/execute-claude/__tests__/skill-plugins.test.ts +149 -0
  966. package/src/activities/execute-claude/__tests__/tool-view-fixtures.test.ts +82 -0
  967. package/src/activities/execute-claude/__tests__/transcript-facts.test.ts +124 -0
  968. package/src/activities/execute-claude/__tests__/translator.test.ts +514 -0
  969. package/src/activities/execute-claude/__tests__/turn.test.ts +531 -0
  970. package/src/activities/execute-claude/__tests__/usage.test.ts +186 -0
  971. package/src/activities/execute-claude/adapter.ts +270 -0
  972. package/src/activities/execute-claude/agents.ts +322 -0
  973. package/src/activities/execute-claude/claude-capabilities.ts +75 -0
  974. package/src/activities/execute-claude/engine-env.ts +94 -0
  975. package/src/activities/execute-claude/engine-fetch.ts +294 -0
  976. package/src/activities/execute-claude/engine-home.ts +263 -0
  977. package/src/activities/execute-claude/engine-options.ts +208 -0
  978. package/src/activities/execute-claude/engine-session-id.ts +53 -0
  979. package/src/activities/execute-claude/file-store.ts +119 -0
  980. package/src/activities/execute-claude/gate.ts +912 -0
  981. package/src/activities/execute-claude/hook-views.ts +153 -0
  982. package/src/activities/execute-claude/hooks.ts +164 -0
  983. package/src/activities/execute-claude/host-shell.ts +130 -0
  984. package/src/activities/execute-claude/http-store.ts +102 -0
  985. package/src/activities/execute-claude/loopback-mcp.ts +187 -0
  986. package/src/activities/execute-claude/mcp-bridge.ts +176 -0
  987. package/src/activities/execute-claude/mid-turn-input.ts +130 -0
  988. package/src/activities/execute-claude/prompt-stream.ts +52 -0
  989. package/src/activities/execute-claude/prompt.ts +250 -0
  990. package/src/activities/execute-claude/session-store.ts +184 -0
  991. package/src/activities/execute-claude/settle.ts +89 -0
  992. package/src/activities/execute-claude/skill-plugins.ts +173 -0
  993. package/src/activities/execute-claude/transcript-facts.ts +70 -0
  994. package/src/activities/execute-claude/translator.ts +294 -0
  995. package/src/activities/execute-claude/turn.ts +730 -0
  996. package/src/activities/execute-claude/usage.ts +117 -0
  997. package/src/activities/execute-deep-agent/__test-utils__/contract-subject.ts +247 -44
  998. package/src/activities/execute-deep-agent/__test-utils__/gateway-substrate.ts +89 -60
  999. package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +32 -30
  1000. package/src/activities/execute-deep-agent/__test-utils__/paused-session-fixture.ts +1 -1
  1001. package/src/activities/execute-deep-agent/__test-utils__/scripted-model-module.ts +4 -5
  1002. package/src/activities/execute-deep-agent/__test-utils__/scripted-model.ts +85 -3
  1003. package/src/activities/execute-deep-agent/__tests__/adapter-graph-is-sdk-free.test.ts +7 -9
  1004. package/src/activities/execute-deep-agent/__tests__/adapter-is-temporal-free.test.ts +5 -6
  1005. package/src/activities/execute-deep-agent/__tests__/adapter-shutdown.test.ts +57 -0
  1006. package/src/activities/execute-deep-agent/__tests__/adapter.test.ts +13 -9
  1007. package/src/activities/execute-deep-agent/__tests__/background-binding.test.ts +416 -0
  1008. package/src/activities/execute-deep-agent/__tests__/background-facts.test.ts +82 -0
  1009. package/src/activities/execute-deep-agent/__tests__/builtin-tool-surface.test.ts +4 -4
  1010. package/src/activities/execute-deep-agent/__tests__/cas-capture-backend.test.ts +165 -4
  1011. package/src/activities/execute-deep-agent/__tests__/engine-tools.test.ts +2 -2
  1012. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +2 -2
  1013. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +1 -1
  1014. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.judge.prompt.md +1 -0
  1015. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.append.prompt.md +1 -0
  1016. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.minimal.prompt.md +1 -0
  1017. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +0 -1
  1018. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.repository-instructions.prompt.md +139 -0
  1019. package/src/activities/execute-deep-agent/__tests__/goldens/user-message.everything.md +7 -7
  1020. package/src/activities/execute-deep-agent/__tests__/hermetic/answers.test.ts +2 -3
  1021. package/src/activities/execute-deep-agent/__tests__/hermetic/background-shell.test.ts +285 -0
  1022. package/src/activities/execute-deep-agent/__tests__/hermetic/cost-advisory.test.ts +2 -2
  1023. package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +83 -23
  1024. package/src/activities/execute-deep-agent/__tests__/hermetic/format-on-edit.test.ts +283 -0
  1025. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.events.json +12 -12
  1026. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn1.rows.json +1 -1
  1027. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.events.json +28 -28
  1028. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve-all-lease.turn2.rows.json +1 -1
  1029. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/approve.turn2.events.json +15 -15
  1030. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.events.json +13 -13
  1031. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.rows.json +14 -14
  1032. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +7 -18
  1033. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.events.json +9 -9
  1034. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.rows.json +1 -1
  1035. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-off.status.json +0 -11
  1036. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-reconcile.events.json +19 -19
  1037. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-secret-refused.events.json +75 -0
  1038. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-secret-refused.rows.json +45 -0
  1039. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-secret-refused.status.json +16 -0
  1040. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.events.json +7 -7
  1041. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/gate.turn1.rows.json +1 -1
  1042. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn1.events.json +36 -0
  1043. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn1.rows.json +28 -0
  1044. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn1.status.json +25 -0
  1045. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn2.events.json +71 -0
  1046. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn2.rows.json +31 -0
  1047. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.changed.turn2.status.json +26 -0
  1048. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn1.events.json +21 -21
  1049. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn1.rows.json +3 -3
  1050. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/hooks.turn2.events.json +29 -29
  1051. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/mcp-tool-definition.events.json +108 -0
  1052. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/mcp-tool-definition.rows.json +70 -0
  1053. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.after-tool.events.json +7 -7
  1054. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.events.json +17 -4
  1055. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/pause.loop.mid-tool.rows.json +3 -1
  1056. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/plain-turn.events.json +2 -2
  1057. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.events.json +17 -4
  1058. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/platform-stop.rows.json +3 -1
  1059. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.events.json +70 -70
  1060. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/reject.turn2.events.json +15 -15
  1061. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.events.json +20 -20
  1062. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn2.rows.json +1 -1
  1063. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sequential-gates.turn3.events.json +28 -28
  1064. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/skip.turn2.events.json +15 -15
  1065. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.text-fallback.events.json +4 -4
  1066. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tier2.events.json +4 -4
  1067. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/structured-output.tool-strategy.events.json +6 -6
  1068. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/sub-agent-delegation.events.json +27 -27
  1069. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/tool-call.events.json +9 -9
  1070. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/unattended-skip.events.json +9 -9
  1071. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/unattended-skip.rows.json +1 -1
  1072. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.events.json +14 -7
  1073. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.rows.json +1 -1
  1074. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/worker-shutdown.status.json +1 -5
  1075. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/write-todos.events.json +9 -9
  1076. package/src/activities/execute-deep-agent/__tests__/hermetic/harness-contract.test.ts +62 -15
  1077. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-approve-all-lease.test.ts +2 -2
  1078. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-parallel-gates.test.ts +2 -2
  1079. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-round-trips.test.ts +2 -2
  1080. package/src/activities/execute-deep-agent/__tests__/hermetic/hitl-sequential-gates.test.ts +1 -1
  1081. package/src/activities/execute-deep-agent/__tests__/hermetic/hooks.test.ts +118 -35
  1082. package/src/activities/execute-deep-agent/__tests__/hermetic/long-output.test.ts +217 -0
  1083. package/src/activities/execute-deep-agent/__tests__/hermetic/loose-edit.test.ts +167 -0
  1084. package/src/activities/execute-deep-agent/__tests__/hermetic/mcp-tool-definition.test.ts +156 -0
  1085. package/src/activities/execute-deep-agent/__tests__/hermetic/mcp-tool-names.test.ts +207 -0
  1086. package/src/activities/execute-deep-agent/__tests__/hermetic/model-retry.test.ts +194 -0
  1087. package/src/activities/execute-deep-agent/__tests__/hermetic/outputs.test.ts +181 -0
  1088. package/src/activities/execute-deep-agent/__tests__/hermetic/pause-vs-shutdown.test.ts +21 -18
  1089. package/src/activities/execute-deep-agent/__tests__/hermetic/plain-turn.test.ts +4 -16
  1090. package/src/activities/execute-deep-agent/__tests__/hermetic/platform-stop.test.ts +4 -2
  1091. package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +1 -1
  1092. package/src/activities/execute-deep-agent/__tests__/hermetic/repository-instructions.test.ts +249 -0
  1093. package/src/activities/execute-deep-agent/__tests__/hermetic/structured-output.test.ts +5 -5
  1094. package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-delegation.test.ts +1 -1
  1095. package/src/activities/execute-deep-agent/__tests__/hermetic/sub-agent-own-context.test.ts +3 -3
  1096. package/src/activities/execute-deep-agent/__tests__/hermetic/tool-call.test.ts +1 -1
  1097. package/src/activities/execute-deep-agent/__tests__/hermetic/turn-phases.test.ts +4 -4
  1098. package/src/activities/execute-deep-agent/__tests__/hermetic/unattended-skip.test.ts +1 -1
  1099. package/src/activities/execute-deep-agent/__tests__/hermetic/workspace-lock-timeout.test.ts +1 -1
  1100. package/src/activities/execute-deep-agent/__tests__/hermetic/write-todos.test.ts +6 -6
  1101. package/src/activities/execute-deep-agent/__tests__/hitl.test.ts +51 -2
  1102. package/src/activities/execute-deep-agent/__tests__/hooks-setup.test.ts +42 -27
  1103. package/src/activities/execute-deep-agent/__tests__/input-barrier.test.ts +48 -0
  1104. package/src/activities/execute-deep-agent/__tests__/loaded-tool-marks.test.ts +38 -19
  1105. package/src/activities/execute-deep-agent/__tests__/plain-turn.live.test.ts +4 -4
  1106. package/src/activities/execute-deep-agent/__tests__/plan-mode-path-normalization.test.ts +23 -4
  1107. package/src/activities/execute-deep-agent/__tests__/platform-route.test.ts +158 -8
  1108. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +20 -51
  1109. package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +68 -30
  1110. package/src/activities/execute-deep-agent/__tests__/repository-instructions.test.ts +193 -0
  1111. package/src/activities/execute-deep-agent/__tests__/resume-across-think-retirement.live.test.ts +1 -1
  1112. package/src/activities/execute-deep-agent/__tests__/resumed-history.test.ts +1 -1
  1113. package/src/activities/execute-deep-agent/__tests__/scripted-model.test.ts +81 -0
  1114. package/src/activities/execute-deep-agent/__tests__/shell-binding.test.ts +205 -0
  1115. package/src/activities/execute-deep-agent/__tests__/shell-execute-gate.test.ts +5 -4
  1116. package/src/activities/execute-deep-agent/__tests__/shell-tool.test.ts +255 -0
  1117. package/src/activities/execute-deep-agent/__tests__/subagent-approval-propagation.test.ts +107 -3
  1118. package/src/activities/execute-deep-agent/__tests__/subagent-gitignored-capture.test.ts +3 -2
  1119. package/src/activities/execute-deep-agent/__tests__/subagent-plan-mode-permissions.test.ts +1 -1
  1120. package/src/activities/execute-deep-agent/__tests__/subagent-spans.test.ts +3 -2
  1121. package/src/activities/execute-deep-agent/__tests__/subagent-transformer.test.ts +77 -13
  1122. package/src/activities/execute-deep-agent/__tests__/subagent-wiring.test.ts +21 -16
  1123. package/src/activities/execute-deep-agent/__tests__/tool-call.live.test.ts +2 -2
  1124. package/src/activities/execute-deep-agent/__tests__/tool-scope.test.ts +240 -141
  1125. package/src/activities/execute-deep-agent/__tests__/translator-subagents.test.ts +2 -2
  1126. package/src/activities/execute-deep-agent/__tests__/translator-through-builder.test.ts +24 -52
  1127. package/src/activities/execute-deep-agent/__tests__/translator.test.ts +98 -10
  1128. package/src/activities/execute-deep-agent/__tests__/turn-input-middleware.test.ts +133 -0
  1129. package/src/activities/execute-deep-agent/__tests__/turn-setup-connect.test.ts +1 -1
  1130. package/src/activities/execute-deep-agent/__tests__/turn-setup-tool-lists.test.ts +3 -2
  1131. package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +65 -66
  1132. package/src/activities/execute-deep-agent/__tests__/vision-input.test.ts +1 -1
  1133. package/src/activities/execute-deep-agent/adapter.ts +31 -12
  1134. package/src/activities/execute-deep-agent/approval-file-change.ts +3 -4
  1135. package/src/activities/execute-deep-agent/background-facts.ts +115 -0
  1136. package/src/activities/execute-deep-agent/cas-capture-backend.ts +77 -10
  1137. package/src/activities/execute-deep-agent/deep-agent-capabilities.ts +21 -20
  1138. package/src/activities/execute-deep-agent/deepagents-profiles.ts +1 -1
  1139. package/src/activities/execute-deep-agent/engine-tools.ts +1 -1
  1140. package/src/activities/execute-deep-agent/hitl.ts +25 -73
  1141. package/src/activities/execute-deep-agent/hooks-setup.ts +7 -9
  1142. package/src/activities/execute-deep-agent/input-barrier.ts +69 -0
  1143. package/src/activities/execute-deep-agent/loose-edit.ts +83 -0
  1144. package/src/activities/execute-deep-agent/platform-route.ts +222 -79
  1145. package/src/activities/execute-deep-agent/prompt-builder.ts +60 -44
  1146. package/src/activities/execute-deep-agent/repository-instructions.ts +57 -0
  1147. package/src/activities/execute-deep-agent/resumed-history.ts +1 -1
  1148. package/src/activities/execute-deep-agent/run-stamp.ts +44 -0
  1149. package/src/activities/execute-deep-agent/shell-tool.ts +340 -0
  1150. package/src/activities/execute-deep-agent/subagent-transformer.ts +129 -32
  1151. package/src/activities/execute-deep-agent/subagent-wiring.ts +47 -5
  1152. package/src/activities/execute-deep-agent/translator.ts +115 -46
  1153. package/src/activities/execute-deep-agent/turn-input-middleware.ts +139 -0
  1154. package/src/activities/execute-deep-agent/turn-settle.ts +4 -20
  1155. package/src/activities/execute-deep-agent/turn-setup.ts +259 -98
  1156. package/src/activities/execute-deep-agent/turn-stream.ts +78 -41
  1157. package/src/activities/execute-deep-agent/turn.ts +88 -23
  1158. package/src/activities/execute-deep-agent/v3-event-recorder.ts +1 -1
  1159. package/src/activities/generate-session-subject.ts +18 -26
  1160. package/src/activities/list-plugin-tools.ts +19 -0
  1161. package/src/agent-host/__tests__/codec.test.ts +77 -81
  1162. package/src/agent-host/__tests__/entry-telemetry.test.ts +9 -9
  1163. package/src/agent-host/__tests__/entry.test.ts +28 -58
  1164. package/src/agent-host/__tests__/environment.test.ts +36 -4
  1165. package/src/agent-host/__tests__/host-bounds.test.ts +45 -0
  1166. package/src/agent-host/__tests__/host-sink.test.ts +3 -22
  1167. package/src/agent-host/__tests__/host.test.ts +97 -51
  1168. package/src/agent-host/__tests__/hostile-host.test.ts +101 -139
  1169. package/src/agent-host/__tests__/offload-through-host.test.ts +2 -2
  1170. package/src/agent-host/__tests__/remote-fs.test.ts +32 -2
  1171. package/src/agent-host/__tests__/spawned-host.test.ts +2 -2
  1172. package/src/agent-host/__tests__/supervisor.test.ts +68 -125
  1173. package/src/agent-host/__tests__/turn-context-through-host.test.ts +60 -0
  1174. package/src/agent-host/__tests__/wire-error.test.ts +236 -0
  1175. package/src/agent-host/channel.ts +11 -4
  1176. package/src/agent-host/codec.ts +62 -97
  1177. package/src/agent-host/entry.ts +0 -5
  1178. package/src/agent-host/environment.ts +26 -5
  1179. package/src/agent-host/host-sink.ts +53 -10
  1180. package/src/agent-host/host.ts +19 -36
  1181. package/src/agent-host/hosting.ts +14 -48
  1182. package/src/agent-host/protocol.ts +185 -39
  1183. package/src/agent-host/remote-adapter.ts +61 -39
  1184. package/src/agent-host/remote-fs.ts +23 -0
  1185. package/src/agent-host/supervisor.ts +25 -19
  1186. package/src/agent-proxy/__tests__/lanes.test.ts +1 -1
  1187. package/src/agent-proxy/__tests__/relay.test.ts +1 -1
  1188. package/src/agent-proxy/__tests__/server.test.ts +203 -10
  1189. package/src/agent-proxy/lanes.ts +28 -8
  1190. package/src/agent-proxy/relay.ts +3 -22
  1191. package/src/agent-proxy/server.ts +60 -34
  1192. package/src/attach/__tests__/import-graph.test.ts +7 -3
  1193. package/src/attach/__tests__/push.test.ts +34 -3
  1194. package/src/attach/__tests__/waiter.test.ts +85 -4
  1195. package/src/attach/push.ts +27 -10
  1196. package/src/attach/waiter.ts +20 -3
  1197. package/src/bootstrap.ts +22 -20
  1198. package/src/client/__tests__/eval-read.test.ts +26 -11
  1199. package/src/client/__tests__/plugin-read.test.ts +4 -8
  1200. package/src/client/__tests__/run-calls.test.ts +87 -4
  1201. package/src/client/__tests__/server-contracts.test.ts +5 -5
  1202. package/src/client/__tests__/session-events-calls.test.ts +2 -19
  1203. package/src/client/__tests__/stigmer-client.test.ts +91 -31
  1204. package/src/client/__tests__/token-claims.test.ts +1 -1
  1205. package/src/client/server-contracts.ts +2 -2
  1206. package/src/client/stigmer-client.ts +145 -70
  1207. package/src/client/token-claims.ts +3 -8
  1208. package/src/config.ts +155 -98
  1209. package/src/environment/__tests__/install.test.ts +684 -0
  1210. package/src/environment/__tests__/platform-lanes.test.ts +56 -0
  1211. package/src/environment/__tests__/spec.test.ts +310 -0
  1212. package/src/environment/install.ts +440 -0
  1213. package/src/environment/prefix.ts +24 -0
  1214. package/src/environment/spec.ts +133 -0
  1215. package/src/exit-backstop.ts +3 -3
  1216. package/src/gen/turn/ai/stigmer/runner/turn/v1/enum_pb.ts +60 -38
  1217. package/src/gen/turn/ai/stigmer/runner/turn/v1/ledger_pb.ts +1 -1
  1218. package/src/gen/turn/ai/stigmer/runner/turn/v1/rows_pb.ts +168 -103
  1219. package/src/gen-ai-conventions.ts +2 -8
  1220. package/src/harness/README.md +334 -131
  1221. package/src/harness/__tests__/approval-answers.test.ts +7 -7
  1222. package/src/harness/__tests__/approval-decisions.test.ts +3 -4
  1223. package/src/harness/__tests__/attachment-credential.test.ts +3 -5
  1224. package/src/harness/__tests__/background-stops.test.ts +122 -0
  1225. package/src/harness/__tests__/capture.test.ts +39 -21
  1226. package/src/harness/__tests__/import-direction.test.ts +10 -10
  1227. package/src/harness/__tests__/liveness-pump.test.ts +115 -0
  1228. package/src/harness/__tests__/mount-skills.test.ts +7 -10
  1229. package/src/harness/__tests__/open-operations.test.ts +281 -0
  1230. package/src/harness/__tests__/owed-undos.test.ts +17 -0
  1231. package/src/harness/__tests__/persist-chokepoint.test.ts +168 -12
  1232. package/src/harness/__tests__/preview-pump.test.ts +136 -0
  1233. package/src/harness/__tests__/readme-index.test.ts +7 -7
  1234. package/src/harness/__tests__/reconcile-turn.test.ts +4 -4
  1235. package/src/harness/__tests__/registry.test.ts +17 -18
  1236. package/src/harness/__tests__/reinvocation-carry.test.ts +7 -9
  1237. package/src/harness/__tests__/resolve-hooks.test.ts +13 -14
  1238. package/src/harness/__tests__/resolve-subagents.test.ts +32 -27
  1239. package/src/harness/__tests__/run-span.test.ts +2 -3
  1240. package/src/harness/__tests__/run-turn-eval-case.test.ts +1 -2
  1241. package/src/harness/__tests__/run-turn.test.ts +356 -24
  1242. package/src/harness/__tests__/runtime-touches-no-agent-path.test.ts +9 -1
  1243. package/src/harness/__tests__/stop-controller.test.ts +45 -4
  1244. package/src/harness/__tests__/terminal-table.test.ts +59 -3
  1245. package/src/harness/__tests__/transcript-is-engine-free.test.ts +5 -5
  1246. package/src/harness/__tests__/transcript-writers.test.ts +4 -4
  1247. package/src/harness/__tests__/turn-context.test.ts +63 -76
  1248. package/src/harness/__tests__/turn-files.test.ts +301 -0
  1249. package/src/harness/__tests__/turn-input.test.ts +160 -0
  1250. package/src/harness/__tests__/turn-mcp.test.ts +17 -112
  1251. package/src/harness/__tests__/turn-timeline.test.ts +76 -33
  1252. package/src/harness/__tests__/usage-accumulator.test.ts +1 -2
  1253. package/src/harness/approval-answers.ts +5 -9
  1254. package/src/harness/approval-decisions.ts +7 -8
  1255. package/src/harness/background-stops.ts +142 -0
  1256. package/src/harness/capabilities.ts +80 -87
  1257. package/src/harness/capture.ts +40 -55
  1258. package/src/harness/cost-cap-watch.ts +26 -1
  1259. package/src/harness/events/__tests__/emitter.test.ts +568 -21
  1260. package/src/harness/events/emitter.ts +400 -25
  1261. package/src/harness/events/ids.ts +34 -2
  1262. package/src/harness/liveness-pump.ts +134 -0
  1263. package/src/harness/open-operations.ts +282 -0
  1264. package/src/harness/owed-undos.ts +6 -4
  1265. package/src/harness/persist-chokepoint.ts +73 -8
  1266. package/src/harness/preview-pump.ts +76 -0
  1267. package/src/harness/registry.ts +29 -34
  1268. package/src/harness/run-span.ts +1 -2
  1269. package/src/harness/run-turn.ts +327 -112
  1270. package/src/harness/stop-controller.ts +56 -10
  1271. package/src/harness/terminal-table.ts +163 -35
  1272. package/src/harness/transcript/__tests__/builder.test.ts +220 -136
  1273. package/src/harness/transcript/__tests__/resume-seed.test.ts +4 -4
  1274. package/src/harness/transcript/builder.ts +197 -139
  1275. package/src/harness/transcript/events.ts +162 -61
  1276. package/src/harness/transcript/resume-seed.ts +8 -11
  1277. package/src/harness/transcript/state.ts +4 -5
  1278. package/src/harness/turn-context.ts +327 -329
  1279. package/src/harness/turn-input.ts +194 -0
  1280. package/src/harness/turn-timeline.ts +72 -42
  1281. package/src/harness/types.ts +154 -108
  1282. package/src/harness/usage-accumulator.ts +31 -7
  1283. package/src/harness-adapters.ts +21 -21
  1284. package/src/in-flight.ts +1 -1
  1285. package/src/interceptors/__tests__/run-credential-activity.test.ts +5 -5
  1286. package/src/interceptors/run-credential-activity.ts +2 -4
  1287. package/src/ipc-protocol-fixtures.ts +0 -5
  1288. package/src/ipc-protocol.ts +1 -1
  1289. package/src/main.ts +26 -162
  1290. package/src/middleware/__tests__/approval-gate-hooks.test.ts +266 -26
  1291. package/src/middleware/__tests__/approval-gate.test.ts +162 -44
  1292. package/src/middleware/__tests__/background-commands.test.ts +362 -0
  1293. package/src/middleware/__tests__/compaction.test.ts +225 -0
  1294. package/src/middleware/__tests__/cost-advisory.test.ts +1 -2
  1295. package/src/middleware/__tests__/error-hints.test.ts +10 -0
  1296. package/src/middleware/__tests__/execution-budget.test.ts +1 -1
  1297. package/src/middleware/__tests__/folder-instructions.test.ts +269 -0
  1298. package/src/middleware/__tests__/model-retry.test.ts +154 -0
  1299. package/src/middleware/__tests__/otel-spans.test.ts +9 -8
  1300. package/src/middleware/__tests__/shell.test.ts +104 -0
  1301. package/src/middleware/__tests__/tool-intent.test.ts +1 -1
  1302. package/src/middleware/__tests__/tool-truncation.test.ts +331 -65
  1303. package/src/middleware/__tests__/turn-boundary.test.ts +82 -0
  1304. package/src/middleware/approval-gate.ts +173 -221
  1305. package/src/middleware/background-commands.ts +341 -0
  1306. package/src/middleware/compaction-prompt.ts +142 -0
  1307. package/src/middleware/compaction.ts +127 -0
  1308. package/src/middleware/error-hints.ts +5 -1
  1309. package/src/middleware/execution-budget.ts +1 -1
  1310. package/src/middleware/folder-instructions.ts +231 -0
  1311. package/src/middleware/index.ts +55 -9
  1312. package/src/middleware/model-retry.ts +115 -0
  1313. package/src/middleware/otel-spans.ts +13 -6
  1314. package/src/middleware/path-normalization.ts +3 -3
  1315. package/src/middleware/shell.ts +139 -0
  1316. package/src/middleware/tool-intent.ts +5 -5
  1317. package/src/middleware/tool-scope.ts +120 -71
  1318. package/src/middleware/tool-truncation.ts +347 -42
  1319. package/src/middleware/turn-boundary.ts +86 -0
  1320. package/src/middleware/types.ts +71 -4
  1321. package/src/operator-bounds.ts +36 -0
  1322. package/src/otel-export.ts +1 -1
  1323. package/src/otel-metrics.ts +1 -6
  1324. package/src/otel.ts +0 -45
  1325. package/src/preflight.ts +21 -4
  1326. package/src/run-trace-id.ts +1 -1
  1327. package/src/runner-manager.ts +109 -244
  1328. package/src/runner-token-coordinator.ts +5 -4
  1329. package/src/runner.ts +123 -89
  1330. package/src/sandbox-token-renewal.ts +20 -13
  1331. package/src/shared/__tests__/activity-input.test.ts +9 -30
  1332. package/src/shared/__tests__/advisory-anthropic-payload.test.ts +1 -1
  1333. package/src/shared/__tests__/agent-identity.test.ts +37 -7
  1334. package/src/shared/__tests__/approval-canonicalize.test.ts +1 -1
  1335. package/src/shared/__tests__/approval-fingerprint.test.ts +1 -39
  1336. package/src/shared/__tests__/approval-policy.test.ts +8 -7
  1337. package/src/shared/__tests__/args-preview.test.ts +12 -13
  1338. package/src/shared/__tests__/artifact-storage.test.ts +6 -4
  1339. package/src/shared/__tests__/attachment-vision.test.ts +17 -44
  1340. package/src/shared/__tests__/blueprint-resolver.test.ts +1 -1
  1341. package/src/shared/__tests__/builtin-judge.test.ts +6 -6
  1342. package/src/shared/__tests__/channel-attachment.test.ts +14 -17
  1343. package/src/shared/__tests__/cold-start-timing.test.ts +9 -17
  1344. package/src/shared/__tests__/conversation-attachment.test.ts +1 -15
  1345. package/src/shared/__tests__/cost-guard.test.ts +1 -1
  1346. package/src/shared/__tests__/default-model-agrees-with-server.test.ts +20 -12
  1347. package/src/shared/__tests__/edit-match.test.ts +208 -0
  1348. package/src/shared/__tests__/error-chain.test.ts +101 -0
  1349. package/src/shared/__tests__/file-change.test.ts +2 -2
  1350. package/src/shared/__tests__/file-edit-policy.test.ts +103 -0
  1351. package/src/shared/__tests__/file-mount.test.ts +429 -0
  1352. package/src/shared/__tests__/file-tools.test.ts +4 -4
  1353. package/src/shared/__tests__/foundry-seam.test.ts +1 -1
  1354. package/src/shared/__tests__/implement-plan-prompt.test.ts +36 -24
  1355. package/src/shared/__tests__/json-value.test.ts +28 -0
  1356. package/src/shared/__tests__/mcp-manager.test.ts +42 -9
  1357. package/src/shared/__tests__/mcp-network-errors.test.ts +278 -0
  1358. package/src/shared/__tests__/mcp-tool-listing.test.ts +42 -51
  1359. package/src/shared/__tests__/mcp-tool-names.test.ts +119 -0
  1360. package/src/shared/__tests__/memory-attachment.test.ts +4 -18
  1361. package/src/shared/__tests__/model-client-sampling.test.ts +4 -4
  1362. package/src/shared/__tests__/model-client.test.ts +39 -9
  1363. package/src/shared/__tests__/model-error.test.ts +72 -10
  1364. package/src/shared/__tests__/model-lanes.test.ts +3 -3
  1365. package/src/shared/__tests__/model-registry-at-provider.live.test.ts +14 -30
  1366. package/src/shared/__tests__/model-registry.test.ts +129 -94
  1367. package/src/shared/__tests__/model-retry-seam.test.ts +214 -0
  1368. package/src/shared/__tests__/model-retry.test.ts +218 -0
  1369. package/src/shared/__tests__/model-window.test.ts +97 -0
  1370. package/src/shared/__tests__/outputs.test.ts +433 -0
  1371. package/src/shared/__tests__/persist-decision.test.ts +1 -1
  1372. package/src/shared/__tests__/plan-file.test.ts +168 -0
  1373. package/src/shared/__tests__/platform-hold.test.ts +65 -0
  1374. package/src/shared/__tests__/plugin-mount.test.ts +7 -9
  1375. package/src/shared/__tests__/policy-source-corpus.test.ts +8 -12
  1376. package/src/shared/__tests__/prompt-sections.test.ts +55 -26
  1377. package/src/shared/__tests__/provider-reach.test.ts +178 -0
  1378. package/src/shared/__tests__/run-credential.test.ts +4 -4
  1379. package/src/shared/__tests__/shell-env.test.ts +3 -5
  1380. package/src/shared/__tests__/skill-mount.test.ts +8 -38
  1381. package/src/shared/__tests__/skill-resolver.test.ts +23 -31
  1382. package/src/shared/__tests__/stall-watchdog.test.ts +45 -89
  1383. package/src/shared/__tests__/stamp-flowed-rows.test.ts +1 -11
  1384. package/src/shared/__tests__/status-offload.test.ts +10 -11
  1385. package/src/shared/__tests__/status.test.ts +1 -1
  1386. package/src/shared/__tests__/subagents.test.ts +43 -21
  1387. package/src/shared/__tests__/telemetry-content.test.ts +1 -1
  1388. package/src/shared/__tests__/text-cut.test.ts +75 -0
  1389. package/src/shared/__tests__/thinking-mode.test.ts +6 -6
  1390. package/src/shared/__tests__/todos.test.ts +1 -1
  1391. package/src/shared/__tests__/tool-kind.test.ts +5 -5
  1392. package/src/shared/__tests__/tool-lists.test.ts +11 -44
  1393. package/src/shared/__tests__/tool-rounds.test.ts +1 -1
  1394. package/src/shared/__tests__/tool-row.test.ts +7 -71
  1395. package/src/shared/__tests__/with-timeout.test.ts +2 -2
  1396. package/src/shared/__tests__/worker-shutdown.test.ts +21 -0
  1397. package/src/shared/activity-input.ts +18 -36
  1398. package/src/shared/agent-fs.ts +24 -0
  1399. package/src/shared/agent-handover.ts +3 -3
  1400. package/src/shared/agent-identity.ts +52 -2
  1401. package/src/shared/approval-canonicalize.ts +3 -3
  1402. package/src/shared/approval-fingerprint.ts +6 -76
  1403. package/src/shared/approval-policy.ts +33 -27
  1404. package/src/shared/archive-mount.ts +20 -19
  1405. package/src/shared/args-preview.ts +15 -25
  1406. package/src/shared/artifact-storage.ts +12 -16
  1407. package/src/shared/attachment-vision.ts +42 -60
  1408. package/src/shared/blueprint-resolver.ts +0 -40
  1409. package/src/shared/builtin-assistant-prompt.ts +3 -3
  1410. package/src/shared/builtin-judge.ts +5 -5
  1411. package/src/shared/channel-attachment.ts +3 -6
  1412. package/src/shared/checkpointer/__tests__/http-saver.test.ts +2 -2
  1413. package/src/shared/checkpointer/factory.ts +2 -3
  1414. package/src/shared/checkpointer/http-saver.ts +10 -11
  1415. package/src/shared/checkpointer/sqlite-saver.ts +2 -2
  1416. package/src/shared/checkpointer/types.ts +1 -1
  1417. package/src/shared/cold-start-timing.ts +0 -3
  1418. package/src/shared/context-bridge.ts +1 -2
  1419. package/src/shared/conversation-catchup.ts +1 -1
  1420. package/src/shared/cost-guard.ts +4 -5
  1421. package/src/shared/edit-match.ts +292 -0
  1422. package/src/shared/error-chain.ts +79 -0
  1423. package/src/shared/eval-case/__tests__/agent-mock.test.ts +4 -4
  1424. package/src/shared/eval-case/__tests__/case-archive.test.ts +66 -30
  1425. package/src/shared/eval-case/__tests__/mock-endpoint.test.ts +0 -4
  1426. package/src/shared/eval-case/agent-mock.ts +2 -2
  1427. package/src/shared/eval-case/case-archive.ts +33 -16
  1428. package/src/shared/eval-case/mock-endpoint.ts +1 -4
  1429. package/src/shared/eval-case/prepare-case.ts +13 -12
  1430. package/src/shared/execution-context.ts +8 -11
  1431. package/src/shared/extract-structured-output.ts +2 -2
  1432. package/src/shared/file-change.ts +6 -6
  1433. package/src/shared/file-edit-policy.ts +226 -0
  1434. package/src/shared/file-mount.ts +430 -0
  1435. package/src/shared/file-tools.ts +22 -69
  1436. package/src/shared/filereview/__tests__/capture.test.ts +8 -10
  1437. package/src/shared/filereview/__tests__/cas-capture-observer.test.ts +163 -0
  1438. package/src/shared/filereview/__tests__/cas-substrate.test.ts +1 -1
  1439. package/src/shared/filereview/__tests__/command-provenance.test.ts +2 -2
  1440. package/src/shared/filereview/__tests__/digest.test.ts +5 -6
  1441. package/src/shared/filereview/__tests__/events.test.ts +4 -4
  1442. package/src/shared/filereview/__tests__/git-substrate.test.ts +86 -12
  1443. package/src/shared/filereview/__tests__/progress.test.ts +31 -4
  1444. package/src/shared/filereview/__tests__/proxy-reconcile.test.ts +2 -2
  1445. package/src/shared/filereview/__tests__/record.test.ts +43 -1
  1446. package/src/shared/filereview/capture.ts +31 -6
  1447. package/src/shared/filereview/cas-capture-observer.ts +135 -0
  1448. package/src/shared/filereview/cas-substrate.ts +2 -2
  1449. package/src/shared/filereview/cas-touched.ts +2 -2
  1450. package/src/shared/filereview/command-provenance.ts +5 -8
  1451. package/src/shared/filereview/digest.ts +4 -6
  1452. package/src/shared/filereview/events.ts +6 -7
  1453. package/src/shared/filereview/git-substrate.ts +58 -18
  1454. package/src/shared/filereview/index.ts +2 -2
  1455. package/src/shared/filereview/progress.ts +9 -1
  1456. package/src/shared/filereview/record.ts +50 -0
  1457. package/src/shared/fingerprint-secret.ts +2 -3
  1458. package/src/shared/heartbeat.ts +25 -0
  1459. package/src/shared/hooks/__tests__/condition.test.ts +162 -27
  1460. package/src/shared/hooks/__tests__/cursor-format.test.ts +18 -8
  1461. package/src/shared/hooks/__tests__/evaluate.test.ts +52 -4
  1462. package/src/shared/hooks/__tests__/stall.test.ts +2 -3
  1463. package/src/shared/hooks/__tests__/tool-view.test.ts +40 -30
  1464. package/src/shared/hooks/condition.ts +20 -10
  1465. package/src/shared/hooks/evaluate.ts +31 -20
  1466. package/src/shared/hooks/formats/claude-code.ts +11 -5
  1467. package/src/shared/hooks/formats/cursor.ts +3 -12
  1468. package/src/shared/hooks/hook-set.ts +6 -1
  1469. package/src/shared/hooks/matcher.ts +91 -19
  1470. package/src/shared/hooks/messages.ts +19 -6
  1471. package/src/shared/hooks/setup.ts +7 -5
  1472. package/src/shared/hooks/shell-commands.ts +83 -28
  1473. package/src/shared/hooks/tool-view.ts +48 -51
  1474. package/src/shared/implement-plan-prompt.ts +25 -20
  1475. package/src/shared/json-schema-to-zod.ts +2 -2
  1476. package/src/shared/json-value.ts +29 -0
  1477. package/src/shared/llm-backend.ts +5 -5
  1478. package/src/shared/mcp-manager.ts +46 -9
  1479. package/src/shared/mcp-network-errors.ts +151 -0
  1480. package/src/shared/mcp-oauth-detect.ts +3 -2
  1481. package/src/shared/mcp-resolver.ts +6 -6
  1482. package/src/shared/mcp-schema-sanitizer.ts +4 -3
  1483. package/src/shared/mcp-tool-listing.ts +62 -46
  1484. package/src/shared/mcp-tool-names.ts +143 -0
  1485. package/src/shared/mcp-transport-guard.ts +2 -3
  1486. package/src/shared/memory-retrieval.ts +2 -2
  1487. package/src/shared/model-client.ts +36 -23
  1488. package/src/shared/model-error.ts +113 -23
  1489. package/src/shared/model-facts.ts +1 -1
  1490. package/src/shared/model-registry.ts +71 -41
  1491. package/src/shared/model-retry.ts +298 -0
  1492. package/src/shared/model-window.ts +131 -0
  1493. package/src/shared/outputs.ts +450 -0
  1494. package/src/shared/persist-decision.ts +3 -7
  1495. package/src/shared/plan-file.ts +167 -0
  1496. package/src/shared/plan-mode-permissions.ts +2 -2
  1497. package/src/shared/plan-mode-prompt.ts +9 -10
  1498. package/src/shared/platform-hold.ts +58 -0
  1499. package/src/shared/plugin-mount.ts +1 -4
  1500. package/src/shared/prompt-sections.ts +78 -56
  1501. package/src/shared/provider-reach.ts +141 -0
  1502. package/src/shared/repository-instructions.ts +186 -0
  1503. package/src/shared/run-credential-store.ts +4 -3
  1504. package/src/shared/run-credential.ts +4 -4
  1505. package/src/shared/run-values.ts +4 -4
  1506. package/src/shared/runner-credential-keys.ts +6 -10
  1507. package/src/shared/runner-credential-store.ts +5 -7
  1508. package/src/shared/service-tier.ts +3 -6
  1509. package/src/shared/shell/__tests__/background-commands.test.ts +210 -0
  1510. package/src/shared/shell/__tests__/background-output-file.test.ts +43 -0
  1511. package/src/shared/shell/__tests__/run-command.test.ts +229 -0
  1512. package/src/shared/shell/background-commands.ts +321 -0
  1513. package/src/shared/shell/limits.ts +17 -0
  1514. package/src/shared/shell/run-command.ts +295 -0
  1515. package/src/shared/shell-env.ts +8 -9
  1516. package/src/shared/skill-mount.ts +15 -21
  1517. package/src/shared/skill-resolver.ts +2 -5
  1518. package/src/shared/stall-watchdog.ts +31 -9
  1519. package/src/shared/status-offload.ts +16 -19
  1520. package/src/shared/status.ts +13 -8
  1521. package/src/shared/streaming-scheduler.ts +1 -1
  1522. package/src/shared/subagent-gate.ts +1 -1
  1523. package/src/shared/subagent-rows.ts +1 -4
  1524. package/src/shared/subagents.ts +26 -7
  1525. package/src/shared/task-queues.ts +27 -0
  1526. package/src/shared/telemetry-content.ts +1 -1
  1527. package/src/shared/text-cut.ts +64 -0
  1528. package/src/shared/thinking-mode.ts +11 -15
  1529. package/src/shared/todos.ts +2 -3
  1530. package/src/shared/tool-kind.ts +28 -27
  1531. package/src/shared/tool-lists.ts +15 -136
  1532. package/src/shared/tool-row.ts +23 -60
  1533. package/src/shared/unattended-skips.ts +69 -0
  1534. package/src/shared/with-timeout.ts +3 -4
  1535. package/src/shared/worker-shutdown.ts +55 -23
  1536. package/src/shared/workspace/__tests__/clone-handoff.test.ts +34 -0
  1537. package/src/shared/workspace/__tests__/git-credential.test.ts +19 -412
  1538. package/src/shared/workspace/__tests__/git-source.test.ts +138 -94
  1539. package/src/shared/workspace/__tests__/provisioner.test.ts +54 -35
  1540. package/src/shared/workspace/__tests__/runner-git.test.ts +519 -0
  1541. package/src/shared/workspace/__tests__/runtime-git.test.ts +35 -0
  1542. package/src/shared/workspace/__tests__/session-provision.test.ts +113 -47
  1543. package/src/shared/workspace/__tests__/stigmer-link.test.ts +92 -16
  1544. package/src/shared/workspace/__tests__/token-stays-in-runner.test.ts +163 -0
  1545. package/src/shared/workspace/__tests__/writeback-coordinator-git.test.ts +33 -10
  1546. package/src/shared/workspace/__tests__/writeback-coordinator.test.ts +146 -54
  1547. package/src/shared/workspace/clone-handoff.ts +99 -0
  1548. package/src/shared/workspace/git-credential.ts +18 -176
  1549. package/src/shared/workspace/local-backend.ts +1 -1
  1550. package/src/shared/workspace/platform-dir.ts +38 -71
  1551. package/src/shared/workspace/platform-mount.ts +0 -2
  1552. package/src/shared/workspace/provisioner.ts +44 -32
  1553. package/src/shared/workspace/runner-git.ts +434 -0
  1554. package/src/shared/workspace/runtime-git.ts +44 -0
  1555. package/src/shared/workspace/session-provision.ts +16 -16
  1556. package/src/shared/workspace/session-root.ts +8 -8
  1557. package/src/shared/workspace/sources/git.ts +130 -87
  1558. package/src/shared/workspace/sources/local-path.ts +1 -1
  1559. package/src/shared/workspace/stigmer-link.ts +88 -11
  1560. package/src/shared/workspace/types.ts +6 -5
  1561. package/src/shared/workspace/workspace-lock.ts +32 -15
  1562. package/src/shared/workspace/writeback-coordinator.ts +113 -41
  1563. package/src/shared/zip-extract.ts +2 -5
  1564. package/src/temporal-lane.ts +177 -0
  1565. package/src/tools/index.ts +4 -4
  1566. package/src/tools/url-guard.ts +3 -5
  1567. package/src/tools/web-fetch-tool.ts +5 -5
  1568. package/src/worker.ts +28 -53
  1569. package/dist/__test-utils__/approval-contract/hook-commands.d.ts +0 -25
  1570. package/dist/__test-utils__/approval-contract/hook-commands.js +0 -87
  1571. package/dist/__test-utils__/approval-contract/hook-commands.js.map +0 -1
  1572. package/dist/__test-utils__/approval-contract/types.d.ts +0 -326
  1573. package/dist/__test-utils__/approval-contract/types.js +0 -24
  1574. package/dist/__test-utils__/approval-contract/types.js.map +0 -1
  1575. package/dist/__test-utils__/approval-log.d.ts +0 -34
  1576. package/dist/__test-utils__/approval-log.js +0 -126
  1577. package/dist/__test-utils__/approval-log.js.map +0 -1
  1578. package/dist/__test-utils__/execution-record-fixture.d.ts +0 -121
  1579. package/dist/__test-utils__/execution-record-fixture.js +0 -134
  1580. package/dist/__test-utils__/execution-record-fixture.js.map +0 -1
  1581. package/dist/__test-utils__/file-review-projection.d.ts +0 -45
  1582. package/dist/__test-utils__/file-review-projection.js +0 -61
  1583. package/dist/__test-utils__/file-review-projection.js.map +0 -1
  1584. package/dist/__test-utils__/harness-contract/types.d.ts +0 -188
  1585. package/dist/__test-utils__/harness-contract/types.js +0 -64
  1586. package/dist/__test-utils__/harness-contract/types.js.map +0 -1
  1587. package/dist/__test-utils__/hermetic-activity.d.ts +0 -450
  1588. package/dist/__test-utils__/hermetic-activity.js +0 -883
  1589. package/dist/__test-utils__/hermetic-activity.js.map +0 -1
  1590. package/dist/__test-utils__/loopback-host.d.ts +0 -23
  1591. package/dist/__test-utils__/loopback-host.js +0 -45
  1592. package/dist/__test-utils__/loopback-host.js.map +0 -1
  1593. package/dist/__test-utils__/mock-client.d.ts +0 -13
  1594. package/dist/__test-utils__/mock-client.js +0 -46
  1595. package/dist/__test-utils__/mock-client.js.map +0 -1
  1596. package/dist/__test-utils__/mock-workspace.d.ts +0 -15
  1597. package/dist/__test-utils__/mock-workspace.js +0 -21
  1598. package/dist/__test-utils__/mock-workspace.js.map +0 -1
  1599. package/dist/__test-utils__/model-registry-fixture.d.ts +0 -111
  1600. package/dist/__test-utils__/model-registry-fixture.js +0 -109
  1601. package/dist/__test-utils__/model-registry-fixture.js.map +0 -1
  1602. package/dist/__test-utils__/turn-input-fixture.d.ts +0 -60
  1603. package/dist/__test-utils__/turn-input-fixture.js +0 -129
  1604. package/dist/__test-utils__/turn-input-fixture.js.map +0 -1
  1605. package/dist/activities/attach-session.d.ts +0 -34
  1606. package/dist/activities/attach-session.js +0 -94
  1607. package/dist/activities/attach-session.js.map +0 -1
  1608. package/dist/activities/execute-cursor/__test-utils__/contract-subject.d.ts +0 -107
  1609. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js +0 -392
  1610. package/dist/activities/execute-cursor/__test-utils__/contract-subject.js.map +0 -1
  1611. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.d.ts +0 -251
  1612. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js +0 -254
  1613. package/dist/activities/execute-cursor/__test-utils__/cursor-hook-harness.js.map +0 -1
  1614. package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +0 -62
  1615. package/dist/activities/execute-cursor/__test-utils__/fold.js +0 -94
  1616. package/dist/activities/execute-cursor/__test-utils__/fold.js.map +0 -1
  1617. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.d.ts +0 -34
  1618. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js +0 -287
  1619. package/dist/activities/execute-cursor/__test-utils__/gateway-substrate.js.map +0 -1
  1620. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.d.ts +0 -202
  1621. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +0 -306
  1622. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +0 -1
  1623. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.d.ts +0 -176
  1624. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js +0 -278
  1625. package/dist/activities/execute-cursor/__test-utils__/scripted-agent.js.map +0 -1
  1626. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.d.ts +0 -182
  1627. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js +0 -241
  1628. package/dist/activities/execute-cursor/__test-utils__/scripted-sdk.js.map +0 -1
  1629. package/dist/activities/execute-cursor/adapter.d.ts +0 -63
  1630. package/dist/activities/execute-cursor/adapter.js +0 -141
  1631. package/dist/activities/execute-cursor/adapter.js.map +0 -1
  1632. package/dist/activities/execute-cursor/agent-session-cache.d.ts +0 -72
  1633. package/dist/activities/execute-cursor/agent-session-cache.js +0 -186
  1634. package/dist/activities/execute-cursor/agent-session-cache.js.map +0 -1
  1635. package/dist/activities/execute-cursor/approval-policy.d.ts +0 -67
  1636. package/dist/activities/execute-cursor/approval-policy.js +0 -101
  1637. package/dist/activities/execute-cursor/approval-policy.js.map +0 -1
  1638. package/dist/activities/execute-cursor/approval-state.d.ts +0 -657
  1639. package/dist/activities/execute-cursor/approval-state.js +0 -682
  1640. package/dist/activities/execute-cursor/approval-state.js.map +0 -1
  1641. package/dist/activities/execute-cursor/boundary-rows.d.ts +0 -455
  1642. package/dist/activities/execute-cursor/boundary-rows.js +0 -1268
  1643. package/dist/activities/execute-cursor/boundary-rows.js.map +0 -1
  1644. package/dist/activities/execute-cursor/cas-observations.d.ts +0 -126
  1645. package/dist/activities/execute-cursor/cas-observations.js +0 -240
  1646. package/dist/activities/execute-cursor/cas-observations.js.map +0 -1
  1647. package/dist/activities/execute-cursor/cursor-capabilities.d.ts +0 -37
  1648. package/dist/activities/execute-cursor/cursor-capabilities.js +0 -74
  1649. package/dist/activities/execute-cursor/cursor-capabilities.js.map +0 -1
  1650. package/dist/activities/execute-cursor/cursor-event-recorder.d.ts +0 -43
  1651. package/dist/activities/execute-cursor/cursor-event-recorder.js +0 -88
  1652. package/dist/activities/execute-cursor/cursor-event-recorder.js.map +0 -1
  1653. package/dist/activities/execute-cursor/cursor-mcp-config.d.ts +0 -58
  1654. package/dist/activities/execute-cursor/cursor-mcp-config.js +0 -86
  1655. package/dist/activities/execute-cursor/cursor-mcp-config.js.map +0 -1
  1656. package/dist/activities/execute-cursor/cursor-mode.d.ts +0 -32
  1657. package/dist/activities/execute-cursor/cursor-mode.js +0 -36
  1658. package/dist/activities/execute-cursor/cursor-mode.js.map +0 -1
  1659. package/dist/activities/execute-cursor/error-classifier.d.ts +0 -138
  1660. package/dist/activities/execute-cursor/error-classifier.js +0 -330
  1661. package/dist/activities/execute-cursor/error-classifier.js.map +0 -1
  1662. package/dist/activities/execute-cursor/fetch-interceptor.d.ts +0 -56
  1663. package/dist/activities/execute-cursor/fetch-interceptor.js +0 -378
  1664. package/dist/activities/execute-cursor/fetch-interceptor.js.map +0 -1
  1665. package/dist/activities/execute-cursor/hook-scope.d.ts +0 -143
  1666. package/dist/activities/execute-cursor/hook-scope.js +0 -149
  1667. package/dist/activities/execute-cursor/hook-scope.js.map +0 -1
  1668. package/dist/activities/execute-cursor/hook-script.d.ts +0 -172
  1669. package/dist/activities/execute-cursor/hook-script.js +0 -1204
  1670. package/dist/activities/execute-cursor/hook-script.js.map +0 -1
  1671. package/dist/activities/execute-cursor/hook-server.d.ts +0 -152
  1672. package/dist/activities/execute-cursor/hook-server.js +0 -422
  1673. package/dist/activities/execute-cursor/hook-server.js.map +0 -1
  1674. package/dist/activities/execute-cursor/hook-tool-hiding.d.ts +0 -37
  1675. package/dist/activities/execute-cursor/hook-tool-hiding.js +0 -58
  1676. package/dist/activities/execute-cursor/hook-tool-hiding.js.map +0 -1
  1677. package/dist/activities/execute-cursor/hook-views.d.ts +0 -74
  1678. package/dist/activities/execute-cursor/hook-views.js +0 -180
  1679. package/dist/activities/execute-cursor/hook-views.js.map +0 -1
  1680. package/dist/activities/execute-cursor/http2-interceptor.d.ts +0 -98
  1681. package/dist/activities/execute-cursor/http2-interceptor.js +0 -218
  1682. package/dist/activities/execute-cursor/http2-interceptor.js.map +0 -1
  1683. package/dist/activities/execute-cursor/model-pricing-data.d.ts +0 -39
  1684. package/dist/activities/execute-cursor/model-pricing-data.js +0 -109
  1685. package/dist/activities/execute-cursor/model-pricing-data.js.map +0 -1
  1686. package/dist/activities/execute-cursor/model-pricing.d.ts +0 -51
  1687. package/dist/activities/execute-cursor/model-pricing.js +0 -160
  1688. package/dist/activities/execute-cursor/model-pricing.js.map +0 -1
  1689. package/dist/activities/execute-cursor/prompt-builder.d.ts +0 -437
  1690. package/dist/activities/execute-cursor/prompt-builder.js +0 -719
  1691. package/dist/activities/execute-cursor/prompt-builder.js.map +0 -1
  1692. package/dist/activities/execute-cursor/rejection-capture.d.ts +0 -27
  1693. package/dist/activities/execute-cursor/rejection-capture.js +0 -78
  1694. package/dist/activities/execute-cursor/rejection-capture.js.map +0 -1
  1695. package/dist/activities/execute-cursor/run-telemetry.d.ts +0 -61
  1696. package/dist/activities/execute-cursor/run-telemetry.js +0 -149
  1697. package/dist/activities/execute-cursor/run-telemetry.js.map +0 -1
  1698. package/dist/activities/execute-cursor/sdk-warmup.d.ts +0 -53
  1699. package/dist/activities/execute-cursor/sdk-warmup.js +0 -70
  1700. package/dist/activities/execute-cursor/sdk-warmup.js.map +0 -1
  1701. package/dist/activities/execute-cursor/service-tier.d.ts +0 -68
  1702. package/dist/activities/execute-cursor/service-tier.js +0 -200
  1703. package/dist/activities/execute-cursor/service-tier.js.map +0 -1
  1704. package/dist/activities/execute-cursor/session-lifecycle.d.ts +0 -247
  1705. package/dist/activities/execute-cursor/session-lifecycle.js +0 -330
  1706. package/dist/activities/execute-cursor/session-lifecycle.js.map +0 -1
  1707. package/dist/activities/execute-cursor/session-store.d.ts +0 -99
  1708. package/dist/activities/execute-cursor/session-store.js +0 -156
  1709. package/dist/activities/execute-cursor/session-store.js.map +0 -1
  1710. package/dist/activities/execute-cursor/sub-agent-steps.d.ts +0 -79
  1711. package/dist/activities/execute-cursor/sub-agent-steps.js +0 -180
  1712. package/dist/activities/execute-cursor/sub-agent-steps.js.map +0 -1
  1713. package/dist/activities/execute-cursor/subagent-config.d.ts +0 -61
  1714. package/dist/activities/execute-cursor/subagent-config.js +0 -102
  1715. package/dist/activities/execute-cursor/subagent-config.js.map +0 -1
  1716. package/dist/activities/execute-cursor/tool-result.d.ts +0 -49
  1717. package/dist/activities/execute-cursor/tool-result.js +0 -130
  1718. package/dist/activities/execute-cursor/tool-result.js.map +0 -1
  1719. package/dist/activities/execute-cursor/translator.d.ts +0 -183
  1720. package/dist/activities/execute-cursor/translator.js +0 -485
  1721. package/dist/activities/execute-cursor/translator.js.map +0 -1
  1722. package/dist/activities/execute-cursor/turn-boundary.d.ts +0 -124
  1723. package/dist/activities/execute-cursor/turn-boundary.js +0 -210
  1724. package/dist/activities/execute-cursor/turn-boundary.js.map +0 -1
  1725. package/dist/activities/execute-cursor/turn-recovery.d.ts +0 -62
  1726. package/dist/activities/execute-cursor/turn-recovery.js +0 -208
  1727. package/dist/activities/execute-cursor/turn-recovery.js.map +0 -1
  1728. package/dist/activities/execute-cursor/turn-settle.d.ts +0 -59
  1729. package/dist/activities/execute-cursor/turn-settle.js +0 -512
  1730. package/dist/activities/execute-cursor/turn-settle.js.map +0 -1
  1731. package/dist/activities/execute-cursor/turn-setup.d.ts +0 -281
  1732. package/dist/activities/execute-cursor/turn-setup.js +0 -739
  1733. package/dist/activities/execute-cursor/turn-setup.js.map +0 -1
  1734. package/dist/activities/execute-cursor/turn-stream.d.ts +0 -133
  1735. package/dist/activities/execute-cursor/turn-stream.js +0 -239
  1736. package/dist/activities/execute-cursor/turn-stream.js.map +0 -1
  1737. package/dist/activities/execute-cursor/turn.d.ts +0 -46
  1738. package/dist/activities/execute-cursor/turn.js +0 -247
  1739. package/dist/activities/execute-cursor/turn.js.map +0 -1
  1740. package/dist/activities/execute-cursor/usage-pricing.d.ts +0 -38
  1741. package/dist/activities/execute-cursor/usage-pricing.js +0 -50
  1742. package/dist/activities/execute-cursor/usage-pricing.js.map +0 -1
  1743. package/dist/activities/execute-cursor/workspace-hook-files.d.ts +0 -116
  1744. package/dist/activities/execute-cursor/workspace-hook-files.js +0 -390
  1745. package/dist/activities/execute-cursor/workspace-hook-files.js.map +0 -1
  1746. package/dist/activities/execute-cursor/workspace-setup.d.ts +0 -148
  1747. package/dist/activities/execute-cursor/workspace-setup.js +0 -444
  1748. package/dist/activities/execute-cursor/workspace-setup.js.map +0 -1
  1749. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.d.ts +0 -102
  1750. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js +0 -361
  1751. package/dist/activities/execute-deep-agent/__test-utils__/contract-subject.js.map +0 -1
  1752. package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.d.ts +0 -33
  1753. package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.js +0 -423
  1754. package/dist/activities/execute-deep-agent/__test-utils__/gateway-substrate.js.map +0 -1
  1755. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +0 -224
  1756. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +0 -307
  1757. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +0 -1
  1758. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.d.ts +0 -24
  1759. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js +0 -41
  1760. package/dist/activities/execute-deep-agent/__test-utils__/hitl-script.js.map +0 -1
  1761. package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.d.ts +0 -76
  1762. package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.js +0 -112
  1763. package/dist/activities/execute-deep-agent/__test-utils__/paused-session-fixture.js.map +0 -1
  1764. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.d.ts +0 -53
  1765. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js +0 -71
  1766. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model-module.js.map +0 -1
  1767. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.d.ts +0 -305
  1768. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js +0 -368
  1769. package/dist/activities/execute-deep-agent/__test-utils__/scripted-model.js.map +0 -1
  1770. package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.d.ts +0 -17
  1771. package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.js +0 -23
  1772. package/dist/activities/execute-deep-agent/__test-utils__/think-bound-session.js.map +0 -1
  1773. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.d.ts +0 -80
  1774. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js +0 -195
  1775. package/dist/activities/execute-deep-agent/__test-utils__/v3-event-fixtures.js.map +0 -1
  1776. package/dist/activities/execute-deep-agent/auto-publish.d.ts +0 -17
  1777. package/dist/activities/execute-deep-agent/auto-publish.js +0 -71
  1778. package/dist/activities/execute-deep-agent/auto-publish.js.map +0 -1
  1779. package/dist/activities/execute-deep-agent/cas-capture-observer.d.ts +0 -83
  1780. package/dist/activities/execute-deep-agent/cas-capture-observer.js +0 -117
  1781. package/dist/activities/execute-deep-agent/cas-capture-observer.js.map +0 -1
  1782. package/dist/activities/execute-deep-agent/inline-publisher.d.ts +0 -83
  1783. package/dist/activities/execute-deep-agent/inline-publisher.js +0 -152
  1784. package/dist/activities/execute-deep-agent/inline-publisher.js.map +0 -1
  1785. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +0 -49
  1786. package/dist/activities/execute-deep-agent/streaming-side-effects.js +0 -73
  1787. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +0 -1
  1788. package/dist/agent-proxy/cursor-lane.d.ts +0 -124
  1789. package/dist/agent-proxy/cursor-lane.js +0 -507
  1790. package/dist/agent-proxy/cursor-lane.js.map +0 -1
  1791. package/dist/agent-proxy/loopback-certificate.d.ts +0 -27
  1792. package/dist/agent-proxy/loopback-certificate.js +0 -115
  1793. package/dist/agent-proxy/loopback-certificate.js.map +0 -1
  1794. package/dist/pool-member.d.ts +0 -61
  1795. package/dist/pool-member.js +0 -51
  1796. package/dist/pool-member.js.map +0 -1
  1797. package/dist/shared/attachment-download-urls.d.ts +0 -53
  1798. package/dist/shared/attachment-download-urls.js +0 -68
  1799. package/dist/shared/attachment-download-urls.js.map +0 -1
  1800. package/dist/shared/attachment-naming.d.ts +0 -53
  1801. package/dist/shared/attachment-naming.js +0 -59
  1802. package/dist/shared/attachment-naming.js.map +0 -1
  1803. package/dist/shared/attachment-resolver.d.ts +0 -124
  1804. package/dist/shared/attachment-resolver.js +0 -322
  1805. package/dist/shared/attachment-resolver.js.map +0 -1
  1806. package/dist/shared/attachment-zip.d.ts +0 -85
  1807. package/dist/shared/attachment-zip.js +0 -185
  1808. package/dist/shared/attachment-zip.js.map +0 -1
  1809. package/dist/shared/exact-apply.d.ts +0 -109
  1810. package/dist/shared/exact-apply.js +0 -205
  1811. package/dist/shared/exact-apply.js.map +0 -1
  1812. package/dist/shared/plan-artifact.d.ts +0 -105
  1813. package/dist/shared/plan-artifact.js +0 -225
  1814. package/dist/shared/plan-artifact.js.map +0 -1
  1815. package/dist/workflow-source.d.ts +0 -38
  1816. package/dist/workflow-source.js +0 -53
  1817. package/dist/workflow-source.js.map +0 -1
  1818. package/dist/workflows/index.d.ts +0 -32
  1819. package/dist/workflows/index.js +0 -33
  1820. package/dist/workflows/index.js.map +0 -1
  1821. package/dist/workflows/list-plugin-tools.d.ts +0 -23
  1822. package/dist/workflows/list-plugin-tools.js +0 -56
  1823. package/dist/workflows/list-plugin-tools.js.map +0 -1
  1824. package/dist/workflows/types.d.ts +0 -43
  1825. package/dist/workflows/types.js +0 -18
  1826. package/dist/workflows/types.js.map +0 -1
  1827. package/src/__test-utils__/cursor-sdk-wire-child.ts +0 -47
  1828. package/src/__test-utils__/import-http2-first.ts +0 -11
  1829. package/src/__tests__/pool-member.test.ts +0 -77
  1830. package/src/activities/__tests__/attach-session.test.ts +0 -133
  1831. package/src/activities/__tests__/error-classifier.test.ts +0 -464
  1832. package/src/activities/attach-session.ts +0 -111
  1833. package/src/activities/execute-cursor/__test-utils__/__tests__/scripted-double.test.ts +0 -126
  1834. package/src/activities/execute-cursor/__test-utils__/contract-subject.ts +0 -445
  1835. package/src/activities/execute-cursor/__test-utils__/cursor-hook-harness.ts +0 -407
  1836. package/src/activities/execute-cursor/__test-utils__/fold.ts +0 -118
  1837. package/src/activities/execute-cursor/__test-utils__/gateway-substrate.ts +0 -316
  1838. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +0 -428
  1839. package/src/activities/execute-cursor/__test-utils__/scripted-agent.ts +0 -374
  1840. package/src/activities/execute-cursor/__test-utils__/scripted-sdk.ts +0 -310
  1841. package/src/activities/execute-cursor/__tests__/adapter-is-temporal-free.test.ts +0 -45
  1842. package/src/activities/execute-cursor/__tests__/agent-session-cache.test.ts +0 -220
  1843. package/src/activities/execute-cursor/__tests__/approval-decisions-agree.test.ts +0 -141
  1844. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +0 -335
  1845. package/src/activities/execute-cursor/__tests__/approval-state.test.ts +0 -288
  1846. package/src/activities/execute-cursor/__tests__/boundary-seal.test.ts +0 -125
  1847. package/src/activities/execute-cursor/__tests__/build-prompt.test.ts +0 -1045
  1848. package/src/activities/execute-cursor/__tests__/cas-observations.test.ts +0 -267
  1849. package/src/activities/execute-cursor/__tests__/check-tool-scope.test.ts +0 -290
  1850. package/src/activities/execute-cursor/__tests__/coarse-fingerprint.test.ts +0 -98
  1851. package/src/activities/execute-cursor/__tests__/cursor-baseurl-routing.live.test.ts +0 -94
  1852. package/src/activities/execute-cursor/__tests__/cursor-event-recorder.test.ts +0 -142
  1853. package/src/activities/execute-cursor/__tests__/cursor-fetch-interceptor-bypass.live.test.ts +0 -76
  1854. package/src/activities/execute-cursor/__tests__/cursor-generate-image.live.test.ts +0 -154
  1855. package/src/activities/execute-cursor/__tests__/cursor-hook-protocol.live.test.ts +0 -479
  1856. package/src/activities/execute-cursor/__tests__/cursor-hooks-gate.live.test.ts +0 -295
  1857. package/src/activities/execute-cursor/__tests__/cursor-mcp-config.test.ts +0 -128
  1858. package/src/activities/execute-cursor/__tests__/cursor-mode.test.ts +0 -95
  1859. package/src/activities/execute-cursor/__tests__/cursor-sdk-auth.live.test.ts +0 -97
  1860. package/src/activities/execute-cursor/__tests__/cursor-transcript.live.test.ts +0 -289
  1861. package/src/activities/execute-cursor/__tests__/deny-gate-exact-apply.test.ts +0 -200
  1862. package/src/activities/execute-cursor/__tests__/error-classifier-billing.test.ts +0 -178
  1863. package/src/activities/execute-cursor/__tests__/error-classifier-extraction.test.ts +0 -208
  1864. package/src/activities/execute-cursor/__tests__/error-classifier-introspection.test.ts +0 -156
  1865. package/src/activities/execute-cursor/__tests__/fetch-interceptor.test.ts +0 -389
  1866. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.append.prompt.md +0 -147
  1867. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.everything.prompt.md +0 -164
  1868. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.no-instructions.prompt.md +0 -142
  1869. package/src/activities/execute-cursor/__tests__/goldens/prompt.enhanced.plan-mode.prompt.md +0 -184
  1870. package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.recovery.prompt.md +0 -189
  1871. package/src/activities/execute-cursor/__tests__/goldens/prompt.hitl.reinvocation.prompt.md +0 -13
  1872. package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.prefixed.prompt.md +0 -32
  1873. package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.raw.append.prompt.md +0 -5
  1874. package/src/activities/execute-cursor/__tests__/goldens/prompt.resumed.raw.prompt.md +0 -1
  1875. package/src/activities/execute-cursor/__tests__/hermetic/answers.test.ts +0 -279
  1876. package/src/activities/execute-cursor/__tests__/hermetic/built-in-assistant.test.ts +0 -127
  1877. package/src/activities/execute-cursor/__tests__/hermetic/bypassed-tool-call.test.ts +0 -120
  1878. package/src/activities/execute-cursor/__tests__/hermetic/deny-and-retry.test.ts +0 -233
  1879. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +0 -262
  1880. package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.events.json +0 -94
  1881. package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.rows.json +0 -47
  1882. package/src/activities/execute-cursor/__tests__/hermetic/goldens/approve-all.turn2.status.json +0 -17
  1883. package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.events.json +0 -14
  1884. package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.rows.json +0 -14
  1885. package/src/activities/execute-cursor/__tests__/hermetic/goldens/cost-cap.status.json +0 -18
  1886. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.events.json +0 -37
  1887. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.rows.json +0 -29
  1888. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn1.status.json +0 -4
  1889. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.events.json +0 -71
  1890. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.rows.json +0 -32
  1891. package/src/activities/execute-cursor/__tests__/hermetic/goldens/deny-and-retry.turn2.status.json +0 -17
  1892. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.events.json +0 -68
  1893. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.rows.json +0 -96
  1894. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.status.json +0 -74
  1895. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.events.json +0 -50
  1896. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.rows.json +0 -32
  1897. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-off.status.json +0 -17
  1898. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.events.json +0 -91
  1899. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.rows.json +0 -9
  1900. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-reconcile.status.json +0 -6
  1901. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.events.json +0 -110
  1902. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.rows.json +0 -77
  1903. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn1.status.json +0 -14
  1904. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.events.json +0 -144
  1905. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.rows.json +0 -34
  1906. package/src/activities/execute-cursor/__tests__/hermetic/goldens/hooks.turn2.status.json +0 -27
  1907. package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.events.json +0 -50
  1908. package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.rows.json +0 -30
  1909. package/src/activities/execute-cursor/__tests__/hermetic/goldens/mcp-tool-call.status.json +0 -17
  1910. package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.events.json +0 -14
  1911. package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.rows.json +0 -9
  1912. package/src/activities/execute-cursor/__tests__/hermetic/goldens/pause.status.json +0 -4
  1913. package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.events.json +0 -14
  1914. package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.rows.json +0 -9
  1915. package/src/activities/execute-cursor/__tests__/hermetic/goldens/plain-turn.status.json +0 -17
  1916. package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.events.json +0 -37
  1917. package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.rows.json +0 -29
  1918. package/src/activities/execute-cursor/__tests__/hermetic/goldens/platform-stop.status.json +0 -6
  1919. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.events.json +0 -26
  1920. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.rows.json +0 -14
  1921. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-fresh-agent.status.json +0 -17
  1922. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.events.json +0 -14
  1923. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.rows.json +0 -9
  1924. package/src/activities/execute-cursor/__tests__/hermetic/goldens/recovery-transport-timeout.status.json +0 -17
  1925. package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.events.json +0 -61
  1926. package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.rows.json +0 -31
  1927. package/src/activities/execute-cursor/__tests__/hermetic/goldens/reject.turn2.status.json +0 -17
  1928. package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.events.json +0 -1
  1929. package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.rows.json +0 -14
  1930. package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.status.json +0 -7
  1931. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.events.json +0 -14
  1932. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.rows.json +0 -9
  1933. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-cancelled.status.json +0 -5
  1934. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.events.json +0 -14
  1935. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.rows.json +0 -9
  1936. package/src/activities/execute-cursor/__tests__/hermetic/goldens/run-error-non-retryable.status.json +0 -7
  1937. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.events.json +0 -1
  1938. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.rows.json +0 -14
  1939. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-error-at-create.status.json +0 -7
  1940. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.events.json +0 -56
  1941. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.rows.json +0 -34
  1942. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sdk-task-note.status.json +0 -17
  1943. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.events.json +0 -64
  1944. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.rows.json +0 -36
  1945. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +0 -17
  1946. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.events.json +0 -49
  1947. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.events.json +0 -49
  1948. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.rows.json +0 -31
  1949. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +0 -17
  1950. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.rows.json +0 -31
  1951. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +0 -17
  1952. package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.events.json +0 -24
  1953. package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.rows.json +0 -29
  1954. package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.status.json +0 -7
  1955. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.events.json +0 -158
  1956. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.rows.json +0 -70
  1957. package/src/activities/execute-cursor/__tests__/hermetic/goldens/sub-agent-delegation.status.json +0 -17
  1958. package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.events.json +0 -77
  1959. package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.rows.json +0 -39
  1960. package/src/activities/execute-cursor/__tests__/hermetic/goldens/thinking-turn.status.json +0 -17
  1961. package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.events.json +0 -99
  1962. package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.rows.json +0 -80
  1963. package/src/activities/execute-cursor/__tests__/hermetic/goldens/todo-write.status.json +0 -17
  1964. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.events.json +0 -49
  1965. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.rows.json +0 -29
  1966. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-call.status.json +0 -17
  1967. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.events.json +0 -50
  1968. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.rows.json +0 -29
  1969. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-error.status.json +0 -17
  1970. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.events.json +0 -37
  1971. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.rows.json +0 -28
  1972. package/src/activities/execute-cursor/__tests__/hermetic/goldens/tool-only-step.status.json +0 -17
  1973. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.events.json +0 -51
  1974. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.rows.json +0 -31
  1975. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattended-skip.status.json +0 -17
  1976. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.events.json +0 -50
  1977. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.rows.json +0 -36
  1978. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +0 -19
  1979. package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.events.json +0 -14
  1980. package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.rows.json +0 -14
  1981. package/src/activities/execute-cursor/__tests__/hermetic/goldens/worker-shutdown.status.json +0 -7
  1982. package/src/activities/execute-cursor/__tests__/hermetic/harness-contract.test.ts +0 -198
  1983. package/src/activities/execute-cursor/__tests__/hermetic/hooks.test.ts +0 -569
  1984. package/src/activities/execute-cursor/__tests__/hermetic/mcp-tool-call.test.ts +0 -149
  1985. package/src/activities/execute-cursor/__tests__/hermetic/pause-vs-shutdown.test.ts +0 -222
  1986. package/src/activities/execute-cursor/__tests__/hermetic/plain-turn.test.ts +0 -178
  1987. package/src/activities/execute-cursor/__tests__/hermetic/recovery-fresh-agent.test.ts +0 -162
  1988. package/src/activities/execute-cursor/__tests__/hermetic/run-wait-arms.test.ts +0 -296
  1989. package/src/activities/execute-cursor/__tests__/hermetic/sdk-task-note.test.ts +0 -125
  1990. package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +0 -283
  1991. package/src/activities/execute-cursor/__tests__/hermetic/stream-self-stop-arms.test.ts +0 -342
  1992. package/src/activities/execute-cursor/__tests__/hermetic/sub-agent-delegation.test.ts +0 -197
  1993. package/src/activities/execute-cursor/__tests__/hermetic/thinking-turn.test.ts +0 -149
  1994. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +0 -214
  1995. package/src/activities/execute-cursor/__tests__/hermetic/todo-write.test.ts +0 -169
  1996. package/src/activities/execute-cursor/__tests__/hermetic/tool-call.test.ts +0 -143
  1997. package/src/activities/execute-cursor/__tests__/hermetic/tool-error.test.ts +0 -141
  1998. package/src/activities/execute-cursor/__tests__/hermetic/tool-lists.test.ts +0 -391
  1999. package/src/activities/execute-cursor/__tests__/hermetic/tool-only-step.test.ts +0 -134
  2000. package/src/activities/execute-cursor/__tests__/hermetic/turn-phases.test.ts +0 -136
  2001. package/src/activities/execute-cursor/__tests__/hermetic/unattended-skip.test.ts +0 -157
  2002. package/src/activities/execute-cursor/__tests__/hermetic/unattributed-hook-block.test.ts +0 -200
  2003. package/src/activities/execute-cursor/__tests__/hermetic/workspace-lock-timeout.test.ts +0 -156
  2004. package/src/activities/execute-cursor/__tests__/hitl-ledger.test.ts +0 -2109
  2005. package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +0 -431
  2006. package/src/activities/execute-cursor/__tests__/hook-refusal-rows.test.ts +0 -95
  2007. package/src/activities/execute-cursor/__tests__/hook-scope.test.ts +0 -175
  2008. package/src/activities/execute-cursor/__tests__/hook-script.test.ts +0 -1408
  2009. package/src/activities/execute-cursor/__tests__/hook-server.test.ts +0 -465
  2010. package/src/activities/execute-cursor/__tests__/hook-views.test.ts +0 -171
  2011. package/src/activities/execute-cursor/__tests__/http2-interceptor.test.ts +0 -408
  2012. package/src/activities/execute-cursor/__tests__/model-pricing.test.ts +0 -173
  2013. package/src/activities/execute-cursor/__tests__/prepare-hooks.test.ts +0 -97
  2014. package/src/activities/execute-cursor/__tests__/prompt-builder-delegation.test.ts +0 -85
  2015. package/src/activities/execute-cursor/__tests__/prompt-goldens.test.ts +0 -270
  2016. package/src/activities/execute-cursor/__tests__/resolve-timeout-message.test.ts +0 -24
  2017. package/src/activities/execute-cursor/__tests__/run-telemetry.test.ts +0 -177
  2018. package/src/activities/execute-cursor/__tests__/runner-error-regressions.test.ts +0 -103
  2019. package/src/activities/execute-cursor/__tests__/same-identity-reproposal.test.ts +0 -174
  2020. package/src/activities/execute-cursor/__tests__/scope-refusal-rows.test.ts +0 -269
  2021. package/src/activities/execute-cursor/__tests__/sdk-warmup.test.ts +0 -45
  2022. package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +0 -182
  2023. package/src/activities/execute-cursor/__tests__/service-tier.test.ts +0 -230
  2024. package/src/activities/execute-cursor/__tests__/session-lifecycle.test.ts +0 -336
  2025. package/src/activities/execute-cursor/__tests__/session-store.test.ts +0 -220
  2026. package/src/activities/execute-cursor/__tests__/subagent-config.test.ts +0 -181
  2027. package/src/activities/execute-cursor/__tests__/tool-result-image.test.ts +0 -250
  2028. package/src/activities/execute-cursor/__tests__/translator.test.ts +0 -651
  2029. package/src/activities/execute-cursor/__tests__/turn-boundary.test.ts +0 -415
  2030. package/src/activities/execute-cursor/__tests__/turn-recovery.test.ts +0 -186
  2031. package/src/activities/execute-cursor/__tests__/turn-stream.test.ts +0 -354
  2032. package/src/activities/execute-cursor/__tests__/usage-pricing.test.ts +0 -84
  2033. package/src/activities/execute-cursor/__tests__/workspace-setup.test.ts +0 -814
  2034. package/src/activities/execute-cursor/adapter.ts +0 -161
  2035. package/src/activities/execute-cursor/agent-session-cache.ts +0 -229
  2036. package/src/activities/execute-cursor/approval-policy.ts +0 -129
  2037. package/src/activities/execute-cursor/approval-state.ts +0 -1097
  2038. package/src/activities/execute-cursor/boundary-rows.ts +0 -1419
  2039. package/src/activities/execute-cursor/cas-observations.ts +0 -263
  2040. package/src/activities/execute-cursor/cursor-capabilities.ts +0 -80
  2041. package/src/activities/execute-cursor/cursor-event-recorder.ts +0 -112
  2042. package/src/activities/execute-cursor/cursor-mcp-config.ts +0 -124
  2043. package/src/activities/execute-cursor/cursor-mode.ts +0 -42
  2044. package/src/activities/execute-cursor/error-classifier.ts +0 -416
  2045. package/src/activities/execute-cursor/fetch-interceptor.ts +0 -454
  2046. package/src/activities/execute-cursor/hook-scope.ts +0 -216
  2047. package/src/activities/execute-cursor/hook-script.ts +0 -1232
  2048. package/src/activities/execute-cursor/hook-server.ts +0 -473
  2049. package/src/activities/execute-cursor/hook-tool-hiding.ts +0 -76
  2050. package/src/activities/execute-cursor/hook-views.ts +0 -195
  2051. package/src/activities/execute-cursor/http2-interceptor.ts +0 -267
  2052. package/src/activities/execute-cursor/model-pricing-data.ts +0 -170
  2053. package/src/activities/execute-cursor/model-pricing.ts +0 -190
  2054. package/src/activities/execute-cursor/prompt-builder.ts +0 -1081
  2055. package/src/activities/execute-cursor/rejection-capture.ts +0 -93
  2056. package/src/activities/execute-cursor/run-telemetry.ts +0 -189
  2057. package/src/activities/execute-cursor/sdk-warmup.ts +0 -77
  2058. package/src/activities/execute-cursor/service-tier.ts +0 -251
  2059. package/src/activities/execute-cursor/session-lifecycle.ts +0 -543
  2060. package/src/activities/execute-cursor/session-store.ts +0 -186
  2061. package/src/activities/execute-cursor/sub-agent-steps.ts +0 -188
  2062. package/src/activities/execute-cursor/subagent-config.ts +0 -124
  2063. package/src/activities/execute-cursor/tool-result.ts +0 -128
  2064. package/src/activities/execute-cursor/translator.ts +0 -544
  2065. package/src/activities/execute-cursor/turn-boundary.ts +0 -373
  2066. package/src/activities/execute-cursor/turn-recovery.ts +0 -223
  2067. package/src/activities/execute-cursor/turn-settle.ts +0 -605
  2068. package/src/activities/execute-cursor/turn-setup.ts +0 -964
  2069. package/src/activities/execute-cursor/turn-stream.ts +0 -354
  2070. package/src/activities/execute-cursor/turn.ts +0 -271
  2071. package/src/activities/execute-cursor/usage-pricing.ts +0 -67
  2072. package/src/activities/execute-cursor/workspace-hook-files.ts +0 -424
  2073. package/src/activities/execute-cursor/workspace-setup.ts +0 -549
  2074. package/src/activities/execute-deep-agent/__tests__/auto-publish.test.ts +0 -144
  2075. package/src/activities/execute-deep-agent/__tests__/cas-capture-observer.test.ts +0 -163
  2076. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.events.json +0 -71
  2077. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.rows.json +0 -50
  2078. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +0 -26
  2079. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.events.json +0 -105
  2080. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.rows.json +0 -30
  2081. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +0 -27
  2082. package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +0 -188
  2083. package/src/activities/execute-deep-agent/__tests__/hermetic/thrown-turn-drains-publishes.test.ts +0 -154
  2084. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +0 -350
  2085. package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +0 -120
  2086. package/src/activities/execute-deep-agent/auto-publish.ts +0 -80
  2087. package/src/activities/execute-deep-agent/cas-capture-observer.ts +0 -132
  2088. package/src/activities/execute-deep-agent/inline-publisher.ts +0 -208
  2089. package/src/activities/execute-deep-agent/streaming-side-effects.ts +0 -83
  2090. package/src/agent-proxy/__tests__/cursor-lane.test.ts +0 -635
  2091. package/src/agent-proxy/__tests__/cursor-sdk-key-required.test.ts +0 -119
  2092. package/src/agent-proxy/__tests__/cursor-sdk-wire.test.ts +0 -175
  2093. package/src/agent-proxy/__tests__/loopback-certificate.test.ts +0 -100
  2094. package/src/agent-proxy/cursor-lane.ts +0 -528
  2095. package/src/agent-proxy/loopback-certificate.ts +0 -143
  2096. package/src/harness/__tests__/run-turn-deterministic.test.ts +0 -94
  2097. package/src/harness/__tests__/turn-attachments-vision.test.ts +0 -105
  2098. package/src/pool-member.ts +0 -99
  2099. package/src/shared/__tests__/attachment-download-urls.test.ts +0 -72
  2100. package/src/shared/__tests__/attachment-naming.test.ts +0 -146
  2101. package/src/shared/__tests__/attachment-resolver.test.ts +0 -644
  2102. package/src/shared/__tests__/attachment-zip.test.ts +0 -236
  2103. package/src/shared/__tests__/exact-apply.test.ts +0 -370
  2104. package/src/shared/__tests__/plan-artifact.test.ts +0 -260
  2105. package/src/shared/attachment-download-urls.ts +0 -76
  2106. package/src/shared/attachment-naming.ts +0 -78
  2107. package/src/shared/attachment-resolver.ts +0 -468
  2108. package/src/shared/attachment-zip.ts +0 -281
  2109. package/src/shared/exact-apply.ts +0 -247
  2110. package/src/shared/plan-artifact.ts +0 -255
  2111. package/src/workflow-source.ts +0 -72
  2112. package/src/workflows/__tests__/barrel.test.ts +0 -21
  2113. package/src/workflows/__tests__/list-plugin-tools.test.ts +0 -82
  2114. package/src/workflows/index.ts +0 -36
  2115. package/src/workflows/list-plugin-tools.ts +0 -70
  2116. package/src/workflows/types.ts +0 -46
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @stigmer/runner
2
2
 
3
- Embeddable Temporal worker for the Stigmer AI agent platform. The runner executes agent sessions — driving the Cursor and native (deep-agent) harnesses, orchestrating MCP servers, and reporting status and artifacts back to the Stigmer backend.
3
+ Embeddable Temporal worker that runs Stigmer's agent sessions: it drives the Stigmer and Claude harnesses, orchestrates MCP servers, and reports status and artifacts back to the Stigmer backend.
4
4
 
5
5
  It is the single runtime behind three surfaces:
6
6
 
@@ -26,6 +26,8 @@ This runs `npm run build` in `backend/services/runner` (`tsc -p tsconfig.build.j
26
26
 
27
27
  Requires a Node.js whose built-in `node:sqlite` is available unflagged — `>= 22.13` in the 22.x line, and `>= 23.4` after that (23.0–23.3 lack it). The durable local checkpointer depends on it, and the runner probes for it at boot (`src/preflight.ts`), refusing to start with an actionable error rather than crashing on the import.
28
28
 
29
+ On those floors below 22.19 / 23.8, npm may warn at install (`EBADENGINE`) that `@stigmer/outbound` and `undici` want a newer Node. That requirement belongs to outbound's `/dial` entry, which the runner never loads (`src/__tests__/runner-is-undici-free.test.ts` keeps it so), so the warning is safe to ignore.
30
+
29
31
  ### The slim embedding artifact
30
32
 
31
33
  The plain `dist/` resolves its dependencies from `node_modules` at runtime — ~508 MB unpacked, which is unshippable inside a desktop app ([#170](https://github.com/stigmer/stigmer/issues/170)). For embedding, build the **slim artifact**:
@@ -34,29 +36,28 @@ The plain `dist/` resolves its dependencies from `node_modules` at runtime — ~
34
36
  make build-runner-slim # or: npm run build:slim
35
37
  ```
36
38
 
37
- This produces `dist-slim/`: a tree-shaken esbuild bundle of the whole runner (`main.js`), a build-time-prebuilt Temporal workflow bundle, and a staged `node_modules` containing only the packages that genuinely cannot be bundled (the platform-pruned Temporal native bridge, `@cursor/sdk` and its native binaries) — **~85 MB per platform**. `node dist-slim/main.js` accepts the same modes, environment variables, and IPC protocol as `dist/main.js`. It also holds `attach/main.js`, the attach entry (below) bundled on its own, which starts the `main.js` beside it with the same Node. See `scripts/bundle-slim.mjs` for the full layout, `scripts/verify-slim-artifact.mjs` for the boot verification that gates releases, and the [embedding guide](https://stigmer.ai/docs/guides/runners/embedding) for how apps stage it.
39
+ This produces `dist-slim/`: a tree-shaken esbuild bundle of the whole runner (`main.js`), and a staged `node_modules` containing only the packages that genuinely cannot be bundled (the platform-pruned Temporal native bridge and the few packages that ship native code). `node dist-slim/main.js` accepts the same modes, environment variables, and IPC protocol as `dist/main.js`. It also holds `attach/main.js`, the attach entry (below) bundled on its own, which starts the `main.js` beside it with the same Node. See `scripts/bundle-slim.mjs` for the full layout, `scripts/verify-slim-artifact.mjs` for the boot verification that gates releases, and the [embedding guide](https://stigmer.ai/docs/guides/runners/embedding) for how apps stage it.
38
40
 
39
- > **Why the slim bundle is CommonJS, not ESM.** The runner's auth correctness depends on a deliberate module **load order**: it installs the fetch + HTTP/2 interceptors first, then lazily loads `@cursor/sdk` and `@connectrpc/connect-node` (via dynamic `import()`) so the interceptors are in place before those packages capture `globalThis.fetch` / snapshot the `node:http2` ESM facade. An **ESM** esbuild bundle destroys this — it hoists every external `import` to the top of the output and evaluates them before any code runs, freezing the `node:http2` facade and capturing the original `fetch` before install, which silently breaks proxy auth on the authenticated path (this was the regression in [#170](https://github.com/stigmer/stigmer/issues/170)). A **CJS** bundle preserves the source's lazy evaluation order, so the dynamic-import boundary keeps both interceptors correct. The meta `package.json` deliberately omits `"type": "module"` so `node main.js` runs as CommonJS — do **not** add it back, and do not flip `format` to `"esm"` in `bundle-slim.mjs`. The boot guard `assertHttp2ConnectPatched()` plus the authenticated check in `verify-slim-artifact.mjs` fail loudly if this is ever reverted.
41
+ > **Why the slim bundle is CommonJS, not ESM.** The runner loads its heavy modules lazily (`@connectrpc/connect-node`, LangChain, the activity factories, via dynamic `import()`) after the harnesses boot. An **ESM** esbuild bundle hoists every external `import` to the top of the output and evaluates them before any code runs; a **CJS** bundle preserves the source's lazy evaluation order (the module-order regression of [#170](https://github.com/stigmer/stigmer/issues/170) was an ESM bundle). The meta `package.json` deliberately omits `"type": "module"` so `node main.js` runs as CommonJS — do **not** add it back, and do not flip `format` to `"esm"` in `bundle-slim.mjs` (see its header). The authenticated boot check in `verify-slim-artifact.mjs` boots the artifact as a release would.
40
42
 
41
43
  The slim build is also published to npm as `@stigmer/runner-slim` (with per-platform `@stigmer/runner-slim-<platform>` support packages) alongside the full `@stigmer/runner` package on every release.
42
44
 
43
- The sandbox image (`Dockerfile.sandbox`) ships the same directory as its runner layer: `dist-slim/` at `/runner/dist`, started by the layer's own Node at `/runner/bin/node` (the repository's `.nvmrc` version), on a base image that holds the agent's tools. The server's drivers launch it with the command in `backend/services/stigmer-server/src/sandbox/runner-launch.ts`: `/runner/bin/start` (`layer/start.sh`), which refuses a base image the runner cannot run on (no glibc, not root, no `bash`, `git` or the Cursor hook's text tools) in one line that names the contract, refuses a layer whose `/runner/RELEASE` names another release than the server's `STIGMER_SERVER_RELEASE` (stigmer/stigmer#1831), clears `NODE_OPTIONS` and `NODE_PATH`, and execs that Node. The image's release lane runs `verify-slim-artifact.mjs` inside the built image, through the start script, before any tag but `main-<sha>` names it, and publishes the layer alone (`ghcr.io/stigmer/runner-layer`, amd64 and arm64) after booting it on Ubuntu and seeing it refuse Alpine; `deploy/runner-layer/Dockerfile` adds it to an operator's own base (the self-hosting guide's "Bring your own base image").
45
+ The sandbox image (`Dockerfile.sandbox`) ships the same directory as its runner layer: `dist-slim/` at `/runner/dist`, started by the layer's own Node at `/runner/bin/node` (the repository's `.nvmrc` version), on a base image that holds the agent's tools. The server's drivers launch it with the command in `backend/services/stigmer-server/src/sandbox/runner-launch.ts`: `/runner/bin/start` (`layer/start.sh`), which refuses a base image the runner cannot run on (no glibc, not root, no `bash`, `git` or the standard text tools) in one line that names the contract, refuses a layer whose `/runner/RELEASE` names another release than the server's `STIGMER_SERVER_RELEASE` (stigmer/stigmer#1831), clears `NODE_OPTIONS` and `NODE_PATH`, and execs that Node. The image's release lane runs `verify-slim-artifact.mjs` inside the built image, through the start script, before any tag but `main-<sha>` names it, and publishes the layer alone (`ghcr.io/stigmer/runner-layer`, amd64 and arm64) after booting it on Ubuntu and seeing it refuse Alpine; `deploy/runner-layer/Dockerfile` adds it to an operator's own base (the self-hosting guide's "Bring your own base image").
44
46
 
45
47
  ## Run modes
46
48
 
47
- The runner has three **run modes**, selected at boot by two environment variables (`src/main.ts`): `STIGMER_RUNNER_MODE=manager` selects manager mode; otherwise a set `STIGMER_POOL_MEMBER_ID` selects pool mode; otherwise the runner is static. Do not confuse the run mode (process topology) with the execution location (`MODE=local|cloud`) or the transport (`STIGMER_PROXY_ENDPOINT`) — those are independent axes covered in [Execution location vs transport](#execution-location-vs-transport).
49
+ The runner has two **run modes**, selected at boot by one environment variable (`src/main.ts`): `STIGMER_RUNNER_MODE=manager` selects manager mode; otherwise the runner is static. Do not confuse the run mode (process topology) with the execution location (`MODE=local|cloud`) or the transport (`STIGMER_PROXY_ENDPOINT`) — those are independent axes covered in [Execution location vs transport](#execution-location-vs-transport).
48
50
 
49
51
  | Run mode | Selector | Topology | Used by |
50
52
  |----------|----------|----------|---------|
51
- | Static | Neither of the two below (default) | One Worker polling one task queue; blocks until shutdown | CLI daemon, cloud deployments |
53
+ | Static | `STIGMER_RUNNER_MODE` unset or not `manager` (default) | One Worker polling one task queue; blocks until shutdown | CLI daemon, cloud deployments |
52
54
  | Manager | `STIGMER_RUNNER_MODE=manager` | Shared Temporal connection; dynamic per-session / per-execution Workers; stdin/stdout JSON IPC | Desktop app |
53
- | Pool | `STIGMER_POOL_MEMBER_ID` set, and `STIGMER_RUNNER_MODE` not `manager` | A warm-pool sandbox: boots the runner manager, then serves what its injected credential says — a blank member polls its `sandbox:{memberId}` control queue for a claim, a claimed member that restarted goes straight to its session's queue (`src/pool-member.ts`) | Hosted cloud sandboxes |
54
55
 
55
56
  ### Static mode
56
57
 
57
58
  Static mode creates a single Temporal Worker that polls one task queue and runs until it receives `SIGTERM` / `SIGINT`. This is the right mode when the set of work is fixed at startup (a daemon or a pod dedicated to a queue).
58
59
 
59
- On a signal it drains the worker, releases the harnesses, closes its Temporal connection and flushes telemetry, and the process then exits on its own, normally within milliseconds. As the CLI entry (`stigmer-runner`, and the cloud's pool members, which end the same way), a process still alive 5 s after that is made to exit, with one log line naming the resources that kept it alive (`src/exit-backstop.ts`). That line means a leaked handle to fix, not a slow shutdown to tune.
60
+ On a signal it drains the worker: every turn in flight yields at its engine's next step boundary within the drain grace (`STIGMER_DRAIN_GRACE_MS`), so a step that was running finishes, and the workflow continues the turn on the next runner from where it was. A second signal stops the turns in flight at once; they continue too, and the step each was running is run again. Then it releases the harnesses, closes its Temporal connection and flushes telemetry, and the process exits on its own, normally within milliseconds of the drain. As the CLI entry (`stigmer-runner`), a process still alive 5 s after that is made to exit, with one log line naming the resources that kept it alive (`src/exit-backstop.ts`). That line means a leaked handle to fix, not a slow shutdown to tune.
60
61
 
61
62
  As a library:
62
63
 
@@ -105,19 +106,30 @@ A push is accepted only for the queue whose sandbox name (`sbx-<code>-<12 hex>`,
105
106
 
106
107
  ### The agent host (where the engines run)
107
108
 
108
- In every run mode, and in a library embedding, the runner runs every harness's engine (the native one and Cursor's) in a second process, the agent host: the runner's own entry started as `main.js agent-host`, on the same Node, with a private pipe on file descriptor 3 (`src/agent-host/`). The runner keeps the turn runtime, its credentials and all its control-plane traffic; the host runs the engines and every process an agent's turn starts there (its shell, its hooks, its MCP servers, the Cursor approval hook's server). The runner's own process loads neither engine's SDK. The two meet at the harness adapter contract (`src/harness/types.ts`): the runner's remote adapter (`src/agent-host/remote-adapter.ts`) forwards each turn to the host and treats everything the host sends back as untrusted, and which harnesses are hosted is one set in `src/harness-adapters.ts` (`HOSTED_HARNESSES`).
109
+ In every run mode, and in a library embedding, the runner runs every harness's engine (the Stigmer one and Claude's) in a second process, the agent host: the runner's own entry started as `main.js agent-host`, on the same Node, with a private pipe on file descriptor 3 (`src/agent-host/`). The runner keeps the turn runtime, its credentials and all its control-plane traffic; the host runs the engines and every process an agent's turn starts there (its shell, its hooks, its MCP servers). The runner's own process loads no engine's SDK. The two meet at the harness adapter contract (`src/harness/types.ts`): the runner's remote adapter (`src/agent-host/remote-adapter.ts`) forwards each turn to the host and treats everything the host sends back as untrusted, and which harnesses are hosted is one set in `src/harness-adapters.ts` (`HOSTED_HARNESSES`).
109
110
 
110
- The host is handed none of the runner's keys. Everything it calls that needs one goes through the runner's local proxy on `127.0.0.1` (`src/agent-proxy/`): model calls, the model registry, its telemetry (forwarded to the operator's collector with the collector's login, below), and on a runner behind the platform proxy the checkpoints. The platform's own MCP servers (memory, channels, the conversation tools) never carry the runner's own key: they carry a credential scoped to the run (in a hosted sandbox, the sandbox's session token until #2080), and a turn for which none can be had runs without them and says so. In a container shape the host's environment is an allow-list, so an ambient cloud identity in the runner's (`AWS_ACCESS_KEY_ID` and its siblings, `AWS_WEB_IDENTITY_TOKEN_FILE`, `GOOGLE_APPLICATION_CREDENTIALS`, Azure client secrets) does not reach it; on a local shape the host gets the runner's environment minus the runner's secret variables, as the agent's tools always did there. Each model lane serves its provider's model calls only, not the rest of the provider's API. The host authenticates with a token minted at each host start, and a model call is served only while a turn of the execution it names is running. On a runner that calls its providers directly, the proxy adds the operator's key or signs with the runner's cloud identity for each model backend (Anthropic, OpenAI, Bedrock, Vertex, Foundry), from the same settings as before; on a runner behind `STIGMER_PROXY_ENDPOINT`, it forwards to that proxy with the runner's own token. The Cursor SDK's traffic has a listener of its own on the proxy, TLS on loopback with a certificate made at each runner start, which the host trusts through `NODE_EXTRA_CA_CERTS` (added to any file the operator named there). The Cursor key exchange is made with the runner's credential, and the access token it returns stays in the runner: the host gets a stand-in, swapped back on every call. Of Cursor's Connect services the lane relays only what the SDK calls: the agent run and the side calls listed in `CURSOR_SIDE_CALLS` (`src/agent-proxy/cursor-lane.ts`); anything else is refused and logged once as `[agent-proxy] refused …`, so an SDK upgrade that adds a call fails the real-SDK wire test until the list names it. The proxy listens on loopback only and needs no configuration.
111
+ The host is handed none of the runner's keys. Everything it calls that needs one goes through the runner's local proxy on `127.0.0.1` (`src/agent-proxy/`): model calls, the model registry, its telemetry (forwarded to the operator's collector with the collector's login, below), and on a runner behind the platform proxy the checkpoints. The platform's own MCP servers (memory, channels, the conversation tools) never carry the runner's own key: they carry a credential scoped to the run (in a hosted sandbox, the sandbox's session token until #2080), and a turn for which none can be had runs without them and says so. In a container shape the host's environment is an allow-list, so an ambient cloud identity in the runner's (`AWS_ACCESS_KEY_ID` and its siblings, `AWS_WEB_IDENTITY_TOKEN_FILE`, `GOOGLE_APPLICATION_CREDENTIALS`, Azure client secrets) does not reach it; on a local shape the host gets the runner's environment minus the runner's secret variables, as the agent's tools always did there. Each model lane serves its provider's model calls only, not the rest of the provider's API. The host authenticates with a token minted at each host start, and a model call is served only while a turn of the execution it names is running. On a runner that calls its providers directly, the proxy adds the operator's key or signs with the runner's cloud identity for each model backend (Anthropic, OpenAI, Bedrock, Vertex, Foundry), from the same settings as before; on a runner behind `STIGMER_PROXY_ENDPOINT`, it forwards to that proxy with the runner's own token. The proxy listens on loopback only and needs no configuration.
111
112
 
112
- The turn runtime's own work on the agent's paths (provisioning the workspace, the `.stigmer` link, skill, plugin and attachment mounts, the file-review capture, write-back's git) goes through `src/shared/agent-fs.ts`, which the runner routes to the host: each file operation and each process is performed there, so a link, a git hook or a `core.fsmonitor` the agent planted never acts with the runner's rights. `src/harness/__tests__/runtime-touches-no-agent-path.test.ts` holds the runtime's graph to that.
113
+ The turn runtime's own work on the agent's paths (provisioning the workspace, the `.stigmer` link, skill, plugin and File mounts, the file-review capture, write-back's commits) goes through `src/shared/agent-fs.ts`, which the runner routes to the host: each file operation and each process is performed there, so a link, a git hook or a `core.fsmonitor` the agent planted never acts with the runner's rights. `src/harness/__tests__/runtime-touches-no-agent-path.test.ts` holds the runtime's graph to that. The one exception is git that talks to GitHub with a repository's token: the runner runs it itself, in a bare repository of its own under `~/.stigmer/git` (`src/shared/workspace/runner-git.ts`), never in the agent's clone, and moves commits to and from the clone as git bundles written and read through the host. So no process the agent can read ever holds the token, and what reaches GitHub is the session branch alone, whatever the clone's configuration says. That repository is a cache: deleted, it is fetched again, and on Kubernetes it sits on the runner container's own disk.
113
114
 
114
115
  **In a container shape** (root, Linux, started through the runner layer's `/runner/bin/start`, which exports `STIGMER_RUNNER_LAYER=1`), the runner starts the host as a user of its own, `stigmer-agent` (uid and gid 10001), through `setpriv` (`src/shared/agent-identity.ts`), with the agent's home (`STIGMER_AGENT_HOME`, else `/home/stigmer-agent`) as `HOME`, so nothing an agent runs can read the runner's process, files or keys. At boot it adds the user when the image lacks it, hands the agent its home and workspace (on the first such boot, moving the agent's session state into that home, `src/shared/agent-handover.ts`), and proves the drop works; a runner that cannot drop exits 78. It keeps only `SETUID`, `SETGID`, `CHOWN`, `KILL` (to end a host that will not exit, which root cannot signal without it) and `DAC_OVERRIDE` (to write its own state on a volume it shares with the server). There the host's environment is an allow-list (`src/agent-host/environment.ts`), with `STIGMER_AGENT_ENV_PASSTHROUGH` naming extra variables; a credential under an allowed prefix (`NODE_AUTH_TOKEN`, an OpenTelemetry `*_HEADERS` name the runner does not hold) is held back unless named there, and the collector's login (`OTEL_EXPORTER_OTLP_HEADERS` and its per-signal forms) is a runner secret that never reaches it: the host exports through the runner's local proxy. The agent's home may hold none of the runner's own files: a `STIGMER_AGENT_HOME` above the runner's home or inside its `~/.stigmer` is refused with exit 78 before the handover moves anything. `src/__tests__/agent-separation.container.test.ts` proves it in a container (`STIGMER_TEST_CONTAINER=1`). A workspace root inside the runner's home that the agent cannot pass (the default `~/.stigmer/workspaces/runner` under a driver's `/root`) is refused the same way, naming `WORKSPACE_ROOT_DIR`. Local shapes (`stigmer up`, the all-in-one image, which runs it, and the desktop app) run the host as the same user, whose keys are their own.
115
116
 
116
117
  Elsewhere the host starts with the environment the agent's tools have always seen: the runner's own, without the runner's secrets (`src/agent-host/environment.ts`). Its log lines are relayed through the runner's console unchanged. A host that exits is started again after one second, backing off to thirty; a turn running on it settles as an internal failure at once, and the next turn waits for the new host. The host exits when its pipe closes, so a runner that is killed leaves no host behind. `scripts/verify-agent-host-boot.mjs` (part of `npm run verify:dist`, and of `verify-slim-artifact.mjs` for the slim artifact) proves a build starts as the host.
117
118
 
119
+ ### The Claude engine
120
+
121
+ A Claude turn runs Anthropic's engine: the Agent SDK (`@anthropic-ai/claude-agent-sdk`) and its per-platform package holding the `claude` executable, exactly as npm publishes them. The runner finds it at boot (`src/activities/execute-claude/engine-home.ts`): first its own install of the SDK (a checkout's development dependency, or an embedder's install beside `@stigmer/runner`), then the home for its pinned version under `STIGMER_ENGINES_DIR` (default `~/.stigmer/engines`). A published runner pins the version in `claude-engine.json` beside its entry, written from the lockfile with each package's registry URL and integrity, and loads no other version. Boot logs `[claude] engine ready <version> (<where>)`.
122
+
123
+ - **The images** (the cloud sandbox, the runner layer, compose, Helm and the all-in-one) carry the engine in a layer of their own: the runner layer at `/runner/engines`, which its start script names as `STIGMER_ENGINES_DIR`, and the all-in-one at `/opt/stigmer/engines`.
124
+ - **A local runner** (the desktop app, `stigmer up`, the `local-process` driver) carries only the pin. Its first Claude turn downloads the SDK and this machine's platform package from npm (120 to 140 MB), checks each against the pinned integrity before extracting it, and installs the home atomically under a lock, so runners sharing a machine download once (`src/activities/execute-claude/engine-fetch.ts`). The turn shows "Downloading Claude (one time): N%" while it does; a failed download ends the turn with a sentence saying so, and the next turn tries again. An install removes another version's home unused for 30 days.
125
+ - **Behind a proxy**, the runner's Node 22 honours `HTTPS_PROXY` for the download only with `NODE_USE_ENV_PROXY=1` set beside it (measured; Node calls it experimental).
126
+ - **A runner started from the runner layer never downloads**: its agent host runs as the agent user, which must never install an engine later turns run. Without the engine it refuses Claude turns.
127
+
128
+ Anthropic's conditions for running the engine in a product bind every path: its bytes are never changed or re-signed, it runs on the API-key method only, and a Claude turn runs on the organization's own Anthropic key, never one of Stigmer's (`src/harness/README.md`, "The Claude engine").
129
+
118
130
  ### Traces: every run as OpenTelemetry GenAI spans
119
131
 
120
- The runner sends every run to the operator's tracing tool over OTLP, in OpenTelemetry's conventions for generative AI (`src/gen-ai-conventions.ts`): each turn an `invoke_agent <agent>` root span in a trace whose id is derived from the run id (`src/run-trace-id.ts`), so a run that resumed after an approval stays one trace; each model call a `chat <model>` span with its provider, model and tokens; each tool call an `execute_tool <tool>` span; a sub-agent an `invoke_agent <name>` span under its `task` call; a Cursor run an `invoke_agent Cursor` span with its summed tokens. It is configured only by the standard variables (`src/otel-export.ts`): an endpoint turns it on, `OTEL_EXPORTER_OTLP_PROTOCOL` picks `http/protobuf` (the default), `http/json` or `grpc`, and `OTEL_EXPORTER_OTLP_HEADERS` (with its per-signal forms) is the collector's login, a runner secret held in custody like the model keys. The conversation's text rides the spans only with `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true`, and never shows more than the saved conversation does (`src/shared/telemetry-content.ts`). The agent host never holds the login: it exports to the local proxy's `otlp` lane, which forwards to the collector (`src/agent-proxy/otlp-forward.ts`). The operator's guide is `docs/guides/self-hosting/tracing.mdx`.
132
+ The runner sends every run to the operator's tracing tool over OTLP, in OpenTelemetry's conventions for generative AI (`src/gen-ai-conventions.ts`): each turn an `invoke_agent <agent>` root span in a trace whose id is derived from the run id (`src/run-trace-id.ts`), so a run that resumed after an approval stays one trace; each model call a `chat <model>` span with its provider, model and tokens; each tool call an `execute_tool <tool>` span; a sub-agent an `invoke_agent <name>` span under its `task` call. It is configured only by the standard variables (`src/otel-export.ts`): an endpoint turns it on, `OTEL_EXPORTER_OTLP_PROTOCOL` picks `http/protobuf` (the default), `http/json` or `grpc`, and `OTEL_EXPORTER_OTLP_HEADERS` (with its per-signal forms) is the collector's login, a runner secret held in custody like the model keys. The conversation's text rides the spans only with `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true`, and never shows more than the saved conversation does (`src/shared/telemetry-content.ts`). The agent host never holds the login: it exports to the local proxy's `otlp` lane, which forwards to the collector (`src/agent-proxy/otlp-forward.ts`). The operator's guide is `docs/guides/self-hosting/tracing.mdx`.
121
133
 
122
134
  ### A note for embedders: OpenTelemetry
123
135
 
@@ -127,9 +139,9 @@ When you embed the runner as a **library** (`createStigmerRunner` / `createStigm
127
139
  Two settings are easy to conflate but are deliberately independent:
128
140
 
129
141
  - **`MODE` — execution location.** Where the agent runs and whose filesystem it sees. `local` allows local-path workspaces on the host filesystem; `cloud` runs in a server-provisioned sandbox (git-only).
130
- - **`STIGMER_PROXY_ENDPOINT` — transport.** How credentials and artifacts move. When set, the runner routes Cursor SDK traffic through the Stigmer proxy and pushes artifacts through it, instead of talking to providers and storage directly.
142
+ - **`STIGMER_PROXY_ENDPOINT` — transport.** How credentials and artifacts move. When set, the runner routes model traffic through the Stigmer proxy and pushes artifacts through it, instead of talking to providers and storage directly.
131
143
 
132
- These are orthogonal. The **desktop runner** is the canonical case where they diverge: it executes **locally** (`MODE=local`, so local-path workspaces work) yet still routes Cursor traffic and artifact uploads **through the proxy**. Coupling the two — forcing "proxy implies cloud" — is exactly what previously broke local-path sessions, which is why the env path (`MODE`) and both library factories (`executionMode`) treat them separately.
144
+ These are orthogonal. The **desktop runner** is the canonical case where they diverge: it executes **locally** (`MODE=local`, so local-path workspaces work) yet still routes model traffic and artifact uploads **through the proxy**. Coupling the two — forcing "proxy implies cloud" — is exactly what previously broke local-path sessions, which is why the env path (`MODE`) and both library factories (`executionMode`) treat them separately.
133
145
 
134
146
  > **Library factories — `executionMode`.** Both `createStigmerRunner` and `createStigmerRunnerManager` accept an optional `executionMode: "local" | "cloud"` that sets execution location independently of proxy transport. When omitted, the static `createStigmerRunner` derives it for backward compatibility (`proxy ⇒ cloud`, otherwise `local`); the manager defaults to `local`. Set `executionMode: "local"` together with `proxyEndpoint` to express the desktop case — local execution with proxy transport.
135
147
 
@@ -137,8 +149,8 @@ These are orthogonal. The **desktop runner** is the canonical case where they di
137
149
 
138
150
  The transport setting drives two credential modes:
139
151
 
140
- - **Direct mode** (local / OSS): you provide `CURSOR_API_KEY` directly (for the Cursor harness); `STIGMER_TOKEN` is optional against a trusted-local server, which verifies no credential, and is the runner's own API key against a self-hosted server with sign-in on (the run's per-run credential arrives with each dispatch; see `src/shared/run-credential.ts`). `STIGMER_PROXY_ENDPOINT` is unset.
141
- - **Proxy mode** (cloud / managed runners): `STIGMER_PROXY_ENDPOINT` and `STIGMER_TOKEN` are required. You do not supply `CURSOR_API_KEY`: the Cursor key is the organization's own, saved in Settings → Provider keys, and the proxy validates your token and injects that key upstream, so the key never reaches the runner or the sandbox. An organization with no Cursor key is refused at the key exchange, and the turn fails with "This organization has no Cursor key. An admin can add one in Settings → Provider keys." The agent host's Cursor SDK talks to the runner's local proxy, which forwards to `STIGMER_PROXY_ENDPOINT`; `CURSOR_BACKEND_URL` in the host is runner-managed, not configuration you set. On a direct-mode runner, `CURSOR_BACKEND_URL` set on the runner still names the Cursor backend the local proxy calls.
152
+ - **Direct mode** (local / OSS): the runner calls its model providers with the keys or cloud identity you configure; `STIGMER_TOKEN` is optional against a trusted-local server, which verifies no credential, and is the runner's own API key against a self-hosted server with sign-in on (the run's per-run credential arrives with each dispatch; see `src/shared/run-credential.ts`). `STIGMER_PROXY_ENDPOINT` is unset.
153
+ - **Proxy mode** (cloud / managed runners): `STIGMER_PROXY_ENDPOINT` and `STIGMER_TOKEN` are required. The organization's own provider keys are saved on the Models & providers page, and the proxy validates your token and injects the key upstream, so the key never reaches the runner or the sandbox. The agent host's model calls go to the runner's local proxy, which forwards them to `STIGMER_PROXY_ENDPOINT`.
142
154
 
143
155
  ## Required infrastructure
144
156
 
@@ -146,7 +158,7 @@ The transport setting drives two credential modes:
146
158
  |-----------|------|---------|
147
159
  | Temporal | Always | The runner is a Temporal Worker. It needs a reachable Temporal frontend and a namespace. You may set these explicitly (`TEMPORAL_SERVICE_ADDRESS`, `TEMPORAL_NAMESPACE`), but when a token is present the runner self-discovers them from the control plane at boot — see the env reference below. |
148
160
  | Stigmer backend | Always | The control plane (`STIGMER_BACKEND_ENDPOINT`) for status updates, blueprints, and (local) artifact serving. |
149
- | Stigmer proxy + token | Proxy/cloud only | The proxy (`STIGMER_PROXY_ENDPOINT`) injects the organization's own Cursor key (saved in Settings → Provider keys) and brokers artifact storage; `STIGMER_TOKEN` authenticates to it. |
161
+ | Stigmer proxy + token | Proxy/cloud only | The proxy (`STIGMER_PROXY_ENDPOINT`) injects the organization's own provider keys (saved on the Models & providers page) and brokers artifact storage; `STIGMER_TOKEN` authenticates to it. |
150
162
 
151
163
  In local/direct mode, only Temporal and the Stigmer backend are required, and both default to localhost.
152
164
 
@@ -174,16 +186,16 @@ All configuration is environment-driven. Every variable the runner's source read
174
186
 
175
187
  | Variable | Applies to | Required | Default | Purpose |
176
188
  |----------|-----------|----------|---------|---------|
177
- | `STIGMER_RUNNER_MODE` | All | No | `static` | Selects the run mode. Set to `manager` for dynamic per-session/per-execution Workers; any other value (or unset) means static mode, or pool mode when `STIGMER_POOL_MEMBER_ID` is set. |
178
- | `STIGMER_POOL_MEMBER_ID` | Hosted sandboxes | No | _(none)_ | Selects pool mode (see [Run modes](#run-modes)): the sandbox's identity in the warm pool. Set by the hosted edition's sandbox provisioning; a self-hosted runner never sets it. |
189
+ | `STIGMER_RUNNER_MODE` | All | No | `static` | Selects the run mode. Set to `manager` for dynamic per-session/per-execution Workers; any other value (or unset) means static mode. |
179
190
  | `STIGMER_ATTACH_PORT` | The attach entry | No | `80` | Port the attach waiter listens on (`src/attach/entry.ts`), 80 being the port a Substrate router reaches without a `CONNECT` tunnel. Not passed to the runner. |
180
191
  | `STIGMER_SANDBOX_NAME_FILE` | The attach entry | No | `/run/ate/actor-name` | File holding this sandbox's name, read on every push because each clone of a snapshot has its own (a Substrate template projects it with an actor-metadata volume). A push for a queue whose sandbox name differs is refused. Not passed to the runner. |
192
+ | `STIGMER_SANDBOX_ENVIRONMENT` | Sandboxes | No | _(none)_ | The sandbox's Environment as JSON, `{network, packages}`, set by the `docker` and `agent-sandbox` drivers and, on Substrate, by the attach waiter from the first push (`src/environment/spec.ts`). The runner installs the packages once its agent's home is handed over (apt as root, the other managers as the agent into `/opt/stigmer/environment`, first on the agent's `PATH`); each turn waits for the install. Unset: no Environment. |
181
193
  | `STIGMER_SERVER_RELEASE` | The start script | No | _(none)_ | The server's release, set when the server is a release by the built-in `agent-sandbox`, `docker` and `substrate` drivers, and by a composition's own driver once it hands `SandboxDriverConfig.serverRelease` on (`SERVER_RELEASE_ENV` in the server's `src/sandbox/runner-launch.ts`); a sandbox started without it is not checked. The layer's start script (`layer/start.sh`) refuses a layer whose `/runner/RELEASE` names another release, and warns about one that names none. Read by the start script only, not by the runner. |
182
194
  | `MODE` | All | No | `local` | Execution location: `local` (host filesystem, local-path workspaces) or `cloud` (server-provisioned sandbox, git-only). Independent of `STIGMER_PROXY_ENDPOINT`. Also the default for the two guards below. |
183
- | `STIGMER_WEB_FETCH_ALLOW_PRIVATE` | All (native `web_fetch`) | No | follows `MODE`: strict in `cloud`, relaxed in `local` | The `web_fetch` address guard's override. `true` lets the agent fetch loopback and private-network addresses on any runner (link-local, which holds the cloud metadata endpoint, stays refused); `false` refuses them on a local runner too. For embedders whose execution location and network differ; managed cloud deployments never set it. See `src/tools/url-guard.ts`. |
195
+ | `STIGMER_WEB_FETCH_ALLOW_PRIVATE` | All (the Stigmer harness's `web_fetch`) | No | follows `MODE`: strict in `cloud`, relaxed in `local` | The `web_fetch` address guard's override. `true` lets the agent fetch loopback and private-network addresses on any runner (link-local, which holds the cloud metadata endpoint, stays refused); `false` refuses them on a local runner too. For embedders whose execution location and network differ; managed cloud deployments never set it. See `src/tools/url-guard.ts`. |
184
196
  | `STIGMER_MCP_ALLOW_STDIO` | All | No | follows `MODE`: forbidden in `cloud`, allowed in `local` | The MCP transport guard's override. `true` lets a cloud runner start stdio MCP servers, which download a package and run it as a subprocess holding the execution's secrets; `false` forbids them on a local runner too. For rolling the policy back without a redeploy; managed cloud deployments never set it. See `src/shared/mcp-transport-guard.ts`. |
185
- | `STIGMER_TASK_QUEUE` | Static mode | No | `stigmer_runner` | Temporal task queue the static Worker polls. (Legacy alias: `TEMPORAL_AGENT_EXECUTION_RUNNER_TASK_QUEUE`.) Unused in manager mode, where each Worker derives its own queue. |
186
- | `TEMPORAL_SERVICE_ADDRESS` | All | No | _(discovered)_ | Address of the Temporal frontend. **Resolution order:** an explicit value always wins; otherwise, if `STIGMER_TOKEN` is set, the runner discovers it from the control plane at boot (`getRunnerBootstrapConfig`); otherwise it falls back to `localhost:7233`. Discovery failure aborts startup with an actionable error (no silent fallback). |
197
+ | `STIGMER_TASK_QUEUE` | Static mode | No | `stigmer_runner` | Temporal task queue the static Worker polls. Unused in manager mode, where each Worker derives its own queue. |
198
+ | `TEMPORAL_SERVICE_ADDRESS` | All | No | _(discovered)_ | Address of the Temporal frontend. **Resolution order:** an explicit value always wins; otherwise, if `STIGMER_TOKEN` is set, the runner discovers it from the control plane at boot (`getRunnerBootstrapConfig`); otherwise it falls back to `localhost:7233`. Discovery failure aborts startup with an actionable error (no silent fallback). When the address is the backend endpoint's own host and port, the runner reaches Temporal through the Stigmer server, as a sandboxed runner does: its `STIGMER_TOKEN` is its Temporal API key, TLS follows the endpoint's scheme, and the `STIGMER_TEMPORAL_*` settings below must be unset (`src/temporal-lane.ts`). |
187
199
  | `TEMPORAL_NAMESPACE` | All | No | `default` | Temporal namespace. |
188
200
  | `STIGMER_TEMPORAL_API_KEY` | All | No | — | Temporal frontend API key (Temporal Cloud, or a frontend with an authorizer); implies TLS. Taken into the credential store at boot, so agent tools never see it. |
189
201
  | `STIGMER_TEMPORAL_TLS` | All | No | — | `true` or `1`: TLS to the frontend against the system's trusted roots. A CA, a client certificate or an API key implies it. |
@@ -192,15 +204,14 @@ All configuration is environment-driven. Every variable the runner's source read
192
204
  | `STIGMER_TEMPORAL_TLS_CLIENT_CERT_DATA` / `_PATH`, `STIGMER_TEMPORAL_TLS_CLIENT_KEY_DATA` / `_PATH` | All | No | — | Mutual TLS: the client certificate and its key, both or neither (half a pair stops the boot). The key's `_DATA` form is taken into the credential store; a `_PATH` key is a file the agent's tools can read, so prefer `_DATA`. These are Stigmer's own names: Temporal's `TEMPORAL_API_KEY` and `TEMPORAL_TLS_*` belong to the user's own Temporal work and are never read. |
193
205
  | `STIGMER_BACKEND_ENDPOINT` | All | In cloud mode | `http://localhost:7234` (local) | Stigmer backend endpoint for status, blueprints, and local artifact serving. A bare `host:port` is normalized to `http://` (or `https://` for port `443`). |
194
206
  | `STIGMER_TOKEN` | Cloud or proxy mode | Yes (cloud/proxy) | _(none)_ | Auth token for the Stigmer backend / proxy. Required when `MODE=cloud` or `STIGMER_PROXY_ENDPOINT` is set; optional in local/direct mode. |
195
- | `CURSOR_API_KEY` | Direct mode | Yes (Cursor harness, direct) | _(empty)_ | Cursor API key for direct mode. In proxy mode it is not required: the proxy injects the organization's own Cursor key (saved in Settings → Provider keys), so the key never reaches the sandbox, and the SDK transport presents the current `STIGMER_TOKEN` (read per turn, so a rotated token is honoured). |
196
- | `STIGMER_PROXY_ENDPOINT` | Proxy/cloud | No | _(none)_ | Stigmer proxy endpoint. When set, activates proxy transport: Cursor SDK traffic and artifact uploads are routed through the proxy. |
197
- | `GIT_CONFIG_COUNT` | Git workspaces | No | _(none)_ | git's own per-command configuration, honoured as git honours it: a runner that sets it (a container's `safe.directory`, for one) keeps it, and the settings that hand a repository's token to a network git command are appended after it (`src/shared/workspace/git-credential.ts`), never in its place. |
207
+ | `STIGMER_PROXY_ENDPOINT` | Proxy/cloud | No | _(none)_ | Stigmer proxy endpoint. When set, activates proxy transport: model traffic and artifact uploads are routed through the proxy. |
208
+ | `GIT_CONFIG_COUNT` | Git workspaces | No | _(none)_ | git's own per-command configuration, honoured as git honours it: a runner that sets it (a container's `safe.directory`, for one) keeps it, and the settings that hand a repository's token to the runner's own git are appended after it (`src/shared/workspace/git-credential.ts`), never in its place. |
198
209
  | `WORKSPACE_ROOT_DIR` | All | No | `~/.stigmer/workspaces/runner` (fallback) | Root directory for agent workspaces. If unset, the runner warns and creates an isolated fallback directory — it never falls back to the process working directory. |
210
+ | `STIGMER_ENGINES_DIR` | All | No | `~/.stigmer/engines`; `/runner/engines` under the runner layer | Where the Claude engine lives: one home per version, `<dir>/claude/<version>/node_modules/@anthropic-ai/`, holding the Agent SDK and its platform package exactly as npm publishes them. The runner layer's start script sets it to the engine the layer carries. A local runner (the desktop app, `stigmer up`, the `local-process` driver) that finds none downloads the version its `claude-engine.json` pins into it on the first Claude turn; on a machine that cannot download, put the two packages there yourself. The runner's own install of the SDK, when it has one, is used first. See [The Claude engine](#the-claude-engine). |
199
211
  | `TEMPORAL_MAX_CONCURRENCY` | All | No | `5` | Maximum concurrent Temporal activity executions (per session Worker in manager mode). |
200
- | `STIGMER_CHECKPOINTER_TYPE` | All | No | `sqlite` (local), `http` (cloud) | LangGraph checkpointer backend for the native harness's agent state: `sqlite` (a durable per-session file under the platform dir, so a paused or interrupted run resumes across invocations), `http` (the proxy-backed saver), or `memory` (ephemeral; test runs only — a paused run cannot resume on it). |
212
+ | `STIGMER_CHECKPOINTER_TYPE` | All | No | `sqlite` (local), `http` (cloud) | LangGraph checkpointer backend for the Stigmer harness's agent state: `sqlite` (a durable per-session file under the platform dir, so a paused or interrupted run resumes across invocations), `http` (the proxy-backed saver), or `memory` (ephemeral; test runs only — a paused run cannot resume on it). The same setting places the Claude harness's conversation: a per-session transcript file under the session directory (`sqlite`), the platform's engine-sessions lane through the local proxy (`http`), or memory. |
201
213
  | `STIGMER_CHECKPOINTER_PROXY_ENDPOINT` | `http` checkpointer | No | value of `STIGMER_PROXY_ENDPOINT` | Endpoint for the HTTP checkpointer; falls back to the proxy endpoint. |
202
214
  | `STIGMER_PRIMARY_MODEL` | All | No | `gpt-4.1` | Default LLM model identifier. |
203
- | `STIGMER_CURSOR_CLOUD_MODE_ENABLED` | All | No | `false` | When `true`, enables Cursor cloud (workspace-less) execution mode for the Cursor harness. |
204
215
  | `STIGMER_IDLE_TIMEOUT_SECONDS` | All | No | _(none)_ | **Reserved.** Parsed from the environment but not currently honored by the runtime — no component reads it today. Documented for completeness; setting it has no effect. |
205
216
 
206
217
  ### Artifact storage
@@ -209,7 +220,7 @@ All configuration is environment-driven. Every variable the runner's source read
209
220
  |----------|-----------|----------|---------|---------|
210
221
  | `ARTIFACT_STORAGE_TYPE` | All | No | `proxy` if `STIGMER_ARTIFACT_PROXY_ENDPOINT` or `STIGMER_PROXY_ENDPOINT` is set, else `local` | Selects the artifact backend: `local` (filesystem, served by the Stigmer backend), `proxy` (presigned URLs via the proxy), or `none` (storage deliberately disabled: artifact features are refused rather than stored). An explicit value always wins. Storage follows transport, not execution location (`src/shared/artifact-storage.ts`). |
211
222
  | `STIGMER_ARTIFACT_PROXY_ENDPOINT` | Proxy storage | No | value of `STIGMER_PROXY_ENDPOINT` | Endpoint the proxy artifact store presigns against, when artifact traffic must reach a different host than LLM traffic (the checkpointer-override pattern). |
212
- | `LOCAL_ARTIFACT_PATH` | Local storage | No | `~/.stigmer/data/artifacts` | Filesystem root of the local artifact store. **Must equal the stigmer-server's `ARTIFACT_LOCAL_BASE_PATH`** — in local mode the server writes an artifact to `<ARTIFACT_LOCAL_BASE_PATH>/<key>` and the runner reads it from `<LOCAL_ARTIFACT_PATH>/<key>`, so a mismatch makes every storage-key attachment and offload fail to resolve. The defaults align out of the box; the CLI local daemon sets both explicitly. |
223
+ | `LOCAL_ARTIFACT_PATH` | Local storage | No | `~/.stigmer/data/artifacts` | Filesystem root of the local artifact store. **Must equal the stigmer-server's `ARTIFACT_LOCAL_BASE_PATH`** — in local mode the server writes an artifact to `<ARTIFACT_LOCAL_BASE_PATH>/<key>` and the runner reads it from `<LOCAL_ARTIFACT_PATH>/<key>`, so a mismatch makes every artifact read and offload fail to resolve. The defaults align out of the box; the CLI local daemon sets both explicitly. |
213
224
 
214
225
  ### Payload encryption (Temporal history at rest)
215
226
 
@@ -239,10 +250,10 @@ The claim-check codec offloads oversized Temporal payloads to artifact storage a
239
250
 
240
251
  | Variable | Applies to | Required | Default | Purpose |
241
252
  |----------|-----------|----------|---------|---------|
242
- | `OPENAI_API_KEY` | Direct mode (native/OpenAI) | When using OpenAI directly | _(empty)_ | OpenAI API key for the native harness in direct mode. Not needed in proxy mode. |
243
- | `ANTHROPIC_API_KEY` | Direct mode (native/Anthropic) | When using Anthropic directly | _(empty)_ | Anthropic API key for the native harness in direct mode. Not needed in proxy mode. |
244
- | `ANTHROPIC_BASE_URL` | Direct mode (native/Anthropic, `public` backend) | No | _(empty: api.anthropic.com)_ | The address of an LLM gateway in front of Anthropic (the API root, without `/v1`). A value that is not an http(s) URL stops the runner at startup; ignored, with a warning, under the proxy or a non-`public` backend. |
245
- | `STIGMER_LLM_REQUEST_TIMEOUT_MS` | Native harness | No | `0` (no timeout) | Per-request timeout for native LLM calls, in milliseconds. `0` or unset means no explicit timeout. |
253
+ | `OPENAI_API_KEY` | Direct mode (Stigmer/OpenAI) | When using OpenAI directly | _(empty)_ | OpenAI API key for the Stigmer harness in direct mode. Not needed in proxy mode. |
254
+ | `ANTHROPIC_API_KEY` | Direct mode (Stigmer/Anthropic) | When using Anthropic directly | _(empty)_ | Anthropic API key for the Stigmer harness in direct mode. Not needed in proxy mode. |
255
+ | `ANTHROPIC_BASE_URL` | Direct mode (Stigmer/Anthropic, `public` backend) | No | _(empty: api.anthropic.com)_ | The address of an LLM gateway in front of Anthropic (the API root, without `/v1`). A value that is not an http(s) URL stops the runner at startup; ignored, with a warning, under the proxy or a non-`public` backend. |
256
+ | `STIGMER_LLM_REQUEST_TIMEOUT_MS` | Stigmer harness | No | `0` (no timeout) | Per-attempt bound on a Stigmer-harness LLM request, in milliseconds. On a streamed reply (every agent turn) it bounds the wait for the reply to begin, and a timed-out attempt is retried like any other passing failure; on a reply that does not stream (structured extraction, session subjects) it bounds the whole reply, and a timed-out attempt is not retried (`src/shared/model-retry.ts`). `0` or unset means no explicit timeout. |
246
257
  | `STIGMER_CLOUD_API_URL` | All | No | _(unset)_ | Explicit override for the origin serving `/v1/proxy/model-registry` (model resolution and pricing). When unset, fetches go to `STIGMER_PROXY_ENDPOINT` (proxy mode) or `STIGMER_BACKEND_ENDPOINT` (direct/local mode — the local stigmer-server serves the registry). |
247
258
  | `STIGMER_AUTH_TOKEN` | Pricing/registry fetch | No | value of `STIGMER_TOKEN` | Fallback bearer token for model-pricing and model-registry requests when `STIGMER_TOKEN` is not set. |
248
259
  | `GITHUB_TOKEN` | Deep-agent git writeback | When writing back to GitHub | _(none)_ | Token used by the deep-agent harness for git writeback operations. |
@@ -250,7 +261,7 @@ The claim-check codec offloads oversized Temporal payloads to artifact storage a
250
261
 
251
262
  ### Model backends
252
263
 
253
- Where the native harness's models are served when the runner talks to providers directly. Under `STIGMER_PROXY_ENDPOINT` the proxy owns provider routing, and the runner warns that a non-`public` backend is ignored. The [model backends guide](https://stigmer.ai/docs/guides/runners/model-backends) is the one explanation of each backend, its credentials and its errors; the rows below index what the runner reads.
264
+ Where the Stigmer harness's models are served when the runner talks to providers directly. Under `STIGMER_PROXY_ENDPOINT` the proxy owns provider routing, and the runner warns that a non-`public` backend is ignored. The [model backends guide](https://stigmer.ai/docs/guides/runners/model-backends) is the one explanation of each backend, its credentials and its errors; the rows below index what the runner reads.
254
265
 
255
266
  | Variable | Applies to | Required | Default | Purpose |
256
267
  |----------|-----------|----------|---------|---------|
@@ -290,15 +301,16 @@ These tune internal behavior or support testing. Most operators never set them.
290
301
  | `STREAMING_MAX_INTERVAL_MS` | `5000` | Maximum time before a forced keepalive status update. Clamped up to the min if set lower. |
291
302
  | `STREAMING_BURST_THRESHOLD` | `50` | Event count that triggers an immediate status update (burst protection). |
292
303
  | `STIGMER_PROGRESS_CAPTURE_MIN_INTERVAL_MS` | `2000` | Minimum time between two mid-run captures of the "N files changed so far" strip. Each capture stages the working tree with git (git workspaces) or reads the touched files (other workspaces), so this bounds that cost however often status is written. Read once at startup; a non-numeric or negative value keeps the default, and `0` captures on every status write. |
293
- | `CURSOR_STREAM_STALL_TIMEOUT_MS` | `180000` (3 min) | **Parsed but not yet honoured** ([#1731](https://github.com/stigmer/stigmer/issues/1731)): `loadConfig` reads it, but no boot path passes it to the runner, so the default always applies to `stigmer-runner`. The bound it names: how long an engine may report no activity before the run is cancelled and the execution fails with a stall error, for every harness (the name is the Cursor harness's, its first user). Embedders set it through the `cursorStreamStallTimeoutMs` option. |
294
- | `CURSOR_AGENT_RESOLVE_TIMEOUT_MS` | `120000` (2 min) | **Parsed but not yet honoured**, as above; embedders use the `agentResolveTimeoutMs` option. The bound it names: the Cursor SDK's agent create or resume, which has no timeout of its own; on expiry the execution fails with a transport diagnosis instead of hanging until Temporal's heartbeat timeout. |
295
- | `STIGMER_CURSOR_AGENT_CACHE_TTL_MS` | `1800000` (30 min) | How long an idle Cursor agent stays parked between turns, holding its MCP subprocesses, before it is closed. A non-positive or non-numeric value keeps the default. |
296
- | `WORKSPACE_LOCK_TIMEOUT_MS` | `900000` (15 min) | **Parsed but not yet honoured**, as above; embedders use the `workspaceLockTimeoutMs` option. The bound it names: how long a turn waits for another session's lock on the same workspace before the execution fails with "workspace is in use by another session" (`src/shared/workspace/workspace-lock.ts`). |
297
- | `STIGMER_MCP_BRIDGE_ENDPOINT` | _(none)_ | The MCP bridge the runner's own attachments (channel messaging, conversation participation) connect to, as `https://…`. Unset selects the local shape: a spawned `stigmer mcp-server` stdio child against the local backend. |
298
- | `STIGMER_WORKFLOW_BUNDLE` | _(discovered)_ | An explicit path to the pre-built Temporal workflow bundle, for tests and for embedders that stage it elsewhere (`src/workflow-source.ts`). A path that does not exist stops the boot. |
304
+ | `CURSOR_STREAM_STALL_TIMEOUT_MS` | `180000` (3 min) | How long a turn may go with nothing open and nothing arriving before the run is cancelled and the execution fails with a stall error, for every harness (the name predates the harnesses that read it). A tool call or delegated task that is still running holds it, so a long silent build is not a stall (`src/harness/open-operations.ts`). Embedders set it through the `cursorStreamStallTimeoutMs` option. |
305
+ | `STIGMER_OPEN_OPERATION_MAX_MS` | `3600000` (60 min) | The backstop for one open operation: a tool call or delegated task still running after this long is stopped and the execution fails with a sentence naming it. It exists for what has no bound of the runner's own (an engine's opaque tool); every operation the runner runs itself is bounded well below it. Embedders set it through the `openOperationMaxMs` option. |
306
+ | `STIGMER_DRAIN_GRACE_MS` | `25000` (25 s) | How long a static runner's shutdown waits for the turns in flight to reach a step boundary (Temporal's `shutdownGraceTime`). A turn that reaches one stops there and continues on the next runner; one still mid-step when it runs out is stopped there and continues too, running that step again. Keep it under the host's own termination grace: the default sits under Kubernetes' 30 s, and the agent sandbox's pod, whose grace is 600 s, sets 540 s. Embedders set it through the `drainGraceMs` option. The desktop manager has none: it exits at once. |
307
+ | `STIGMER_LIVENESS_INTERVAL_MS` | `30000` (30 s) | How often a working turn says what it has open: the runner sends a `stigmer.run.liveness` preview naming each open operation and its age at this interval while the turn runs, and at once when what is open changes, so a watcher that reconnects learns within the interval. From 1000 to under 60000; any other value falls back to the default with a warning. Embedders set it through the `livenessIntervalMs` option. |
308
+ | `STIGMER_SHELL_TIMEOUT_MAX_SECONDS` | `3300` (55 min) | The most the Stigmer harness's model may raise one shell command's timeout to; a command's default bound is 120 s, and a larger request is clamped to this and the result says so. A command the agent starts in the background (`execute` with `background: true`) is bounded by this unless it asks for less; it is stopped, and awaited, when its turn's invocation ends, an approval pause included, and the agent can stop it sooner with `stop_background_command` (`src/shared/shell/background-commands.ts`). The session's log carries each one's life as `stigmer.background_command.status` beside the call that started it, with its output previewed under that call (`src/activities/execute-deep-agent/background-facts.ts`), so the console shows it running and how it ended; a person can stop one alone (`SessionCommandController.stopBackgroundCommand`), which the runtime reads every 2 s while a command runs (`src/harness/background-stops.ts`). Kept under `STIGMER_OPEN_OPERATION_MAX_MS`, so the shell's own bound fires first. Embedders set it through the `shellTimeoutMaxSeconds` option. |
309
+ | `STIGMER_SHELL_BACKGROUND_ENABLED` | `true` | Whether the Stigmer harness's model may start a shell command in the background. `false` turns it off: `execute` is declared without `background`, `stop_background_command` is not bound, and no turn waits at its end for a command, so every command runs in the foreground, a turn never waits on one, and a sandbox never stays awake for one. Any other value keeps it on with a warning. Embedders set it through the `shellBackgroundEnabled` option. |
310
+ | `WORKSPACE_LOCK_TIMEOUT_MS` | `900000` (15 min) | How long a turn waits for another session's lock on the same workspace before the execution fails with "workspace is in use by another session" (`src/shared/workspace/workspace-lock.ts`). Embedders use the `workspaceLockTimeoutMs` option. |
311
+ | `STIGMER_MCP_BRIDGE_ENDPOINT` | _(none)_ | The MCP bridge the runner's own attachments (memory, channel messaging, conversation participation) connect to, as `https://…`. An embedded runner that discovers its Temporal coordinates from a server also learns the bridge from it, when the server names one (`STIGMER_RUNNER_BOOTSTRAP_MCP_BRIDGE_ENDPOINT`); a value set here wins. Neither selects the local shape: a spawned `stigmer mcp-server` stdio child against the local backend. |
299
312
  | `SKIP_MCP_CONNECT_BACKFILL` | `false` | When `true`, skips MCP Connect backfill. |
300
313
  | `STIGMER_MCP_PUBLIC_ENDPOINT` | _(none)_ | The server's public endpoint. A server that provisions this runner's sandbox sets it from its own configuration (`STIGMER_SANDBOX_MCP_PUBLIC_ENDPOINT`). Fills `STIGMER_SERVER_ADDRESS` (as `host:port`) for MCP servers that declare it and carry no value; without it, only stdio servers are filled, from `STIGMER_BACKEND_ENDPOINT`. A value already present is never overridden. |
301
- | `CURSOR_EVENT_RECORD_DIR` | _(none)_ | Directory to record Cursor harness events (debugging/fixtures). |
302
314
  | `V3_EVENT_RECORD_DIR` | _(none)_ | Directory to record deep-agent harness events (debugging/fixtures). |
303
315
 
304
316
  ## Related documentation
@@ -1 +1 @@
1
- {"hash":"08bc52db3583a672","builtAt":"2026-10-17T06:48:02.891Z","fileCount":363}
1
+ {"hash":"9ac3c1b119ed74a8","builtAt":"2026-11-05T11:02:34.439Z","fileCount":385}
@@ -2,8 +2,8 @@
2
2
  * EnsureThread Temporal activity — resolves a LangGraph thread ID for an
3
3
  * agent execution.
4
4
  *
5
- * Called by the Java/Go InvokeAgentExecutionWorkflow as Step 1 of the
6
- * native (deep-agent) harness flow, before ExecuteDeepAgent. The returned
5
+ * Called by the server's InvokeAgentExecutionWorkflow as Step 1 of the
6
+ * Stigmer harness flow, before ExecuteDeepAgent. The returned
7
7
  * thread ID keys the LangGraph checkpointer for conversation continuity.
8
8
  *
9
9
  * Thread ID conventions (load-bearing for proxy authorization):
@@ -2,8 +2,8 @@
2
2
  * EnsureThread Temporal activity — resolves a LangGraph thread ID for an
3
3
  * agent execution.
4
4
  *
5
- * Called by the Java/Go InvokeAgentExecutionWorkflow as Step 1 of the
6
- * native (deep-agent) harness flow, before ExecuteDeepAgent. The returned
5
+ * Called by the server's InvokeAgentExecutionWorkflow as Step 1 of the
6
+ * Stigmer harness flow, before ExecuteDeepAgent. The returned
7
7
  * thread ID keys the LangGraph checkpointer for conversation continuity.
8
8
  *
9
9
  * Thread ID conventions (load-bearing for proxy authorization):
@@ -20,10 +20,12 @@
20
20
  * Output: string (thread ID)
21
21
  */
22
22
  import { randomUUID } from "node:crypto";
23
+ import { ENSURE_THREAD_ACTIVITY_NAME } from "@stigmer/temporal-codecs/activity-names";
23
24
  import { activityStarted, activityFinished } from "../idle-watchdog.js";
24
25
  export function createEnsureThreadActivities() {
25
26
  return {
26
- EnsureThread: async (sessionId, agentId) => {
27
+ // Registered under the name the server's workflow schedules, declared once for both.
28
+ [ENSURE_THREAD_ACTIVITY_NAME]: async (sessionId, agentId) => {
27
29
  activityStarted();
28
30
  try {
29
31
  if (sessionId) {
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-thread.js","sourceRoot":"","sources":["../../src/activities/ensure-thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,YAAY,EAAE,KAAK,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;YAC1E,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,UAAU,SAAS,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;oBAChE,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,MAAM,QAAQ,GAAG,aAAa,OAAO,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,OAAO,QAAQ,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACT,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ensure-thread.js","sourceRoot":"","sources":["../../src/activities/ensure-thread.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAExE,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,qFAAqF;QACrF,CAAC,2BAA2B,CAAC,EAAE,KAAK,EAAE,SAAiB,EAAE,OAAe,EAAmB,EAAE;YAC3F,eAAe,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,UAAU,SAAS,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;oBAChE,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,MAAM,QAAQ,GAAG,aAAa,OAAO,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtF,OAAO,CAAC,GAAG,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,OAAO,QAAQ,CAAC;YAClB,CAAC;oBAAS,CAAC;gBACT,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The Claude harness as a `HarnessAdapter` — the worker- and session-
3
+ * lifetime half of its Agent SDK slice, behind the turn runtime's contract
4
+ * (`harness/types.ts`). One engine turn is `turn.ts`'s `runClaudeTurn`; this
5
+ * module boots and delegates.
6
+ *
7
+ * THIS MODULE'S STATIC GRAPH IS SDK-FREE, ON PURPOSE, as every adapter's is
8
+ * (`harness-adapters.ts`): `@anthropic-ai/claude-agent-sdk` and the turn
9
+ * module are loaded with a dynamic import inside `boot`.
10
+ * `__tests__/adapter-graph-is-sdk-free.test.ts` pins it.
11
+ *
12
+ * WHERE THE ENGINE COMES FROM (`engine-home.ts` has the order and the pin).
13
+ * `boot` finds it once and leaves one of three states:
14
+ *
15
+ * - ready: the engine loaded, from the runner's own install or an engine
16
+ * home, and boot logged `[claude] engine ready <version> (<where>)`;
17
+ * - fetchable: no engine, but the runner carries its pin and was not started
18
+ * from the runner layer. This is a local runner (the desktop app,
19
+ * `stigmer up`, the `local-process` driver), and its first Claude turn
20
+ * installs the engine into its home (`engine-fetch.ts`), showing
21
+ * "Downloading Claude (one time): N%" in the turn's setup label, then
22
+ * loads it and runs; every later turn starts at once. A failed download
23
+ * ends the turn `actionable` with {@link downloadFailedMessage}, and the
24
+ * next turn tries again;
25
+ * - absent: neither. The turn fails `actionable` with
26
+ * {@link NOT_INSTALLED_MESSAGE} before anything runs.
27
+ *
28
+ * A runner started from the runner layer (`layer/start.sh` exports
29
+ * `STIGMER_RUNNER_LAYER=1`, which reaches the agent host under its
30
+ * `STIGMER_` prefix) never fetches: every image built on the layer carries
31
+ * the engine in it, and in a separating runner this host runs as the agent
32
+ * user, which must never install an engine later turns run. The marker is
33
+ * read, not `agentIdentity()`: inside the separated host that is always
34
+ * null (it runs as uid 10001, and the identity is the runner's to know).
35
+ *
36
+ * A worker that failed its boot over one engine would take the others down
37
+ * with it, so nothing here throws out of `boot`.
38
+ *
39
+ * Anthropic's conditions for running the engine in a product bind this
40
+ * slice (`harness/README.md`, "The Claude engine"): the engine's bytes are
41
+ * never changed or re-signed, it runs on the API-key method only
42
+ * (`engine-env.ts`), and no Claude turn runs on a Stigmer-owned key.
43
+ *
44
+ * Nothing is parked per session: each invocation starts the engine's
45
+ * process and ends it, and the session's conversation lives in the session
46
+ * store (`session-store.ts`), so `releaseSession` is a no-op and `shutdown`
47
+ * holds nothing.
48
+ *
49
+ * What this adapter never does: throw out of `runTurn`, branch on why
50
+ * `stopSignal` aborted, write a phase or a terminal copy, bind a state id
51
+ * (the session id derives from the runtime's thread id, `deterministic`), or
52
+ * import `@temporalio/*` (`__tests__/adapter-is-temporal-free.test.ts`).
53
+ */
54
+ import type { Config } from "../../config.js";
55
+ import type { HarnessAdapter } from "../../harness/types.js";
56
+ import { findClaudeEngine, type ClaudeEnginePin, type FoundEngine } from "./engine-home.js";
57
+ import type { ClaudeAdapterConfig, ClaudeSdk } from "./turn.js";
58
+ /** What a Claude turn on a runner without the engine is refused with. */
59
+ export declare const NOT_INSTALLED_MESSAGE = "The Claude Agent SDK is not installed on this runner, so this turn cannot run on the Claude Agent harness. Run it on another harness.";
60
+ /** What a Claude turn whose engine could not be downloaded ends with; the next turn tries again. */
61
+ export declare function downloadFailedMessage(reason: string): string;
62
+ /** The setup label while the engine downloads. */
63
+ export declare function downloadLabel(percent: number): string;
64
+ /** The least time between two download labels, so a fast download does not write a status per chunk. */
65
+ export declare const DOWNLOAD_LABEL_INTERVAL_MS = 1000;
66
+ /** The config slice this adapter reads per turn, taken at `boot`; a whole `Config` satisfies it. */
67
+ export declare function resolveClaudeConfig(config: Config): ClaudeAdapterConfig;
68
+ /** What `boot` reads from where it runs; a test replaces any of it. */
69
+ export interface ClaudeBootDeps {
70
+ readonly env: NodeJS.ProcessEnv;
71
+ readonly readPin: () => ClaudeEnginePin | null;
72
+ readonly find: typeof findClaudeEngine;
73
+ /** Imports a found engine's SDK: the runner's own by its bare name, a home's by file URL. */
74
+ readonly load: (engine: FoundEngine) => Promise<ClaudeSdk>;
75
+ /** Installs the engine for one turn (`engine-fetch.ts` `installForTurn`, loaded on first use). */
76
+ readonly install: (options: {
77
+ readonly root: string;
78
+ readonly pin: ClaudeEnginePin;
79
+ readonly platformPackage: string;
80
+ }, waiter: {
81
+ readonly signal: AbortSignal;
82
+ readonly onProgress: (fraction: number) => void;
83
+ readonly onActivity: () => void;
84
+ }) => Promise<{
85
+ readonly home: string;
86
+ readonly downloaded: boolean;
87
+ }>;
88
+ readonly now: () => number;
89
+ }
90
+ export declare function createClaudeAdapter(overrides?: Partial<ClaudeBootDeps>): HarnessAdapter;