pi-subagents 0.74.0 → 0.76.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 (237) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/docs/agents.md +15 -5
  3. package/docs/configuration.md +14 -2
  4. package/docs/extension-api.md +2 -2
  5. package/docs/missions.md +27 -3
  6. package/docs/models.md +6 -2
  7. package/docs/observability.md +8 -3
  8. package/docs/tool-reference.md +48 -8
  9. package/docs/workflows.md +3 -3
  10. package/package.json +2 -1
  11. package/src/agents/agent-memory.js +3 -3
  12. package/src/agents/agent-memory.js.map +1 -1
  13. package/src/agents/agent-serializer.d.ts.map +1 -1
  14. package/src/agents/agent-serializer.js +8 -1
  15. package/src/agents/agent-serializer.js.map +1 -1
  16. package/src/agents/agents.d.ts +1 -0
  17. package/src/agents/agents.d.ts.map +1 -1
  18. package/src/agents/agents.js +137 -95
  19. package/src/agents/agents.js.map +1 -1
  20. package/src/api/preflight.d.ts +1 -1
  21. package/src/api/preflight.d.ts.map +1 -1
  22. package/src/api/preflight.js +44 -1
  23. package/src/api/preflight.js.map +1 -1
  24. package/src/extension/config.d.ts.map +1 -1
  25. package/src/extension/config.js +4 -1
  26. package/src/extension/config.js.map +1 -1
  27. package/src/extension/index.d.ts.map +1 -1
  28. package/src/extension/index.js +62 -22
  29. package/src/extension/index.js.map +1 -1
  30. package/src/extension/public-execution.d.ts.map +1 -1
  31. package/src/extension/public-execution.js +4 -0
  32. package/src/extension/public-execution.js.map +1 -1
  33. package/src/extension/reply-workflow-script.d.ts.map +1 -1
  34. package/src/extension/reply-workflow-script.js +21 -12
  35. package/src/extension/reply-workflow-script.js.map +1 -1
  36. package/src/extension/rpc.js +1 -1
  37. package/src/extension/rpc.js.map +1 -1
  38. package/src/extension/schemas.d.ts +2 -1
  39. package/src/extension/schemas.d.ts.map +1 -1
  40. package/src/extension/schemas.js +13 -11
  41. package/src/extension/schemas.js.map +1 -1
  42. package/src/extension/tool-description.js +2 -2
  43. package/src/extension/tool-description.js.map +1 -1
  44. package/src/intercom/result-intercom.d.ts.map +1 -1
  45. package/src/intercom/result-intercom.js +2 -1
  46. package/src/intercom/result-intercom.js.map +1 -1
  47. package/src/missions/goal-driver.d.ts +1 -0
  48. package/src/missions/goal-driver.d.ts.map +1 -1
  49. package/src/missions/goal-driver.js +49 -34
  50. package/src/missions/goal-driver.js.map +1 -1
  51. package/src/missions/store.d.ts.map +1 -1
  52. package/src/missions/store.js +11 -1
  53. package/src/missions/store.js.map +1 -1
  54. package/src/profiles/profiles.d.ts +1 -1
  55. package/src/profiles/profiles.d.ts.map +1 -1
  56. package/src/profiles/profiles.js +29 -22
  57. package/src/profiles/profiles.js.map +1 -1
  58. package/src/runs/background/active-async-capacity.d.ts +15 -1
  59. package/src/runs/background/active-async-capacity.d.ts.map +1 -1
  60. package/src/runs/background/active-async-capacity.js +51 -6
  61. package/src/runs/background/active-async-capacity.js.map +1 -1
  62. package/src/runs/background/async-execution.d.ts +13 -0
  63. package/src/runs/background/async-execution.d.ts.map +1 -1
  64. package/src/runs/background/async-execution.js +89 -6
  65. package/src/runs/background/async-execution.js.map +1 -1
  66. package/src/runs/background/async-job-tracker.d.ts +4 -2
  67. package/src/runs/background/async-job-tracker.d.ts.map +1 -1
  68. package/src/runs/background/async-job-tracker.js +4 -3
  69. package/src/runs/background/async-job-tracker.js.map +1 -1
  70. package/src/runs/background/await-async-run.d.ts.map +1 -1
  71. package/src/runs/background/await-async-run.js +4 -2
  72. package/src/runs/background/await-async-run.js.map +1 -1
  73. package/src/runs/background/calendar-schedule.d.ts +27 -0
  74. package/src/runs/background/calendar-schedule.d.ts.map +1 -0
  75. package/src/runs/background/calendar-schedule.js +94 -0
  76. package/src/runs/background/calendar-schedule.js.map +1 -0
  77. package/src/runs/background/control-channel.d.ts +10 -0
  78. package/src/runs/background/control-channel.d.ts.map +1 -1
  79. package/src/runs/background/control-channel.js +51 -0
  80. package/src/runs/background/control-channel.js.map +1 -1
  81. package/src/runs/background/notify.d.ts +6 -0
  82. package/src/runs/background/notify.d.ts.map +1 -1
  83. package/src/runs/background/notify.js +24 -4
  84. package/src/runs/background/notify.js.map +1 -1
  85. package/src/runs/background/result-watcher.d.ts +5 -1
  86. package/src/runs/background/result-watcher.d.ts.map +1 -1
  87. package/src/runs/background/result-watcher.js +44 -7
  88. package/src/runs/background/result-watcher.js.map +1 -1
  89. package/src/runs/background/run-child-session.d.ts +2 -0
  90. package/src/runs/background/run-child-session.d.ts.map +1 -1
  91. package/src/runs/background/run-child-session.js +32 -7
  92. package/src/runs/background/run-child-session.js.map +1 -1
  93. package/src/runs/background/runner-aliases.d.ts +1 -0
  94. package/src/runs/background/runner-aliases.d.ts.map +1 -1
  95. package/src/runs/background/runner-aliases.js +6 -2
  96. package/src/runs/background/runner-aliases.js.map +1 -1
  97. package/src/runs/background/scheduled-runs.d.ts +5 -2
  98. package/src/runs/background/scheduled-runs.d.ts.map +1 -1
  99. package/src/runs/background/scheduled-runs.js +210 -56
  100. package/src/runs/background/scheduled-runs.js.map +1 -1
  101. package/src/runs/background/stale-run-reconciler.d.ts +1 -1
  102. package/src/runs/background/stale-run-reconciler.d.ts.map +1 -1
  103. package/src/runs/background/stale-run-reconciler.js +15 -2
  104. package/src/runs/background/stale-run-reconciler.js.map +1 -1
  105. package/src/runs/background/subagent-runner.d.ts +1 -0
  106. package/src/runs/background/subagent-runner.d.ts.map +1 -1
  107. package/src/runs/background/subagent-runner.js +58 -9
  108. package/src/runs/background/subagent-runner.js.map +1 -1
  109. package/src/runs/background/wait-completions.d.ts.map +1 -1
  110. package/src/runs/background/wait-completions.js +1 -0
  111. package/src/runs/background/wait-completions.js.map +1 -1
  112. package/src/runs/background/workflow-terminal-proof.d.ts +14 -1
  113. package/src/runs/background/workflow-terminal-proof.d.ts.map +1 -1
  114. package/src/runs/background/workflow-terminal-proof.js +41 -28
  115. package/src/runs/background/workflow-terminal-proof.js.map +1 -1
  116. package/src/runs/foreground/command-action.d.ts +13 -0
  117. package/src/runs/foreground/command-action.d.ts.map +1 -0
  118. package/src/runs/foreground/command-action.js +38 -0
  119. package/src/runs/foreground/command-action.js.map +1 -0
  120. package/src/runs/foreground/execution.d.ts.map +1 -1
  121. package/src/runs/foreground/execution.js +42 -8
  122. package/src/runs/foreground/execution.js.map +1 -1
  123. package/src/runs/foreground/foreground-history.d.ts.map +1 -1
  124. package/src/runs/foreground/foreground-history.js +1 -0
  125. package/src/runs/foreground/foreground-history.js.map +1 -1
  126. package/src/runs/foreground/subagent-executor.d.ts +2 -1
  127. package/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  128. package/src/runs/foreground/subagent-executor.js +108 -17
  129. package/src/runs/foreground/subagent-executor.js.map +1 -1
  130. package/src/runs/shared/child-commands.d.ts +28 -0
  131. package/src/runs/shared/child-commands.d.ts.map +1 -0
  132. package/src/runs/shared/child-commands.js +250 -0
  133. package/src/runs/shared/child-commands.js.map +1 -0
  134. package/src/runs/shared/child-session.d.ts +4 -0
  135. package/src/runs/shared/child-session.d.ts.map +1 -1
  136. package/src/runs/shared/child-session.js +107 -22
  137. package/src/runs/shared/child-session.js.map +1 -1
  138. package/src/runs/shared/child-tool-plan.js +1 -1
  139. package/src/runs/shared/child-tool-plan.js.map +1 -1
  140. package/src/runs/shared/claude-code-adapter.d.ts +56 -0
  141. package/src/runs/shared/claude-code-adapter.d.ts.map +1 -1
  142. package/src/runs/shared/claude-code-adapter.js +138 -2
  143. package/src/runs/shared/claude-code-adapter.js.map +1 -1
  144. package/src/runs/shared/dynamic-fanout.js +1 -1
  145. package/src/runs/shared/dynamic-fanout.js.map +1 -1
  146. package/src/runs/shared/external-cli-preflight.d.ts +10 -0
  147. package/src/runs/shared/external-cli-preflight.d.ts.map +1 -1
  148. package/src/runs/shared/external-cli-preflight.js +50 -6
  149. package/src/runs/shared/external-cli-preflight.js.map +1 -1
  150. package/src/runs/shared/external-cli-runner.d.ts.map +1 -1
  151. package/src/runs/shared/external-cli-runner.js +4 -2
  152. package/src/runs/shared/external-cli-runner.js.map +1 -1
  153. package/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -1
  154. package/src/runs/shared/mcp-direct-tool-allowlist.js +8 -5
  155. package/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -1
  156. package/src/runs/shared/model-resolution.d.ts +6 -2
  157. package/src/runs/shared/model-resolution.d.ts.map +1 -1
  158. package/src/runs/shared/model-resolution.js +9 -2
  159. package/src/runs/shared/model-resolution.js.map +1 -1
  160. package/src/runs/shared/parallel-handoff.d.ts +10 -4
  161. package/src/runs/shared/parallel-handoff.d.ts.map +1 -1
  162. package/src/runs/shared/parallel-handoff.js +53 -6
  163. package/src/runs/shared/parallel-handoff.js.map +1 -1
  164. package/src/runs/shared/parallel-utils.d.ts +2 -0
  165. package/src/runs/shared/parallel-utils.d.ts.map +1 -1
  166. package/src/runs/shared/parallel-utils.js.map +1 -1
  167. package/src/runs/shared/partial-output.d.ts +18 -0
  168. package/src/runs/shared/partial-output.d.ts.map +1 -0
  169. package/src/runs/shared/partial-output.js +29 -0
  170. package/src/runs/shared/partial-output.js.map +1 -0
  171. package/src/runs/shared/run-history.d.ts +47 -0
  172. package/src/runs/shared/run-history.d.ts.map +1 -1
  173. package/src/runs/shared/run-history.js +70 -0
  174. package/src/runs/shared/run-history.js.map +1 -1
  175. package/src/runs/shared/subagent-control.d.ts.map +1 -1
  176. package/src/runs/shared/subagent-control.js +30 -17
  177. package/src/runs/shared/subagent-control.js.map +1 -1
  178. package/src/runs/shared/subagent-prompt-runtime.d.ts +1 -0
  179. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  180. package/src/runs/shared/subagent-prompt-runtime.js +12 -5
  181. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  182. package/src/runs/shared/worktree-cleanup-apply.d.ts +37 -0
  183. package/src/runs/shared/worktree-cleanup-apply.d.ts.map +1 -0
  184. package/src/runs/shared/worktree-cleanup-apply.js +179 -0
  185. package/src/runs/shared/worktree-cleanup-apply.js.map +1 -0
  186. package/src/runs/shared/worktree-cleanup-plan.d.ts +7 -0
  187. package/src/runs/shared/worktree-cleanup-plan.d.ts.map +1 -1
  188. package/src/runs/shared/worktree-cleanup-plan.js +41 -19
  189. package/src/runs/shared/worktree-cleanup-plan.js.map +1 -1
  190. package/src/runs/shared/worktree-lock.d.ts +6 -0
  191. package/src/runs/shared/worktree-lock.d.ts.map +1 -0
  192. package/src/runs/shared/worktree-lock.js +41 -0
  193. package/src/runs/shared/worktree-lock.js.map +1 -0
  194. package/src/runs/shared/worktree.d.ts +3 -0
  195. package/src/runs/shared/worktree.d.ts.map +1 -1
  196. package/src/runs/shared/worktree.js +9 -1
  197. package/src/runs/shared/worktree.js.map +1 -1
  198. package/src/shared/file-lease.d.ts +5 -0
  199. package/src/shared/file-lease.d.ts.map +1 -0
  200. package/src/shared/file-lease.js +101 -0
  201. package/src/shared/file-lease.js.map +1 -0
  202. package/src/shared/required-child-extensions.d.ts +16 -1
  203. package/src/shared/required-child-extensions.d.ts.map +1 -1
  204. package/src/shared/required-child-extensions.js +37 -5
  205. package/src/shared/required-child-extensions.js.map +1 -1
  206. package/src/shared/settings-file-lease.d.ts +5 -0
  207. package/src/shared/settings-file-lease.d.ts.map +1 -0
  208. package/src/shared/settings-file-lease.js +39 -0
  209. package/src/shared/settings-file-lease.js.map +1 -0
  210. package/src/shared/types.d.ts +16 -1
  211. package/src/shared/types.d.ts.map +1 -1
  212. package/src/shared/types.js +1 -1
  213. package/src/shared/types.js.map +1 -1
  214. package/src/slash/subagent-cost.d.ts.map +1 -1
  215. package/src/slash/subagent-cost.js +8 -4
  216. package/src/slash/subagent-cost.js.map +1 -1
  217. package/src/tui/render.d.ts +1 -1
  218. package/src/tui/render.d.ts.map +1 -1
  219. package/src/tui/render.js +11 -6
  220. package/src/tui/render.js.map +1 -1
  221. package/src/watchdog/diff-tool.js +2 -2
  222. package/src/watchdog/diff-tool.js.map +1 -1
  223. package/src/watchdog/register-main.js +1 -2
  224. package/src/watchdog/register-main.js.map +1 -1
  225. package/src/watchdog/runtime.d.ts +3 -3
  226. package/src/watchdog/runtime.d.ts.map +1 -1
  227. package/src/watchdog/runtime.js +7 -3
  228. package/src/watchdog/runtime.js.map +1 -1
  229. package/src/watchdog/settings.d.ts.map +1 -1
  230. package/src/watchdog/settings.js +22 -17
  231. package/src/watchdog/settings.js.map +1 -1
  232. package/src/workflows/workflow-receipt.js +2 -2
  233. package/src/workflows/workflow-receipt.js.map +1 -1
  234. package/src/workflows/workflow-resources.d.ts +4 -0
  235. package/src/workflows/workflow-resources.d.ts.map +1 -1
  236. package/src/workflows/workflow-resources.js +7 -4
  237. package/src/workflows/workflow-resources.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"wait-completions.d.ts","sourceRoot":"","sources":["../../../../src/runs/background/wait-completions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAS,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AACtH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiEzD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAwD7F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAyBT;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,cAAc,EAAE,GAAG,SAAS,CA2EhL"}
