@stigmer/runner 3.40.0 → 3.41.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 (278) hide show
  1. package/README.md +3 -1
  2. package/dist/.build-fingerprint +1 -1
  3. package/dist/__test-utils__/execution-record-fixture.d.ts +2 -1
  4. package/dist/__test-utils__/execution-record-fixture.js.map +1 -1
  5. package/dist/activities/call-agent.js +1 -1
  6. package/dist/activities/discover-mcp-server.d.ts +7 -1
  7. package/dist/activities/discover-mcp-server.js +13 -29
  8. package/dist/activities/discover-mcp-server.js.map +1 -1
  9. package/dist/activities/execute-cursor/__test-utils__/fold.d.ts +4 -2
  10. package/dist/activities/execute-cursor/__test-utils__/fold.js +3 -4
  11. package/dist/activities/execute-cursor/__test-utils__/fold.js.map +1 -1
  12. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js +1 -0
  13. package/dist/activities/execute-cursor/__test-utils__/hermetic-cursor.js.map +1 -1
  14. package/dist/activities/execute-cursor/approval-policy.d.ts +1 -29
  15. package/dist/activities/execute-cursor/approval-policy.js +11 -35
  16. package/dist/activities/execute-cursor/approval-policy.js.map +1 -1
  17. package/dist/activities/execute-cursor/boundary-rows.js +4 -4
  18. package/dist/activities/execute-cursor/boundary-rows.js.map +1 -1
  19. package/dist/activities/execute-cursor/translator.d.ts +12 -17
  20. package/dist/activities/execute-cursor/translator.js +13 -30
  21. package/dist/activities/execute-cursor/translator.js.map +1 -1
  22. package/dist/activities/execute-cursor/turn-stream.js +4 -2
  23. package/dist/activities/execute-cursor/turn-stream.js.map +1 -1
  24. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.d.ts +11 -1
  25. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js +22 -3
  26. package/dist/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.js.map +1 -1
  27. package/dist/activities/execute-deep-agent/inline-publisher.d.ts +33 -2
  28. package/dist/activities/execute-deep-agent/inline-publisher.js +33 -7
  29. package/dist/activities/execute-deep-agent/inline-publisher.js.map +1 -1
  30. package/dist/activities/execute-deep-agent/platform-route.d.ts +48 -13
  31. package/dist/activities/execute-deep-agent/platform-route.js +87 -19
  32. package/dist/activities/execute-deep-agent/platform-route.js.map +1 -1
  33. package/dist/activities/execute-deep-agent/prompt-builder.d.ts +70 -35
  34. package/dist/activities/execute-deep-agent/prompt-builder.js +70 -55
  35. package/dist/activities/execute-deep-agent/prompt-builder.js.map +1 -1
  36. package/dist/activities/execute-deep-agent/streaming-side-effects.d.ts +20 -3
  37. package/dist/activities/execute-deep-agent/streaming-side-effects.js +26 -4
  38. package/dist/activities/execute-deep-agent/streaming-side-effects.js.map +1 -1
  39. package/dist/activities/execute-deep-agent/translator.d.ts +5 -4
  40. package/dist/activities/execute-deep-agent/translator.js +5 -4
  41. package/dist/activities/execute-deep-agent/translator.js.map +1 -1
  42. package/dist/activities/execute-deep-agent/turn-settle.js +6 -6
  43. package/dist/activities/execute-deep-agent/turn-settle.js.map +1 -1
  44. package/dist/activities/execute-deep-agent/turn-setup.d.ts +18 -13
  45. package/dist/activities/execute-deep-agent/turn-setup.js +42 -36
  46. package/dist/activities/execute-deep-agent/turn-setup.js.map +1 -1
  47. package/dist/activities/execute-deep-agent/turn-stream.d.ts +10 -6
  48. package/dist/activities/execute-deep-agent/turn-stream.js +6 -16
  49. package/dist/activities/execute-deep-agent/turn-stream.js.map +1 -1
  50. package/dist/activities/execute-deep-agent/turn.d.ts +4 -1
  51. package/dist/activities/execute-deep-agent/turn.js +15 -6
  52. package/dist/activities/execute-deep-agent/turn.js.map +1 -1
  53. package/dist/activities/workflow-event-activities.js +2 -0
  54. package/dist/activities/workflow-event-activities.js.map +1 -1
  55. package/dist/config.d.ts +9 -0
  56. package/dist/config.js +2 -0
  57. package/dist/config.js.map +1 -1
  58. package/dist/exit-backstop.d.ts +64 -0
  59. package/dist/exit-backstop.js +79 -0
  60. package/dist/exit-backstop.js.map +1 -0
  61. package/dist/harness/terminal-table.d.ts +12 -5
  62. package/dist/harness/terminal-table.js +13 -13
  63. package/dist/harness/terminal-table.js.map +1 -1
  64. package/dist/harness/transcript/builder.d.ts +21 -0
  65. package/dist/harness/transcript/builder.js +53 -31
  66. package/dist/harness/transcript/builder.js.map +1 -1
  67. package/dist/harness/transcript/events.d.ts +22 -26
  68. package/dist/harness/transcript/events.js +6 -5
  69. package/dist/harness/transcript/events.js.map +1 -1
  70. package/dist/harness/turn-context.d.ts +3 -1
  71. package/dist/harness/turn-context.js +5 -3
  72. package/dist/harness/turn-context.js.map +1 -1
  73. package/dist/main.js +10 -4
  74. package/dist/main.js.map +1 -1
  75. package/dist/middleware/cost-advisory.d.ts +6 -3
  76. package/dist/middleware/cost-advisory.js +6 -3
  77. package/dist/middleware/cost-advisory.js.map +1 -1
  78. package/dist/middleware/execution-budget.d.ts +22 -7
  79. package/dist/middleware/execution-budget.js +57 -35
  80. package/dist/middleware/execution-budget.js.map +1 -1
  81. package/dist/middleware/index.d.ts +10 -7
  82. package/dist/middleware/index.js +10 -7
  83. package/dist/middleware/index.js.map +1 -1
  84. package/dist/middleware/types.d.ts +6 -1
  85. package/dist/runner-manager.js +3 -2
  86. package/dist/runner-manager.js.map +1 -1
  87. package/dist/runner.d.ts +25 -0
  88. package/dist/runner.js +41 -14
  89. package/dist/runner.js.map +1 -1
  90. package/dist/shared/approval-policy.d.ts +23 -13
  91. package/dist/shared/approval-policy.js +47 -14
  92. package/dist/shared/approval-policy.js.map +1 -1
  93. package/dist/shared/caller-identity.d.ts +4 -5
  94. package/dist/shared/caller-identity.js +4 -5
  95. package/dist/shared/caller-identity.js.map +1 -1
  96. package/dist/shared/channel-attachment.js +3 -2
  97. package/dist/shared/channel-attachment.js.map +1 -1
  98. package/dist/shared/connect-backfill.d.ts +2 -1
  99. package/dist/shared/connect-backfill.js +2 -2
  100. package/dist/shared/connect-backfill.js.map +1 -1
  101. package/dist/shared/mcp-resolver.d.ts +10 -1
  102. package/dist/shared/mcp-resolver.js +11 -2
  103. package/dist/shared/mcp-resolver.js.map +1 -1
  104. package/dist/shared/memory-attachment.js +3 -2
  105. package/dist/shared/memory-attachment.js.map +1 -1
  106. package/dist/shared/model-error.d.ts +25 -3
  107. package/dist/shared/model-error.js +78 -10
  108. package/dist/shared/model-error.js.map +1 -1
  109. package/dist/shared/platform-server-address.d.ts +71 -0
  110. package/dist/shared/platform-server-address.js +103 -0
  111. package/dist/shared/platform-server-address.js.map +1 -0
  112. package/dist/shared/prompt-sections.d.ts +6 -28
  113. package/dist/shared/prompt-sections.js +6 -35
  114. package/dist/shared/prompt-sections.js.map +1 -1
  115. package/dist/shared/skill-resolver.d.ts +2 -3
  116. package/dist/shared/skill-resolver.js +2 -3
  117. package/dist/shared/skill-resolver.js.map +1 -1
  118. package/dist/shared/synthesized-attachment.d.ts +0 -5
  119. package/dist/shared/synthesized-attachment.js +0 -12
  120. package/dist/shared/synthesized-attachment.js.map +1 -1
  121. package/dist/shared/tool-rounds.d.ts +51 -23
  122. package/dist/shared/tool-rounds.js +67 -24
  123. package/dist/shared/tool-rounds.js.map +1 -1
  124. package/dist/shared/workspace/platform-dir.d.ts +15 -0
  125. package/dist/shared/workspace/platform-dir.js +18 -1
  126. package/dist/shared/workspace/platform-dir.js.map +1 -1
  127. package/dist/shared/workspace/sources/git.js +13 -6
  128. package/dist/shared/workspace/sources/git.js.map +1 -1
  129. package/dist/shared/workspace/stigmer-link.d.ts +21 -14
  130. package/dist/shared/workspace/stigmer-link.js +91 -29
  131. package/dist/shared/workspace/stigmer-link.js.map +1 -1
  132. package/dist/tools/url-guard.d.ts +5 -1
  133. package/dist/tools/url-guard.js +9 -2
  134. package/dist/tools/url-guard.js.map +1 -1
  135. package/dist/worker.d.ts +11 -2
  136. package/dist/worker.js +1 -1
  137. package/dist/worker.js.map +1 -1
  138. package/dist/workflow-engine/tasks/human-input.d.ts +16 -0
  139. package/dist/workflow-engine/tasks/human-input.js +79 -37
  140. package/dist/workflow-engine/tasks/human-input.js.map +1 -1
  141. package/dist/workflow-engine/types.d.ts +14 -4
  142. package/dist/workflow-engine/types.js.map +1 -1
  143. package/dist/workflows/call-agent-orchestrator.d.ts +13 -0
  144. package/dist/workflows/call-agent-orchestrator.js.map +1 -1
  145. package/dist/workflows/engine-core.d.ts +25 -0
  146. package/dist/workflows/engine-core.js.map +1 -1
  147. package/dist/workflows/execute-from-execution.d.ts +3 -0
  148. package/dist/workflows/execute-from-execution.js.map +1 -1
  149. package/dist/workflows/human-input-orchestrator.d.ts +9 -12
  150. package/dist/workflows/human-input-orchestrator.js +12 -44
  151. package/dist/workflows/human-input-orchestrator.js.map +1 -1
  152. package/package.json +5 -5
  153. package/src/__test-utils__/config-fixture.ts +1 -0
  154. package/src/__test-utils__/execution-record-fixture.ts +2 -1
  155. package/src/__test-utils__/harness-contract/runtime-contract.ts +5 -3
  156. package/src/__test-utils__/test-gate.ts +8 -0
  157. package/src/__tests__/exit-backstop.test.ts +91 -0
  158. package/src/__tests__/golden-e2e.test.ts +80 -62
  159. package/src/__tests__/history-encryption-e2e.test.ts +51 -27
  160. package/src/__tests__/runner.test.ts +60 -2
  161. package/src/activities/__tests__/classify-tool-approvals.test.ts +1 -0
  162. package/src/activities/__tests__/discover-mcp-server.hang.test.ts +5 -1
  163. package/src/activities/__tests__/discover-mcp-server.test.ts +90 -49
  164. package/src/activities/__tests__/workflow-event-activities.test.ts +28 -7
  165. package/src/activities/call-agent.ts +1 -1
  166. package/src/activities/discover-mcp-server.ts +27 -37
  167. package/src/activities/execute-cursor/__test-utils__/fold.ts +6 -4
  168. package/src/activities/execute-cursor/__test-utils__/hermetic-cursor.ts +1 -0
  169. package/src/activities/execute-cursor/__tests__/approval-gate.test.ts +4 -29
  170. package/src/activities/execute-cursor/__tests__/hermetic/bypassed-tool-call.test.ts +120 -0
  171. package/src/activities/execute-cursor/__tests__/hermetic/file-review-capture.test.ts +5 -5
  172. package/src/activities/execute-cursor/__tests__/hermetic/goldens/file-review-capture.status.json +0 -2
  173. package/src/activities/execute-cursor/__tests__/hermetic/goldens/resolution-error.status.json +1 -1
  174. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.error-delta.status.json +0 -3
  175. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.output-first.status.json +0 -2
  176. package/src/activities/execute-cursor/__tests__/hermetic/goldens/shell-output-delta.status.json +0 -2
  177. package/src/activities/execute-cursor/__tests__/hermetic/goldens/stall.status.json +0 -2
  178. package/src/activities/execute-cursor/__tests__/hermetic/goldens/unattributed-hook-block.status.json +0 -3
  179. package/src/activities/execute-cursor/__tests__/hermetic/shell-output-delta.test.ts +9 -7
  180. package/src/activities/execute-cursor/__tests__/hermetic/thrown-error-arms.test.ts +6 -1
  181. package/src/activities/execute-cursor/__tests__/hitl-resume-history.test.ts +8 -11
  182. package/src/activities/execute-cursor/__tests__/sequential-gate-resume.test.ts +1 -3
  183. package/src/activities/execute-cursor/__tests__/translator.test.ts +68 -15
  184. package/src/activities/execute-cursor/approval-policy.ts +11 -36
  185. package/src/activities/execute-cursor/boundary-rows.ts +3 -3
  186. package/src/activities/execute-cursor/translator.ts +15 -32
  187. package/src/activities/execute-cursor/turn-stream.ts +4 -1
  188. package/src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts +33 -2
  189. package/src/activities/execute-deep-agent/__tests__/adapter.test.ts +1 -0
  190. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.build-from-plan.prompt.md +1 -27
  191. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.everything.prompt.md +26 -30
  192. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.plan-mode.prompt.md +1 -26
  193. package/src/activities/execute-deep-agent/__tests__/goldens/user-message.everything.md +36 -0
  194. package/src/activities/execute-deep-agent/__tests__/hermetic/file-review-capture.test.ts +4 -0
  195. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/file-review-capture.status.json +1 -1
  196. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn1.status.json +1 -1
  197. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/inline-artifact.turn2.status.json +1 -1
  198. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/recursion-limit.persisted.status.json +8 -73
  199. package/src/activities/execute-deep-agent/__tests__/hermetic/goldens/resolution-error.status.json +1 -1
  200. package/src/activities/execute-deep-agent/__tests__/hermetic/inline-artifact-across-gate.test.ts +17 -0
  201. package/src/activities/execute-deep-agent/__tests__/hermetic/recursion-limit.test.ts +86 -26
  202. package/src/activities/execute-deep-agent/__tests__/hermetic/resolution-error.test.ts +9 -5
  203. package/src/activities/execute-deep-agent/__tests__/hermetic/thrown-turn-drains-publishes.test.ts +159 -0
  204. package/src/activities/execute-deep-agent/__tests__/inline-publisher.test.ts +84 -0
  205. package/src/activities/execute-deep-agent/__tests__/platform-route.test.ts +47 -10
  206. package/src/activities/execute-deep-agent/__tests__/prompt-builder.test.ts +127 -199
  207. package/src/activities/execute-deep-agent/__tests__/prompt-goldens.test.ts +31 -26
  208. package/src/activities/execute-deep-agent/__tests__/streaming-side-effects.test.ts +34 -0
  209. package/src/activities/execute-deep-agent/__tests__/turn-stream.test.ts +13 -5
  210. package/src/activities/execute-deep-agent/inline-publisher.ts +47 -7
  211. package/src/activities/execute-deep-agent/platform-route.ts +109 -20
  212. package/src/activities/execute-deep-agent/prompt-builder.ts +104 -92
  213. package/src/activities/execute-deep-agent/streaming-side-effects.ts +27 -4
  214. package/src/activities/execute-deep-agent/translator.ts +5 -4
  215. package/src/activities/execute-deep-agent/turn-settle.ts +6 -6
  216. package/src/activities/execute-deep-agent/turn-setup.ts +43 -38
  217. package/src/activities/execute-deep-agent/turn-stream.ts +15 -22
  218. package/src/activities/execute-deep-agent/turn.ts +16 -7
  219. package/src/activities/workflow-event-activities.ts +2 -0
  220. package/src/config.ts +11 -0
  221. package/src/exit-backstop.ts +97 -0
  222. package/src/harness/README.md +5 -5
  223. package/src/harness/terminal-table.ts +13 -13
  224. package/src/harness/transcript/__tests__/builder.test.ts +93 -21
  225. package/src/harness/transcript/builder.ts +53 -30
  226. package/src/harness/transcript/events.ts +22 -27
  227. package/src/harness/turn-context.ts +5 -3
  228. package/src/main.ts +9 -5
  229. package/src/middleware/__tests__/execution-budget.test.ts +181 -103
  230. package/src/middleware/cost-advisory.ts +6 -3
  231. package/src/middleware/execution-budget.ts +60 -34
  232. package/src/middleware/index.ts +10 -7
  233. package/src/middleware/types.ts +6 -1
  234. package/src/runner-manager.ts +3 -2
  235. package/src/runner.ts +57 -15
  236. package/src/shared/__tests__/approval-policy.test.ts +41 -0
  237. package/src/shared/__tests__/artifact-storage.test.ts +1 -0
  238. package/src/shared/__tests__/connect-backfill.test.ts +15 -11
  239. package/src/shared/__tests__/mcp-resolver.test.ts +72 -10
  240. package/src/shared/__tests__/model-error.test.ts +71 -3
  241. package/src/shared/__tests__/platform-server-address.test.ts +122 -0
  242. package/src/shared/__tests__/prompt-sections.test.ts +2 -54
  243. package/src/shared/__tests__/tool-rounds.test.ts +64 -14
  244. package/src/shared/approval-policy.ts +57 -14
  245. package/src/shared/caller-identity.ts +4 -5
  246. package/src/shared/channel-attachment.ts +2 -2
  247. package/src/shared/connect-backfill.ts +5 -1
  248. package/src/shared/mcp-resolver.ts +11 -1
  249. package/src/shared/memory-attachment.ts +2 -2
  250. package/src/shared/model-error.ts +87 -9
  251. package/src/shared/platform-server-address.ts +123 -0
  252. package/src/shared/prompt-sections.ts +6 -55
  253. package/src/shared/skill-resolver.ts +2 -3
  254. package/src/shared/synthesized-attachment.ts +0 -12
  255. package/src/shared/tool-rounds.ts +70 -24
  256. package/src/shared/workspace/__tests__/git-source.test.ts +11 -5
  257. package/src/shared/workspace/__tests__/stigmer-link.test.ts +107 -10
  258. package/src/shared/workspace/platform-dir.ts +19 -1
  259. package/src/shared/workspace/sources/git.ts +14 -8
  260. package/src/shared/workspace/stigmer-link.ts +99 -29
  261. package/src/tools/__tests__/url-guard.test.ts +19 -1
  262. package/src/tools/url-guard.ts +9 -1
  263. package/src/worker.ts +12 -2
  264. package/src/workflow-engine/__tests__/golden-execution.test.ts +2 -1
  265. package/src/workflow-engine/__tests__/loader.test.ts +1 -1
  266. package/src/workflow-engine/__tests__/tasks/human-input.test.ts +133 -57
  267. package/src/workflow-engine/tasks/human-input.ts +92 -42
  268. package/src/workflow-engine/types.ts +16 -4
  269. package/src/workflows/call-agent-orchestrator.ts +7 -0
  270. package/src/workflows/engine-core.ts +18 -0
  271. package/src/workflows/execute-from-execution.ts +2 -1
  272. package/src/workflows/human-input-orchestrator.ts +15 -56
  273. package/dist/shared/skill-relevance.d.ts +0 -65
  274. package/dist/shared/skill-relevance.js +0 -175
  275. package/dist/shared/skill-relevance.js.map +0 -1
  276. package/src/activities/execute-deep-agent/__tests__/goldens/system-prompt.skills-below-threshold.prompt.md +0 -146
  277. package/src/shared/__tests__/skill-relevance.test.ts +0 -292
  278. package/src/shared/skill-relevance.ts +0 -222
