@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slashCommands.mjs","names":[],"sources":["../../../src/commands/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';\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 { ISkillDiscoveryService } from '../../services/agents/skills.ts';\nimport type { AgentScope, IAgentDiscoveryService } from '../../services/agents/types.ts';\nimport type {\n IAsyncJobTracker,\n ITrackedAsyncJobs,\n TrackedAsyncJob,\n} from '../../services/runs/background/asyncJobTracker.ts';\nimport { resolveTrackedRunId, TERMINAL_ASYNC_JOB_STATES } from '../../services/runs/background/asyncJobTracker.ts';\nimport { normalizeParentModel } from '../../services/runs/shared/modelFallback.ts';\nimport { authenticatedModelInfos } from '../../shared/modelResolution.ts';\nimport type { IPollScheduler } from '../../shared/pollScheduler.ts';\nimport {\n extractForkFlag,\n type ParsedStep,\n parseAgentToken,\n parseSingleTaskToken,\n SlashParseError,\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":"k4BAqDmH,IAQA,IAChC,IACT,CAoC1E,SAAS,EAAc,EAAkB,EAAoB,CAC3D,EAAG,YAAY,CAAE,WAAY,wBAA0B,QAAS,EAAM,QAAS,GAAM,CAAC,CAGxF,SAAS,EAAe,EAAuB,EAAgC,CACzE,EAAI,OAAO,EAAI,GAAG,UAAU,iBAAkB,EAAK,CAGzD,SAAS,EAAY,EAAuB,EAAuB,CACjE,EAAI,GAAG,OAAO,EAAS,QAAQ,CAGjC,SAAS,EAAW,EAAuB,EAAuB,CAChE,EAAI,GAAG,OAAO,EAAS,OAAO,CAGhC,SAAS,EAAc,EAA0C,CAI/D,OAHK,EACD,EAAI,gBAAwB,GAAG,EAAI,QAAU,UAAU,sBAAsB,EAAI,kBACjF,EAAI,cAAsB,GAAG,EAAI,QAAU,UAAU,KAAK,EAAI,gBAC3D,EAAI,QAAU,UAHJ,YAWnB,SAAS,EACP,EACA,EACA,EACA,EACA,EACA,EACM,CACN,EAA6B,EAAK,UAAW,EAAM,EAAQ,GAAQ,CAEjE,GADA,EAAe,EAAK,GAAG,EAAM,IAAI,EAAM,KAAK,EAAc,EAAI,GAAG,CAC7D,GAAK,SAAW,IAAA,IAAa,CAAC,EAA0B,IAAI,EAAI,OAAO,CAAE,OAC7E,EAAe,EAAK,IAAA,GAAU,CAC9B,IAAM,EAAU,EAAI,SAAW,YAAc,EAAI,SAAW,YAAc,YAAc,EAAI,OAC5F,EACE,EACA,EAAI,MACA,eAAe,EAAQ,MAAM,EAAM,IAAI,EAAM,OAAO,EAAI,QACxD,eAAe,EAAQ,MAAM,EAAM,IAAI,EAAM,GAClD,EACD,CAGJ,SAAS,EACP,EACA,EACA,EACA,EACA,EACM,CACN,IAAM,EAAU,EAAO,SAAS,OAAQ,GAAY,EAAQ,MAAM,CAC5D,EAAS,EAAO,SAAS,OAAQ,GAAY,CAAC,EAAQ,MAAM,CAClE,GAAI,EAAQ,OAAS,EAAG,CAMtB,EAAc,EAAI,0BALJ,EACX,IACE,GAAY,GAAG,EAAQ,MAAM,IAAI,EAAQ,MAAM,GAAG,EAAQ,QAAU,gBAAgB,EAAQ,UAAY,KAC1G,CACA,KAAK,KACyC,GAAG,CACpD,EAAe,EAAK,GAAG,EAAQ,OAAO,MAAM,EAAQ,SAAW,EAAI,GAAK,IAAI,WAAW,CACvF,IAAK,IAAM,KAAW,EAChB,EAAQ,OAAO,EAAiB,EAAI,EAAK,EAAM,EAAM,EAAQ,MAAO,EAAQ,MAAM,CAGtF,EAAO,OAAS,GAElB,EAAY,EAAK,oCADH,EAAO,IAAK,GAAY,GAAG,EAAQ,MAAM,IAAI,EAAQ,OAAS,iBAAiB,CAAC,KAAK;EACzC,GAAG,CAIjE,SAAS,EAAe,EAA0B,EAA2C,CAC3F,GAAI,EAAM,QAAS,OAAO,EAAM,QAChC,EAAY,EAAK,8CAA8C,CAIjE,SAAS,EAAkB,EAAwB,EAAiB,EAAc,EAAgC,CAIhH,OAHe,EAAK,UAAU,SAAS,EAAS,OAA4B,CAAC,OAClE,KAAM,GAAU,EAAM,OAAS,EAAK,CAAS,IACxD,EAAY,EAAK,kBAAkB,IAAO,CACnC,IAGT,SAAS,EAA0B,EAAuB,EAAsB,CAC9E,GAAI,aAAiB,GAAgC,aAAiB,EAAiB,CACrF,EAAY,EAAK,EAAM,QAAQ,CAC/B,OAEF,MAAM,EAOR,SAAS,EAAuB,EAAoF,CAClH,IAAM,EAAU,EAAM,MAAM,CAC5B,GAAI,EAAQ,SAAS,OAAO,CAAE,CAC5B,IAAM,EAAQ,EACX,MAAM,OAAO,CACb,IAAK,GAAY,EAAQ,MAAM,CAAC,CAChC,OAAO,QAAQ,CACf,IAAK,GAAY,EAAqB,EAAQ,CAAC,CAElD,OADI,EAAM,SAAW,EAAG,OACjB,CAAE,QAAO,KAAM,EAAM,KAAM,GAAS,EAAK,KAAK,EAAE,MAAQ,GAAI,QAAS,GAAM,CAEpF,IAAM,EAAiB,EAAQ,QAAQ,OAAO,CAC9C,GAAI,IAAmB,GAAI,OAC3B,IAAM,EAAa,EAAQ,MAAM,EAAG,EAAe,CAAC,MAAM,CACpD,EAAa,EAAQ,MAAM,EAAiB,EAAE,CAAC,MAAM,CAC3D,GAAI,CAAC,GAAc,CAAC,EAAY,OAChC,IAAM,EAAQ,EACX,MAAM,MAAM,CACZ,OAAO,QAAQ,CACf,IAAK,GAAU,EAAqB,EAAM,CAAC,CAC1C,KAAM,SAAW,EACrB,MAAO,CAAE,QAAO,KAAM,EAAY,QAAS,GAAO,CAGpD,SAAgB,EAAsB,EAAkB,EAA0B,EAA8B,CAC9G,EAAG,gBAAgB,MAAO,CACxB,YAAa,wEACb,QAAS,MAAO,EAAM,IAAQ,CAC5B,IAAM,EAAO,EAAK,QAAQ,WAAW,EAAI,eAAe,cAAc,CAAC,CACjE,CAAE,KAAM,EAAa,QAAS,EAAgB,EAAK,CACnD,EAAQ,EAAY,MAAM,CAChC,GAAI,CAAC,EAAO,CACV,EAAY,EAAK,sCAAsC,CACvD,OAEF,IAAM,EAAa,EAAM,QAAQ,IAAI,CAC/B,CAAE,KAAM,EAAW,UAAW,EAAgB,IAAe,GAAK,EAAQ,EAAM,MAAM,EAAG,EAAW,CAAC,CACrG,EAAO,IAAe,GAAK,GAAK,EAAM,MAAM,EAAa,EAAE,CAAC,MAAM,CAElE,EAAU,EAAe,EAAO,EAAI,CACrC,MACA,EAAkB,EAAM,EAAS,EAAW,EAAI,CAErD,GAAI,CACF,IAAM,EAAmB,EAAyB,EAAI,eAAgB,UAAU,CAC1E,EAAc,EAAqB,EAAI,MAAM,CAC7C,EAAY,EAChB,CAAE,KAAM,EAAW,SAAQ,OAAM,CACjC,EACA,EAAO,OAAS,IAAA,GACjB,CAoBD,EAAkB,EAAI,EAAK,EAAM,EAAM,MAnBlB,EACnB,EAAK,aACL,EACA,CACE,MAAO,EAAU,MACjB,KAAM,EAAU,MAAQ,GACxB,IAAK,EAAU,KAAO,EACtB,WAAY,OACZ,gBAAiB,EAAI,eAAe,cAAc,CAClD,GAAI,EAAU,MAAQ,CAAE,MAAO,EAAU,MAAO,CAAG,EAAE,CACrD,GAAI,EAAU,QAAU,CAAE,QAAS,EAAU,QAAS,CAAG,EAAE,CAC3D,GAAI,EACA,CAAE,kBAAmB,EAAiB,YAAa,aAAc,EAAiB,OAAQ,CAC1F,EAAE,CACN,gBAAiB,EAAwB,EAAI,cAAc,CAC3D,GAAI,EAAc,CAAE,cAAa,CAAG,EAAE,CACvC,CACD,EAAK,YAAY,CAClB,CAC6C,OACvC,EAAO,CACd,EAA0B,EAAK,EAAM,GAG1C,CAAC,CAEF,EAAG,gBAAgB,WAAY,CAC7B,YAAa,+EACb,QAAS,MAAO,EAAM,IAAQ,CAC5B,IAAM,EAAO,EAAK,QAAQ,WAAW,EAAI,eAAe,cAAc,CAAC,CACjE,CAAE,KAAM,EAAa,QAAS,EAAgB,EAAK,CACnD,EAAU,EAAe,EAAO,EAAI,CAC1C,GAAI,CAAC,EAAS,OAEd,IAAM,EAAS,EAAuB,EAAY,CAClD,GAAI,CAAC,EAAQ,CACX,EAAY,EAAK,oDAAoD,CACrE,OAEF,IAAK,IAAM,KAAQ,EAAO,MACxB,GAAI,CAAC,EAAkB,EAAM,EAAS,EAAK,KAAM,EAAI,CAAE,OAEzD,GAAI,CAAC,EAAO,MAAM,KAAM,GAAS,EAAK,KAAK,EAAI,CAAC,EAAO,KAAM,CAC3D,EAAY,EAAK,qCAAqC,CACtD,OAGF,GAAI,CACF,IAAM,EAAmB,EAAyB,EAAI,eAAgB,UAAU,CAC1E,EAAc,EAAqB,EAAI,MAAM,CAC7C,EAAQ,EAAO,MAAM,IAAK,GAC9B,EACE,CAAE,KAAM,EAAK,KAAM,OAAQ,EAAK,OAAQ,KAAM,EAAK,MAAQ,EAAO,KAAM,CACxE,EACA,EAAO,OAAS,IAAA,GACjB,CACF,CAiBD,EAAkB,EAAI,EAAK,EAAM,EAAM,MAhBlB,EACnB,EAAK,aACL,EACA,CACE,QACA,IAAK,EACL,WAAY,OACZ,gBAAiB,EAAI,eAAe,cAAc,CAClD,GAAI,EACA,CAAE,kBAAmB,EAAiB,YAAa,aAAc,EAAiB,OAAQ,CAC1F,EAAE,CACN,gBAAiB,EAAwB,EAAI,cAAc,CAC3D,GAAI,EAAc,CAAE,cAAa,CAAG,EAAE,CACvC,CACD,EAAK,YAAY,CAClB,CAC6C,OACvC,EAAO,CACd,EAA0B,EAAK,EAAM,GAG1C,CAAC,CAEF,EAAG,gBAAgB,mBAAoB,CACrC,YAAa,4BACb,QAAS,MAAO,EAAO,IAAQ,CAC7B,EACE,EACA,EAAkB,CAAE,IAAK,EAAI,IAAK,WAAY,OAAQ,CAAE,CAAE,UAAW,EAAK,UAAW,OAAQ,EAAK,OAAQ,CAAC,CAC5G,EAEJ,CAAC,CAEF,EAAG,gBAAgB,iBAAkB,CACnC,YAAa,oDACb,QAAS,MAAO,EAAM,IAAQ,CAC5B,IAAM,EAAO,EAAK,QAAQ,WAAW,EAAI,eAAe,cAAc,CAAC,CACjE,EAAK,EAAK,MAAM,CACtB,GAAI,CAAC,EAAI,CACP,EAAc,EAAI,EAAoB,EAAK,MAAM,CAAC,CAAC,CACnD,OAEF,GAAI,CACF,EAAK,WAAW,KAAK,EAAoB,EAAM,EAAG,CAAC,CAOnD,EAAW,EAAK,sBAAsB,EAAG,6DAA6D,OAC/F,EAAO,CAKd,EAAY,EAAK,aAAiB,MAAQ,EAAM,QAAU,mBAAmB,EAAG,IAAI,GAGzF,CAAC,CAeJ,SAAS,EAAoB,EAA0C,CACrE,IAAM,EAAY,EAAK,OAAQ,GAAQ,EAAI,SAAW,WAAa,EAAI,SAAW,UAAU,CAG5F,OAFI,EAAU,SAAW,EAAU,gCAE5B,CACL,qBACA,GAHY,EAAU,IAAK,GAAQ,KAAK,EAAI,QAAQ,EAAI,OAAS,KAAK,EAAI,OAAO,GAAK,KAG9E,CACR,GACA,kHACD,CAAC,KAAK;EAAK"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawnRequestMapping.cjs","names":[],"sources":["../../../src/commands/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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawnRequestMapping.mjs","names":[],"sources":["../../../src/commands/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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`../../_virtual/_rolldown/runtime.cjs`);require(`../../services/intercom/supervisorControlChannel.cjs`),require(`../../shared/paths.cjs`);const t=require(`../../adapters/asyncJobTracker.cjs`);require(`../../services/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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagentLaunch.cjs","names":["TERMINAL_ASYNC_JOB_STATES"],"sources":["../../../src/commands/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';\nimport type { ExtensionConfig } from '../../extensions/config.ts';\nimport type {\n ISpawnPlanner,\n SpawnPlanChildOutcome,\n SpawnPlanResult,\n SpawnPlanTaskInput,\n} from '../../extensions/spawnPlan.ts';\nimport type { AgentScope } from '../../services/agents/types.ts';\nimport { requestAsyncInterrupt, requestAsyncStop } from '../../services/intercom/supervisorControlChannel.ts';\nimport {\n type ITrackedAsyncJobs,\n TERMINAL_ASYNC_JOB_STATES,\n type TrackedAsyncJob,\n} from '../../services/runs/background/asyncJobTracker.ts';\nimport type { AvailableModelInfo, ParentModel } from '../../services/runs/shared/modelFallback.ts';\nimport { currentRunsDir } from '../../shared/paths.ts';\nimport type { IPollScheduler } from '../../shared/pollScheduler.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":"0TAuGA,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"}
@@ -0,0 +1,2 @@
1
+ import{init_supervisorControlChannel as e}from"../../services/intercom/supervisorControlChannel.mjs";import{init_paths as t}from"../../shared/paths.mjs";import{TERMINAL_ASYNC_JOB_STATES as n}from"../../adapters/asyncJobTracker.mjs";import{init_asyncJobTracker as r}from"../../services/runs/background/asyncJobTracker.mjs";e(),r(),t();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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagentLaunch.mjs","names":[],"sources":["../../../src/commands/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';\nimport type { ExtensionConfig } from '../../extensions/config.ts';\nimport type {\n ISpawnPlanner,\n SpawnPlanChildOutcome,\n SpawnPlanResult,\n SpawnPlanTaskInput,\n} from '../../extensions/spawnPlan.ts';\nimport type { AgentScope } from '../../services/agents/types.ts';\nimport { requestAsyncInterrupt, requestAsyncStop } from '../../services/intercom/supervisorControlChannel.ts';\nimport {\n type ITrackedAsyncJobs,\n TERMINAL_ASYNC_JOB_STATES,\n type TrackedAsyncJob,\n} from '../../services/runs/background/asyncJobTracker.ts';\nimport type { AvailableModelInfo, ParentModel } from '../../services/runs/shared/modelFallback.ts';\nimport { currentRunsDir } from '../../shared/paths.ts';\nimport type { IPollScheduler } from '../../shared/pollScheduler.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":"qUAiE8G,IAKnD,IAEJ,CA+BvD,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 +1 @@
1
- {"version":3,"file":"globalBridge.cjs","names":[],"sources":["../../src/container/globalBridge.ts"],"sourcesContent":["/**\n * GlobalStateBridge - the only module permitted to touch `globalThis`.\n *\n * DESIGN PATTERNS:\n * - Injectable via inversify for IoC, and also constructible standalone because\n * the public API entry points run for callers who hold no container\n * - Stateless accessor: every read goes straight to `globalThis` and nothing is\n * memoized, so separate bridge instances always observe the same state\n * - Protocol-agnostic: slot validation is supplied by the protocol module that\n * owns the contract, so this class never learns a protocol's shape\n *\n * CODING STANDARDS:\n * - Implements IGlobalStateBridge\n * - Every key is a module constant; no key literal appears at a call site\n *\n * AVOID:\n * - Reaching for `globalThis` anywhere else in this package\n * - Reusing the legacy `__piSubagentRuntimeCleanup` key: doom-pi-subagents can\n * be loaded alongside this package during cutover, and a shared key would make\n * the two bundles tear each other down\n */\n\nimport { injectable } from 'inversify';\nimport type { Container } from 'inversify';\nimport type { IGlobalStateBridge } from '../types.ts';\n\nconst RUNTIME_CLEANUP_KEY = '__doomTeamRuntimeCleanup';\n\n/**\n * Externally significant: `Symbol.for` matches on the string itself, not on this\n * module's identity, so two bundles of this package agree on the slot only while\n * they agree on this literal. Changing it is a breaking change to that handshake.\n */\nconst DEFAULT_CONTAINER_TOKEN = 'DoomTeam:container.default.v1';\nconst DEFAULT_CONTAINER_KEY = Symbol.for(DEFAULT_CONTAINER_TOKEN);\n\ntype GlobalStore = Record<PropertyKey, unknown>;\n\n@injectable()\nexport class GlobalStateBridge implements IGlobalStateBridge {\n private get store(): GlobalStore {\n return globalThis as unknown as GlobalStore;\n }\n\n takeRuntimeCleanup(): (() => void) | undefined {\n const previous = this.store[RUNTIME_CLEANUP_KEY];\n if (typeof previous !== 'function') return undefined;\n delete this.store[RUNTIME_CLEANUP_KEY];\n return previous as () => void;\n }\n\n setRuntimeCleanup(cleanup: () => void): void {\n this.store[RUNTIME_CLEANUP_KEY] = cleanup;\n }\n\n getDefaultContainer(): Container | undefined {\n const existing = this.store[DEFAULT_CONTAINER_KEY];\n return existing === undefined ? undefined : (existing as Container);\n }\n\n setDefaultContainer(container: Container): void {\n this.store[DEFAULT_CONTAINER_KEY] = container;\n }\n\n clearDefaultContainer(): void {\n delete this.store[DEFAULT_CONTAINER_KEY];\n }\n\n protocolSlot<T>(key: string, create: () => T, adopt: (existing: unknown) => T): T {\n const slot = Symbol.for(key);\n const existing = this.store[slot];\n if (existing === undefined) {\n const created = create();\n this.store[slot] = created;\n return created;\n }\n return adopt(existing);\n }\n\n peekProtocolSlot(key: string): unknown {\n return this.store[Symbol.for(key)];\n }\n\n claimProtocolSlot(key: string, value: unknown): void {\n const slot = Symbol.for(key);\n if (this.store[slot] === undefined) this.store[slot] = value;\n }\n\n clearProtocolSlot(key: string): void {\n delete this.store[Symbol.for(key)];\n }\n}\n"],"mappings":"0JA0BA,MAAM,EAAsB,2BAQtB,EAAwB,OAAO,IAAI,gCAAwB,CAK1D,IAAA,EAAA,KAAsD,CAC3D,IAAY,OAAqB,CAC/B,OAAO,WAGT,oBAA+C,CAC7C,IAAM,EAAW,KAAK,MAAM,GACxB,UAAO,GAAa,WAExB,OADA,OAAO,KAAK,MAAM,GACX,EAGT,kBAAkB,EAA2B,CAC3C,KAAK,MAAM,GAAuB,EAGpC,qBAA6C,CAC3C,IAAM,EAAW,KAAK,MAAM,GAC5B,OAAO,IAAa,IAAA,GAAY,IAAA,GAAa,EAG/C,oBAAoB,EAA4B,CAC9C,KAAK,MAAM,GAAyB,EAGtC,uBAA8B,CAC5B,OAAO,KAAK,MAAM,GAGpB,aAAgB,EAAa,EAAiB,EAAoC,CAChF,IAAM,EAAO,OAAO,IAAI,EAAI,CACtB,EAAW,KAAK,MAAM,GAC5B,GAAI,IAAa,IAAA,GAAW,CAC1B,IAAM,EAAU,GAAQ,CAExB,MADA,MAAK,MAAM,GAAQ,EACZ,EAET,OAAO,EAAM,EAAS,CAGxB,iBAAiB,EAAsB,CACrC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,EAGnC,kBAAkB,EAAa,EAAsB,CACnD,IAAM,EAAO,OAAO,IAAI,EAAI,CACxB,KAAK,MAAM,KAAU,IAAA,KAAW,KAAK,MAAM,GAAQ,GAGzD,kBAAkB,EAAmB,CACnC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,sCAnDxB,CAAA,CAAA,EAAA"}
1
+ {"version":3,"file":"globalBridge.cjs","names":[],"sources":["../../src/container/globalBridge.ts"],"sourcesContent":["/**\n * GlobalStateBridge - the only module permitted to touch `globalThis`.\n *\n * DESIGN PATTERNS:\n * - Injectable via inversify for IoC, and also constructible standalone because\n * the public API entry points run for callers who hold no container\n * - Stateless accessor: every read goes straight to `globalThis` and nothing is\n * memoized, so separate bridge instances always observe the same state\n * - Protocol-agnostic: slot validation is supplied by the protocol module that\n * owns the contract, so this class never learns a protocol's shape\n *\n * CODING STANDARDS:\n * - Implements IGlobalStateBridge\n * - Every key is a module constant; no key literal appears at a call site\n *\n * AVOID:\n * - Reaching for `globalThis` anywhere else in this package\n * - Reusing the legacy `__piSubagentRuntimeCleanup` key: doom-pi-subagents can\n * be loaded alongside this package during cutover, and a shared key would make\n * the two bundles tear each other down\n */\n\nimport type { Container } from 'inversify';\nimport { injectable } from 'inversify';\nimport type { IGlobalStateBridge } from '../types/index.ts';\n\nconst RUNTIME_CLEANUP_KEY = '__doomTeamRuntimeCleanup';\n\n/**\n * Externally significant: `Symbol.for` matches on the string itself, not on this\n * module's identity, so two bundles of this package agree on the slot only while\n * they agree on this literal. Changing it is a breaking change to that handshake.\n */\nconst DEFAULT_CONTAINER_TOKEN = 'DoomTeam:container.default.v1';\nconst DEFAULT_CONTAINER_KEY = Symbol.for(DEFAULT_CONTAINER_TOKEN);\n\ntype GlobalStore = Record<PropertyKey, unknown>;\n\n@injectable()\nexport class GlobalStateBridge implements IGlobalStateBridge {\n private get store(): GlobalStore {\n return globalThis as unknown as GlobalStore;\n }\n\n takeRuntimeCleanup(): (() => void) | undefined {\n const previous = this.store[RUNTIME_CLEANUP_KEY];\n if (typeof previous !== 'function') return undefined;\n delete this.store[RUNTIME_CLEANUP_KEY];\n return previous as () => void;\n }\n\n setRuntimeCleanup(cleanup: () => void): void {\n this.store[RUNTIME_CLEANUP_KEY] = cleanup;\n }\n\n getDefaultContainer(): Container | undefined {\n const existing = this.store[DEFAULT_CONTAINER_KEY];\n return existing === undefined ? undefined : (existing as Container);\n }\n\n setDefaultContainer(container: Container): void {\n this.store[DEFAULT_CONTAINER_KEY] = container;\n }\n\n clearDefaultContainer(): void {\n delete this.store[DEFAULT_CONTAINER_KEY];\n }\n\n protocolSlot<T>(key: string, create: () => T, adopt: (existing: unknown) => T): T {\n const slot = Symbol.for(key);\n const existing = this.store[slot];\n if (existing === undefined) {\n const created = create();\n this.store[slot] = created;\n return created;\n }\n return adopt(existing);\n }\n\n peekProtocolSlot(key: string): unknown {\n return this.store[Symbol.for(key)];\n }\n\n claimProtocolSlot(key: string, value: unknown): void {\n const slot = Symbol.for(key);\n if (this.store[slot] === undefined) this.store[slot] = value;\n }\n\n clearProtocolSlot(key: string): void {\n delete this.store[Symbol.for(key)];\n }\n}\n"],"mappings":"0JA0BA,MAAM,EAAsB,2BAQtB,EAAwB,OAAO,IAAI,gCAAwB,CAK1D,IAAA,EAAA,KAAsD,CAC3D,IAAY,OAAqB,CAC/B,OAAO,WAGT,oBAA+C,CAC7C,IAAM,EAAW,KAAK,MAAM,GACxB,UAAO,GAAa,WAExB,OADA,OAAO,KAAK,MAAM,GACX,EAGT,kBAAkB,EAA2B,CAC3C,KAAK,MAAM,GAAuB,EAGpC,qBAA6C,CAC3C,IAAM,EAAW,KAAK,MAAM,GAC5B,OAAO,IAAa,IAAA,GAAY,IAAA,GAAa,EAG/C,oBAAoB,EAA4B,CAC9C,KAAK,MAAM,GAAyB,EAGtC,uBAA8B,CAC5B,OAAO,KAAK,MAAM,GAGpB,aAAgB,EAAa,EAAiB,EAAoC,CAChF,IAAM,EAAO,OAAO,IAAI,EAAI,CACtB,EAAW,KAAK,MAAM,GAC5B,GAAI,IAAa,IAAA,GAAW,CAC1B,IAAM,EAAU,GAAQ,CAExB,MADA,MAAK,MAAM,GAAQ,EACZ,EAET,OAAO,EAAM,EAAS,CAGxB,iBAAiB,EAAsB,CACrC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,EAGnC,kBAAkB,EAAa,EAAsB,CACnD,IAAM,EAAO,OAAO,IAAI,EAAI,CACxB,KAAK,MAAM,KAAU,IAAA,KAAW,KAAK,MAAM,GAAQ,GAGzD,kBAAkB,EAAmB,CACnC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,sCAnDxB,CAAA,CAAA,EAAA"}
@@ -1,4 +1,4 @@
1
- import { IGlobalStateBridge } from "../types.cjs";
1
+ import { IGlobalStateBridge } from "../types/index.cjs";
2
2
  import { Container } from "inversify";