1
+ {"version":3,"file":"wait-completions.d.ts","sourceRoot":"","sources":["../../../../src/runs/background/wait-completions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,aAAa,EAAS,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AACtH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiEzD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAyD7F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACrD,OAAO,CAyBT;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,cAAc,EAAE,GAAG,SAAS,CA2EhL"}
@@ -103,6 +103,7 @@ export function toWaitCompletion(data, runId) {
103
103
  ...(sessionFile ? { sessionFile } : {}),
104
104
  ...(typeof child.success === "boolean" ? { success: child.success } : {}),
105
105
  ...(outputState ? { outputState } : {}),
106
+ ...(child.outputPartial === true ? { outputPartial: true } : {}),
106
107
  ...(structuredOutput !== undefined ? { structuredOutput } : {}),
107
108
  ...(structuredOutputPath ? { structuredOutputPath } : {}),
108
109
  ...(error ? { error } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"wait-completions.js","sourceRoot":"","sources":["../../../../src/runs/background/wait-completions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wait-completions.js","sourceRoot":"","sources":["../../../../src/runs/background/wait-completions.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,25 @@ export type WorkflowChildProcessEvidence = {
7
7
  state: "pending" | "unknown";
8
8
  reason: string;
9
9
  };
10
+ /** `unresolvedProof` is set only when a terminal child's status matches its roster run id and runner identity, and just its process proof is missing. */
11
+ export type WorkflowChildEvidence = {
12
+ state: "resolved";
13
+ proof: ProcessTerminal;
14
+ } | {
15
+ state: "pending" | "unknown";
16
+ reason: string;
17
+ unresolvedProof?: {
18
+ status: AsyncStatus;
19
+ proofState: string;
20
+ };
21
+ };
10
22
  /**
11
23
  * Process evidence for a workflow's async children. Status proofs and capacity
12
24
  * release both use this so they cannot disagree about the same workflow.
13
- * Synchronous children run inside the workflow host and have no process of their own.
14
25
  */
15
26
  export declare function readWorkflowChildProcessEvidence(workflowAsyncDir: string, steps: AsyncStatus["steps"]): WorkflowChildProcessEvidence;
27
+ /** Evidence for one roster entry; undefined for synchronous children, which run inside the workflow host and have no process of their own. */
28
+ export declare function readWorkflowChildEvidence(workflowAsyncDir: string, step: NonNullable<AsyncStatus["steps"]>[number]): WorkflowChildEvidence | undefined;
16
29
  /** A persistent workflow host is terminal only after dispatch closes and every async child has process evidence. */
17
30
  export declare function readWorkflowTerminalProof(asyncDir: string, steps: AsyncStatus["steps"], summary: WorkflowChildSummary, hostCommandCount: number, closedAt: number): WorkflowTerminalProof;
18
31
  //# sourceMappingURL=workflow-terminal-proof.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-terminal-proof.d.ts","sourceRoot":"","sources":["../../../../src/runs/background/workflow-terminal-proof.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMvH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAEzE;AAED,MAAM,MAAM,4BAA4B,GACrC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAClD;IAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,4BAA4B,CA2BpI;AAMD,oHAAoH;AACpH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAYzL"}
1
+ {"version":3,"file":"workflow-terminal-proof.d.ts","sourceRoot":"","sources":["../../../../src/runs/background/workflow-terminal-proof.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAMvH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAEzE;AAED,MAAM,MAAM,4BAA4B,GACrC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,eAAe,EAAE,CAAA;CAAE,GAClD;IAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,yJAAyJ;AACzJ,MAAM,MAAM,qBAAqB,GAC9B;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,eAAe,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEnH;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,4BAA4B,CAUpI;AAED,8IAA8I;AAC9I,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,qBAAqB,GAAG,SAAS,CA2BtJ;AAMD,oHAAoH;AACpH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAYzL"}
@@ -9,44 +9,57 @@ export function isTerminalAsyncState(state) {
9
9
  /**
10
10
  * Process evidence for a workflow's async children. Status proofs and capacity
11
11
  * release both use this so they cannot disagree about the same workflow.
12
- * Synchronous children run inside the workflow host and have no process of their own.
13
12
  */
14
13
  export function readWorkflowChildProcessEvidence(workflowAsyncDir, steps) {
15
14
  if (!steps)
16
15
  return { state: "unknown", reason: "workflow child roster is missing" };
17
16
  const children = [];
18
17
  for (const step of steps) {
19
- const label = step.workflowKey ?? step.agent;
20
- if (typeof step.async !== "boolean")
21
- return { state: "unknown", reason: `workflow child ${label} is missing async classification` };
22
- if (!step.async)
18
+ const child = readWorkflowChildEvidence(workflowAsyncDir, step);
19
+ if (!child)
23
20
  continue;
24
- if (!step.runId || path.basename(step.runId) !== step.runId)
25
- return { state: "unknown", reason: `async workflow child ${label} is missing run id` };
26
- const childDir = path.join(path.dirname(workflowAsyncDir), step.runId);
27
- if (!fs.existsSync(childDir))
28
- return { state: "unknown", reason: `async workflow child ${label} directory is missing` };
29
- const childStatus = readStatus(childDir);
30
- if (!childStatus)
31
- return { state: "unknown", reason: `async workflow child ${label} status is missing or unreadable` };
32
- if (!isTerminalAsyncState(childStatus.state))
33
- return { state: "pending", reason: `async workflow child ${label} is still ${childStatus.state}` };
34
- const recorded = childStatus.processTerminal;
35
- if (!recorded?.runnerProcessInstanceId)
36
- return { state: "unknown", reason: `async workflow child ${label} has no runner process identity` };
37
- // A runner startup failure records `not-started` in status and never writes a process-terminal sidecar.
38
- if (recorded.state === "not-started" && recorded.runId === step.runId && typeof childStatus.error === "string" && childStatus.error) {
39
- children.push(recorded);
40
- continue;
41
- }
42
- const proof = readProcessTerminal(childDir, { runId: step.runId, runnerProcessInstanceId: recorded.runnerProcessInstanceId });
43
- if (proof?.state !== "observed" || proof.runId !== step.runId) {
44
- return { state: !proof || proof.state === "pending" ? "pending" : "unknown", reason: `async workflow child ${label} process-terminal proof is ${proof?.state ?? "missing"}` };
45
- }
46
- children.push(proof);
21
+ if (child.state !== "resolved")
22
+ return { state: child.state, reason: child.reason };
23
+ children.push(child.proof);
47
24
  }
48
25
  return { state: "observed", children };
49
26
  }
27
+ /** Evidence for one roster entry; undefined for synchronous children, which run inside the workflow host and have no process of their own. */
28
+ export function readWorkflowChildEvidence(workflowAsyncDir, step) {
29
+ const label = step.workflowKey ?? step.agent;
30
+ if (typeof step.async !== "boolean")
31
+ return { state: "unknown", reason: `workflow child ${label} is missing async classification` };
32
+ if (!step.async)
33
+ return undefined;
34
+ if (!step.runId || path.basename(step.runId) !== step.runId)
35
+ return { state: "unknown", reason: `async workflow child ${label} is missing run id` };
36
+ const childDir = path.join(path.dirname(workflowAsyncDir), step.runId);
37
+ if (!fs.existsSync(childDir))
38
+ return { state: "unknown", reason: `async workflow child ${label} directory is missing` };
39
+ const childStatus = readStatus(childDir);
40
+ if (!childStatus)
41
+ return { state: "unknown", reason: `async workflow child ${label} status is missing or unreadable` };
42
+ if (!isTerminalAsyncState(childStatus.state))
43
+ return { state: "pending", reason: `async workflow child ${label} is still ${childStatus.state}` };
44
+ const recorded = childStatus.processTerminal;
45
+ if (!recorded?.runnerProcessInstanceId)
46
+ return { state: "unknown", reason: `async workflow child ${label} has no runner process identity` };
47
+ // A runner startup failure records `not-started` in status and never writes a process-terminal sidecar.
48
+ if (recorded.state === "not-started" && recorded.runId === step.runId && typeof childStatus.error === "string" && childStatus.error) {
49
+ return { state: "resolved", proof: recorded };
50
+ }
51
+ const proof = readProcessTerminal(childDir, { runId: step.runId, runnerProcessInstanceId: recorded.runnerProcessInstanceId });
52
+ if (proof?.state !== "observed" || proof.runId !== step.runId) {
53
+ const proofState = proof?.state ?? "missing";
54
+ const bound = childStatus.runId === step.runId && typeof recorded.runnerProcessInstanceId === "string";
55
+ return {
56
+ state: !proof || proof.state === "pending" ? "pending" : "unknown",
57
+ reason: `async workflow child ${label} process-terminal proof is ${proofState}`,
58
+ ...(bound ? { unresolvedProof: { status: childStatus, proofState } } : {}),
59
+ };
60
+ }
61
+ return { state: "resolved", proof };
62
+ }
50
63
  function unresolved(runId, state, dispatchClosed, reason) {
51
64
  return { version: 1, kind: "workflow", runId, state, dispatchClosed, reason };
52
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-terminal-proof.js","sourceRoot":"","sources":["../../../../src/runs/background/workflow-terminal-proof.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-terminal-proof.js","sourceRoot":"","sources":["../../../../src/runs/background/workflow-terminal-proof.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { AgentToolResult } from "@earendil-works/pi-agent-core";
2
+ import type { Details, SubagentState } from "../../shared/types.ts";
3
+ import type { ResolvedSubagentRunId } from "../background/run-id-resolver.ts";
4
+ import { type CommandOperation } from "../shared/child-commands.ts";
5
+ export declare function commandAction(input: {
6
+ state: SubagentState;
7
+ target: ResolvedSubagentRunId;
8
+ operation: CommandOperation;
9
+ index?: number;
10
+ toolCallId?: string;
11
+ signal?: AbortSignal;
12
+ }): Promise<AgentToolResult<Details>>;
13
+ //# sourceMappingURL=command-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-action.d.ts","sourceRoot":"","sources":["../../../../src/runs/foreground/command-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAkBzF,wBAAsB,aAAa,CAAC,KAAK,EAAE;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAUpC"}
@@ -0,0 +1,38 @@
1
+ import { readStatus } from "../../shared/utils.js";
2
+ import { supervisorChannelDir } from "../shared/child-tool-plan.js";
3
+ import { controlChildCommand } from "../shared/child-commands.js";
4
+ function commandChildren(state, target) {
5
+ if (!state.currentSessionId)
6
+ throw new Error("Command controls require an owning parent session.");
7
+ if (target.kind === "nested")
8
+ throw new Error("Command controls support direct local Pi children only.");
9
+ if (target.kind === "foreground") {
10
+ const live = state.foregroundControls.get(target.id);
11
+ const retained = state.foregroundRuns?.get(target.id);
12
+ if ((live?.sessionId ?? retained?.sessionId) !== state.currentSessionId)
13
+ throw new Error("Run is not owned by this session.");
14
+ if (live?.activeChildren?.size)
15
+ return [...live.activeChildren.values()].map(({ index, agent }) => ({ index, agent }));
16
+ if (live?.currentAgent)
17
+ return [{ index: live.currentIndex ?? 0, agent: live.currentAgent }];
18
+ return retained?.children.map(({ index, agent }) => ({ index, agent })) ?? [];
19
+ }
20
+ const status = target.location.asyncDir ? readStatus(target.location.asyncDir) : undefined;
21
+ if (status?.sessionId !== state.currentSessionId)
22
+ throw new Error("Run is not owned by this session.");
23
+ return status.steps?.map((step, index) => ({ index, agent: step.agent })) ?? [];
24
+ }
25
+ export async function commandAction(input) {
26
+ const children = commandChildren(input.state, input.target);
27
+ if (input.index === undefined && children.length !== 1)
28
+ throw new Error("Command controls require an explicit child index for multi-child runs.");
29
+ const child = input.index === undefined ? children[0] : children.find(({ index }) => index === input.index);
30
+ if (!child)
31
+ throw new Error(`No child index ${input.index ?? 0} in this run.`);
32
+ const result = await controlChildCommand(supervisorChannelDir(input.target.id, child.agent, child.index), input.operation, input.toolCallId, input.signal);
33
+ return {
34
+ content: [{ type: "text", text: JSON.stringify({ runId: input.target.id, index: child.index, commands: result.commands, closed: result.closed }) }],
35
+ details: { mode: "management", results: [], commands: result.commands },
36
+ };
37
+ }
38
+ //# sourceMappingURL=command-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-action.js","sourceRoot":"","sources":["../../../../src/runs/foreground/command-action.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../src/runs/foreground/execution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAA0E,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAWlI,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,YAAY,EAQjB,MAAM,uBAAuB,CAAC;AA0/D/B;;;GAGG;AACH,wBAAsB,OAAO,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,YAAY,CAAC,CAwHvB"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../src/runs/foreground/execution.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAA0E,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAWlI,OAAO,EAIN,KAAK,cAAc,EACnB,KAAK,YAAY,EAQjB,MAAM,uBAAuB,CAAC;AAshE/B;;;GAGG;AACH,wBAAsB,OAAO,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,YAAY,CAAC,CAwHvB"}
@@ -12,6 +12,7 @@ import { DEFAULT_MAX_OUTPUT, INTERCOM_DETACH_REQUEST_EVENT, INTERCOM_DETACH_RESP
12
12
  import { DEFAULT_CONTROL_CONFIG, buildControlEvent, claimControlNotification, deriveActivityState, shouldEmitOpenToolAttention, shouldNotifyControlEvent, } from "../shared/subagent-control.js";
13
13
  import { getFinalOutput, findLatestSessionFile, detectSubagentError, hasEmptyTerminalAssistantResponse, formatEmptyTerminalAssistantResponseError, extractToolArgsPreview, extractTextFromContent, MAX_STREAMED_RECENT_TOOLS, boundStreamedRecentTools, boundStreamedRecentOutput, boundStreamedToolCalls, } from "../../shared/utils.js";
14
14
  import { resolveSkillsWithFallback } from "../../agents/skills.js";
15
+ import { createPartialOutputTracker, formatPartialOutput } from "../shared/partial-output.js";
15
16
  import { effectiveToolTimeoutMs, formatToolTimeoutMessage, resolveToolTimeoutMs, toolTimeoutCallKey, toolTimeoutFromEnv } from "../shared/tool-timeout.js";
16
17
  import { preflightLaunchCwd } from "../shared/launch-cwd.js";
17
18
  import { createJsonlWriter } from "../../shared/jsonl-writer.js";
@@ -457,6 +458,8 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
457
458
  }
458
459
  }
459
460
  const childSessions = options.childSessionFactory ?? childSessionFactory();
461
+ const partialOutput = createPartialOutputTracker();
462
+ let childPromptFailed = false;
460
463
  const exitCode = await new Promise((resolve) => {
461
464
  const jsonlWriter = createJsonlWriter(shared.jsonlPath, { pause() { }, resume() { } });
462
465
  let session;
@@ -681,7 +684,18 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
681
684
  // JSONL artifact flush is best effort.
682
685
  });
683
686
  // Report the run only after the child's extensions have shut down.
684
- void Promise.resolve().then(() => session?.dispose()).catch(() => undefined).then(() => {
687
+ void Promise.resolve().then(async () => {
688
+ if (code === 0 && !result.interrupted && !result.timedOut && !result.stopped && !abortedBySignal) {
689
+ try {
690
+ await session?.finishCommands?.();
691
+ }
692
+ catch (error) {
693
+ result.error = error instanceof Error ? error.message : String(error);
694
+ code = 1;
695
+ }
696
+ }
697
+ await session?.dispose();
698
+ }).catch(() => undefined).then(() => {
685
699
  resolve(code);
686
700
  });
687
701
  };
@@ -752,7 +766,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
752
766
  return key ? removeActiveToolCallKey(key) : undefined;
753
767
  };
754
768
  const openToolAttentionTarget = (now) => [...activeToolCalls.values()]
755
- .filter((active) => shouldEmitOpenToolAttention({ config: controlConfig, currentTool: active.tool, currentToolStartedAt: active.startedAt, now }))
769
+ .filter((active) => !active.attentionEmitted && shouldEmitOpenToolAttention({ config: controlConfig, currentTool: active.tool, currentToolStartedAt: active.startedAt, now }))
756
770
  .sort((left, right) => left.startedAt - right.startedAt)[0];
757
771
  const mutatingFailures = createMutatingFailureState();
758
772
  const mutatingFailureWindowMs = 5 * 60_000;
@@ -777,13 +791,14 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
777
791
  tokens: progress.tokens,
778
792
  toolCount: progress.toolCount,
779
793
  currentTool: input.currentTool ?? progress.currentTool,
794
+ toolCallId: input.toolCallId,
780
795
  currentToolDurationMs: input.currentToolDurationMs ?? currentToolDurationMs(now),
781
796
  currentPath: input.currentPath ?? progress.currentPath,
782
797
  recentFailureSummary: input.recentFailureSummary,
783
798
  taskPreview: task,
784
799
  });
785
800
  emitControlEvent(event);
786
- return previous !== "needs_attention";
801
+ return previous !== "needs_attention" || input.reason === "tool_open_threshold";
787
802
  };
788
803
  const emitActiveLongRunning = (now, reason) => {
789
804
  if (!controlConfig.enabled || activeLongRunningNotified || progress.activityState === "needs_attention")
@@ -827,13 +842,15 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
827
842
  if (idleState === "needs_attention") {
828
843
  return progress.activityState === "needs_attention" ? false : emitNeedsAttention(now);
829
844
  }
830
- const toolAttentionTarget = progress.activityState !== "needs_attention" ? openToolAttentionTarget(now) : undefined;
845
+ const toolAttentionTarget = openToolAttentionTarget(now);
831
846
  if (toolAttentionTarget) {
847
+ toolAttentionTarget.attentionEmitted = true;
832
848
  const durationMs = Math.max(0, now - toolAttentionTarget.startedAt);
833
849
  return emitNeedsAttention(now, {
834
850
  message: `${agent.name} has had tool '${toolAttentionTarget.tool}' open for ${Math.floor(durationMs / 1000)}s`,
835
851
  reason: "tool_open_threshold",
836
852
  currentTool: toolAttentionTarget.tool,
853
+ toolCallId: toolAttentionTarget.key.startsWith("id:") ? toolAttentionTarget.key.slice(3) : undefined,
837
854
  currentPath: toolAttentionTarget.path,
838
855
  currentToolDurationMs: durationMs,
839
856
  });
@@ -878,6 +895,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
878
895
  const processEvent = (evt) => {
879
896
  if (lifecycleFinished)
880
897
  return;
898
+ partialOutput.observe(evt);
881
899
  jsonlWriter.writeLine(JSON.stringify(projectChildSessionEventForJson(evt)));
882
900
  shared.transcriptWriter?.writeChildEvent(evt);
883
901
  shared.orcaProgressTab?.event(evt);
@@ -1018,7 +1036,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1018
1036
  if (!result.model)
1019
1037
  result.model = evt.message.model;
1020
1038
  if (expectedModelForVerification && !hasToolCall) {
1021
- const modelVerificationError = formatSubagentModelVerificationError(expectedModelForVerification, evt.message.model, options.availableModels, options.modelResponseAliases);
1039
+ const modelVerificationError = formatSubagentModelVerificationError(expectedModelForVerification, evt.message.model, options.availableModels, options.modelResponseAliases, session?.virtualModelId);
1022
1040
  if (modelVerificationError && !result.error)
1023
1041
  result.error = modelVerificationError;
1024
1042
  }
@@ -1220,6 +1238,8 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1220
1238
  result.nativeMachine = { provider: "herdr", machineId: session.machineEvidence.machineId, ...(session.machineEvidence.initial ? { initialGit: session.machineEvidence.initial } : {}), ...(session.machineEvidence.final ? { finalGit: session.machineEvidence.final } : {}) };
1221
1239
  let closeError = result.error ?? toolDiagnosticError ?? assistantError;
1222
1240
  const promptErrorMessage = promptError === undefined ? undefined : promptError instanceof Error ? promptError.message : String(promptError);
1241
+ if (promptError !== undefined)
1242
+ childPromptFailed = true;
1223
1243
  if (!closeError && promptErrorMessage !== undefined) {
1224
1244
  closeError = promptErrorMessage;
1225
1245
  }
@@ -1449,9 +1469,22 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1449
1469
  const remoteGitChanged = result.nativeMachine?.initialGit && result.nativeMachine.finalGit ? result.nativeMachine.initialGit.head !== result.nativeMachine.finalGit.head || result.nativeMachine.initialGit.dirty !== result.nativeMachine.finalGit.dirty : undefined;
1450
1470
  const mutationEvidence = result.nativeMachine ? { source: "tracked-files", trackedOnly: true, changedFiles: [], attemptedMutation: remoteGitChanged === true, ...(remoteGitChanged === undefined ? { unavailable: "Remote Git before/after evidence was incomplete." } : {}) } : collectTrackedMutationEvidence(mutationSnapshot, options.cwd ?? runtimeCwd);
1451
1471
  const acceptanceOutput = getFinalOutput(result.messages ?? []);
1472
+ const structuredText = result.structuredOutput === undefined ? undefined : JSON.stringify(result.structuredOutput, null, 2);
1452
1473
  let fullOutput = stripAcceptanceReport(acceptanceOutput);
1453
- if (!fullOutput.trim() && result.structuredOutput !== undefined)
1454
- fullOutput = JSON.stringify(result.structuredOutput, null, 2);
1474
+ if (!fullOutput.trim() && structuredText !== undefined)
1475
+ fullOutput = structuredText;
1476
+ // Text still streaming when the child timed out or its session threw never reached
1477
+ // a completed message. Keep it, labeled; the run still fails and the text never
1478
+ // stands in for acceptance or a requested output file.
1479
+ const partialCause = result.timedOut
1480
+ ? "timeout"
1481
+ : childPromptFailed && !abortedBySignal && !result.interrupted && !result.stopped ? "child error" : undefined;
1482
+ const streamedPartial = partialCause ? partialOutput.text() : undefined;
1483
+ if (partialCause && streamedPartial) {
1484
+ const text = stripAcceptanceReport(streamedPartial);
1485
+ fullOutput = partialCause === "timeout" ? text : formatPartialOutput(text, partialCause);
1486
+ result.outputPartial = true;
1487
+ }
1455
1488
  result.outputState = fullOutput.trim() || result.structuredOutput !== undefined ? "present" : "absent";
1456
1489
  if (result.timedOut) {
1457
1490
  const timeoutMessage = formatTimeoutMessage(options.timeoutMs ?? 0);
@@ -1479,7 +1512,8 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1479
1512
  : `${timeoutMessage}\n\n${result.timeoutRecovery.message}`;
1480
1513
  }
1481
1514
  if (options.outputPath && result.exitCode === 0) {
1482
- const resolvedOutput = resolveSingleOutput(options.outputPath, fullOutput, shared.outputSnapshot, options.outputClaimPath);
1515
+ // The schema is the caller's contract: a bound output file holds the structured result, not closing prose.
1516
+ const resolvedOutput = resolveSingleOutput(options.outputPath, structuredText ?? fullOutput, shared.outputSnapshot, options.outputClaimPath);
1483
1517
  fullOutput = stripAcceptanceReport(resolvedOutput.fullOutput);
1484
1518
  result.savedOutputPath = resolvedOutput.savedPath;
1485
1519
  result.outputSaveError = resolvedOutput.saveError;