@@ -50,15 +50,17 @@
50
50
  * mid-stream is WAITING until the boundary runs), so they are indexed once
51
51
  * at construction and consumed on match (a declined row is a
52
52
  * closed gate and never matched).
53
- * - The GATE and the PROVENANCE. `gate` is the POLICY's word —
54
- * this MCP tool's merged policy, or this built-in's category, requires
55
- * approval — resolved exactly as the accumulator did, lease- and
56
- * bypass-blind; it is NOT the hook's verdict (the hook has arms this side
57
- * cannot evaluate: capture mode, grants, bypass, secret blocks — the
58
- * lesson behind dropping a parked-at-creation arm that had no producer).
59
- * A gated call that STARTED runs until the boundary parks
60
- * it through `approval_proposed`. Provenance is the shared read-side
61
- * `resolveApprovalProvenance` over the same policies and the run's leases.
53
+ * - The PROVENANCE, and never the hold. A row's provenance is the shared
54
+ * read-side `resolveApprovalProvenance` over the merged policies and the
55
+ * run's leases: which layer governs the call. Whether the call was HELD
56
+ * for a person's decision is not answered here, because at tool start
57
+ * nobody knows yet: the preToolUse hook decides, with arms this side
58
+ * cannot evaluate (capture mode, grants, bypass, secret blocks), and a
59
+ * call the hook denies is parked by the turn boundary through
60
+ * `approval_proposed` — the one writer of a row's approval fields on both
61
+ * harnesses (#1117). Until then this translator stamped the policy's
62
+ * category verdict at start, lease- and bypass-blind, so a leased,
63
+ * bypassed or capture-mode call that ran read "requires approval".
62
64
  * - The RESULT string (`tool-result.ts`): a failure's text is its `error`
63
65
  * alone.
64
66
  * - The SUB-AGENT: a `task` tool call opens a sub-agent keyed by
@@ -85,7 +87,7 @@ import type { ToolApprovalCategory } from "../../shared/tool-kind.js";
85
87
  type ToolCallEvent = Extract<SDKMessage, {
86
88
  type: "tool_call";
87
89
  }>;
88
- /** The run's approval posture the translator answers `gate` and `provenance` from. */
90
+ /** The run's approval posture the translator answers `provenance` from. */
89
91
  export interface CursorTranslatorOptions {
90
92
  /** The merged four-level MCP policy map (`mergeApprovalPolicies`). */
91
93
  readonly policies: ReadonlyMap<string, MergedToolPolicy>;
@@ -143,13 +145,6 @@ export declare class CursorTranslator {
143
145
  */
144
146
  private resolveRowId;
145
147
  private toolStarted;
146
- /**
147
- * The policy's word that this call requires approval, and the card's
148
- * message — or nothing for an ungated call. An MCP call (the `mcp` envelope,
149
- * whatever its provider field says) is governed by the merged policy map
150
- * alone; a built-in by its category.
151
- */
152
- private gateOf;
153
148
  private rowIdOf;
154
149
  private enqueue;
155
150
  }
@@ -50,15 +50,17 @@
50
50
  * mid-stream is WAITING until the boundary runs), so they are indexed once
51
51
  * at construction and consumed on match (a declined row is a
52
52
  * closed gate and never matched).
53
- * - The GATE and the PROVENANCE. `gate` is the POLICY's word —
54
- * this MCP tool's merged policy, or this built-in's category, requires
55
- * approval — resolved exactly as the accumulator did, lease- and
56
- * bypass-blind; it is NOT the hook's verdict (the hook has arms this side
57
- * cannot evaluate: capture mode, grants, bypass, secret blocks — the
58
- * lesson behind dropping a parked-at-creation arm that had no producer).
59
- * A gated call that STARTED runs until the boundary parks
60
- * it through `approval_proposed`. Provenance is the shared read-side
61
- * `resolveApprovalProvenance` over the same policies and the run's leases.
53
+ * - The PROVENANCE, and never the hold. A row's provenance is the shared
54
+ * read-side `resolveApprovalProvenance` over the merged policies and the
55
+ * run's leases: which layer governs the call. Whether the call was HELD
56
+ * for a person's decision is not answered here, because at tool start
57
+ * nobody knows yet: the preToolUse hook decides, with arms this side
58
+ * cannot evaluate (capture mode, grants, bypass, secret blocks), and a
59
+ * call the hook denies is parked by the turn boundary through
60
+ * `approval_proposed` — the one writer of a row's approval fields on both
61
+ * harnesses (#1117). Until then this translator stamped the policy's
62
+ * category verdict at start, lease- and bypass-blind, so a leased,
63
+ * bypassed or capture-mode call that ran read "requires approval".
62
64
  * - The RESULT string (`tool-result.ts`): a failure's text is its `error`
63
65
  * alone.
64
66
  * - The SUB-AGENT: a `task` tool call opens a sub-agent keyed by
@@ -81,7 +83,6 @@ import { ToolCallStatus } from "@stigmer/protos/ai/stigmer/agentic/agentexecutio
81
83
  import { resolveApprovalProvenance } from "../../shared/approval-policy.js";
82
84
  import { utcTimestamp } from "../../shared/status.js";
83
85
  import { isDeclinedRow } from "../../shared/tool-row.js";
84
- import { builtInRequiresApproval, getBuiltInApprovalMessage, lookupMcpToolPolicy, resolveApprovalMessage } from "./approval-policy.js";
85
86
  import { toolCallIdentityToken, toolIdentity, primaryToken } from "./approval-state.js";
86
87
  import { contentDigest } from "../../shared/file-tools.js";
87
88
  import { subAgentStepEvents } from "./sub-agent-steps.js";
@@ -269,7 +270,7 @@ export class CursorTranslator {
269
270
  }
270
271
  this.announced.add(rowId);
271
272
  }