3
3
 
4
4
  //#region src/container/globalBridge.d.ts
@@ -1,4 +1,4 @@
1
- import { IGlobalStateBridge } from "../types.mjs";
1
+ import { IGlobalStateBridge } from "../types/index.mjs";
2
2
  import { Container } from "inversify";
3
3
 
4
4
  //#region src/container/globalBridge.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"globalBridge.mjs","names":[],"sources":["../../src/container/globalBridge.ts"],"sourcesContent":["/**\n * GlobalStateBridge - the only module permitted to touch `globalThis`.\n *\n * DESIGN PATTERNS:\n * - Injectable via inversify for IoC, and also constructible standalone because\n * the public API entry points run for callers who hold no container\n * - Stateless accessor: every read goes straight to `globalThis` and nothing is\n * memoized, so separate bridge instances always observe the same state\n * - Protocol-agnostic: slot validation is supplied by the protocol module that\n * owns the contract, so this class never learns a protocol's shape\n *\n * CODING STANDARDS:\n * - Implements IGlobalStateBridge\n * - Every key is a module constant; no key literal appears at a call site\n *\n * AVOID:\n * - Reaching for `globalThis` anywhere else in this package\n * - Reusing the legacy `__piSubagentRuntimeCleanup` key: doom-pi-subagents can\n * be loaded alongside this package during cutover, and a shared key would make\n * the two bundles tear each other down\n */\n\nimport { injectable } from 'inversify';\nimport type { Container } from 'inversify';\nimport type { IGlobalStateBridge } from '../types.ts';\n\nconst RUNTIME_CLEANUP_KEY = '__doomTeamRuntimeCleanup';\n\n/**\n * Externally significant: `Symbol.for` matches on the string itself, not on this\n * module's identity, so two bundles of this package agree on the slot only while\n * they agree on this literal. Changing it is a breaking change to that handshake.\n */\nconst DEFAULT_CONTAINER_TOKEN = 'DoomTeam:container.default.v1';\nconst DEFAULT_CONTAINER_KEY = Symbol.for(DEFAULT_CONTAINER_TOKEN);\n\ntype GlobalStore = Record<PropertyKey, unknown>;\n\n@injectable()\nexport class GlobalStateBridge implements IGlobalStateBridge {\n private get store(): GlobalStore {\n return globalThis as unknown as GlobalStore;\n }\n\n takeRuntimeCleanup(): (() => void) | undefined {\n const previous = this.store[RUNTIME_CLEANUP_KEY];\n if (typeof previous !== 'function') return undefined;\n delete this.store[RUNTIME_CLEANUP_KEY];\n return previous as () => void;\n }\n\n setRuntimeCleanup(cleanup: () => void): void {\n this.store[RUNTIME_CLEANUP_KEY] = cleanup;\n }\n\n getDefaultContainer(): Container | undefined {\n const existing = this.store[DEFAULT_CONTAINER_KEY];\n return existing === undefined ? undefined : (existing as Container);\n }\n\n setDefaultContainer(container: Container): void {\n this.store[DEFAULT_CONTAINER_KEY] = container;\n }\n\n clearDefaultContainer(): void {\n delete this.store[DEFAULT_CONTAINER_KEY];\n }\n\n protocolSlot<T>(key: string, create: () => T, adopt: (existing: unknown) => T): T {\n const slot = Symbol.for(key);\n const existing = this.store[slot];\n if (existing === undefined) {\n const created = create();\n this.store[slot] = created;\n return created;\n }\n return adopt(existing);\n }\n\n peekProtocolSlot(key: string): unknown {\n return this.store[Symbol.for(key)];\n }\n\n claimProtocolSlot(key: string, value: unknown): void {\n const slot = Symbol.for(key);\n if (this.store[slot] === undefined) this.store[slot] = value;\n }\n\n clearProtocolSlot(key: string): void {\n delete this.store[Symbol.for(key)];\n }\n}\n"],"mappings":"2OA0BM,EAAsB,2BAQtB,EAAwB,OAAO,IAAI,gCAAwB,GAK1D,KAAsD,CAC3D,IAAY,OAAqB,CAC/B,OAAO,WAGT,oBAA+C,CAC7C,IAAM,EAAW,KAAK,MAAM,GACxB,UAAO,GAAa,WAExB,OADA,OAAO,KAAK,MAAM,GACX,EAGT,kBAAkB,EAA2B,CAC3C,KAAK,MAAM,GAAuB,EAGpC,qBAA6C,CAC3C,IAAM,EAAW,KAAK,MAAM,GAC5B,OAAO,IAAa,IAAA,GAAY,IAAA,GAAa,EAG/C,oBAAoB,EAA4B,CAC9C,KAAK,MAAM,GAAyB,EAGtC,uBAA8B,CAC5B,OAAO,KAAK,MAAM,GAGpB,aAAgB,EAAa,EAAiB,EAAoC,CAChF,IAAM,EAAO,OAAO,IAAI,EAAI,CACtB,EAAW,KAAK,MAAM,GAC5B,GAAI,IAAa,IAAA,GAAW,CAC1B,IAAM,EAAU,GAAQ,CAExB,MADA,MAAK,MAAM,GAAQ,EACZ,EAET,OAAO,EAAM,EAAS,CAGxB,iBAAiB,EAAsB,CACrC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,EAGnC,kBAAkB,EAAa,EAAsB,CACnD,IAAM,EAAO,OAAO,IAAI,EAAI,CACxB,KAAK,MAAM,KAAU,IAAA,KAAW,KAAK,MAAM,GAAQ,GAGzD,kBAAkB,EAAmB,CACnC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,SAnDpC,GAAY,CAAA,CAAA,EAAA"}
