pi-subagents 0.69.0 → 0.70.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1443) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +1 -1
  3. package/agents/claude-code-writer.md +1 -0
  4. package/agents/codex-exec-writer.md +1 -0
  5. package/agents/cursor-agent-writer.md +1 -0
  6. package/agents/reviewer.md +3 -2
  7. package/agents/worker.md +1 -0
  8. package/docs/agents.md +12 -9
  9. package/docs/configuration.md +3 -1
  10. package/docs/extension-api.md +3 -1
  11. package/docs/models.md +4 -2
  12. package/docs/observability.md +7 -1
  13. package/docs/standalone-background.md +4 -4
  14. package/docs/tool-reference.md +3 -7
  15. package/docs/watchdog.md +2 -0
  16. package/docs/workflows.md +6 -2
  17. package/index.d.ts +3 -0
  18. package/index.d.ts.map +1 -0
  19. package/index.js +10 -0
  20. package/index.js.map +1 -0
  21. package/inspector-runner.mjs +1 -1
  22. package/package.json +89 -73
  23. package/runner-peer-loader.mjs +4 -7
  24. package/runner-peer-preload.mjs +5 -7
  25. package/skills/pi-subagents/SKILL.md +1 -0
  26. package/skills/pi-subagents/references/management-authoring-rpc.md +1 -1
  27. package/skills/pi-subagents/references/multi-lane-orchestration.md +8 -0
  28. package/skills/pi-subagents/references/prompting-and-roles.md +16 -15
  29. package/src/agents/advertised-agent-prompt.d.ts +8 -0
  30. package/src/agents/advertised-agent-prompt.d.ts.map +1 -0
  31. package/src/agents/advertised-agent-prompt.js +77 -0
  32. package/src/agents/advertised-agent-prompt.js.map +1 -0
  33. package/src/agents/agent-management.d.ts +27 -0
  34. package/src/agents/agent-management.d.ts.map +1 -0
  35. package/src/agents/agent-management.js +1514 -0
  36. package/src/agents/agent-management.js.map +1 -0
  37. package/src/agents/agent-memory.d.ts +49 -0
  38. package/src/agents/agent-memory.d.ts.map +1 -0
  39. package/src/agents/agent-memory.js +349 -0
  40. package/src/agents/agent-memory.js.map +1 -0
  41. package/src/agents/agent-refinements.d.ts +100 -0
  42. package/src/agents/agent-refinements.d.ts.map +1 -0
  43. package/src/agents/agent-refinements.js +569 -0
  44. package/src/agents/agent-refinements.js.map +1 -0
  45. package/src/agents/agent-scope.d.ts +3 -0
  46. package/src/agents/agent-scope.d.ts.map +1 -0
  47. package/src/agents/agent-scope.js +6 -0
  48. package/src/agents/agent-scope.js.map +1 -0
  49. package/src/agents/agent-selection.d.ts +3 -0
  50. package/src/agents/agent-selection.d.ts.map +1 -0
  51. package/src/agents/agent-selection.js +23 -0
  52. package/src/agents/agent-selection.js.map +1 -0
  53. package/src/agents/agent-serializer.d.ts +8 -0
  54. package/src/agents/agent-serializer.d.ts.map +1 -0
  55. package/src/agents/agent-serializer.js +196 -0
  56. package/src/agents/agent-serializer.js.map +1 -0
  57. package/src/agents/agents.d.ts +326 -0
  58. package/src/agents/agents.d.ts.map +1 -0
  59. package/src/agents/agents.js +2639 -0
  60. package/src/agents/agents.js.map +1 -0
  61. package/src/agents/builtin-names.d.ts +2 -0
  62. package/src/agents/builtin-names.d.ts.map +1 -0
  63. package/src/agents/builtin-names.js +17 -0
  64. package/src/agents/builtin-names.js.map +1 -0
  65. package/src/agents/chain-serializer.d.ts +7 -0
  66. package/src/agents/chain-serializer.d.ts.map +1 -0
  67. package/src/agents/chain-serializer.js +319 -0
  68. package/src/agents/chain-serializer.js.map +1 -0
  69. package/src/agents/frontmatter.d.ts +16 -0
  70. package/src/agents/frontmatter.d.ts.map +1 -0
  71. package/src/agents/frontmatter.js +142 -0
  72. package/src/agents/frontmatter.js.map +1 -0
  73. package/src/agents/identity.d.ts +8 -0
  74. package/src/agents/identity.d.ts.map +1 -0
  75. package/src/agents/identity.js +30 -0
  76. package/src/agents/identity.js.map +1 -0
  77. package/src/agents/proactive-skills.d.ts +35 -0
  78. package/src/agents/proactive-skills.d.ts.map +1 -0
  79. package/src/agents/proactive-skills.js +154 -0
  80. package/src/agents/proactive-skills.js.map +1 -0
  81. package/src/agents/runtime-agent-events.d.ts +27 -0
  82. package/src/agents/runtime-agent-events.d.ts.map +1 -0
  83. package/src/agents/runtime-agent-events.js +53 -0
  84. package/src/agents/runtime-agent-events.js.map +1 -0
  85. package/src/agents/runtime-agent-registry.d.ts +64 -0
  86. package/src/agents/runtime-agent-registry.d.ts.map +1 -0
  87. package/src/agents/runtime-agent-registry.js +395 -0
  88. package/src/agents/runtime-agent-registry.js.map +1 -0
  89. package/src/agents/skills.d.ts +33 -0
  90. package/src/agents/skills.d.ts.map +1 -0
  91. package/src/agents/skills.js +685 -0
  92. package/src/agents/skills.js.map +1 -0
  93. package/src/api/agents.d.ts +5 -0
  94. package/src/api/agents.d.ts.map +1 -0
  95. package/src/api/agents.js +3 -0
  96. package/src/api/agents.js.map +1 -0
  97. package/src/api/background-work.d.ts +39 -0
  98. package/src/api/background-work.d.ts.map +1 -0
  99. package/src/api/background-work.js +165 -0
  100. package/src/api/background-work.js.map +1 -0
  101. package/src/api/capability-ceiling.d.ts +2 -0
  102. package/src/api/capability-ceiling.d.ts.map +1 -0
  103. package/src/api/capability-ceiling.js +2 -0
  104. package/src/api/capability-ceiling.js.map +1 -0
  105. package/src/api/child-tool-plan.d.ts +2 -0
  106. package/src/api/child-tool-plan.d.ts.map +1 -0
  107. package/src/api/child-tool-plan.js +2 -0
  108. package/src/api/child-tool-plan.js.map +1 -0
  109. package/src/api/control-channel.d.ts +2 -0
  110. package/src/api/control-channel.d.ts.map +1 -0
  111. package/src/api/control-channel.js +2 -0
  112. package/src/api/control-channel.js.map +1 -0
  113. package/src/api/delegation.d.ts +99 -0
  114. package/src/api/delegation.d.ts.map +1 -0
  115. package/src/api/delegation.js +9 -0
  116. package/src/api/delegation.js.map +1 -0
  117. package/src/api/external-job-provider.d.ts +58 -0
  118. package/src/api/external-job-provider.d.ts.map +1 -0
  119. package/src/api/external-job-provider.js +140 -0
  120. package/src/api/external-job-provider.js.map +1 -0
  121. package/src/api/external-runs.d.ts +48 -0
  122. package/src/api/external-runs.d.ts.map +1 -0
  123. package/src/api/external-runs.js +245 -0
  124. package/src/api/external-runs.js.map +1 -0
  125. package/src/api/intercom-bridge.d.ts +2 -0
  126. package/src/api/intercom-bridge.d.ts.map +1 -0
  127. package/src/api/intercom-bridge.js +2 -0
  128. package/src/api/intercom-bridge.js.map +1 -0
  129. package/src/api/preflight.d.ts +173 -0
  130. package/src/api/preflight.d.ts.map +1 -0
  131. package/src/api/preflight.js +362 -0
  132. package/src/api/preflight.js.map +1 -0
  133. package/src/api/project-panes.d.ts +8 -0
  134. package/src/api/project-panes.d.ts.map +1 -0
  135. package/src/api/project-panes.js +8 -0
  136. package/src/api/project-panes.js.map +1 -0
  137. package/src/api/required-child-extensions.d.ts +2 -0
  138. package/src/api/required-child-extensions.d.ts.map +1 -0
  139. package/src/api/required-child-extensions.js +2 -0
  140. package/src/api/required-child-extensions.js.map +1 -0
  141. package/src/api/shared-types.d.ts +2 -0
  142. package/src/api/shared-types.d.ts.map +1 -0
  143. package/src/api/shared-types.js +2 -0
  144. package/src/api/shared-types.js.map +1 -0
  145. package/src/api/workflow-resources.d.ts +3 -0
  146. package/src/api/workflow-resources.d.ts.map +1 -0
  147. package/src/api/workflow-resources.js +2 -0
  148. package/src/api/workflow-resources.js.map +1 -0
  149. package/src/extension/config.d.ts +8 -0
  150. package/src/extension/config.d.ts.map +1 -0
  151. package/src/extension/config.js +245 -0
  152. package/src/extension/config.js.map +1 -0
  153. package/src/extension/control-notices.d.ts +19 -0
  154. package/src/extension/control-notices.d.ts.map +1 -0
  155. package/src/extension/control-notices.js +34 -0
  156. package/src/extension/control-notices.js.map +1 -0
  157. package/src/extension/doctor.d.ts +33 -0
  158. package/src/extension/doctor.d.ts.map +1 -0
  159. package/src/extension/doctor.js +231 -0
  160. package/src/extension/doctor.js.map +1 -0
  161. package/src/extension/fanout-child.d.ts +7 -0
  162. package/src/extension/fanout-child.d.ts.map +1 -0
  163. package/src/extension/fanout-child.js +261 -0
  164. package/src/extension/fanout-child.js.map +1 -0
  165. package/src/extension/herdr-pi-bridge.d.ts +17 -0
  166. package/src/extension/herdr-pi-bridge.d.ts.map +1 -0
  167. package/src/extension/herdr-pi-bridge.js +243 -0
  168. package/src/extension/herdr-pi-bridge.js.map +1 -0
  169. package/src/extension/index.d.ts +20 -0
  170. package/src/extension/index.d.ts.map +1 -0
  171. package/src/extension/index.js +1108 -0
  172. package/src/extension/index.js.map +1 -0
  173. package/src/extension/public-execution.d.ts +62 -0
  174. package/src/extension/public-execution.d.ts.map +1 -0
  175. package/src/extension/public-execution.js +174 -0
  176. package/src/extension/public-execution.js.map +1 -0
  177. package/src/extension/rpc.d.ts +83 -0
  178. package/src/extension/rpc.d.ts.map +1 -0
  179. package/src/extension/rpc.js +687 -0
  180. package/src/extension/rpc.js.map +1 -0
  181. package/src/extension/schemas.d.ts +252 -0
  182. package/src/extension/schemas.d.ts.map +1 -0
  183. package/src/extension/schemas.js +396 -0
  184. package/src/extension/schemas.js.map +1 -0
  185. package/src/extension/steering-notices.d.ts +15 -0
  186. package/src/extension/steering-notices.d.ts.map +1 -0
  187. package/src/extension/steering-notices.js +23 -0
  188. package/src/extension/steering-notices.js.map +1 -0
  189. package/src/extension/subagent-guide.d.ts +4 -0
  190. package/src/extension/subagent-guide.d.ts.map +1 -0
  191. package/src/extension/subagent-guide.js +35 -0
  192. package/src/extension/subagent-guide.js.map +1 -0
  193. package/src/extension/tool-description.d.ts +20 -0
  194. package/src/extension/tool-description.d.ts.map +1 -0
  195. package/src/extension/tool-description.js +160 -0
  196. package/src/extension/tool-description.js.map +1 -0
  197. package/src/extension/tool-result.d.ts +10 -0
  198. package/src/extension/tool-result.d.ts.map +1 -0
  199. package/src/extension/tool-result.js +17 -0
  200. package/src/extension/tool-result.js.map +1 -0
  201. package/src/inspectors/actions.d.ts +23 -0
  202. package/src/inspectors/actions.d.ts.map +1 -0
  203. package/src/inspectors/actions.js +155 -0
  204. package/src/inspectors/actions.js.map +1 -0
  205. package/src/inspectors/ghostty/actions.d.ts +12 -0
  206. package/src/inspectors/ghostty/actions.d.ts.map +1 -0
  207. package/src/inspectors/ghostty/actions.js +63 -0
  208. package/src/inspectors/ghostty/actions.js.map +1 -0
  209. package/src/inspectors/ghostty/plugin.d.ts +8 -0
  210. package/src/inspectors/ghostty/plugin.d.ts.map +1 -0
  211. package/src/inspectors/ghostty/plugin.js +24 -0
  212. package/src/inspectors/ghostty/plugin.js.map +1 -0
  213. package/src/inspectors/herdr/actions.d.ts +26 -0
  214. package/src/inspectors/herdr/actions.d.ts.map +1 -0
  215. package/src/inspectors/herdr/actions.js +134 -0
  216. package/src/inspectors/herdr/actions.js.map +1 -0
  217. package/src/inspectors/herdr/client.d.ts +42 -0
  218. package/src/inspectors/herdr/client.d.ts.map +1 -0
  219. package/src/inspectors/herdr/client.js +130 -0
  220. package/src/inspectors/herdr/client.js.map +1 -0
  221. package/src/inspectors/herdr/focus.d.ts +25 -0
  222. package/src/inspectors/herdr/focus.d.ts.map +1 -0
  223. package/src/inspectors/herdr/focus.js +50 -0
  224. package/src/inspectors/herdr/focus.js.map +1 -0
  225. package/src/inspectors/herdr/plugin.d.ts +7 -0
  226. package/src/inspectors/herdr/plugin.d.ts.map +1 -0
  227. package/src/inspectors/herdr/plugin.js +15 -0
  228. package/src/inspectors/herdr/plugin.js.map +1 -0
  229. package/src/inspectors/herdr/project-panes.d.ts +137 -0
  230. package/src/inspectors/herdr/project-panes.d.ts.map +1 -0
  231. package/src/inspectors/herdr/project-panes.js +608 -0
  232. package/src/inspectors/herdr/project-panes.js.map +1 -0
  233. package/src/inspectors/inspector-runner.d.ts +24 -0
  234. package/src/inspectors/inspector-runner.d.ts.map +1 -0
  235. package/src/inspectors/inspector-runner.js +162 -0
  236. package/src/inspectors/inspector-runner.js.map +1 -0
  237. package/src/inspectors/plugins.d.ts +4 -0
  238. package/src/inspectors/plugins.d.ts.map +1 -0
  239. package/src/inspectors/plugins.js +7 -0
  240. package/src/inspectors/plugins.js.map +1 -0
  241. package/src/inspectors/session-roots-codec.d.ts +16 -0
  242. package/src/inspectors/session-roots-codec.d.ts.map +1 -0
  243. package/src/inspectors/session-roots-codec.js +33 -0
  244. package/src/inspectors/session-roots-codec.js.map +1 -0
  245. package/src/inspectors/shell-command.d.ts +2 -0
  246. package/src/inspectors/shell-command.d.ts.map +1 -0
  247. package/src/inspectors/shell-command.js +17 -0
  248. package/src/inspectors/shell-command.js.map +1 -0
  249. package/src/inspectors/types.d.ts +49 -0
  250. package/src/inspectors/types.d.ts.map +1 -0
  251. package/src/inspectors/types.js +2 -0
  252. package/src/inspectors/types.js.map +1 -0
  253. package/src/integrations/herdr-status.d.ts +46 -0
  254. package/src/integrations/herdr-status.d.ts.map +1 -0
  255. package/src/integrations/herdr-status.js +371 -0
  256. package/src/integrations/herdr-status.js.map +1 -0
  257. package/src/integrations/pi-web-session-liveness.d.ts +20 -0
  258. package/src/integrations/pi-web-session-liveness.d.ts.map +1 -0
  259. package/src/integrations/pi-web-session-liveness.js +54 -0
  260. package/src/integrations/pi-web-session-liveness.js.map +1 -0
  261. package/src/intercom/intercom-bridge.d.ts +59 -0
  262. package/src/intercom/intercom-bridge.d.ts.map +1 -0
  263. package/src/intercom/intercom-bridge.js +192 -0
  264. package/src/intercom/intercom-bridge.js.map +1 -0
  265. package/src/intercom/native-supervisor-channel.d.ts +64 -0
  266. package/src/intercom/native-supervisor-channel.d.ts.map +1 -0
  267. package/src/intercom/native-supervisor-channel.js +894 -0
  268. package/src/intercom/native-supervisor-channel.js.map +1 -0
  269. package/src/intercom/result-intercom.d.ts +36 -0
  270. package/src/intercom/result-intercom.d.ts.map +1 -0
  271. package/src/intercom/result-intercom.js +372 -0
  272. package/src/intercom/result-intercom.js.map +1 -0
  273. package/src/intercom/supervisor-ui.d.ts +40 -0
  274. package/src/intercom/supervisor-ui.d.ts.map +1 -0
  275. package/src/intercom/supervisor-ui.js +202 -0
  276. package/src/intercom/supervisor-ui.js.map +1 -0
  277. package/src/missions/actions.d.ts +55 -0
  278. package/src/missions/actions.d.ts.map +1 -0
  279. package/src/missions/actions.js +396 -0
  280. package/src/missions/actions.js.map +1 -0
  281. package/src/missions/goal-driver.d.ts +16 -0
  282. package/src/missions/goal-driver.d.ts.map +1 -0
  283. package/src/missions/goal-driver.js +157 -0
  284. package/src/missions/goal-driver.js.map +1 -0
  285. package/src/missions/lifecycle.d.ts +40 -0
  286. package/src/missions/lifecycle.d.ts.map +1 -0
  287. package/src/missions/lifecycle.js +352 -0
  288. package/src/missions/lifecycle.js.map +1 -0
  289. package/src/missions/store.d.ts +22 -0
  290. package/src/missions/store.d.ts.map +1 -0
  291. package/src/missions/store.js +573 -0
  292. package/src/missions/store.js.map +1 -0
  293. package/src/missions/types.d.ts +168 -0
  294. package/src/missions/types.d.ts.map +1 -0
  295. package/src/missions/types.js +10 -0
  296. package/src/missions/types.js.map +1 -0
  297. package/src/missions/workflow-state.d.ts +15 -0
  298. package/src/missions/workflow-state.d.ts.map +1 -0
  299. package/src/missions/workflow-state.js +274 -0
  300. package/src/missions/workflow-state.js.map +1 -0
  301. package/src/policy/authority.d.ts +10 -0
  302. package/src/policy/authority.d.ts.map +1 -0
  303. package/src/policy/authority.js +42 -0
  304. package/src/policy/authority.js.map +1 -0
  305. package/src/profiles/profiles.d.ts +135 -0
  306. package/src/profiles/profiles.d.ts.map +1 -0
  307. package/src/profiles/profiles.js +520 -0
  308. package/src/profiles/profiles.js.map +1 -0
  309. package/src/runs/background/active-async-capacity.d.ts +100 -0
  310. package/src/runs/background/active-async-capacity.d.ts.map +1 -0
  311. package/src/runs/background/active-async-capacity.js +492 -0
  312. package/src/runs/background/active-async-capacity.js.map +1 -0
  313. package/src/runs/background/active-run-index.d.ts +13 -0
  314. package/src/runs/background/active-run-index.d.ts.map +1 -0
  315. package/src/runs/background/active-run-index.js +158 -0
  316. package/src/runs/background/active-run-index.js.map +1 -0
  317. package/src/runs/background/async-execution.d.ts +274 -0
  318. package/src/runs/background/async-execution.d.ts.map +1 -0
  319. package/src/runs/background/async-execution.js +1955 -0
  320. package/src/runs/background/async-execution.js.map +1 -0
  321. package/src/runs/background/async-job-tracker.d.ts +28 -0
  322. package/src/runs/background/async-job-tracker.d.ts.map +1 -0
  323. package/src/runs/background/async-job-tracker.js +876 -0
  324. package/src/runs/background/async-job-tracker.js.map +1 -0
  325. package/src/runs/background/async-resume.d.ts +59 -0
  326. package/src/runs/background/async-resume.d.ts.map +1 -0
  327. package/src/runs/background/async-resume.js +667 -0
  328. package/src/runs/background/async-resume.js.map +1 -0
  329. package/src/runs/background/async-retention.d.ts +45 -0
  330. package/src/runs/background/async-retention.d.ts.map +1 -0
  331. package/src/runs/background/async-retention.js +884 -0
  332. package/src/runs/background/async-retention.js.map +1 -0
  333. package/src/runs/background/async-status-snapshot.d.ts +10 -0
  334. package/src/runs/background/async-status-snapshot.d.ts.map +1 -0
  335. package/src/runs/background/async-status-snapshot.js +25 -0
  336. package/src/runs/background/async-status-snapshot.js.map +1 -0
  337. package/src/runs/background/async-status.d.ts +169 -0
  338. package/src/runs/background/async-status.d.ts.map +1 -0
  339. package/src/runs/background/async-status.js +673 -0
  340. package/src/runs/background/async-status.js.map +1 -0
  341. package/src/runs/background/auto-drain.d.ts +17 -0
  342. package/src/runs/background/auto-drain.d.ts.map +1 -0
  343. package/src/runs/background/auto-drain.js +73 -0
  344. package/src/runs/background/auto-drain.js.map +1 -0
  345. package/src/runs/background/binary-bootstrap.d.ts +9 -0
  346. package/src/runs/background/binary-bootstrap.d.ts.map +1 -0
  347. package/src/runs/background/binary-bootstrap.js +41 -0
  348. package/src/runs/background/binary-bootstrap.js.map +1 -0
  349. package/src/runs/background/chain-append.d.ts +35 -0
  350. package/src/runs/background/chain-append.d.ts.map +1 -0
  351. package/src/runs/background/chain-append.js +300 -0
  352. package/src/runs/background/chain-append.js.map +1 -0
  353. package/src/runs/background/chain-root-attachment.d.ts +49 -0
  354. package/src/runs/background/chain-root-attachment.d.ts.map +1 -0
  355. package/src/runs/background/chain-root-attachment.js +184 -0
  356. package/src/runs/background/chain-root-attachment.js.map +1 -0
  357. package/src/runs/background/completion-batcher.d.ts +52 -0
  358. package/src/runs/background/completion-batcher.d.ts.map +1 -0
  359. package/src/runs/background/completion-batcher.js +120 -0
  360. package/src/runs/background/completion-batcher.js.map +1 -0
  361. package/src/runs/background/completion-dedupe.d.ts +14 -0
  362. package/src/runs/background/completion-dedupe.d.ts.map +1 -0
  363. package/src/runs/background/completion-dedupe.js +49 -0
  364. package/src/runs/background/completion-dedupe.js.map +1 -0
  365. package/src/runs/background/completion-replay.d.ts +48 -0
  366. package/src/runs/background/completion-replay.d.ts.map +1 -0
  367. package/src/runs/background/completion-replay.js +267 -0
  368. package/src/runs/background/completion-replay.js.map +1 -0
  369. package/src/runs/background/control-channel.d.ts +156 -0
  370. package/src/runs/background/control-channel.d.ts.map +1 -0
  371. package/src/runs/background/control-channel.js +521 -0
  372. package/src/runs/background/control-channel.js.map +1 -0
  373. package/src/runs/background/fleet-view.d.ts +64 -0
  374. package/src/runs/background/fleet-view.d.ts.map +1 -0
  375. package/src/runs/background/fleet-view.js +648 -0
  376. package/src/runs/background/fleet-view.js.map +1 -0
  377. package/src/runs/background/index-segment.d.ts +16 -0
  378. package/src/runs/background/index-segment.d.ts.map +1 -0
  379. package/src/runs/background/index-segment.js +59 -0
  380. package/src/runs/background/index-segment.js.map +1 -0
  381. package/src/runs/background/inspect-rpc.d.ts +60 -0
  382. package/src/runs/background/inspect-rpc.d.ts.map +1 -0
  383. package/src/runs/background/inspect-rpc.js +406 -0
  384. package/src/runs/background/inspect-rpc.js.map +1 -0
  385. package/src/runs/background/notify.d.ts +162 -0
  386. package/src/runs/background/notify.d.ts.map +1 -0
  387. package/src/runs/background/notify.js +665 -0
  388. package/src/runs/background/notify.js.map +1 -0
  389. package/src/runs/background/owned-process-tree.d.ts +11 -0
  390. package/src/runs/background/owned-process-tree.d.ts.map +1 -0
  391. package/src/runs/background/owned-process-tree.js +117 -0
  392. package/src/runs/background/owned-process-tree.js.map +1 -0
  393. package/src/runs/background/parallel-groups.d.ts +4 -0
  394. package/src/runs/background/parallel-groups.d.ts.map +1 -0
  395. package/src/runs/background/parallel-groups.js +47 -0
  396. package/src/runs/background/parallel-groups.js.map +1 -0
  397. package/src/runs/background/process-terminal.d.ts +34 -0
  398. package/src/runs/background/process-terminal.d.ts.map +1 -0
  399. package/src/runs/background/process-terminal.js +305 -0
  400. package/src/runs/background/process-terminal.js.map +1 -0
  401. package/src/runs/background/result-delivery-ownership.d.ts +11 -0
  402. package/src/runs/background/result-delivery-ownership.d.ts.map +1 -0
  403. package/src/runs/background/result-delivery-ownership.js +37 -0
  404. package/src/runs/background/result-delivery-ownership.js.map +1 -0
  405. package/src/runs/background/result-files.d.ts +33 -0
  406. package/src/runs/background/result-files.d.ts.map +1 -0
  407. package/src/runs/background/result-files.js +528 -0
  408. package/src/runs/background/result-files.js.map +1 -0
  409. package/src/runs/background/result-watcher.d.ts +87 -0
  410. package/src/runs/background/result-watcher.d.ts.map +1 -0
  411. package/src/runs/background/result-watcher.js +764 -0
  412. package/src/runs/background/result-watcher.js.map +1 -0
  413. package/src/runs/background/resume-guidance.d.ts +5 -0
  414. package/src/runs/background/resume-guidance.d.ts.map +1 -0
  415. package/src/runs/background/resume-guidance.js +57 -0
  416. package/src/runs/background/resume-guidance.js.map +1 -0
  417. package/src/runs/background/retained-children.d.ts +25 -0
  418. package/src/runs/background/retained-children.d.ts.map +1 -0
  419. package/src/runs/background/retained-children.js +128 -0
  420. package/src/runs/background/retained-children.js.map +1 -0
  421. package/src/runs/background/retained-nested-route-tracker.d.ts +13 -0
  422. package/src/runs/background/retained-nested-route-tracker.d.ts.map +1 -0
  423. package/src/runs/background/retained-nested-route-tracker.js +91 -0
  424. package/src/runs/background/retained-nested-route-tracker.js.map +1 -0
  425. package/src/runs/background/run-child-session.d.ts +123 -0
  426. package/src/runs/background/run-child-session.d.ts.map +1 -0
  427. package/src/runs/background/run-child-session.js +602 -0
  428. package/src/runs/background/run-child-session.js.map +1 -0
  429. package/src/runs/background/run-id-query.d.ts +4 -0
  430. package/src/runs/background/run-id-query.d.ts.map +1 -0
  431. package/src/runs/background/run-id-query.js +7 -0
  432. package/src/runs/background/run-id-query.js.map +1 -0
  433. package/src/runs/background/run-id-resolver.d.ts +23 -0
  434. package/src/runs/background/run-id-resolver.d.ts.map +1 -0
  435. package/src/runs/background/run-id-resolver.js +170 -0
  436. package/src/runs/background/run-id-resolver.js.map +1 -0
  437. package/src/runs/background/run-status.d.ts +26 -0
  438. package/src/runs/background/run-status.d.ts.map +1 -0
  439. package/src/runs/background/run-status.js +828 -0
  440. package/src/runs/background/run-status.js.map +1 -0
  441. package/src/runs/background/runner-aliases.d.ts +17 -0
  442. package/src/runs/background/runner-aliases.d.ts.map +1 -0
  443. package/src/runs/background/runner-aliases.js +152 -0
  444. package/src/runs/background/runner-aliases.js.map +1 -0
  445. package/src/runs/background/runner-child-launch.d.ts +24 -0
  446. package/src/runs/background/runner-child-launch.d.ts.map +1 -0
  447. package/src/runs/background/runner-child-launch.js +68 -0
  448. package/src/runs/background/runner-child-launch.js.map +1 -0
  449. package/src/runs/background/runner-child-sessions.d.ts +7 -0
  450. package/src/runs/background/runner-child-sessions.d.ts.map +1 -0
  451. package/src/runs/background/runner-child-sessions.js +35 -0
  452. package/src/runs/background/runner-child-sessions.js.map +1 -0
  453. package/src/runs/background/runner-http-dispatcher.d.ts +43 -0
  454. package/src/runs/background/runner-http-dispatcher.d.ts.map +1 -0
  455. package/src/runs/background/runner-http-dispatcher.js +114 -0
  456. package/src/runs/background/runner-http-dispatcher.js.map +1 -0
  457. package/src/runs/background/scheduled-runs.d.ts +116 -0
  458. package/src/runs/background/scheduled-runs.d.ts.map +1 -0
  459. package/src/runs/background/scheduled-runs.js +1024 -0
  460. package/src/runs/background/scheduled-runs.js.map +1 -0
  461. package/src/runs/background/stale-run-reconciler.d.ts +37 -0
  462. package/src/runs/background/stale-run-reconciler.d.ts.map +1 -0
  463. package/src/runs/background/stale-run-reconciler.js +393 -0
  464. package/src/runs/background/stale-run-reconciler.js.map +1 -0
  465. package/src/runs/background/steering.d.ts +52 -0
  466. package/src/runs/background/steering.d.ts.map +1 -0
  467. package/src/runs/background/steering.js +247 -0
  468. package/src/runs/background/steering.js.map +1 -0
  469. package/src/runs/background/subagent-runner.d.ts +197 -0
  470. package/src/runs/background/subagent-runner.d.ts.map +1 -0
  471. package/src/runs/background/subagent-runner.js +5052 -0
  472. package/src/runs/background/subagent-runner.js.map +1 -0
  473. package/src/runs/background/subagent-wait.d.ts +122 -0
  474. package/src/runs/background/subagent-wait.d.ts.map +1 -0
  475. package/src/runs/background/subagent-wait.js +735 -0
  476. package/src/runs/background/subagent-wait.js.map +1 -0
  477. package/src/runs/background/terminal-run-index.d.ts +8 -0
  478. package/src/runs/background/terminal-run-index.d.ts.map +1 -0
  479. package/src/runs/background/terminal-run-index.js +123 -0
  480. package/src/runs/background/terminal-run-index.js.map +1 -0
  481. package/src/runs/background/top-level-async.d.ts +8 -0
  482. package/src/runs/background/top-level-async.d.ts.map +1 -0
  483. package/src/runs/background/top-level-async.js +6 -0
  484. package/src/runs/background/top-level-async.js.map +1 -0
  485. package/src/runs/background/wait-completions.d.ts +29 -0
  486. package/src/runs/background/wait-completions.d.ts.map +1 -0
  487. package/src/runs/background/wait-completions.js +264 -0
  488. package/src/runs/background/wait-completions.js.map +1 -0
  489. package/src/runs/background/wait-config.d.ts +9 -0
  490. package/src/runs/background/wait-config.d.ts.map +1 -0
  491. package/src/runs/background/wait-config.js +47 -0
  492. package/src/runs/background/wait-config.js.map +1 -0
  493. package/src/runs/background/wait-subscriptions.d.ts +27 -0
  494. package/src/runs/background/wait-subscriptions.d.ts.map +1 -0
  495. package/src/runs/background/wait-subscriptions.js +337 -0
  496. package/src/runs/background/wait-subscriptions.js.map +1 -0
  497. package/src/runs/background/wait-tool.d.ts +7 -0
  498. package/src/runs/background/wait-tool.d.ts.map +1 -0
  499. package/src/runs/background/wait-tool.js +36 -0
  500. package/src/runs/background/wait-tool.js.map +1 -0
  501. package/src/runs/foreground/async-dismiss-action.d.ts +7 -0
  502. package/src/runs/foreground/async-dismiss-action.d.ts.map +1 -0
  503. package/src/runs/foreground/async-dismiss-action.js +82 -0
  504. package/src/runs/foreground/async-dismiss-action.js.map +1 -0
  505. package/src/runs/foreground/async-steering-action.d.ts +32 -0
  506. package/src/runs/foreground/async-steering-action.d.ts.map +1 -0
  507. package/src/runs/foreground/async-steering-action.js +270 -0
  508. package/src/runs/foreground/async-steering-action.js.map +1 -0
  509. package/src/runs/foreground/async-stop-action.d.ts +7 -0
  510. package/src/runs/foreground/async-stop-action.d.ts.map +1 -0
  511. package/src/runs/foreground/async-stop-action.js +171 -0
  512. package/src/runs/foreground/async-stop-action.js.map +1 -0
  513. package/src/runs/foreground/execution.d.ts +11 -0
  514. package/src/runs/foreground/execution.d.ts.map +1 -0
  515. package/src/runs/foreground/execution.js +2089 -0
  516. package/src/runs/foreground/execution.js.map +1 -0
  517. package/src/runs/foreground/foreground-control.d.ts +25 -0
  518. package/src/runs/foreground/foreground-control.d.ts.map +1 -0
  519. package/src/runs/foreground/foreground-control.js +139 -0
  520. package/src/runs/foreground/foreground-control.js.map +1 -0
  521. package/src/runs/foreground/foreground-history.d.ts +12 -0
  522. package/src/runs/foreground/foreground-history.d.ts.map +1 -0
  523. package/src/runs/foreground/foreground-history.js +165 -0
  524. package/src/runs/foreground/foreground-history.js.map +1 -0
  525. package/src/runs/foreground/prompt-audit.d.ts +33 -0
  526. package/src/runs/foreground/prompt-audit.d.ts.map +1 -0
  527. package/src/runs/foreground/prompt-audit.js +143 -0
  528. package/src/runs/foreground/prompt-audit.js.map +1 -0
  529. package/src/runs/foreground/subagent-executor.d.ts +296 -0
  530. package/src/runs/foreground/subagent-executor.d.ts.map +1 -0
  531. package/src/runs/foreground/subagent-executor.js +7045 -0
  532. package/src/runs/foreground/subagent-executor.js.map +1 -0
  533. package/src/runs/foreground/workflow-detach-reconcile.d.ts +16 -0
  534. package/src/runs/foreground/workflow-detach-reconcile.d.ts.map +1 -0
  535. package/src/runs/foreground/workflow-detach-reconcile.js +284 -0
  536. package/src/runs/foreground/workflow-detach-reconcile.js.map +1 -0
  537. package/src/runs/foreground/workflow-foreground-steering.d.ts +44 -0
  538. package/src/runs/foreground/workflow-foreground-steering.d.ts.map +1 -0
  539. package/src/runs/foreground/workflow-foreground-steering.js +149 -0
  540. package/src/runs/foreground/workflow-foreground-steering.js.map +1 -0
  541. package/src/runs/shared/abort-recovery.d.ts +27 -0
  542. package/src/runs/shared/abort-recovery.d.ts.map +1 -0
  543. package/src/runs/shared/abort-recovery.js +109 -0
  544. package/src/runs/shared/abort-recovery.js.map +1 -0
  545. package/src/runs/shared/acceptance.d.ts +145 -0
  546. package/src/runs/shared/acceptance.d.ts.map +1 -0
  547. package/src/runs/shared/acceptance.js +1617 -0
  548. package/src/runs/shared/acceptance.js.map +1 -0
  549. package/src/runs/shared/agent-contract.d.ts +6 -0
  550. package/src/runs/shared/agent-contract.d.ts.map +1 -0
  551. package/src/runs/shared/agent-contract.js +36 -0
  552. package/src/runs/shared/agent-contract.js.map +1 -0
  553. package/src/runs/shared/async-status-projection.d.ts +94 -0
  554. package/src/runs/shared/async-status-projection.d.ts.map +1 -0
  555. package/src/runs/shared/async-status-projection.js +542 -0
  556. package/src/runs/shared/async-status-projection.js.map +1 -0
  557. package/src/runs/shared/background-process-options.d.ts +5 -0
  558. package/src/runs/shared/background-process-options.d.ts.map +1 -0
  559. package/src/runs/shared/background-process-options.js +7 -0
  560. package/src/runs/shared/background-process-options.js.map +1 -0
  561. package/src/runs/shared/capability-ceiling.d.ts +58 -0
  562. package/src/runs/shared/capability-ceiling.d.ts.map +1 -0
  563. package/src/runs/shared/capability-ceiling.js +179 -0
  564. package/src/runs/shared/capability-ceiling.js.map +1 -0
  565. package/src/runs/shared/chain-outputs.d.ts +19 -0
  566. package/src/runs/shared/chain-outputs.d.ts.map +1 -0
  567. package/src/runs/shared/chain-outputs.js +105 -0
  568. package/src/runs/shared/chain-outputs.js.map +1 -0
  569. package/src/runs/shared/child-hooks.d.ts +32 -0
  570. package/src/runs/shared/child-hooks.d.ts.map +1 -0
  571. package/src/runs/shared/child-hooks.js +173 -0
  572. package/src/runs/shared/child-hooks.js.map +1 -0
  573. package/src/runs/shared/child-identity.d.ts +24 -0
  574. package/src/runs/shared/child-identity.d.ts.map +1 -0
  575. package/src/runs/shared/child-identity.js +41 -0
  576. package/src/runs/shared/child-identity.js.map +1 -0
  577. package/src/runs/shared/child-launch-plan.d.ts +71 -0
  578. package/src/runs/shared/child-launch-plan.d.ts.map +1 -0
  579. package/src/runs/shared/child-launch-plan.js +89 -0
  580. package/src/runs/shared/child-launch-plan.js.map +1 -0
  581. package/src/runs/shared/child-launch.d.ts +112 -0
  582. package/src/runs/shared/child-launch.d.ts.map +1 -0
  583. package/src/runs/shared/child-launch.js +230 -0
  584. package/src/runs/shared/child-launch.js.map +1 -0
  585. package/src/runs/shared/child-lifecycle.d.ts +14 -0
  586. package/src/runs/shared/child-lifecycle.d.ts.map +1 -0
  587. package/src/runs/shared/child-lifecycle.js +23 -0
  588. package/src/runs/shared/child-lifecycle.js.map +1 -0
  589. package/src/runs/shared/child-runtime-config.d.ts +102 -0
  590. package/src/runs/shared/child-runtime-config.d.ts.map +1 -0
  591. package/src/runs/shared/child-runtime-config.js +39 -0
  592. package/src/runs/shared/child-runtime-config.js.map +1 -0
  593. package/src/runs/shared/child-session.d.ts +154 -0
  594. package/src/runs/shared/child-session.d.ts.map +1 -0
  595. package/src/runs/shared/child-session.js +412 -0
  596. package/src/runs/shared/child-session.js.map +1 -0
  597. package/src/runs/shared/child-tool-plan.d.ts +73 -0
  598. package/src/runs/shared/child-tool-plan.d.ts.map +1 -0
  599. package/src/runs/shared/child-tool-plan.js +380 -0
  600. package/src/runs/shared/child-tool-plan.js.map +1 -0
  601. package/src/runs/shared/claude-code-adapter.d.ts +25 -0
  602. package/src/runs/shared/claude-code-adapter.d.ts.map +1 -0
  603. package/src/runs/shared/claude-code-adapter.js +120 -0
  604. package/src/runs/shared/claude-code-adapter.js.map +1 -0
  605. package/src/runs/shared/codex-exec-adapter.d.ts +26 -0
  606. package/src/runs/shared/codex-exec-adapter.d.ts.map +1 -0
  607. package/src/runs/shared/codex-exec-adapter.js +128 -0
  608. package/src/runs/shared/codex-exec-adapter.js.map +1 -0
  609. package/src/runs/shared/context-mode.d.ts +13 -0
  610. package/src/runs/shared/context-mode.d.ts.map +1 -0
  611. package/src/runs/shared/context-mode.js +39 -0
  612. package/src/runs/shared/context-mode.js.map +1 -0
  613. package/src/runs/shared/cursor-agent-adapter.d.ts +27 -0
  614. package/src/runs/shared/cursor-agent-adapter.d.ts.map +1 -0
  615. package/src/runs/shared/cursor-agent-adapter.js +100 -0
  616. package/src/runs/shared/cursor-agent-adapter.js.map +1 -0
  617. package/src/runs/shared/dynamic-fanout.d.ts +50 -0
  618. package/src/runs/shared/dynamic-fanout.d.ts.map +1 -0
  619. package/src/runs/shared/dynamic-fanout.js +274 -0
  620. package/src/runs/shared/dynamic-fanout.js.map +1 -0
  621. package/src/runs/shared/effective-system-prompt.d.ts +18 -0
  622. package/src/runs/shared/effective-system-prompt.d.ts.map +1 -0
  623. package/src/runs/shared/effective-system-prompt.js +23 -0
  624. package/src/runs/shared/effective-system-prompt.js.map +1 -0
  625. package/src/runs/shared/extension-bindings.d.ts +17 -0
  626. package/src/runs/shared/extension-bindings.d.ts.map +1 -0
  627. package/src/runs/shared/extension-bindings.js +83 -0
  628. package/src/runs/shared/extension-bindings.js.map +1 -0
  629. package/src/runs/shared/external-cli-contract.d.ts +30 -0
  630. package/src/runs/shared/external-cli-contract.d.ts.map +1 -0
  631. package/src/runs/shared/external-cli-contract.js +146 -0
  632. package/src/runs/shared/external-cli-contract.js.map +1 -0
  633. package/src/runs/shared/external-cli-preflight.d.ts +32 -0
  634. package/src/runs/shared/external-cli-preflight.d.ts.map +1 -0
  635. package/src/runs/shared/external-cli-preflight.js +116 -0
  636. package/src/runs/shared/external-cli-preflight.js.map +1 -0
  637. package/src/runs/shared/external-cli-runner.d.ts +66 -0
  638. package/src/runs/shared/external-cli-runner.d.ts.map +1 -0
  639. package/src/runs/shared/external-cli-runner.js +421 -0
  640. package/src/runs/shared/external-cli-runner.js.map +1 -0
  641. package/src/runs/shared/external-job-bridge.d.ts +18 -0
  642. package/src/runs/shared/external-job-bridge.d.ts.map +1 -0
  643. package/src/runs/shared/external-job-bridge.js +424 -0
  644. package/src/runs/shared/external-job-bridge.js.map +1 -0
  645. package/src/runs/shared/external-job-runner.d.ts +45 -0
  646. package/src/runs/shared/external-job-runner.d.ts.map +1 -0
  647. package/src/runs/shared/external-job-runner.js +353 -0
  648. package/src/runs/shared/external-job-runner.js.map +1 -0
  649. package/src/runs/shared/fast-mode-extension.d.ts +4 -0
  650. package/src/runs/shared/fast-mode-extension.d.ts.map +1 -0
  651. package/src/runs/shared/fast-mode-extension.js +9 -0
  652. package/src/runs/shared/fast-mode-extension.js.map +1 -0
  653. package/src/runs/shared/herdr-connection.d.ts +71 -0
  654. package/src/runs/shared/herdr-connection.d.ts.map +1 -0
  655. package/src/runs/shared/herdr-connection.js +258 -0
  656. package/src/runs/shared/herdr-connection.js.map +1 -0
  657. package/src/runs/shared/herdr-external-adapters.d.ts +148 -0
  658. package/src/runs/shared/herdr-external-adapters.d.ts.map +1 -0
  659. package/src/runs/shared/herdr-external-adapters.js +405 -0
  660. package/src/runs/shared/herdr-external-adapters.js.map +1 -0
  661. package/src/runs/shared/herdr-machine.d.ts +48 -0
  662. package/src/runs/shared/herdr-machine.d.ts.map +1 -0
  663. package/src/runs/shared/herdr-machine.js +247 -0
  664. package/src/runs/shared/herdr-machine.js.map +1 -0
  665. package/src/runs/shared/herdr-pi-protocol.d.ts +22 -0
  666. package/src/runs/shared/herdr-pi-protocol.d.ts.map +1 -0
  667. package/src/runs/shared/herdr-pi-protocol.js +58 -0
  668. package/src/runs/shared/herdr-pi-protocol.js.map +1 -0
  669. package/src/runs/shared/herdr-placed-run.d.ts +267 -0
  670. package/src/runs/shared/herdr-placed-run.d.ts.map +1 -0
  671. package/src/runs/shared/herdr-placed-run.js +716 -0
  672. package/src/runs/shared/herdr-placed-run.js.map +1 -0
  673. package/src/runs/shared/host-step-status.d.ts +34 -0
  674. package/src/runs/shared/host-step-status.d.ts.map +1 -0
  675. package/src/runs/shared/host-step-status.js +245 -0
  676. package/src/runs/shared/host-step-status.js.map +1 -0
  677. package/src/runs/shared/lane-metadata.d.ts +24 -0
  678. package/src/runs/shared/lane-metadata.d.ts.map +1 -0
  679. package/src/runs/shared/lane-metadata.js +127 -0
  680. package/src/runs/shared/lane-metadata.js.map +1 -0
  681. package/src/runs/shared/launch-cwd.d.ts +2 -0
  682. package/src/runs/shared/launch-cwd.d.ts.map +1 -0
  683. package/src/runs/shared/launch-cwd.js +17 -0
  684. package/src/runs/shared/launch-cwd.js.map +1 -0
  685. package/src/runs/shared/long-running-guard.d.ts +33 -0
  686. package/src/runs/shared/long-running-guard.d.ts.map +1 -0
  687. package/src/runs/shared/long-running-guard.js +199 -0
  688. package/src/runs/shared/long-running-guard.js.map +1 -0
  689. package/src/runs/shared/mcp-config-sources.d.ts +30 -0
  690. package/src/runs/shared/mcp-config-sources.d.ts.map +1 -0
  691. package/src/runs/shared/mcp-config-sources.js +419 -0
  692. package/src/runs/shared/mcp-config-sources.js.map +1 -0
  693. package/src/runs/shared/mcp-direct-tool-allowlist.d.ts +59 -0
  694. package/src/runs/shared/mcp-direct-tool-allowlist.d.ts.map +1 -0
  695. package/src/runs/shared/mcp-direct-tool-allowlist.js +400 -0
  696. package/src/runs/shared/mcp-direct-tool-allowlist.js.map +1 -0
  697. package/src/runs/shared/mcp-direct-tool-grant.d.ts +41 -0
  698. package/src/runs/shared/mcp-direct-tool-grant.d.ts.map +1 -0
  699. package/src/runs/shared/mcp-direct-tool-grant.js +146 -0
  700. package/src/runs/shared/mcp-direct-tool-grant.js.map +1 -0
  701. package/src/runs/shared/model-resolution-diagnostic.d.ts +22 -0
  702. package/src/runs/shared/model-resolution-diagnostic.d.ts.map +1 -0
  703. package/src/runs/shared/model-resolution-diagnostic.js +65 -0
  704. package/src/runs/shared/model-resolution-diagnostic.js.map +1 -0
  705. package/src/runs/shared/model-resolution.d.ts +92 -0
  706. package/src/runs/shared/model-resolution.d.ts.map +1 -0
  707. package/src/runs/shared/model-resolution.js +343 -0
  708. package/src/runs/shared/model-resolution.js.map +1 -0
  709. package/src/runs/shared/model-scope.d.ts +68 -0
  710. package/src/runs/shared/model-scope.d.ts.map +1 -0
  711. package/src/runs/shared/model-scope.js +156 -0
  712. package/src/runs/shared/model-scope.js.map +1 -0
  713. package/src/runs/shared/mutation-evidence.d.ts +19 -0
  714. package/src/runs/shared/mutation-evidence.d.ts.map +1 -0
  715. package/src/runs/shared/mutation-evidence.js +199 -0
  716. package/src/runs/shared/mutation-evidence.js.map +1 -0
  717. package/src/runs/shared/nested-events.d.ts +134 -0
  718. package/src/runs/shared/nested-events.d.ts.map +1 -0
  719. package/src/runs/shared/nested-events.js +1056 -0
  720. package/src/runs/shared/nested-events.js.map +1 -0
  721. package/src/runs/shared/nested-path.d.ts +9 -0
  722. package/src/runs/shared/nested-path.d.ts.map +1 -0
  723. package/src/runs/shared/nested-path.js +35 -0
  724. package/src/runs/shared/nested-path.js.map +1 -0
  725. package/src/runs/shared/nested-render.d.ts +21 -0
  726. package/src/runs/shared/nested-render.d.ts.map +1 -0
  727. package/src/runs/shared/nested-render.js +116 -0
  728. package/src/runs/shared/nested-render.js.map +1 -0
  729. package/src/runs/shared/orca-progress-tabs.d.ts +33 -0
  730. package/src/runs/shared/orca-progress-tabs.d.ts.map +1 -0
  731. package/src/runs/shared/orca-progress-tabs.js +527 -0
  732. package/src/runs/shared/orca-progress-tabs.js.map +1 -0
  733. package/src/runs/shared/parallel-handoff.d.ts +73 -0
  734. package/src/runs/shared/parallel-handoff.d.ts.map +1 -0
  735. package/src/runs/shared/parallel-handoff.js +733 -0
  736. package/src/runs/shared/parallel-handoff.js.map +1 -0
  737. package/src/runs/shared/parallel-utils.d.ts +164 -0
  738. package/src/runs/shared/parallel-utils.d.ts.map +1 -0
  739. package/src/runs/shared/parallel-utils.js +126 -0
  740. package/src/runs/shared/parallel-utils.js.map +1 -0
  741. package/src/runs/shared/permissions.d.ts +13 -0
  742. package/src/runs/shared/permissions.d.ts.map +1 -0
  743. package/src/runs/shared/permissions.js +93 -0
  744. package/src/runs/shared/permissions.js.map +1 -0
  745. package/src/runs/shared/pi-spawn.d.ts +28 -0
  746. package/src/runs/shared/pi-spawn.d.ts.map +1 -0
  747. package/src/runs/shared/pi-spawn.js +156 -0
  748. package/src/runs/shared/pi-spawn.js.map +1 -0
  749. package/src/runs/shared/process-signal.d.ts +16 -0
  750. package/src/runs/shared/process-signal.d.ts.map +1 -0
  751. package/src/runs/shared/process-signal.js +22 -0
  752. package/src/runs/shared/process-signal.js.map +1 -0
  753. package/src/runs/shared/readonly-drain-observation.d.ts +26 -0
  754. package/src/runs/shared/readonly-drain-observation.d.ts.map +1 -0
  755. package/src/runs/shared/readonly-drain-observation.js +51 -0
  756. package/src/runs/shared/readonly-drain-observation.js.map +1 -0
  757. package/src/runs/shared/run-fanout-budget.d.ts +15 -0
  758. package/src/runs/shared/run-fanout-budget.d.ts.map +1 -0
  759. package/src/runs/shared/run-fanout-budget.js +259 -0
  760. package/src/runs/shared/run-fanout-budget.js.map +1 -0
  761. package/src/runs/shared/run-history.d.ts +20 -0
  762. package/src/runs/shared/run-history.d.ts.map +1 -0
  763. package/src/runs/shared/run-history.js +200 -0
  764. package/src/runs/shared/run-history.js.map +1 -0
  765. package/src/runs/shared/runtime-acknowledged-extensions.d.ts +8 -0
  766. package/src/runs/shared/runtime-acknowledged-extensions.d.ts.map +1 -0
  767. package/src/runs/shared/runtime-acknowledged-extensions.js +45 -0
  768. package/src/runs/shared/runtime-acknowledged-extensions.js.map +1 -0
  769. package/src/runs/shared/session-lease.d.ts +70 -0
  770. package/src/runs/shared/session-lease.d.ts.map +1 -0
  771. package/src/runs/shared/session-lease.js +251 -0
  772. package/src/runs/shared/session-lease.js.map +1 -0
  773. package/src/runs/shared/single-output.d.ts +61 -0
  774. package/src/runs/shared/single-output.d.ts.map +1 -0
  775. package/src/runs/shared/single-output.js +271 -0
  776. package/src/runs/shared/single-output.js.map +1 -0
  777. package/src/runs/shared/spawn-budget.d.ts +21 -0
  778. package/src/runs/shared/spawn-budget.d.ts.map +1 -0
  779. package/src/runs/shared/spawn-budget.js +94 -0
  780. package/src/runs/shared/spawn-budget.js.map +1 -0
  781. package/src/runs/shared/structured-output.d.ts +57 -0
  782. package/src/runs/shared/structured-output.d.ts.map +1 -0
  783. package/src/runs/shared/structured-output.js +391 -0
  784. package/src/runs/shared/structured-output.js.map +1 -0
  785. package/src/runs/shared/subagent-control.d.ts +50 -0
  786. package/src/runs/shared/subagent-control.d.ts.map +1 -0
  787. package/src/runs/shared/subagent-control.js +234 -0
  788. package/src/runs/shared/subagent-control.js.map +1 -0
  789. package/src/runs/shared/subagent-prompt-runtime.d.ts +28 -0
  790. package/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -0
  791. package/src/runs/shared/subagent-prompt-runtime.js +548 -0
  792. package/src/runs/shared/subagent-prompt-runtime.js.map +1 -0
  793. package/src/runs/shared/tool-availability.d.ts +17 -0
  794. package/src/runs/shared/tool-availability.d.ts.map +1 -0
  795. package/src/runs/shared/tool-availability.js +30 -0
  796. package/src/runs/shared/tool-availability.js.map +1 -0
  797. package/src/runs/shared/tool-budget.d.ts +22 -0
  798. package/src/runs/shared/tool-budget.d.ts.map +1 -0
  799. package/src/runs/shared/tool-budget.js +79 -0
  800. package/src/runs/shared/tool-budget.js.map +1 -0
  801. package/src/runs/shared/tool-timeout.d.ts +32 -0
  802. package/src/runs/shared/tool-timeout.d.ts.map +1 -0
  803. package/src/runs/shared/tool-timeout.js +74 -0
  804. package/src/runs/shared/tool-timeout.js.map +1 -0
  805. package/src/runs/shared/usage-budget.d.ts +8 -0
  806. package/src/runs/shared/usage-budget.d.ts.map +1 -0
  807. package/src/runs/shared/usage-budget.js +75 -0
  808. package/src/runs/shared/usage-budget.js.map +1 -0
  809. package/src/runs/shared/usage-reconciliation.d.ts +9 -0
  810. package/src/runs/shared/usage-reconciliation.d.ts.map +1 -0
  811. package/src/runs/shared/usage-reconciliation.js +72 -0
  812. package/src/runs/shared/usage-reconciliation.js.map +1 -0
  813. package/src/runs/shared/workflow-async-child-guidance.d.ts +4 -0
  814. package/src/runs/shared/workflow-async-child-guidance.d.ts.map +1 -0
  815. package/src/runs/shared/workflow-async-child-guidance.js +18 -0
  816. package/src/runs/shared/workflow-async-child-guidance.js.map +1 -0
  817. package/src/runs/shared/workflow-graph.d.ts +32 -0
  818. package/src/runs/shared/workflow-graph.d.ts.map +1 -0
  819. package/src/runs/shared/workflow-graph.js +222 -0
  820. package/src/runs/shared/workflow-graph.js.map +1 -0
  821. package/src/runs/shared/worktree-cleanup-plan.d.ts +78 -0
  822. package/src/runs/shared/worktree-cleanup-plan.d.ts.map +1 -0
  823. package/src/runs/shared/worktree-cleanup-plan.js +782 -0
  824. package/src/runs/shared/worktree-cleanup-plan.js.map +1 -0
  825. package/src/runs/shared/worktree-setup-command.d.ts +39 -0
  826. package/src/runs/shared/worktree-setup-command.d.ts.map +1 -0
  827. package/src/runs/shared/worktree-setup-command.js +201 -0
  828. package/src/runs/shared/worktree-setup-command.js.map +1 -0
  829. package/src/runs/shared/worktree.d.ts +179 -0
  830. package/src/runs/shared/worktree.d.ts.map +1 -0
  831. package/src/runs/shared/worktree.js +1333 -0
  832. package/src/runs/shared/worktree.js.map +1 -0
  833. package/src/shared/accessible-dir.d.ts +12 -0
  834. package/src/shared/accessible-dir.d.ts.map +1 -0
  835. package/src/shared/accessible-dir.js +37 -0
  836. package/src/shared/accessible-dir.js.map +1 -0
  837. package/src/shared/agent-stream-options.d.ts +6 -0
  838. package/src/shared/agent-stream-options.d.ts.map +1 -0
  839. package/src/shared/agent-stream-options.js +4 -0
  840. package/src/shared/agent-stream-options.js.map +1 -0
  841. package/src/shared/artifacts.d.ts +23 -0
  842. package/src/shared/artifacts.d.ts.map +1 -0
  843. package/src/shared/artifacts.js +273 -0
  844. package/src/shared/artifacts.js.map +1 -0
  845. package/src/shared/atomic-json.d.ts +19 -0
  846. package/src/shared/atomic-json.d.ts.map +1 -0
  847. package/src/shared/atomic-json.js +60 -0
  848. package/src/shared/atomic-json.js.map +1 -0
  849. package/src/shared/capacity-resilient-json.d.ts +27 -0
  850. package/src/shared/capacity-resilient-json.d.ts.map +1 -0
  851. package/src/shared/capacity-resilient-json.js +87 -0
  852. package/src/shared/capacity-resilient-json.js.map +1 -0
  853. package/src/shared/child-cache-retention.d.ts +30 -0
  854. package/src/shared/child-cache-retention.d.ts.map +1 -0
  855. package/src/shared/child-cache-retention.js +41 -0
  856. package/src/shared/child-cache-retention.js.map +1 -0
  857. package/src/shared/child-session-name.d.ts +9 -0
  858. package/src/shared/child-session-name.d.ts.map +1 -0
  859. package/src/shared/child-session-name.js +39 -0
  860. package/src/shared/child-session-name.js.map +1 -0
  861. package/src/shared/child-transcript.d.ts +38 -0
  862. package/src/shared/child-transcript.d.ts.map +1 -0
  863. package/src/shared/child-transcript.js +226 -0
  864. package/src/shared/child-transcript.js.map +1 -0
  865. package/src/shared/completion-owner.d.ts +3 -0
  866. package/src/shared/completion-owner.d.ts.map +1 -0
  867. package/src/shared/completion-owner.js +9 -0
  868. package/src/shared/completion-owner.js.map +1 -0
  869. package/src/shared/display-text.d.ts +6 -0
  870. package/src/shared/display-text.d.ts.map +1 -0
  871. package/src/shared/display-text.js +155 -0
  872. package/src/shared/display-text.js.map +1 -0
  873. package/src/shared/extension-context.d.ts +6 -0
  874. package/src/shared/extension-context.d.ts.map +1 -0
  875. package/src/shared/extension-context.js +22 -0
  876. package/src/shared/extension-context.js.map +1 -0
  877. package/src/shared/file-coalescer.d.ts +12 -0
  878. package/src/shared/file-coalescer.d.ts.map +1 -0
  879. package/src/shared/file-coalescer.js +35 -0
  880. package/src/shared/file-coalescer.js.map +1 -0
  881. package/src/shared/file-system-retry.d.ts +32 -0
  882. package/src/shared/file-system-retry.d.ts.map +1 -0
  883. package/src/shared/file-system-retry.js +85 -0
  884. package/src/shared/file-system-retry.js.map +1 -0
  885. package/src/shared/fork-context.d.ts +59 -0
  886. package/src/shared/fork-context.d.ts.map +1 -0
  887. package/src/shared/fork-context.js +171 -0
  888. package/src/shared/fork-context.js.map +1 -0
  889. package/src/shared/fork-session-cwd.d.ts +3 -0
  890. package/src/shared/fork-session-cwd.d.ts.map +1 -0
  891. package/src/shared/fork-session-cwd.js +24 -0
  892. package/src/shared/fork-session-cwd.js.map +1 -0
  893. package/src/shared/formatters.d.ts +36 -0
  894. package/src/shared/formatters.d.ts.map +1 -0
  895. package/src/shared/formatters.js +143 -0
  896. package/src/shared/formatters.js.map +1 -0
  897. package/src/shared/jsonl-writer.d.ts +21 -0
  898. package/src/shared/jsonl-writer.d.ts.map +1 -0
  899. package/src/shared/jsonl-writer.js +68 -0
  900. package/src/shared/jsonl-writer.js.map +1 -0
  901. package/src/shared/launch-contract.d.ts +64 -0
  902. package/src/shared/launch-contract.d.ts.map +1 -0
  903. package/src/shared/launch-contract.js +140 -0
  904. package/src/shared/launch-contract.js.map +1 -0
  905. package/src/shared/model-info.d.ts +44 -0
  906. package/src/shared/model-info.d.ts.map +1 -0
  907. package/src/shared/model-info.js +73 -0
  908. package/src/shared/model-info.js.map +1 -0
  909. package/src/shared/model-response-aliases.d.ts +2 -0
  910. package/src/shared/model-response-aliases.d.ts.map +1 -0
  911. package/src/shared/model-response-aliases.js +16 -0
  912. package/src/shared/model-response-aliases.js.map +1 -0
  913. package/src/shared/node-executable.d.ts +2 -0
  914. package/src/shared/node-executable.d.ts.map +1 -0
  915. package/src/shared/node-executable.js +21 -0
  916. package/src/shared/node-executable.js.map +1 -0
  917. package/src/shared/opencode-session-headers.d.ts +13 -0
  918. package/src/shared/opencode-session-headers.d.ts.map +1 -0
  919. package/src/shared/opencode-session-headers.js +27 -0
  920. package/src/shared/opencode-session-headers.js.map +1 -0
  921. package/src/shared/prompt-resources.d.ts +6 -0
  922. package/src/shared/prompt-resources.d.ts.map +1 -0
  923. package/src/shared/prompt-resources.js +11 -0
  924. package/src/shared/prompt-resources.js.map +1 -0
  925. package/src/shared/pruned-fork.d.ts +35 -0
  926. package/src/shared/pruned-fork.d.ts.map +1 -0
  927. package/src/shared/pruned-fork.js +417 -0
  928. package/src/shared/pruned-fork.js.map +1 -0
  929. package/src/shared/required-child-extensions.d.ts +20 -0
  930. package/src/shared/required-child-extensions.d.ts.map +1 -0
  931. package/src/shared/required-child-extensions.js +74 -0
  932. package/src/shared/required-child-extensions.js.map +1 -0
  933. package/src/shared/session-file-trust.d.ts +2 -0
  934. package/src/shared/session-file-trust.d.ts.map +1 -0
  935. package/src/shared/session-file-trust.js +21 -0
  936. package/src/shared/session-file-trust.js.map +1 -0
  937. package/src/shared/session-identity.d.ts +7 -0
  938. package/src/shared/session-identity.d.ts.map +1 -0
  939. package/src/shared/session-identity.js +7 -0
  940. package/src/shared/session-identity.js.map +1 -0
  941. package/src/shared/session-tokens.d.ts +3 -0
  942. package/src/shared/session-tokens.d.ts.map +1 -0
  943. package/src/shared/session-tokens.js +59 -0
  944. package/src/shared/session-tokens.js.map +1 -0
  945. package/src/shared/settings.d.ts +147 -0
  946. package/src/shared/settings.d.ts.map +1 -0
  947. package/src/shared/settings.js +248 -0
  948. package/src/shared/settings.js.map +1 -0
  949. package/src/shared/shortcuts.d.ts +2 -0
  950. package/src/shared/shortcuts.d.ts.map +1 -0
  951. package/src/shared/shortcuts.js +18 -0
  952. package/src/shared/shortcuts.js.map +1 -0
  953. package/src/shared/status-format.d.ts +10 -0
  954. package/src/shared/status-format.d.ts.map +1 -0
  955. package/src/shared/status-format.js +61 -0
  956. package/src/shared/status-format.js.map +1 -0
  957. package/src/shared/thinking-ceiling.d.ts +14 -0
  958. package/src/shared/thinking-ceiling.d.ts.map +1 -0
  959. package/src/shared/thinking-ceiling.js +38 -0
  960. package/src/shared/thinking-ceiling.js.map +1 -0
  961. package/src/shared/types.d.ts +2660 -0
  962. package/src/shared/types.d.ts.map +1 -0
  963. package/src/shared/types.js +265 -0
  964. package/src/shared/types.js.map +1 -0
  965. package/src/shared/utf8.d.ts +6 -0
  966. package/src/shared/utf8.d.ts.map +1 -0
  967. package/src/shared/utf8.js +13 -0
  968. package/src/shared/utf8.js.map +1 -0
  969. package/src/shared/utils.d.ts +71 -0
  970. package/src/shared/utils.d.ts.map +1 -0
  971. package/src/shared/utils.js +593 -0
  972. package/src/shared/utils.js.map +1 -0
  973. package/src/shared/watch-strategy.d.ts +3 -0
  974. package/src/shared/watch-strategy.d.ts.map +1 -0
  975. package/src/shared/watch-strategy.js +6 -0
  976. package/src/shared/watch-strategy.js.map +1 -0
  977. package/src/shared/workflow-child-permit.d.ts +59 -0
  978. package/src/shared/workflow-child-permit.d.ts.map +1 -0
  979. package/src/shared/workflow-child-permit.js +160 -0
  980. package/src/shared/workflow-child-permit.js.map +1 -0
  981. package/src/slash/delegation-adapters.d.ts +147 -0
  982. package/src/slash/delegation-adapters.d.ts.map +1 -0
  983. package/src/slash/delegation-adapters.js +293 -0
  984. package/src/slash/delegation-adapters.js.map +1 -0
  985. package/src/slash/delegation-json.d.ts +11 -0
  986. package/src/slash/delegation-json.d.ts.map +1 -0
  987. package/src/slash/delegation-json.js +118 -0
  988. package/src/slash/delegation-json.js.map +1 -0
  989. package/src/slash/delegation-request.d.ts +13 -0
  990. package/src/slash/delegation-request.d.ts.map +1 -0
  991. package/src/slash/delegation-request.js +175 -0
  992. package/src/slash/delegation-request.js.map +1 -0
  993. package/src/slash/prompt-template-bridge.d.ts +27 -0
  994. package/src/slash/prompt-template-bridge.d.ts.map +1 -0
  995. package/src/slash/prompt-template-bridge.js +380 -0
  996. package/src/slash/prompt-template-bridge.js.map +1 -0
  997. package/src/slash/prompt-workflows.d.ts +22 -0
  998. package/src/slash/prompt-workflows.d.ts.map +1 -0
  999. package/src/slash/prompt-workflows.js +261 -0
  1000. package/src/slash/prompt-workflows.js.map +1 -0
  1001. package/src/slash/selector.d.ts +48 -0
  1002. package/src/slash/selector.d.ts.map +1 -0
  1003. package/src/slash/selector.js +118 -0
  1004. package/src/slash/selector.js.map +1 -0
  1005. package/src/slash/slash-bridge.d.ts +31 -0
  1006. package/src/slash/slash-bridge.d.ts.map +1 -0
  1007. package/src/slash/slash-bridge.js +133 -0
  1008. package/src/slash/slash-bridge.js.map +1 -0
  1009. package/src/slash/slash-commands.d.ts +9 -0
  1010. package/src/slash/slash-commands.d.ts.map +1 -0
  1011. package/src/slash/slash-commands.js +1295 -0
  1012. package/src/slash/slash-commands.js.map +1 -0
  1013. package/src/slash/slash-live-state.d.ts +22 -0
  1014. package/src/slash/slash-live-state.d.ts.map +1 -0
  1015. package/src/slash/slash-live-state.js +264 -0
  1016. package/src/slash/slash-live-state.js.map +1 -0
  1017. package/src/slash/subagents-admin.d.ts +3 -0
  1018. package/src/slash/subagents-admin.d.ts.map +1 -0
  1019. package/src/slash/subagents-admin.js +453 -0
  1020. package/src/slash/subagents-admin.js.map +1 -0
  1021. package/src/tui/fleet-status.d.ts +86 -0
  1022. package/src/tui/fleet-status.d.ts.map +1 -0
  1023. package/src/tui/fleet-status.js +1083 -0
  1024. package/src/tui/fleet-status.js.map +1 -0
  1025. package/src/tui/fleet-transcript.d.ts +50 -0
  1026. package/src/tui/fleet-transcript.d.ts.map +1 -0
  1027. package/src/tui/fleet-transcript.js +497 -0
  1028. package/src/tui/fleet-transcript.js.map +1 -0
  1029. package/src/tui/fleet.d.ts +169 -0
  1030. package/src/tui/fleet.d.ts.map +1 -0
  1031. package/src/tui/fleet.js +1412 -0
  1032. package/src/tui/fleet.js.map +1 -0
  1033. package/src/tui/render-helpers.d.ts +24 -0
  1034. package/src/tui/render-helpers.d.ts.map +1 -0
  1035. package/src/tui/render-helpers.js +101 -0
  1036. package/src/tui/render-helpers.js.map +1 -0
  1037. package/src/tui/render.d.ts +61 -0
  1038. package/src/tui/render.d.ts.map +1 -0
  1039. package/src/tui/render.js +3608 -0
  1040. package/src/tui/render.js.map +1 -0
  1041. package/src/watchdog/change-signature.d.ts +8 -0
  1042. package/src/watchdog/change-signature.d.ts.map +1 -0
  1043. package/src/watchdog/change-signature.js +246 -0
  1044. package/src/watchdog/change-signature.js.map +1 -0
  1045. package/src/watchdog/child-status.d.ts +54 -0
  1046. package/src/watchdog/child-status.d.ts.map +1 -0
  1047. package/src/watchdog/child-status.js +188 -0
  1048. package/src/watchdog/child-status.js.map +1 -0
  1049. package/src/watchdog/diff-tool.d.ts +23 -0
  1050. package/src/watchdog/diff-tool.d.ts.map +1 -0
  1051. package/src/watchdog/diff-tool.js +84 -0
  1052. package/src/watchdog/diff-tool.js.map +1 -0
  1053. package/src/watchdog/emission-guard.d.ts +37 -0
  1054. package/src/watchdog/emission-guard.d.ts.map +1 -0
  1055. package/src/watchdog/emission-guard.js +98 -0
  1056. package/src/watchdog/emission-guard.js.map +1 -0
  1057. package/src/watchdog/guidance.d.ts +4 -0
  1058. package/src/watchdog/guidance.d.ts.map +1 -0
  1059. package/src/watchdog/guidance.js +20 -0
  1060. package/src/watchdog/guidance.js.map +1 -0
  1061. package/src/watchdog/lsp-diagnostics.d.ts +18 -0
  1062. package/src/watchdog/lsp-diagnostics.d.ts.map +1 -0
  1063. package/src/watchdog/lsp-diagnostics.js +490 -0
  1064. package/src/watchdog/lsp-diagnostics.js.map +1 -0
  1065. package/src/watchdog/model-selection.d.ts +25 -0
  1066. package/src/watchdog/model-selection.d.ts.map +1 -0
  1067. package/src/watchdog/model-selection.js +168 -0
  1068. package/src/watchdog/model-selection.js.map +1 -0
  1069. package/src/watchdog/permission-arbiter.d.ts +21 -0
  1070. package/src/watchdog/permission-arbiter.d.ts.map +1 -0
  1071. package/src/watchdog/permission-arbiter.js +141 -0
  1072. package/src/watchdog/permission-arbiter.js.map +1 -0
  1073. package/src/watchdog/register-child.d.ts +12 -0
  1074. package/src/watchdog/register-child.d.ts.map +1 -0
  1075. package/src/watchdog/register-child.js +120 -0
  1076. package/src/watchdog/register-child.js.map +1 -0
  1077. package/src/watchdog/register-main.d.ts +10 -0
  1078. package/src/watchdog/register-main.d.ts.map +1 -0
  1079. package/src/watchdog/register-main.js +419 -0
  1080. package/src/watchdog/register-main.js.map +1 -0
  1081. package/src/watchdog/render.d.ts +12 -0
  1082. package/src/watchdog/render.d.ts.map +1 -0
  1083. package/src/watchdog/render.js +52 -0
  1084. package/src/watchdog/render.js.map +1 -0
  1085. package/src/watchdog/review.d.ts +37 -0
  1086. package/src/watchdog/review.d.ts.map +1 -0
  1087. package/src/watchdog/review.js +325 -0
  1088. package/src/watchdog/review.js.map +1 -0
  1089. package/src/watchdog/rules.d.ts +22 -0
  1090. package/src/watchdog/rules.d.ts.map +1 -0
  1091. package/src/watchdog/rules.js +59 -0
  1092. package/src/watchdog/rules.js.map +1 -0
  1093. package/src/watchdog/runtime.d.ts +196 -0
  1094. package/src/watchdog/runtime.d.ts.map +1 -0
  1095. package/src/watchdog/runtime.js +862 -0
  1096. package/src/watchdog/runtime.js.map +1 -0
  1097. package/src/watchdog/scope.d.ts +15 -0
  1098. package/src/watchdog/scope.d.ts.map +1 -0
  1099. package/src/watchdog/scope.js +45 -0
  1100. package/src/watchdog/scope.js.map +1 -0
  1101. package/src/watchdog/settings.d.ts +30 -0
  1102. package/src/watchdog/settings.d.ts.map +1 -0
  1103. package/src/watchdog/settings.js +476 -0
  1104. package/src/watchdog/settings.js.map +1 -0
  1105. package/src/watchdog/tool-actions.d.ts +18 -0
  1106. package/src/watchdog/tool-actions.d.ts.map +1 -0
  1107. package/src/watchdog/tool-actions.js +151 -0
  1108. package/src/watchdog/tool-actions.js.map +1 -0
  1109. package/src/watchdog/turn-delta.d.ts +12 -0
  1110. package/src/watchdog/turn-delta.d.ts.map +1 -0
  1111. package/src/watchdog/turn-delta.js +185 -0
  1112. package/src/watchdog/turn-delta.js.map +1 -0
  1113. package/src/watchdog/types.d.ts +142 -0
  1114. package/src/watchdog/types.d.ts.map +1 -0
  1115. package/src/watchdog/types.js +28 -0
  1116. package/src/watchdog/types.js.map +1 -0
  1117. package/src/watchdog/warning-format.d.ts +8 -0
  1118. package/src/watchdog/warning-format.d.ts.map +1 -0
  1119. package/src/watchdog/warning-format.js +60 -0
  1120. package/src/watchdog/warning-format.js.map +1 -0
  1121. package/src/workflows/chat-progress.d.ts +38 -0
  1122. package/src/workflows/chat-progress.d.ts.map +1 -0
  1123. package/src/workflows/chat-progress.js +130 -0
  1124. package/src/workflows/chat-progress.js.map +1 -0
  1125. package/src/workflows/host-command.d.ts +31 -0
  1126. package/src/workflows/host-command.d.ts.map +1 -0
  1127. package/src/workflows/host-command.js +228 -0
  1128. package/src/workflows/host-command.js.map +1 -0
  1129. package/src/workflows/scripted-workflow.d.ts +195 -0
  1130. package/src/workflows/scripted-workflow.d.ts.map +1 -0
  1131. package/src/workflows/scripted-workflow.js +2634 -0
  1132. package/src/workflows/scripted-workflow.js.map +1 -0
  1133. package/src/workflows/workflow-checklist.d.ts +124 -0
  1134. package/src/workflows/workflow-checklist.d.ts.map +1 -0
  1135. package/src/workflows/workflow-checklist.js +312 -0
  1136. package/src/workflows/workflow-checklist.js.map +1 -0
  1137. package/src/workflows/workflow-child-summary.d.ts +20 -0
  1138. package/src/workflows/workflow-child-summary.d.ts.map +1 -0
  1139. package/src/workflows/workflow-child-summary.js +179 -0
  1140. package/src/workflows/workflow-child-summary.js.map +1 -0
  1141. package/src/workflows/workflow-preflight.d.ts +59 -0
  1142. package/src/workflows/workflow-preflight.d.ts.map +1 -0
  1143. package/src/workflows/workflow-preflight.js +289 -0
  1144. package/src/workflows/workflow-preflight.js.map +1 -0
  1145. package/src/workflows/workflow-receipt.d.ts +35 -0
  1146. package/src/workflows/workflow-receipt.d.ts.map +1 -0
  1147. package/src/workflows/workflow-receipt.js +449 -0
  1148. package/src/workflows/workflow-receipt.js.map +1 -0
  1149. package/src/workflows/workflow-resources.d.ts +43 -0
  1150. package/src/workflows/workflow-resources.d.ts.map +1 -0
  1151. package/src/workflows/workflow-resources.js +230 -0
  1152. package/src/workflows/workflow-resources.js.map +1 -0
  1153. package/src/workflows/workflow-settlement.d.ts +85 -0
  1154. package/src/workflows/workflow-settlement.d.ts.map +1 -0
  1155. package/src/workflows/workflow-settlement.js +204 -0
  1156. package/src/workflows/workflow-settlement.js.map +1 -0
  1157. package/index.ts +0 -13
  1158. package/src/agents/advertised-agent-prompt.ts +0 -94
  1159. package/src/agents/agent-management.ts +0 -1417
  1160. package/src/agents/agent-memory.ts +0 -254
  1161. package/src/agents/agent-refinements.ts +0 -624
  1162. package/src/agents/agent-scope.ts +0 -6
  1163. package/src/agents/agent-selection.ts +0 -25
  1164. package/src/agents/agent-serializer.ts +0 -182
  1165. package/src/agents/agents.ts +0 -2917
  1166. package/src/agents/builtin-names.ts +0 -16
  1167. package/src/agents/chain-serializer.ts +0 -285
  1168. package/src/agents/frontmatter.ts +0 -153
  1169. package/src/agents/identity.ts +0 -30
  1170. package/src/agents/proactive-skills.ts +0 -194
  1171. package/src/agents/runtime-agent-events.ts +0 -70
  1172. package/src/agents/runtime-agent-registry.ts +0 -430
  1173. package/src/agents/skills.ts +0 -754
  1174. package/src/api/agents.ts +0 -12
  1175. package/src/api/background-work.ts +0 -206
  1176. package/src/api/capability-ceiling.ts +0 -16
  1177. package/src/api/child-tool-plan.ts +0 -5
  1178. package/src/api/control-channel.ts +0 -4
  1179. package/src/api/delegation.ts +0 -116
  1180. package/src/api/external-job-provider.ts +0 -195
  1181. package/src/api/external-runs.ts +0 -282
  1182. package/src/api/intercom-bridge.ts +0 -3
  1183. package/src/api/preflight.ts +0 -539
  1184. package/src/api/project-panes.ts +0 -32
  1185. package/src/api/required-child-extensions.ts +0 -6
  1186. package/src/api/shared-types.ts +0 -29
  1187. package/src/api/workflow-resources.ts +0 -6
  1188. package/src/extension/config.ts +0 -230
  1189. package/src/extension/control-notices.ts +0 -58
  1190. package/src/extension/doctor.ts +0 -270
  1191. package/src/extension/fanout-child.ts +0 -265
  1192. package/src/extension/herdr-pi-bridge.ts +0 -160
  1193. package/src/extension/index.ts +0 -1205
  1194. package/src/extension/public-execution.ts +0 -225
  1195. package/src/extension/rpc.ts +0 -848
  1196. package/src/extension/schemas.ts +0 -428
  1197. package/src/extension/steering-notices.ts +0 -35
  1198. package/src/extension/subagent-guide.ts +0 -39
  1199. package/src/extension/tool-description.ts +0 -175
  1200. package/src/extension/tool-result.ts +0 -19
  1201. package/src/inspectors/actions.ts +0 -148
  1202. package/src/inspectors/ghostty/actions.ts +0 -74
  1203. package/src/inspectors/ghostty/plugin.ts +0 -29
  1204. package/src/inspectors/herdr/actions.ts +0 -155
  1205. package/src/inspectors/herdr/client.ts +0 -130
  1206. package/src/inspectors/herdr/focus.ts +0 -55
  1207. package/src/inspectors/herdr/plugin.ts +0 -20
  1208. package/src/inspectors/herdr/project-panes.ts +0 -730
  1209. package/src/inspectors/inspector-runner.ts +0 -153
  1210. package/src/inspectors/plugins.ts +0 -8
  1211. package/src/inspectors/session-roots-codec.ts +0 -31
  1212. package/src/inspectors/shell-command.ts +0 -16
  1213. package/src/inspectors/types.ts +0 -51
  1214. package/src/integrations/herdr-status.ts +0 -400
  1215. package/src/integrations/pi-web-session-liveness.ts +0 -73
  1216. package/src/intercom/intercom-bridge.ts +0 -233
  1217. package/src/intercom/native-supervisor-channel.ts +0 -917
  1218. package/src/intercom/result-intercom.ts +0 -423
  1219. package/src/intercom/supervisor-ui.ts +0 -244
  1220. package/src/missions/actions.ts +0 -433
  1221. package/src/missions/goal-driver.ts +0 -164
  1222. package/src/missions/lifecycle.ts +0 -367
  1223. package/src/missions/store.ts +0 -584
  1224. package/src/missions/types.ts +0 -190
  1225. package/src/missions/workflow-state.ts +0 -281
  1226. package/src/policy/authority.ts +0 -50
  1227. package/src/profiles/profiles.ts +0 -668
  1228. package/src/runs/background/active-async-capacity.ts +0 -520
  1229. package/src/runs/background/active-run-index.ts +0 -155
  1230. package/src/runs/background/async-execution.ts +0 -2278
  1231. package/src/runs/background/async-job-tracker.ts +0 -826
  1232. package/src/runs/background/async-resume.ts +0 -647
  1233. package/src/runs/background/async-retention.ts +0 -912
  1234. package/src/runs/background/async-status-snapshot.ts +0 -46
  1235. package/src/runs/background/async-status.ts +0 -771
  1236. package/src/runs/background/auto-drain.ts +0 -92
  1237. package/src/runs/background/binary-bootstrap.ts +0 -38
  1238. package/src/runs/background/chain-append.ts +0 -321
  1239. package/src/runs/background/chain-root-attachment.ts +0 -259
  1240. package/src/runs/background/completion-batcher.ts +0 -168
  1241. package/src/runs/background/completion-dedupe.ts +0 -58
  1242. package/src/runs/background/completion-replay.ts +0 -287
  1243. package/src/runs/background/control-channel.ts +0 -600
  1244. package/src/runs/background/fleet-view.ts +0 -648
  1245. package/src/runs/background/index-segment.ts +0 -59
  1246. package/src/runs/background/inspect-rpc.ts +0 -443
  1247. package/src/runs/background/notify.ts +0 -819
  1248. package/src/runs/background/owned-process-tree.ts +0 -131
  1249. package/src/runs/background/parallel-groups.ts +0 -45
  1250. package/src/runs/background/process-terminal.ts +0 -310
  1251. package/src/runs/background/result-delivery-ownership.ts +0 -45
  1252. package/src/runs/background/result-files.ts +0 -523
  1253. package/src/runs/background/result-watcher.ts +0 -809
  1254. package/src/runs/background/resume-guidance.ts +0 -56
  1255. package/src/runs/background/retained-children.ts +0 -135
  1256. package/src/runs/background/retained-nested-route-tracker.ts +0 -96
  1257. package/src/runs/background/run-child-session.ts +0 -690
  1258. package/src/runs/background/run-id-query.ts +0 -7
  1259. package/src/runs/background/run-id-resolver.ts +0 -175
  1260. package/src/runs/background/run-status.ts +0 -786
  1261. package/src/runs/background/runner-aliases.ts +0 -142
  1262. package/src/runs/background/runner-child-launch.ts +0 -91
  1263. package/src/runs/background/runner-child-sessions.ts +0 -32
  1264. package/src/runs/background/runner-http-dispatcher.ts +0 -119
  1265. package/src/runs/background/scheduled-runs.ts +0 -1012
  1266. package/src/runs/background/stale-run-reconciler.ts +0 -436
  1267. package/src/runs/background/steering.ts +0 -260
  1268. package/src/runs/background/subagent-runner.ts +0 -5357
  1269. package/src/runs/background/subagent-wait.ts +0 -876
  1270. package/src/runs/background/terminal-run-index.ts +0 -138
  1271. package/src/runs/background/top-level-async.ts +0 -14
  1272. package/src/runs/background/wait-completions.ts +0 -261
  1273. package/src/runs/background/wait-config.ts +0 -50
  1274. package/src/runs/background/wait-subscriptions.ts +0 -354
  1275. package/src/runs/background/wait-tool.ts +0 -45
  1276. package/src/runs/foreground/async-dismiss-action.ts +0 -86
  1277. package/src/runs/foreground/async-steering-action.ts +0 -276
  1278. package/src/runs/foreground/async-stop-action.ts +0 -176
  1279. package/src/runs/foreground/execution.ts +0 -2254
  1280. package/src/runs/foreground/foreground-control.ts +0 -157
  1281. package/src/runs/foreground/foreground-history.ts +0 -163
  1282. package/src/runs/foreground/prompt-audit.ts +0 -178
  1283. package/src/runs/foreground/subagent-executor.ts +0 -7526
  1284. package/src/runs/foreground/workflow-detach-reconcile.ts +0 -304
  1285. package/src/runs/foreground/workflow-foreground-steering.ts +0 -169
  1286. package/src/runs/shared/abort-recovery.ts +0 -119
  1287. package/src/runs/shared/acceptance.ts +0 -1698
  1288. package/src/runs/shared/agent-contract.ts +0 -38
  1289. package/src/runs/shared/async-status-projection.ts +0 -659
  1290. package/src/runs/shared/background-process-options.ts +0 -9
  1291. package/src/runs/shared/capability-ceiling.ts +0 -211
  1292. package/src/runs/shared/chain-outputs.ts +0 -116
  1293. package/src/runs/shared/child-hooks.ts +0 -189
  1294. package/src/runs/shared/child-identity.ts +0 -62
  1295. package/src/runs/shared/child-launch-plan.ts +0 -163
  1296. package/src/runs/shared/child-launch.ts +0 -342
  1297. package/src/runs/shared/child-lifecycle.ts +0 -28
  1298. package/src/runs/shared/child-runtime-config.ts +0 -133
  1299. package/src/runs/shared/child-session.ts +0 -448
  1300. package/src/runs/shared/child-tool-plan.ts +0 -661
  1301. package/src/runs/shared/claude-code-adapter.ts +0 -133
  1302. package/src/runs/shared/codex-exec-adapter.ts +0 -129
  1303. package/src/runs/shared/completion-evidence.ts +0 -89
  1304. package/src/runs/shared/completion-guard.ts +0 -255
  1305. package/src/runs/shared/context-mode.ts +0 -44
  1306. package/src/runs/shared/cursor-agent-adapter.ts +0 -114
  1307. package/src/runs/shared/dynamic-fanout.ts +0 -297
  1308. package/src/runs/shared/effective-system-prompt.ts +0 -33
  1309. package/src/runs/shared/extension-bindings.ts +0 -78
  1310. package/src/runs/shared/external-cli-contract.ts +0 -177
  1311. package/src/runs/shared/external-cli-preflight.ts +0 -142
  1312. package/src/runs/shared/external-cli-runner.ts +0 -431
  1313. package/src/runs/shared/external-job-bridge.ts +0 -460
  1314. package/src/runs/shared/external-job-runner.ts +0 -389
  1315. package/src/runs/shared/fast-mode-extension.ts +0 -10
  1316. package/src/runs/shared/herdr-connection.ts +0 -134
  1317. package/src/runs/shared/herdr-external-adapters.ts +0 -169
  1318. package/src/runs/shared/herdr-machine.ts +0 -279
  1319. package/src/runs/shared/herdr-pi-protocol.ts +0 -59
  1320. package/src/runs/shared/herdr-placed-run.ts +0 -263
  1321. package/src/runs/shared/host-step-status.ts +0 -231
  1322. package/src/runs/shared/lane-metadata.ts +0 -126
  1323. package/src/runs/shared/launch-cwd.ts +0 -16
  1324. package/src/runs/shared/llm-intent-arbiter.ts +0 -321
  1325. package/src/runs/shared/long-running-guard.ts +0 -221
  1326. package/src/runs/shared/mcp-config-sources.ts +0 -422
  1327. package/src/runs/shared/mcp-direct-tool-allowlist.ts +0 -484
  1328. package/src/runs/shared/mcp-direct-tool-grant.ts +0 -194
  1329. package/src/runs/shared/model-resolution-diagnostic.ts +0 -76
  1330. package/src/runs/shared/model-resolution.ts +0 -441
  1331. package/src/runs/shared/model-scope.ts +0 -205
  1332. package/src/runs/shared/mutation-evidence.ts +0 -199
  1333. package/src/runs/shared/nested-events.ts +0 -1079
  1334. package/src/runs/shared/nested-path.ts +0 -38
  1335. package/src/runs/shared/nested-render.ts +0 -127
  1336. package/src/runs/shared/orca-progress-tabs.ts +0 -510
  1337. package/src/runs/shared/parallel-handoff.ts +0 -741
  1338. package/src/runs/shared/parallel-utils.ts +0 -279
  1339. package/src/runs/shared/permissions.ts +0 -86
  1340. package/src/runs/shared/pi-spawn.ts +0 -207
  1341. package/src/runs/shared/process-signal.ts +0 -35
  1342. package/src/runs/shared/readonly-drain-observation.ts +0 -42
  1343. package/src/runs/shared/run-fanout-budget.ts +0 -267
  1344. package/src/runs/shared/run-history.ts +0 -201
  1345. package/src/runs/shared/runtime-acknowledged-extensions.ts +0 -44
  1346. package/src/runs/shared/session-lease.ts +0 -293
  1347. package/src/runs/shared/single-output.ts +0 -304
  1348. package/src/runs/shared/spawn-budget.ts +0 -128
  1349. package/src/runs/shared/structured-output.ts +0 -236
  1350. package/src/runs/shared/subagent-control.ts +0 -294
  1351. package/src/runs/shared/subagent-prompt-runtime.ts +0 -545
  1352. package/src/runs/shared/task-intent.ts +0 -244
  1353. package/src/runs/shared/tool-availability.ts +0 -37
  1354. package/src/runs/shared/tool-budget.ts +0 -66
  1355. package/src/runs/shared/tool-timeout.ts +0 -93
  1356. package/src/runs/shared/usage-budget.ts +0 -65
  1357. package/src/runs/shared/workflow-async-child-guidance.ts +0 -18
  1358. package/src/runs/shared/workflow-graph.ts +0 -225
  1359. package/src/runs/shared/worktree-cleanup-plan.ts +0 -869
  1360. package/src/runs/shared/worktree-setup-command.ts +0 -213
  1361. package/src/runs/shared/worktree.ts +0 -1538
  1362. package/src/shared/accessible-dir.ts +0 -47
  1363. package/src/shared/agent-stream-options.ts +0 -5
  1364. package/src/shared/artifacts.ts +0 -281
  1365. package/src/shared/atomic-json.ts +0 -83
  1366. package/src/shared/capacity-resilient-json.ts +0 -102
  1367. package/src/shared/child-cache-retention.ts +0 -43
  1368. package/src/shared/child-session-name.ts +0 -46
  1369. package/src/shared/child-transcript.ts +0 -264
  1370. package/src/shared/completion-owner.ts +0 -14
  1371. package/src/shared/display-text.ts +0 -150
  1372. package/src/shared/extension-context.ts +0 -24
  1373. package/src/shared/file-coalescer.ts +0 -49
  1374. package/src/shared/file-system-retry.ts +0 -95
  1375. package/src/shared/fork-context.ts +0 -236
  1376. package/src/shared/fork-session-cwd.ts +0 -27
  1377. package/src/shared/formatters.ts +0 -146
  1378. package/src/shared/jsonl-writer.ts +0 -92
  1379. package/src/shared/launch-contract.ts +0 -198
  1380. package/src/shared/model-info.ts +0 -101
  1381. package/src/shared/model-response-aliases.ts +0 -13
  1382. package/src/shared/node-executable.ts +0 -21
  1383. package/src/shared/opencode-session-headers.ts +0 -30
  1384. package/src/shared/prompt-resources.ts +0 -11
  1385. package/src/shared/pruned-fork.ts +0 -450
  1386. package/src/shared/required-child-extensions.ts +0 -81
  1387. package/src/shared/session-file-trust.ts +0 -19
  1388. package/src/shared/session-identity.ts +0 -10
  1389. package/src/shared/session-tokens.ts +0 -55
  1390. package/src/shared/settings.ts +0 -412
  1391. package/src/shared/shortcuts.ts +0 -13
  1392. package/src/shared/status-format.ts +0 -55
  1393. package/src/shared/thinking-ceiling.ts +0 -46
  1394. package/src/shared/types.ts +0 -2983
  1395. package/src/shared/utf8.ts +0 -11
  1396. package/src/shared/utils.ts +0 -608
  1397. package/src/shared/watch-strategy.ts +0 -12
  1398. package/src/shared/workflow-child-permit.ts +0 -212
  1399. package/src/slash/delegation-adapters.ts +0 -428
  1400. package/src/slash/delegation-json.ts +0 -108
  1401. package/src/slash/delegation-request.ts +0 -176
  1402. package/src/slash/prompt-template-bridge.ts +0 -419
  1403. package/src/slash/prompt-workflows.ts +0 -287
  1404. package/src/slash/selector.ts +0 -147
  1405. package/src/slash/slash-bridge.ts +0 -192
  1406. package/src/slash/slash-commands.ts +0 -1325
  1407. package/src/slash/slash-live-state.ts +0 -310
  1408. package/src/slash/subagents-admin.ts +0 -460
  1409. package/src/tui/fleet-status.ts +0 -1109
  1410. package/src/tui/fleet-transcript.ts +0 -536
  1411. package/src/tui/fleet.ts +0 -1448
  1412. package/src/tui/render-helpers.ts +0 -111
  1413. package/src/tui/render.ts +0 -3721
  1414. package/src/types/pi-runtime-compat.d.ts +0 -8
  1415. package/src/watchdog/change-signature.ts +0 -260
  1416. package/src/watchdog/child-status.ts +0 -225
  1417. package/src/watchdog/diff-tool.ts +0 -77
  1418. package/src/watchdog/emission-guard.ts +0 -125
  1419. package/src/watchdog/guidance.ts +0 -20
  1420. package/src/watchdog/lsp-diagnostics.ts +0 -538
  1421. package/src/watchdog/model-selection.ts +0 -187
  1422. package/src/watchdog/permission-arbiter.ts +0 -156
  1423. package/src/watchdog/register-child.ts +0 -128
  1424. package/src/watchdog/register-main.ts +0 -445
  1425. package/src/watchdog/render.ts +0 -53
  1426. package/src/watchdog/review.ts +0 -363
  1427. package/src/watchdog/rules.ts +0 -70
  1428. package/src/watchdog/runtime.ts +0 -924
  1429. package/src/watchdog/scope.ts +0 -51
  1430. package/src/watchdog/settings.ts +0 -515
  1431. package/src/watchdog/tool-actions.ts +0 -156
  1432. package/src/watchdog/turn-delta.ts +0 -184
  1433. package/src/watchdog/types.ts +0 -186
  1434. package/src/watchdog/warning-format.ts +0 -72
  1435. package/src/workflows/chat-progress.ts +0 -152
  1436. package/src/workflows/host-command.ts +0 -235
  1437. package/src/workflows/scripted-workflow.ts +0 -2575
  1438. package/src/workflows/workflow-checklist.ts +0 -436
  1439. package/src/workflows/workflow-child-summary.ts +0 -170
  1440. package/src/workflows/workflow-preflight.ts +0 -297
  1441. package/src/workflows/workflow-receipt.ts +0 -384
  1442. package/src/workflows/workflow-resources.ts +0 -236
  1443. package/src/workflows/workflow-settlement.ts +0 -249
