pi-subagents 0.76.0 → 0.77.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 (347) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +1 -1
  3. package/agents/oracle.md +8 -19
  4. package/agents/researcher.md +0 -3
  5. package/agents/reviewer.md +17 -61
  6. package/agents/scout.md +1 -4
  7. package/agents/worker.md +8 -25
  8. package/docs/agents.md +70 -3
  9. package/docs/configuration.md +55 -6
  10. package/docs/extension-api.md +36 -11
  11. package/docs/missions.md +24 -17
  12. package/docs/models.md +1 -1
  13. package/docs/observability.md +10 -5
  14. package/docs/tool-reference.md +101 -83
  15. package/docs/watchdog.md +8 -6
  16. package/docs/workflows.md +15 -6
  17. package/index.d.ts.map +1 -1
  18. package/index.js +5 -0
  19. package/index.js.map +1 -1
  20. package/package.json +2 -1
  21. package/prompts/council.md +1 -1
  22. package/skills/pi-subagents/SKILL.md +1 -1
  23. package/skills/pi-subagents/references/constraints-and-recipes.md +1 -1
  24. package/skills/pi-subagents/references/execution-controls.md +16 -16
  25. package/skills/pi-subagents/references/management-authoring-rpc.md +16 -12
  26. package/skills/pi-subagents/references/prompting-and-roles.md +3 -3
  27. package/src/agents/advertised-agent-prompt.d.ts +5 -1
  28. package/src/agents/advertised-agent-prompt.d.ts.map +1 -1
  29. package/src/agents/advertised-agent-prompt.js +8 -2
  30. package/src/agents/advertised-agent-prompt.js.map +1 -1
  31. package/src/agents/agent-management.d.ts.map +1 -1
  32. package/src/agents/agent-management.js +5 -0
  33. package/src/agents/agent-management.js.map +1 -1
  34. package/src/agents/agent-scope.d.ts +1 -0
  35. package/src/agents/agent-scope.d.ts.map +1 -1
  36. package/src/agents/agent-scope.js +3 -0
  37. package/src/agents/agent-scope.js.map +1 -1
  38. package/src/agents/agent-serializer.d.ts.map +1 -1
  39. package/src/agents/agent-serializer.js +3 -0
  40. package/src/agents/agent-serializer.js.map +1 -1
  41. package/src/agents/agents.d.ts +14 -2
  42. package/src/agents/agents.d.ts.map +1 -1
  43. package/src/agents/agents.js +94 -36
  44. package/src/agents/agents.js.map +1 -1
  45. package/src/api/preflight.d.ts +2 -0
  46. package/src/api/preflight.d.ts.map +1 -1
  47. package/src/api/preflight.js +6 -2
  48. package/src/api/preflight.js.map +1 -1
  49. package/src/extension/config.d.ts.map +1 -1
  50. package/src/extension/config.js +23 -2
  51. package/src/extension/config.js.map +1 -1
  52. package/src/extension/control-notices.d.ts +0 -2
  53. package/src/extension/control-notices.d.ts.map +1 -1
  54. package/src/extension/control-notices.js +1 -7
  55. package/src/extension/control-notices.js.map +1 -1
  56. package/src/extension/declaration-pinning.d.ts +14 -0
  57. package/src/extension/declaration-pinning.d.ts.map +1 -0
  58. package/src/extension/declaration-pinning.js +147 -0
  59. package/src/extension/declaration-pinning.js.map +1 -0
  60. package/src/extension/doctor.d.ts +3 -1
  61. package/src/extension/doctor.d.ts.map +1 -1
  62. package/src/extension/doctor.js +3 -9
  63. package/src/extension/doctor.js.map +1 -1
  64. package/src/extension/fanout-child.d.ts.map +1 -1
  65. package/src/extension/fanout-child.js +6 -8
  66. package/src/extension/fanout-child.js.map +1 -1
  67. package/src/extension/index.d.ts +1 -1
  68. package/src/extension/index.d.ts.map +1 -1
  69. package/src/extension/index.js +68 -116
  70. package/src/extension/index.js.map +1 -1
  71. package/src/extension/rpc.d.ts.map +1 -1
  72. package/src/extension/rpc.js +12 -6
  73. package/src/extension/rpc.js.map +1 -1
  74. package/src/extension/schemas.d.ts +137 -1
  75. package/src/extension/schemas.d.ts.map +1 -1
  76. package/src/extension/schemas.js +22 -22
  77. package/src/extension/schemas.js.map +1 -1
  78. package/src/extension/subagent-guide.d.ts +1 -0
  79. package/src/extension/subagent-guide.d.ts.map +1 -1
  80. package/src/extension/subagent-guide.js +80 -6
  81. package/src/extension/subagent-guide.js.map +1 -1
  82. package/src/extension/subagent-options.d.ts +8 -0
  83. package/src/extension/subagent-options.d.ts.map +1 -0
  84. package/src/extension/subagent-options.js +52 -0
  85. package/src/extension/subagent-options.js.map +1 -0
  86. package/src/extension/tool-activation.d.ts.map +1 -1
  87. package/src/extension/tool-activation.js +3 -2
  88. package/src/extension/tool-activation.js.map +1 -1
  89. package/src/extension/tool-description.d.ts +4 -7
  90. package/src/extension/tool-description.d.ts.map +1 -1
  91. package/src/extension/tool-description.js +45 -59
  92. package/src/extension/tool-description.js.map +1 -1
  93. package/src/inspectors/actions.d.ts +2 -0
  94. package/src/inspectors/actions.d.ts.map +1 -1
  95. package/src/inspectors/actions.js +41 -13
  96. package/src/inspectors/actions.js.map +1 -1
  97. package/src/inspectors/plugins.d.ts.map +1 -1
  98. package/src/inspectors/plugins.js +3 -2
  99. package/src/inspectors/plugins.js.map +1 -1
  100. package/src/inspectors/tmux/actions.d.ts +26 -0
  101. package/src/inspectors/tmux/actions.d.ts.map +1 -0
  102. package/src/inspectors/tmux/actions.js +182 -0
  103. package/src/inspectors/tmux/actions.js.map +1 -0
  104. package/src/inspectors/tmux/client.d.ts +28 -0
  105. package/src/inspectors/tmux/client.d.ts.map +1 -0
  106. package/src/inspectors/tmux/client.js +65 -0
  107. package/src/inspectors/tmux/client.js.map +1 -0
  108. package/src/inspectors/tmux/plugin.d.ts +8 -0
  109. package/src/inspectors/tmux/plugin.d.ts.map +1 -0
  110. package/src/inspectors/tmux/plugin.js +15 -0
  111. package/src/inspectors/tmux/plugin.js.map +1 -0
  112. package/src/integrations/herdr-status.d.ts +0 -1
  113. package/src/integrations/herdr-status.d.ts.map +1 -1
  114. package/src/integrations/herdr-status.js +18 -52
  115. package/src/integrations/herdr-status.js.map +1 -1
  116. package/src/integrations/program-status.d.ts +31 -0
  117. package/src/integrations/program-status.d.ts.map +1 -0
  118. package/src/integrations/program-status.js +189 -0
  119. package/src/integrations/program-status.js.map +1 -0
  120. package/src/intercom/native-supervisor-channel.d.ts +1 -0
  121. package/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  122. package/src/intercom/native-supervisor-channel.js +77 -3
  123. package/src/intercom/native-supervisor-channel.js.map +1 -1
  124. package/src/intercom/result-intercom.js +1 -1
  125. package/src/intercom/result-intercom.js.map +1 -1
  126. package/src/intercom/supervisor-ui.d.ts +2 -12
  127. package/src/intercom/supervisor-ui.d.ts.map +1 -1
  128. package/src/intercom/supervisor-ui.js +2 -154
  129. package/src/intercom/supervisor-ui.js.map +1 -1
  130. package/src/missions/store.d.ts.map +1 -1
  131. package/src/missions/store.js +27 -5
  132. package/src/missions/store.js.map +1 -1
  133. package/src/runs/background/async-execution.d.ts +9 -1
  134. package/src/runs/background/async-execution.d.ts.map +1 -1
  135. package/src/runs/background/async-execution.js +250 -141
  136. package/src/runs/background/async-execution.js.map +1 -1
  137. package/src/runs/background/async-job-tracker.d.ts +4 -1
  138. package/src/runs/background/async-job-tracker.d.ts.map +1 -1
  139. package/src/runs/background/async-job-tracker.js +3 -2
  140. package/src/runs/background/async-job-tracker.js.map +1 -1
  141. package/src/runs/background/async-resume.d.ts.map +1 -1
  142. package/src/runs/background/async-resume.js +6 -2
  143. package/src/runs/background/async-resume.js.map +1 -1
  144. package/src/runs/background/await-async-run.d.ts +8 -4
  145. package/src/runs/background/await-async-run.d.ts.map +1 -1
  146. package/src/runs/background/await-async-run.js +14 -8
  147. package/src/runs/background/await-async-run.js.map +1 -1
  148. package/src/runs/background/binary-bootstrap.d.ts.map +1 -1
  149. package/src/runs/background/binary-bootstrap.js +2 -1
  150. package/src/runs/background/binary-bootstrap.js.map +1 -1
  151. package/src/runs/background/chain-root-attachment.d.ts +2 -0
  152. package/src/runs/background/chain-root-attachment.d.ts.map +1 -1
  153. package/src/runs/background/chain-root-attachment.js +5 -2
  154. package/src/runs/background/chain-root-attachment.js.map +1 -1
  155. package/src/runs/background/fleet-view.js +5 -5
  156. package/src/runs/background/fleet-view.js.map +1 -1
  157. package/src/runs/background/notify.d.ts +12 -2
  158. package/src/runs/background/notify.d.ts.map +1 -1
  159. package/src/runs/background/notify.js +148 -13
  160. package/src/runs/background/notify.js.map +1 -1
  161. package/src/runs/background/result-files.d.ts +29 -0
  162. package/src/runs/background/result-files.d.ts.map +1 -1
  163. package/src/runs/background/result-files.js +104 -6
  164. package/src/runs/background/result-files.js.map +1 -1
  165. package/src/runs/background/result-watcher.d.ts.map +1 -1
  166. package/src/runs/background/result-watcher.js +60 -64
  167. package/src/runs/background/result-watcher.js.map +1 -1
  168. package/src/runs/background/resume-guidance.js +2 -2
  169. package/src/runs/background/resume-guidance.js.map +1 -1
  170. package/src/runs/background/run-child-session.d.ts.map +1 -1
  171. package/src/runs/background/run-child-session.js +2 -1
  172. package/src/runs/background/run-child-session.js.map +1 -1
  173. package/src/runs/background/run-id-resolver.d.ts.map +1 -1
  174. package/src/runs/background/run-id-resolver.js +9 -6
  175. package/src/runs/background/run-id-resolver.js.map +1 -1
  176. package/src/runs/background/run-status.d.ts.map +1 -1
  177. package/src/runs/background/run-status.js +19 -15
  178. package/src/runs/background/run-status.js.map +1 -1
  179. package/src/runs/background/runner-child-launch.d.ts.map +1 -1
  180. package/src/runs/background/runner-child-launch.js +1 -0
  181. package/src/runs/background/runner-child-launch.js.map +1 -1
  182. package/src/runs/background/runner-http-dispatcher.d.ts +3 -0
  183. package/src/runs/background/runner-http-dispatcher.d.ts.map +1 -1
  184. package/src/runs/background/runner-http-dispatcher.js +2 -0
  185. package/src/runs/background/runner-http-dispatcher.js.map +1 -1
  186. package/src/runs/background/scheduled-runs.d.ts +9 -0
  187. package/src/runs/background/scheduled-runs.d.ts.map +1 -1
  188. package/src/runs/background/scheduled-runs.js +124 -36
  189. package/src/runs/background/scheduled-runs.js.map +1 -1
  190. package/src/runs/background/subagent-runner-bootstrap.d.ts.map +1 -1
  191. package/src/runs/background/subagent-runner-bootstrap.js +5 -1
  192. package/src/runs/background/subagent-runner-bootstrap.js.map +1 -1
  193. package/src/runs/background/subagent-runner.d.ts +3 -1
  194. package/src/runs/background/subagent-runner.d.ts.map +1 -1
  195. package/src/runs/background/subagent-runner.js +15 -6
  196. package/src/runs/background/subagent-runner.js.map +1 -1
  197. package/src/runs/background/subagent-wait.d.ts +2 -0
  198. package/src/runs/background/subagent-wait.d.ts.map +1 -1
  199. package/src/runs/background/subagent-wait.js +34 -20
  200. package/src/runs/background/subagent-wait.js.map +1 -1
  201. package/src/runs/background/terminal-run-index.d.ts +1 -0
  202. package/src/runs/background/terminal-run-index.d.ts.map +1 -1
  203. package/src/runs/background/terminal-run-index.js +47 -1
  204. package/src/runs/background/terminal-run-index.js.map +1 -1
  205. package/src/runs/background/wait-tool.d.ts.map +1 -1
  206. package/src/runs/background/wait-tool.js +36 -23
  207. package/src/runs/background/wait-tool.js.map +1 -1
  208. package/src/runs/foreground/async-stop-action.d.ts +7 -1
  209. package/src/runs/foreground/async-stop-action.d.ts.map +1 -1
  210. package/src/runs/foreground/async-stop-action.js +49 -25
  211. package/src/runs/foreground/async-stop-action.js.map +1 -1
  212. package/src/runs/foreground/execution.d.ts.map +1 -1
  213. package/src/runs/foreground/execution.js +50 -24
  214. package/src/runs/foreground/execution.js.map +1 -1
  215. package/src/runs/foreground/subagent-executor.d.ts +5 -1
  216. package/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  217. package/src/runs/foreground/subagent-executor.js +174 -65
  218. package/src/runs/foreground/subagent-executor.js.map +1 -1
  219. package/src/runs/shared/child-hooks.js +6 -5
  220. package/src/runs/shared/child-hooks.js.map +1 -1
  221. package/src/runs/shared/child-launch.d.ts +2 -0
  222. package/src/runs/shared/child-launch.d.ts.map +1 -1
  223. package/src/runs/shared/child-launch.js +1 -0
  224. package/src/runs/shared/child-launch.js.map +1 -1
  225. package/src/runs/shared/child-session.d.ts +4 -0
  226. package/src/runs/shared/child-session.d.ts.map +1 -1
  227. package/src/runs/shared/child-session.js +28 -23
  228. package/src/runs/shared/child-session.js.map +1 -1
  229. package/src/runs/shared/child-tool-plan.d.ts.map +1 -1
  230. package/src/runs/shared/child-tool-plan.js +11 -10
  231. package/src/runs/shared/child-tool-plan.js.map +1 -1
  232. package/src/runs/shared/dynamic-fanout.js +1 -1
  233. package/src/runs/shared/dynamic-fanout.js.map +1 -1
  234. package/src/runs/shared/herdr-placed-run.d.ts +1 -0
  235. package/src/runs/shared/herdr-placed-run.d.ts.map +1 -1
  236. package/src/runs/shared/herdr-placed-run.js +10 -6
  237. package/src/runs/shared/herdr-placed-run.js.map +1 -1
  238. package/src/runs/shared/model-resolution-diagnostic.d.ts +10 -0
  239. package/src/runs/shared/model-resolution-diagnostic.d.ts.map +1 -1
  240. package/src/runs/shared/model-resolution-diagnostic.js +24 -0
  241. package/src/runs/shared/model-resolution-diagnostic.js.map +1 -1
  242. package/src/runs/shared/model-resolution.d.ts.map +1 -1
  243. package/src/runs/shared/model-resolution.js +29 -1
  244. package/src/runs/shared/model-resolution.js.map +1 -1
  245. package/src/runs/shared/nested-events.d.ts +2 -0
  246. package/src/runs/shared/nested-events.d.ts.map +1 -1
  247. package/src/runs/shared/nested-events.js +4 -0
  248. package/src/runs/shared/nested-events.js.map +1 -1
  249. package/src/runs/shared/parallel-handoff.js +2 -2
  250. package/src/runs/shared/parallel-handoff.js.map +1 -1
  251. package/src/runs/shared/parallel-utils.d.ts +2 -0
  252. package/src/runs/shared/parallel-utils.d.ts.map +1 -1
  253. package/src/runs/shared/parallel-utils.js.map +1 -1
  254. package/src/runs/shared/runner-launcher.d.ts +12 -0
  255. package/src/runs/shared/runner-launcher.d.ts.map +1 -0
  256. package/src/runs/shared/runner-launcher.js +25 -0
  257. package/src/runs/shared/runner-launcher.js.map +1 -0
  258. package/src/runs/shared/single-output.d.ts +20 -0
  259. package/src/runs/shared/single-output.d.ts.map +1 -1
  260. package/src/runs/shared/single-output.js +57 -0
  261. package/src/runs/shared/single-output.js.map +1 -1
  262. package/src/runs/shared/structured-output.d.ts.map +1 -1
  263. package/src/runs/shared/structured-output.js +17 -8
  264. package/src/runs/shared/structured-output.js.map +1 -1
  265. package/src/runs/shared/subagent-control.js +3 -3
  266. package/src/runs/shared/subagent-control.js.map +1 -1
  267. package/src/runs/shared/subagent-prompt-runtime.d.ts +8 -2
  268. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  269. package/src/runs/shared/subagent-prompt-runtime.js +43 -20
  270. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  271. package/src/runs/shared/workflow-async-child-guidance.js +1 -1
  272. package/src/runs/shared/workflow-async-child-guidance.js.map +1 -1
  273. package/src/runs/shared/worktree-cleanup-plan.js +1 -1
  274. package/src/runs/shared/worktree-cleanup-plan.js.map +1 -1
  275. package/src/shared/atomic-json.d.ts +4 -3
  276. package/src/shared/atomic-json.d.ts.map +1 -1
  277. package/src/shared/atomic-json.js +3 -1
  278. package/src/shared/atomic-json.js.map +1 -1
  279. package/src/shared/edit-distance.d.ts +5 -0
  280. package/src/shared/edit-distance.d.ts.map +1 -0
  281. package/src/shared/edit-distance.js +33 -0
  282. package/src/shared/edit-distance.js.map +1 -0
  283. package/src/shared/formatters.d.ts.map +1 -1
  284. package/src/shared/formatters.js +1 -6
  285. package/src/shared/formatters.js.map +1 -1
  286. package/src/shared/model-info.d.ts +8 -0
  287. package/src/shared/model-info.d.ts.map +1 -1
  288. package/src/shared/model-info.js +22 -0
  289. package/src/shared/model-info.js.map +1 -1
  290. package/src/shared/package-version.d.ts +3 -0
  291. package/src/shared/package-version.d.ts.map +1 -0
  292. package/src/shared/package-version.js +15 -0
  293. package/src/shared/package-version.js.map +1 -0
  294. package/src/shared/parent-wake.d.ts +18 -0
  295. package/src/shared/parent-wake.d.ts.map +1 -0
  296. package/src/shared/parent-wake.js +60 -0
  297. package/src/shared/parent-wake.js.map +1 -0
  298. package/src/shared/pruned-fork.d.ts +1 -1
  299. package/src/shared/pruned-fork.d.ts.map +1 -1
  300. package/src/shared/pruned-fork.js +6 -0
  301. package/src/shared/pruned-fork.js.map +1 -1
  302. package/src/shared/runtime-module-path.d.ts +11 -0
  303. package/src/shared/runtime-module-path.d.ts.map +1 -0
  304. package/src/shared/runtime-module-path.js +17 -0
  305. package/src/shared/runtime-module-path.js.map +1 -0
  306. package/src/shared/types.d.ts +26 -2
  307. package/src/shared/types.d.ts.map +1 -1
  308. package/src/shared/types.js +3 -0
  309. package/src/shared/types.js.map +1 -1
  310. package/src/shared/utils.d.ts.map +1 -1
  311. package/src/shared/utils.js +8 -7
  312. package/src/shared/utils.js.map +1 -1
  313. package/src/slash/slash-commands.js +3 -3
  314. package/src/slash/slash-commands.js.map +1 -1
  315. package/src/slash/subagents-admin.d.ts.map +1 -1
  316. package/src/slash/subagents-admin.js +2 -1
  317. package/src/slash/subagents-admin.js.map +1 -1
  318. package/src/tui/fleet-transcript.d.ts +2 -0
  319. package/src/tui/fleet-transcript.d.ts.map +1 -1
  320. package/src/tui/fleet-transcript.js +7 -2
  321. package/src/tui/fleet-transcript.js.map +1 -1
  322. package/src/tui/fleet.d.ts.map +1 -1
  323. package/src/tui/fleet.js +9 -4
  324. package/src/tui/fleet.js.map +1 -1
  325. package/src/tui/render.d.ts +2 -2
  326. package/src/tui/render.d.ts.map +1 -1
  327. package/src/tui/render.js +19 -17
  328. package/src/tui/render.js.map +1 -1
  329. package/src/tui/subagent-messages.d.ts +23 -0
  330. package/src/tui/subagent-messages.d.ts.map +1 -0
  331. package/src/tui/subagent-messages.js +270 -0
  332. package/src/tui/subagent-messages.js.map +1 -0
  333. package/src/watchdog/register-main.d.ts.map +1 -1
  334. package/src/watchdog/register-main.js +1 -19
  335. package/src/watchdog/register-main.js.map +1 -1
  336. package/src/watchdog/render.d.ts +2 -10
  337. package/src/watchdog/render.d.ts.map +1 -1
  338. package/src/watchdog/render.js +1 -19
  339. package/src/watchdog/render.js.map +1 -1
  340. package/src/watchdog/tool-actions.js +2 -2
  341. package/src/watchdog/tool-actions.js.map +1 -1
  342. package/src/workflows/scripted-workflow.d.ts.map +1 -1
  343. package/src/workflows/scripted-workflow.js +20 -6
  344. package/src/workflows/scripted-workflow.js.map +1 -1
  345. package/src/workflows/workflow-resources.d.ts.map +1 -1
  346. package/src/workflows/workflow-resources.js +12 -0
  347. package/src/workflows/workflow-resources.js.map +1 -1