1
+ {"version":3,"file":"globalBridge.mjs","names":[],"sources":["../../src/container/globalBridge.ts"],"sourcesContent":["/**\n * GlobalStateBridge - the only module permitted to touch `globalThis`.\n *\n * DESIGN PATTERNS:\n * - Injectable via inversify for IoC, and also constructible standalone because\n * the public API entry points run for callers who hold no container\n * - Stateless accessor: every read goes straight to `globalThis` and nothing is\n * memoized, so separate bridge instances always observe the same state\n * - Protocol-agnostic: slot validation is supplied by the protocol module that\n * owns the contract, so this class never learns a protocol's shape\n *\n * CODING STANDARDS:\n * - Implements IGlobalStateBridge\n * - Every key is a module constant; no key literal appears at a call site\n *\n * AVOID:\n * - Reaching for `globalThis` anywhere else in this package\n * - Reusing the legacy `__piSubagentRuntimeCleanup` key: doom-pi-subagents can\n * be loaded alongside this package during cutover, and a shared key would make\n * the two bundles tear each other down\n */\n\nimport type { Container } from 'inversify';\nimport { injectable } from 'inversify';\nimport type { IGlobalStateBridge } from '../types/index.ts';\n\nconst RUNTIME_CLEANUP_KEY = '__doomTeamRuntimeCleanup';\n\n/**\n * Externally significant: `Symbol.for` matches on the string itself, not on this\n * module's identity, so two bundles of this package agree on the slot only while\n * they agree on this literal. Changing it is a breaking change to that handshake.\n */\nconst DEFAULT_CONTAINER_TOKEN = 'DoomTeam:container.default.v1';\nconst DEFAULT_CONTAINER_KEY = Symbol.for(DEFAULT_CONTAINER_TOKEN);\n\ntype GlobalStore = Record<PropertyKey, unknown>;\n\n@injectable()\nexport class GlobalStateBridge implements IGlobalStateBridge {\n private get store(): GlobalStore {\n return globalThis as unknown as GlobalStore;\n }\n\n takeRuntimeCleanup(): (() => void) | undefined {\n const previous = this.store[RUNTIME_CLEANUP_KEY];\n if (typeof previous !== 'function') return undefined;\n delete this.store[RUNTIME_CLEANUP_KEY];\n return previous as () => void;\n }\n\n setRuntimeCleanup(cleanup: () => void): void {\n this.store[RUNTIME_CLEANUP_KEY] = cleanup;\n }\n\n getDefaultContainer(): Container | undefined {\n const existing = this.store[DEFAULT_CONTAINER_KEY];\n return existing === undefined ? undefined : (existing as Container);\n }\n\n setDefaultContainer(container: Container): void {\n this.store[DEFAULT_CONTAINER_KEY] = container;\n }\n\n clearDefaultContainer(): void {\n delete this.store[DEFAULT_CONTAINER_KEY];\n }\n\n protocolSlot<T>(key: string, create: () => T, adopt: (existing: unknown) => T): T {\n const slot = Symbol.for(key);\n const existing = this.store[slot];\n if (existing === undefined) {\n const created = create();\n this.store[slot] = created;\n return created;\n }\n return adopt(existing);\n }\n\n peekProtocolSlot(key: string): unknown {\n return this.store[Symbol.for(key)];\n }\n\n claimProtocolSlot(key: string, value: unknown): void {\n const slot = Symbol.for(key);\n if (this.store[slot] === undefined) this.store[slot] = value;\n }\n\n clearProtocolSlot(key: string): void {\n delete this.store[Symbol.for(key)];\n }\n}\n"],"mappings":"2OA0BM,EAAsB,2BAQtB,EAAwB,OAAO,IAAI,gCAAwB,GAK1D,KAAsD,CAC3D,IAAY,OAAqB,CAC/B,OAAO,WAGT,oBAA+C,CAC7C,IAAM,EAAW,KAAK,MAAM,GACxB,UAAO,GAAa,WAExB,OADA,OAAO,KAAK,MAAM,GACX,EAGT,kBAAkB,EAA2B,CAC3C,KAAK,MAAM,GAAuB,EAGpC,qBAA6C,CAC3C,IAAM,EAAW,KAAK,MAAM,GAC5B,OAAO,IAAa,IAAA,GAAY,IAAA,GAAa,EAG/C,oBAAoB,EAA4B,CAC9C,KAAK,MAAM,GAAyB,EAGtC,uBAA8B,CAC5B,OAAO,KAAK,MAAM,GAGpB,aAAgB,EAAa,EAAiB,EAAoC,CAChF,IAAM,EAAO,OAAO,IAAI,EAAI,CACtB,EAAW,KAAK,MAAM,GAC5B,GAAI,IAAa,IAAA,GAAW,CAC1B,IAAM,EAAU,GAAQ,CAExB,MADA,MAAK,MAAM,GAAQ,EACZ,EAET,OAAO,EAAM,EAAS,CAGxB,iBAAiB,EAAsB,CACrC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,EAGnC,kBAAkB,EAAa,EAAsB,CACnD,IAAM,EAAO,OAAO,IAAI,EAAI,CACxB,KAAK,MAAM,KAAU,IAAA,KAAW,KAAK,MAAM,GAAQ,GAGzD,kBAAkB,EAAmB,CACnC,OAAO,KAAK,MAAM,OAAO,IAAI,EAAI,SAnDpC,GAAY,CAAA,CAAA,EAAA"}
@@ -1,2 +1,2 @@
1
- require(`../_virtual/_rolldown/runtime.cjs`),require(`./types.cjs`);const e=require(`./modules/agents.cjs`);require(`./globalBridge.cjs`);const t=require(`./modules/core.cjs`),n=require(`./modules/extensions.cjs`),r=require(`./modules/intercom.cjs`),i=require(`./modules/runs.cjs`);let a=require(`inversify`);require(`reflect-metadata/lite`);function o(){let o=new a.Container;return o.load(t.createCoreModule()),o.load(e.createAgentsModule()),o.load(i.createRunsModule()),o.load(n.createExtensionsModule()),o.load(r.createIntercomModule()),o}function s(){let n=new a.Container;return n.load(t.createCoreModule()),n.load(e.createAgentsModule()),n.load(i.createRunsModule()),n.load(r.createIntercomModule()),n}exports.createExtensionContainer=o,exports.createPromptRuntimeContainer=s;
1
+ require(`../_virtual/_rolldown/runtime.cjs`),require(`./globalBridge.cjs`),require(`./types.cjs`);const e=require(`./modules/agents.cjs`),t=require(`./modules/core.cjs`),n=require(`./modules/extensions.cjs`),r=require(`./modules/intercom.cjs`),i=require(`./modules/runs.cjs`);let a=require(`inversify`);require(`reflect-metadata/lite`);function o(o){let s=new a.Container;return s.load(t.createCoreModule()),s.load(e.createAgentsModule()),s.load(i.createRunsModule()),s.load(n.createExtensionsModule(o)),s.load(r.createIntercomModule()),s}function s(){let n=new a.Container;return n.load(t.createCoreModule()),n.load(e.createAgentsModule()),n.load(i.createRunsModule()),n.load(r.createIntercomModule()),n}exports.createExtensionContainer=o,exports.createPromptRuntimeContainer=s;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Container","createCoreModule","createAgentsModule","createRunsModule","createExtensionsModule","createIntercomModule"],"sources":["../../src/container/index.ts"],"sourcesContent":["/**\n * Composition roots for the two processes this package actually runs in.\n *\n * THERE IS NO SEPARATE \"RUNNER\" PROCESS:\n * An earlier version of this file documented a third root for \"the detached\n * background runner process.\" That process does not exist. Verified against\n * the actual spawn path, twice: `getPiSpawnCommand()` resolves the literal\n * `pi` binary, `asyncExecution.ts`'s `AsyncSubagentSpawner` spawns it\n * directly from the PARENT process, and `buildPiArgs` passes the runtime\n * entry (`subagentPromptRuntimeEntry.cts`) as a `--extension` to that same\n * invocation, which `pi` loads in-process. There are exactly two roles:\n * - The parent extension process, which supervises every run it spawns\n * (`runs/background/**`'s spawn/poll/watch/schedule/reconcile/notify\n * services all run here, since they read and act on state from OUTSIDE the\n * child they describe)\n * - The spawned `pi` child, with this package's prompt-runtime extension\n * loaded into it (`createPromptRuntimeContainer()`), which is also where\n * `RunnerBootstrap`/`RunnerExecution`/`RunnerReporting` run - see\n * `runnerBootstrap.ts`'s own header: \"the child-side half of the spawn\n * handshake\"\n * `runs/background/**` is one module either way (`createRunsModule()`); a\n * given root only ever resolves the subset of its tokens the entry point\n * inside that process actually asks for.\n *\n * DESIGN PATTERNS:\n * - One root per process role. The parent extension and the in-child prompt\n * runtime each build their own container from the domain modules that\n * role actually needs\n * - Module partitioning is the bundle guard: the prompt-runtime root must\n * never load extension, slash, or TUI modules, which keeps the parent's UI\n * surface out of the child bundle\n *\n * AVOID:\n * - A single shared root that loads every module\n * - Resolving services at module scope; resolve inside the entry point\n * - Reintroducing a third \"runner\" root. If a future service turns out to\n * need a process role that is neither the parent nor the spawned child,\n * that is a new, real finding to bring back to this file - not a reason to\n * restore the one that was already checked and found not to exist\n */\n\nimport 'reflect-metadata/lite';\nimport { Container } from 'inversify';\nimport { createAgentsModule } from './modules/agents.ts';\nimport { createCoreModule } from './modules/core.ts';\nimport { createExtensionsModule } from './modules/extensions.ts';\nimport { createIntercomModule } from './modules/intercom.ts';\nimport { createRunsModule } from './modules/runs.ts';\n\n/**\n * Container for the parent Pi extension process.\n *\n * Loads `createRunsModule()` because every service that supervises a run\n * from outside the child it describes - `AsyncSubagentSpawner`,\n * `PollScheduler`, `ControlChannelWatcher`, `ScheduledRunScheduler`,\n * `ResultWatcher`, `StaleRunReconciler`, `CompletionNotifier`, and the rest -\n * runs in this process, not a separate one (see the module doc). Loads\n * `createExtensionsModule()` for `SpawnPlanner`, the top-level `subagent`\n * tool's own service; `SpawnPlanner` itself depends on `AsyncSubagentSpawner`\n * (from the runs module) and `IAgentDiscoveryService` (from the agents\n * module already loaded here), so all three modules travel together. Loads\n * `createIntercomModule()` for the root and child intercom runtime.\n */\nexport function createExtensionContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createExtensionsModule());\n container.load(createIntercomModule());\n return container;\n}\n\n/**\n * Container for the in-child prompt runtime, including fanout children.\n *\n * Fanout children pick their own targets by name, so they do resolve discovery.\n *\n * Loads `createRunsModule()` too: `subagentPromptRuntime.ts` is this\n * process's own composition root (see that module's `registerDeliverableGuardCheck`\n * doc for why it is the one file that resolves this container - filed under\n * `src/extensions/**`, the boundary reserved for composition roots, not under\n * `src/runs/**`), and it needs `RunnerBootstrap`/`RunnerExecution`/\n * `DeliverableGuard` from the runs module to bootstrap the run and fold a\n * deliverable check into `status.json`.\n * Loads `createIntercomModule()` so each child process resolves one shared\n * `NativeTeamChannelService` instance for registration and delivery state.\n */\nexport function createPromptRuntimeContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createIntercomModule());\n return container;\n}\n\nexport { createAgentsModule } from './modules/agents.ts';\nexport { createCoreModule } from './modules/core.ts';\nexport { GlobalStateBridge } from './globalBridge.ts';\nexport { DOOM_TEAM_TYPES } from './types.ts';\n"],"mappings":"sVA+DA,SAAgB,GAAsC,CACpD,IAAM,EAAY,IAAIA,EAAAA,UAMtB,OALA,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,oBAAoB,CAAC,CACpC,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,wBAAwB,CAAC,CACxC,EAAU,KAAKC,EAAAA,sBAAsB,CAAC,CAC/B,EAkBT,SAAgB,GAA0C,CACxD,IAAM,EAAY,IAAIL,EAAAA,UAKtB,OAJA,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,oBAAoB,CAAC,CACpC,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKE,EAAAA,sBAAsB,CAAC,CAC/B"}
1
+ {"version":3,"file":"index.cjs","names":["Container","createCoreModule","createAgentsModule","createRunsModule","createExtensionsModule","createIntercomModule"],"sources":["../../src/container/index.ts"],"sourcesContent":["/**\n * Composition roots for the two processes this package actually runs in.\n *\n * THERE IS NO SEPARATE \"RUNNER\" PROCESS:\n * An earlier version of this file documented a third root for \"the detached\n * background runner process.\" That process does not exist. Verified against\n * the actual spawn path, twice: `getPiSpawnCommand()` resolves the literal\n * `pi` binary, `asyncExecution.ts`'s `AsyncSubagentSpawner` spawns it\n * directly from the PARENT process, and `buildPiArgs` passes the runtime\n * entry (`subagentPromptRuntimeEntry.cts`) as a `--extension` to that same\n * invocation, which `pi` loads in-process. There are exactly two roles:\n * - The parent extension process, which supervises every run it spawns\n * (`runs/background/**`'s spawn/poll/watch/schedule/reconcile/notify\n * services all run here, since they read and act on state from OUTSIDE the\n * child they describe)\n * - The spawned `pi` child, with this package's prompt-runtime extension\n * loaded into it (`createPromptRuntimeContainer()`), which is also where\n * `RunnerBootstrap`/`RunnerExecution`/`RunnerReporting` run - see\n * `runnerBootstrap.ts`'s own header: \"the child-side half of the spawn\n * handshake\"\n * `runs/background/**` is one module either way (`createRunsModule()`); a\n * given root only ever resolves the subset of its tokens the entry point\n * inside that process actually asks for.\n *\n * DESIGN PATTERNS:\n * - One root per process role. The parent extension and the in-child prompt\n * runtime each build their own container from the domain modules that\n * role actually needs\n * - Module partitioning is the bundle guard: the prompt-runtime root must\n * never load extension, slash, or TUI modules, which keeps the parent's UI\n * surface out of the child bundle\n *\n * AVOID:\n * - A single shared root that loads every module\n * - Resolving services at module scope; resolve inside the entry point\n * - Reintroducing a third \"runner\" root. If a future service turns out to\n * need a process role that is neither the parent nor the spawned child,\n * that is a new, real finding to bring back to this file - not a reason to\n * restore the one that was already checked and found not to exist\n */\n\nimport 'reflect-metadata/lite';\nimport { Container } from 'inversify';\nimport type { ConcurrencyEventReporter } from '../services/runs/shared/runWithConcurrency.ts';\nimport { createAgentsModule } from './modules/agents.ts';\nimport { createCoreModule } from './modules/core.ts';\nimport { createExtensionsModule } from './modules/extensions.ts';\nimport { createIntercomModule } from './modules/intercom.ts';\nimport { createRunsModule } from './modules/runs.ts';\n\n/**\n * Container for the parent Pi extension process.\n *\n * Loads `createRunsModule()` because every service that supervises a run\n * from outside the child it describes - `AsyncSubagentSpawner`,\n * `PollScheduler`, `ControlChannelWatcher`, `ScheduledRunScheduler`,\n * `ResultWatcher`, `StaleRunReconciler`, `CompletionNotifier`, and the rest -\n * runs in this process, not a separate one (see the module doc). Loads\n * `createExtensionsModule()` for `SpawnPlanner`, the top-level `subagent`\n * tool's own service; `SpawnPlanner` itself depends on `AsyncSubagentSpawner`\n * (from the runs module) and `IAgentDiscoveryService` (from the agents\n * module already loaded here), so all three modules travel together. Loads\n * `createIntercomModule()` for the root and child intercom runtime.\n */\nexport function createExtensionContainer(reportConcurrencyEvent?: ConcurrencyEventReporter): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createExtensionsModule(reportConcurrencyEvent));\n container.load(createIntercomModule());\n return container;\n}\n\n/**\n * Container for the in-child prompt runtime, including fanout children.\n *\n * Fanout children pick their own targets by name, so they do resolve discovery.\n *\n * Loads `createRunsModule()` too: `subagentPromptRuntime.ts` is this\n * process's own composition root (see that module's `registerDeliverableGuardCheck`\n * doc for why it is the one file that resolves this container - filed under\n * `src/extensions/**`, the boundary reserved for composition roots, not under\n * `src/runs/**`), and it needs `RunnerBootstrap`/`RunnerExecution`/\n * `DeliverableGuard` from the runs module to bootstrap the run and fold a\n * deliverable check into `status.json`.\n * Loads `createIntercomModule()` so each child process resolves one shared\n * `NativeTeamChannelService` instance for registration and delivery state.\n */\nexport function createPromptRuntimeContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createIntercomModule());\n return container;\n}\n\nexport { GlobalStateBridge } from './globalBridge.ts';\nexport { createAgentsModule } from './modules/agents.ts';\nexport { createCoreModule } from './modules/core.ts';\nexport { DOOM_TEAM_TYPES } from './types.ts';\n"],"mappings":"gVAgEA,SAAgB,EAAyB,EAA8D,CACrG,IAAM,EAAY,IAAIA,EAAAA,UAMtB,OALA,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,oBAAoB,CAAC,CACpC,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,uBAAuB,EAAuB,CAAC,CAC9D,EAAU,KAAKC,EAAAA,sBAAsB,CAAC,CAC/B,EAkBT,SAAgB,GAA0C,CACxD,IAAM,EAAY,IAAIL,EAAAA,UAKtB,OAJA,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKC,EAAAA,oBAAoB,CAAC,CACpC,EAAU,KAAKC,EAAAA,kBAAkB,CAAC,CAClC,EAAU,KAAKE,EAAAA,sBAAsB,CAAC,CAC/B"}
@@ -1,3 +1,4 @@
1
+ import { ConcurrencyEventReporter } from "../services/runs/shared/runWithConcurrency.cjs";
1
2
  import { GlobalStateBridge } from "./globalBridge.cjs";
