@agimon-ai/doompi-team 0.0.1-alpha.2 → 0.0.1-alpha.21

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 (727) hide show
  1. package/README.md +33 -17
  2. package/dist/adapters/asyncJobTracker.cjs +2 -0
  3. package/dist/adapters/asyncJobTracker.cjs.map +1 -0
  4. package/dist/adapters/asyncJobTracker.mjs +2 -0
  5. package/dist/adapters/asyncJobTracker.mjs.map +1 -0
  6. package/dist/adapters/atomicJson.cjs +2 -0
  7. package/dist/adapters/atomicJson.cjs.map +1 -0
  8. package/dist/adapters/atomicJson.mjs +2 -0
  9. package/dist/adapters/atomicJson.mjs.map +1 -0
  10. package/dist/adapters/pi/extension.cjs +2 -0
  11. package/dist/adapters/pi/extension.cjs.map +1 -0
  12. package/dist/adapters/pi/extension.mjs +2 -0
  13. package/dist/adapters/pi/extension.mjs.map +1 -0
  14. package/dist/adapters/pollScheduler.cjs +2 -0
  15. package/dist/adapters/pollScheduler.cjs.map +1 -0
  16. package/dist/adapters/pollScheduler.mjs +2 -0
  17. package/dist/adapters/pollScheduler.mjs.map +1 -0
  18. package/dist/adapters/process/childTranscript.cjs +5 -0
  19. package/dist/adapters/process/childTranscript.cjs.map +1 -0
  20. package/dist/adapters/process/childTranscript.mjs +5 -0
  21. package/dist/adapters/process/childTranscript.mjs.map +1 -0
  22. package/dist/adapters/process/env.cjs +2 -0
  23. package/dist/adapters/process/env.cjs.map +1 -0
  24. package/dist/adapters/process/env.d.cts +69 -0
  25. package/dist/adapters/process/env.d.cts.map +1 -0
  26. package/dist/adapters/process/env.d.mts +69 -0
  27. package/dist/adapters/process/env.d.mts.map +1 -0
  28. package/dist/adapters/process/env.mjs +2 -0
  29. package/dist/adapters/process/env.mjs.map +1 -0
  30. package/dist/adapters/process/sdkRunnerEntry.cjs +2 -0
  31. package/dist/adapters/process/sdkRunnerEntry.cjs.map +1 -0
  32. package/dist/adapters/process/sdkRunnerEntry.d.cts +5 -0
  33. package/dist/adapters/process/sdkRunnerEntry.d.cts.map +1 -0
  34. package/dist/adapters/process/sdkRunnerEntry.d.mts +5 -0
  35. package/dist/adapters/process/sdkRunnerEntry.d.mts.map +1 -0
  36. package/dist/adapters/process/sdkRunnerEntry.mjs +2 -0
  37. package/dist/adapters/process/sdkRunnerEntry.mjs.map +1 -0
  38. package/dist/adapters/processTerminal.cjs +2 -0
  39. package/dist/adapters/processTerminal.cjs.map +1 -0
  40. package/dist/adapters/processTerminal.mjs +2 -0
  41. package/dist/adapters/processTerminal.mjs.map +1 -0
  42. package/dist/adapters/resultWatcher.cjs +2 -0
  43. package/dist/adapters/resultWatcher.cjs.map +1 -0
  44. package/dist/adapters/resultWatcher.mjs +2 -0
  45. package/dist/adapters/resultWatcher.mjs.map +1 -0
  46. package/dist/adapters/runIdResolver.cjs +2 -0
  47. package/dist/adapters/runIdResolver.cjs.map +1 -0
  48. package/dist/adapters/runIdResolver.mjs +2 -0
  49. package/dist/adapters/runIdResolver.mjs.map +1 -0
  50. package/dist/adapters/runRegistry.cjs +2 -0
  51. package/dist/adapters/runRegistry.cjs.map +1 -0
  52. package/dist/adapters/runRegistry.mjs +2 -0
  53. package/dist/adapters/runRegistry.mjs.map +1 -0
  54. package/dist/adapters/scopeOwner.cjs +2 -0
  55. package/dist/adapters/scopeOwner.cjs.map +1 -0
  56. package/dist/adapters/scopeOwner.mjs +2 -0
  57. package/dist/adapters/scopeOwner.mjs.map +1 -0
  58. package/dist/adapters/staleRunReconciler.cjs +2 -0
  59. package/dist/adapters/staleRunReconciler.cjs.map +1 -0
  60. package/dist/adapters/staleRunReconciler.mjs +2 -0
  61. package/dist/adapters/staleRunReconciler.mjs.map +1 -0
  62. package/dist/adapters/statusReader.cjs +2 -0
  63. package/dist/adapters/statusReader.cjs.map +1 -0
  64. package/dist/adapters/statusReader.mjs +2 -0
  65. package/dist/adapters/statusReader.mjs.map +1 -0
  66. package/dist/adapters/suspendedRuns.cjs +6 -0
  67. package/dist/adapters/suspendedRuns.cjs.map +1 -0
  68. package/dist/adapters/suspendedRuns.mjs +6 -0
  69. package/dist/adapters/suspendedRuns.mjs.map +1 -0
  70. package/dist/api/backgroundWork.cjs +1 -1
  71. package/dist/api/backgroundWork.d.cts +2 -2
  72. package/dist/api/backgroundWork.d.mts +2 -2
  73. package/dist/api/backgroundWork.mjs +1 -1
  74. package/dist/api/capabilityCeiling.cjs +1 -1
  75. package/dist/api/capabilityCeiling.d.cts +3 -3
  76. package/dist/api/capabilityCeiling.d.mts +3 -3
  77. package/dist/api/capabilityCeiling.mjs +1 -2
  78. package/dist/api/delegation.cjs +1 -1
  79. package/dist/api/delegation.d.cts +1 -1
  80. package/dist/api/delegation.d.mts +1 -1
  81. package/dist/api/delegation.mjs +1 -1
  82. package/dist/api/teamSnapshot.cjs +1 -1
  83. package/dist/api/teamSnapshot.d.cts +2 -2
  84. package/dist/api/teamSnapshot.d.mts +2 -2
  85. package/dist/api/teamSnapshot.mjs +1 -2
  86. package/dist/commands/slash/chainExpression.cjs.map +1 -0
  87. package/dist/commands/slash/chainExpression.mjs.map +1 -0
  88. package/dist/commands/slash/doctor.cjs +5 -0
  89. package/dist/commands/slash/doctor.cjs.map +1 -0
  90. package/dist/commands/slash/doctor.mjs +5 -0
  91. package/dist/{slash/doctor.cjs.map → commands/slash/doctor.mjs.map} +1 -1
  92. package/dist/{slash → commands/slash}/slashCommands.cjs +1 -1
  93. package/dist/commands/slash/slashCommands.cjs.map +1 -0
  94. package/dist/{slash → commands/slash}/slashCommands.mjs +2 -2
  95. package/dist/commands/slash/slashCommands.mjs.map +1 -0
  96. package/dist/commands/slash/spawnRequestMapping.cjs.map +1 -0
  97. package/dist/commands/slash/spawnRequestMapping.mjs.map +1 -0
  98. package/dist/commands/slash/subagentLaunch.cjs +2 -0
  99. package/dist/commands/slash/subagentLaunch.cjs.map +1 -0
  100. package/dist/commands/slash/subagentLaunch.mjs +2 -0
  101. package/dist/commands/slash/subagentLaunch.mjs.map +1 -0
  102. package/dist/container/globalBridge.cjs.map +1 -1
  103. package/dist/container/globalBridge.d.cts +1 -1
  104. package/dist/container/globalBridge.d.mts +1 -1
  105. package/dist/container/globalBridge.mjs.map +1 -1
  106. package/dist/container/index.cjs +1 -1
  107. package/dist/container/index.cjs.map +1 -1
  108. package/dist/container/index.d.cts +2 -1
  109. package/dist/container/index.d.cts.map +1 -1
  110. package/dist/container/index.d.mts +2 -1
  111. package/dist/container/index.d.mts.map +1 -1
  112. package/dist/container/index.mjs +1 -1
  113. package/dist/container/index.mjs.map +1 -1
  114. package/dist/container/modules/agents.cjs +1 -1
  115. package/dist/container/modules/agents.cjs.map +1 -1
  116. package/dist/container/modules/agents.mjs +1 -1
  117. package/dist/container/modules/agents.mjs.map +1 -1
  118. package/dist/container/modules/core.cjs +1 -1
  119. package/dist/container/modules/core.cjs.map +1 -1
  120. package/dist/container/modules/core.mjs +1 -1
  121. package/dist/container/modules/core.mjs.map +1 -1
  122. package/dist/container/modules/extensions.cjs +1 -1
  123. package/dist/container/modules/extensions.cjs.map +1 -1
  124. package/dist/container/modules/extensions.mjs +1 -1
  125. package/dist/container/modules/extensions.mjs.map +1 -1
  126. package/dist/container/modules/intercom.cjs +1 -1
  127. package/dist/container/modules/intercom.cjs.map +1 -1
  128. package/dist/container/modules/intercom.mjs +1 -1
  129. package/dist/container/modules/intercom.mjs.map +1 -1
  130. package/dist/container/modules/runs.cjs +1 -1
  131. package/dist/container/modules/runs.cjs.map +1 -1
  132. package/dist/container/modules/runs.mjs +1 -1
  133. package/dist/container/modules/runs.mjs.map +1 -1
  134. package/dist/container/types.cjs +1 -1
  135. package/dist/container/types.cjs.map +1 -1
  136. package/dist/container/types.d.cts +1 -0
  137. package/dist/container/types.d.cts.map +1 -1
  138. package/dist/container/types.d.mts +1 -0
  139. package/dist/container/types.d.mts.map +1 -1
  140. package/dist/container/types.mjs +1 -1
  141. package/dist/container/types.mjs.map +1 -1
  142. package/dist/env.cjs +1 -2
  143. package/dist/env.d.cts +2 -65
  144. package/dist/env.d.mts +2 -65
  145. package/dist/env.mjs +1 -1
  146. package/dist/env.mjs.map +1 -1
  147. package/dist/extensions/config.cjs.map +1 -1
  148. package/dist/extensions/config.mjs.map +1 -1
  149. package/dist/extensions/delegationBridge.cjs.map +1 -1
  150. package/dist/extensions/delegationBridge.mjs.map +1 -1
  151. package/dist/extensions/doom.cjs +1 -1
  152. package/dist/extensions/doom.cjs.map +1 -1
  153. package/dist/extensions/doom.mjs +1 -1
  154. package/dist/extensions/doom.mjs.map +1 -1
  155. package/dist/extensions/fablePlanBridge.cjs +1 -1
  156. package/dist/extensions/fablePlanBridge.cjs.map +1 -1
  157. package/dist/extensions/fablePlanBridge.mjs +1 -1
  158. package/dist/extensions/fablePlanBridge.mjs.map +1 -1
  159. package/dist/extensions/managementActions.cjs +1 -1
  160. package/dist/extensions/managementActions.cjs.map +1 -1
  161. package/dist/extensions/managementActions.mjs +1 -1
  162. package/dist/extensions/managementActions.mjs.map +1 -1
  163. package/dist/extensions/operationJournal.cjs +1 -1
  164. package/dist/extensions/operationJournal.cjs.map +1 -1
  165. package/dist/extensions/operationJournal.mjs +1 -1
  166. package/dist/extensions/operationJournal.mjs.map +1 -1
  167. package/dist/extensions/orchestratorPrompt.cjs +5 -6
  168. package/dist/extensions/orchestratorPrompt.cjs.map +1 -1
  169. package/dist/extensions/orchestratorPrompt.mjs +5 -6
  170. package/dist/extensions/orchestratorPrompt.mjs.map +1 -1
  171. package/dist/extensions/schemas.mjs.map +1 -1
  172. package/dist/extensions/spawnPlan.cjs +3 -2
  173. package/dist/extensions/spawnPlan.cjs.map +1 -1
  174. package/dist/extensions/spawnPlan.mjs +3 -2
  175. package/dist/extensions/spawnPlan.mjs.map +1 -1
  176. package/dist/extensions/standard.cjs +1 -1
  177. package/dist/extensions/standard.cjs.map +1 -1
  178. package/dist/extensions/standard.mjs +1 -1
  179. package/dist/extensions/standard.mjs.map +1 -1
  180. package/dist/extensions/statusViews.cjs +1 -1
  181. package/dist/extensions/statusViews.cjs.map +1 -1
  182. package/dist/extensions/statusViews.mjs +2 -2
  183. package/dist/extensions/statusViews.mjs.map +1 -1
  184. package/dist/extensions/subagentPromptRuntime.cjs +11 -11
  185. package/dist/extensions/subagentPromptRuntime.cjs.map +1 -1
  186. package/dist/extensions/subagentPromptRuntime.d.cts.map +1 -1
  187. package/dist/extensions/subagentPromptRuntime.d.mts.map +1 -1
  188. package/dist/extensions/subagentPromptRuntime.mjs +5 -5
  189. package/dist/extensions/subagentPromptRuntime.mjs.map +1 -1
  190. package/dist/extensions/subagentTool.cjs +5 -6
  191. package/dist/extensions/subagentTool.cjs.map +1 -1
  192. package/dist/extensions/subagentTool.mjs +5 -6
  193. package/dist/extensions/subagentTool.mjs.map +1 -1
  194. package/dist/extensions/toolDescription.cjs +1 -1
  195. package/dist/extensions/toolDescription.cjs.map +1 -1
  196. package/dist/extensions/toolDescription.mjs +1 -1
  197. package/dist/extensions/toolDescription.mjs.map +1 -1
  198. package/dist/index.cjs +1 -1
  199. package/dist/index.cjs.map +1 -1
  200. package/dist/index.d.cts +2 -2
  201. package/dist/index.d.cts.map +1 -1
  202. package/dist/index.d.mts +2 -2
  203. package/dist/index.d.mts.map +1 -1
  204. package/dist/index.mjs +1 -1
  205. package/dist/index.mjs.map +1 -1
  206. package/dist/runs/background/cliRunnerEntry.cjs +1 -2
  207. package/dist/runs/background/cliRunnerEntry.mjs +1 -2
  208. package/dist/runs/sdkRunnerEntry.cjs +1 -2
  209. package/dist/runs/sdkRunnerEntry.d.cts +2 -1
  210. package/dist/runs/sdkRunnerEntry.d.mts +2 -1
  211. package/dist/runs/sdkRunnerEntry.mjs +1 -2
  212. package/dist/schemas/team/backgroundWork.cjs +2 -0
  213. package/dist/schemas/team/backgroundWork.cjs.map +1 -0
  214. package/dist/{protocol → schemas/team}/backgroundWork.d.cts +2 -2
  215. package/dist/schemas/team/backgroundWork.d.cts.map +1 -0
  216. package/dist/{protocol → schemas/team}/backgroundWork.d.mts +2 -2
  217. package/dist/schemas/team/backgroundWork.d.mts.map +1 -0
  218. package/dist/schemas/team/backgroundWork.mjs +2 -0
  219. package/dist/{protocol/backgroundWork.cjs.map → schemas/team/backgroundWork.mjs.map} +1 -1
  220. package/dist/schemas/team/capabilityCeiling.cjs +2 -0
  221. package/dist/schemas/team/capabilityCeiling.cjs.map +1 -0
  222. package/dist/{protocol → schemas/team}/capabilityCeiling.d.cts +3 -3
  223. package/dist/schemas/team/capabilityCeiling.d.cts.map +1 -0
  224. package/dist/{protocol → schemas/team}/capabilityCeiling.d.mts +3 -3
  225. package/dist/schemas/team/capabilityCeiling.d.mts.map +1 -0
  226. package/dist/schemas/team/capabilityCeiling.mjs +2 -0
  227. package/dist/schemas/team/capabilityCeiling.mjs.map +1 -0
  228. package/dist/schemas/team/delegation.cjs.map +1 -0
  229. package/dist/{protocol → schemas/team}/delegation.d.cts +1 -1
  230. package/dist/schemas/team/delegation.d.cts.map +1 -0
  231. package/dist/{protocol → schemas/team}/delegation.d.mts +1 -1
  232. package/dist/schemas/team/delegation.d.mts.map +1 -0
  233. package/dist/schemas/team/delegation.mjs.map +1 -0
  234. package/dist/schemas/team/packageConfig.cjs +2 -0
  235. package/dist/schemas/team/packageConfig.cjs.map +1 -0
  236. package/dist/schemas/team/packageConfig.mjs +2 -0
  237. package/dist/schemas/team/packageConfig.mjs.map +1 -0
  238. package/dist/services/agents/discovery.cjs +2 -0
  239. package/dist/services/agents/discovery.cjs.map +1 -0
  240. package/dist/services/agents/discovery.mjs +2 -0
  241. package/dist/services/agents/discovery.mjs.map +1 -0
  242. package/dist/services/agents/frontmatter.cjs.map +1 -0
  243. package/dist/{agents → services/agents}/frontmatter.mjs +1 -1
  244. package/dist/services/agents/frontmatter.mjs.map +1 -0
  245. package/dist/services/agents/loader.cjs +2 -0
  246. package/dist/services/agents/loader.cjs.map +1 -0
  247. package/dist/services/agents/loader.mjs +2 -0
  248. package/dist/services/agents/loader.mjs.map +1 -0
  249. package/dist/services/agents/memory.cjs +3 -0
  250. package/dist/services/agents/memory.cjs.map +1 -0
  251. package/dist/{agents → services/agents}/memory.mjs +1 -1
  252. package/dist/services/agents/memory.mjs.map +1 -0
  253. package/dist/services/agents/projectRoot.cjs +2 -0
  254. package/dist/services/agents/projectRoot.cjs.map +1 -0
  255. package/dist/services/agents/projectRoot.mjs +2 -0
  256. package/dist/services/agents/projectRoot.mjs.map +1 -0
  257. package/dist/services/agents/settings.cjs +2 -0
  258. package/dist/services/agents/settings.cjs.map +1 -0
  259. package/dist/services/agents/settings.mjs +2 -0
  260. package/dist/services/agents/settings.mjs.map +1 -0
  261. package/dist/services/agents/skills.cjs +0 -0
  262. package/dist/services/agents/skills.cjs.map +1 -0
  263. package/dist/services/agents/skills.mjs +5 -0
  264. package/dist/services/agents/skills.mjs.map +1 -0
  265. package/dist/{agents → services/agents}/types.d.cts +4 -4
  266. package/dist/services/agents/types.d.cts.map +1 -0
  267. package/dist/{agents → services/agents}/types.d.mts +4 -4
  268. package/dist/services/agents/types.d.mts.map +1 -0
  269. package/dist/services/api/backgroundWork.cjs +1 -0
  270. package/dist/services/api/backgroundWork.d.cts +1 -0
  271. package/dist/services/api/backgroundWork.d.mts +1 -0
  272. package/dist/services/api/backgroundWork.mjs +1 -0
  273. package/dist/services/api/capabilityCeiling.cjs +1 -0
  274. package/dist/services/api/capabilityCeiling.d.cts +2 -0
  275. package/dist/services/api/capabilityCeiling.d.mts +2 -0
  276. package/dist/services/api/capabilityCeiling.mjs +2 -0
  277. package/dist/services/api/capabilityCeiling.mjs.map +1 -0
  278. package/dist/services/api/teamSnapshot.cjs +1 -0
  279. package/dist/services/api/teamSnapshot.d.cts +1 -0
  280. package/dist/services/api/teamSnapshot.d.mts +1 -0
  281. package/dist/services/api/teamSnapshot.mjs +2 -0
  282. package/dist/services/api/teamSnapshot.mjs.map +1 -0
  283. package/dist/services/intercom/intercomBridge.cjs.map +1 -0
  284. package/dist/services/intercom/intercomBridge.mjs.map +1 -0
  285. package/dist/services/intercom/nativeTeamChannel.cjs +5 -0
  286. package/dist/services/intercom/nativeTeamChannel.cjs.map +1 -0
  287. package/dist/{intercom → services/intercom}/nativeTeamChannel.d.cts +1 -1
  288. package/dist/services/intercom/nativeTeamChannel.d.cts.map +1 -0
  289. package/dist/{intercom → services/intercom}/nativeTeamChannel.d.mts +1 -1
  290. package/dist/services/intercom/nativeTeamChannel.d.mts.map +1 -0
  291. package/dist/services/intercom/nativeTeamChannel.mjs +5 -0
  292. package/dist/services/intercom/nativeTeamChannel.mjs.map +1 -0
  293. package/dist/services/intercom/supervisorControlChannel.cjs +2 -0
  294. package/dist/services/intercom/supervisorControlChannel.cjs.map +1 -0
  295. package/dist/{intercom → services/intercom}/supervisorControlChannel.mjs +1 -1
  296. package/dist/services/intercom/supervisorControlChannel.mjs.map +1 -0
  297. package/dist/services/runs/background/asyncExecution.cjs +2 -0
  298. package/dist/services/runs/background/asyncExecution.cjs.map +1 -0
  299. package/dist/services/runs/background/asyncExecution.mjs +2 -0
  300. package/dist/services/runs/background/asyncExecution.mjs.map +1 -0
  301. package/dist/services/runs/background/asyncJobTracker.cjs +1 -0
  302. package/dist/services/runs/background/asyncJobTracker.mjs +2 -0
  303. package/dist/services/runs/background/asyncJobTracker.mjs.map +1 -0
  304. package/dist/services/runs/background/cliRunnerEntry.cjs +2 -0
  305. package/dist/services/runs/background/cliRunnerEntry.cjs.map +1 -0
  306. package/dist/services/runs/background/cliRunnerEntry.mjs +2 -0
  307. package/dist/services/runs/background/cliRunnerEntry.mjs.map +1 -0
  308. package/dist/services/runs/background/completionBatcher.cjs.map +1 -0
  309. package/dist/services/runs/background/completionBatcher.mjs +2 -0
  310. package/dist/services/runs/background/completionBatcher.mjs.map +1 -0
  311. package/dist/{runs → services/runs}/background/notify.cjs +1 -1
  312. package/dist/services/runs/background/notify.cjs.map +1 -0
  313. package/dist/{runs → services/runs}/background/notify.mjs +1 -1
  314. package/dist/services/runs/background/notify.mjs.map +1 -0
  315. package/dist/services/runs/background/parentWatchdog.cjs.map +1 -0
  316. package/dist/services/runs/background/parentWatchdog.mjs.map +1 -0
  317. package/dist/services/runs/background/processTerminal.cjs +1 -0
  318. package/dist/services/runs/background/processTerminal.mjs +2 -0
  319. package/dist/services/runs/background/processTerminal.mjs.map +1 -0
  320. package/dist/services/runs/background/resultWatcher.cjs +1 -0
  321. package/dist/services/runs/background/resultWatcher.mjs +2 -0
  322. package/dist/services/runs/background/resultWatcher.mjs.map +1 -0
  323. package/dist/services/runs/background/runIdResolver.cjs +1 -0
  324. package/dist/services/runs/background/runIdResolver.mjs +2 -0
  325. package/dist/services/runs/background/runIdResolver.mjs.map +1 -0
  326. package/dist/services/runs/background/runnerBootstrap.cjs +2 -0
  327. package/dist/services/runs/background/runnerBootstrap.cjs.map +1 -0
  328. package/dist/services/runs/background/runnerBootstrap.mjs +2 -0
  329. package/dist/services/runs/background/runnerBootstrap.mjs.map +1 -0
  330. package/dist/services/runs/background/runnerExecution.cjs +2 -0
  331. package/dist/services/runs/background/runnerExecution.cjs.map +1 -0
  332. package/dist/services/runs/background/runnerExecution.mjs +2 -0
  333. package/dist/services/runs/background/runnerExecution.mjs.map +1 -0
  334. package/dist/{runs → services/runs}/background/runnerReporting.cjs +2 -2
  335. package/dist/services/runs/background/runnerReporting.cjs.map +1 -0
  336. package/dist/{runs → services/runs}/background/runnerReporting.mjs +2 -2
  337. package/dist/services/runs/background/runnerReporting.mjs.map +1 -0
  338. package/dist/services/runs/background/runnerTeamMembership.cjs +2 -0
  339. package/dist/services/runs/background/runnerTeamMembership.cjs.map +1 -0
  340. package/dist/services/runs/background/runnerTeamMembership.mjs +2 -0
  341. package/dist/services/runs/background/runnerTeamMembership.mjs.map +1 -0
  342. package/dist/services/runs/background/spawnHandshake.cjs +2 -0
  343. package/dist/services/runs/background/spawnHandshake.cjs.map +1 -0
  344. package/dist/services/runs/background/spawnHandshake.mjs +2 -0
  345. package/dist/services/runs/background/spawnHandshake.mjs.map +1 -0
  346. package/dist/services/runs/background/staleRunReconciler.cjs +1 -0
  347. package/dist/services/runs/background/staleRunReconciler.mjs +2 -0
  348. package/dist/services/runs/background/staleRunReconciler.mjs.map +1 -0
  349. package/dist/services/runs/background/statusReader.cjs +1 -0
  350. package/dist/services/runs/background/statusReader.mjs +2 -0
  351. package/dist/services/runs/background/statusReader.mjs.map +1 -0
  352. package/dist/services/runs/background/statusWriter.cjs +2 -0
  353. package/dist/services/runs/background/statusWriter.cjs.map +1 -0
  354. package/dist/services/runs/background/statusWriter.mjs +2 -0
  355. package/dist/services/runs/background/statusWriter.mjs.map +1 -0
  356. package/dist/services/runs/background/subagentWait.cjs +2 -0
  357. package/dist/services/runs/background/subagentWait.cjs.map +1 -0
  358. package/dist/services/runs/background/subagentWait.mjs +2 -0
  359. package/dist/services/runs/background/subagentWait.mjs.map +1 -0
  360. package/dist/{runs/background/terminalPersistence.mjs → services/runs/background/terminalPersistence.cjs} +2 -2
  361. package/dist/services/runs/background/terminalPersistence.cjs.map +1 -0
  362. package/dist/services/runs/background/terminalPersistence.mjs +2 -0
  363. package/dist/services/runs/background/terminalPersistence.mjs.map +1 -0
  364. package/dist/services/runs/extensionErrorTelemetry.cjs +2 -0
  365. package/dist/services/runs/extensionErrorTelemetry.cjs.map +1 -0
  366. package/dist/services/runs/extensionErrorTelemetry.mjs +2 -0
  367. package/dist/services/runs/extensionErrorTelemetry.mjs.map +1 -0
  368. package/dist/services/runs/registry/processGroup.cjs.map +1 -0
  369. package/dist/services/runs/registry/processGroup.mjs.map +1 -0
  370. package/dist/services/runs/registry/runRegistry.cjs +1 -0
  371. package/dist/services/runs/registry/runRegistry.mjs +2 -0
  372. package/dist/services/runs/registry/runRegistry.mjs.map +1 -0
  373. package/dist/services/runs/registry/sessionLifecycle.cjs +2 -0
  374. package/dist/services/runs/registry/sessionLifecycle.cjs.map +1 -0
  375. package/dist/services/runs/registry/sessionLifecycle.mjs +2 -0
  376. package/dist/services/runs/registry/sessionLifecycle.mjs.map +1 -0
  377. package/dist/services/runs/registry/suspendedRuns.cjs +1 -0
  378. package/dist/services/runs/registry/suspendedRuns.mjs +2 -0
  379. package/dist/services/runs/registry/suspendedRuns.mjs.map +1 -0
  380. package/dist/services/runs/sdkRunnerEntry.cjs +1 -0
  381. package/dist/services/runs/sdkRunnerEntry.mjs +1 -0
  382. package/dist/services/runs/shared/claudeFableProfile.cjs +4 -0
  383. package/dist/services/runs/shared/claudeFableProfile.cjs.map +1 -0
  384. package/dist/services/runs/shared/claudeFableProfile.mjs +4 -0
  385. package/dist/services/runs/shared/claudeFableProfile.mjs.map +1 -0
  386. package/dist/services/runs/shared/depthGuard.cjs +2 -0
  387. package/dist/services/runs/shared/depthGuard.cjs.map +1 -0
  388. package/dist/services/runs/shared/depthGuard.mjs +2 -0
  389. package/dist/services/runs/shared/depthGuard.mjs.map +1 -0
  390. package/dist/services/runs/shared/mcpDirectToolAllowlist.cjs +2 -0
  391. package/dist/services/runs/shared/mcpDirectToolAllowlist.cjs.map +1 -0
  392. package/dist/services/runs/shared/mcpDirectToolAllowlist.mjs +2 -0
  393. package/dist/services/runs/shared/mcpDirectToolAllowlist.mjs.map +1 -0
  394. package/dist/services/runs/shared/modelFallback.cjs +2 -0
  395. package/dist/services/runs/shared/modelFallback.cjs.map +1 -0
  396. package/dist/services/runs/shared/modelFallback.mjs +2 -0
  397. package/dist/services/runs/shared/modelFallback.mjs.map +1 -0
  398. package/dist/services/runs/shared/modelScope.cjs +2 -0
  399. package/dist/services/runs/shared/modelScope.cjs.map +1 -0
  400. package/dist/services/runs/shared/modelScope.mjs +2 -0
  401. package/dist/services/runs/shared/modelScope.mjs.map +1 -0
  402. package/dist/services/runs/shared/nestedPath.cjs +2 -0
  403. package/dist/services/runs/shared/nestedPath.cjs.map +1 -0
  404. package/dist/services/runs/shared/nestedPath.mjs +2 -0
  405. package/dist/services/runs/shared/nestedPath.mjs.map +1 -0
  406. package/dist/services/runs/shared/piArgs.cjs +2 -0
  407. package/dist/services/runs/shared/piArgs.cjs.map +1 -0
  408. package/dist/services/runs/shared/piArgs.mjs +2 -0
  409. package/dist/services/runs/shared/piArgs.mjs.map +1 -0
  410. package/dist/services/runs/shared/piSpawn.cjs +2 -0
  411. package/dist/services/runs/shared/piSpawn.cjs.map +1 -0
  412. package/dist/services/runs/shared/piSpawn.mjs +2 -0
  413. package/dist/services/runs/shared/piSpawn.mjs.map +1 -0
  414. package/dist/services/runs/shared/runWithConcurrency.cjs +2 -0
  415. package/dist/services/runs/shared/runWithConcurrency.cjs.map +1 -0
  416. package/dist/services/runs/shared/runWithConcurrency.d.cts +25 -0
  417. package/dist/services/runs/shared/runWithConcurrency.d.cts.map +1 -0
  418. package/dist/services/runs/shared/runWithConcurrency.d.mts +25 -0
  419. package/dist/services/runs/shared/runWithConcurrency.d.mts.map +1 -0
  420. package/dist/services/runs/shared/runWithConcurrency.mjs +2 -0
  421. package/dist/services/runs/shared/runWithConcurrency.mjs.map +1 -0
  422. package/dist/services/runs/shared/runtimeRegistry.cjs +2 -0
  423. package/dist/services/runs/shared/runtimeRegistry.cjs.map +1 -0
  424. package/dist/services/runs/shared/runtimeRegistry.mjs +2 -0
  425. package/dist/services/runs/shared/runtimeRegistry.mjs.map +1 -0
  426. package/dist/services/runs/shared/structuredOutput.cjs +2 -0
  427. package/dist/{runs → services/runs}/shared/structuredOutput.cjs.map +1 -1
  428. package/dist/services/runs/shared/structuredOutput.mjs +2 -0
  429. package/dist/{runs → services/runs}/shared/structuredOutput.mjs.map +1 -1
  430. package/dist/services/runs/shared/toolAvailability.cjs +2 -0
  431. package/dist/services/runs/shared/toolAvailability.cjs.map +1 -0
  432. package/dist/services/runs/shared/toolAvailability.mjs +2 -0
  433. package/dist/services/runs/shared/toolAvailability.mjs.map +1 -0
  434. package/dist/services/runs/shared/toolBudget.cjs +2 -0
  435. package/dist/services/runs/shared/toolBudget.cjs.map +1 -0
  436. package/dist/services/runs/shared/toolBudget.mjs +2 -0
  437. package/dist/services/runs/shared/toolBudget.mjs.map +1 -0
  438. package/dist/shared/artifacts.cjs.map +1 -1
  439. package/dist/shared/artifacts.mjs.map +1 -1
  440. package/dist/shared/atomicJson.cjs +1 -2
  441. package/dist/shared/atomicJson.mjs +1 -1
  442. package/dist/shared/atomicJson.mjs.map +1 -1
  443. package/dist/shared/childTranscript.cjs +1 -5
  444. package/dist/shared/childTranscript.mjs +1 -4
  445. package/dist/shared/childTranscript.mjs.map +1 -1
  446. package/dist/shared/fileSystemRetry.cjs +1 -1
  447. package/dist/shared/fileSystemRetry.cjs.map +1 -1
  448. package/dist/shared/fileSystemRetry.mjs +1 -1
  449. package/dist/shared/fileSystemRetry.mjs.map +1 -1
  450. package/dist/shared/formatters.cjs.map +1 -1
  451. package/dist/shared/formatters.mjs.map +1 -1
  452. package/dist/shared/paths.cjs +1 -1
  453. package/dist/shared/paths.cjs.map +1 -1
  454. package/dist/shared/paths.mjs +1 -1
  455. package/dist/shared/paths.mjs.map +1 -1
  456. package/dist/shared/pollScheduler.cjs +1 -2
  457. package/dist/shared/pollScheduler.mjs +1 -1
  458. package/dist/shared/pollScheduler.mjs.map +1 -1
  459. package/dist/shared/scopeOwner.cjs +1 -2
  460. package/dist/shared/scopeOwner.mjs +1 -1
  461. package/dist/shared/scopeOwner.mjs.map +1 -1
  462. package/dist/tui/agentCatalog.cjs +1 -1
  463. package/dist/tui/agentCatalog.cjs.map +1 -1
  464. package/dist/tui/agentCatalog.mjs +1 -1
  465. package/dist/tui/agentCatalog.mjs.map +1 -1
  466. package/dist/tui/agentResourceProjection.cjs +1 -1
  467. package/dist/tui/agentResourceProjection.cjs.map +1 -1
  468. package/dist/tui/agentResourceProjection.mjs +1 -1
  469. package/dist/tui/agentResourceProjection.mjs.map +1 -1
  470. package/dist/tui/completionNotice.cjs +1 -1
  471. package/dist/tui/completionNotice.cjs.map +1 -1
  472. package/dist/tui/completionNotice.mjs +1 -1
  473. package/dist/tui/completionNotice.mjs.map +1 -1
  474. package/dist/tui/fleet.cjs +2 -2
  475. package/dist/tui/fleet.cjs.map +1 -1
  476. package/dist/tui/fleet.mjs +2 -2
  477. package/dist/tui/fleet.mjs.map +1 -1
  478. package/dist/tui/fleetAgentView.cjs.map +1 -1
  479. package/dist/tui/fleetAgentView.mjs.map +1 -1
  480. package/dist/tui/fleetStatus.cjs +1 -1
  481. package/dist/tui/fleetStatus.cjs.map +1 -1
  482. package/dist/tui/fleetStatus.mjs +1 -1
  483. package/dist/tui/fleetStatus.mjs.map +1 -1
  484. package/dist/tui/fleetTranscript.cjs +1 -1
  485. package/dist/tui/fleetTranscript.cjs.map +1 -1
  486. package/dist/tui/fleetTranscript.mjs +1 -1
  487. package/dist/tui/fleetTranscript.mjs.map +1 -1
  488. package/dist/tui/register.cjs +1 -1
  489. package/dist/tui/register.cjs.map +1 -1
  490. package/dist/tui/register.mjs +1 -1
  491. package/dist/tui/register.mjs.map +1 -1
  492. package/dist/tui/subagentToolRender.cjs +3 -0
  493. package/dist/tui/subagentToolRender.cjs.map +1 -0
  494. package/dist/tui/subagentToolRender.mjs +3 -0
  495. package/dist/tui/subagentToolRender.mjs.map +1 -0
  496. package/dist/{types.d.cts → types/index.d.cts} +2 -2
  497. package/dist/types/index.d.cts.map +1 -0
  498. package/dist/{types.d.mts → types/index.d.mts} +2 -2
  499. package/dist/types/index.d.mts.map +1 -0
  500. package/package.json +23 -16
  501. package/dist/agents/discovery.cjs +0 -2
  502. package/dist/agents/discovery.cjs.map +0 -1
  503. package/dist/agents/discovery.mjs +0 -2
  504. package/dist/agents/discovery.mjs.map +0 -1
  505. package/dist/agents/frontmatter.cjs.map +0 -1
  506. package/dist/agents/frontmatter.mjs.map +0 -1
  507. package/dist/agents/loader.cjs +0 -2
  508. package/dist/agents/loader.cjs.map +0 -1
  509. package/dist/agents/loader.mjs +0 -2
  510. package/dist/agents/loader.mjs.map +0 -1
  511. package/dist/agents/memory.cjs +0 -3
  512. package/dist/agents/memory.cjs.map +0 -1
  513. package/dist/agents/memory.mjs.map +0 -1
  514. package/dist/agents/projectRoot.cjs +0 -2
  515. package/dist/agents/projectRoot.cjs.map +0 -1
  516. package/dist/agents/projectRoot.mjs +0 -2
  517. package/dist/agents/projectRoot.mjs.map +0 -1
  518. package/dist/agents/settings.cjs +0 -2
  519. package/dist/agents/settings.cjs.map +0 -1
  520. package/dist/agents/settings.mjs +0 -2
  521. package/dist/agents/settings.mjs.map +0 -1
  522. package/dist/agents/skills.cjs +0 -0
  523. package/dist/agents/skills.cjs.map +0 -1
  524. package/dist/agents/skills.mjs +0 -5
  525. package/dist/agents/skills.mjs.map +0 -1
  526. package/dist/agents/types.d.cts.map +0 -1
  527. package/dist/agents/types.d.mts.map +0 -1
  528. package/dist/api/capabilityCeiling.mjs.map +0 -1
  529. package/dist/api/teamSnapshot.mjs.map +0 -1
  530. package/dist/env.cjs.map +0 -1
  531. package/dist/env.d.cts.map +0 -1
  532. package/dist/env.d.mts.map +0 -1
  533. package/dist/extension.cjs +0 -2
  534. package/dist/extension.cjs.map +0 -1
  535. package/dist/extension.mjs +0 -2
  536. package/dist/extension.mjs.map +0 -1
  537. package/dist/intercom/intercomBridge.cjs.map +0 -1
  538. package/dist/intercom/intercomBridge.mjs.map +0 -1
  539. package/dist/intercom/nativeTeamChannel.cjs +0 -5
  540. package/dist/intercom/nativeTeamChannel.cjs.map +0 -1
  541. package/dist/intercom/nativeTeamChannel.d.cts.map +0 -1
  542. package/dist/intercom/nativeTeamChannel.d.mts.map +0 -1
  543. package/dist/intercom/nativeTeamChannel.mjs +0 -5
  544. package/dist/intercom/nativeTeamChannel.mjs.map +0 -1
  545. package/dist/intercom/supervisorControlChannel.cjs +0 -2
  546. package/dist/intercom/supervisorControlChannel.cjs.map +0 -1
  547. package/dist/intercom/supervisorControlChannel.mjs.map +0 -1
  548. package/dist/protocol/backgroundWork.cjs +0 -2
  549. package/dist/protocol/backgroundWork.d.cts.map +0 -1
  550. package/dist/protocol/backgroundWork.d.mts.map +0 -1
  551. package/dist/protocol/backgroundWork.mjs +0 -2
  552. package/dist/protocol/backgroundWork.mjs.map +0 -1
  553. package/dist/protocol/capabilityCeiling.cjs +0 -2
  554. package/dist/protocol/capabilityCeiling.cjs.map +0 -1
  555. package/dist/protocol/capabilityCeiling.d.cts.map +0 -1
  556. package/dist/protocol/capabilityCeiling.d.mts.map +0 -1
  557. package/dist/protocol/capabilityCeiling.mjs +0 -2
  558. package/dist/protocol/capabilityCeiling.mjs.map +0 -1
  559. package/dist/protocol/delegation.cjs.map +0 -1
  560. package/dist/protocol/delegation.d.cts.map +0 -1
  561. package/dist/protocol/delegation.d.mts.map +0 -1
  562. package/dist/protocol/delegation.mjs.map +0 -1
  563. package/dist/runs/background/asyncExecution.cjs +0 -2
  564. package/dist/runs/background/asyncExecution.cjs.map +0 -1
  565. package/dist/runs/background/asyncExecution.mjs +0 -2
  566. package/dist/runs/background/asyncExecution.mjs.map +0 -1
  567. package/dist/runs/background/asyncJobTracker.cjs +0 -2
  568. package/dist/runs/background/asyncJobTracker.cjs.map +0 -1
  569. package/dist/runs/background/asyncJobTracker.mjs +0 -2
  570. package/dist/runs/background/asyncJobTracker.mjs.map +0 -1
  571. package/dist/runs/background/cliRunnerEntry.cjs.map +0 -1
  572. package/dist/runs/background/cliRunnerEntry.mjs.map +0 -1
  573. package/dist/runs/background/completionBatcher.cjs.map +0 -1
  574. package/dist/runs/background/completionBatcher.mjs +0 -2
  575. package/dist/runs/background/completionBatcher.mjs.map +0 -1
  576. package/dist/runs/background/notify.cjs.map +0 -1
  577. package/dist/runs/background/notify.mjs.map +0 -1
  578. package/dist/runs/background/parentWatchdog.cjs.map +0 -1
  579. package/dist/runs/background/parentWatchdog.mjs.map +0 -1
  580. package/dist/runs/background/processTerminal.cjs +0 -2
  581. package/dist/runs/background/processTerminal.cjs.map +0 -1
  582. package/dist/runs/background/processTerminal.mjs +0 -2
  583. package/dist/runs/background/processTerminal.mjs.map +0 -1
  584. package/dist/runs/background/resultWatcher.cjs +0 -2
  585. package/dist/runs/background/resultWatcher.cjs.map +0 -1
  586. package/dist/runs/background/resultWatcher.mjs +0 -2
  587. package/dist/runs/background/resultWatcher.mjs.map +0 -1
  588. package/dist/runs/background/runIdResolver.cjs +0 -2
  589. package/dist/runs/background/runIdResolver.cjs.map +0 -1
  590. package/dist/runs/background/runIdResolver.mjs +0 -2
  591. package/dist/runs/background/runIdResolver.mjs.map +0 -1
  592. package/dist/runs/background/runnerBootstrap.cjs +0 -2
  593. package/dist/runs/background/runnerBootstrap.cjs.map +0 -1
  594. package/dist/runs/background/runnerBootstrap.mjs +0 -2
  595. package/dist/runs/background/runnerBootstrap.mjs.map +0 -1
  596. package/dist/runs/background/runnerExecution.cjs +0 -2
  597. package/dist/runs/background/runnerExecution.cjs.map +0 -1
  598. package/dist/runs/background/runnerExecution.mjs +0 -2
  599. package/dist/runs/background/runnerExecution.mjs.map +0 -1
  600. package/dist/runs/background/runnerReporting.cjs.map +0 -1
  601. package/dist/runs/background/runnerReporting.mjs.map +0 -1
  602. package/dist/runs/background/runnerTeamMembership.cjs +0 -2
  603. package/dist/runs/background/runnerTeamMembership.cjs.map +0 -1
  604. package/dist/runs/background/runnerTeamMembership.mjs +0 -2
  605. package/dist/runs/background/runnerTeamMembership.mjs.map +0 -1
  606. package/dist/runs/background/spawnHandshake.cjs +0 -2
  607. package/dist/runs/background/spawnHandshake.cjs.map +0 -1
  608. package/dist/runs/background/spawnHandshake.mjs +0 -2
  609. package/dist/runs/background/spawnHandshake.mjs.map +0 -1
  610. package/dist/runs/background/staleRunReconciler.cjs +0 -2
  611. package/dist/runs/background/staleRunReconciler.cjs.map +0 -1
  612. package/dist/runs/background/staleRunReconciler.mjs +0 -2
  613. package/dist/runs/background/staleRunReconciler.mjs.map +0 -1
  614. package/dist/runs/background/statusReader.cjs +0 -2
  615. package/dist/runs/background/statusReader.cjs.map +0 -1
  616. package/dist/runs/background/statusReader.mjs +0 -2
  617. package/dist/runs/background/statusReader.mjs.map +0 -1
  618. package/dist/runs/background/statusWriter.cjs +0 -2
  619. package/dist/runs/background/statusWriter.cjs.map +0 -1
  620. package/dist/runs/background/statusWriter.mjs +0 -2
  621. package/dist/runs/background/statusWriter.mjs.map +0 -1
  622. package/dist/runs/background/subagentWait.cjs +0 -2
  623. package/dist/runs/background/subagentWait.cjs.map +0 -1
  624. package/dist/runs/background/subagentWait.mjs +0 -2
  625. package/dist/runs/background/subagentWait.mjs.map +0 -1
  626. package/dist/runs/background/terminalPersistence.cjs +0 -2
  627. package/dist/runs/background/terminalPersistence.cjs.map +0 -1
  628. package/dist/runs/background/terminalPersistence.mjs.map +0 -1
  629. package/dist/runs/registry/processGroup.cjs.map +0 -1
  630. package/dist/runs/registry/processGroup.mjs.map +0 -1
  631. package/dist/runs/registry/runRegistry.cjs +0 -2
  632. package/dist/runs/registry/runRegistry.cjs.map +0 -1
  633. package/dist/runs/registry/runRegistry.mjs +0 -2
  634. package/dist/runs/registry/runRegistry.mjs.map +0 -1
  635. package/dist/runs/registry/sessionLifecycle.cjs +0 -2
  636. package/dist/runs/registry/sessionLifecycle.cjs.map +0 -1
  637. package/dist/runs/registry/sessionLifecycle.mjs +0 -2
  638. package/dist/runs/registry/sessionLifecycle.mjs.map +0 -1
  639. package/dist/runs/registry/suspendedRuns.cjs +0 -4
  640. package/dist/runs/registry/suspendedRuns.cjs.map +0 -1
  641. package/dist/runs/registry/suspendedRuns.mjs +0 -4
  642. package/dist/runs/registry/suspendedRuns.mjs.map +0 -1
  643. package/dist/runs/sdkRunnerEntry.cjs.map +0 -1
  644. package/dist/runs/sdkRunnerEntry.mjs.map +0 -1
  645. package/dist/runs/shared/claudeFableProfile.cjs +0 -4
  646. package/dist/runs/shared/claudeFableProfile.cjs.map +0 -1
  647. package/dist/runs/shared/claudeFableProfile.mjs +0 -4
  648. package/dist/runs/shared/claudeFableProfile.mjs.map +0 -1
  649. package/dist/runs/shared/depthGuard.cjs +0 -2
  650. package/dist/runs/shared/depthGuard.cjs.map +0 -1
  651. package/dist/runs/shared/depthGuard.mjs +0 -2
  652. package/dist/runs/shared/depthGuard.mjs.map +0 -1
  653. package/dist/runs/shared/mcpDirectToolAllowlist.cjs +0 -2
  654. package/dist/runs/shared/mcpDirectToolAllowlist.cjs.map +0 -1
  655. package/dist/runs/shared/mcpDirectToolAllowlist.mjs +0 -2
  656. package/dist/runs/shared/mcpDirectToolAllowlist.mjs.map +0 -1
  657. package/dist/runs/shared/modelFallback.cjs +0 -2
  658. package/dist/runs/shared/modelFallback.cjs.map +0 -1
  659. package/dist/runs/shared/modelFallback.mjs +0 -2
  660. package/dist/runs/shared/modelFallback.mjs.map +0 -1
  661. package/dist/runs/shared/modelScope.cjs +0 -2
  662. package/dist/runs/shared/modelScope.cjs.map +0 -1
  663. package/dist/runs/shared/modelScope.mjs +0 -2
  664. package/dist/runs/shared/modelScope.mjs.map +0 -1
  665. package/dist/runs/shared/nestedPath.cjs +0 -2
  666. package/dist/runs/shared/nestedPath.cjs.map +0 -1
  667. package/dist/runs/shared/nestedPath.mjs +0 -2
  668. package/dist/runs/shared/nestedPath.mjs.map +0 -1
  669. package/dist/runs/shared/piArgs.cjs +0 -2
  670. package/dist/runs/shared/piArgs.cjs.map +0 -1
  671. package/dist/runs/shared/piArgs.mjs +0 -2
  672. package/dist/runs/shared/piArgs.mjs.map +0 -1
  673. package/dist/runs/shared/piSpawn.cjs +0 -2
  674. package/dist/runs/shared/piSpawn.cjs.map +0 -1
  675. package/dist/runs/shared/piSpawn.mjs +0 -2
  676. package/dist/runs/shared/piSpawn.mjs.map +0 -1
  677. package/dist/runs/shared/runWithConcurrency.cjs +0 -2
  678. package/dist/runs/shared/runWithConcurrency.cjs.map +0 -1
  679. package/dist/runs/shared/runWithConcurrency.mjs +0 -2
  680. package/dist/runs/shared/runWithConcurrency.mjs.map +0 -1
  681. package/dist/runs/shared/runtimeRegistry.cjs +0 -2
  682. package/dist/runs/shared/runtimeRegistry.cjs.map +0 -1
  683. package/dist/runs/shared/runtimeRegistry.mjs +0 -2
  684. package/dist/runs/shared/runtimeRegistry.mjs.map +0 -1
  685. package/dist/runs/shared/structuredOutput.cjs +0 -2
  686. package/dist/runs/shared/structuredOutput.mjs +0 -2
  687. package/dist/runs/shared/toolAvailability.cjs +0 -2
  688. package/dist/runs/shared/toolAvailability.cjs.map +0 -1
  689. package/dist/runs/shared/toolAvailability.mjs +0 -2
  690. package/dist/runs/shared/toolAvailability.mjs.map +0 -1
  691. package/dist/runs/shared/toolBudget.cjs +0 -2
  692. package/dist/runs/shared/toolBudget.cjs.map +0 -1
  693. package/dist/runs/shared/toolBudget.mjs +0 -2
  694. package/dist/runs/shared/toolBudget.mjs.map +0 -1
  695. package/dist/shared/atomicJson.cjs.map +0 -1
  696. package/dist/shared/childTranscript.cjs.map +0 -1
  697. package/dist/shared/pollScheduler.cjs.map +0 -1
  698. package/dist/shared/scopeOwner.cjs.map +0 -1
  699. package/dist/slash/chainExpression.cjs.map +0 -1
  700. package/dist/slash/chainExpression.mjs.map +0 -1
  701. package/dist/slash/doctor.cjs +0 -5
  702. package/dist/slash/doctor.mjs +0 -5
  703. package/dist/slash/doctor.mjs.map +0 -1
  704. package/dist/slash/slashCommands.cjs.map +0 -1
  705. package/dist/slash/slashCommands.mjs.map +0 -1
  706. package/dist/slash/spawnRequestMapping.cjs.map +0 -1
  707. package/dist/slash/spawnRequestMapping.mjs.map +0 -1
  708. package/dist/slash/subagentLaunch.cjs +0 -2
  709. package/dist/slash/subagentLaunch.cjs.map +0 -1
  710. package/dist/slash/subagentLaunch.mjs +0 -2
  711. package/dist/slash/subagentLaunch.mjs.map +0 -1
  712. package/dist/types.d.cts.map +0 -1
  713. package/dist/types.d.mts.map +0 -1
  714. /package/dist/{slash → commands/slash}/chainExpression.cjs +0 -0
  715. /package/dist/{slash → commands/slash}/chainExpression.mjs +0 -0
  716. /package/dist/{slash → commands/slash}/spawnRequestMapping.cjs +0 -0
  717. /package/dist/{slash → commands/slash}/spawnRequestMapping.mjs +0 -0
  718. /package/dist/{protocol → schemas/team}/delegation.cjs +0 -0
  719. /package/dist/{protocol → schemas/team}/delegation.mjs +0 -0
  720. /package/dist/{agents → services/agents}/frontmatter.cjs +0 -0
  721. /package/dist/{intercom → services/intercom}/intercomBridge.cjs +0 -0
  722. /package/dist/{intercom → services/intercom}/intercomBridge.mjs +0 -0
  723. /package/dist/{runs → services/runs}/background/completionBatcher.cjs +0 -0
  724. /package/dist/{runs → services/runs}/background/parentWatchdog.cjs +0 -0
  725. /package/dist/{runs → services/runs}/background/parentWatchdog.mjs +0 -0
  726. /package/dist/{runs → services/runs}/registry/processGroup.cjs +0 -0
  727. /package/dist/{runs → services/runs}/registry/processGroup.mjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.mjs","names":[],"sources":["../../src/slash/doctor.ts"],"sourcesContent":["/**\n * `/subagents-doctor`: a diagnostic report of this package's own runtime\n * state - filesystem roots, agent/skill discovery, the intercom bridge, and\n * the child-process signal env vars - for a user debugging \"why didn't my\n * subagent do X\".\n *\n * WHY THIS PORTS AS A SMALL PORT, NOT A DEFERRAL:\n * Read (not ported) the predecessor's foreground executor's `doctor` action\n * and `extension/doctor.ts`'s `buildDoctorReport` in full before deciding.\n * Every section it builds has a real doom-team equivalent: filesystem roots\n * (`shared/paths.ts`), agent/skill discovery (`AgentDiscoveryService`/\n * `SkillDiscoveryService`), the permission-system env signals\n * (`SUBAGENT_CHILD_ENV`/`SUBAGENT_PARENT_SESSION_ENV` - same wire names),\n * and the intercom bridge diagnostic (`diagnoseIntercomBridge`, already\n * ported). This package is also inherently async-only, so the predecessor's\n * \"async support: available/unavailable\" runtime check has nothing to\n * branch on here - it always reports available.\n *\n * WHAT IS DELIBERATELY LEFT OUT, AND WHY:\n * - Chain and prompt-workflow counts. The saved-work surface was REMOVED BY\n * DECISION (see `slashCommands.ts`'s header), so there is nothing to\n * count rather than something not yet built. Reporting a zero would imply\n * a feature that is simply absent\n * - The spawn-budget section entirely. `runs/shared/spawn-budget.ts` DOES\n * exist, but its own header says `maxSubagentSpawnsPerSession` is NOT\n * enforced by `SpawnPlanner` yet. Reporting a budget number nothing\n * enforces would be the same class of lie as parsing an inline-config\n * field and silently ignoring it - see `spawnRequestMapping.ts`\n *\n * AVOID:\n * - Reporting a spawn budget. There is no enforcement to report on yet\n */\n\nimport * as fs from 'node:fs';\n\nimport type { DiscoveredSkill, ISkillDiscoveryService, SkillSource } from '../agents/skills.ts';\nimport type { AgentScope, AgentSource, IAgentDiscoveryService } from '../agents/types.ts';\nimport { SUBAGENT_CHILD_ENV, SUBAGENT_PARENT_SESSION_ENV } from '../env.ts';\nimport { diagnoseIntercomBridge, type IntercomBridgeConfigInput } from '../intercom/intercomBridge.ts';\nimport { currentResultsDir, currentRunsDir, TEMP_ROOT_DIR } from '../shared/paths.ts';\n\nexport interface DoctorReportInput {\n cwd: string;\n agentScope: AgentScope;\n intercomBridgeConfig?: IntercomBridgeConfigInput;\n context?: 'fresh' | 'fork';\n orchestratorTarget?: string;\n currentSessionFile?: string | null;\n currentSessionId?: string | null;\n sessionError?: string;\n}\n\nexport interface DoctorReportDeps {\n discovery: IAgentDiscoveryService;\n skills: ISkillDiscoveryService;\n}\n\nfunction errorText(error: unknown): string {\n return error instanceof Error ? `${error.name}: ${error.message}` : String(error);\n}\n\nfunction lineFromCheck(label: string, check: () => string): string {\n try {\n return check();\n } catch (error) {\n return `- ${label}: failed - ${errorText(error)}`;\n }\n}\n\nfunction formatExistingDirectory(label: string, dirPath: string): string {\n try {\n if (!fs.existsSync(dirPath)) return `- ${label}: missing (${dirPath})`;\n const stats = fs.statSync(dirPath);\n if (!stats.isDirectory()) throw new Error(`not a directory: ${dirPath}`);\n fs.accessSync(dirPath, fs.constants.R_OK | fs.constants.W_OK);\n return `- ${label}: ok (${dirPath})`;\n } catch (error) {\n return `- ${label}: failed (${dirPath}) - ${errorText(error)}`;\n }\n}\n\nconst AGENT_SOURCE_ORDER: AgentSource[] = ['plugin', 'user', 'project'];\nconst SKILL_SOURCE_ORDER: SkillSource[] = [\n 'project',\n 'project-settings',\n 'user',\n 'user-settings',\n 'extension',\n 'builtin',\n 'unknown',\n];\n\nfunction formatSourceCounts(agents: Array<{ source: AgentSource }>): string {\n const counts = new Map<AgentSource, number>();\n for (const agent of agents) counts.set(agent.source, (counts.get(agent.source) ?? 0) + 1);\n const parts = AGENT_SOURCE_ORDER.map((source) => `${source} ${counts.get(source) ?? 0}`).filter(\n (part) => !part.endsWith(' 0'),\n );\n return parts.length > 0 ? parts.join(', ') : 'none';\n}\n\nfunction formatSkillSourceCounts(skills: DiscoveredSkill[]): string {\n const counts = new Map<SkillSource, number>();\n for (const skill of skills) counts.set(skill.source, (counts.get(skill.source) ?? 0) + 1);\n const parts = SKILL_SOURCE_ORDER.map((source) => `${source} ${counts.get(source) ?? 0}`).filter(\n (part) => !part.endsWith(' 0'),\n );\n return parts.length > 0 ? parts.join(', ') : 'none';\n}\n\nfunction formatSessionLines(input: DoctorReportInput): string[] {\n const lines = [\n `- current session file: ${input.currentSessionFile ?? 'not available'}`,\n `- current session id: ${input.currentSessionId ?? 'not available'}`,\n ];\n if (input.sessionError) lines.push(`- session manager: failed - ${input.sessionError}`);\n return lines;\n}\n\nfunction formatDiscovery(input: DoctorReportInput, deps: DoctorReportDeps): string[] {\n return [\n lineFromCheck('agents', () => {\n const agents = deps.discovery.discover(input.cwd, input.agentScope).agents;\n return `- agents: total ${agents.length} (${formatSourceCounts(agents)})`;\n }),\n lineFromCheck('skills', () => {\n const skills = deps.skills.discoverAvailableSkills(input.cwd);\n return `- skills: total ${skills.length} (${formatSkillSourceCounts(skills)})`;\n }),\n ];\n}\n\nfunction formatPermissionSystemSection(): string[] {\n const lines: string[] = [];\n const parentSession = (process.env[SUBAGENT_PARENT_SESSION_ENV] ?? '').trim();\n lines.push(\n parentSession\n ? `- parent session: set (${parentSession})`\n : '- parent session: not set - ask forwarding from a subprocess child will not reach a parent UI',\n );\n const isChild = process.env[SUBAGENT_CHILD_ENV] === '1';\n lines.push(`- subagent process: ${isChild ? `yes (${SUBAGENT_CHILD_ENV}=1)` : 'no'}`);\n return lines;\n}\n\nfunction formatIntercomSection(input: DoctorReportInput): string[] {\n return lineFromCheck('intercom bridge', () => {\n const diagnostic = diagnoseIntercomBridge({\n config: input.intercomBridgeConfig,\n context: input.context,\n orchestratorTarget: input.orchestratorTarget,\n });\n return [\n `- bridge: ${diagnostic.active ? 'active' : 'inactive'}${diagnostic.reason ? ` (${diagnostic.reason})` : ''}`,\n `- mode: ${diagnostic.mode}; context: ${input.context ?? 'unspecified'}`,\n `- orchestrator target: ${diagnostic.orchestratorTarget ?? 'not available'}`,\n `- intercom: ${diagnostic.intercomAvailable ? 'available' : 'unavailable'} (${diagnostic.extensionDir})`,\n ].join('\\n');\n }).split('\\n');\n}\n\nexport function buildDoctorReport(input: DoctorReportInput, deps: DoctorReportDeps): string {\n const lines = [\n 'Subagents doctor report',\n '',\n 'Runtime',\n `- cwd: ${input.cwd}`,\n '- async support: available (this package is async-only)',\n ...formatSessionLines(input),\n '',\n 'Filesystem',\n formatExistingDirectory('temp root', TEMP_ROOT_DIR),\n formatExistingDirectory('runs', currentRunsDir()),\n formatExistingDirectory('results', currentResultsDir()),\n '',\n 'Discovery',\n ...formatDiscovery(input, deps),\n '',\n 'Permission system',\n ...formatPermissionSystemSection(),\n '',\n 'Intercom bridge',\n ...formatIntercomSection(input),\n ];\n return lines.join('\\n');\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"slashCommands.cjs","names":["TERMINAL_ASYNC_JOB_STATES","UnsupportedInlineConfigError","SlashParseError","parseSingleTaskToken","extractForkFlag","parseAgentToken","captureSessionForkSource","normalizeParentModel","taskInputFromParsedStep","launchSingleSubagent","authenticatedModelInfos","launchParallelSubagents","buildDoctorReport","resolveTrackedRunId"],"sources":["../../src/slash/slashCommands.ts"],"sourcesContent":["/**\n * The core `/run`, `/chain`, `/parallel` slash commands. Replaces the\n * always-blocking predecessor with the async-only shape this port settled\n * on: a command launches a spawn, sends an initial status message, and\n * hands off to `watchTrackedRunUntilTerminal` (render-key gated, backed by\n * `PollScheduler`) to update the status bar and finalize the message once\n * the run reaches a terminal state - never by awaiting completion. See\n * `subagentLaunch.ts`'s module doc for the full reasoning.\n *\n * WHAT IS NOT HERE, AND WHY:\n * - `/run-chain`, `/prompt-workflow` and `/chain-prompts`: the whole SAVED\n * work surface - saved agent pipelines (`ChainConfig`, never ported) and\n * saved `.md` prompt templates (ported, then deleted). REMOVED BY\n * DECISION, not deferred: overly complicated for the use they were\n * getting. Do not re-add them because a reader notices the predecessor had\n * them. Ad-hoc chaining (`/chain scout \"x\" -> planner`) is a different\n * feature, lives in `chainExpression.ts`, and stays\n * - `/subagent-cost`: REMOVED BY DECISION. It reads usage/cost data\n * (`totalTokens`/`totalCost`) that nothing in this package's\n * runs/extensions surface tracks - a genuinely absent data source, and\n * building it would mean threading usage out of every child process\n * - `/subagents-check-profile`: removed at the source. Calls\n * `checkSubagentProfile`/`listSubagentProfiles`, which are referenced but\n * defined nowhere in the entire predecessor package - a live\n * `ReferenceError` that only shipped because that package sets\n * `noCheck: true`. Typecheck is on here; porting it faithfully would not\n * compile, and it was asked to be removed independently of that\n * - The `SUBAGENT_FLEET_COMMAND` registration and its `Ctrl+Alt+F` shortcut:\n * fleet view is its own piece, registered by whoever builds it\n * - Inline parallel groups within `/chain` (`(a | b)` syntax): the field\n * mapping for a group's own config exists (`spawnRequestMapping.ts`),\n * but wiring a group INTO a chain request is left for the same pass that\n * revisits per-task field support, so `/chain` reports a clear\n * not-yet-supported message rather than silently flattening a group\n * - `/subagents` (admin) command registration: a separate file, not yet\n * ported\n *\n * `/subagents-doctor` IS here, in `doctor.ts` - read (not ported) the\n * predecessor's foreground-executor `doctor` action before deciding, and it\n * turned out to be a small, mostly-mechanical port. See that module's own\n * doc for what it deliberately leaves out (chain counts, spawn-budget\n * reporting).\n *\n * AVOID:\n * - Awaiting a SINGLE/PARALLEL spawn for a result that will not exist yet.\n * See `subagentLaunch.ts`\n * - A private polling loop for a message's live status. Use\n * `watchTrackedRunUntilTerminal`\n */\n\nimport type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport type { ISkillDiscoveryService } from '../agents/skills.ts';\nimport type { AgentScope, IAgentDiscoveryService } from '../agents/types.ts';\nimport type { ExtensionConfig } from '../extensions/config.ts';\nimport type { IManagementActions } from '../extensions/managementActions.ts';\nimport { captureSessionForkSource, type ISpawnPlanner, type SpawnPlanResult } from '../extensions/spawnPlan.ts';\nimport type { IAsyncJobTracker, ITrackedAsyncJobs, TrackedAsyncJob } from '../runs/background/asyncJobTracker.ts';\nimport { resolveTrackedRunId, TERMINAL_ASYNC_JOB_STATES } from '../runs/background/asyncJobTracker.ts';\nimport type { IPollScheduler } from '../shared/pollScheduler.ts';\nimport { normalizeParentModel } from '../runs/shared/modelFallback.ts';\nimport { authenticatedModelInfos } from '../shared/modelResolution.ts';\nimport {\n extractForkFlag,\n parseAgentToken,\n parseSingleTaskToken,\n SlashParseError,\n type ParsedStep,\n} from './chainExpression.ts';\nimport { buildDoctorReport } from './doctor.ts';\nimport { taskInputFromParsedStep, UnsupportedInlineConfigError } from './spawnRequestMapping.ts';\nimport { launchParallelSubagents, launchSingleSubagent, watchTrackedRunUntilTerminal } from './subagentLaunch.ts';\n\nexport interface SlashCommandDeps {\n spawnPlanner: ISpawnPlanner;\n skills: ISkillDiscoveryService;\n tracker: IAsyncJobTracker;\n scheduler: IPollScheduler;\n discovery: IAgentDiscoveryService;\n /**\n * Used by `/subagents-stop`. Preferred over calling `requestSlashRunStop`\n * directly because it resolves an id PREFIX through `RunIdResolver` and\n * raises a real error for an unknown or ambiguous one, instead of writing a\n * stop request into a directory for a run that does not exist.\n */\n management: IManagementActions;\n loadConfig: () => ExtensionConfig;\n}\n\nexport interface SlashCommandState {\n baseCwd: string | undefined;\n}\n\nconst SLASH_STATUS_KEY = 'subagent-slash';\nconst SLASH_RESULT_CUSTOM_TYPE = 'subagent-slash-result';\n\nfunction sendSlashText(pi: ExtensionAPI, text: string): void {\n pi.sendMessage({ customType: SLASH_RESULT_CUSTOM_TYPE, content: text, display: true });\n}\n\nfunction setSlashStatus(ctx: ExtensionContext, text: string | undefined): void {\n if (ctx.hasUI) ctx.ui.setStatus(SLASH_STATUS_KEY, text);\n}\n\nfunction notifyError(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'error');\n}\n\nfunction notifyInfo(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'info');\n}\n\nfunction statusTextFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'starting…';\n if (job.attentionReason) return `${job.status ?? 'running'} - needs attention: ${job.attentionReason}`;\n if (job.activityState) return `${job.status ?? 'running'} - ${job.activityState}`;\n return job.status ?? 'running';\n}\n\n/**\n * Watches one launched run to a terminal state and finalizes its message.\n * Each launched run gets its own subscriber, so a PARALLEL launch's\n * siblings finalize independently rather than all waiting on the slowest.\n */\nfunction watchAndFinalize(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: ITrackedAsyncJobs,\n runId: string,\n agent: string,\n): void {\n watchTrackedRunUntilTerminal(deps.scheduler, jobs, runId, (job) => {\n setSlashStatus(ctx, `${agent} (${runId}): ${statusTextFor(job)}`);\n if (job?.status === undefined || !TERMINAL_ASYNC_JOB_STATES.has(job.status)) return;\n setSlashStatus(ctx, undefined);\n const outcome = job.status === 'complete' || job.status === 'completed' ? 'completed' : job.status;\n sendSlashText(\n pi,\n job.error\n ? `## Subagent ${outcome}\\n\\n${agent} (${runId})\\n\\n${job.error}`\n : `## Subagent ${outcome}\\n\\n${agent} (${runId})`,\n );\n });\n}\n\nfunction reportSpawnResult(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: ITrackedAsyncJobs,\n result: SpawnPlanResult,\n): void {\n const started = result.outcomes.filter((outcome) => outcome.runId);\n const failed = result.outcomes.filter((outcome) => !outcome.runId);\n if (started.length > 0) {\n const label = started\n .map(\n (outcome) => `${outcome.agent} (${outcome.runId})${outcome.warning ? `\\n Warning: ${outcome.warning}` : ''}`,\n )\n .join(', ');\n sendSlashText(pi, `## Subagent started\\n\\n${label}`);\n setSlashStatus(ctx, `${started.length} run${started.length === 1 ? '' : 's'} started…`);\n for (const outcome of started) {\n if (outcome.runId) watchAndFinalize(pi, ctx, deps, jobs, outcome.runId, outcome.agent);\n }\n }\n if (failed.length > 0) {\n const label = failed.map((outcome) => `${outcome.agent}: ${outcome.error ?? 'spawn failed'}`).join('\\n');\n notifyError(ctx, `Some subagents failed to start:\\n${label}`);\n }\n}\n\nfunction requireBaseCwd(state: SlashCommandState, ctx: ExtensionContext): string | undefined {\n if (state.baseCwd) return state.baseCwd;\n notifyError(ctx, 'Subagent session cwd is not initialized yet');\n return undefined;\n}\n\nfunction findAgentOrNotify(deps: SlashCommandDeps, baseCwd: string, name: string, ctx: ExtensionContext): boolean {\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (agents.find((agent) => agent.name === name)) return true;\n notifyError(ctx, `Unknown agent: ${name}`);\n return false;\n}\n\nfunction reportKnownErrorOrRethrow(ctx: ExtensionContext, error: unknown): void {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n notifyError(ctx, error.message);\n return;\n }\n throw error;\n}\n\n/**\n * Shared arg parsing for /chain (no inline group) and /parallel:\n * \"agent1 task1 -> agent2 task2\" or \"agent1 agent2 -- shared task\".\n */\nfunction parseAgentArgsFallback(input: string): { steps: ParsedStep[]; task: string; perStep: boolean } | undefined {\n const trimmed = input.trim();\n if (trimmed.includes(' -> ')) {\n const steps = trimmed\n .split(' -> ')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => parseSingleTaskToken(segment));\n if (steps.length === 0) return undefined;\n return { steps, task: steps.find((step) => step.task)?.task ?? '', perStep: true };\n }\n const delimiterIndex = trimmed.indexOf(' -- ');\n if (delimiterIndex === -1) return undefined;\n const agentsPart = trimmed.slice(0, delimiterIndex).trim();\n const sharedTask = trimmed.slice(delimiterIndex + 4).trim();\n if (!agentsPart || !sharedTask) return undefined;\n const steps = agentsPart\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => parseSingleTaskToken(token));\n if (steps.length === 0) return undefined;\n return { steps, task: sharedTask, perStep: false };\n}\n\nexport function registerSlashCommands(pi: ExtensionAPI, state: SlashCommandState, deps: SlashCommandDeps): void {\n pi.registerCommand('run', {\n description: 'Run a subagent in the background: /run agent[model=x] [task] [--fork]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const input = cleanedArgs.trim();\n if (!input) {\n notifyError(ctx, 'Usage: /run <agent> [task] [--fork]');\n return;\n }\n const firstSpace = input.indexOf(' ');\n const { name: agentName, config } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n const task = firstSpace === -1 ? '' : input.slice(firstSpace + 1).trim();\n\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n if (!findAgentOrNotify(deps, baseCwd, agentName, ctx)) return;\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const taskInput = taskInputFromParsedStep(\n { name: agentName, config, task },\n baseCwd,\n fork ? 'fork' : undefined,\n );\n const result = await launchSingleSubagent(\n deps.spawnPlanner,\n jobs,\n {\n agent: taskInput.agent,\n task: taskInput.task ?? '',\n cwd: taskInput.cwd ?? baseCwd,\n agentScope: 'both',\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(taskInput.model ? { model: taskInput.model } : {}),\n ...(taskInput.context ? { context: taskInput.context } : {}),\n ...(parentForkSource\n ? { parentSessionFile: parentForkSource.sessionFile, parentLeafId: parentForkSource.leafId }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n });\n\n pi.registerCommand('parallel', {\n description: 'Run agents in parallel: /parallel scout \"task1\" -> reviewer \"task2\" [--fork]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n\n const parsed = parseAgentArgsFallback(cleanedArgs);\n if (!parsed) {\n notifyError(ctx, 'Usage: /parallel agent1 \"task1\" -> agent2 \"task2\"');\n return;\n }\n for (const step of parsed.steps) {\n if (!findAgentOrNotify(deps, baseCwd, step.name, ctx)) return;\n }\n if (!parsed.steps.some((step) => step.task) && !parsed.task) {\n notifyError(ctx, 'At least one step must have a task');\n return;\n }\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const tasks = parsed.steps.map((step) =>\n taskInputFromParsedStep(\n { name: step.name, config: step.config, task: step.task ?? parsed.task },\n baseCwd,\n fork ? 'fork' : undefined,\n ),\n );\n const result = await launchParallelSubagents(\n deps.spawnPlanner,\n jobs,\n {\n tasks,\n cwd: baseCwd,\n agentScope: 'both',\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(parentForkSource\n ? { parentSessionFile: parentForkSource.sessionFile, parentLeafId: parentForkSource.leafId }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n });\n\n pi.registerCommand('subagents-doctor', {\n description: 'Show subagent diagnostics',\n handler: async (_args, ctx) => {\n sendSlashText(\n pi,\n buildDoctorReport({ cwd: ctx.cwd, agentScope: 'both' }, { discovery: deps.discovery, skills: deps.skills }),\n );\n },\n });\n\n pi.registerCommand('subagents-stop', {\n description: 'Stop a running subagent: /subagents-stop [run-id]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const id = args.trim();\n if (!id) {\n sendSlashText(pi, stoppableRunsReport(jobs.list()));\n return;\n }\n try {\n deps.management.stop(resolveTrackedRunId(jobs, id));\n // Deliberately reports the REQUEST, not the outcome. Stop is\n // asynchronous in this package: the request is a file the child\n // claims on its next control-channel tick, so claiming \"stopped\"\n // here would assert something this process has not observed. The\n // run's own status is what confirms it, via /subagents-fleet or a\n // completion notification.\n notifyInfo(ctx, `Stop requested for ${id}. The run reports its own final state once it acknowledges.`);\n } catch (error) {\n // `ManagementActions.stop` throws only for an id that resolves to no\n // run or to more than one. Both are bad user input, not internal\n // faults, so they are notified rather than rethrown at the host - the\n // same treatment `reportKnownErrorOrRethrow` gives a parse error.\n notifyError(ctx, error instanceof Error ? error.message : `Could not stop '${id}'.`);\n }\n },\n });\n}\n\n/**\n * The no-argument `/subagents-stop` listing.\n *\n * The predecessor opened a TUI selector overlay here. This reports the same\n * information as text instead, for one reason worth stating rather than\n * hiding: a selector is a second, independent renderer of run state, and this\n * package already has one in `/subagents-fleet` that shows more (live status,\n * transcripts, and the full set of runtime controls including stop). Building\n * a second, weaker one would mean two things to keep in step. Passing an\n * explicit id stays the direct path, and the fleet overlay is the interactive\n * one.\n */\nfunction stoppableRunsReport(runs: readonly TrackedAsyncJob[]): string {\n const stoppable = runs.filter((run) => run.status === 'running' || run.status === 'pending');\n if (stoppable.length === 0) return 'No running subagents to stop.';\n const lines = stoppable.map((run) => `- ${run.runId}${run.status ? ` (${run.status})` : ''}`);\n return [\n 'Running subagents:',\n ...lines,\n '',\n 'Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively.',\n ].join('\\n');\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"slashCommands.mjs","names":[],"sources":["../../src/slash/slashCommands.ts"],"sourcesContent":["/**\n * The core `/run`, `/chain`, `/parallel` slash commands. Replaces the\n * always-blocking predecessor with the async-only shape this port settled\n * on: a command launches a spawn, sends an initial status message, and\n * hands off to `watchTrackedRunUntilTerminal` (render-key gated, backed by\n * `PollScheduler`) to update the status bar and finalize the message once\n * the run reaches a terminal state - never by awaiting completion. See\n * `subagentLaunch.ts`'s module doc for the full reasoning.\n *\n * WHAT IS NOT HERE, AND WHY:\n * - `/run-chain`, `/prompt-workflow` and `/chain-prompts`: the whole SAVED\n * work surface - saved agent pipelines (`ChainConfig`, never ported) and\n * saved `.md` prompt templates (ported, then deleted). REMOVED BY\n * DECISION, not deferred: overly complicated for the use they were\n * getting. Do not re-add them because a reader notices the predecessor had\n * them. Ad-hoc chaining (`/chain scout \"x\" -> planner`) is a different\n * feature, lives in `chainExpression.ts`, and stays\n * - `/subagent-cost`: REMOVED BY DECISION. It reads usage/cost data\n * (`totalTokens`/`totalCost`) that nothing in this package's\n * runs/extensions surface tracks - a genuinely absent data source, and\n * building it would mean threading usage out of every child process\n * - `/subagents-check-profile`: removed at the source. Calls\n * `checkSubagentProfile`/`listSubagentProfiles`, which are referenced but\n * defined nowhere in the entire predecessor package - a live\n * `ReferenceError` that only shipped because that package sets\n * `noCheck: true`. Typecheck is on here; porting it faithfully would not\n * compile, and it was asked to be removed independently of that\n * - The `SUBAGENT_FLEET_COMMAND` registration and its `Ctrl+Alt+F` shortcut:\n * fleet view is its own piece, registered by whoever builds it\n * - Inline parallel groups within `/chain` (`(a | b)` syntax): the field\n * mapping for a group's own config exists (`spawnRequestMapping.ts`),\n * but wiring a group INTO a chain request is left for the same pass that\n * revisits per-task field support, so `/chain` reports a clear\n * not-yet-supported message rather than silently flattening a group\n * - `/subagents` (admin) command registration: a separate file, not yet\n * ported\n *\n * `/subagents-doctor` IS here, in `doctor.ts` - read (not ported) the\n * predecessor's foreground-executor `doctor` action before deciding, and it\n * turned out to be a small, mostly-mechanical port. See that module's own\n * doc for what it deliberately leaves out (chain counts, spawn-budget\n * reporting).\n *\n * AVOID:\n * - Awaiting a SINGLE/PARALLEL spawn for a result that will not exist yet.\n * See `subagentLaunch.ts`\n * - A private polling loop for a message's live status. Use\n * `watchTrackedRunUntilTerminal`\n */\n\nimport type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';\n\nimport type { ISkillDiscoveryService } from '../agents/skills.ts';\nimport type { AgentScope, IAgentDiscoveryService } from '../agents/types.ts';\nimport type { ExtensionConfig } from '../extensions/config.ts';\nimport type { IManagementActions } from '../extensions/managementActions.ts';\nimport { captureSessionForkSource, type ISpawnPlanner, type SpawnPlanResult } from '../extensions/spawnPlan.ts';\nimport type { IAsyncJobTracker, ITrackedAsyncJobs, TrackedAsyncJob } from '../runs/background/asyncJobTracker.ts';\nimport { resolveTrackedRunId, TERMINAL_ASYNC_JOB_STATES } from '../runs/background/asyncJobTracker.ts';\nimport type { IPollScheduler } from '../shared/pollScheduler.ts';\nimport { normalizeParentModel } from '../runs/shared/modelFallback.ts';\nimport { authenticatedModelInfos } from '../shared/modelResolution.ts';\nimport {\n extractForkFlag,\n parseAgentToken,\n parseSingleTaskToken,\n SlashParseError,\n type ParsedStep,\n} from './chainExpression.ts';\nimport { buildDoctorReport } from './doctor.ts';\nimport { taskInputFromParsedStep, UnsupportedInlineConfigError } from './spawnRequestMapping.ts';\nimport { launchParallelSubagents, launchSingleSubagent, watchTrackedRunUntilTerminal } from './subagentLaunch.ts';\n\nexport interface SlashCommandDeps {\n spawnPlanner: ISpawnPlanner;\n skills: ISkillDiscoveryService;\n tracker: IAsyncJobTracker;\n scheduler: IPollScheduler;\n discovery: IAgentDiscoveryService;\n /**\n * Used by `/subagents-stop`. Preferred over calling `requestSlashRunStop`\n * directly because it resolves an id PREFIX through `RunIdResolver` and\n * raises a real error for an unknown or ambiguous one, instead of writing a\n * stop request into a directory for a run that does not exist.\n */\n management: IManagementActions;\n loadConfig: () => ExtensionConfig;\n}\n\nexport interface SlashCommandState {\n baseCwd: string | undefined;\n}\n\nconst SLASH_STATUS_KEY = 'subagent-slash';\nconst SLASH_RESULT_CUSTOM_TYPE = 'subagent-slash-result';\n\nfunction sendSlashText(pi: ExtensionAPI, text: string): void {\n pi.sendMessage({ customType: SLASH_RESULT_CUSTOM_TYPE, content: text, display: true });\n}\n\nfunction setSlashStatus(ctx: ExtensionContext, text: string | undefined): void {\n if (ctx.hasUI) ctx.ui.setStatus(SLASH_STATUS_KEY, text);\n}\n\nfunction notifyError(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'error');\n}\n\nfunction notifyInfo(ctx: ExtensionContext, message: string): void {\n ctx.ui.notify(message, 'info');\n}\n\nfunction statusTextFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'starting…';\n if (job.attentionReason) return `${job.status ?? 'running'} - needs attention: ${job.attentionReason}`;\n if (job.activityState) return `${job.status ?? 'running'} - ${job.activityState}`;\n return job.status ?? 'running';\n}\n\n/**\n * Watches one launched run to a terminal state and finalizes its message.\n * Each launched run gets its own subscriber, so a PARALLEL launch's\n * siblings finalize independently rather than all waiting on the slowest.\n */\nfunction watchAndFinalize(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: ITrackedAsyncJobs,\n runId: string,\n agent: string,\n): void {\n watchTrackedRunUntilTerminal(deps.scheduler, jobs, runId, (job) => {\n setSlashStatus(ctx, `${agent} (${runId}): ${statusTextFor(job)}`);\n if (job?.status === undefined || !TERMINAL_ASYNC_JOB_STATES.has(job.status)) return;\n setSlashStatus(ctx, undefined);\n const outcome = job.status === 'complete' || job.status === 'completed' ? 'completed' : job.status;\n sendSlashText(\n pi,\n job.error\n ? `## Subagent ${outcome}\\n\\n${agent} (${runId})\\n\\n${job.error}`\n : `## Subagent ${outcome}\\n\\n${agent} (${runId})`,\n );\n });\n}\n\nfunction reportSpawnResult(\n pi: ExtensionAPI,\n ctx: ExtensionContext,\n deps: SlashCommandDeps,\n jobs: ITrackedAsyncJobs,\n result: SpawnPlanResult,\n): void {\n const started = result.outcomes.filter((outcome) => outcome.runId);\n const failed = result.outcomes.filter((outcome) => !outcome.runId);\n if (started.length > 0) {\n const label = started\n .map(\n (outcome) => `${outcome.agent} (${outcome.runId})${outcome.warning ? `\\n Warning: ${outcome.warning}` : ''}`,\n )\n .join(', ');\n sendSlashText(pi, `## Subagent started\\n\\n${label}`);\n setSlashStatus(ctx, `${started.length} run${started.length === 1 ? '' : 's'} started…`);\n for (const outcome of started) {\n if (outcome.runId) watchAndFinalize(pi, ctx, deps, jobs, outcome.runId, outcome.agent);\n }\n }\n if (failed.length > 0) {\n const label = failed.map((outcome) => `${outcome.agent}: ${outcome.error ?? 'spawn failed'}`).join('\\n');\n notifyError(ctx, `Some subagents failed to start:\\n${label}`);\n }\n}\n\nfunction requireBaseCwd(state: SlashCommandState, ctx: ExtensionContext): string | undefined {\n if (state.baseCwd) return state.baseCwd;\n notifyError(ctx, 'Subagent session cwd is not initialized yet');\n return undefined;\n}\n\nfunction findAgentOrNotify(deps: SlashCommandDeps, baseCwd: string, name: string, ctx: ExtensionContext): boolean {\n const agents = deps.discovery.discover(baseCwd, 'both' satisfies AgentScope).agents;\n if (agents.find((agent) => agent.name === name)) return true;\n notifyError(ctx, `Unknown agent: ${name}`);\n return false;\n}\n\nfunction reportKnownErrorOrRethrow(ctx: ExtensionContext, error: unknown): void {\n if (error instanceof UnsupportedInlineConfigError || error instanceof SlashParseError) {\n notifyError(ctx, error.message);\n return;\n }\n throw error;\n}\n\n/**\n * Shared arg parsing for /chain (no inline group) and /parallel:\n * \"agent1 task1 -> agent2 task2\" or \"agent1 agent2 -- shared task\".\n */\nfunction parseAgentArgsFallback(input: string): { steps: ParsedStep[]; task: string; perStep: boolean } | undefined {\n const trimmed = input.trim();\n if (trimmed.includes(' -> ')) {\n const steps = trimmed\n .split(' -> ')\n .map((segment) => segment.trim())\n .filter(Boolean)\n .map((segment) => parseSingleTaskToken(segment));\n if (steps.length === 0) return undefined;\n return { steps, task: steps.find((step) => step.task)?.task ?? '', perStep: true };\n }\n const delimiterIndex = trimmed.indexOf(' -- ');\n if (delimiterIndex === -1) return undefined;\n const agentsPart = trimmed.slice(0, delimiterIndex).trim();\n const sharedTask = trimmed.slice(delimiterIndex + 4).trim();\n if (!agentsPart || !sharedTask) return undefined;\n const steps = agentsPart\n .split(/\\s+/)\n .filter(Boolean)\n .map((token) => parseSingleTaskToken(token));\n if (steps.length === 0) return undefined;\n return { steps, task: sharedTask, perStep: false };\n}\n\nexport function registerSlashCommands(pi: ExtensionAPI, state: SlashCommandState, deps: SlashCommandDeps): void {\n pi.registerCommand('run', {\n description: 'Run a subagent in the background: /run agent[model=x] [task] [--fork]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const input = cleanedArgs.trim();\n if (!input) {\n notifyError(ctx, 'Usage: /run <agent> [task] [--fork]');\n return;\n }\n const firstSpace = input.indexOf(' ');\n const { name: agentName, config } = parseAgentToken(firstSpace === -1 ? input : input.slice(0, firstSpace));\n const task = firstSpace === -1 ? '' : input.slice(firstSpace + 1).trim();\n\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n if (!findAgentOrNotify(deps, baseCwd, agentName, ctx)) return;\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const taskInput = taskInputFromParsedStep(\n { name: agentName, config, task },\n baseCwd,\n fork ? 'fork' : undefined,\n );\n const result = await launchSingleSubagent(\n deps.spawnPlanner,\n jobs,\n {\n agent: taskInput.agent,\n task: taskInput.task ?? '',\n cwd: taskInput.cwd ?? baseCwd,\n agentScope: 'both',\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(taskInput.model ? { model: taskInput.model } : {}),\n ...(taskInput.context ? { context: taskInput.context } : {}),\n ...(parentForkSource\n ? { parentSessionFile: parentForkSource.sessionFile, parentLeafId: parentForkSource.leafId }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n });\n\n pi.registerCommand('parallel', {\n description: 'Run agents in parallel: /parallel scout \"task1\" -> reviewer \"task2\" [--fork]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const { args: cleanedArgs, fork } = extractForkFlag(args);\n const baseCwd = requireBaseCwd(state, ctx);\n if (!baseCwd) return;\n\n const parsed = parseAgentArgsFallback(cleanedArgs);\n if (!parsed) {\n notifyError(ctx, 'Usage: /parallel agent1 \"task1\" -> agent2 \"task2\"');\n return;\n }\n for (const step of parsed.steps) {\n if (!findAgentOrNotify(deps, baseCwd, step.name, ctx)) return;\n }\n if (!parsed.steps.some((step) => step.task) && !parsed.task) {\n notifyError(ctx, 'At least one step must have a task');\n return;\n }\n\n try {\n const parentForkSource = captureSessionForkSource(ctx.sessionManager, 'settled');\n const parentModel = normalizeParentModel(ctx.model);\n const tasks = parsed.steps.map((step) =>\n taskInputFromParsedStep(\n { name: step.name, config: step.config, task: step.task ?? parsed.task },\n baseCwd,\n fork ? 'fork' : undefined,\n ),\n );\n const result = await launchParallelSubagents(\n deps.spawnPlanner,\n jobs,\n {\n tasks,\n cwd: baseCwd,\n agentScope: 'both',\n parentSessionId: ctx.sessionManager.getSessionId(),\n ...(parentForkSource\n ? { parentSessionFile: parentForkSource.sessionFile, parentLeafId: parentForkSource.leafId }\n : {}),\n availableModels: authenticatedModelInfos(ctx.modelRegistry),\n ...(parentModel ? { parentModel } : {}),\n },\n deps.loadConfig(),\n );\n reportSpawnResult(pi, ctx, deps, jobs, result);\n } catch (error) {\n reportKnownErrorOrRethrow(ctx, error);\n }\n },\n });\n\n pi.registerCommand('subagents-doctor', {\n description: 'Show subagent diagnostics',\n handler: async (_args, ctx) => {\n sendSlashText(\n pi,\n buildDoctorReport({ cwd: ctx.cwd, agentScope: 'both' }, { discovery: deps.discovery, skills: deps.skills }),\n );\n },\n });\n\n pi.registerCommand('subagents-stop', {\n description: 'Stop a running subagent: /subagents-stop [run-id]',\n handler: async (args, ctx) => {\n const jobs = deps.tracker.forSession(ctx.sessionManager.getSessionId());\n const id = args.trim();\n if (!id) {\n sendSlashText(pi, stoppableRunsReport(jobs.list()));\n return;\n }\n try {\n deps.management.stop(resolveTrackedRunId(jobs, id));\n // Deliberately reports the REQUEST, not the outcome. Stop is\n // asynchronous in this package: the request is a file the child\n // claims on its next control-channel tick, so claiming \"stopped\"\n // here would assert something this process has not observed. The\n // run's own status is what confirms it, via /subagents-fleet or a\n // completion notification.\n notifyInfo(ctx, `Stop requested for ${id}. The run reports its own final state once it acknowledges.`);\n } catch (error) {\n // `ManagementActions.stop` throws only for an id that resolves to no\n // run or to more than one. Both are bad user input, not internal\n // faults, so they are notified rather than rethrown at the host - the\n // same treatment `reportKnownErrorOrRethrow` gives a parse error.\n notifyError(ctx, error instanceof Error ? error.message : `Could not stop '${id}'.`);\n }\n },\n });\n}\n\n/**\n * The no-argument `/subagents-stop` listing.\n *\n * The predecessor opened a TUI selector overlay here. This reports the same\n * information as text instead, for one reason worth stating rather than\n * hiding: a selector is a second, independent renderer of run state, and this\n * package already has one in `/subagents-fleet` that shows more (live status,\n * transcripts, and the full set of runtime controls including stop). Building\n * a second, weaker one would mean two things to keep in step. Passing an\n * explicit id stays the direct path, and the fleet overlay is the interactive\n * one.\n */\nfunction stoppableRunsReport(runs: readonly TrackedAsyncJob[]): string {\n const stoppable = runs.filter((run) => run.status === 'running' || run.status === 'pending');\n if (stoppable.length === 0) return 'No running subagents to stop.';\n const lines = stoppable.map((run) => `- ${run.runId}${run.status ? ` (${run.status})` : ''}`);\n return [\n 'Running subagents:',\n ...lines,\n '',\n 'Stop one with `/subagents-stop <run-id>`, or open `/subagents-fleet` to inspect and control them interactively.',\n ].join('\\n');\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawnRequestMapping.cjs","names":[],"sources":["../../src/slash/spawnRequestMapping.ts"],"sourcesContent":["/**\n * Maps a parsed slash-command step (`chainExpression.ts`'s `ParsedStep`/\n * carrying the predecessor's full 13-key inline-config\n * vocabulary) onto `SpawnPlanner`'s actual request shapes\n * (`SpawnPlanTaskInput`), which accepts far fewer\n * fields today.\n *\n * WHY A SET INLINE-CONFIG KEY WITH NO DESTINATION THROWS, RATHER THAN\n * BEING DROPPED:\n * Parsing syntax a user can type and then silently ignoring it is the same\n * class of lie as a coverage number that does not mean what it claims -\n * nothing would tell the user their `[skill=x]` did nothing, and they would\n * reasonably conclude the feature is broken rather than simply not built\n * yet. `port-result-watcher` explicitly deferred per-task\n * `skill`/`toolBudget`/`turnBudget`/`outputSchema`/`acceptance`/`output`\n * overrides when it built `spawnPlan.ts` - listed as unwired, not\n * unwanted - so this is scoping DOWN a vocabulary that already has a home\n * to grow back into, not designing a small one. The error names the exact\n * key and says \"not yet supported\", distinct from an unrecognized key\n * (which `parseInlineConfig` already drops silently, matching the\n * predecessor's own behavior for a typo).\n *\n * WHY THE NOT-YET-SUPPORTED LIST IS DATA, NOT A SWITCH:\n * Wiring one of these up later (e.g. once `SpawnPlanTaskInput` grows a\n * `skill` field) means deleting one entry from\n * `NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS` and adding the field to the\n * builder functions below - not re-deriving which keys are safe to pass\n * through.\n *\n * AVOID:\n * - Silently dropping a set inline-config key with no destination\n * - Inlining the not-yet-supported check as ad hoc `if` statements at each\n * call site instead of the shared list below\n */\n\nimport type { SpawnPlanTaskInput } from '../extensions/spawnPlan.ts';\nimport type { InlineConfig, ParsedStep } from './chainExpression.ts';\n\ninterface NotYetSupportedKey {\n key: keyof InlineConfig;\n isSet: (config: InlineConfig) => boolean;\n}\n\nconst NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS: readonly NotYetSupportedKey[] = [\n { key: 'output', isSet: (c) => c.output !== undefined },\n { key: 'outputMode', isSet: (c) => c.outputMode !== undefined },\n { key: 'reads', isSet: (c) => c.reads !== undefined },\n { key: 'skill', isSet: (c) => c.skill !== undefined },\n { key: 'progress', isSet: (c) => c.progress !== undefined },\n { key: 'count', isSet: (c) => c.count !== undefined },\n { key: 'outputSchema', isSet: (c) => c.outputSchema !== undefined },\n { key: 'acceptance', isSet: (c) => c.acceptance !== undefined },\n];\n\nexport class UnsupportedInlineConfigError extends Error {\n constructor(\n readonly key: string,\n agentName: string,\n ) {\n super(`'${key}' is not supported yet for '${agentName}': SpawnPlanner does not accept it as a per-task override.`);\n this.name = 'UnsupportedInlineConfigError';\n }\n}\n\n/** Throws `UnsupportedInlineConfigError` naming the first not-yet-supported key the user actually set. */\nexport function assertSupportedInlineConfig(config: InlineConfig, agentName: string): void {\n for (const { key, isSet } of NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS) {\n if (isSet(config)) throw new UnsupportedInlineConfigError(key, agentName);\n }\n}\n\n/** Builds a `SpawnPlanTaskInput` for a SINGLE/PARALLEL step. Throws if the step set a not-yet-supported inline-config key. */\nexport function taskInputFromParsedStep(\n step: Pick<ParsedStep, 'name' | 'config' | 'task'>,\n cwd: string,\n context?: 'fresh' | 'fork',\n): SpawnPlanTaskInput {\n assertSupportedInlineConfig(step.config, step.name);\n return {\n agent: step.name,\n ...(step.task ? { task: step.task } : {}),\n cwd: step.config.cwd ?? cwd,\n ...(step.config.model ? { model: step.config.model } : {}),\n ...(context ? { context } : {}),\n };\n}\n"],"mappings":"AA2CA,MAAM,EAAsE,CAC1E,CAAE,IAAK,SAAU,MAAQ,GAAM,EAAE,SAAW,IAAA,GAAW,CACvD,CAAE,IAAK,aAAc,MAAQ,GAAM,EAAE,aAAe,IAAA,GAAW,CAC/D,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,WAAY,MAAQ,GAAM,EAAE,WAAa,IAAA,GAAW,CAC3D,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,eAAgB,MAAQ,GAAM,EAAE,eAAiB,IAAA,GAAW,CACnE,CAAE,IAAK,aAAc,MAAQ,GAAM,EAAE,aAAe,IAAA,GAAW,CAChE,CAED,IAAa,EAAb,cAAkD,KAAM,CACtD,YACE,EACA,EACA,CACA,MAAM,IAAI,EAAI,8BAA8B,EAAU,4DAA4D,CAHzG,KAAA,IAAA,EAIT,KAAK,KAAO,iCAKhB,SAAgB,EAA4B,EAAsB,EAAyB,CACzF,IAAK,GAAM,CAAE,MAAK,WAAW,EAC3B,GAAI,EAAM,EAAO,CAAE,MAAM,IAAI,EAA6B,EAAK,EAAU,CAK7E,SAAgB,EACd,EACA,EACA,EACoB,CAEpB,OADA,EAA4B,EAAK,OAAQ,EAAK,KAAK,CAC5C,CACL,MAAO,EAAK,KACZ,GAAI,EAAK,KAAO,CAAE,KAAM,EAAK,KAAM,CAAG,EAAE,CACxC,IAAK,EAAK,OAAO,KAAO,EACxB,GAAI,EAAK,OAAO,MAAQ,CAAE,MAAO,EAAK,OAAO,MAAO,CAAG,EAAE,CACzD,GAAI,EAAU,CAAE,UAAS,CAAG,EAAE,CAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"spawnRequestMapping.mjs","names":[],"sources":["../../src/slash/spawnRequestMapping.ts"],"sourcesContent":["/**\n * Maps a parsed slash-command step (`chainExpression.ts`'s `ParsedStep`/\n * carrying the predecessor's full 13-key inline-config\n * vocabulary) onto `SpawnPlanner`'s actual request shapes\n * (`SpawnPlanTaskInput`), which accepts far fewer\n * fields today.\n *\n * WHY A SET INLINE-CONFIG KEY WITH NO DESTINATION THROWS, RATHER THAN\n * BEING DROPPED:\n * Parsing syntax a user can type and then silently ignoring it is the same\n * class of lie as a coverage number that does not mean what it claims -\n * nothing would tell the user their `[skill=x]` did nothing, and they would\n * reasonably conclude the feature is broken rather than simply not built\n * yet. `port-result-watcher` explicitly deferred per-task\n * `skill`/`toolBudget`/`turnBudget`/`outputSchema`/`acceptance`/`output`\n * overrides when it built `spawnPlan.ts` - listed as unwired, not\n * unwanted - so this is scoping DOWN a vocabulary that already has a home\n * to grow back into, not designing a small one. The error names the exact\n * key and says \"not yet supported\", distinct from an unrecognized key\n * (which `parseInlineConfig` already drops silently, matching the\n * predecessor's own behavior for a typo).\n *\n * WHY THE NOT-YET-SUPPORTED LIST IS DATA, NOT A SWITCH:\n * Wiring one of these up later (e.g. once `SpawnPlanTaskInput` grows a\n * `skill` field) means deleting one entry from\n * `NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS` and adding the field to the\n * builder functions below - not re-deriving which keys are safe to pass\n * through.\n *\n * AVOID:\n * - Silently dropping a set inline-config key with no destination\n * - Inlining the not-yet-supported check as ad hoc `if` statements at each\n * call site instead of the shared list below\n */\n\nimport type { SpawnPlanTaskInput } from '../extensions/spawnPlan.ts';\nimport type { InlineConfig, ParsedStep } from './chainExpression.ts';\n\ninterface NotYetSupportedKey {\n key: keyof InlineConfig;\n isSet: (config: InlineConfig) => boolean;\n}\n\nconst NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS: readonly NotYetSupportedKey[] = [\n { key: 'output', isSet: (c) => c.output !== undefined },\n { key: 'outputMode', isSet: (c) => c.outputMode !== undefined },\n { key: 'reads', isSet: (c) => c.reads !== undefined },\n { key: 'skill', isSet: (c) => c.skill !== undefined },\n { key: 'progress', isSet: (c) => c.progress !== undefined },\n { key: 'count', isSet: (c) => c.count !== undefined },\n { key: 'outputSchema', isSet: (c) => c.outputSchema !== undefined },\n { key: 'acceptance', isSet: (c) => c.acceptance !== undefined },\n];\n\nexport class UnsupportedInlineConfigError extends Error {\n constructor(\n readonly key: string,\n agentName: string,\n ) {\n super(`'${key}' is not supported yet for '${agentName}': SpawnPlanner does not accept it as a per-task override.`);\n this.name = 'UnsupportedInlineConfigError';\n }\n}\n\n/** Throws `UnsupportedInlineConfigError` naming the first not-yet-supported key the user actually set. */\nexport function assertSupportedInlineConfig(config: InlineConfig, agentName: string): void {\n for (const { key, isSet } of NOT_YET_SUPPORTED_INLINE_CONFIG_KEYS) {\n if (isSet(config)) throw new UnsupportedInlineConfigError(key, agentName);\n }\n}\n\n/** Builds a `SpawnPlanTaskInput` for a SINGLE/PARALLEL step. Throws if the step set a not-yet-supported inline-config key. */\nexport function taskInputFromParsedStep(\n step: Pick<ParsedStep, 'name' | 'config' | 'task'>,\n cwd: string,\n context?: 'fresh' | 'fork',\n): SpawnPlanTaskInput {\n assertSupportedInlineConfig(step.config, step.name);\n return {\n agent: step.name,\n ...(step.task ? { task: step.task } : {}),\n cwd: step.config.cwd ?? cwd,\n ...(step.config.model ? { model: step.config.model } : {}),\n ...(context ? { context } : {}),\n };\n}\n"],"mappings":"AA2CA,MAAM,EAAsE,CAC1E,CAAE,IAAK,SAAU,MAAQ,GAAM,EAAE,SAAW,IAAA,GAAW,CACvD,CAAE,IAAK,aAAc,MAAQ,GAAM,EAAE,aAAe,IAAA,GAAW,CAC/D,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,WAAY,MAAQ,GAAM,EAAE,WAAa,IAAA,GAAW,CAC3D,CAAE,IAAK,QAAS,MAAQ,GAAM,EAAE,QAAU,IAAA,GAAW,CACrD,CAAE,IAAK,eAAgB,MAAQ,GAAM,EAAE,eAAiB,IAAA,GAAW,CACnE,CAAE,IAAK,aAAc,MAAQ,GAAM,EAAE,aAAe,IAAA,GAAW,CAChE,CAED,IAAa,EAAb,cAAkD,KAAM,CACtD,YACE,EACA,EACA,CACA,MAAM,IAAI,EAAI,8BAA8B,EAAU,4DAA4D,CAHzG,KAAA,IAAA,EAIT,KAAK,KAAO,iCAKhB,SAAgB,EAA4B,EAAsB,EAAyB,CACzF,IAAK,GAAM,CAAE,MAAK,WAAW,EAC3B,GAAI,EAAM,EAAO,CAAE,MAAM,IAAI,EAA6B,EAAK,EAAU,CAK7E,SAAgB,EACd,EACA,EACA,EACoB,CAEpB,OADA,EAA4B,EAAK,OAAQ,EAAK,KAAK,CAC5C,CACL,MAAO,EAAK,KACZ,GAAI,EAAK,KAAO,CAAE,KAAM,EAAK,KAAM,CAAG,EAAE,CACxC,IAAK,EAAK,OAAO,KAAO,EACxB,GAAI,EAAK,OAAO,MAAQ,CAAE,MAAO,EAAK,OAAO,MAAO,CAAG,EAAE,CACzD,GAAI,EAAU,CAAE,UAAS,CAAG,EAAE,CAC/B"}
@@ -1,2 +0,0 @@
1
- const e=require(`../_virtual/_rolldown/runtime.cjs`);require(`../intercom/supervisorControlChannel.cjs`),require(`../shared/paths.cjs`);const t=require(`../runs/background/asyncJobTracker.cjs`);let n=require(`node:path`);n=e.__toESM(n,1);function r(e,t){for(let n of t)n.runId&&e.track(n.runId)}async function i(e,t,n,i){let a=await e.spawn({single:{agent:n.agent,task:n.task,...n.model?{model:n.model}:{},...n.context?{context:n.context}:{}},cwd:n.cwd,agentScope:n.agentScope,...n.parentSessionId?{parentSessionId:n.parentSessionId}:{},...n.currentDepth===void 0?{}:{currentDepth:n.currentDepth},...n.availableModels===void 0?{}:{availableModels:n.availableModels},...n.parentModel?{parentModel:n.parentModel}:{},...n.parentSessionFile?{parentSessionFile:n.parentSessionFile}:{},...n.parentLeafId?{parentLeafId:n.parentLeafId}:{}},i);return r(t,a.outcomes),a}async function a(e,t,n,i){let a=await e.spawn({tasks:n.tasks,cwd:n.cwd,agentScope:n.agentScope,...n.concurrency===void 0?{}:{concurrency:n.concurrency},...n.parentSessionId?{parentSessionId:n.parentSessionId}:{},...n.currentDepth===void 0?{}:{currentDepth:n.currentDepth},...n.availableModels===void 0?{}:{availableModels:n.availableModels},...n.parentModel?{parentModel:n.parentModel}:{},...n.parentSessionFile?{parentSessionFile:n.parentSessionFile}:{},...n.parentLeafId?{parentLeafId:n.parentLeafId}:{}},i);return r(t,a.outcomes),a}function o(e){return e?`${e.status??``}:${e.updatedAt??``}:${e.activityState??``}:${e.attentionReason??``}`:`untracked`}function s(e,n,r,i,a={}){let s,c;return s=e.register({id:`slash-run-watch-${r}`,intervalMs:a.intervalMs??500,run:()=>{let e=n.get(r),a=o(e);return a===c?!1:(c=a,i(e),e?.status!==void 0&&t.TERMINAL_ASYNC_JOB_STATES.has(e.status)&&s?.(),!0)}}),s}exports.launchParallelSubagents=a,exports.launchSingleSubagent=i,exports.watchTrackedRunUntilTerminal=s;
2
- //# sourceMappingURL=subagentLaunch.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagentLaunch.cjs","names":["TERMINAL_ASYNC_JOB_STATES"],"sources":["../../src/slash/subagentLaunch.ts"],"sourcesContent":["/**\n * Launches a subagent spawn from a slash command and tracks the result,\n * plus the stop path for cancelling one. Replaces the predecessor's\n * `slash-bridge.ts`.\n *\n * WHY THE EVENT BUS IS GONE:\n * The predecessor's `registerSlashSubagentBridge` was one of three bridges\n * (`registerSlashSubagentBridge`, `registerSubagentRpcBridge`,\n * `registerPromptTemplateDelegationBridge`) sharing one `pi.events` channel\n * into one foreground executor, so decoupling was load-bearing there. In\n * this package, only the slash layer calls into `SpawnPlanner` today - no\n * RPC bridge exists, and the delegation bridge is out of scope (see\n * `nested-events.ts`'s and this port's own precedent for not building\n * infrastructure a second consumer does not exist to use yet). A command\n * handler resolves `SpawnPlanner` and calls it directly.\n *\n * WHY THIS DOES NOT AWAIT COMPLETION FOR SINGLE/PARALLEL:\n * `SpawnPlanner.spawn()`'s own contract (see `spawnPlan.ts`) resolves once\n * each child confirms it started, not once it finishes -\n * `SpawnPlanChildOutcome.summary` stays `undefined` for exactly that reason.\n * This package is async-only: a slash command that instead blocked until\n * completion would reintroduce the foreground model through the back door.\n * `launchChainSubagents` is the one exception, and deliberately not\n * refactored to match: CHAIN mode has to wait for each step to resolve\n * `{previous}`/`{outputs.name}` before starting the next one, so awaiting\n * `spawnChain()` is chain mode's own real shape, not a leftover synchronous\n * branch.\n *\n * WHY `AsyncJobTracker`, NOT A NEW POLLER:\n * `AsyncJobTracker`'s own module doc already deferred \"TUI rendering\" to\n * this package's slash+TUI port. `watchTrackedRunUntilTerminal` below reads\n * from it and registers with `PollScheduler` (the one master tick every\n * other watcher in this package uses) rather than owning a private timer or\n * a loop that polls and self-terminates. The render-key gate (only calling\n * `onChange` when the tracked job's status/updatedAt/activityState actually\n * changed) is the fix for the predecessor's fleet-view bug this package\n * exists to remove - re-rendering, and re-reading, only on real change - and\n * unregistering once terminal is a structural property of the subscription\n * itself, not a condition checked inside a loop this module owns.\n *\n * WHY A STOP-REQUEST FAILURE IS NOT SWALLOWED:\n * `requestAsyncInterrupt`/`requestAsyncStop` are synchronous and already\n * propagate a write failure by throwing; `requestSlashRunStop` does not\n * wrap them in a try/catch. The actual stop still happens out-of-band in\n * whichever process owns the run - \"fire-and-forget\" describes that\n * asynchrony, not permission to lose a failed write silently. Same\n * distinction `control-channel.ts`'s `removeIfPresent` draws between a\n * missing file (benign) and a real error (must propagate).\n *\n * AVOID:\n * - Awaiting `spawn()` for a result that will not exist yet. See above\n * - A bare `try { requestSlashRunStop(...) } catch {}` at any call site\n * - A private `setInterval`/`setTimeout` loop for polling a tracked run.\n * Register with `PollScheduler` instead\n */\n\nimport * as path from 'node:path';\n\nimport type { AgentScope } from '../agents/types.ts';\nimport type { ExtensionConfig } from '../extensions/config.ts';\nimport type {\n ISpawnPlanner,\n SpawnPlanChildOutcome,\n SpawnPlanResult,\n SpawnPlanTaskInput,\n} from '../extensions/spawnPlan.ts';\nimport { requestAsyncInterrupt, requestAsyncStop } from '../intercom/supervisorControlChannel.ts';\nimport { currentRunsDir } from '../shared/paths.ts';\nimport {\n TERMINAL_ASYNC_JOB_STATES,\n type ITrackedAsyncJobs,\n type TrackedAsyncJob,\n} from '../runs/background/asyncJobTracker.ts';\nimport type { IPollScheduler } from '../shared/pollScheduler.ts';\nimport type { AvailableModelInfo, ParentModel } from '../runs/shared/modelFallback.ts';\n\nexport interface SlashSingleLaunchInput {\n agent: string;\n task: string;\n cwd: string;\n agentScope: AgentScope;\n model?: string;\n context?: 'fresh' | 'fork';\n parentSessionId?: string;\n currentDepth?: number;\n availableModels?: AvailableModelInfo[];\n parentModel?: ParentModel;\n parentSessionFile?: string;\n parentLeafId?: string;\n}\n\nexport interface SlashParallelLaunchInput {\n tasks: SpawnPlanTaskInput[];\n cwd: string;\n agentScope: AgentScope;\n concurrency?: number;\n parentSessionId?: string;\n currentDepth?: number;\n availableModels?: AvailableModelInfo[];\n parentModel?: ParentModel;\n parentSessionFile?: string;\n parentLeafId?: string;\n}\n\nfunction trackLaunchedRuns(tracker: ITrackedAsyncJobs, outcomes: SpawnPlanChildOutcome[]): void {\n for (const outcome of outcomes) {\n if (outcome.runId) tracker.track(outcome.runId);\n }\n}\n\n/** SINGLE mode: fires one child, returns once it has started, and tracks it for live display. */\nexport async function launchSingleSubagent(\n planner: ISpawnPlanner,\n tracker: ITrackedAsyncJobs,\n input: SlashSingleLaunchInput,\n config: ExtensionConfig,\n): Promise<SpawnPlanResult> {\n const result = await planner.spawn(\n {\n single: {\n agent: input.agent,\n task: input.task,\n ...(input.model ? { model: input.model } : {}),\n ...(input.context ? { context: input.context } : {}),\n },\n cwd: input.cwd,\n agentScope: input.agentScope,\n ...(input.parentSessionId ? { parentSessionId: input.parentSessionId } : {}),\n ...(input.currentDepth !== undefined ? { currentDepth: input.currentDepth } : {}),\n ...(input.availableModels !== undefined ? { availableModels: input.availableModels } : {}),\n ...(input.parentModel ? { parentModel: input.parentModel } : {}),\n ...(input.parentSessionFile ? { parentSessionFile: input.parentSessionFile } : {}),\n ...(input.parentLeafId ? { parentLeafId: input.parentLeafId } : {}),\n },\n config,\n );\n trackLaunchedRuns(tracker, result.outcomes);\n return result;\n}\n\n/** PARALLEL mode: fans out N children, returns once each has started, and tracks every one for live display. */\nexport async function launchParallelSubagents(\n planner: ISpawnPlanner,\n tracker: ITrackedAsyncJobs,\n input: SlashParallelLaunchInput,\n config: ExtensionConfig,\n): Promise<SpawnPlanResult> {\n const result = await planner.spawn(\n {\n tasks: input.tasks,\n cwd: input.cwd,\n agentScope: input.agentScope,\n ...(input.concurrency !== undefined ? { concurrency: input.concurrency } : {}),\n ...(input.parentSessionId ? { parentSessionId: input.parentSessionId } : {}),\n ...(input.currentDepth !== undefined ? { currentDepth: input.currentDepth } : {}),\n ...(input.availableModels !== undefined ? { availableModels: input.availableModels } : {}),\n ...(input.parentModel ? { parentModel: input.parentModel } : {}),\n ...(input.parentSessionFile ? { parentSessionFile: input.parentSessionFile } : {}),\n ...(input.parentLeafId ? { parentLeafId: input.parentLeafId } : {}),\n },\n config,\n );\n trackLaunchedRuns(tracker, result.outcomes);\n return result;\n}\n\nexport type SlashStopMode = 'interrupt' | 'stop';\n\n/**\n * Ask a tracked run to stop. See the module doc: a write failure here is a\n * real failure and is NOT caught - the caller must surface it.\n */\nexport function requestSlashRunStop(runId: string, mode: SlashStopMode = 'stop', reason?: string): void {\n const asyncDir = path.join(currentRunsDir(), runId);\n const payload = reason ? { reason } : {};\n if (mode === 'interrupt') requestAsyncInterrupt(asyncDir, payload);\n else requestAsyncStop(asyncDir, payload);\n}\n\nexport interface SlashRunWatchOptions {\n intervalMs?: number;\n}\n\nconst DEFAULT_SLASH_RUN_WATCH_INTERVAL_MS = 500;\n\nfunction renderKeyFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'untracked';\n return `${job.status ?? ''}:${job.updatedAt ?? ''}:${job.activityState ?? ''}:${job.attentionReason ?? ''}`;\n}\n\n/**\n * Call `onChange` only when a tracked run's status actually changes, and\n * stop watching once it reaches a terminal state - a structural property of\n * unregistering from `PollScheduler`, not a condition checked inside a loop\n * this function owns. See the module doc's `AsyncJobTracker`/`PollScheduler`\n * section for why.\n *\n * Returns an unregister function; call it to stop watching early (e.g. the\n * caller navigated away from the message before the run finished).\n */\nexport function watchTrackedRunUntilTerminal(\n scheduler: IPollScheduler,\n tracker: ITrackedAsyncJobs,\n runId: string,\n onChange: (job: TrackedAsyncJob | undefined) => void,\n options: SlashRunWatchOptions = {},\n): () => void {\n let unregister: (() => void) | undefined;\n let lastRenderKey: string | undefined;\n\n const check = (): boolean => {\n const job = tracker.get(runId);\n const key = renderKeyFor(job);\n if (key === lastRenderKey) return false;\n lastRenderKey = key;\n onChange(job);\n if (job?.status !== undefined && TERMINAL_ASYNC_JOB_STATES.has(job.status)) unregister?.();\n return true;\n };\n\n unregister = scheduler.register({\n id: `slash-run-watch-${runId}`,\n intervalMs: options.intervalMs ?? DEFAULT_SLASH_RUN_WATCH_INTERVAL_MS,\n run: check,\n });\n return unregister;\n}\n"],"mappings":"8OAwGA,SAAS,EAAkB,EAA4B,EAAyC,CAC9F,IAAK,IAAM,KAAW,EAChB,EAAQ,OAAO,EAAQ,MAAM,EAAQ,MAAM,CAKnD,eAAsB,EACpB,EACA,EACA,EACA,EAC0B,CAC1B,IAAM,EAAS,MAAM,EAAQ,MAC3B,CACE,OAAQ,CACN,MAAO,EAAM,MACb,KAAM,EAAM,KACZ,GAAI,EAAM,MAAQ,CAAE,MAAO,EAAM,MAAO,CAAG,EAAE,CAC7C,GAAI,EAAM,QAAU,CAAE,QAAS,EAAM,QAAS,CAAG,EAAE,CACpD,CACD,IAAK,EAAM,IACX,WAAY,EAAM,WAClB,GAAI,EAAM,gBAAkB,CAAE,gBAAiB,EAAM,gBAAiB,CAAG,EAAE,CAC3E,GAAI,EAAM,eAAiB,IAAA,GAAmD,EAAE,CAAzC,CAAE,aAAc,EAAM,aAAc,CAC3E,GAAI,EAAM,kBAAoB,IAAA,GAAyD,EAAE,CAA/C,CAAE,gBAAiB,EAAM,gBAAiB,CACpF,GAAI,EAAM,YAAc,CAAE,YAAa,EAAM,YAAa,CAAG,EAAE,CAC/D,GAAI,EAAM,kBAAoB,CAAE,kBAAmB,EAAM,kBAAmB,CAAG,EAAE,CACjF,GAAI,EAAM,aAAe,CAAE,aAAc,EAAM,aAAc,CAAG,EAAE,CACnE,CACD,EACD,CAED,OADA,EAAkB,EAAS,EAAO,SAAS,CACpC,EAIT,eAAsB,EACpB,EACA,EACA,EACA,EAC0B,CAC1B,IAAM,EAAS,MAAM,EAAQ,MAC3B,CACE,MAAO,EAAM,MACb,IAAK,EAAM,IACX,WAAY,EAAM,WAClB,GAAI,EAAM,cAAgB,IAAA,GAAiD,EAAE,CAAvC,CAAE,YAAa,EAAM,YAAa,CACxE,GAAI,EAAM,gBAAkB,CAAE,gBAAiB,EAAM,gBAAiB,CAAG,EAAE,CAC3E,GAAI,EAAM,eAAiB,IAAA,GAAmD,EAAE,CAAzC,CAAE,aAAc,EAAM,aAAc,CAC3E,GAAI,EAAM,kBAAoB,IAAA,GAAyD,EAAE,CAA/C,CAAE,gBAAiB,EAAM,gBAAiB,CACpF,GAAI,EAAM,YAAc,CAAE,YAAa,EAAM,YAAa,CAAG,EAAE,CAC/D,GAAI,EAAM,kBAAoB,CAAE,kBAAmB,EAAM,kBAAmB,CAAG,EAAE,CACjF,GAAI,EAAM,aAAe,CAAE,aAAc,EAAM,aAAc,CAAG,EAAE,CACnE,CACD,EACD,CAED,OADA,EAAkB,EAAS,EAAO,SAAS,CACpC,EAsBT,SAAS,EAAa,EAA0C,CAE9D,OADK,EACE,GAAG,EAAI,QAAU,GAAG,GAAG,EAAI,WAAa,GAAG,GAAG,EAAI,eAAiB,GAAG,GAAG,EAAI,iBAAmB,KADtF,YAcnB,SAAgB,EACd,EACA,EACA,EACA,EACA,EAAgC,EAAE,CACtB,CACZ,IAAI,EACA,EAiBJ,MALA,GAAa,EAAU,SAAS,CAC9B,GAAI,mBAAmB,IACvB,WAAY,EAAQ,YAAc,IAClC,QAb2B,CAC3B,IAAM,EAAM,EAAQ,IAAI,EAAM,CACxB,EAAM,EAAa,EAAI,CAK7B,OAJI,IAAQ,EAAsB,IAClC,EAAgB,EAChB,EAAS,EAAI,CACT,GAAK,SAAW,IAAA,IAAaA,EAAAA,0BAA0B,IAAI,EAAI,OAAO,EAAE,KAAc,CACnF,KAOR,CAAC,CACK"}
@@ -1,2 +0,0 @@
1
- import{init_supervisorControlChannel as e}from"../intercom/supervisorControlChannel.mjs";import{init_paths as t}from"../shared/paths.mjs";import{TERMINAL_ASYNC_JOB_STATES as n,init_asyncJobTracker as r}from"../runs/background/asyncJobTracker.mjs";e(),t(),r();function i(e,t){for(let n of t)n.runId&&e.track(n.runId)}async function a(e,t,n,r){let a=await e.spawn({single:{agent:n.agent,task:n.task,...n.model?{model:n.model}:{},...n.context?{context:n.context}:{}},cwd:n.cwd,agentScope:n.agentScope,...n.parentSessionId?{parentSessionId:n.parentSessionId}:{},...n.currentDepth===void 0?{}:{currentDepth:n.currentDepth},...n.availableModels===void 0?{}:{availableModels:n.availableModels},...n.parentModel?{parentModel:n.parentModel}:{},...n.parentSessionFile?{parentSessionFile:n.parentSessionFile}:{},...n.parentLeafId?{parentLeafId:n.parentLeafId}:{}},r);return i(t,a.outcomes),a}async function o(e,t,n,r){let a=await e.spawn({tasks:n.tasks,cwd:n.cwd,agentScope:n.agentScope,...n.concurrency===void 0?{}:{concurrency:n.concurrency},...n.parentSessionId?{parentSessionId:n.parentSessionId}:{},...n.currentDepth===void 0?{}:{currentDepth:n.currentDepth},...n.availableModels===void 0?{}:{availableModels:n.availableModels},...n.parentModel?{parentModel:n.parentModel}:{},...n.parentSessionFile?{parentSessionFile:n.parentSessionFile}:{},...n.parentLeafId?{parentLeafId:n.parentLeafId}:{}},r);return i(t,a.outcomes),a}function s(e){return e?`${e.status??``}:${e.updatedAt??``}:${e.activityState??``}:${e.attentionReason??``}`:`untracked`}function c(e,t,r,i,a={}){let o,c;return o=e.register({id:`slash-run-watch-${r}`,intervalMs:a.intervalMs??500,run:()=>{let e=t.get(r),a=s(e);return a===c?!1:(c=a,i(e),e?.status!==void 0&&n.has(e.status)&&o?.(),!0)}}),o}export{o as launchParallelSubagents,a as launchSingleSubagent,c as watchTrackedRunUntilTerminal};
2
- //# sourceMappingURL=subagentLaunch.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagentLaunch.mjs","names":[],"sources":["../../src/slash/subagentLaunch.ts"],"sourcesContent":["/**\n * Launches a subagent spawn from a slash command and tracks the result,\n * plus the stop path for cancelling one. Replaces the predecessor's\n * `slash-bridge.ts`.\n *\n * WHY THE EVENT BUS IS GONE:\n * The predecessor's `registerSlashSubagentBridge` was one of three bridges\n * (`registerSlashSubagentBridge`, `registerSubagentRpcBridge`,\n * `registerPromptTemplateDelegationBridge`) sharing one `pi.events` channel\n * into one foreground executor, so decoupling was load-bearing there. In\n * this package, only the slash layer calls into `SpawnPlanner` today - no\n * RPC bridge exists, and the delegation bridge is out of scope (see\n * `nested-events.ts`'s and this port's own precedent for not building\n * infrastructure a second consumer does not exist to use yet). A command\n * handler resolves `SpawnPlanner` and calls it directly.\n *\n * WHY THIS DOES NOT AWAIT COMPLETION FOR SINGLE/PARALLEL:\n * `SpawnPlanner.spawn()`'s own contract (see `spawnPlan.ts`) resolves once\n * each child confirms it started, not once it finishes -\n * `SpawnPlanChildOutcome.summary` stays `undefined` for exactly that reason.\n * This package is async-only: a slash command that instead blocked until\n * completion would reintroduce the foreground model through the back door.\n * `launchChainSubagents` is the one exception, and deliberately not\n * refactored to match: CHAIN mode has to wait for each step to resolve\n * `{previous}`/`{outputs.name}` before starting the next one, so awaiting\n * `spawnChain()` is chain mode's own real shape, not a leftover synchronous\n * branch.\n *\n * WHY `AsyncJobTracker`, NOT A NEW POLLER:\n * `AsyncJobTracker`'s own module doc already deferred \"TUI rendering\" to\n * this package's slash+TUI port. `watchTrackedRunUntilTerminal` below reads\n * from it and registers with `PollScheduler` (the one master tick every\n * other watcher in this package uses) rather than owning a private timer or\n * a loop that polls and self-terminates. The render-key gate (only calling\n * `onChange` when the tracked job's status/updatedAt/activityState actually\n * changed) is the fix for the predecessor's fleet-view bug this package\n * exists to remove - re-rendering, and re-reading, only on real change - and\n * unregistering once terminal is a structural property of the subscription\n * itself, not a condition checked inside a loop this module owns.\n *\n * WHY A STOP-REQUEST FAILURE IS NOT SWALLOWED:\n * `requestAsyncInterrupt`/`requestAsyncStop` are synchronous and already\n * propagate a write failure by throwing; `requestSlashRunStop` does not\n * wrap them in a try/catch. The actual stop still happens out-of-band in\n * whichever process owns the run - \"fire-and-forget\" describes that\n * asynchrony, not permission to lose a failed write silently. Same\n * distinction `control-channel.ts`'s `removeIfPresent` draws between a\n * missing file (benign) and a real error (must propagate).\n *\n * AVOID:\n * - Awaiting `spawn()` for a result that will not exist yet. See above\n * - A bare `try { requestSlashRunStop(...) } catch {}` at any call site\n * - A private `setInterval`/`setTimeout` loop for polling a tracked run.\n * Register with `PollScheduler` instead\n */\n\nimport * as path from 'node:path';\n\nimport type { AgentScope } from '../agents/types.ts';\nimport type { ExtensionConfig } from '../extensions/config.ts';\nimport type {\n ISpawnPlanner,\n SpawnPlanChildOutcome,\n SpawnPlanResult,\n SpawnPlanTaskInput,\n} from '../extensions/spawnPlan.ts';\nimport { requestAsyncInterrupt, requestAsyncStop } from '../intercom/supervisorControlChannel.ts';\nimport { currentRunsDir } from '../shared/paths.ts';\nimport {\n TERMINAL_ASYNC_JOB_STATES,\n type ITrackedAsyncJobs,\n type TrackedAsyncJob,\n} from '../runs/background/asyncJobTracker.ts';\nimport type { IPollScheduler } from '../shared/pollScheduler.ts';\nimport type { AvailableModelInfo, ParentModel } from '../runs/shared/modelFallback.ts';\n\nexport interface SlashSingleLaunchInput {\n agent: string;\n task: string;\n cwd: string;\n agentScope: AgentScope;\n model?: string;\n context?: 'fresh' | 'fork';\n parentSessionId?: string;\n currentDepth?: number;\n availableModels?: AvailableModelInfo[];\n parentModel?: ParentModel;\n parentSessionFile?: string;\n parentLeafId?: string;\n}\n\nexport interface SlashParallelLaunchInput {\n tasks: SpawnPlanTaskInput[];\n cwd: string;\n agentScope: AgentScope;\n concurrency?: number;\n parentSessionId?: string;\n currentDepth?: number;\n availableModels?: AvailableModelInfo[];\n parentModel?: ParentModel;\n parentSessionFile?: string;\n parentLeafId?: string;\n}\n\nfunction trackLaunchedRuns(tracker: ITrackedAsyncJobs, outcomes: SpawnPlanChildOutcome[]): void {\n for (const outcome of outcomes) {\n if (outcome.runId) tracker.track(outcome.runId);\n }\n}\n\n/** SINGLE mode: fires one child, returns once it has started, and tracks it for live display. */\nexport async function launchSingleSubagent(\n planner: ISpawnPlanner,\n tracker: ITrackedAsyncJobs,\n input: SlashSingleLaunchInput,\n config: ExtensionConfig,\n): Promise<SpawnPlanResult> {\n const result = await planner.spawn(\n {\n single: {\n agent: input.agent,\n task: input.task,\n ...(input.model ? { model: input.model } : {}),\n ...(input.context ? { context: input.context } : {}),\n },\n cwd: input.cwd,\n agentScope: input.agentScope,\n ...(input.parentSessionId ? { parentSessionId: input.parentSessionId } : {}),\n ...(input.currentDepth !== undefined ? { currentDepth: input.currentDepth } : {}),\n ...(input.availableModels !== undefined ? { availableModels: input.availableModels } : {}),\n ...(input.parentModel ? { parentModel: input.parentModel } : {}),\n ...(input.parentSessionFile ? { parentSessionFile: input.parentSessionFile } : {}),\n ...(input.parentLeafId ? { parentLeafId: input.parentLeafId } : {}),\n },\n config,\n );\n trackLaunchedRuns(tracker, result.outcomes);\n return result;\n}\n\n/** PARALLEL mode: fans out N children, returns once each has started, and tracks every one for live display. */\nexport async function launchParallelSubagents(\n planner: ISpawnPlanner,\n tracker: ITrackedAsyncJobs,\n input: SlashParallelLaunchInput,\n config: ExtensionConfig,\n): Promise<SpawnPlanResult> {\n const result = await planner.spawn(\n {\n tasks: input.tasks,\n cwd: input.cwd,\n agentScope: input.agentScope,\n ...(input.concurrency !== undefined ? { concurrency: input.concurrency } : {}),\n ...(input.parentSessionId ? { parentSessionId: input.parentSessionId } : {}),\n ...(input.currentDepth !== undefined ? { currentDepth: input.currentDepth } : {}),\n ...(input.availableModels !== undefined ? { availableModels: input.availableModels } : {}),\n ...(input.parentModel ? { parentModel: input.parentModel } : {}),\n ...(input.parentSessionFile ? { parentSessionFile: input.parentSessionFile } : {}),\n ...(input.parentLeafId ? { parentLeafId: input.parentLeafId } : {}),\n },\n config,\n );\n trackLaunchedRuns(tracker, result.outcomes);\n return result;\n}\n\nexport type SlashStopMode = 'interrupt' | 'stop';\n\n/**\n * Ask a tracked run to stop. See the module doc: a write failure here is a\n * real failure and is NOT caught - the caller must surface it.\n */\nexport function requestSlashRunStop(runId: string, mode: SlashStopMode = 'stop', reason?: string): void {\n const asyncDir = path.join(currentRunsDir(), runId);\n const payload = reason ? { reason } : {};\n if (mode === 'interrupt') requestAsyncInterrupt(asyncDir, payload);\n else requestAsyncStop(asyncDir, payload);\n}\n\nexport interface SlashRunWatchOptions {\n intervalMs?: number;\n}\n\nconst DEFAULT_SLASH_RUN_WATCH_INTERVAL_MS = 500;\n\nfunction renderKeyFor(job: TrackedAsyncJob | undefined): string {\n if (!job) return 'untracked';\n return `${job.status ?? ''}:${job.updatedAt ?? ''}:${job.activityState ?? ''}:${job.attentionReason ?? ''}`;\n}\n\n/**\n * Call `onChange` only when a tracked run's status actually changes, and\n * stop watching once it reaches a terminal state - a structural property of\n * unregistering from `PollScheduler`, not a condition checked inside a loop\n * this function owns. See the module doc's `AsyncJobTracker`/`PollScheduler`\n * section for why.\n *\n * Returns an unregister function; call it to stop watching early (e.g. the\n * caller navigated away from the message before the run finished).\n */\nexport function watchTrackedRunUntilTerminal(\n scheduler: IPollScheduler,\n tracker: ITrackedAsyncJobs,\n runId: string,\n onChange: (job: TrackedAsyncJob | undefined) => void,\n options: SlashRunWatchOptions = {},\n): () => void {\n let unregister: (() => void) | undefined;\n let lastRenderKey: string | undefined;\n\n const check = (): boolean => {\n const job = tracker.get(runId);\n const key = renderKeyFor(job);\n if (key === lastRenderKey) return false;\n lastRenderKey = key;\n onChange(job);\n if (job?.status !== undefined && TERMINAL_ASYNC_JOB_STATES.has(job.status)) unregister?.();\n return true;\n };\n\n unregister = scheduler.register({\n id: `slash-run-watch-${runId}`,\n intervalMs: options.intervalMs ?? DEFAULT_SLASH_RUN_WATCH_INTERVAL_MS,\n run: check,\n });\n return unregister;\n}\n"],"mappings":"0PAkEkG,IAC9C,IAKL,CAgC/C,SAAS,EAAkB,EAA4B,EAAyC,CAC9F,IAAK,IAAM,KAAW,EAChB,EAAQ,OAAO,EAAQ,MAAM,EAAQ,MAAM,CAKnD,eAAsB,EACpB,EACA,EACA,EACA,EAC0B,CAC1B,IAAM,EAAS,MAAM,EAAQ,MAC3B,CACE,OAAQ,CACN,MAAO,EAAM,MACb,KAAM,EAAM,KACZ,GAAI,EAAM,MAAQ,CAAE,MAAO,EAAM,MAAO,CAAG,EAAE,CAC7C,GAAI,EAAM,QAAU,CAAE,QAAS,EAAM,QAAS,CAAG,EAAE,CACpD,CACD,IAAK,EAAM,IACX,WAAY,EAAM,WAClB,GAAI,EAAM,gBAAkB,CAAE,gBAAiB,EAAM,gBAAiB,CAAG,EAAE,CAC3E,GAAI,EAAM,eAAiB,IAAA,GAAmD,EAAE,CAAzC,CAAE,aAAc,EAAM,aAAc,CAC3E,GAAI,EAAM,kBAAoB,IAAA,GAAyD,EAAE,CAA/C,CAAE,gBAAiB,EAAM,gBAAiB,CACpF,GAAI,EAAM,YAAc,CAAE,YAAa,EAAM,YAAa,CAAG,EAAE,CAC/D,GAAI,EAAM,kBAAoB,CAAE,kBAAmB,EAAM,kBAAmB,CAAG,EAAE,CACjF,GAAI,EAAM,aAAe,CAAE,aAAc,EAAM,aAAc,CAAG,EAAE,CACnE,CACD,EACD,CAED,OADA,EAAkB,EAAS,EAAO,SAAS,CACpC,EAIT,eAAsB,EACpB,EACA,EACA,EACA,EAC0B,CAC1B,IAAM,EAAS,MAAM,EAAQ,MAC3B,CACE,MAAO,EAAM,MACb,IAAK,EAAM,IACX,WAAY,EAAM,WAClB,GAAI,EAAM,cAAgB,IAAA,GAAiD,EAAE,CAAvC,CAAE,YAAa,EAAM,YAAa,CACxE,GAAI,EAAM,gBAAkB,CAAE,gBAAiB,EAAM,gBAAiB,CAAG,EAAE,CAC3E,GAAI,EAAM,eAAiB,IAAA,GAAmD,EAAE,CAAzC,CAAE,aAAc,EAAM,aAAc,CAC3E,GAAI,EAAM,kBAAoB,IAAA,GAAyD,EAAE,CAA/C,CAAE,gBAAiB,EAAM,gBAAiB,CACpF,GAAI,EAAM,YAAc,CAAE,YAAa,EAAM,YAAa,CAAG,EAAE,CAC/D,GAAI,EAAM,kBAAoB,CAAE,kBAAmB,EAAM,kBAAmB,CAAG,EAAE,CACjF,GAAI,EAAM,aAAe,CAAE,aAAc,EAAM,aAAc,CAAG,EAAE,CACnE,CACD,EACD,CAED,OADA,EAAkB,EAAS,EAAO,SAAS,CACpC,EAsBT,SAAS,EAAa,EAA0C,CAE9D,OADK,EACE,GAAG,EAAI,QAAU,GAAG,GAAG,EAAI,WAAa,GAAG,GAAG,EAAI,eAAiB,GAAG,GAAG,EAAI,iBAAmB,KADtF,YAcnB,SAAgB,EACd,EACA,EACA,EACA,EACA,EAAgC,EAAE,CACtB,CACZ,IAAI,EACA,EAiBJ,MALA,GAAa,EAAU,SAAS,CAC9B,GAAI,mBAAmB,IACvB,WAAY,EAAQ,YAAc,IAClC,QAb2B,CAC3B,IAAM,EAAM,EAAQ,IAAI,EAAM,CACxB,EAAM,EAAa,EAAI,CAK7B,OAJI,IAAQ,EAAsB,IAClC,EAAgB,EAChB,EAAS,EAAI,CACT,GAAK,SAAW,IAAA,IAAa,EAA0B,IAAI,EAAI,OAAO,EAAE,KAAc,CACnF,KAOR,CAAC,CACK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;KA2GY,gBAAA;;;;;;;UA4CK,gBAAA;EACf,IAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;;;;;;UAuFe,kBAAA;;;;;EAKf,kBAAA;;EAEA,iBAAA,CAAkB,OAAA;;EAElB,mBAAA,IAAuB,SAAA;;EAEvB,mBAAA,CAAoB,SAAA,EAAW,SAAA;;EAE/B,qBAAA;;;;;;;;;;EAUA,YAAA,IAAgB,GAAA,UAAa,MAAA,QAAc,CAAA,EAAG,KAAA,GAAQ,QAAA,cAAsB,CAAA,GAAI,CAAA;;EAEhF,gBAAA,CAAiB,GAAA;;EAEjB,iBAAA,CAAkB,GAAA,UAAa,KAAA;;EAE/B,iBAAA,CAAkB,GAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;KA2GY,gBAAA;;;;;;;UA4CK,gBAAA;EACf,IAAA;EACA,IAAA;EACA,KAAA;AAAA;;;;;;;;;;UAuFe,kBAAA;;;;;EAKf,kBAAA;;EAEA,iBAAA,CAAkB,OAAA;;EAElB,mBAAA,IAAuB,SAAA;;EAEvB,mBAAA,CAAoB,SAAA,EAAW,SAAA;;EAE/B,qBAAA;;;;;;;;;;EAUA,YAAA,IAAgB,GAAA,UAAa,MAAA,QAAc,CAAA,EAAG,KAAA,GAAQ,QAAA,cAAsB,CAAA,GAAI,CAAA;;EAEhF,gBAAA,CAAiB,GAAA;;EAEjB,iBAAA,CAAkB,GAAA,UAAa,KAAA;;EAE/B,iBAAA,CAAkB,GAAA;AAAA"}
File without changes
File without changes