@@ -5,7 +5,7 @@ import { DIRS } from "../../shared/types.js";
5
5
  import { updateActiveRunIndex } from "../background/active-run-index.js";
6
6
  import { deliverStopRequest, stopInboxClosedPath } from "../background/control-channel.js";
7
7
  import { readProcessTerminal } from "../background/process-terminal.js";
8
- import { resultFilePath, resultPayloadPathForSessionRun, writeAsyncResultFile } from "../background/result-files.js";
8
+ import { resultFilePath, resultPayloadFileForSessionRun, resultPayloadPathForSessionRun, writeAsyncResultFile } from "../background/result-files.js";
9
9
  import { reconcileAsyncRun } from "../background/stale-run-reconciler.js";
10
10
  import { readStatus } from "../../shared/utils.js";
11
11
  import { isStoppableAsyncStatusStep, resolveAsyncStatusChild, stopStoppableAsyncStatusChildren } from "../shared/child-identity.js";
@@ -22,7 +22,7 @@ function getAsyncStopTarget(state, runId, location) {
22
22
  return direct ? { asyncId: direct.asyncId, asyncDir: direct.asyncDir } : undefined;
23
23
  }
24
24
  const STOP_MESSAGE = "Subagent stopped by user.";
25
- function sealPausedRun(asyncDir, status) {
25
+ function sealPausedRun(asyncDir, status, resultsDir) {
26
26
  const runnerProcessInstanceId = status.processTerminal?.runnerProcessInstanceId;
27
27
  if (!runnerProcessInstanceId)
28
28
  return "runner process identity is missing";
@@ -32,18 +32,37 @@ function sealPausedRun(asyncDir, status) {
32
32
  }
33
33
  if (!status.sessionId)
34
34
  return "session identity is missing";
35
- const existingResultPath = resultPayloadPathForSessionRun(DIRS.results, status.sessionId, status.runId);
36
- if (!existingResultPath)
37
- return "paused result is missing";
35
+ // The validated lookup skips unreadable or foreign files; those must be refused below, not replaced.
36
+ const existingResultPath = resultPayloadPathForSessionRun(resultsDir, status.sessionId, status.runId)
37
+ ?? resultPayloadFileForSessionRun(resultsDir, status.sessionId, status.runId);
38
38
  let existingResult;
39
- try {
40
- const parsed = JSON.parse(fs.readFileSync(existingResultPath, "utf-8"));
41
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
42
- throw new Error("result is not an object");
43
- existingResult = parsed;
39
+ if (!existingResultPath) {
40
+ // Delivery deletes the paused result, and an interrupted parent may never have received one; seal from status.
41
+ existingResult = {
42
+ id: status.runId,
43
+ mode: status.mode,
44
+ sessionId: status.sessionId,
45
+ asyncDir,
46
+ ...(status.completionOwnerId ? { completionOwnerId: status.completionOwnerId } : {}),
47
+ ...(status.toolCallId ? { toolCallId: status.toolCallId } : {}),
48
+ results: (status.steps ?? []).map((step) => ({
49
+ agent: step.agent,
50
+ success: step.status === "complete" || step.status === "completed",
51
+ ...(step.error ? { error: step.error } : {}),
52
+ ...(step.exitCode !== undefined ? { exitCode: step.exitCode } : {}),
53
+ })),
54
+ };
44
55
  }
45
- catch (error) {
46
- return `paused result is unavailable: ${error instanceof Error ? error.message : String(error)}`;
56
+ else {
57
+ try {
58
+ const parsed = JSON.parse(fs.readFileSync(existingResultPath, "utf-8"));
59
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
60
+ throw new Error("result is not an object");
61
+ existingResult = parsed;
62
+ }
63
+ catch (error) {
64
+ return `paused result is unavailable: ${error instanceof Error ? error.message : String(error)}`;
65
+ }
47
66
  }
48
67
  const resultRunId = typeof existingResult.runId === "string" ? existingResult.runId : existingResult.id;
49
68
  if (resultRunId !== status.runId || existingResult.sessionId !== status.sessionId) {
@@ -95,10 +114,20 @@ function sealPausedRun(asyncDir, status) {
95
114
  steps,
96
115
  };
97
116
  delete stoppedStatus.activityState;
98
- writeAsyncResultFile(resultFilePath(DIRS.results, status.runId), stoppedResult);
117
+ writeAsyncResultFile(resultFilePath(resultsDir, status.runId), stoppedResult);
99
118
  writeAtomicJson(path.join(asyncDir, "status.json"), stoppedStatus);
100
119
  updateActiveRunIndex(asyncDir, "stopped", status.toolCallId, { retryCapacityErrors: true, terminalIndexBeforeRelease: true });
101
120
  }
121
+ /** After ownership/state checks, deliver stop and seal paused whole runs only with native terminal proof. */
122
+ export function deliverAsyncRunStop(input) {
123
+ const { status, resultsDir = DIRS.results, ...delivery } = input;
124
+ const pausedWholeRun = status.state === "paused" && delivery.childId === undefined && delivery.targetIndex === undefined;
125
+ // A paused run whose runner closed its inbox can only be sealed from exact exit proof below.
126
+ if (!(pausedWholeRun && fs.existsSync(stopInboxClosedPath(delivery.asyncDir))))
127
+ deliverStopRequest(delivery);
128
+ if (pausedWholeRun)
129
+ return sealPausedRun(delivery.asyncDir, status, resultsDir);
130
+ }
102
131
  export function stopAsyncRun(state, runId, kill, location, childId) {
103
132
  const target = getAsyncStopTarget(state, runId, location);
104
133
  // An async workflow runs in this process: it has no runner to read a stop request, so stop it through its controller.
@@ -152,18 +181,13 @@ export function stopAsyncRun(state, runId, kill, location, childId) {
152
181
  }
153
182
  }
154
183
  try {
155
- // A paused run whose runner closed its inbox can only be sealed from exact exit proof below.
156
- if (!(pausedWholeRun && fs.existsSync(stopInboxClosedPath(target.asyncDir))))
157
- deliverStopRequest({ asyncDir: target.asyncDir, pid: typeof status.pid === "number" ? status.pid : undefined, kill, source: "stop-action", targetIndex: child?.index, childId: child?.id ?? childId });
158
- if (pausedWholeRun) {
159
- const failure = sealPausedRun(target.asyncDir, status);
160
- if (failure) {
161
- return {
162
- content: [{ type: "text", text: `Stop request persisted for paused async run ${target.asyncId}, but terminal proof is not ready (${failure}). Retry stop after runner shutdown is observed.` }],
163
- isError: true,
164
- details: { mode: "management", results: [] },
165
- };
166
- }
184
+ const failure = deliverAsyncRunStop({ asyncDir: target.asyncDir, status, pid: typeof status.pid === "number" ? status.pid : undefined, kill, source: "stop-action", targetIndex: child?.index, childId: child?.id ?? childId });
185
+ if (failure) {
186
+ return {
187
+ content: [{ type: "text", text: `Stop request persisted for paused async run ${target.asyncId}, but terminal proof is not ready (${failure}). Retry stop after runner shutdown is observed.` }],
188
+ isError: true,
189
+ details: { mode: "management", results: [] },
190
+ };
167
191
  }
168
192
  const tracked = state.asyncJobs.get(target.asyncId);
169
193
  if (tracked) {
@@ -1 +1 @@
1
- {"version":3,"file":"async-stop-action.js","sourceRoot":"","sources":["../../../../src/runs/foreground/async-stop-action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"async-stop-action.js","sourceRoot":"","sources":["../../../../src/runs/foreground/async-stop-action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAsD,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,gCAAgC,EAAiC,MAAM,6BAA6B,CAAC;AAEnK,SAAS,kBAAkB,CAC1B,KAAoB,EACpB,KAAyB,EACzB,QAA2D;IAE3D,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxB,OAAO;YACN,OAAO,EAAE,QAAQ,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC3B,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACpF,CAAC;AAED,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAmB,EAAE,UAAkB;IAC/E,MAAM,uBAAuB,GAAG,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAChF,IAAI,CAAC,uBAAuB;QAAE,OAAO,oCAAoC,CAAC;IAC1E,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC9F,IAAI,KAAK,EAAE,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,uBAAuB,KAAK,uBAAuB,EAAE,CAAC;QAC9H,OAAO,6BAA6B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;IAC5H,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,6BAA6B,CAAC;IAC5D,qGAAqG;IACrG,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC;WACjG,8BAA8B,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,cAAuC,CAAC;IAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzB,+GAA+G;QAC/G,cAAc,GAAG;YAChB,EAAE,EAAE,MAAM,CAAC,KAAK;YAChB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ;YACR,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;gBAClE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC,CAAC;SACH,CAAC;IACH,CAAC;SAAM,CAAC;QACP,IAAI,CAAC;YACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;YACjF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC/G,cAAc,GAAG,MAAiC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClG,CAAC;IACF,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;IACxG,IAAI,WAAW,KAAK,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QACnF,OAAO,+CAA+C,CAAC;IACxD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpG,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACxD,OAAO;YACN,GAAG,IAAI;YACP,MAAM,EAAE,SAAkB;YAC1B,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrD,cAAc,EAAE,GAAG;SACnB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;QACpD,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAChD,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,GAAG,KAAgC,CAAC;YAClF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC7G,CAAC,CAAC;QACF,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC;IAC1B,MAAM,aAAa,GAAG;QACrB,GAAG,cAAc;QACjB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC;QACX,SAAS,EAAE,GAAG;QACd,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;IACF,MAAM,aAAa,GAAgB;QAClC,GAAG,MAAM;QACT,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,GAAG;QACf,KAAK;KACL,CAAC;IACF,OAAO,aAAa,CAAC,aAAa,CAAC;IACnC,oBAAoB,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC;IAC9E,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;IACnE,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/H,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,mBAAmB,CAClC,KAA8F;IAE9F,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;IACjE,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC;IACzH,6FAA6F;IAC7F,IAAI,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7G,IAAI,cAAc;QAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAAoB,EACpB,KAAyB,EACzB,IAA4D,EAC5D,QAA2D,EAC3D,OAAgB;IAEhB,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1D,sHAAsH;IACtH,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;IAC/C,MAAM,kBAAkB,GAAG,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9H,MAAM,gBAAgB,GAAG,kBAAkB,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5I,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,wHAAwH;IACxH,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,cAAc,IAAI,cAAc,CAAC,SAAS,KAAK,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACjI,IAAI,kBAAkB,IAAI,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7D,IAAI,cAAc;YAAE,gCAAgC,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACxI,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qCAAqC,aAAa,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;IACnJ,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACnE,IAAI,KAAK,CAAC,gBAAgB,IAAI,MAAM,EAAE,SAAS,KAAK,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5E,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,MAAM,CAAC,OAAO,wCAAwC,EAAE,CAAC;YACvG,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C,CAAC;IACH,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,EAAE,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC;IAC3E,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7F,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iDAAiD,KAAK,IAAI,SAAS,IAAI,EAAE,CAAC;YAC1G,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C,CAAC;IACH,CAAC;IACD,IAAI,KAA2C,CAAC;IAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACpB,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;gBACrD,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aAC5C,CAAC;QACH,CAAC;QACD,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,mBAAmB,MAAM,CAAC,KAAK,QAAQ,KAAK,CAAC,IAAI,CAAC,MAAM,mDAAmD,EAAE,CAAC;gBAC/J,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aAC5C,CAAC;QACH,CAAC;IACF,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;QAChO,IAAI,OAAO,EAAE,CAAC;YACb,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,MAAM,CAAC,OAAO,sCAAsC,OAAO,kDAAkD,EAAE,CAAC;gBAC/L,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;aAC5C,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;YAClC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,4BAA4B,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,KAAK,CAAC,EAAE,iBAAiB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,gCAAgC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACtO,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,EAAE,CAAC;YAC3F,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;SAC5C,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -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;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"}
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;AA2iE/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,CAyHvB"}
@@ -21,12 +21,12 @@ import { resolvePermissionRules } from "../shared/permissions.js";
21
21
  import { applyThinkingSuffix, deriveForkPromptCacheKey } from "../shared/child-tool-plan.js";
22
22
  import { deriveChildSessionName } from "../../shared/child-session-name.js";
23
23
  import { assertAgentAllowedByCapabilityCeiling, intersectSubagentCapabilityCeilings, resolveCurrentSubagentCapabilityCeiling } from "../shared/capability-ceiling.js";
24
- import { resolveEffectiveThinking } from "../../shared/model-info.js";
24
+ import { qualifyModelWithProvider, resolveEffectiveThinking } from "../../shared/model-info.js";
25
25
  import { assertThinkingWithinCeiling, intersectThinkingCeilings } from "../../shared/thinking-ceiling.js";
26
26
  import { formatStructuredOutputRejectionError, MISSING_STRUCTURED_ACCEPTANCE_REPORT_ERROR, MISSING_STRUCTURED_OUTPUT_CALL_ERROR } from "../shared/structured-output.js";
27
27
  import { formatMidToolExitError, isOrdinaryToolForMidToolExit } from "../shared/process-signal.js";
28
28
  import { formatChildToolDiagnostic } from "../shared/tool-availability.js";
29
- import { formatChildModelResolutionDiagnostic, isChildModelResolutionFailure } from "../shared/model-resolution-diagnostic.js";
29
+ import { formatChildModelResolutionDiagnostic, formatInheritedProviderDiagnostic, isChildModelResolutionFailure } from "../shared/model-resolution-diagnostic.js";
30
30
  import { planAbortRecovery } from "../shared/abort-recovery.js";
31
31
  import { buildTimeoutRecoverySummary, collectTrackedMutationEvidence, snapshotTrackedMutations } from "../shared/mutation-evidence.js";
32
32
  import { captureSingleOutputSnapshot, extractChildWrittenOutput, finalizeSingleOutput, formatSavedOutputReference, hasSingleOutputChangedSinceSnapshot, resolveSingleOutput, validateFileOnlyOutputMode } from "../shared/single-output.js";
@@ -75,6 +75,7 @@ function persistSingleResultMetadata(input) {
75
75
  const target = input.result;
76
76
  writeMetadata(input.metadataPath, {
77
77
  runId: input.runId,
78
+ parentSessionId: input.parentSessionId,
78
79
  agent: input.agent,
79
80
  task: PROMPT_REDACTED,
80
81
  exitCode: target.exitCode,
@@ -102,9 +103,6 @@ function persistSingleResultMetadata(input) {
102
103
  timestamp: Date.now(),
103
104
  });
104
105
  }
105
- function formatTimeoutMessage(timeoutMs) {
106
- return `Subagent timed out after ${timeoutMs}ms.`;
107
- }
108
106
  function resolveAttemptTimeout(options) {
109
107
  if (options.timeoutMs === undefined)
110
108
  return undefined;
@@ -112,7 +110,7 @@ function resolveAttemptTimeout(options) {
112
110
  return {
113
111
  timeoutMs: options.timeoutMs,
114
112
  remainingMs: Math.max(0, deadlineAt - Date.now()),
115
- message: formatTimeoutMessage(options.timeoutMs),
113
+ message: `Subagent timed out after ${options.timeoutMs}ms.`,
116
114
  };
117
115
  }
118
116
  function buildPendingAcceptanceLedger(acceptance) {
@@ -193,8 +191,7 @@ function snapshotResult(result, progress) {
193
191
  * foreground detach receipts and terminal consumers use snapshotResult directly.
194
192
  */
195
193
  function snapshotStreamResult(result, progress) {
196
- const snapshot = snapshotResult(result, progress);
197
- snapshot.messages = undefined;
194
+ const snapshot = snapshotResult({ ...result, messages: undefined }, progress);
198
195
  snapshot.toolCalls = boundStreamedToolCalls(result);
199
196
  return snapshot;
200
197
  }
@@ -300,6 +297,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
300
297
  nestedRoute: options.nestedRoute,
301
298
  runFanoutBudget: options.runFanoutBudget,
302
299
  parentSessionId: options.parentSessionId,
300
+ parentSessionFile: options.parentSessionFile,
303
301
  forkCacheKey: options.context === "fork" ? deriveForkPromptCacheKey(options.parentSessionId) : undefined,
304
302
  structuredOutput: options.structuredOutput,
305
303
  fast: options.fast ?? agent.fast,
@@ -419,6 +417,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
419
417
  delete progress.cacheWrite;
420
418
  };
421
419
  const attemptTimeout = resolveAttemptTimeout(options);
420
+ let timeoutCause;
422
421
  if (attemptTimeout?.remainingMs === 0) {
423
422
  result.exitCode = 1;
424
423
  result.timedOut = true;
@@ -468,6 +467,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
468
467
  let sessionSettled = false;
469
468
  let lifecycleFinished = false;
470
469
  let detached = false;
470
+ let hostStopReason;
471
471
  let intercomStarted = false;
472
472
  let assistantError;
473
473
  let removeAbortListener;
@@ -1032,9 +1032,10 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1032
1032
  }
1033
1033
  projectCompleteUsage();
1034
1034
  if (evt.message.model) {
1035
- progress.model = evt.message.model;
1035
+ const observedModel = qualifyModelWithProvider(evt.message.model, evt.message.provider, options.availableModels);
1036
+ progress.model = observedModel;
1036
1037
  if (!result.model)
1037
- result.model = evt.message.model;
1038
+ result.model = observedModel;
1038
1039
  if (expectedModelForVerification && !hasToolCall) {
1039
1040
  const modelVerificationError = formatSubagentModelVerificationError(expectedModelForVerification, evt.message.model, options.availableModels, options.modelResponseAliases, session?.virtualModelId);
1040
1041
  if (modelVerificationError && !result.error)
@@ -1131,9 +1132,10 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1131
1132
  }
1132
1133
  if (attemptTimeout) {
1133
1134
  timeoutTimer = setTimeout(() => {
1134
- if (sessionSettled || lifecycleFinished || interruptedByControl)
1135
+ if (sessionSettled || lifecycleFinished || interruptedByControl || result.timedOut)
1135
1136
  return;
1136
1137
  result.timedOut = true;
1138
+ timeoutCause = attemptTimeout.message;
1137
1139
  clearAllToolTimeouts();
1138
1140
  result.error = attemptTimeout.message;
1139
1141
  result.finalOutput = attemptTimeout.message;
@@ -1187,9 +1189,11 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1187
1189
  }
1188
1190
  };
1189
1191
  const terminateForToolTimeout = (message) => {
1190
- if (sessionSettled || lifecycleFinished || interruptedByControl)
1192
+ if (sessionSettled || lifecycleFinished || interruptedByControl || result.timedOut)
1191
1193
  return;
1194
+ clearTimeout(timeoutTimer);
1192
1195
  result.timedOut = true;
1196
+ timeoutCause = message;
1193
1197
  result.error = message;
1194
1198
  result.finalOutput = message;
1195
1199
  progress.status = "failed";
@@ -1243,10 +1247,11 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1243
1247
  if (!closeError && promptErrorMessage !== undefined) {
1244
1248
  closeError = promptErrorMessage;
1245
1249
  }
1246
- // A foreground child never loads the parent's ambient extensions, so a
1247
- // provider one registers resolves as "not found" before the child starts.
1248
- // Annotate only a creation/prompt failure that produced no turn; keep the
1249
- // core error and add the host rule and both remedies after it.
1250
+ // A foreground child never loads the parent's ambient extensions. A model
1251
+ // whose provider the parent registry does not serve resolves as "not found"
1252
+ // before the child starts; a provider it does serve is inherited without its
1253
+ // extension's session hooks and can fail the first request. Keep the
1254
+ // original error first and add the host rule and remedies after it.
1250
1255
  if (promptErrorMessage !== undefined
1251
1256
  && closeError === promptErrorMessage
1252
1257
  && isChildModelResolutionFailure(promptErrorMessage)
@@ -1255,11 +1260,20 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1255
1260
  && !launch.session.ambientExtensions) {
1256
1261
  closeError = `${promptErrorMessage}\n\n${formatChildModelResolutionDiagnostic({ agent: agent.name, model: launch.session.model, host: "parent", capabilityCeiling: launch.toolPlan.capabilityCeiling })}`;
1257
1262
  }
1263
+ else if (session?.inheritedProvider
1264
+ && closeError !== undefined
1265
+ && (closeError === promptErrorMessage || closeError === assistantError)
1266
+ && progress.toolCount === 0
1267
+ && (result.messages ?? []).every((message) => message.role !== "assistant" || message.stopReason === "error")) {
1268
+ closeError = `${closeError}\n\n${formatInheritedProviderDiagnostic({ agent: agent.name, model: launch.session.model, provider: session.inheritedProvider, capabilityCeiling: launch.toolPlan.capabilityCeiling })}`;
1269
+ }
1258
1270
  const forcedDrainAfterFinalSuccess = (forced || forcedTermination) && (cleanTerminalAssistantStopReceived || agentSettledReceived) && !closeError;
1259
1271
  const forcedDrainAfterEmptyTerminal = forcedDrainAfterFinalSuccess && hasEmptyTerminalAssistantResponse(result.messages ?? []);
1260
- if (!closeError && (abortedBySignal || session?.shutDown) && !result.interrupted && !result.timedOut) {
1261
- closeError = session?.shutDown ? "Subagent stopped because the parent session shut down." : STOPPED_BEFORE_COMPLETION_ERROR;
1272
+ if (!closeError && (abortedBySignal || session?.shutDown || hostStopReason) && !result.interrupted && !result.timedOut) {
1273
+ closeError = hostStopReason ?? (session?.shutDown ? "Subagent stopped because the parent session shut down." : STOPPED_BEFORE_COMPLETION_ERROR);
1262
1274
  }
1275
+ if (hostStopReason && !result.interrupted && !result.timedOut)
1276
+ result.stopped = true;
1263
1277
  // A workflow child ended by the workflow's abort signal was stopped, not failed.
1264
1278
  if (options.abortedAsStopped && abortedBySignal && !session?.shutDown && !result.interrupted && !result.timedOut)
1265
1279
  result.stopped = true;
@@ -1363,9 +1377,20 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1363
1377
  if (abortedBySignal || interruptedByControl || result.timedOut) {
1364
1378
  abortChild();
1365
1379
  }
1366
- options.onChildSession?.({ steer: (text) => created.steer(text), followUp: (text) => created.followUp(text) });
1380
+ options.onChildSession?.({
1381
+ steer: (text) => created.steer(text),
1382
+ followUp: (text) => created.followUp(text),
1383
+ stop: (reason) => {
1384
+ if (sessionSettled || lifecycleFinished)
1385
+ return;
1386
+ hostStopReason = reason;
1387
+ abortChild();
1388
+ },
1389
+ });
1367
1390
  messageBaseline = created.messages.length;
1368
- await created.prompt(`Task: ${task}`);
1391
+ // A runtime replacement can stop a child that detached while it was still being created.
1392
+ if (!hostStopReason)
1393
+ await created.prompt(`Task: ${task}`);
1369
1394
  settle(undefined);
1370
1395
  }
1371
1396
  catch (error) {
@@ -1486,8 +1511,7 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1486
1511
  result.outputPartial = true;
1487
1512
  }
1488
1513
  result.outputState = fullOutput.trim() || result.structuredOutput !== undefined ? "present" : "absent";
1489
- if (result.timedOut) {
1490
- const timeoutMessage = formatTimeoutMessage(options.timeoutMs ?? 0);
1514
+ if (timeoutCause) {
1491
1515
  let requiredOutputMissing;
1492
1516
  if (options.outputMode === "file-only" && options.outputPath) {
1493
1517
  const outputChanged = hasSingleOutputChangedSinceSnapshot(options.outputPath, shared.outputSnapshot);
@@ -1508,8 +1532,8 @@ async function runSingleAttempt(runtimeCwd, agent, task, model, options, shared)
1508
1532
  artifactPaths: shared.artifactPaths,
1509
1533
  });
1510
1534
  fullOutput = fullOutput.trim()
1511
- ? `${timeoutMessage}\n\n${result.timeoutRecovery.message}\n\nPartial output before timeout:\n${fullOutput}`
1512
- : `${timeoutMessage}\n\n${result.timeoutRecovery.message}`;
1535
+ ? `${timeoutCause}\n\n${result.timeoutRecovery.message}\n\nPartial output before timeout:\n${fullOutput}`
1536
+ : `${timeoutCause}\n\n${result.timeoutRecovery.message}`;
1513
1537
  }
1514
1538
  if (options.outputPath && result.exitCode === 0) {
1515
1539
  // The schema is the caller's contract: a bound output file holds the structured result, not closing prose.
@@ -1760,6 +1784,7 @@ async function runSyncCompletionInner(runtimeCwd, agents, agentName, task, optio
1760
1784
  metadataPath: artifactPathsResult?.metadataPath,
1761
1785
  enabled: options.artifactConfig?.enabled !== false && options.artifactConfig?.includeMetadata !== false,
1762
1786
  runId: options.runId,
1787
+ parentSessionId: options.parentSessionId,
1763
1788
  agent: agentName,
1764
1789
  task,
1765
1790
  result: target,
@@ -2124,6 +2149,7 @@ export async function runSync(runtimeCwd, agents, agentName, task, options) {
2124
2149
  metadataPath: failedResult.artifactPaths?.metadataPath,
2125
2150
  enabled: options.artifactConfig?.enabled !== false && options.artifactConfig?.includeMetadata !== false,
2126
2151
  runId: options.runId,
2152
+ parentSessionId: options.parentSessionId,
2127
2153
  agent: failedResult.agent,
2128
2154
  task: failedResult.task,
2129
2155
  result: failedResult,