2
3
  import { DOOM_TEAM_TYPES } from "./types.cjs";
3
4
  import { Container } from "inversify";
@@ -16,7 +17,7 @@ import { Container } from "inversify";
16
17
  * module already loaded here), so all three modules travel together. Loads
17
18
  * `createIntercomModule()` for the root and child intercom runtime.
18
19
  */
19
- declare function createExtensionContainer(): Container;
20
+ declare function createExtensionContainer(reportConcurrencyEvent?: ConcurrencyEventReporter): Container;
20
21
  /**
21
22
  * Container for the in-child prompt runtime, including fanout children.
22
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;iBA+DgB,wBAAA,CAAA,GAA4B,SAAA;;;;;;;;;;;;;;;;iBAyB5B,4BAAA,CAAA,GAAgC,SAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;iBAgEgB,wBAAA,CAAyB,sBAAA,GAAyB,wBAAA,GAA2B,SAAA;;;;;;;;;;;;;;;;iBAyB7E,4BAAA,CAAA,GAAgC,SAAA"}
@@ -1,3 +1,4 @@
1
+ import { ConcurrencyEventReporter } from "../services/runs/shared/runWithConcurrency.mjs";
1
2
  import { GlobalStateBridge } from "./globalBridge.mjs";
2
3
  import { DOOM_TEAM_TYPES } from "./types.mjs";
3
4
  import { Container } from "inversify";
@@ -16,7 +17,7 @@ import { Container } from "inversify";
16
17
  * module already loaded here), so all three modules travel together. Loads
17
18
  * `createIntercomModule()` for the root and child intercom runtime.
18
19
  */