272
- out.push(this.toolStarted(rowId, name, mcp !== undefined, mcpServerSlug, input));
273
+ out.push(this.toolStarted(rowId, name, mcpServerSlug, input));
273
274
  // Deltas that arrived before the stream announced this call follow its
274
275
  // start, targeted at the row it resolved to.
275
276
  const heldMakers = this.held.get(event.call_id);
@@ -326,10 +327,9 @@ export class CursorTranslator {
326
327
  this.aliases.set(callId, seededId);
327
328
  return seededId;
328
329
  }
329
- toolStarted(callId, name, isMcp, mcpServerSlug, input) {
330
+ toolStarted(callId, name, mcpServerSlug, input) {
330
331
  const { policies, leases } = this.options;
331
332
  const provenance = resolveApprovalProvenance(name, mcpServerSlug, policies, leases.categories, leases.global);
332
- const gate = this.gateOf(name, isMcp, mcpServerSlug, input);
333
333
  return {
334
334
  kind: "tool_started",
335
335
  callId,
@@ -337,25 +337,8 @@ export class CursorTranslator {
337
337
  input,
338
338
  mcpServerSlug,
339
339
  ...(provenance !== undefined ? { provenance } : {}),
340
- ...(gate !== undefined ? { gate } : {}),
341
340
  };
342
341
  }
343
- /**
344
- * The policy's word that this call requires approval, and the card's
345
- * message — or nothing for an ungated call. An MCP call (the `mcp` envelope,
346
- * whatever its provider field says) is governed by the merged policy map
347
- * alone; a built-in by its category.
348
- */
349
- gateOf(name, isMcp, mcpServerSlug, input) {
350
- if (isMcp) {
351
- const policy = lookupMcpToolPolicy(name, mcpServerSlug, this.options.policies);
352
- return policy ? { message: resolveApprovalMessage(policy.approvalMessage, name, input) } : undefined;
353
- }
354
- if (!builtInRequiresApproval(name))
355
- return undefined;
356
- const template = getBuiltInApprovalMessage(name);
357
- return template ? { message: resolveApprovalMessage(template, name, input) } : undefined;
358
- }
359
342
  // ── The delta queue ─────────────────────────────────────────────
360
343
  rowIdOf(callId) {
361
344
  return this.aliases.get(callId) ?? callId;
@@ -1 +1 @@
1
- {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/translator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/translator.ts"],"names":[],"mappings":"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"}
@@ -123,8 +123,10 @@ export async function consumeCursorTurnStream(run, deps) {
123
123
  // The stream event, then the deltas that arrived since the last one —
124
124
  // the enricher's order, kept so a completion the delta channel reported
125
125
  // in the same window as the stream's own defers to the stream's instant.
126
- for (const fact of translator.translate(event))
127
- transcript.apply(fact);
126
+ // The stream event is one observation, folded at one instant (a
127
+ // completion with no running before it starts and finishes together);
128
+ // each drained delta is its own, and carries `observedAt` where it stamps.
129
+ transcript.applyObservation(translator.translate(event));
128
130
  for (const fact of translator.drainDeltas())
129
131
  transcript.apply(fact);
130
132
  // First-denial stop (HITL clean pause). In CAPTURE mode this fires only for
@@ -1 +1 @@
1
- {"version":3,"file":"turn-stream.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/turn-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-stream.js","sourceRoot":"","sources":["../../../src/activities/execute-cursor/turn-stream.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,9 @@ export declare class DeepAgentScenario {
130
130
  readonly model: ScriptedModel;
131
131
  constructor(env: HermeticEnvironment, clock: ScriptedClock, record: ExecutionRecord,
132
132
  /** The runner this scenario runs on: the OSS posture plus the scenario's knobs. */
133
- config: Config, script: ScriptSelector, onTurn: DeepAgentScenarioOptions["onTurn"]);
133
+ config: Config, script: ScriptSelector, onTurn: DeepAgentScenarioOptions["onTurn"],
134
+ /** Tool calls an EARLIER message of the session settled, in its own record ({@link continueDeepAgentScenario}). */
135
+ settledEarlier?: ReadonlySet<string>);
134
136
  }
135
137
  export interface DeepAgentScenarioOptions {
136
138
  readonly env: HermeticEnvironment;
@@ -157,6 +159,14 @@ export interface DeepAgentScenarioOptions {
157
159
  }
158
160
  /** Bind the record and the model for a scenario; resets the harness's module and session state first. */
159
161
  export declare function beginDeepAgentScenario(options: DeepAgentScenarioOptions): DeepAgentScenario;
162
+ /**
163
+ * The session's NEXT message on the scenario's thread: a new record and a new
164
+ * script over the same environment, runner config and checkpointer, WITHOUT
165
+ * the reset {@link beginDeepAgentScenario} does. On the `sqlite` checkpointer
166
+ * the new message therefore runs on the checkpoint the previous one left: the
167
+ * production shape of "send another message to continue".
168
+ */
169
+ export declare function continueDeepAgentScenario(previous: DeepAgentScenario, options: Pick<DeepAgentScenarioOptions, "record" | "script" | "onTurn" | "clientOverrides">): DeepAgentScenario;
160
170
  export interface DeepAgentTurnOptions {
161
171
  /** The HITL cycle index (0 on the first turn); mints the change-set id. */
162
172
  readonly turnSeq?: number;
@@ -116,6 +116,7 @@ export function hermeticDeepAgentConfig(env, checkpointerType) {
116
116
  temporalConnection: {},
117
117
  stigmerBackendEndpoint: "http://localhost:7234",
118
118
  mcpBridgeEndpoint: null,
119
+ mcpPublicEndpoint: null,
119
120
  stigmerTokenRef: { current: null },
120
121
  cursorApiKey: "",
121
122
  workspaceRootDir: env.workspaceRootDir,
@@ -181,7 +182,9 @@ export class DeepAgentScenario {
181
182
  model;
182
183
  constructor(env, clock, record,
183
184
  /** The runner this scenario runs on: the OSS posture plus the scenario's knobs. */
184
- config, script, onTurn) {
185
+ config, script, onTurn,
186
+ /** Tool calls an EARLIER message of the session settled, in its own record ({@link continueDeepAgentScenario}). */
187
+ settledEarlier = new Set()) {
185
188
  this.env = env;
186
189
  this.clock = clock;
187
190
  this.record = record;
@@ -193,8 +196,10 @@ export class DeepAgentScenario {
193
196
  // lets the producer run a turn ahead of the consumer. Wait for that
194
197
  // ground before ticking, so every stamp of the previous turn precedes
195
198
  // this turn's instant, whatever the persist's I/O took (the barrier's
196
- // own header on `ExecutionRecord` carries the whole reason).
197
- await this.record.whenToolCallsSettled(info.priorToolCallIds);
199
+ // own header on `ExecutionRecord` carries the whole reason). A
200
+ // follow-up message's first turn answers the previous message's last
201
+ // results, which that message's record settled, never this one.
202
+ await this.record.whenToolCallsSettled(info.priorToolCallIds.filter((id) => !settledEarlier.has(id)));
198
203
  this.clock.tick();
199
204
  if (onTurn && this.controls)
200
205
  await onTurn(info, this.controls);
@@ -210,6 +215,20 @@ export function beginDeepAgentScenario(options) {
210
215
  bindHermeticClient(options.record.client(options.clientOverrides));
211
216
  return scenario;
212
217
  }
218
+ /**
219
+ * The session's NEXT message on the scenario's thread: a new record and a new
220
+ * script over the same environment, runner config and checkpointer, WITHOUT
221
+ * the reset {@link beginDeepAgentScenario} does. On the `sqlite` checkpointer
222
+ * the new message therefore runs on the checkpoint the previous one left: the
223
+ * production shape of "send another message to continue".
224
+ */
225
+ export function continueDeepAgentScenario(previous, options) {
226
+ const settledEarlier = new Set(previous.record.toolCalls().map((tc) => tc.id));
227
+ const scenario = new DeepAgentScenario(previous.env, previous.clock, options.record, previous.config, options.script, options.onTurn, settledEarlier);
228
+ bindScriptedModel(scenario.model);
229
+ bindHermeticClient(options.record.client(options.clientOverrides));
230
+ return scenario;
231
+ }
213
232
  /**
214
233
  * Run ONE `ExecuteDeepAgent` invocation for the scenario. Built per invocation
215
234
  * (the factory constructs its client, which is the one bound at
@@ -1 +1 @@
1
- {"version":3,"file":"hermetic-deep-agent.js","sourceRoot":"","sources":["../../../../src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAGL,kBAAkB,EAClB,uBAAuB,GAIxB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,qDAAqD,CAAC;AAC1H,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,aAAa,EAA8C,MAAM,qBAAqB,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,GAAG,EAAE,cAAc;IACnB,WAAW,EAAE,mBAAmB;IAChC,SAAS,EAAE,UAAU;IACrB,eAAe,EAAE,mBAAmB;IACpC,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,gBAAgB;IAC3B,sEAAsE;IACtE,KAAK,EAAE,oBAAoB;IAC3B,gGAAgG;IAChG,QAAQ,EAAE,UAAU,UAAU,EAAE;CACxB,CAAC;AASX,mGAAmG;AACnG,MAAM,UAAU,wBAAwB,CAAC,OAA+B;IACtE,OAAO,sBAAsB,CAAC;QAC5B,GAAG,OAAO;QACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK;QAC7C,GAAG,EAAE;YACH,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAQD,uFAAuF;AACvF,MAAM,UAAU,uBAAuB,CAAC,GAAwB,EAAE,gBAAsC;IACtG,OAAO;QACL,SAAS,EAAE,qBAAqB;QAChC,eAAe,EAAE,gBAAgB;QACjC,iBAAiB,EAAE,SAAS;QAC5B,kBAAkB,EAAE,EAAE;QACtB,sBAAsB,EAAE,uBAAuB;QAC/C,iBAAiB,EAAE,IAAI;QACvB,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAClC,YAAY,EAAE,EAAE;QAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,IAAI;QACnB,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,KAAK;QACvB,gBAAgB;QAChB,yBAAyB,EAAE,IAAI;QAC/B,qBAAqB,EAAE,IAAI;QAC3B,YAAY,EAAE,OAAO,CAAC,KAAK;QAC3B,0BAA0B,EAAE,OAAO;QACnC,qBAAqB,EAAE,OAAO;QAC9B,sBAAsB,EAAE,OAAO;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAwB;IAC1D,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAoB,KAAK,EAAE,MAAM,EAAE,EAAE;IACtE,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;IACzC,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IAC/F,OAAO,UAAU,CAAC,gBAAiB,CAAC;AACtC,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,GAAwB;IAClE,mBAAmB,EAAE,CAAC;IACtB,kBAAkB,EAAE,CAAC;IACrB,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,kGAAkG;AAClG,MAAM,OAAO,iBAAiB;IAMjB;IACA;IACA;IAEA;IATX,4GAA4G;IAC5G,QAAQ,CAAiC;IAChC,KAAK,CAAgB;IAE9B,YACW,GAAwB,EACxB,KAAoB,EACpB,MAAuB;IAChC,mFAAmF;IAC1E,MAAc,EACvB,MAAsB,EACtB,MAA0C;QANjC,QAAG,GAAH,GAAG,CAAqB;QACxB,UAAK,GAAL,KAAK,CAAe;QACpB,WAAM,GAAN,MAAM,CAAiB;QAEvB,WAAM,GAAN,MAAM,CAAQ;QAIvB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE;YACzC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACrB,oEAAoE;gBACpE,uEAAuE;gBACvE,oEAAoE;gBACpE,sEAAsE;gBACtE,sEAAsE;gBACtE,6DAA6D;gBAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClB,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AA0BD,yGAAyG;AACzG,MAAM,UAAU,sBAAsB,CAAC,OAAiC;IACtE,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CACpC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAChG,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,MAAM,CACf,CAAC;IACF,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACnE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAaD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA2B,EAC3B,UAAgC,EAAE;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,sBAAsB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAyB;QAClC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW;QACzC,SAAS,EAAE,QAAQ;QACnB,QAAQ,EAAE,OAAO;KAClB,CAAC;IACF,MAAM,IAAI,GAA6C,OAAO,CAAC,UAAU;QACvE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC;QACzC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACZ,OAAO,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;QACpC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YACvB,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"hermetic-deep-agent.js","sourceRoot":"","sources":["../../../../src/activities/execute-deep-agent/__test-utils__/hermetic-deep-agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@
8
8
  * Designed as a fire-and-forget callback: exceptions are logged and
9
9
  * swallowed so the streaming loop is never interrupted.
10
10
  *
11
+ * A file is uploaded only when its bytes differ from the row the execution's
12
+ * status already lists for its path. The status is the one home of that fact:
13
+ * the builder writes every row into it, and a reinvocation's seed carries the
14
+ * earlier turns' rows onto it before this publisher exists. So a completed
15
+ * turn after a gate, whose safety net walks the seeded history again, re-reads
16
+ * each earlier file but uploads none that did not change (stigmer/stigmer#1448).
17
+ * The re-read is kept on purpose: a shell command may have rewritten an earlier
18
+ * turn's file, and only its bytes can say so.
19
+ *
11
20
  * DD-7: No skill-aware directory publishing. Individual files only.
12
21
  */
13
22
  import type { ArtifactStorage } from "../../shared/artifact-storage.js";
@@ -23,6 +32,15 @@ import type { WorkspaceBackend } from "../../shared/workspace/types.js";
23
32
  export interface ArtifactSink {
24
33
  addArtifact(artifact: ExecutionArtifact): void;
25
34
  }
35
+ /**
36
+ * The execution status's artifact rows, read at every publish: the status the
37
+ * {@link ArtifactSink} builds into (`TurnSink.status` in production), so a row
38
+ * registered here or seeded by a reinvocation is visible on the next check.
39
+ * Read, never copied, because the builder keeps writing it.
40
+ */
41
+ export interface ArtifactRecord {
42
+ readonly artifacts: readonly ExecutionArtifact[];
43
+ }
26
44
  export declare class InlinePublisher {
27
45
  private readonly workspaceBackend;
28
46
  /**
@@ -33,20 +51,33 @@ export declare class InlinePublisher {
33
51
  */
34
52
  private readonly artifactStorage;
35
53
  private readonly artifacts;
54
+ private readonly record;
36
55
  private readonly executionId;
37
- /** Tracks (sandboxPath -> contentHash) for deduplication. */
56
+ /**
57
+ * Paths this publisher brought up to date in this turn, uploaded or found
58
+ * unchanged, so the post-stream safety net does not read them again. Per
59
+ * turn by design: an earlier turn's path is absent until this turn checks
60
+ * it, so a file rewritten outside a write tool is still caught.
61
+ */
38
62
  private readonly published;
39
63
  constructor(opts: {
40
64
  workspaceBackend: WorkspaceBackend;
41
65
  artifactStorage: ArtifactStorage | undefined;
42
66
  artifacts: ArtifactSink;
67
+ record: ArtifactRecord;
43
68
  executionId: string;
44
69
  });
45
- /** Set of sandbox paths that have been published (for auto-publish dedup). */
70
+ /** Set of sandbox paths brought up to date this turn (for auto-publish dedup). */
46
71
  get publishedPaths(): ReadonlySet<string>;
47
72
  /**
48
73
  * Upload the file at `path` to artifact storage and register it on the
49
74
  * status builder. Fire-and-forget: errors are logged and swallowed.
75
+ *
76
+ * The artifact's `createdAt` is read here, before the first await: the
77
+ * stream asks for the publish in the step that folds the write's finish, so
78
+ * the stamp is the write's, never the moment a slow upload returned.
50
79
  */
51
80
  publish(path: string): Promise<void>;
81
+ /** Whether the status already lists these exact bytes at this path. */
82
+ private isRecorded;
52
83
  }
@@ -8,6 +8,15 @@
8
8
  * Designed as a fire-and-forget callback: exceptions are logged and
9
9
  * swallowed so the streaming loop is never interrupted.
10
10
  *
11
+ * A file is uploaded only when its bytes differ from the row the execution's
12
+ * status already lists for its path. The status is the one home of that fact:
13
+ * the builder writes every row into it, and a reinvocation's seed carries the
14
+ * earlier turns' rows onto it before this publisher exists. So a completed
15
+ * turn after a gate, whose safety net walks the seeded history again, re-reads
16
+ * each earlier file but uploads none that did not change (stigmer/stigmer#1448).
17
+ * The re-read is kept on purpose: a shell command may have rewritten an earlier
18
+ * turn's file, and only its bytes can say so.
19
+ *
11
20
  * DD-7: No skill-aware directory publishing. Individual files only.
12
21
  */
13
22
  import { createHash } from "node:crypto";
@@ -27,24 +36,36 @@ export class InlinePublisher {
27
36
  */
28
37
  artifactStorage;
29
38
  artifacts;
39
+ record;
30
40
  executionId;
31
- /** Tracks (sandboxPath -> contentHash) for deduplication. */
32
- published = new Map();
41
+ /**
42
+ * Paths this publisher brought up to date in this turn, uploaded or found
43
+ * unchanged, so the post-stream safety net does not read them again. Per
44
+ * turn by design: an earlier turn's path is absent until this turn checks
45
+ * it, so a file rewritten outside a write tool is still caught.
46
+ */
47
+ published = new Set();
33
48
  constructor(opts) {
34
49
  this.workspaceBackend = opts.workspaceBackend;
35
50
  this.artifactStorage = opts.artifactStorage;
36
51
  this.artifacts = opts.artifacts;
52
+ this.record = opts.record;
37
53
  this.executionId = opts.executionId;
38
54
  }
39
- /** Set of sandbox paths that have been published (for auto-publish dedup). */
55
+ /** Set of sandbox paths brought up to date this turn (for auto-publish dedup). */
40
56
  get publishedPaths() {
41
- return new Set(this.published.keys());
57
+ return new Set(this.published);
42
58
  }
43
59
  /**
44
60
  * Upload the file at `path` to artifact storage and register it on the
45
61
  * status builder. Fire-and-forget: errors are logged and swallowed.
62
+ *
63
+ * The artifact's `createdAt` is read here, before the first await: the
64
+ * stream asks for the publish in the step that folds the write's finish, so
65
+ * the stamp is the write's, never the moment a slow upload returned.
46
66
  */
47
67
  async publish(path) {
68
+ const createdAt = utcTimestamp();
48
69
  // No artifact store (proxy misconfig): nothing to upload to. Skip silently —
49
70
  // this is a best-effort UI publisher and the operator was warned at setup.
50
71
  if (!this.artifactStorage)
@@ -66,7 +87,8 @@ export class InlinePublisher {
66
87
  const content = await this.workspaceBackend.readFile(sandboxPath);
67
88
  const contentBuffer = Buffer.from(content, "utf-8");
68
89
  const contentHash = sha256(contentBuffer);
69
- if (this.published.get(sandboxPath) === contentHash) {
90
+ if (this.isRecorded(sandboxPath, contentHash)) {
91
+ this.published.add(sandboxPath);
70
92
  return;
71
93
  }
72
94
  const fileName = basename(sandboxPath);
@@ -78,11 +100,11 @@ export class InlinePublisher {
78
100
  kind: ExecutionArtifactKind.FILE,
79
101
  sizeBytes: BigInt(contentBuffer.length),
80
102
  storageKey,
81
- createdAt: utcTimestamp(),
103
+ createdAt,
82
104
  contentHash,
83
105
  });
84
106
  this.artifacts.addArtifact(artifact);
85
- this.published.set(sandboxPath, contentHash);
107
+ this.published.add(sandboxPath);
86
108
  console.log(`[InlinePublisher] execution=${this.executionId} — published '${sandboxPath}' ` +
87
109
  `(${contentBuffer.length} bytes, hash=${contentHash.slice(0, 12)})`);
88
110
  }
@@ -91,6 +113,10 @@ export class InlinePublisher {
91
113
  `failed to publish '${path}' (non-fatal): ${err}`);
92
114
  }
93
115
  }
116
+ /** Whether the status already lists these exact bytes at this path. */
117
+ isRecorded(sandboxPath, contentHash) {
118
+ return this.record.artifacts.some((a) => a.sandboxPath === sandboxPath && a.contentHash === contentHash);
119
+ }
94
120
  }
95
121
  function normalizePath(path) {
96
122
  return path.replace(/^\/+/, "");
@@ -1 +1 @@
1
- {"version":3,"file":"inline-publisher.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/inline-publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inline-publisher.js","sourceRoot":"","sources":["../../../src/activities/execute-deep-agent/inline-publisher.ts"],"names":[],"mappings":"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"}
@@ -30,14 +30,23 @@
30
30
  *
31
31
  * WHEN IT IS MOUNTED
32
32
  * ------------------
33
- * On the turns where the workspace link points at the platform dir — the
34
- * turns whose skill or attachment phase made it — so what the agent can
35
- * reach is exactly what the link exposes to the shell on the same turn.
33
+ * On every turn: `.stigmer/` is the platform's name whether or not the turn
34
+ * mounted anything, so a write there never reaches the workspace. Before
35
+ * #1123 the route existed only on linked turns, and a write under `.stigmer/`
36
+ * on any other turn made a real directory in the user's tree that the next
37
+ * link displaced. What the route exposes follows the link, so the file tools
38
+ * reach exactly what the shell reaches on the same turn:
39
+ * - on a turn whose skill or attachment phase made the link, the platform dir
40
+ * ({@link PlatformContentBackend});
41
+ * - on any other turn, nothing ({@link NoPlatformContentBackend}): the dir
42
+ * still holds earlier turns' skills and inputs, which this turn's shell
43
+ * cannot reach, so the file tools must not either. The root listing then
44
+ * leaves `.stigmer/` out, as the tree does.
36
45
  * The link itself stays: shell commands (a skill's own scripts among them)
37
46
  * run in the workspace and resolve `.stigmer/…` through it.
38
47
  */
39
48
  import { CompositeBackend, FilesystemBackend } from "deepagents";
40
- import type { AnyBackendProtocol, DeleteResult, EditResult, FileUploadResponse, LsResult, WriteResult } from "deepagents";
49
+ import type { AnyBackendProtocol, BackendProtocolV2, DeleteResult, EditResult, FileDownloadResponse, FileUploadResponse, GlobResult, GrepResult, LsResult, ReadRawResult, ReadResult, WriteResult } from "deepagents";
41
50
  /** The route prefix, with the trailing slash `CompositeBackend` needs to match `/.stigmer/x` but never `/.stigmerx`. */
42
51
  export declare const PLATFORM_ROUTE_PREFIX = "/.stigmer/";
43
52
  /** The platform dir, virtual-rooted like every native backend, refusing every mutation. */
@@ -49,14 +58,39 @@ export declare class PlatformContentBackend extends FilesystemBackend {
49
58
  uploadFiles(files: Array<[string, Uint8Array]>): Promise<FileUploadResponse[]>;
50
59
  }
51
60
  /**
52
- * The workspace backend with the platform mounted at {@link PLATFORM_ROUTE_PREFIX}.
61
+ * The `.stigmer/` route on a turn that exposes no platform content: nothing
62
+ * to read, list or find, and every mutation refused with the same message
63
+ * the platform dir's route gives. It stands on no filesystem, so it cannot
64
+ * create or reveal anything, and `ls` answers "does not exist" rather than
65
+ * an empty listing because the root listing leaves `.stigmer/` out.
66
+ */
67
+ export declare class NoPlatformContentBackend implements BackendProtocolV2 {
68
+ ls(path: string): LsResult;
69
+ read(filePath: string): ReadResult;
70
+ readRaw(filePath: string): ReadRawResult;
71
+ grep(): GrepResult;
72
+ glob(): GlobResult;
73
+ write(filePath: string): WriteResult;
74
+ edit(filePath: string): EditResult;
75
+ delete(filePath: string): DeleteResult;
76
+ uploadFiles(files: Array<[string, Uint8Array]>): FileUploadResponse[];
77
+ downloadFiles(paths: string[]): FileDownloadResponse[];
78
+ }
79
+ /**
80
+ * The workspace backend with `.stigmer/` routed to {@link PLATFORM_ROUTE_PREFIX}'s
81
+ * backend for this turn.
53
82
  *
54
83
  * One behaviour differs from the stock router: listing `/`. The composite
55
- * adds each route to the root listing, and the workspace backend already
56
- * lists `.stigmer/` by following the link, so the stock listing names the
57
- * same directory twice; the root listing is de-duplicated by path.
84
+ * adds each route to the root listing whatever the route holds. With the
85
+ * platform exposed, the workspace backend also lists `.stigmer/` by following
86
+ * the link, so the stock listing names the same directory twice and is
87
+ * de-duplicated by path. With nothing exposed, `.stigmer/` is left out of the
88
+ * root listing altogether: the route has nothing to show, and a real
89
+ * `.stigmer` the workspace may hold is unreachable behind it.
58
90
  */
59
91
  export declare class PlatformRoutedBackend extends CompositeBackend {
92
+ private readonly exposesPlatform;
93
+ constructor(backend: AnyBackendProtocol, platform: PlatformContentBackend | NoPlatformContentBackend);
60
94
  ls(path: string): Promise<LsResult>;
61
95
  }
62
96
  export interface PlatformRouteOptions {
@@ -66,10 +100,11 @@ export interface PlatformRouteOptions {
66
100
  readonly platformDir: string | undefined;
67
101
  }
68
102
  /**
69
- * Mount the platform route over `backend` when this turn exposes platform
70
- * content; otherwise hand `backend` back unchanged. `execute` and the
71
- * sandbox identity stay the workspace backend's (`CompositeBackend` delegates
72
- * both to its default), so a shell-capable graph keeps its `execute` tool and
73
- * a plan-mode graph stays without one.
103
+ * Mount the `.stigmer/` route over `backend` for this turn: the platform dir
104
+ * when the workspace link points at it, the empty route otherwise. Only a
105
+ * session without a platform dir gets `backend` back unchanged. `execute`
106
+ * and the sandbox identity stay the workspace backend's (`CompositeBackend`
107
+ * delegates both to its default), so a shell-capable graph keeps its
108
+ * `execute` tool and a plan-mode graph stays without one.
74
109
  */
75
110
  export declare function mountPlatformRoute(backend: AnyBackendProtocol, options: PlatformRouteOptions): Promise<AnyBackendProtocol>;