@@ -0,0 +1,716 @@
1
+ import { createHash, randomBytes } from "node:crypto";
2
+ import * as fs from "node:fs";
3
+ import * as net from "node:net";
4
+ import * as path from "node:path";
5
+ import packageJson from "../../../package.json" with { type: "json" };
6
+ import { connectHerdrMachine, remoteShellCommand, runHerdrRemoteCommand, runHerdrRemoteCommandAsync } from "./herdr-connection.js";
7
+ import { encodeHerdrPiFrame, HERDR_PI_MODE_ENV, HERDR_PI_PROTOCOL, HERDR_PI_RUN_ENV, HERDR_PI_RUNTIME_DIR_ENV, HerdrPiFrameDecoder, validateHerdrPiRunId } from "./herdr-pi-protocol.js";
8
+ import { getAgentDir } from "../../shared/utils.js";
9
+ function herdrRunState(status, fallback = "unknown") {
10
+ return status === "working" ? "working" : status === "blocked" ? "blocked" : status === "idle" || status === "done" ? "settled" : status === "unknown" ? "unknown" : fallback;
11
+ }
12
+ export function herdrStatusSubscriptions(paneId) {
13
+ return [{ type: "pane.agent_status_changed", pane_id: paneId }, { type: "pane.closed" }, { type: "pane.moved" }];
14
+ }
15
+ export function reconcileHerdrPlacedRun(identity, candidate, proveEvidence) {
16
+ if (candidate.endpoint.session !== identity.session)
17
+ return { ok: false, reason: "Herdr session changed during reconnect." };
18
+ const matches = candidate.agents.filter((agent) => agent.terminal_id === identity.terminalId);
19
+ if (matches.length !== 1 || typeof matches[0].pane_id !== "string")
20
+ return { ok: false, reason: matches.length ? "Terminal identity is ambiguous." : "Owned terminal is missing." };
21
+ const proof = proveEvidence();
22
+ if (!proof.ok)
23
+ return proof;
24
+ return { ok: true, state: herdrRunState(matches[0].agent_status), paneId: matches[0].pane_id, cursor: proof.cursor };
25
+ }
26
+ export function reconcileHerdrReconnect(identity, candidate, lastEvidenceCursor) {
27
+ return reconcileHerdrPlacedRun(identity, candidate, () => { const bridge = candidate.bridge; if (bridge.runId !== identity.runId || bridge.nativeSessionId !== identity.nativeSessionId || bridge.packageVersion !== packageJson.version || bridge.protocol !== HERDR_PI_PROTOCOL)
28
+ return { ok: false, reason: "Bridge run, package, protocol, or native session identity changed." }; if (typeof bridge.evidenceCursor !== "number" || typeof bridge.evidenceFloor !== "number" || bridge.evidenceCursor < lastEvidenceCursor || bridge.evidenceFloor > lastEvidenceCursor + 1)
29
+ return { ok: false, reason: "Bridge evidence has a gap after reconnect." }; return { ok: true, cursor: bridge.evidenceCursor }; });
30
+ }
31
+ export async function boundedHerdrReconnect(identity, lastEvidenceCursor, attempt, options = {}) {
32
+ const deadline = Date.now() + (options.deadlineMs ?? 15_000);
33
+ let last = "Reconnect did not run.";
34
+ for (let number = 1; number <= (options.attempts ?? 3) && Date.now() < deadline; number++) {
35
+ if (options.disposed?.())
36
+ return { ok: false, reason: "Reconnect was disposed." };
37
+ try {
38
+ const result = reconcileHerdrReconnect(identity, await attempt(number), lastEvidenceCursor);
39
+ if (result.ok)
40
+ return result;
41
+ last = result.reason;
42
+ }
43
+ catch (error) {
44
+ last = error instanceof Error ? error.message : String(error);
45
+ }
46
+ await new Promise((resolve) => setTimeout(resolve, Math.min(number * 100, Math.max(0, deadline - Date.now()))));
47
+ }
48
+ return { ok: false, reason: last };
49
+ }
50
+ function safeRunId(value) { const prefix = value?.replace(/[^A-Za-z0-9_-]/gu, "_").slice(0, 48) ?? "run"; return validateHerdrPiRunId(`${prefix}_${randomBytes(8).toString("hex")}`); }
51
+ function idOf(value, key) { const found = value && typeof value === "object" ? value[key] : undefined; if (typeof found !== "string" || !found)
52
+ throw new Error(`Herdr did not return ${key}.`); return found; }
53
+ function list(value, key) { if (Array.isArray(value))
54
+ return value; const found = value && typeof value === "object" ? value[key] : undefined; return Array.isArray(found) ? found : []; }
55
+ function tagged(value, type, key) { if (!value || typeof value !== "object" || value.type !== type || !(key in value) || typeof value[key] !== "object")
56
+ throw new Error(`Herdr returned an invalid ${type} envelope.`); return value[key]; }
57
+ export function parseHerdrCreated(value, type) { const envelope = value; if (envelope?.type !== type)
58
+ throw new Error(`Herdr returned an invalid ${type} envelope.`); const tab = envelope.tab; const pane = envelope.root_pane; return { ...(type === "workspace_created" ? { workspaceId: idOf(envelope.workspace, "workspace_id") } : {}), tabId: idOf(tab, "tab_id"), paneId: idOf(pane, "pane_id") }; }
59
+ export function parseHerdrAgent(value, type) { return tagged(value, type, "agent"); }
60
+ export function parseHerdrSessionSnapshot(value) { return tagged(value, "session_snapshot", "snapshot"); }
61
+ export function ownsHerdrPane(agent, terminalId, paneId) { return agent.terminal_id === terminalId && agent.pane_id === paneId; }
62
+ function snapshotAgents(snapshot) { return list(snapshot, "agents").filter((agent) => Boolean(agent && typeof agent === "object")).map((agent) => ({ terminal_id: typeof agent.terminal_id === "string" ? agent.terminal_id : undefined, pane_id: typeof agent.pane_id === "string" ? agent.pane_id : undefined, agent_status: typeof agent.agent_status === "string" ? agent.agent_status : undefined })); }
63
+ export const HERDR_MAX_OWNED_PANES = 20;
64
+ const HERDR_ALLOCATION_LOCK_TIMEOUT_MS = 10_000, HERDR_ALLOCATION_LOCK_POLL_MS = 25;
65
+ export function herdrPaneAllocationKey(target, session, cwd) { return JSON.stringify([target, session, cwd]); }
66
+ function assertPrivateDir(directory) { const stat = fs.lstatSync(directory); if (!stat.isDirectory() || stat.isSymbolicLink() || (stat.mode & 0o777) !== 0o700 || (typeof process.getuid === "function" && stat.uid !== process.getuid()))
67
+ throw new Error("Herdr allocation path is not a mode-0700 agent-private owned directory."); }
68
+ function ensurePrivateChild(parent, name) { const directory = path.join(parent, name); try {
69
+ fs.mkdirSync(directory, { mode: 0o700 });
70
+ }
71
+ catch (error) {
72
+ if (error.code !== "EEXIST")
73
+ throw error;
74
+ } assertPrivateDir(directory); return directory; }
75
+ function allocationLockRoot() { const agentDir = getAgentDir(); fs.mkdirSync(agentDir, { recursive: true, mode: 0o700 }); assertPrivateDir(agentDir); const packageDir = ensurePrivateChild(agentDir, "pi-subagents"); return ensurePrivateChild(packageDir, "herdr-allocation-locks"); }
76
+ function livePid(pid) { try {
77
+ process.kill(pid, 0);
78
+ return true;
79
+ }
80
+ catch (error) {
81
+ return error.code === "EPERM";
82
+ } }
83
+ function readAllocationOwner(ownerPath) { const descriptor = fs.openSync(ownerPath, fs.constants.O_RDONLY | (fs.constants.O_NOFOLLOW ?? 0)); try {
84
+ const stat = fs.fstatSync(descriptor);
85
+ if (!stat.isFile() || (stat.mode & 0o777) !== 0o600 || (typeof process.getuid === "function" && stat.uid !== process.getuid()))
86
+ throw new Error("Herdr allocation lock owner record is unsafe.");
87
+ const value = JSON.parse(fs.readFileSync(descriptor, "utf8"));
88
+ if (typeof value.pid !== "number" || !Number.isSafeInteger(value.pid) || value.pid <= 0 || typeof value.token !== "string" || !/^[a-f0-9]{32}$/u.test(value.token))
89
+ throw new Error("Herdr allocation lock owner record is malformed.");
90
+ return { pid: value.pid, token: value.token, dev: stat.dev, ino: stat.ino };
91
+ }
92
+ finally {
93
+ fs.closeSync(descriptor);
94
+ } }
95
+ function sameOwner(left, right) { return left.token === right.token && left.dev === right.dev && left.ino === right.ino; }
96
+ export async function withHerdrPaneAllocationLock(key, action, options = {}) {
97
+ const root = allocationLockRoot(), digest = createHash("sha256").update(key).digest("hex"), lockPath = path.join(root, `${digest}.lock`), recoveryPath = path.join(root, `${digest}.recovery`), token = randomBytes(16).toString("hex"), tempPath = path.join(root, `.${digest}.${token}.tmp`), deadline = Date.now() + (options.timeoutMs ?? HERDR_ALLOCATION_LOCK_TIMEOUT_MS);
98
+ let published;
99
+ try {
100
+ fs.writeFileSync(tempPath, JSON.stringify({ pid: process.pid, token, createdAt: Date.now() }), { mode: 0o600, flag: "wx" });
101
+ const tempOwner = readAllocationOwner(tempPath);
102
+ for (;;) {
103
+ let recovering = false;
104
+ try {
105
+ readAllocationOwner(recoveryPath);
106
+ recovering = true;
107
+ }
108
+ catch (error) {
109
+ if (error.code !== "ENOENT")
110
+ throw error;
111
+ }
112
+ if (!recovering) {
113
+ let linked = false;
114
+ try {
115
+ fs.linkSync(tempPath, lockPath);
116
+ linked = true;
117
+ try {
118
+ readAllocationOwner(recoveryPath);
119
+ const current = readAllocationOwner(lockPath);
120
+ if (!sameOwner(current, tempOwner))
121
+ throw new Error("Herdr allocation lock changed during publication.");
122
+ fs.unlinkSync(lockPath);
123
+ }
124
+ catch (recoveryError) {
125
+ if (recoveryError.code !== "ENOENT")
126
+ throw recoveryError;
127
+ published = readAllocationOwner(lockPath);
128
+ if (!sameOwner(published, tempOwner))
129
+ throw new Error("Herdr allocation lock publication identity changed.");
130
+ break;
131
+ }
132
+ }
133
+ catch (publishError) {
134
+ if (linked) {
135
+ try {
136
+ const current = readAllocationOwner(lockPath);
137
+ if (sameOwner(current, tempOwner))
138
+ fs.unlinkSync(lockPath);
139
+ }
140
+ catch { }
141
+ }
142
+ if (publishError.code !== "EEXIST" && publishError.code !== "ENOENT")
143
+ throw publishError;
144
+ }
145
+ }
146
+ if (published)
147
+ break;
148
+ try {
149
+ const current = readAllocationOwner(lockPath);
150
+ if (!livePid(current.pid)) {
151
+ let claimed = false;
152
+ try {
153
+ fs.linkSync(lockPath, recoveryPath);
154
+ claimed = true;
155
+ const recovery = readAllocationOwner(recoveryPath), latest = readAllocationOwner(lockPath);
156
+ if (!sameOwner(recovery, current) || !sameOwner(latest, current))
157
+ throw new Error("Herdr stale lock identity changed during recovery.");
158
+ fs.unlinkSync(lockPath);
159
+ }
160
+ catch (error) {
161
+ if (error.code !== "EEXIST" && error.code !== "ENOENT")
162
+ throw error;
163
+ }
164
+ finally {
165
+ if (claimed)
166
+ fs.unlinkSync(recoveryPath);
167
+ }
168
+ if (claimed)
169
+ continue;
170
+ }
171
+ }
172
+ catch (error) {
173
+ if (error.code !== "ENOENT")
174
+ throw error;
175
+ }
176
+ if (Date.now() >= deadline)
177
+ throw new Error("Timed out waiting for the Herdr pane allocation lock.");
178
+ await new Promise((resolve) => setTimeout(resolve, options.pollMs ?? HERDR_ALLOCATION_LOCK_POLL_MS));
179
+ }
180
+ fs.unlinkSync(tempPath);
181
+ let value, actionError, releaseError, actionFailed = false, releaseFailed = false;
182
+ try {
183
+ value = await action();
184
+ }
185
+ catch (error) {
186
+ actionFailed = true;
187
+ actionError = error;
188
+ }
189
+ try {
190
+ const current = readAllocationOwner(lockPath);
191
+ if (!published || !sameOwner(current, published))
192
+ throw new Error("Herdr pane allocation lock ownership changed before release.");
193
+ fs.unlinkSync(lockPath);
194
+ }
195
+ catch (error) {
196
+ releaseFailed = true;
197
+ releaseError = error;
198
+ }
199
+ if (actionFailed && releaseFailed)
200
+ throw new AggregateError([actionError, releaseError], "Herdr pane allocation action and release both failed.", { cause: actionError });
201
+ if (actionFailed)
202
+ throw actionError;
203
+ if (releaseFailed)
204
+ throw releaseError;
205
+ return value;
206
+ }
207
+ finally {
208
+ try {
209
+ fs.unlinkSync(tempPath);
210
+ }
211
+ catch (error) {
212
+ if (error.code !== "ENOENT")
213
+ throw error;
214
+ }
215
+ }
216
+ }
217
+ export function serializeHerdrPiLaunch(launch) {
218
+ if (launch.storage.kind === "file")
219
+ throw new Error("Pane-native remote Pi does not support fork, resume, or revival; use fresh context.");
220
+ if (launch.extensionPaths.length || launch.requiredExtensions?.length)
221
+ throw new Error("Pane-native remote Pi cannot transfer local extension paths; install/configure pi-subagents on the remote machine.");
222
+ if (launch.processEnv && Object.values(launch.processEnv).some((value) => value !== undefined && value !== "__none__"))
223
+ throw new Error("Pane-native remote Pi cannot transfer local bindings, MCP selections, or process environment.");
224
+ if (launch.runtime.nestedRoute || launch.runtime.fanoutChild || launch.runtime.depth > 1)
225
+ throw new Error("Nested delegation from a pane-native remote Pi is not supported.");
226
+ if (launch.excludeTools?.length || launch.runtime.permissions || launch.runtime.toolBudget || launch.runtime.requiredExtensions || launch.runtime.requiredTools?.length || launch.runtime.mcpDirectTools?.length)
227
+ throw new Error("Pane-native remote Pi cannot yet represent exclusions, permission rules, tool budgets, MCP direct tools, or required-tool/extension contracts; remove machine placement.");
228
+ const resources = launch.remoteResources;
229
+ if (!resources || !/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u.test(resources.agent) || resources.skills?.some((name) => !/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/u.test(name)) || resources.toolCeiling?.some((name) => !/^[A-Za-z0-9_-]{1,64}$/u.test(name)) || (resources.reads !== undefined && resources.reads !== false && resources.reads.some((read) => typeof read !== "string" || Buffer.byteLength(read) > 4096)))
230
+ throw new Error("Pane-native remote resources require bounded logical agent, skill, tool, and read names.");
231
+ const args = [];
232
+ if (launch.noSkills)
233
+ args.push("--no-skills", "--no-prompt-templates");
234
+ if (launch.noContextFiles)
235
+ args.push("--no-context-files");
236
+ if (launch.model)
237
+ args.push("--model", launch.model);
238
+ return { args, resources: { agent: resources.agent, ...(resources.skills ? { skills: [...resources.skills] } : {}), ...(resources.toolCeiling ? { toolCeiling: [...resources.toolCeiling] } : {}), ...(resources.reads !== undefined ? { reads: resources.reads === false ? false : [...resources.reads] } : {}) } };
239
+ }
240
+ export async function provisionHerdrPane(client, cwd, runId, runtimeDir, environment, allocationKey = cwd) {
241
+ return withHerdrPaneAllocationLock(allocationKey, async () => {
242
+ const snapshot = parseHerdrSessionSnapshot(await client.call("session.snapshot"));
243
+ const panes = list(snapshot, "panes").filter((item) => Boolean(item && typeof item === "object")), workspaces = list(snapshot, "workspaces").filter((item) => Boolean(item && typeof item === "object"));
244
+ const ownedLabel = `pi-subagents-${createHash("sha256").update(cwd).digest("hex").slice(0, 10)}`, owned = workspaces.filter((item) => item.label === ownedLabel);
245
+ if (owned.length > 1)
246
+ throw new Error("Herdr deterministic owned workspace identity is ambiguous.");
247
+ const cwdWorkspaceIds = new Set(panes.filter((item) => item.cwd === cwd || item.foreground_cwd === cwd).map((item) => item.workspace_id).filter((id) => typeof id === "string")), cwdWorkspaces = workspaces.filter((item) => typeof item.workspace_id === "string" && cwdWorkspaceIds.has(item.workspace_id));
248
+ const selected = owned[0] ?? (cwdWorkspaces.length === 1 ? cwdWorkspaces[0] : undefined), selectedId = selected ? idOf(selected, "workspace_id") : undefined, actual = selectedId ? panes.filter((pane) => pane.workspace_id === selectedId).length : 0;
249
+ if (actual >= HERDR_MAX_OWNED_PANES)
250
+ throw new Error(`Herdr workspace pane limit of ${HERDR_MAX_OWNED_PANES} is reached; close an existing pane before launching another placed run.`);
251
+ const env = environment ?? { [HERDR_PI_MODE_ENV]: "1", [HERDR_PI_RUN_ENV]: runId, [HERDR_PI_RUNTIME_DIR_ENV]: runtimeDir };
252
+ if (selectedId) {
253
+ const tab = parseHerdrCreated(await client.call("tab.create", { workspace_id: selectedId, cwd, label: `subagent-${runId.slice(-8)}`, env, focus: false }), "tab_created");
254
+ return { workspaceId: selectedId, tabId: tab.tabId, paneId: tab.paneId };
255
+ }
256
+ const workspace = parseHerdrCreated(await client.call("workspace.create", { cwd, label: ownedLabel, env, focus: false }), "workspace_created");
257
+ return { workspaceId: workspace.workspaceId, tabId: workspace.tabId, paneId: workspace.paneId };
258
+ });
259
+ }
260
+ export async function discoverBridgeManifest(machine, runId, runtimeDir, options = {}) {
261
+ const script = `p="$1/manifest.json"; test -f "$p" && test ! -L "$p" && cat "$p"`;
262
+ for (let attempt = 0; attempt < 100; attempt++) {
263
+ const result = await runHerdrRemoteCommandAsync(machine, remoteShellCommand(script, [runtimeDir]), { ...options, timeout: 5_000, maxBuffer: 64 * 1024 });
264
+ if (result.error)
265
+ throw new Error(`Remote bridge manifest discovery failed: ${result.error.message}`, { cause: result.error });
266
+ if (result.status === 0 && result.stdout.trim()) {
267
+ let value;
268
+ try {
269
+ value = JSON.parse(result.stdout);
270
+ }
271
+ catch {
272
+ throw new Error("Remote bridge manifest is malformed.");
273
+ }
274
+ const p = value;
275
+ if (p.runId !== runId || typeof p.socketPath !== "string" || path.posix.dirname(p.socketPath) !== runtimeDir || typeof p.nativeSessionId !== "string" || typeof p.packageVersion !== "string" || typeof p.protocol !== "number")
276
+ throw new Error("Remote bridge manifest identity is incomplete or outside its owned runtime directory.");
277
+ return p;
278
+ }
279
+ await new Promise((resolve) => setTimeout(resolve, 50));
280
+ }
281
+ throw new Error("The remote Pi did not expose the packaged pi-subagents bridge. Install/configure the same package version as an ambient Pi extension on the saved machine.");
282
+ }
283
+ export async function createRemoteRuntimeDir(machine, runId, options = {}) { const result = await runHerdrRemoteCommandAsync(machine, remoteShellCommand("umask 077; mktemp -d \"${TMPDIR:-/tmp}/pi-subagents-herdr-$1-XXXXXXXX\"", [runId]), { ...options, timeout: 10_000, maxBuffer: 4096 }); if (result.error)
284
+ throw new Error(`Could not provision a run-private remote bridge runtime directory: ${result.error.message}`, { cause: result.error }); const value = result.stdout.trim(); if (result.status !== 0 || !path.posix.isAbsolute(value) || value.includes("\n"))
285
+ throw new Error("Could not provision a run-private remote bridge runtime directory."); return value; }
286
+ export function removeRemoteRuntimeDir(machine, runtimeDir, options = {}) { const result = runHerdrRemoteCommand(machine, remoteShellCommand("p=$1; case \"${p##*/}\" in pi-subagents-herdr-*) test -d \"$p\" && test ! -L \"$p\" && rm -rf -- \"$p\";; *) exit 64;; esac", [runtimeDir]), { ...options, timeout: 10_000, maxBuffer: 4096 }); if (result.status !== 0 || result.stdout)
287
+ throw new Error(`Could not remove the exact owned remote runtime directory: ${String(result.stderr).slice(0, 512)}`); }
288
+ /** The single private owner for allocation shared by every pane-native backend projection. */
289
+ export class HerdrPlacedRunOwner {
290
+ machine;
291
+ runId;
292
+ runtimeDir;
293
+ connection;
294
+ owned;
295
+ terminalId;
296
+ agentName;
297
+ startedArgv;
298
+ identity;
299
+ #unsubscribe = () => { };
300
+ #snapshot = { connection: "connected", state: "ready", revision: 0 };
301
+ #cleanupPromise;
302
+ #removeRuntime;
303
+ constructor(machine, runId, runtimeDir, connection, removeRuntime = () => removeRemoteRuntimeDir(machine, runtimeDir)) { this.machine = machine; this.runId = runId; this.runtimeDir = runtimeDir; this.connection = connection; this.#removeRuntime = removeRuntime; }
304
+ static async create(machine, runId, beforePane) { const runtimeDir = await createRemoteRuntimeDir(machine, runId); let connection; try {
305
+ connection = await connectHerdrMachine(machine);
306
+ const owner = new HerdrPlacedRunOwner(machine, runId, runtimeDir, connection);
307
+ await beforePane?.(owner);
308
+ return owner;
309
+ }
310
+ catch (error) {
311
+ const cleanupErrors = [];
312
+ try {
313
+ await connection?.close();
314
+ }
315
+ catch (cleanupError) {
316
+ cleanupErrors.push(cleanupError);
317
+ }
318
+ try {
319
+ removeRemoteRuntimeDir(machine, runtimeDir);
320
+ }
321
+ catch (cleanupError) {
322
+ cleanupErrors.push(cleanupError);
323
+ }
324
+ if (cleanupErrors.length)
325
+ throw new AggregateError([error, ...cleanupErrors], "Herdr owner creation failed and cleanup also failed.", { cause: error });
326
+ throw error;
327
+ } }
328
+ observeEvent(event) { const data = event && typeof event === "object" ? event.data : undefined; if (data && (!this.terminalId || data.terminal_id === this.terminalId || data.pane_id === this.owned?.paneId))
329
+ this.#snapshot = { ...this.#snapshot, revision: this.#snapshot.revision + 1, state: herdrRunState(data.agent_status, this.#snapshot.state) }; }
330
+ markConnectionUnknown(observed) { if (this.connection !== observed)
331
+ return false; this.#snapshot = { ...this.#snapshot, connection: "unknown", state: "unknown", revision: this.#snapshot.revision + 1 }; return true; }
332
+ statusSubscriptions(paneId = this.owned?.paneId) { if (!paneId)
333
+ throw new Error("Herdr status subscription requires a provisioned pane."); return herdrStatusSubscriptions(paneId); }
334
+ async subscribe(listener, disconnected) { const observed = this.connection; let adopted = false, candidateLost; const unsubscribe = await observed.client.subscribe(this.statusSubscriptions(), (event) => { this.observeEvent(event); listener(event); }, (error) => { if (!adopted) {
335
+ candidateLost ??= error;
336
+ return;
337
+ } if (!this.markConnectionUnknown(observed))
338
+ return; disconnected(error); }); if (candidateLost) {
339
+ unsubscribe();
340
+ throw candidateLost;
341
+ } this.#unsubscribe = unsubscribe; adopted = true; }
342
+ async provision(environment) { this.owned = await provisionHerdrPane(this.connection.client, this.machine.cwd, this.runId, this.runtimeDir, environment, herdrPaneAllocationKey(this.machine.target, this.connection.endpoint.session, this.machine.cwd)); return this.owned; }
343
+ async start(kind, name, args, options = {}) {
344
+ if (!this.owned)
345
+ throw new Error("Herdr placement owner has not provisioned its pane.");
346
+ const clock = options.clock ?? { now: () => Date.now(), wait: (ms) => new Promise((resolve) => setTimeout(resolve, ms)) }, deadline = clock.now() + (options.timeoutMs ?? 5_000), pollMs = options.pollMs ?? 50;
347
+ let response;
348
+ for (;;) {
349
+ try {
350
+ response = await this.connection.client.call("agent.start", { name, kind, pane_id: this.owned.paneId, args, timeout_ms: 45_000 }, 60_000);
351
+ break;
352
+ }
353
+ catch (error) {
354
+ if (!(error instanceof Error) || !error.message.includes("is not an available shell"))
355
+ throw error;
356
+ const pane = tagged(await this.connection.client.call("pane.get", { pane_id: this.owned.paneId }), "pane_info", "pane");
357
+ if (pane.pane_id !== this.owned.paneId || pane.workspace_id !== this.owned.workspaceId || pane.tab_id !== this.owned.tabId)
358
+ throw new Error("Herdr startup pane identity changed after a transient start rejection.", { cause: error });
359
+ if (pane.agent != null || pane.agent_session != null)
360
+ throw new Error("Herdr startup pane became occupied after a transient start rejection.", { cause: error });
361
+ if (clock.now() >= deadline)
362
+ throw new Error("Herdr owned pane remained unavailable until the startup deadline.", { cause: error });
363
+ await clock.wait(Math.min(pollMs, deadline - clock.now()));
364
+ }
365
+ }
366
+ const started = parseHerdrAgent(response, "agent_started"), argv = [kind, ...args], terminalId = idOf(started, "terminal_id"), paneId = idOf(started, "pane_id");
367
+ if (paneId !== this.owned.paneId)
368
+ throw new Error("Herdr started the native agent in an unexpected pane.");
369
+ this.agentName = name;
370
+ this.terminalId = terminalId;
371
+ this.startedArgv = argv;
372
+ return { terminalId, paneId, argv };
373
+ }
374
+ journal(identity) { this.identity = identity; this.#snapshot = { ...this.#snapshot, identity }; const journalDir = path.join(getAgentDir(), "pi-subagents", "herdr-run-journal"); fs.mkdirSync(journalDir, { recursive: true, mode: 0o700 }); fs.writeFileSync(path.join(journalDir, `${this.runId}.json`), JSON.stringify({ version: 1, identity, state: "ready", updatedAt: Date.now() }), { mode: 0o600, flag: "wx" }); }
375
+ get snapshot() { return this.#snapshot; }
376
+ runRemote(command, options = {}) { return runHerdrRemoteCommand(this.machine, command, options); }
377
+ async replaceConnection(input) { const oldConnection = this.connection, oldUnsubscribe = this.#unsubscribe; this.connection = input.connection; this.#unsubscribe = input.unsubscribe; if (this.identity)
378
+ this.identity = { ...this.identity, paneId: input.paneId }; this.#snapshot = { connection: "connected", state: input.state, identity: this.identity, revision: this.#snapshot.revision + 1 }; oldUnsubscribe(); await oldConnection.close(); }
379
+ cleanup(closeStartedPane = true) { return this.#cleanupPromise ??= this.#performCleanup(closeStartedPane); }
380
+ async #performCleanup(closeStartedPane) { let failure; try {
381
+ if (closeStartedPane && this.owned) {
382
+ let closed = false;
383
+ if (this.terminalId && this.agentName) {
384
+ const current = parseHerdrAgent(await this.connection.client.call("agent.get", { target: this.agentName }), "agent_info");
385
+ if (ownsHerdrPane(current, this.terminalId, this.owned.paneId)) {
386
+ await this.connection.client.call("pane.close", { pane_id: this.owned.paneId });
387
+ closed = true;
388
+ }
389
+ }
390
+ if (!closed) {
391
+ const snapshot = parseHerdrSessionSnapshot(await this.connection.client.call("session.snapshot"));
392
+ const occupants = snapshotAgents(snapshot).filter((agent) => agent.pane_id === this.owned.paneId);
393
+ if (occupants.length !== 0)
394
+ throw new Error("Refusing cleanup because startup pane ownership is uncertain.");
395
+ await this.connection.client.call("pane.close", { pane_id: this.owned.paneId });
396
+ }
397
+ }
398
+ }
399
+ catch (error) {
400
+ failure = error;
401
+ } try {
402
+ this.#unsubscribe();
403
+ await this.connection.close();
404
+ this.#removeRuntime();
405
+ }
406
+ catch (error) {
407
+ failure ??= error;
408
+ } this.#snapshot = { ...this.#snapshot, connection: "closed", revision: this.#snapshot.revision + 1 }; if (failure)
409
+ throw failure; }
410
+ }
411
+ export class BridgeChannel {
412
+ socket;
413
+ decoder = new HerdrPiFrameDecoder();
414
+ listeners = new Set();
415
+ waiters = new Map();
416
+ runId;
417
+ frames = [];
418
+ failure;
419
+ #rejectFailure;
420
+ #failed = false;
421
+ constructor(socketPath, runId) { this.runId = runId; this.failure = new Promise((_resolve, reject) => { this.#rejectFailure = reject; }); this.failure.catch(() => { }); this.socket = net.createConnection(socketPath); this.socket.on("data", (chunk) => { try {
422
+ for (const frame of this.decoder.push(chunk)) {
423
+ if (frame.runId !== runId)
424
+ throw new Error("Bridge run identity mismatch.");
425
+ this.frames.push(frame);
426
+ if (this.frames.length > 1024)
427
+ throw new Error("Bridge replay queue exceeded its bound.");
428
+ const key = typeof frame.requestId === "string" ? `${frame.type}:${frame.requestId}` : "";
429
+ const waiter = this.waiters.get(key);
430
+ if (waiter) {
431
+ this.waiters.delete(key);
432
+ waiter.resolve(frame);
433
+ }
434
+ for (const listener of this.listeners)
435
+ listener(frame);
436
+ }
437
+ }
438
+ catch (error) {
439
+ this.fail(error);
440
+ } }); this.socket.on("error", (error) => this.fail(error)); this.socket.on("close", () => { if (!this.#failed)
441
+ this.fail(new Error("Remote Pi bridge connection was lost; task state is unknown.")); }); }
442
+ fail(error) { if (this.#failed)
443
+ return; this.#failed = true; this.#rejectFailure(error); for (const waiter of this.waiters.values())
444
+ waiter.reject(error); this.waiters.clear(); }
445
+ get failed() { return this.#failed; }
446
+ wait(type, requestId) { return new Promise((resolve, reject) => this.waiters.set(`${type}:${requestId}`, { resolve, reject })); }
447
+ configure(resources) { const requestId = `cfg_${randomBytes(6).toString("hex")}`; const waiting = this.wait("configured", requestId); this.socket.write(encodeHerdrPiFrame({ protocol: HERDR_PI_PROTOCOL, runId: this.runId, type: "configure", requestId, resources })); return waiting; }
448
+ supervisorDelivered(requestId) { this.socket.write(encodeHerdrPiFrame({ protocol: HERDR_PI_PROTOCOL, runId: this.runId, type: "supervisor-delivered", requestId })); }
449
+ prepare(requestId, operation, text, supervisorId) { const waiting = this.wait("prepared", requestId); this.socket.write(encodeHerdrPiFrame({ protocol: HERDR_PI_PROTOCOL, runId: this.runId, type: "prepare", requestId, operation, ...(text !== undefined ? { text } : {}), ...(supervisorId ? { supervisorId } : {}) })); return waiting; }
450
+ close() { this.socket.destroy(); }
451
+ }
452
+ function waitForReadyBridgeFrame(bridge, timeoutMs, timeoutMessage, configured = false) {
453
+ return new Promise((resolve, reject) => {
454
+ const timer = setTimeout(() => reject(new Error(timeoutMessage)), timeoutMs);
455
+ const listener = (frame) => {
456
+ if (frame.type !== "ready" || configured && frame.configured !== true)
457
+ return;
458
+ clearTimeout(timer);
459
+ bridge.listeners.delete(listener);
460
+ resolve(frame);
461
+ };
462
+ bridge.listeners.add(listener);
463
+ });
464
+ }
465
+ export class HerdrPiSession {
466
+ #listeners = new Set();
467
+ #messages = [];
468
+ #sequence = 0;
469
+ #disposed = false;
470
+ #aborted = false;
471
+ #initialGit;
472
+ #finalGit;
473
+ #operations = new Map();
474
+ #snapshot;
475
+ bridgeForward;
476
+ bridge;
477
+ requestedTools;
478
+ model;
479
+ #evidenceCursor = 0;
480
+ #reconnecting;
481
+ #reconnectFactory;
482
+ #reconnectFailure;
483
+ #replyTimer;
484
+ supervisorDir;
485
+ runtime;
486
+ owner;
487
+ constructor(owner, bridgeForward, bridge, requestedTools, model, runtime, initialGit) { this.owner = owner; this.bridgeForward = bridgeForward; this.bridge = bridge; this.requestedTools = requestedTools; this.model = model; this.runtime = runtime; this.supervisorDir = runtime.supervisorChannelDir; this.#snapshot = { connection: "connected", state: "ready", identity: owner.identity, revision: 0 }; this.#initialGit = initialGit; bridge.listeners.add((frame) => this.#frame(frame)); if (this.supervisorDir) {
488
+ this.#replyTimer = setInterval(() => { const replies = path.join(this.supervisorDir, "replies"); for (const name of fs.existsSync(replies) ? fs.readdirSync(replies) : []) {
489
+ const file = path.join(replies, name);
490
+ try {
491
+ const value = JSON.parse(fs.readFileSync(file, "utf8"));
492
+ if (typeof value.message === "string" && typeof value.requestId === "string")
493
+ void this.#operation("supervisor-reply", value.message, value.requestId).then(() => fs.rmSync(file, { force: true }));
494
+ }
495
+ catch { }
496
+ } }, 50);
497
+ this.#replyTimer.unref?.();
498
+ } }
499
+ get identity() { return this.owner.identity; }
500
+ set identity(value) { this.owner.identity = value; }
501
+ get connection() { return this.owner.connection; }
502
+ set connection(value) { this.owner.connection = value; }
503
+ armReconnect(factory) { this.#reconnectFactory = factory; const observed = this.bridge; observed.failure.catch(() => { if (this.bridge === observed)
504
+ void this.reconnect(); }); }
505
+ get evidenceCursor() { return this.#evidenceCursor; }
506
+ async reconnect() { if (this.#disposed || !this.#reconnectFactory || this.#reconnectFailure)
507
+ return; this.#snapshot = { ...this.#snapshot, connection: "unknown", state: "unknown", revision: this.#snapshot.revision + 1 }; this.#reconnecting ??= this.#reconnectFactory().catch((error) => { const unknown = this.#reconnectFailure = new Error(`Remote Pi reconciliation failed; task state is unknown: ${error instanceof Error ? error.message : String(error)}`); for (const operation of this.#operations.values())
508
+ if (!operation.settled) {
509
+ operation.settled = true;
510
+ operation.reject(unknown);
511
+ } }).finally(() => { this.#reconnecting = undefined; }); await this.#reconnecting; }
512
+ async replaceTransport(input) { if (this.#disposed) {
513
+ input.unsubscribe();
514
+ input.bridge.close();
515
+ await input.bridgeForward.close();
516
+ await input.connection.close();
517
+ return;
518
+ } const old = { bridgeForward: this.bridgeForward, bridge: this.bridge }; this.bridgeForward = input.bridgeForward; this.bridge = input.bridge; this.identity = { ...this.identity, paneId: input.paneId }; this.#reconnectFailure = undefined; for (const frame of input.bridge.frames)
519
+ if (typeof frame.cursor === "number" && frame.cursor > this.#evidenceCursor)
520
+ this.#frame(frame); input.bridge.listeners.add((frame) => this.#frame(frame)); for (const operation of this.#operations.values())
521
+ if (!operation.accepted && !operation.settled) {
522
+ operation.settled = true;
523
+ operation.reject(new Error("Remote operation was not accepted before transport loss; task state is unknown."));
524
+ } this.#evidenceCursor = Math.max(this.#evidenceCursor, input.cursor); this.#snapshot = { connection: "connected", state: input.state, identity: this.identity, revision: this.#snapshot.revision + 1 }; const ownerReplacement = this.owner.replaceConnection({ connection: input.connection, unsubscribe: input.unsubscribe, paneId: input.paneId, state: input.state }); old.bridge.close(); await old.bridgeForward.close(); await ownerReplacement; if (this.#disposed) {
525
+ await this.owner.cleanup(this.#aborted);
526
+ return;
527
+ } this.armReconnect(this.#reconnectFactory); }
528
+ observeHerdr(value) { const data = value && typeof value === "object" ? value.data : undefined; if (!data || (data.terminal_id !== this.identity.terminalId && data.pane_id !== this.identity.paneId))
529
+ return; this.#snapshot = { ...this.#snapshot, revision: this.#snapshot.revision + 1, state: herdrRunState(data.agent_status, this.#snapshot.state) }; }
530
+ #frame(frame) { if (typeof frame.cursor === "number") {
531
+ if (frame.cursor <= this.#evidenceCursor)
532
+ return;
533
+ this.#evidenceCursor = frame.cursor;
534
+ } if (frame.nativeSessionId !== this.identity.nativeSessionId) {
535
+ this.bridge.fail(new Error("Remote Pi native session identity changed."));
536
+ void this.connection.close();
537
+ return;
538
+ } if (frame.type === "accepted" && typeof frame.requestId === "string") {
539
+ const operation = this.#operations.get(frame.requestId);
540
+ if (operation)
541
+ operation.accepted = true;
542
+ } if (frame.type === "supervisor-request" && this.supervisorDir && typeof frame.requestId === "string")
543
+ this.#relaySupervisor(frame); if (frame.type === "event" && frame.event && typeof frame.event === "object") {
544
+ const event = frame.event;
545
+ const message = event.message;
546
+ if (event.type === "message_end" && message)
547
+ this.#messages.push(message);
548
+ for (const listener of this.#listeners)
549
+ listener(event);
550
+ } if (frame.type === "settled" && typeof frame.requestId === "string") {
551
+ if (frame.finalAssistant && typeof frame.finalAssistant === "object") {
552
+ const message = frame.finalAssistant;
553
+ if (!this.#messages.includes(message))
554
+ this.#messages.push(message);
555
+ }
556
+ if (frame.finalGit && typeof frame.finalGit === "object")
557
+ this.#finalGit = frame.finalGit;
558
+ const operation = this.#operations.get(frame.requestId);
559
+ if (operation && !operation.settled) {
560
+ operation.accepted = true;
561
+ operation.settled = true;
562
+ frame.idle === true && frame.pending === false ? operation.resolve() : operation.reject(new Error("Remote Pi did not settle with an empty native queue."));
563
+ }
564
+ for (const listener of this.#listeners)
565
+ listener({ type: "agent_settled" });
566
+ } }
567
+ #relaySupervisor(frame) { if (!this.supervisorDir || typeof frame.requestId !== "string")
568
+ return; const reason = frame.reason; if (reason !== "need_decision" && reason !== "interview_request" && reason !== "progress_update")
569
+ return; const createdAt = Date.now(); const file = path.join(this.supervisorDir, "requests", `${path.basename(frame.requestId)}.json`); const request = { type: "subagent.supervisor.request", id: frame.requestId, createdAt, ...(reason !== "progress_update" ? { expiresAt: createdAt + 10 * 60_000 } : {}), reason, message: typeof frame.message === "string" ? frame.message : "", ...(frame.interview && typeof frame.interview === "object" ? { interview: frame.interview } : {}), expectsReply: reason !== "progress_update", runId: this.runtime.runId ?? this.identity.runId, agent: this.runtime.agent ?? "remote", childIndex: this.runtime.childIndex ?? 0, orchestratorSessionId: this.runtime.orchestratorSessionId }; try {
570
+ fs.writeFileSync(file, JSON.stringify(request), { mode: 0o600, flag: "wx" });
571
+ }
572
+ catch (error) {
573
+ if (error.code !== "EEXIST")
574
+ throw error;
575
+ const existing = JSON.parse(fs.readFileSync(file, "utf8"));
576
+ if (existing.id !== frame.requestId || existing.reason !== reason)
577
+ throw new Error("Supervisor relay identity changed during replay.");
578
+ } if (reason === "progress_update")
579
+ this.bridge.supervisorDelivered(frame.requestId); }
580
+ async #operation(operation, text, supervisorId) { const requestId = `${++this.#sequence}_${randomBytes(5).toString("hex")}`; let completion = Promise.resolve(); if (operation === "prompt")
581
+ completion = new Promise((resolve, reject) => this.#operations.set(requestId, { resolve, reject, accepted: false, settled: false })); try {
582
+ await Promise.race([this.bridge.prepare(requestId, operation, text, supervisorId), this.bridge.failure]);
583
+ await this.connection.client.call("agent.prompt", { target: this.identity.agentName, text: `/pi-subagents-bridge ${requestId}` });
584
+ await completion;
585
+ }
586
+ catch (error) {
587
+ if (operation === "prompt" && this.bridge.failed) {
588
+ await this.reconnect();
589
+ await completion;
590
+ return;
591
+ }
592
+ const pending = this.#operations.get(requestId);
593
+ if (pending)
594
+ pending.settled = true;
595
+ throw error;
596
+ }
597
+ finally {
598
+ if (operation === "prompt")
599
+ this.#operations.delete(requestId);
600
+ } }
601
+ subscribe(listener) { this.#listeners.add(listener); return () => this.#listeners.delete(listener); }
602
+ prompt(text) { return this.#operation("prompt", text); }
603
+ steer(text) { return this.#operation("steer", text); }
604
+ followUp(text) { return this.#operation("follow-up", text); }
605
+ async abort() { this.#aborted = true; await this.#operation("abort"); }
606
+ async dispose() { if (this.#disposed)
607
+ return; this.#disposed = true; if (this.#replyTimer)
608
+ clearInterval(this.#replyTimer); this.bridge.close(); await this.bridgeForward.close(); await this.owner.cleanup(this.#aborted); this.#snapshot = { ...this.#snapshot, connection: "closed" }; }
609
+ get messages() { return this.#messages; }
610
+ get sessionFile() { return undefined; }
611
+ get sessionId() { return this.identity.nativeSessionId; }
612
+ get modelId() { return this.model; }
613
+ get machineEvidence() { return { machineId: this.identity.machineId, ...(this.#initialGit ? { initial: this.#initialGit } : {}), ...(this.#finalGit ? { final: this.#finalGit } : {}) }; }
614
+ get placementSnapshot() { return this.owner.snapshot; }
615
+ }
616
+ export async function reconnectHerdrPiSession(session, launch, dependencies = {}) {
617
+ const connect = dependencies.connect ?? connectHerdrMachine, discoverManifest = dependencies.discoverManifest ?? discoverBridgeManifest, createBridge = dependencies.createBridge ?? ((socketPath, runId) => new BridgeChannel(socketPath, runId));
618
+ let validated;
619
+ const result = await boundedHerdrReconnect(session.identity, session.evidenceCursor, async () => {
620
+ const connection = await connect(launch.machine);
621
+ let unsubscribe = () => { };
622
+ let bridgeForward;
623
+ let bridge;
624
+ const generation = { adopted: false };
625
+ try {
626
+ const snapshot = parseHerdrSessionSnapshot(await connection.client.call("session.snapshot"));
627
+ const agents = snapshotAgents(snapshot);
628
+ const manifest = await discoverManifest(launch.machine, session.identity.runId, session.identity.runtimeDir);
629
+ bridgeForward = await connection.forwardRemoteSocket(manifest.socketPath, "bridge-reconnect");
630
+ bridge = createBridge(bridgeForward.socketPath, session.identity.runId);
631
+ const ready = await waitForReadyBridgeFrame(bridge, 8_000, "Reconnected bridge handshake timed out.", true);
632
+ const candidate = { endpoint: connection.endpoint, agents, bridge: { runId: ready.runId, nativeSessionId: ready.nativeSessionId, packageVersion: ready.packageVersion, protocol: ready.protocol, evidenceCursor: ready.evidenceCursor, evidenceFloor: ready.evidenceFloor } };
633
+ const check = reconcileHerdrReconnect(session.identity, candidate, session.evidenceCursor);
634
+ if (!check.ok)
635
+ throw new Error(check.reason);
636
+ unsubscribe = await connection.client.subscribe(herdrStatusSubscriptions(check.paneId), (event) => { session.owner.observeEvent(event); session.observeHerdr(event); }, (error) => { if (!generation.adopted) {
637
+ generation.lost ??= error;
638
+ return;
639
+ } session.owner.markConnectionUnknown(connection); void session.reconnect(); });
640
+ if (generation.lost)
641
+ throw generation.lost;
642
+ validated = { connection, unsubscribe, bridgeForward, bridge, candidate: generation };
643
+ return candidate;
644
+ }
645
+ catch (error) {
646
+ unsubscribe();
647
+ bridge?.close();
648
+ await bridgeForward?.close();
649
+ await connection.close();
650
+ throw error;
651
+ }
652
+ }, { attempts: 3, deadlineMs: 15_000, disposed: () => session.placementSnapshot.connection === "closed" });
653
+ if (!result.ok)
654
+ throw new Error(`Pane-native reconnect remains unknown: ${result.reason}`);
655
+ if (!validated)
656
+ throw new Error("Pane-native reconnect produced no validated transport.");
657
+ if (validated.candidate.lost) {
658
+ validated.unsubscribe();
659
+ validated.bridge.close();
660
+ await validated.bridgeForward.close();
661
+ await validated.connection.close();
662
+ throw validated.candidate.lost;
663
+ }
664
+ validated.candidate.adopted = true;
665
+ await session.replaceTransport({ ...validated, paneId: result.paneId, cursor: result.cursor, state: result.state });
666
+ }
667
+ export async function createHerdrPiSession(launch) {
668
+ if (!launch.machine)
669
+ throw new Error("Pane-native Pi launch requires a saved machine.");
670
+ const policy = serializeHerdrPiLaunch(launch);
671
+ const runId = safeRunId(launch.runtime.runId);
672
+ const owner = await HerdrPlacedRunOwner.create(launch.machine, runId);
673
+ const runtimeDir = owner.runtimeDir, connection = owner.connection;
674
+ let owned;
675
+ let agentName;
676
+ let observeHerdr;
677
+ try {
678
+ let reconnectSession;
679
+ owned = await owner.provision();
680
+ await owner.subscribe((event) => observeHerdr?.(event), () => void reconnectSession?.reconnect());
681
+ agentName = `pi-${runId.slice(-20)}`;
682
+ const { terminalId } = await owner.start("pi", agentName, policy.args);
683
+ const manifest = await discoverBridgeManifest(launch.machine, runId, runtimeDir);
684
+ if (manifest.protocol !== HERDR_PI_PROTOCOL || manifest.packageVersion !== packageJson.version)
685
+ throw new Error(`Remote pi-subagents bridge version mismatch (remote ${manifest.packageVersion}, local ${packageJson.version}).`);
686
+ const bridgeForward = await connection.forwardRemoteSocket(manifest.socketPath, "bridge");
687
+ const bridge = new BridgeChannel(bridgeForward.socketPath, runId);
688
+ const ready = await waitForReadyBridgeFrame(bridge, 15_000, "Remote Pi bridge handshake timed out.");
689
+ if (ready.packageVersion !== packageJson.version || ready.nativeSessionId !== manifest.nativeSessionId || ready.cwd !== launch.machine.cwd)
690
+ throw new Error("Remote Pi bridge handshake identity mismatch.");
691
+ const configured = await Promise.race([bridge.configure(policy.resources), bridge.failure]);
692
+ if (configured.nativeSessionId !== manifest.nativeSessionId || configured.agent !== policy.resources.agent)
693
+ throw new Error("Remote Pi resource resolution identity mismatch.");
694
+ if (!Array.isArray(configured.tools) || (policy.resources.toolCeiling && configured.tools.some((tool) => !policy.resources.toolCeiling.includes(String(tool)))))
695
+ throw new Error("Remote Pi active-tool ceiling acknowledgement mismatch.");
696
+ if (launch.model && configured.model !== launch.model.split(":")[0])
697
+ throw new Error(`Remote Pi model '${launch.model}' did not resolve to the requested provider/model.`);
698
+ const identity = { runId, machineId: launch.machine.id, target: launch.machine.target, session: connection.endpoint.session, workspaceId: owned.workspaceId, tabId: owned.tabId, paneId: owned.paneId, terminalId, agentName, nativeSessionId: manifest.nativeSessionId, cwd: launch.machine.cwd, runtimeDir };
699
+ owner.journal(identity);
700
+ const session = new HerdrPiSession(owner, bridgeForward, bridge, configured.tools, typeof ready.model === "string" ? ready.model : undefined, launch.runtime, ready.initialGit);
701
+ reconnectSession = session;
702
+ observeHerdr = (event) => session.observeHerdr(event);
703
+ session.armReconnect(() => reconnectHerdrPiSession(session, launch));
704
+ return session;
705
+ }
706
+ catch (error) {
707
+ await owner.cleanup();
708
+ throw error;
709
+ }
710
+ }
711
+ export function createPlacementAwareChildSessionFactory(local, createRemote = createHerdrPiSession) {
712
+ const remote = new Set();
713
+ return { async create(launch) { if (!launch.machine)
714
+ return local.create(launch); serializeHerdrPiLaunch(launch); const child = await createRemote(launch); remote.add(child); return child; }, async dispose() { await Promise.allSettled([...remote].map((child) => child.dispose())); remote.clear(); await local.dispose(); } };
715
+ }
716
+ //# sourceMappingURL=herdr-placed-run.js.map