19
- declare function createExtensionContainer(): Container;
20
+ declare function createExtensionContainer(reportConcurrencyEvent?: ConcurrencyEventReporter): Container;
20
21
  /**
21
22
  * Container for the in-child prompt runtime, including fanout children.
22
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;iBA+DgB,wBAAA,CAAA,GAA4B,SAAA;;;;;;;;;;;;;;;;iBAyB5B,4BAAA,CAAA,GAAgC,SAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/container/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;iBAgEgB,wBAAA,CAAyB,sBAAA,GAAyB,wBAAA,GAA2B,SAAA;;;;;;;;;;;;;;;;iBAyB7E,4BAAA,CAAA,GAAgC,SAAA"}
@@ -1,2 +1,2 @@
1
- import{__esmMin as e}from"../_virtual/_rolldown/runtime.mjs";import{init_types as t}from"./types.mjs";import{createAgentsModule as n,init_agents as r}from"./modules/agents.mjs";import{init_globalBridge as i}from"./globalBridge.mjs";import{createCoreModule as a,init_core as o}from"./modules/core.mjs";import{createExtensionsModule as s,init_extensions as c}from"./modules/extensions.mjs";import{createIntercomModule as l,init_intercom as u}from"./modules/intercom.mjs";import{createRunsModule as d,init_runs as f}from"./modules/runs.mjs";import{Container as p}from"inversify";import"reflect-metadata/lite";function m(){let e=new p;return e.load(a()),e.load(n()),e.load(d()),e.load(s()),e.load(l()),e}function h(){let e=new p;return e.load(a()),e.load(n()),e.load(d()),e.load(l()),e}var g=e((()=>{r(),o(),c(),u(),f(),i(),t()}));g();export{m as createExtensionContainer,h as createPromptRuntimeContainer,g as init_container};
1
+ import{__esmMin as e}from"../_virtual/_rolldown/runtime.mjs";import{init_globalBridge as t}from"./globalBridge.mjs";import{init_types as n}from"./types.mjs";import{createAgentsModule as r,init_agents as i}from"./modules/agents.mjs";import{createCoreModule as a,init_core as o}from"./modules/core.mjs";import{createExtensionsModule as s,init_extensions as c}from"./modules/extensions.mjs";import{createIntercomModule as l,init_intercom as u}from"./modules/intercom.mjs";import{createRunsModule as d,init_runs as f}from"./modules/runs.mjs";import{Container as p}from"inversify";import"reflect-metadata/lite";function m(e){let t=new p;return t.load(a()),t.load(r()),t.load(d()),t.load(s(e)),t.load(l()),t}function h(){let e=new p;return e.load(a()),e.load(r()),e.load(d()),e.load(l()),e}var g=e((()=>{i(),o(),c(),u(),f(),t(),n()}));g();export{m as createExtensionContainer,h as createPromptRuntimeContainer,g as init_container};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/container/index.ts"],"sourcesContent":["/**\n * Composition roots for the two processes this package actually runs in.\n *\n * THERE IS NO SEPARATE \"RUNNER\" PROCESS:\n * An earlier version of this file documented a third root for \"the detached\n * background runner process.\" That process does not exist. Verified against\n * the actual spawn path, twice: `getPiSpawnCommand()` resolves the literal\n * `pi` binary, `asyncExecution.ts`'s `AsyncSubagentSpawner` spawns it\n * directly from the PARENT process, and `buildPiArgs` passes the runtime\n * entry (`subagentPromptRuntimeEntry.cts`) as a `--extension` to that same\n * invocation, which `pi` loads in-process. There are exactly two roles:\n * - The parent extension process, which supervises every run it spawns\n * (`runs/background/**`'s spawn/poll/watch/schedule/reconcile/notify\n * services all run here, since they read and act on state from OUTSIDE the\n * child they describe)\n * - The spawned `pi` child, with this package's prompt-runtime extension\n * loaded into it (`createPromptRuntimeContainer()`), which is also where\n * `RunnerBootstrap`/`RunnerExecution`/`RunnerReporting` run - see\n * `runnerBootstrap.ts`'s own header: \"the child-side half of the spawn\n * handshake\"\n * `runs/background/**` is one module either way (`createRunsModule()`); a\n * given root only ever resolves the subset of its tokens the entry point\n * inside that process actually asks for.\n *\n * DESIGN PATTERNS:\n * - One root per process role. The parent extension and the in-child prompt\n * runtime each build their own container from the domain modules that\n * role actually needs\n * - Module partitioning is the bundle guard: the prompt-runtime root must\n * never load extension, slash, or TUI modules, which keeps the parent's UI\n * surface out of the child bundle\n *\n * AVOID:\n * - A single shared root that loads every module\n * - Resolving services at module scope; resolve inside the entry point\n * - Reintroducing a third \"runner\" root. If a future service turns out to\n * need a process role that is neither the parent nor the spawned child,\n * that is a new, real finding to bring back to this file - not a reason to\n * restore the one that was already checked and found not to exist\n */\n\nimport 'reflect-metadata/lite';\nimport { Container } from 'inversify';\nimport { createAgentsModule } from './modules/agents.ts';\nimport { createCoreModule } from './modules/core.ts';\nimport { createExtensionsModule } from './modules/extensions.ts';\nimport { createIntercomModule } from './modules/intercom.ts';\nimport { createRunsModule } from './modules/runs.ts';\n\n/**\n * Container for the parent Pi extension process.\n *\n * Loads `createRunsModule()` because every service that supervises a run\n * from outside the child it describes - `AsyncSubagentSpawner`,\n * `PollScheduler`, `ControlChannelWatcher`, `ScheduledRunScheduler`,\n * `ResultWatcher`, `StaleRunReconciler`, `CompletionNotifier`, and the rest -\n * runs in this process, not a separate one (see the module doc). Loads\n * `createExtensionsModule()` for `SpawnPlanner`, the top-level `subagent`\n * tool's own service; `SpawnPlanner` itself depends on `AsyncSubagentSpawner`\n * (from the runs module) and `IAgentDiscoveryService` (from the agents\n * module already loaded here), so all three modules travel together. Loads\n * `createIntercomModule()` for the root and child intercom runtime.\n */\nexport function createExtensionContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createExtensionsModule());\n container.load(createIntercomModule());\n return container;\n}\n\n/**\n * Container for the in-child prompt runtime, including fanout children.\n *\n * Fanout children pick their own targets by name, so they do resolve discovery.\n *\n * Loads `createRunsModule()` too: `subagentPromptRuntime.ts` is this\n * process's own composition root (see that module's `registerDeliverableGuardCheck`\n * doc for why it is the one file that resolves this container - filed under\n * `src/extensions/**`, the boundary reserved for composition roots, not under\n * `src/runs/**`), and it needs `RunnerBootstrap`/`RunnerExecution`/\n * `DeliverableGuard` from the runs module to bootstrap the run and fold a\n * deliverable check into `status.json`.\n * Loads `createIntercomModule()` so each child process resolves one shared\n * `NativeTeamChannelService` instance for registration and delivery state.\n */\nexport function createPromptRuntimeContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createIntercomModule());\n return container;\n}\n\nexport { createAgentsModule } from './modules/agents.ts';\nexport { createCoreModule } from './modules/core.ts';\nexport { GlobalStateBridge } from './globalBridge.ts';\nexport { DOOM_TEAM_TYPES } from './types.ts';\n"],"mappings":"8lBA+DA,SAAgB,GAAsC,CACpD,IAAM,EAAY,IAAI,EAMtB,OALA,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAoB,CAAC,CACpC,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAwB,CAAC,CACxC,EAAU,KAAK,GAAsB,CAAC,CAC/B,EAkBT,SAAgB,GAA0C,CACxD,IAAM,EAAY,IAAI,EAKtB,OAJA,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAoB,CAAC,CACpC,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAsB,CAAC,CAC/B,mBAnDgD,IACJ,IACY,IACJ,IACR,IAoDC,IACT"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/container/index.ts"],"sourcesContent":["/**\n * Composition roots for the two processes this package actually runs in.\n *\n * THERE IS NO SEPARATE \"RUNNER\" PROCESS:\n * An earlier version of this file documented a third root for \"the detached\n * background runner process.\" That process does not exist. Verified against\n * the actual spawn path, twice: `getPiSpawnCommand()` resolves the literal\n * `pi` binary, `asyncExecution.ts`'s `AsyncSubagentSpawner` spawns it\n * directly from the PARENT process, and `buildPiArgs` passes the runtime\n * entry (`subagentPromptRuntimeEntry.cts`) as a `--extension` to that same\n * invocation, which `pi` loads in-process. There are exactly two roles:\n * - The parent extension process, which supervises every run it spawns\n * (`runs/background/**`'s spawn/poll/watch/schedule/reconcile/notify\n * services all run here, since they read and act on state from OUTSIDE the\n * child they describe)\n * - The spawned `pi` child, with this package's prompt-runtime extension\n * loaded into it (`createPromptRuntimeContainer()`), which is also where\n * `RunnerBootstrap`/`RunnerExecution`/`RunnerReporting` run - see\n * `runnerBootstrap.ts`'s own header: \"the child-side half of the spawn\n * handshake\"\n * `runs/background/**` is one module either way (`createRunsModule()`); a\n * given root only ever resolves the subset of its tokens the entry point\n * inside that process actually asks for.\n *\n * DESIGN PATTERNS:\n * - One root per process role. The parent extension and the in-child prompt\n * runtime each build their own container from the domain modules that\n * role actually needs\n * - Module partitioning is the bundle guard: the prompt-runtime root must\n * never load extension, slash, or TUI modules, which keeps the parent's UI\n * surface out of the child bundle\n *\n * AVOID:\n * - A single shared root that loads every module\n * - Resolving services at module scope; resolve inside the entry point\n * - Reintroducing a third \"runner\" root. If a future service turns out to\n * need a process role that is neither the parent nor the spawned child,\n * that is a new, real finding to bring back to this file - not a reason to\n * restore the one that was already checked and found not to exist\n */\n\nimport 'reflect-metadata/lite';\nimport { Container } from 'inversify';\nimport type { ConcurrencyEventReporter } from '../services/runs/shared/runWithConcurrency.ts';\nimport { createAgentsModule } from './modules/agents.ts';\nimport { createCoreModule } from './modules/core.ts';\nimport { createExtensionsModule } from './modules/extensions.ts';\nimport { createIntercomModule } from './modules/intercom.ts';\nimport { createRunsModule } from './modules/runs.ts';\n\n/**\n * Container for the parent Pi extension process.\n *\n * Loads `createRunsModule()` because every service that supervises a run\n * from outside the child it describes - `AsyncSubagentSpawner`,\n * `PollScheduler`, `ControlChannelWatcher`, `ScheduledRunScheduler`,\n * `ResultWatcher`, `StaleRunReconciler`, `CompletionNotifier`, and the rest -\n * runs in this process, not a separate one (see the module doc). Loads\n * `createExtensionsModule()` for `SpawnPlanner`, the top-level `subagent`\n * tool's own service; `SpawnPlanner` itself depends on `AsyncSubagentSpawner`\n * (from the runs module) and `IAgentDiscoveryService` (from the agents\n * module already loaded here), so all three modules travel together. Loads\n * `createIntercomModule()` for the root and child intercom runtime.\n */\nexport function createExtensionContainer(reportConcurrencyEvent?: ConcurrencyEventReporter): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createExtensionsModule(reportConcurrencyEvent));\n container.load(createIntercomModule());\n return container;\n}\n\n/**\n * Container for the in-child prompt runtime, including fanout children.\n *\n * Fanout children pick their own targets by name, so they do resolve discovery.\n *\n * Loads `createRunsModule()` too: `subagentPromptRuntime.ts` is this\n * process's own composition root (see that module's `registerDeliverableGuardCheck`\n * doc for why it is the one file that resolves this container - filed under\n * `src/extensions/**`, the boundary reserved for composition roots, not under\n * `src/runs/**`), and it needs `RunnerBootstrap`/`RunnerExecution`/\n * `DeliverableGuard` from the runs module to bootstrap the run and fold a\n * deliverable check into `status.json`.\n * Loads `createIntercomModule()` so each child process resolves one shared\n * `NativeTeamChannelService` instance for registration and delivery state.\n */\nexport function createPromptRuntimeContainer(): Container {\n const container = new Container();\n container.load(createCoreModule());\n container.load(createAgentsModule());\n container.load(createRunsModule());\n container.load(createIntercomModule());\n return container;\n}\n\nexport { GlobalStateBridge } from './globalBridge.ts';\nexport { createAgentsModule } from './modules/agents.ts';\nexport { createCoreModule } from './modules/core.ts';\nexport { DOOM_TEAM_TYPES } from './types.ts';\n"],"mappings":"8lBAgEA,SAAgB,EAAyB,EAA8D,CACrG,IAAM,EAAY,IAAI,EAMtB,OALA,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAoB,CAAC,CACpC,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,EAAuB,EAAuB,CAAC,CAC9D,EAAU,KAAK,GAAsB,CAAC,CAC/B,EAkBT,SAAgB,GAA0C,CACxD,IAAM,EAAY,IAAI,EAKtB,OAJA,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAoB,CAAC,CACpC,EAAU,KAAK,GAAkB,CAAC,CAClC,EAAU,KAAK,GAAsB,CAAC,CAC/B,mBAnDgD,IACJ,IACY,IACJ,IACR,IAkDC,IAGT"}
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../agents/discovery.cjs`),t=require(`../bindOrRebind.cjs`),n=require(`../../agents/skills.cjs`),r=require(`../types.cjs`);let i=require(`inversify`);function a(){return new i.ContainerModule(i=>{t.bindOrRebind(i,r.DOOM_TEAM_TYPES.AgentDiscoveryService).to(e.AgentDiscoveryService).inSingletonScope(),t.bindOrRebind(i,r.DOOM_TEAM_TYPES.SkillDiscoveryService).to(n.SkillDiscoveryService).inSingletonScope()})}exports.createAgentsModule=a;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`),t=require(`../../services/agents/discovery.cjs`),n=require(`../../services/agents/skills.cjs`),r=require(`../bindOrRebind.cjs`);let i=require(`inversify`);function a(){return new i.ContainerModule(i=>{r.bindOrRebind(i,e.DOOM_TEAM_TYPES.AgentDiscoveryService).to(t.AgentDiscoveryService).inSingletonScope(),r.bindOrRebind(i,e.DOOM_TEAM_TYPES.SkillDiscoveryService).to(n.SkillDiscoveryService).inSingletonScope()})}exports.createAgentsModule=a;
2
2
  //# sourceMappingURL=agents.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","AgentDiscoveryService","SkillDiscoveryService"],"sources":["../../../src/container/modules/agents.ts"],"sourcesContent":["/**\n * Agents container module - discovery of agent definitions.\n *\n * DESIGN PATTERNS:\n * - Singleton scope, because the point of the service is a cache. A transient\n * binding would hand every caller an empty cache and quietly restore the\n * per-keystroke directory walk this service exists to remove\n * - Bound against the token, so consumers depend on `IAgentDiscoveryService`\n *\n * AVOID:\n * - Loading this into a composition root that never resolves agents; the runner\n * receives its agent definition from its launch config, not from discovery\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { AgentDiscoveryService } from '../../agents/discovery.ts';\nimport { SkillDiscoveryService } from '../../agents/skills.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createAgentsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.AgentDiscoveryService).to(AgentDiscoveryService).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SkillDiscoveryService).to(SkillDiscoveryService).inSingletonScope();\n });\n}\n"],"mappings":"yNAoBA,SAAgB,GAAsC,CACpD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,sBAAsB,CAAC,GAAGC,EAAAA,sBAAsB,CAAC,kBAAkB,CACzG,EAAA,aAAa,EAASD,EAAAA,gBAAgB,sBAAsB,CAAC,GAAGE,EAAAA,sBAAsB,CAAC,kBAAkB,EACzG"}
1
+ {"version":3,"file":"agents.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","AgentDiscoveryService","SkillDiscoveryService"],"sources":["../../../src/container/modules/agents.ts"],"sourcesContent":["/**\n * Agents container module - discovery of agent definitions.\n *\n * DESIGN PATTERNS:\n * - Singleton scope, because the point of the service is a cache. A transient\n * binding would hand every caller an empty cache and quietly restore the\n * per-keystroke directory walk this service exists to remove\n * - Bound against the token, so consumers depend on `IAgentDiscoveryService`\n *\n * AVOID:\n * - Loading this into a composition root that never resolves agents; the runner\n * receives its agent definition from its launch config, not from discovery\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { AgentDiscoveryService } from '../../services/agents/discovery.ts';\nimport { SkillDiscoveryService } from '../../services/agents/skills.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createAgentsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.AgentDiscoveryService).to(AgentDiscoveryService).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SkillDiscoveryService).to(SkillDiscoveryService).inSingletonScope();\n });\n}\n"],"mappings":"2OAoBA,SAAgB,GAAsC,CACpD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,sBAAsB,CAAC,GAAGC,EAAAA,sBAAsB,CAAC,kBAAkB,CACzG,EAAA,aAAa,EAASD,EAAAA,gBAAgB,sBAAsB,CAAC,GAAGE,EAAAA,sBAAsB,CAAC,kBAAkB,EACzG"}
@@ -1,2 +1,2 @@
1
- import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{AgentDiscoveryService as t,init_discovery as n}from"../../agents/discovery.mjs";import{bindOrRebind as r,init_bindOrRebind as i}from"../bindOrRebind.mjs";import{SkillDiscoveryService as a,init_skills as o}from"../../agents/skills.mjs";import{DOOM_TEAM_TYPES as s,init_types as c}from"../types.mjs";import{ContainerModule as l}from"inversify";function u(){return new l(e=>{r(e,s.AgentDiscoveryService).to(t).inSingletonScope(),r(e,s.SkillDiscoveryService).to(a).inSingletonScope()})}var d=e((()=>{i(),n(),o(),c()}));d();export{u as createAgentsModule,d as init_agents};
1
+ import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{DOOM_TEAM_TYPES as t,init_types as n}from"../types.mjs";import{AgentDiscoveryService as r,init_discovery as i}from"../../services/agents/discovery.mjs";import{SkillDiscoveryService as a,init_skills as o}from"../../services/agents/skills.mjs";import{bindOrRebind as s,init_bindOrRebind as c}from"../bindOrRebind.mjs";import{ContainerModule as l}from"inversify";function u(){return new l(e=>{s(e,t.AgentDiscoveryService).to(r).inSingletonScope(),s(e,t.SkillDiscoveryService).to(a).inSingletonScope()})}var d=e((()=>{i(),o(),c(),n()}));d();export{u as createAgentsModule,d as init_agents};
2
2
  //# sourceMappingURL=agents.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"agents.mjs","names":[],"sources":["../../../src/container/modules/agents.ts"],"sourcesContent":["/**\n * Agents container module - discovery of agent definitions.\n *\n * DESIGN PATTERNS:\n * - Singleton scope, because the point of the service is a cache. A transient\n * binding would hand every caller an empty cache and quietly restore the\n * per-keystroke directory walk this service exists to remove\n * - Bound against the token, so consumers depend on `IAgentDiscoveryService`\n *\n * AVOID:\n * - Loading this into a composition root that never resolves agents; the runner\n * receives its agent definition from its launch config, not from discovery\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { AgentDiscoveryService } from '../../agents/discovery.ts';\nimport { SkillDiscoveryService } from '../../agents/skills.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createAgentsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.AgentDiscoveryService).to(AgentDiscoveryService).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SkillDiscoveryService).to(SkillDiscoveryService).inSingletonScope();\n });\n}\n"],"mappings":"6ZAoBA,SAAgB,GAAsC,CACpD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,sBAAsB,CAAC,GAAG,EAAsB,CAAC,kBAAkB,CACzG,EAAa,EAAS,EAAgB,sBAAsB,CAAC,GAAG,EAAsB,CAAC,kBAAkB,EACzG,kBAT8C,IACgB,IACH,IACjB"}
1
+ {"version":3,"file":"agents.mjs","names":[],"sources":["../../../src/container/modules/agents.ts"],"sourcesContent":["/**\n * Agents container module - discovery of agent definitions.\n *\n * DESIGN PATTERNS:\n * - Singleton scope, because the point of the service is a cache. A transient\n * binding would hand every caller an empty cache and quietly restore the\n * per-keystroke directory walk this service exists to remove\n * - Bound against the token, so consumers depend on `IAgentDiscoveryService`\n *\n * AVOID:\n * - Loading this into a composition root that never resolves agents; the runner\n * receives its agent definition from its launch config, not from discovery\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { AgentDiscoveryService } from '../../services/agents/discovery.ts';\nimport { SkillDiscoveryService } from '../../services/agents/skills.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createAgentsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.AgentDiscoveryService).to(AgentDiscoveryService).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SkillDiscoveryService).to(SkillDiscoveryService).inSingletonScope();\n });\n}\n"],"mappings":"+aAoBA,SAAgB,GAAsC,CACpD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,sBAAsB,CAAC,GAAG,EAAsB,CAAC,kBAAkB,CACzG,EAAa,EAAS,EAAgB,sBAAsB,CAAC,GAAG,EAAsB,CAAC,kBAAkB,EACzG,kBATuE,IACH,IACtB,IACJ"}
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../bindOrRebind.cjs`),t=require(`../types.cjs`),n=require(`../globalBridge.cjs`),r=require(`../../protocol/capabilityCeiling.cjs`);let i=require(`inversify`);function a(){return new i.ContainerModule(i=>{e.bindOrRebind(i,t.DOOM_TEAM_TYPES.GlobalStateBridge).to(n.GlobalStateBridge).inSingletonScope(),e.bindOrRebind(i,t.DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore).to(r.SubagentCapabilityPolicyStore).inSingletonScope()})}exports.createCoreModule=a;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../globalBridge.cjs`),t=require(`../types.cjs`),n=require(`../bindOrRebind.cjs`),r=require(`../../schemas/team/capabilityCeiling.cjs`);let i=require(`inversify`);function a(){return new i.ContainerModule(i=>{n.bindOrRebind(i,t.DOOM_TEAM_TYPES.GlobalStateBridge).to(e.GlobalStateBridge).inSingletonScope(),n.bindOrRebind(i,t.DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore).to(r.SubagentCapabilityPolicyStore).inSingletonScope()})}exports.createCoreModule=a;
2
2
  //# sourceMappingURL=core.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","GlobalStateBridge","SubagentCapabilityPolicyStore"],"sources":["../../../src/container/modules/core.ts"],"sourcesContent":["/**\n * Core container module - bindings every composition root needs.\n *\n * DESIGN PATTERNS:\n * - ContainerModule factory so each root loads the same bindings independently\n * - Singleton scope: one GlobalStateBridge per container\n *\n * AVOID:\n * - Adding domain services here; they belong to their own domain module\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { GlobalStateBridge } from '../globalBridge.ts';\nimport { SubagentCapabilityPolicyStore } from '../../protocol/capabilityCeiling.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createCoreModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.GlobalStateBridge).to(GlobalStateBridge).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore)\n .to(SubagentCapabilityPolicyStore)\n .inSingletonScope();\n });\n}\n"],"mappings":"+NAiBA,SAAgB,GAAoC,CAClD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,kBAAkB,CAAC,GAAGC,EAAAA,kBAAkB,CAAC,kBAAkB,CACjG,EAAA,aAAa,EAASD,EAAAA,gBAAgB,8BAA8B,CACjE,GAAGE,EAAAA,8BAA8B,CACjC,kBAAkB,EACrB"}
1
+ {"version":3,"file":"core.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","GlobalStateBridge","SubagentCapabilityPolicyStore"],"sources":["../../../src/container/modules/core.ts"],"sourcesContent":["/**\n * Core container module - bindings every composition root needs.\n *\n * DESIGN PATTERNS:\n * - ContainerModule factory so each root loads the same bindings independently\n * - Singleton scope: one GlobalStateBridge per container\n *\n * AVOID:\n * - Adding domain services here; they belong to their own domain module\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { SubagentCapabilityPolicyStore } from '../../schemas/team/capabilityCeiling.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { GlobalStateBridge } from '../globalBridge.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createCoreModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.GlobalStateBridge).to(GlobalStateBridge).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore)\n .to(SubagentCapabilityPolicyStore)\n .inSingletonScope();\n });\n}\n"],"mappings":"mOAiBA,SAAgB,GAAoC,CAClD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,kBAAkB,CAAC,GAAGC,EAAAA,kBAAkB,CAAC,kBAAkB,CACjG,EAAA,aAAa,EAASD,EAAAA,gBAAgB,8BAA8B,CACjE,GAAGE,EAAAA,8BAA8B,CACjC,kBAAkB,EACrB"}
@@ -1,2 +1,2 @@
1
- import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{bindOrRebind as t,init_bindOrRebind as n}from"../bindOrRebind.mjs";import{DOOM_TEAM_TYPES as r,init_types as i}from"../types.mjs";import{GlobalStateBridge as a,init_globalBridge as o}from"../globalBridge.mjs";import{SubagentCapabilityPolicyStore as s,init_capabilityCeiling as c}from"../../protocol/capabilityCeiling.mjs";import{ContainerModule as l}from"inversify";function u(){return new l(e=>{t(e,r.GlobalStateBridge).to(a).inSingletonScope(),t(e,r.SubagentCapabilityPolicyStore).to(s).inSingletonScope()})}var d=e((()=>{n(),o(),c(),i()}));d();export{u as createCoreModule,d as init_core};
1
+ import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{GlobalStateBridge as t,init_globalBridge as n}from"../globalBridge.mjs";import{DOOM_TEAM_TYPES as r,init_types as i}from"../types.mjs";import{bindOrRebind as a,init_bindOrRebind as o}from"../bindOrRebind.mjs";import{SubagentCapabilityPolicyStore as s,init_capabilityCeiling as c}from"../../schemas/team/capabilityCeiling.mjs";import{ContainerModule as l}from"inversify";function u(){return new l(e=>{a(e,r.GlobalStateBridge).to(t).inSingletonScope(),a(e,r.SubagentCapabilityPolicyStore).to(s).inSingletonScope()})}var d=e((()=>{c(),o(),n(),i()}));d();export{u as createCoreModule,d as init_core};
2
2
  //# sourceMappingURL=core.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.mjs","names":[],"sources":["../../../src/container/modules/core.ts"],"sourcesContent":["/**\n * Core container module - bindings every composition root needs.\n *\n * DESIGN PATTERNS:\n * - ContainerModule factory so each root loads the same bindings independently\n * - Singleton scope: one GlobalStateBridge per container\n *\n * AVOID:\n * - Adding domain services here; they belong to their own domain module\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { GlobalStateBridge } from '../globalBridge.ts';\nimport { SubagentCapabilityPolicyStore } from '../../protocol/capabilityCeiling.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createCoreModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.GlobalStateBridge).to(GlobalStateBridge).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore)\n .to(SubagentCapabilityPolicyStore)\n .inSingletonScope();\n });\n}\n"],"mappings":"qbAiBA,SAAgB,GAAoC,CAClD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,kBAAkB,CAAC,GAAG,EAAkB,CAAC,kBAAkB,CACjG,EAAa,EAAS,EAAgB,8BAA8B,CACjE,GAAG,EAA8B,CACjC,kBAAkB,EACrB,kBAX8C,IACK,IAC6B,IACtC"}
1
+ {"version":3,"file":"core.mjs","names":[],"sources":["../../../src/container/modules/core.ts"],"sourcesContent":["/**\n * Core container module - bindings every composition root needs.\n *\n * DESIGN PATTERNS:\n * - ContainerModule factory so each root loads the same bindings independently\n * - Singleton scope: one GlobalStateBridge per container\n *\n * AVOID:\n * - Adding domain services here; they belong to their own domain module\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { SubagentCapabilityPolicyStore } from '../../schemas/team/capabilityCeiling.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { GlobalStateBridge } from '../globalBridge.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createCoreModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.GlobalStateBridge).to(GlobalStateBridge).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentCapabilityPolicyStore)\n .to(SubagentCapabilityPolicyStore)\n .inSingletonScope();\n });\n}\n"],"mappings":"ybAiBA,SAAgB,GAAoC,CAClD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,kBAAkB,CAAC,GAAG,EAAkB,CAAC,kBAAkB,CACjG,EAAa,EAAS,EAAgB,8BAA8B,CACjE,GAAG,EAA8B,CACjC,kBAAkB,EACrB,kBAXoF,IACtC,IACK,IACT"}
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../bindOrRebind.cjs`),t=require(`../types.cjs`),n=require(`../../extensions/managementActions.cjs`),r=require(`../../extensions/spawnPlan.cjs`),i=require(`../../extensions/subagentTool.cjs`);let a=require(`inversify`);function o(){return new a.ContainerModule(a=>{e.bindOrRebind(a,t.DOOM_TEAM_TYPES.SpawnPlanner).to(r.SpawnPlanner).inSingletonScope(),e.bindOrRebind(a,t.DOOM_TEAM_TYPES.ManagementActions).to(n.ManagementActions).inSingletonScope(),e.bindOrRebind(a,t.DOOM_TEAM_TYPES.SubagentToolService).to(i.SubagentToolService).inSingletonScope()})}exports.createExtensionsModule=o;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`),t=require(`../bindOrRebind.cjs`),n=require(`../../extensions/managementActions.cjs`),r=require(`../../extensions/spawnPlan.cjs`),i=require(`../../extensions/subagentTool.cjs`);let a=require(`inversify`);const o=()=>void 0;function s(s=o){return new a.ContainerModule(a=>{t.bindOrRebind(a,e.DOOM_TEAM_TYPES.ConcurrencyEventReporter).toConstantValue(s),t.bindOrRebind(a,e.DOOM_TEAM_TYPES.SpawnPlanner).to(r.SpawnPlanner).inSingletonScope(),t.bindOrRebind(a,e.DOOM_TEAM_TYPES.ManagementActions).to(n.ManagementActions).inSingletonScope(),t.bindOrRebind(a,e.DOOM_TEAM_TYPES.SubagentToolService).to(i.SubagentToolService).inSingletonScope()})}exports.createExtensionsModule=s;
2
2
  //# sourceMappingURL=extensions.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","SpawnPlanner","ManagementActions","SubagentToolService"],"sources":["../../../src/container/modules/extensions.ts"],"sourcesContent":["/**\n * Extensions container module - the top-level tool surface's own services.\n *\n * DESIGN PATTERNS:\n * - `SpawnPlanner`/`ManagementActions` hold no instance state of their own\n * (every call resolves its own plan/action and calls an injected service\n * fresh); singleton to match the rest of this package's container\n * modules rather than allocate one per tool call\n * - `SubagentToolService` DOES hold state (a `WeakSet<ExtensionAPI>` of\n * hosts it has already registered the tool on), so it is a singleton shared\n * across every call site that might register on the same host\n *\n * AVOID:\n * - Loading this into a composition root that never calls\n * `SubagentToolService.registerTool()`; a bound-but-never-registered\n * `subagent` tool does nothing on its own\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { ManagementActions } from '../../extensions/managementActions.ts';\nimport { SpawnPlanner } from '../../extensions/spawnPlan.ts';\nimport { SubagentToolService } from '../../extensions/subagentTool.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createExtensionsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.SpawnPlanner).to(SpawnPlanner).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.ManagementActions).to(ManagementActions).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentToolService).to(SubagentToolService).inSingletonScope();\n });\n}\n"],"mappings":"2RAyBA,SAAgB,GAA0C,CACxD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,aAAa,CAAC,GAAGC,EAAAA,aAAa,CAAC,kBAAkB,CACvF,EAAA,aAAa,EAASD,EAAAA,gBAAgB,kBAAkB,CAAC,GAAGE,EAAAA,kBAAkB,CAAC,kBAAkB,CACjG,EAAA,aAAa,EAASF,EAAAA,gBAAgB,oBAAoB,CAAC,GAAGG,EAAAA,oBAAoB,CAAC,kBAAkB,EACrG"}
1
+ {"version":3,"file":"extensions.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","SpawnPlanner","ManagementActions","SubagentToolService"],"sources":["../../../src/container/modules/extensions.ts"],"sourcesContent":["/**\n * Extensions container module - the top-level tool surface's own services.\n *\n * DESIGN PATTERNS:\n * - `SpawnPlanner`/`ManagementActions` hold no instance state of their own\n * (every call resolves its own plan/action and calls an injected service\n * fresh); singleton to match the rest of this package's container\n * modules rather than allocate one per tool call\n * - `SubagentToolService` DOES hold state (a `WeakSet<ExtensionAPI>` of\n * hosts it has already registered the tool on), so it is a singleton shared\n * across every call site that might register on the same host\n *\n * AVOID:\n * - Loading this into a composition root that never calls\n * `SubagentToolService.registerTool()`; a bound-but-never-registered\n * `subagent` tool does nothing on its own\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { ManagementActions } from '../../extensions/managementActions.ts';\nimport { SpawnPlanner } from '../../extensions/spawnPlan.ts';\nimport { SubagentToolService } from '../../extensions/subagentTool.ts';\nimport type { ConcurrencyEventReporter } from '../../services/runs/shared/runWithConcurrency.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nconst ignoreConcurrencyEvent: ConcurrencyEventReporter = () => undefined;\n\nexport function createExtensionsModule(\n reportConcurrencyEvent: ConcurrencyEventReporter = ignoreConcurrencyEvent,\n): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind<ConcurrencyEventReporter>(options, DOOM_TEAM_TYPES.ConcurrencyEventReporter).toConstantValue(\n reportConcurrencyEvent,\n );\n bindOrRebind(options, DOOM_TEAM_TYPES.SpawnPlanner).to(SpawnPlanner).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.ManagementActions).to(ManagementActions).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentToolService).to(SubagentToolService).inSingletonScope();\n });\n}\n"],"mappings":"2RA0BA,MAAM,MAAyD,IAAA,GAE/D,SAAgB,EACd,EAAmD,EAClC,CACjB,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAuC,EAASC,EAAAA,gBAAgB,yBAAyB,CAAC,gBACxF,EACD,CACD,EAAA,aAAa,EAASA,EAAAA,gBAAgB,aAAa,CAAC,GAAGC,EAAAA,aAAa,CAAC,kBAAkB,CACvF,EAAA,aAAa,EAASD,EAAAA,gBAAgB,kBAAkB,CAAC,GAAGE,EAAAA,kBAAkB,CAAC,kBAAkB,CACjG,EAAA,aAAa,EAASF,EAAAA,gBAAgB,oBAAoB,CAAC,GAAGG,EAAAA,oBAAoB,CAAC,kBAAkB,EACrG"}
@@ -1,2 +1,2 @@
1
- import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{bindOrRebind as t,init_bindOrRebind as n}from"../bindOrRebind.mjs";import{DOOM_TEAM_TYPES as r,init_types as i}from"../types.mjs";import{ManagementActions as a,init_managementActions as o}from"../../extensions/managementActions.mjs";import{SpawnPlanner as s,init_spawnPlan as c}from"../../extensions/spawnPlan.mjs";import{SubagentToolService as l,init_subagentTool as u}from"../../extensions/subagentTool.mjs";import{ContainerModule as d}from"inversify";function f(){return new d(e=>{t(e,r.SpawnPlanner).to(s).inSingletonScope(),t(e,r.ManagementActions).to(a).inSingletonScope(),t(e,r.SubagentToolService).to(l).inSingletonScope()})}var p=e((()=>{n(),o(),c(),u(),i()}));p();export{f as createExtensionsModule,p as init_extensions};
1
+ import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{DOOM_TEAM_TYPES as t,init_types as n}from"../types.mjs";import{bindOrRebind as r,init_bindOrRebind as i}from"../bindOrRebind.mjs";import{ManagementActions as a,init_managementActions as o}from"../../extensions/managementActions.mjs";import{SpawnPlanner as s,init_spawnPlan as c}from"../../extensions/spawnPlan.mjs";import{SubagentToolService as l,init_subagentTool as u}from"../../extensions/subagentTool.mjs";import{ContainerModule as d}from"inversify";function f(e=p){return new d(n=>{r(n,t.ConcurrencyEventReporter).toConstantValue(e),r(n,t.SpawnPlanner).to(s).inSingletonScope(),r(n,t.ManagementActions).to(a).inSingletonScope(),r(n,t.SubagentToolService).to(l).inSingletonScope()})}var p,m=e((()=>{o(),c(),u(),i(),n(),p=()=>void 0}));m();export{f as createExtensionsModule,m as init_extensions};
2
2
  //# sourceMappingURL=extensions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.mjs","names":[],"sources":["../../../src/container/modules/extensions.ts"],"sourcesContent":["/**\n * Extensions container module - the top-level tool surface's own services.\n *\n * DESIGN PATTERNS:\n * - `SpawnPlanner`/`ManagementActions` hold no instance state of their own\n * (every call resolves its own plan/action and calls an injected service\n * fresh); singleton to match the rest of this package's container\n * modules rather than allocate one per tool call\n * - `SubagentToolService` DOES hold state (a `WeakSet<ExtensionAPI>` of\n * hosts it has already registered the tool on), so it is a singleton shared\n * across every call site that might register on the same host\n *\n * AVOID:\n * - Loading this into a composition root that never calls\n * `SubagentToolService.registerTool()`; a bound-but-never-registered\n * `subagent` tool does nothing on its own\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { ManagementActions } from '../../extensions/managementActions.ts';\nimport { SpawnPlanner } from '../../extensions/spawnPlan.ts';\nimport { SubagentToolService } from '../../extensions/subagentTool.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nexport function createExtensionsModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.SpawnPlanner).to(SpawnPlanner).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.ManagementActions).to(ManagementActions).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentToolService).to(SubagentToolService).inSingletonScope();\n });\n}\n"],"mappings":"6gBAyBA,SAAgB,GAA0C,CACxD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,aAAa,CAAC,GAAG,EAAa,CAAC,kBAAkB,CACvF,EAAa,EAAS,EAAgB,kBAAkB,CAAC,GAAG,EAAkB,CAAC,kBAAkB,CACjG,EAAa,EAAS,EAAgB,oBAAoB,CAAC,GAAG,EAAoB,CAAC,kBAAkB,EACrG,kBAX8C,IACwB,IACb,IACU,IACzB"}
1
+ {"version":3,"file":"extensions.mjs","names":[],"sources":["../../../src/container/modules/extensions.ts"],"sourcesContent":["/**\n * Extensions container module - the top-level tool surface's own services.\n *\n * DESIGN PATTERNS:\n * - `SpawnPlanner`/`ManagementActions` hold no instance state of their own\n * (every call resolves its own plan/action and calls an injected service\n * fresh); singleton to match the rest of this package's container\n * modules rather than allocate one per tool call\n * - `SubagentToolService` DOES hold state (a `WeakSet<ExtensionAPI>` of\n * hosts it has already registered the tool on), so it is a singleton shared\n * across every call site that might register on the same host\n *\n * AVOID:\n * - Loading this into a composition root that never calls\n * `SubagentToolService.registerTool()`; a bound-but-never-registered\n * `subagent` tool does nothing on its own\n */\n\nimport { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\nimport { ManagementActions } from '../../extensions/managementActions.ts';\nimport { SpawnPlanner } from '../../extensions/spawnPlan.ts';\nimport { SubagentToolService } from '../../extensions/subagentTool.ts';\nimport type { ConcurrencyEventReporter } from '../../services/runs/shared/runWithConcurrency.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\nconst ignoreConcurrencyEvent: ConcurrencyEventReporter = () => undefined;\n\nexport function createExtensionsModule(\n reportConcurrencyEvent: ConcurrencyEventReporter = ignoreConcurrencyEvent,\n): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind<ConcurrencyEventReporter>(options, DOOM_TEAM_TYPES.ConcurrencyEventReporter).toConstantValue(\n reportConcurrencyEvent,\n );\n bindOrRebind(options, DOOM_TEAM_TYPES.SpawnPlanner).to(SpawnPlanner).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.ManagementActions).to(ManagementActions).inSingletonScope();\n bindOrRebind(options, DOOM_TEAM_TYPES.SubagentToolService).to(SubagentToolService).inSingletonScope();\n });\n}\n"],"mappings":"6gBA4BA,SAAgB,EACd,EAAmD,EAClC,CACjB,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAuC,EAAS,EAAgB,yBAAyB,CAAC,gBACxF,EACD,CACD,EAAa,EAAS,EAAgB,aAAa,CAAC,GAAG,EAAa,CAAC,kBAAkB,CACvF,EAAa,EAAS,EAAgB,kBAAkB,CAAC,GAAG,EAAkB,CAAC,kBAAkB,CACjG,EAAa,EAAS,EAAgB,oBAAoB,CAAC,GAAG,EAAoB,CAAC,kBAAkB,EACrG,oBAnBsE,IACb,IACU,IAErB,IACJ,CAExC,MAAyD,IAAA"}
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../bindOrRebind.cjs`),t=require(`../types.cjs`),n=require(`../../intercom/nativeTeamChannel.cjs`);let r=require(`inversify`);function i(){return new r.ContainerModule(r=>{e.bindOrRebind(r,t.DOOM_TEAM_TYPES.NativeTeamChannelService).to(n.NativeTeamChannelService).inSingletonScope()})}exports.createIntercomModule=i;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`),t=require(`../bindOrRebind.cjs`),n=require(`../../services/intercom/nativeTeamChannel.cjs`);let r=require(`inversify`);function i(){return new r.ContainerModule(r=>{t.bindOrRebind(r,e.DOOM_TEAM_TYPES.NativeTeamChannelService).to(n.NativeTeamChannelService).inSingletonScope()})}exports.createIntercomModule=i;
2
2
  //# sourceMappingURL=intercom.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intercom.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","NativeTeamChannelService"],"sources":["../../../src/container/modules/intercom.ts"],"sourcesContent":["import { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\n\nimport { NativeTeamChannelService } from '../../intercom/nativeTeamChannel.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\n/** Bind the single intercom transport as one shared runtime per process. */\nexport function createIntercomModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.NativeTeamChannelService).to(NativeTeamChannelService).inSingletonScope();\n });\n}\n"],"mappings":"8LAOA,SAAgB,GAAwC,CACtD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,yBAAyB,CAAC,GAAGC,EAAAA,yBAAyB,CAAC,kBAAkB,EAC/G"}
1
+ {"version":3,"file":"intercom.cjs","names":["ContainerModule","DOOM_TEAM_TYPES","NativeTeamChannelService"],"sources":["../../../src/container/modules/intercom.ts"],"sourcesContent":["import { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\n\nimport { NativeTeamChannelService } from '../../services/intercom/nativeTeamChannel.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\n/** Bind the single intercom transport as one shared runtime per process. */\nexport function createIntercomModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.NativeTeamChannelService).to(NativeTeamChannelService).inSingletonScope();\n });\n}\n"],"mappings":"uMAOA,SAAgB,GAAwC,CACtD,OAAO,IAAIA,EAAAA,gBAAiB,GAAwC,CAClE,EAAA,aAAa,EAASC,EAAAA,gBAAgB,yBAAyB,CAAC,GAAGC,EAAAA,yBAAyB,CAAC,kBAAkB,EAC/G"}
@@ -1,2 +1,2 @@
1
- import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{bindOrRebind as t,init_bindOrRebind as n}from"../bindOrRebind.mjs";import{DOOM_TEAM_TYPES as r,init_types as i}from"../types.mjs";import{NativeTeamChannelService as a,init_nativeTeamChannel as o}from"../../intercom/nativeTeamChannel.mjs";import{ContainerModule as s}from"inversify";function c(){return new s(e=>{t(e,r.NativeTeamChannelService).to(a).inSingletonScope()})}var l=e((()=>{o(),n(),i()}));l();export{c as createIntercomModule,l as init_intercom};
1
+ import{__esmMin as e}from"../../_virtual/_rolldown/runtime.mjs";import{DOOM_TEAM_TYPES as t,init_types as n}from"../types.mjs";import{bindOrRebind as r,init_bindOrRebind as i}from"../bindOrRebind.mjs";import{NativeTeamChannelService as a,init_nativeTeamChannel as o}from"../../services/intercom/nativeTeamChannel.mjs";import{ContainerModule as s}from"inversify";function c(){return new s(e=>{r(e,t.NativeTeamChannelService).to(a).inSingletonScope()})}var l=e((()=>{o(),i(),n()}));l();export{c as createIntercomModule,l as init_intercom};
2
2
  //# sourceMappingURL=intercom.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"intercom.mjs","names":[],"sources":["../../../src/container/modules/intercom.ts"],"sourcesContent":["import { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\n\nimport { NativeTeamChannelService } from '../../intercom/nativeTeamChannel.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\n/** Bind the single intercom transport as one shared runtime per process. */\nexport function createIntercomModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.NativeTeamChannelService).to(NativeTeamChannelService).inSingletonScope();\n });\n}\n"],"mappings":"iWAOA,SAAgB,GAAwC,CACtD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,yBAAyB,CAAC,GAAG,EAAyB,CAAC,kBAAkB,EAC/G,kBAR2E,IAC7B,IACJ"}
1
+ {"version":3,"file":"intercom.mjs","names":[],"sources":["../../../src/container/modules/intercom.ts"],"sourcesContent":["import { ContainerModule, type ContainerModuleLoadOptions } from 'inversify';\n\nimport { NativeTeamChannelService } from '../../services/intercom/nativeTeamChannel.ts';\nimport { bindOrRebind } from '../bindOrRebind.ts';\nimport { DOOM_TEAM_TYPES } from '../types.ts';\n\n/** Bind the single intercom transport as one shared runtime per process. */\nexport function createIntercomModule(): ContainerModule {\n return new ContainerModule((options: ContainerModuleLoadOptions) => {\n bindOrRebind(options, DOOM_TEAM_TYPES.NativeTeamChannelService).to(NativeTeamChannelService).inSingletonScope();\n });\n}\n"],"mappings":"0WAOA,SAAgB,GAAwC,CACtD,OAAO,IAAI,EAAiB,GAAwC,CAClE,EAAa,EAAS,EAAgB,yBAAyB,CAAC,GAAG,EAAyB,CAAC,kBAAkB,EAC/G,kBARoF,IACtC,IACJ"}
@@ -1,2 +1,2 @@
1
- require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../bindOrRebind.cjs`),t=require(`../types.cjs`),n=require(`../../intercom/supervisorControlChannel.cjs`),r=require(`../../runs/background/statusWriter.cjs`),i=require(`../../runs/background/asyncJobTracker.cjs`),a=require(`../../runs/background/spawnHandshake.cjs`),o=require(`../../runs/background/asyncExecution.cjs`),s=require(`../../runs/background/notify.cjs`),c=require(`../../runs/background/terminalPersistence.cjs`),l=require(`../../runs/background/processTerminal.cjs`),u=require(`../../shared/pollScheduler.cjs`),d=require(`../../runs/background/resultWatcher.cjs`),f=require(`../../runs/background/runIdResolver.cjs`),p=require(`../../runs/background/runnerBootstrap.cjs`),m=require(`../../runs/background/runnerExecution.cjs`),h=require(`../../runs/background/runnerReporting.cjs`),g=require(`../../runs/background/runnerTeamMembership.cjs`),_=require(`../../runs/background/staleRunReconciler.cjs`),v=require(`../../runs/background/subagentWait.cjs`);let y=require(`inversify`);function b(){return new y.ContainerModule(y=>{e.bindOrRebind(y,t.DOOM_TEAM_TYPES.PollScheduler).to(u.PollScheduler).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.CoalescedStatusWriter).to(r.CoalescedStatusWriter).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.SpawnHandshake).to(a.SpawnHandshake).inTransientScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.TerminalPersistenceService).to(c.TerminalPersistenceService).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.ResultWatcher).to(d.ResultWatcher).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.RunIdResolver).to(f.RunIdResolver).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.ProcessTerminalInspector).to(l.ProcessTerminalInspector).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.StaleRunReconciler).to(_.StaleRunReconciler).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.ControlChannelWatcher).to(n.ControlChannelWatcher).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.CompletionNotifier).to(s.CompletionNotifier).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.AsyncJobTracker).to(i.AsyncJobTracker).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.AsyncSubagentSpawner).to(o.AsyncSubagentSpawner).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.SubagentWaiter).to(v.SubagentWaiter).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.RunnerReporting).to(h.RunnerReporting).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.RunnerBootstrap).to(p.RunnerBootstrap).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.RunnerExecution).to(m.RunnerExecution).inSingletonScope(),e.bindOrRebind(y,t.DOOM_TEAM_TYPES.RunnerTeamMembership).to(g.RunnerTeamMembership).inSingletonScope()})}exports.createRunsModule=b;
1
+ require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../types.cjs`),t=require(`../bindOrRebind.cjs`),n=require(`../../services/intercom/supervisorControlChannel.cjs`),r=require(`../../services/runs/background/statusWriter.cjs`),i=require(`../../adapters/asyncJobTracker.cjs`);require(`../../services/runs/background/asyncJobTracker.cjs`);const a=require(`../../services/runs/background/spawnHandshake.cjs`),o=require(`../../services/runs/background/asyncExecution.cjs`),s=require(`../../services/runs/background/notify.cjs`),c=require(`../../services/runs/background/terminalPersistence.cjs`),l=require(`../../adapters/processTerminal.cjs`);require(`../../services/runs/background/processTerminal.cjs`);const u=require(`../../adapters/resultWatcher.cjs`);require(`../../services/runs/background/resultWatcher.cjs`);const d=require(`../../adapters/runIdResolver.cjs`);require(`../../services/runs/background/runIdResolver.cjs`);const f=require(`../../services/runs/background/runnerBootstrap.cjs`),p=require(`../../services/runs/background/runnerExecution.cjs`),m=require(`../../services/runs/background/runnerReporting.cjs`),h=require(`../../services/runs/background/runnerTeamMembership.cjs`),g=require(`../../adapters/staleRunReconciler.cjs`);require(`../../services/runs/background/staleRunReconciler.cjs`);const _=require(`../../services/runs/background/subagentWait.cjs`),v=require(`../../adapters/pollScheduler.cjs`);require(`../../shared/pollScheduler.cjs`);let y=require(`inversify`);function b(){return new y.ContainerModule(y=>{t.bindOrRebind(y,e.DOOM_TEAM_TYPES.PollScheduler).to(v.PollScheduler).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.CoalescedStatusWriter).to(r.CoalescedStatusWriter).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.SpawnHandshake).to(a.SpawnHandshake).inTransientScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.TerminalPersistenceService).to(c.TerminalPersistenceService).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.ResultWatcher).to(u.ResultWatcher).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.RunIdResolver).to(d.RunIdResolver).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.ProcessTerminalInspector).to(l.ProcessTerminalInspector).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.StaleRunReconciler).to(g.StaleRunReconciler).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.ControlChannelWatcher).to(n.ControlChannelWatcher).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.CompletionNotifier).to(s.CompletionNotifier).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.AsyncJobTracker).to(i.AsyncJobTracker).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.AsyncSubagentSpawner).to(o.AsyncSubagentSpawner).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.SubagentWaiter).to(_.SubagentWaiter).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.RunnerReporting).to(m.RunnerReporting).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.RunnerBootstrap).to(f.RunnerBootstrap).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.RunnerExecution).to(p.RunnerExecution).inSingletonScope(),t.bindOrRebind(y,e.DOOM_TEAM_TYPES.RunnerTeamMembership).to(h.RunnerTeamMembership).inSingletonScope()})}exports.createRunsModule=b;
2
2
  //# sourceMappingURL=runs.cjs.map