@makaio/framework 1.0.0-dev-1788863979610 → 1.0.0-dev-1788909333961

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 (503) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/2020-Bl3Yx3In.mjs +1 -0
  3. package/dist/{account-identity-B3vLwm9O.mjs → account-identity-DCBpVurJ.mjs} +1 -1
  4. package/dist/{adapter-Dz1fX5Wa.mjs → adapter-D6IpEDIo.mjs} +1 -1
  5. package/dist/adapters/config/index.d.mts +1 -1
  6. package/dist/adapters/config/index.mjs +1 -1
  7. package/dist/adapters/index.d.mts +2 -2
  8. package/dist/adapters/index.mjs +6 -6
  9. package/dist/adapters/node.d.mts +1 -1
  10. package/dist/adapters/node.mjs +1 -1
  11. package/dist/artifact-BjqkK0KX.mjs +1 -0
  12. package/dist/{attempt-record-codec-BcAPEIW3.mjs → attempt-record-codec-6jpayBMY.mjs} +1 -1
  13. package/dist/{auth-C6tVtaOX.mjs → auth-CeH3w2fi.mjs} +1 -1
  14. package/dist/authority-state-bootstrap-8VGt4vD2.mjs +1 -0
  15. package/dist/{automation-trigger-ByjNlClm.mjs → automation-trigger-D_xKqEoV.mjs} +1 -1
  16. package/dist/bus/index.d.mts +20 -20
  17. package/dist/bus/index.mjs +1 -1
  18. package/dist/{caller-owned-adapter-stub-C1M7FKrv.mjs → caller-owned-adapter-stub-B-Sq7ZvF.mjs} +1 -1
  19. package/dist/{canonical-model-DXOvCaVg.mjs → canonical-model-DwuFQ02A.mjs} +1 -1
  20. package/dist/{capabilities-DEvmD9VJ.mjs → capabilities-BhJ3wzI8.mjs} +1 -1
  21. package/dist/{client-BkznbdsO.mjs → client-CTqzLpVx.mjs} +1 -1
  22. package/dist/clients/index.d.mts +1 -1
  23. package/dist/clients/index.mjs +1 -1
  24. package/dist/clients/managed-install.d.mts +1 -1
  25. package/dist/clients/managed-install.mjs +1 -1
  26. package/dist/code-execution/worker-entry.d.mts +1 -1
  27. package/dist/code-execution/worker-entry.mjs +1 -1
  28. package/dist/{code-execution-Ckmn8OZu.mjs → code-execution-BMmUATcc.mjs} +1 -1
  29. package/dist/{code-execution-CweDSWco.mjs → code-execution-BsiB7ZeZ2.mjs} +1 -1
  30. package/dist/{code-execution-DqkQjKa1.mjs → code-execution-DRCzkGzO.mjs} +1 -1
  31. package/dist/{compression-CtgeVLpP.mjs → compression-3DauETKU.mjs} +1 -1
  32. package/dist/{config-namespace-CjWvw8ij.mjs → config-namespace-MjFuIPyL.mjs} +1 -1
  33. package/dist/contracts/adapter/index.d.mts +2 -2
  34. package/dist/contracts/adapter/index.mjs +1 -1
  35. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  36. package/dist/contracts/artifact/index.d.mts +3 -3
  37. package/dist/contracts/artifact/index.mjs +1 -1
  38. package/dist/contracts/auth/index.d.mts +2 -2
  39. package/dist/contracts/auth/index.mjs +1 -1
  40. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  41. package/dist/contracts/automation-trigger/index.mjs +1 -1
  42. package/dist/contracts/canonical-model/index.d.mts +1 -1
  43. package/dist/contracts/canonical-model/index.mjs +1 -1
  44. package/dist/contracts/capabilities/index.d.mts +1 -1
  45. package/dist/contracts/capabilities/index.mjs +1 -1
  46. package/dist/contracts/client/index.d.mts +2 -2
  47. package/dist/contracts/client/index.mjs +1 -1
  48. package/dist/contracts/code-execution/index.d.mts +1 -1
  49. package/dist/contracts/code-execution/index.mjs +1 -1
  50. package/dist/contracts/common/index.d.mts +1 -1
  51. package/dist/contracts/config/index.d.mts +1 -1
  52. package/dist/contracts/config/index.mjs +1 -1
  53. package/dist/contracts/extension/index.d.mts +5 -5
  54. package/dist/contracts/extension/index.mjs +1 -1
  55. package/dist/contracts/facet/index.d.mts +1 -1
  56. package/dist/contracts/facet/index.mjs +1 -1
  57. package/dist/contracts/harness/index.d.mts +1 -1
  58. package/dist/contracts/harness/index.mjs +1 -1
  59. package/dist/contracts/host/index.d.mts +1 -1
  60. package/dist/contracts/host/index.mjs +1 -1
  61. package/dist/contracts/index.d.mts +195 -195
  62. package/dist/contracts/index.mjs +1 -1
  63. package/dist/contracts/materialization/index.d.mts +2 -3
  64. package/dist/contracts/materialization/index.mjs +1 -1
  65. package/dist/contracts/model-registry/index.d.mts +1 -1
  66. package/dist/contracts/model-registry/index.mjs +1 -1
  67. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  68. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  69. package/dist/contracts/platform/index.d.mts +1 -1
  70. package/dist/contracts/platform/index.mjs +1 -1
  71. package/dist/contracts/provider/index.d.mts +2 -2
  72. package/dist/contracts/provider/index.mjs +1 -1
  73. package/dist/contracts/reaction/index.d.mts +1 -1
  74. package/dist/contracts/reaction/index.mjs +1 -1
  75. package/dist/contracts/session/index.d.mts +2 -2
  76. package/dist/contracts/session/index.mjs +1 -1
  77. package/dist/contracts/shared/index.d.mts +2 -2
  78. package/dist/contracts/shared/index.mjs +1 -1
  79. package/dist/contracts/skill/index.d.mts +1 -1
  80. package/dist/contracts/skill/index.mjs +1 -1
  81. package/dist/contracts/telemetry/index.d.mts +1 -1
  82. package/dist/contracts/telemetry/index.mjs +1 -1
  83. package/dist/contracts/timeout/index.d.mts +1 -1
  84. package/dist/contracts/timeout/index.mjs +1 -1
  85. package/dist/contracts/toast/index.mjs +1 -1
  86. package/dist/contracts/variant/index.d.mts +1 -1
  87. package/dist/contracts/variant/index.mjs +1 -1
  88. package/dist/contracts/worker/index.d.mts +1 -1
  89. package/dist/contracts/worker/index.mjs +1 -1
  90. package/dist/contracts/workflow/index.d.mts +2 -2
  91. package/dist/contracts/workflow/index.mjs +1 -1
  92. package/dist/{contribution-CQIpPQLl.d.mts → contribution-B4t0OXKs.d.mts} +2 -2
  93. package/dist/{definition-Cdpw5l9g.d.mts → definition-Bs5hzhsT.d.mts} +1 -1
  94. package/dist/{definition-BH4QLGLI.mjs → definition-YGj42UeO.mjs} +1 -1
  95. package/dist/{detached-extension-handle-2yUaviLu.mjs → detached-extension-handle-CgJiXaqv.mjs} +1 -1
  96. package/dist/dist-CfANkKSb.mjs +1 -0
  97. package/dist/{execution-attempt-owner-recovery-BRjtmTGv.mjs → execution-attempt-owner-recovery-CdH04iwP.mjs} +1 -1
  98. package/dist/{execution-attempt-repository-CPk3F98N.d.mts → execution-attempt-repository-CF3cWsPo.d.mts} +495 -151
  99. package/dist/{execution-target-BcoF_oDB.mjs → execution-target-B9jZgDQz.mjs} +1 -1
  100. package/dist/{extension-Bfkr2DBs.mjs → extension-B51JzHJu.mjs} +1 -1
  101. package/dist/extension-BgUSK5rv.mjs +1 -0
  102. package/dist/{filesystem-service-CiUw0YN5.mjs → filesystem-service-yB8KhUGz.mjs} +1 -1
  103. package/dist/framework-packages-CxWecyPW.mjs +1 -0
  104. package/dist/git/index.mjs +1 -1
  105. package/dist/{globby-QBDqstzq.mjs → globby-z2SR0jRo.mjs} +1 -1
  106. package/dist/{handlers-BsHAFtye.mjs → handlers-CBbFzDHc.mjs} +1 -1
  107. package/dist/{harness-YQ2ewID9.mjs → harness-GNtHsoh4.mjs} +1 -1
  108. package/dist/{hook-responses-DK6uu35J.d.mts → hook-responses-Cs8A07ZP.d.mts} +1 -1
  109. package/dist/{index-fQIrZBY0.d.mts → index-B4Wg4W7d.d.mts} +100 -100
  110. package/dist/{index-CsDj-DEW.d.mts → index-B6aoVzdA.d.mts} +1 -1
  111. package/dist/{index-C3uCMCHI.d.mts → index-B7VO0gQV.d.mts} +3 -3
  112. package/dist/{index-CXZ8ODDT.d.mts → index-BALk4zcu.d.mts} +1 -1
  113. package/dist/{index-B9vEfalH.d.mts → index-BHZlMm_I.d.mts} +1 -1
  114. package/dist/{index-Cjy1_Hc2.d.mts → index-BO_ikAR-.d.mts} +18 -18
  115. package/dist/{index-B8Tc0urp.d.mts → index-BQv9mUzn.d.mts} +139 -115
  116. package/dist/{index-Dne0xNUI.d.mts → index-BeplDh91.d.mts} +597 -732
  117. package/dist/{index-BlJbchHp.d.mts → index-BjcJH3I-.d.mts} +1 -1
  118. package/dist/{index-D5UpsCNq.d.mts → index-BtC1JP5D.d.mts} +1 -1
  119. package/dist/{index-XNbcZBEZ.d.mts → index-ByJ2NESC.d.mts} +6 -6
  120. package/dist/{index-COSxBdTp.d.mts → index-CKvOECeR.d.mts} +2 -2
  121. package/dist/{index-zCstNu9J2.d.mts → index-CZuhTqsX2.d.mts} +12 -12
  122. package/dist/{index-DXv51ZIb.d.mts → index-CpdRe5df.d.mts} +116 -116
  123. package/dist/{index-DQWEOn6i.d.mts → index-D7j6v0-L.d.mts} +1 -1
  124. package/dist/{index-1y-PUD3B.d.mts → index-DFsJTTkS.d.mts} +1 -1
  125. package/dist/{index-D9CdrFKz2.d.mts → index-DI-1HK7v2.d.mts} +1 -1
  126. package/dist/{index-BDs5tDcM.d.mts → index-DlKxbLC9.d.mts} +8 -8
  127. package/dist/{index-CvWUgywU.d.mts → index-OP6Aw5jN.d.mts} +1 -1
  128. package/dist/{index-DmTBlEzu.d.mts → index-U0Fe0baO.d.mts} +6 -6
  129. package/dist/{index-jZXIrHlY.d.mts → index-VAJBIJUb.d.mts} +96 -42
  130. package/dist/{index-BDAPOKi3.d.mts → index-VCtdvtEk.d.mts} +360 -360
  131. package/dist/{index-DtHmaj-q.d.mts → index-fzrPfhS0.d.mts} +1 -1
  132. package/dist/{index-DvV7vEKt.d.mts → index-tDCBp28C.d.mts} +350 -350
  133. package/dist/{index-DwFnHNoq2.d.mts → index-uv_WSQtw2.d.mts} +17 -17
  134. package/dist/kernel/cli/index.d.mts +2 -2
  135. package/dist/kernel/cli/index.mjs +1 -1
  136. package/dist/kernel/cli/register.d.mts +1 -1
  137. package/dist/kernel/cli/register.mjs +1 -1
  138. package/dist/kernel/cli/schemas.mjs +1 -1
  139. package/dist/kernel/extension/index.d.mts +1 -1
  140. package/dist/kernel/extension/index.mjs +1 -1
  141. package/dist/kernel/index.d.mts +5 -5
  142. package/dist/kernel/index.mjs +1 -1
  143. package/dist/kernel/namespace/index.d.mts +1 -1
  144. package/dist/kernel/namespace/index.mjs +1 -1
  145. package/dist/kernel/observability/index.d.mts +1 -1
  146. package/dist/kernel/observability/index.mjs +1 -1
  147. package/dist/kernel/providers/index.d.mts +1 -1
  148. package/dist/kernel/providers/index.mjs +1 -1
  149. package/dist/kernel/window/index.d.mts +1 -1
  150. package/dist/kernel/window/index.mjs +1 -1
  151. package/dist/kind-registration-T--B1wiI.mjs +1 -0
  152. package/dist/{lib-BB0XjVs6.mjs → lib-B8hEa65D.mjs} +1 -1
  153. package/dist/{lib-DNGNIb-O.mjs → lib-Ql8RWYOd.mjs} +1 -1
  154. package/dist/{load-extensions-CWlR-8BM.mjs → load-extensions-BHTj3d_P.mjs} +1 -1
  155. package/dist/{load-extensions-C3Y3y9EW.d.mts → load-extensions-un9Md47Z.d.mts} +1 -1
  156. package/dist/materialization-CqOHTt92.mjs +1 -0
  157. package/dist/mcp-http-server/index.mjs +4 -4
  158. package/dist/model-B6t_-_sp.mjs +1 -0
  159. package/dist/{namespace-agOiy4kr.d.mts → namespace-BVQ8Y2Yi.d.mts} +3 -3
  160. package/dist/{namespace-B8i86gVL.d.mts → namespace-BlH5BeSq.d.mts} +2 -2
  161. package/dist/{namespace-Bz3qcZBD.d.mts → namespace-BocL2nn7.d.mts} +6 -6
  162. package/dist/namespace-D4zmxaC4.mjs +1 -0
  163. package/dist/{namespace-BW2rjW9-.d.mts → namespace-DELzAyzb.d.mts} +152 -152
  164. package/dist/{namespace-BL7lHlmg.mjs → namespace-ZAIFBrIy.mjs} +1 -1
  165. package/dist/{native-session-supervisor-LKio8XZn.mjs → native-session-supervisor-BlGzmZrH.mjs} +1 -1
  166. package/dist/node/bus-server/index.d.mts +1 -1
  167. package/dist/node/bus-server/index.mjs +1 -1
  168. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  169. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  170. package/dist/node/transports/index.d.mts +12 -1
  171. package/dist/node/transports/index.mjs +2 -2
  172. package/dist/{orchestrator-shared-BGlN-m-V.mjs → orchestrator-shared-5vhs4wvU.mjs} +1 -1
  173. package/dist/{ownership-memory-handler-BpGdR_uG.mjs → ownership-memory-handler-BCu1EjFO.mjs} +1 -1
  174. package/dist/{package-JtjbO-Oi.mjs → package-BiZ6ehWk.mjs} +1 -1
  175. package/dist/{package-BdOoo7XE.mjs → package-BwIbyojG.mjs} +2 -2
  176. package/dist/{package-w4WZqO7J.d.mts → package-DnlJ4I1i.d.mts} +32 -10
  177. package/dist/package.json +1 -1
  178. package/dist/packages-7CsXP86g.mjs +1 -0
  179. package/dist/{packages-uNYWGMH1.d.mts → packages-DtsjAYuf.d.mts} +12 -39
  180. package/dist/{profile-N5qGUpF0.mjs → profile-DBDvy9uc.mjs} +1 -1
  181. package/dist/{provider-context-zTDSH2x9.mjs → provider-context-CSb0qX1c.mjs} +1 -1
  182. package/dist/{provider-context-CG42JlP9.mjs → provider-context-CTOrOW54.mjs} +1 -1
  183. package/dist/{reaction-D3TNwPK8.mjs → reaction-OQibmmDW.mjs} +1 -1
  184. package/dist/{resolved-sq8RXNDf.mjs → resolved-ONt3rOMh.mjs} +1 -1
  185. package/dist/rules/index.d.mts +1 -1
  186. package/dist/rules/index.mjs +1 -1
  187. package/dist/rules/schemas.d.mts +1 -1
  188. package/dist/runtime-bun/index.mjs +1 -1
  189. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  190. package/dist/runtime-node/code-execution/index.mjs +1 -1
  191. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  192. package/dist/runtime-node/extension-validation.d.mts +1 -1
  193. package/dist/runtime-node/extension-validation.mjs +1 -1
  194. package/dist/runtime-node/index.d.mts +7 -6
  195. package/dist/runtime-node/index.mjs +24 -24
  196. package/dist/runtime-node/makaio-config.d.mts +1 -1
  197. package/dist/runtime-node/makaio-config.mjs +1 -1
  198. package/dist/runtime-node/workflow-execution-bus-access.d.mts +16 -1
  199. package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
  200. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  201. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  202. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  203. package/dist/{schema-Dq-7si8u.mjs → schema-B8jinlbH.mjs} +1 -1
  204. package/dist/schemas-0eCrrru1.mjs +1 -0
  205. package/dist/{context-resolution-BZKEKzu4.d.mts → schemas-B9yLU2jM.d.mts} +134 -540
  206. package/dist/{schemas-B4MSOlcv.d.mts → schemas-BBatvMde.d.mts} +6 -6
  207. package/dist/{schemas-QWDnauKX.mjs → schemas-BUK9I-Oz.mjs} +1 -1
  208. package/dist/{schemas-Bw2-j1lm.d.mts → schemas-BfMFZ6J5.d.mts} +4 -4
  209. package/dist/{schemas-_2Syo_01.mjs → schemas-CSDiTBsU.mjs} +1 -1
  210. package/dist/{schemas-BfO5jkrL.mjs → schemas-CbhvgFQs.mjs} +1 -1
  211. package/dist/{schemas-Io717dOA.d.mts → schemas-Djt6hIjz.d.mts} +1 -1
  212. package/dist/{schemas-BaWB3EXP.d.mts → schemas-mGJIRIZ5.d.mts} +152 -152
  213. package/dist/{selection-DL3ric7K.mjs → selection-7SkHsmWs.mjs} +1 -1
  214. package/dist/services/adapter-runtime/index.d.mts +3 -3
  215. package/dist/services/adapter-runtime/index.mjs +1 -1
  216. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  217. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  218. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  219. package/dist/services/adapter-subsystem/index.mjs +1 -1
  220. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  221. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  222. package/dist/services/agent-runtime/index.d.mts +2 -2
  223. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  224. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  225. package/dist/services/automation-trigger/index.mjs +1 -1
  226. package/dist/services/capability/index.d.mts +2 -2
  227. package/dist/services/capability/index.mjs +1 -1
  228. package/dist/services/code-execution/index.d.mts +1 -1
  229. package/dist/services/code-execution/index.mjs +1 -1
  230. package/dist/services/codebase/index.d.mts +2 -2
  231. package/dist/services/codebase/namespace.d.mts +1 -1
  232. package/dist/services/codebase/schemas.d.mts +1 -1
  233. package/dist/services/compression/index.d.mts +2 -2
  234. package/dist/services/compression/namespace.d.mts +1 -1
  235. package/dist/services/compression/schemas.d.mts +1 -1
  236. package/dist/services/context-rules/index.d.mts +4 -4
  237. package/dist/services/context-rules/index.mjs +1 -1
  238. package/dist/services/execution-target/index.d.mts +3 -3
  239. package/dist/services/execution-target/index.mjs +1 -1
  240. package/dist/services/execution-target/namespace.d.mts +1 -1
  241. package/dist/services/execution-target/namespace.mjs +1 -1
  242. package/dist/services/execution-target/schemas.d.mts +1 -1
  243. package/dist/services/execution-target/schemas.mjs +1 -1
  244. package/dist/services/filesystem/index.d.mts +1 -1
  245. package/dist/services/filesystem/index.mjs +1 -1
  246. package/dist/services/filesystem/namespace.d.mts +6 -6
  247. package/dist/services/filesystem/schemas.d.mts +3 -3
  248. package/dist/services/git/namespace.mjs +1 -1
  249. package/dist/services/git/schemas.mjs +1 -1
  250. package/dist/services/harness/index.mjs +1 -1
  251. package/dist/services/index.d.mts +135 -156
  252. package/dist/services/index.mjs +1 -1
  253. package/dist/services/log-import/browser.d.mts +2 -2
  254. package/dist/services/log-import/index.d.mts +2 -2
  255. package/dist/services/log-import/log-import.d.mts +1 -1
  256. package/dist/services/log-import/log-import.mjs +1 -1
  257. package/dist/services/log-import/namespace.mjs +1 -1
  258. package/dist/services/log-import/schemas.mjs +1 -1
  259. package/dist/services/materialization/index.d.mts +13 -34
  260. package/dist/services/materialization/index.mjs +1 -1
  261. package/dist/services/model-registry/index.d.mts +1 -1
  262. package/dist/services/model-registry/index.mjs +1 -1
  263. package/dist/services/preferences/index.d.mts +2 -2
  264. package/dist/services/preferences/schemas.d.mts +1 -1
  265. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  266. package/dist/services/provider-context/index.d.mts +1 -1
  267. package/dist/services/provider-context/index.mjs +1 -1
  268. package/dist/services/provider-runtime/index.mjs +1 -1
  269. package/dist/services/session/handlers/index.d.mts +1 -1
  270. package/dist/services/session/handlers/index.mjs +1 -1
  271. package/dist/services/session/index.d.mts +9 -9
  272. package/dist/services/session/index.mjs +1 -1
  273. package/dist/services/session/messages/namespace.d.mts +1 -1
  274. package/dist/services/session/messages/namespace.mjs +1 -1
  275. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  276. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  277. package/dist/services/session/session-events/namespace.d.mts +1 -1
  278. package/dist/services/session/session-events/namespace.mjs +1 -1
  279. package/dist/services/session/storage/namespace.d.mts +1 -1
  280. package/dist/services/session/storage/schema.d.mts +1 -1
  281. package/dist/services/session/testing/index.mjs +1 -1
  282. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  283. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  284. package/dist/services/session/turns/namespace.d.mts +1 -1
  285. package/dist/services/session/turns/namespace.mjs +1 -1
  286. package/dist/services/session-editor/index.d.mts +1 -1
  287. package/dist/services/session-editor/index.mjs +1 -1
  288. package/dist/services/settings/index.d.mts +3 -3
  289. package/dist/services/settings/index.mjs +1 -1
  290. package/dist/services/settings/namespace.d.mts +6 -6
  291. package/dist/services/settings/namespace.mjs +1 -1
  292. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  293. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  294. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  295. package/dist/services/settings/storage/index.d.mts +3 -3
  296. package/dist/services/settings/storage/index.mjs +1 -1
  297. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  298. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  299. package/dist/services/subagent/index.d.mts +1 -1
  300. package/dist/services/subagent/index.mjs +1 -1
  301. package/dist/services/subagent-template/index.d.mts +2 -2
  302. package/dist/services/subagent-template/namespace.d.mts +1 -1
  303. package/dist/services/subagent-template/schemas.d.mts +1 -1
  304. package/dist/services/tool-approval/index.d.mts +1 -1
  305. package/dist/services/tool-approval/index.mjs +1 -1
  306. package/dist/services/tools/index.d.mts +1 -1
  307. package/dist/services/tools/index.mjs +1 -1
  308. package/dist/services/tray-menu/index.d.mts +3 -3
  309. package/dist/services/tray-menu/index.mjs +1 -1
  310. package/dist/services/tray-menu/namespace.d.mts +1 -1
  311. package/dist/services/tray-menu/schemas.d.mts +1 -1
  312. package/dist/services/turn/index.d.mts +1 -1
  313. package/dist/services/turn/namespace.d.mts +1 -1
  314. package/dist/services/workflow-transitions/index.d.mts +1 -1
  315. package/dist/services/workflow-transitions/index.mjs +1 -1
  316. package/dist/{session-CXOPk3yg.mjs → session-BDFNAcuY.mjs} +1 -1
  317. package/dist/{session-BOpTI79g.mjs → session-CQAuApxe.mjs} +1 -1
  318. package/dist/{session-lineage-BRhnTWqq.d.mts → session-lineage-Bwb98OUz.d.mts} +1 -1
  319. package/dist/{shared-B9AWRm9A.mjs → shared-BYP7z9xy.mjs} +1 -1
  320. package/dist/{skill-DGNtc_ww.mjs → skill-1gU2q1KT.mjs} +1 -1
  321. package/dist/{src-BWEtqWTw.mjs → src-Dlpw-Gh5.mjs} +1 -1
  322. package/dist/storage/drizzle/client.d.mts +1 -1
  323. package/dist/storage/drizzle/client.mjs +1 -1
  324. package/dist/storage/drizzle/index.d.mts +1 -1
  325. package/dist/storage/drizzle/index.mjs +1 -1
  326. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  327. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  328. package/dist/storage/handlers/index.d.mts +1 -1
  329. package/dist/storage/handlers/index.mjs +1 -1
  330. package/dist/{tool-approval-service-BFDOFUGC.mjs → tool-approval-service-rpV94znP.mjs} +1 -1
  331. package/dist/{tools-DWKWX3eV.mjs → tools-BkSFBqUz.mjs} +1 -1
  332. package/dist/{transition-CGnHfVIv.d.mts → transition-BbfxZ4U1.d.mts} +2 -2
  333. package/dist/{types-B6V3HDRl2.d.mts → types-CR415CdC2.d.mts} +1 -1
  334. package/dist/{types-FPmiU-3J.d.mts → types-CXwFtEIF.d.mts} +334 -334
  335. package/dist/ui-kernel/index.d.mts +1 -1
  336. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  337. package/dist/{version-BYeVh1pI.mjs → version-3xWJDCeF.mjs} +1 -1
  338. package/dist/{view-builder-CELaqM4Z.d.mts → view-builder-CJtK5hgs.d.mts} +209 -15
  339. package/dist/{visibility-DtDLRBdr.mjs → visibility-C5sLzqyS.mjs} +1 -1
  340. package/dist/{worker-B4nD_Erm.mjs → worker-VBlgozIo.mjs} +1 -1
  341. package/dist/worker-qgJToDTN.mjs +1 -0
  342. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  343. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  344. package/dist/workflow-engine/index.d.mts +69 -70
  345. package/dist/workflow-engine/index.mjs +1 -1
  346. package/dist/workflow-engine/package.d.mts +1 -1
  347. package/dist/workflow-engine/package.mjs +1 -1
  348. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  349. package/dist/workflow-engine/provider-operation.mjs +1 -1
  350. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  351. package/dist/workflow-engine/testing/conformance.mjs +2 -2
  352. package/dist/workflow-engine/testing/index.d.mts +1 -2
  353. package/dist/workflow-engine/testing/index.mjs +1 -1
  354. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  355. package/dist/workflow-engine/testing/sqlite.mjs +76 -48
  356. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  357. package/dist/workflow-svpU9Cig.mjs +1 -0
  358. package/dist/{workflow-transitions-c_VQbyV0.mjs → workflow-transitions-Cuo6s9uv.mjs} +1 -1
  359. package/dist/workflow-worker-7AA-u1uC.mjs +2 -0
  360. package/package.json +1 -1
  361. package/dist/artifact-ClvHqL3w.mjs +0 -1
  362. package/dist/authority-state-bootstrap-7Cgb9TR2.mjs +0 -1
  363. package/dist/extension-Cz39YNXy.mjs +0 -1
  364. package/dist/framework-packages-BHgul8Kl.mjs +0 -1
  365. package/dist/materialization-B_LA9pfy.mjs +0 -1
  366. package/dist/model-DrzPt3ou.mjs +0 -1
  367. package/dist/namespace-sCPb79-7.mjs +0 -1
  368. package/dist/packages-Bp124-gx.mjs +0 -1
  369. package/dist/provider-operation-BwvTdAsv.d.mts +0 -207
  370. package/dist/schemas-CNkUEbIr.mjs +0 -1
  371. package/dist/worker-CLsRbzpk.mjs +0 -1
  372. package/dist/workflow-H8hsEikC.mjs +0 -1
  373. package/dist/workflow-worker-CmIkKnpF.mjs +0 -2
  374. package/dist/{adapter-auth-runtime-DHHppU4f.mjs → adapter-auth-runtime-BnPqQChk.mjs} +0 -0
  375. package/dist/{adapter-binding-C6jAAjGu.d.mts → adapter-binding-BU7STlfd.d.mts} +0 -0
  376. package/dist/{ajv-krzJXh1X.mjs → ajv-Dtk5hCZS.mjs} +0 -0
  377. package/dist/{attach-error-Cb3GbeKe.mjs → attach-error-B-vXQFLQ.mjs} +0 -0
  378. package/dist/{attempt-fixtures-gGhCA_WQ.mjs → attempt-fixtures-C-jQE_7B.mjs} +0 -0
  379. package/dist/{base-orchestrator-B9OUXDR-.d.mts → base-orchestrator-DXiejwQ3.d.mts} +0 -0
  380. package/dist/{bootstrap-start-client-DrvofWwi.mjs → bootstrap-start-client-Bdv-_2Q9.mjs} +0 -0
  381. package/dist/{capability-j3NekkIu.mjs → capability-Bw4tsDQu.mjs} +0 -0
  382. package/dist/{capability-service-DA9xdAyh.d.mts → capability-service-CsWaOwvH.d.mts} +0 -0
  383. package/dist/{client-BhRxxVig.d.mts → client-DP4ksY9q.d.mts} +0 -0
  384. package/dist/{client-binary-version-verifier-DXu9mjRx.d.mts → client-binary-version-verifier-BoXRTyae.d.mts} +0 -0
  385. package/dist/{client-binary-version-verifier-0lCKZOTg.mjs → client-binary-version-verifier-DHBAzg3-.mjs} +0 -0
  386. package/dist/{clients-namespace-2TIeXofb.d.mts → clients-namespace-BVDmj8uV.d.mts} +0 -0
  387. package/dist/{config-namespace-Burux0cR.d.mts → config-namespace-BMOKEuyf.d.mts} +0 -0
  388. package/dist/{create-static-mount-CuiFK6nC.mjs → create-static-mount-GSdckRQx.mjs} +0 -0
  389. package/dist/{cross-spawn-CZygZJMH.mjs → cross-spawn-Bx_VEdpd.mjs} +0 -0
  390. package/dist/{cursor-storage-bsc9lZKk.mjs → cursor-storage-Co4itf44.mjs} +0 -0
  391. package/dist/{definition-011l3aQ8.d.mts → definition-ByVJ3n6o.d.mts} +0 -0
  392. package/dist/{definitions-CRpdnHYM.mjs → definitions-CYZTuMdL.mjs} +0 -0
  393. package/dist/{descriptor-to-package-CcjdoWP4.mjs → descriptor-to-package-CZLujoiv.mjs} +0 -0
  394. package/dist/{drizzle-Bzc-OGVI.mjs → drizzle-me-95ICP.mjs} +0 -0
  395. package/dist/{esm-i-S5TW72.mjs → esm-DILYVXmW.mjs} +0 -0
  396. package/dist/{event-B8ELuk6k.mjs → event-DmQPb5MB.mjs} +0 -0
  397. package/dist/{execution-attempt-repository-D0cCU7dI.mjs → execution-attempt-repository-DXyh1hgz.mjs} +0 -0
  398. package/dist/{extension-context-CogUIfZb.d.mts → extension-context-Cx8CetW3.d.mts} +0 -0
  399. package/dist/{extension-discovery-CuC5Nd5d.d.mts → extension-discovery-C0Nj5EVZ.d.mts} +0 -0
  400. package/dist/{extension-namespace-QoTTwKPt.mjs → extension-namespace-twXNwE4R.mjs} +0 -0
  401. package/dist/{extension-package-provenance-aYrZuS4W.mjs → extension-package-provenance-BzvG6rDO.mjs} +0 -0
  402. package/dist/{facet-BnMh7Jyc.mjs → facet-Cly0VpTI.mjs} +0 -0
  403. package/dist/{filesystem-service-DYYL4fLd.d.mts → filesystem-service-C6D7oABi.d.mts} +0 -0
  404. package/dist/{handler-DF1fVDpf.mjs → handler-BYQPNm8O.mjs} +0 -0
  405. package/dist/{host-B-_ntOMH.mjs → host-CiHn8Yog.mjs} +0 -0
  406. package/dist/{identity-OjRlG6dZ.mjs → identity-BULrIHmo.mjs} +0 -0
  407. package/dist/{index-CweK7QAS.d.mts → index-B7g7e7_f.d.mts} +0 -0
  408. package/dist/{index-luD7oSCA.d.mts → index-B9-1l1oh.d.mts} +0 -0
  409. package/dist/{index-DuoOsxow.d.mts → index-BGWkmG9i.d.mts} +0 -0
  410. package/dist/{index-DiHGEgh-.d.mts → index-BR7IiCib.d.mts} +0 -0
  411. package/dist/{index-BlkTzRHz.d.mts → index-B_VcKELo.d.mts} +0 -0
  412. package/dist/{index-CUxMqAoE2.d.mts → index-BbjxBrcp2.d.mts} +0 -0
  413. package/dist/{index-CU90gGDk2.d.mts → index-BgY_UzH82.d.mts} +0 -0
  414. package/dist/{index-CrUijdhZ.d.mts → index-BnLp-7qH.d.mts} +0 -0
  415. package/dist/{index-DhCBbChV.d.mts → index-BpWoCe22.d.mts} +0 -0
  416. package/dist/{index-CKeNzHte.d.mts → index-Bpv8EpBa.d.mts} +0 -0
  417. package/dist/{index-CbaOOgMX.d.mts → index-BrRCVo9r.d.mts} +0 -0
  418. package/dist/{index-ikP83tJm.d.mts → index-CHuB40EK.d.mts} +0 -0
  419. package/dist/{index-C0uHQitR2.d.mts → index-CIV2G6uX2.d.mts} +0 -0
  420. package/dist/{index-DsIrU-pP.d.mts → index-CNOqYviR.d.mts} +0 -0
  421. package/dist/{index-BD1_BSMP.d.mts → index-CSEhxhIc.d.mts} +0 -0
  422. package/dist/{index-DmjyHIEH.d.mts → index-D3_QOfke.d.mts} +0 -0
  423. package/dist/{index-B4MG7PBn.d.mts → index-D6qlh6Td.d.mts} +0 -0
  424. package/dist/{index-CrA9tCMf.d.mts → index-DLlTuugR.d.mts} +0 -0
  425. package/dist/{index-BKco9D6a.d.mts → index-DOKPbF-y2.d.mts} +0 -0
  426. package/dist/{index-Oejq5WGD2.d.mts → index-DZv9yNKF2.d.mts} +0 -0
  427. package/dist/{index-09JDqcgy2.d.mts → index-DrwT45ci2.d.mts} +6 -6
  428. /package/dist/{index-C7ZdyYMT.d.mts → index-DxaQ-ceV.d.mts} +0 -0
  429. /package/dist/{index-CDJUiga3.d.mts → index-HRn0Kun0.d.mts} +0 -0
  430. /package/dist/{index-BPX7lMRX.d.mts → index-IkeLI7uY.d.mts} +0 -0
  431. /package/dist/{index-BRNRgfOm.d.mts → index-_Ngf4KAa.d.mts} +0 -0
  432. /package/dist/{index-BNF8osK42.d.mts → index-b_LJnwCU2.d.mts} +0 -0
  433. /package/dist/{json-value-BBZ6uGwc.mjs → json-value-DM-EjTC1.mjs} +0 -0
  434. /package/dist/{json-value-DbwI1AMR.d.mts → json-value-DyMQrwGz.d.mts} +0 -0
  435. /package/dist/{jsonl-transport-W03tkPvB.mjs → jsonl-transport-Dfv3RLzi.mjs} +0 -0
  436. /package/dist/{lib-Wtk4Ef-T.mjs → lib-BdfAJKDj.mjs} +0 -0
  437. /package/dist/{model-registry-C9rFu3kV.mjs → model-registry-B7ThN_s3.mjs} +0 -0
  438. /package/dist/{model-registry-Cixxx2jv.mjs → model-registry-DlUErRRt.mjs} +0 -0
  439. /package/dist/{modes-DwsJ3yVl.mjs → modes-CyG4sgs_.mjs} +0 -0
  440. /package/dist/{namespace-DiwqpB-c.mjs → namespace-B8kUQpwo.mjs} +0 -0
  441. /package/dist/{namespace-NXm_zvL1.mjs → namespace-BFlSY040.mjs} +0 -0
  442. /package/dist/{namespace-Du0accdE.mjs → namespace-C9d0aoYT.mjs} +0 -0
  443. /package/dist/{namespace-Df8uPrMr.d.mts → namespace-CQaL10rI.d.mts} +0 -0
  444. /package/dist/{namespace-Br7IQt88.d.mts → namespace-CcHA54E1.d.mts} +0 -0
  445. /package/dist/{namespace-jVTsuZHX.mjs → namespace-ChjzkJIl.mjs} +0 -0
  446. /package/dist/{namespace-C3Ch35nb.d.mts → namespace-Ciyw6FxO.d.mts} +0 -0
  447. /package/dist/{namespace-C3l4AsWS.d.mts → namespace-Ct2DKREI.d.mts} +0 -0
  448. /package/dist/{namespace-aUe_P5qN.d.mts → namespace-DdcRYk7b.d.mts} +0 -0
  449. /package/dist/{namespace-D5nHBTPz.d.mts → namespace-DtXYm32M.d.mts} +0 -0
  450. /package/dist/{namespace-C9X7Qvn5.d.mts → namespace-DyeMWQKf.d.mts} +0 -0
  451. /package/dist/{namespace-BW3Bfu9h.mjs → namespace-QXCaZK3I.mjs} +0 -0
  452. /package/dist/{namespace-tjoxekmf.mjs → namespace-ZN49zpqw.mjs} +0 -0
  453. /package/dist/{namespace-D4RJjLv8.d.mts → namespace-nE7vRctI.d.mts} +0 -0
  454. /package/dist/{namespace-BGi71aDN.d.mts → namespace-sTMm1voF.d.mts} +0 -0
  455. /package/dist/{namespace-DeezOMb9.d.mts → namespace-thsiHTFH.d.mts} +0 -0
  456. /package/dist/{orchestrator-shared-B2Lb5Enk.d.mts → orchestrator-shared-CYnIz5Zd.d.mts} +0 -0
  457. /package/dist/{out-8bOYN6EF.mjs → out-Cn6vBxlH.mjs} +0 -0
  458. /package/dist/{ownership-recovery-guard-DyW5vGBr.mjs → ownership-recovery-guard-Ce9-C5Sa.mjs} +0 -0
  459. /package/dist/{package-EGTn-Ng1.mjs → package-BUSXHPOT.mjs} +0 -0
  460. /package/dist/{package-DttKA9wN.mjs → package-D4eLGGv4.mjs} +0 -0
  461. /package/dist/{platform-CxyYPrkf.mjs → platform-C-fDsuEl.mjs} +0 -0
  462. /package/dist/{providers-C-eekMxD.mjs → providers-DVlsnJaY.mjs} +0 -0
  463. /package/dist/{providers-namespace-D-gdpu0p.d.mts → providers-namespace-BxknJ03z.d.mts} +0 -0
  464. /package/dist/{quick-lru-CCEnf7y6.mjs → quick-lru-CVryNCTx.mjs} +0 -0
  465. /package/dist/{registry-Dk12tAfv.mjs → registry-Q9gCZtxz.mjs} +0 -0
  466. /package/dist/{schema-BwrsXKsP.d.mts → schema-CJfSEZ8X.d.mts} +0 -0
  467. /package/dist/{schema-C0opCPww.mjs → schema-DIHGEQx3.mjs} +0 -0
  468. /package/dist/{schema-introspection-6-r_KEJQ.mjs → schema-introspection-CSnLZJpC.mjs} +0 -0
  469. /package/dist/{schemas-DKJyKDpe.d.mts → schemas-0VbIjfrW.d.mts} +0 -0
  470. /package/dist/{schemas-scyC2tFF.mjs → schemas-BFgsIiSb.mjs} +0 -0
  471. /package/dist/{schemas-BivbWRkG.mjs → schemas-BKnJj2i-.mjs} +0 -0
  472. /package/dist/{schemas-CeHU889f.mjs → schemas-BapfTRqp.mjs} +0 -0
  473. /package/dist/{schemas-Ds_YMFjX.d.mts → schemas-CmUWeOkr.d.mts} +0 -0
  474. /package/dist/{schemas-B8hKbBwI.mjs → schemas-CnFVygzI.mjs} +0 -0
  475. /package/dist/{schemas-CsOAG1rB.d.mts → schemas-CsRcSlvA2.d.mts} +0 -0
  476. /package/dist/{schemas-uaQuIxm4.d.mts → schemas-DQ5iRisA.d.mts} +0 -0
  477. /package/dist/{schemas-BNf-WkKF.d.mts → schemas-DzDVjYjt.d.mts} +0 -0
  478. /package/dist/{schemas-CMQ2PiO2.d.mts → schemas-KDl7p-wr.d.mts} +0 -0
  479. /package/dist/{schemas-v1W9Gj9m.d.mts → schemas-Yp3PvwsM.d.mts} +0 -0
  480. /package/dist/{semver-BI7kTNsY.mjs → semver-D_D2mA48.mjs} +0 -0
  481. /package/dist/{server-lifecycle-CmuBMs3O.d.mts → server-lifecycle-Ck6_8o8v.d.mts} +0 -0
  482. /package/dist/{server-lifecycle-B_OZnoe-.mjs → server-lifecycle-hNz8U-QJ.mjs} +0 -0
  483. /package/dist/{shared-schemas-CQ6blrEW.mjs → shared-schemas-kUho6Kmw.mjs} +0 -0
  484. /package/dist/{src-BA_c2cXX.mjs → src-Du_285FN.mjs} +0 -0
  485. /package/dist/{storage-namespace-CTXxds3h.d.mts → storage-namespace-CRdQoXZ9.d.mts} +0 -0
  486. /package/dist/{storage-namespace-BZce8kkW.mjs → storage-namespace-Dtz2G1if.mjs} +0 -0
  487. /package/dist/{storage-namespace-definition-Cca-zwXU.mjs → storage-namespace-definition-BJCbqVWz.mjs} +0 -0
  488. /package/dist/{storage-namespace-definition-Dkxl1FGw.d.mts → storage-namespace-definition-NBw1Y8Pa.d.mts} +0 -0
  489. /package/dist/{supports-color-SV_FgSN2.mjs → supports-color-BNmyqLq0.mjs} +0 -0
  490. /package/dist/{telemetry-BqoC87F-.mjs → telemetry-CUkZrhW6.mjs} +0 -0
  491. /package/dist/{timeout-DVlN2Zhy.mjs → timeout-DeBYTGBR.mjs} +0 -0
  492. /package/dist/{tray-menu-service-eVVxgPLc.mjs → tray-menu-service-TWrmvXSo.mjs} +0 -0
  493. /package/dist/{types-BklZfFWo.d.mts → types-BFv-EK2G.d.mts} +0 -0
  494. /package/dist/{types-BWfAz9Sh.d.mts → types-BcGXdeva.d.mts} +0 -0
  495. /package/dist/{types-DDfy8LgJ.d.mts → types-CUCFeisO.d.mts} +0 -0
  496. /package/dist/{types--Sa8Ip8j.d.mts → types-CXrp5ldz.d.mts} +0 -0
  497. /package/dist/{types-C4ayzk8k.d.mts → types-D4N56a4O.d.mts} +0 -0
  498. /package/dist/{types-Cwza95hS.mjs → types-D9GJ7FyQ.mjs} +0 -0
  499. /package/dist/{ui-config-B35GloSX.mjs → ui-config-9hlZAJOS.mjs} +0 -0
  500. /package/dist/{variant-Dwnge3J_.mjs → variant-73kFgYBK.mjs} +0 -0
  501. /package/dist/{window-registry-CIlKN806.d.mts → window-registry-Chi2qJ5k.d.mts} +0 -0
  502. /package/dist/{window-registry-CKiMJjId.mjs → window-registry-CzAwaPKL.mjs} +0 -0
  503. /package/dist/{zod-json-schema-Dixc-B1T.mjs → zod-json-schema-B9TYYq3e.mjs} +0 -0
@@ -1 +1 @@
1
- import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-Cb3GbeKe.mjs";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,AgentSubjects as a,DEFAULT_CONSTRAINTS as o,SessionSubjects as s,SpawnSubagentRpcRequestSchema as c,SubagentConfigSchema as l,SubagentError as u,SubagentErrorCode as d,SubagentSubjects as f,dep as p,extensionToken as m}from"@makaio/framework/contracts";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new u(d.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new u(d.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new u(d.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(s.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new u(d.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new u(d.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new u(d.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new u(d.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new u(d.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new u(d.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let l={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:l,depth:i}),await e.bus.emit(f.spawned,{subagentId:p,parentSessionId:n,task:l.task,config:l,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new u(d.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(f.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(f.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(f.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,l=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{l||(l=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{l||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(f.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new u(d.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new u(d.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new u(d.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:o,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(s.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:o,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=r,t=o,n=new Set,i=0,a=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=i,this.executionOwnerId=a,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(f.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(f.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(f.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(f.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(f.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(i.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(a.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(s.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(s.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(a.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(f.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,c.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(f.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(f.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(f.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(f.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=l.parse({...e.config,task:r}),c=s.adapterName?.trim();if(!c)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:c,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:o}=await this.bus.request(s.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,o),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),o}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=l.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(s.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(s.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(f.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(f.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=m(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[p(`session`)],create:t=>new R(t.bus,o,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};
1
+ import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{r as n}from"./attach-error-B-vXQFLQ.mjs";import{MakaioBus as r}from"@makaio/framework/bus";import{AdapterSubjects as i,AgentSubjects as a,DEFAULT_CONSTRAINTS as o,SessionSubjects as s,SpawnSubagentRpcRequestSchema as c,SubagentConfigSchema as l,SubagentError as u,SubagentErrorCode as d,SubagentSubjects as f,dep as p,extensionToken as m}from"@makaio/framework/contracts";import{BaseService as h}from"@makaio/framework/service-base";import{RuntimeProviderContextResolutionError as g,resolveRuntimeProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),toolObservations:[],completedTurnUsage:new Map,completedTurnSuccess:new Map,toolCallIds:new Set,startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now())}markStarted(e){let t=this.subagents.get(e);t&&t.status===`spawning`&&this.applyStatus(t,`running`)}get(e){return this.subagents.get(e)}getByChildSessionId(e){return[...this.subagents.values()].find(t=>t.childSessionId===e)}recordTurnStarted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId=t,n.lastActivityAt=Date.now())}recordTurnCompleted(e,t){let n=this.getByChildSessionId(e);n===void 0||S(n.status)||(n.activeTurnId===t&&(n.activeTurnId=void 0),n.lastActivityAt=Date.now())}recordToolObservation(e,t,n){let r=this.getByChildSessionId(e);if(!(r===void 0||S(r.status))){if(n!==void 0){if(r.toolCallIds.has(n))return;r.toolCallIds.add(n)}r.toolObservations.push(t),r.lastActivityAt=Date.now()}}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);n&&this.applyStatus(n,t)}applyStatus(e,t){let n=Date.now();e.status=t,e.lastActivityAt=n,S(t)&&(e.activeTurnId=void 0,e.endTime=n)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new u(d.REQUEST_PENDING,`Cannot call request_input while another request is pending`);if(n.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);this.applyStatus(i,`completed`),i.result=t,i.summary=n,i.completionSource=r,this.resolveAwaiters(e)}recordCompletionCandidate(e,t,n,r,i){let a=this.subagents.get(e);if(!a)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);let o=a.completionCandidate;if(o!==void 0){if(o.turnId===t&&o.result===n&&o.summary===r&&o.source===i)return;throw new u(d.INVALID_STATE,`Conflicting subagent completion candidate`)}if(S(a.status))throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${a.status}`);if(a.pendingRequest!==void 0)throw new u(d.INVALID_STATE,`Cannot complete while an input request is pending`);a.completionCandidate={turnId:t,result:n,summary:r,source:i},a.status=`completing`,a.lastActivityAt=Date.now()}recordCompletedTurn(e,t,n,r=!0,i){let a=this.subagents.get(e);a===void 0||S(a.status)||(a.completedTurnUsage.has(t)||(a.completedTurnUsage.set(t,n===void 0?void 0:{total:{...n.total},...n.byAgent===void 0?{}:{byAgent:Object.fromEntries(Object.entries(n.byAgent).map(([e,t])=>[e,{...t}]))}}),a.completedTurnSuccess.set(t,{success:r,...i!==void 0&&{error:i}})),a.lastActivityAt=Date.now())}finalizeCompletionIfReady(e){let t=this.subagents.get(e);if(!t)throw new u(d.NOT_FOUND,`Subagent ${e} not found`);if(S(t.status))return!1;let n=t.completionCandidate;if(n===void 0||!t.completedTurnUsage.has(n.turnId))return!1;let r=t.completedTurnSuccess.get(n.turnId);if(r?.success===!1)return this.markFailed(e,r.error??`child turn failed`),!0;let i=this.freezeUsage(t);return this.applyStatus(t,`completed`),t.result=n.result,t.summary=n.summary,t.completionSource=n.source,t.usage=i,this.resolveAwaiters(e),!0}freezeUsage(e){let t=0,n=0,r=0,i=!1;for(let a of e.completedTurnUsage.values())a!==void 0&&(i=!0,t+=a.total.inputTokens,n+=a.total.cachedInputTokens??0,r+=a.total.outputTokens);return Object.freeze({...i?{inputTokens:t,cachedInputTokens:n,outputTokens:r}:{},toolCallCount:e.toolCallIds.size})}markFailed(e,t){let n=this.subagents.get(e);!n||S(n.status)||(this.applyStatus(n,`failed`),n.error=t,this.resolveAwaiters(e))}markCancelled(e){let t=this.subagents.get(e);return!t||S(t.status)?!1:(this.applyStatus(t,`cancelled`),t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0)}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource,usage:t.usage,toolObservations:[...t.toolObservations]};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`spawning`&&r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(s.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error,usage:n.usage}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new u(d.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new u(d.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new u(d.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new u(d.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new u(d.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new u(d.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let l={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:l,depth:i}),await e.bus.emit(f.spawned,{subagentId:p,parentSessionId:n,task:l.task,config:l,depth:i,...e.executionOwnerId!==void 0&&{executionOwnerId:e.executionOwnerId},...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource,toolObservations:[...i.toolObservations],usage:i.usage};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource,toolObservations:e.toolObservations,usage:e.usage}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);if(a.status===`spawning`)throw new u(d.INVALID_STATE,`Cannot send to a subagent before startup completes`);if(a.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot send to a subagent while completion is pending`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(f.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(f.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(f.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t,o=e.manager.get(n);if(!o)throw Error(`Subagent not found: ${n}`);if(o.completionCandidate!==void 0)throw new u(d.INVALID_STATE,`Cannot request input while completion is pending`);let s=crypto.randomUUID(),c=a??e.manager.constraints.defaultRequestTimeoutMs,l=!1,p,m,h=new Promise(e=>{m=e});e.manager.setPendingRequest(n,{messageId:s,question:r,context:i,resolver:e=>{l||(l=!0,p&&clearTimeout(p),m(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),c>0&&(p=setTimeout(()=>{l||e.manager.resolvePendingRequest(n,null)},c));let g=e.bus.emit(f.toParent,{subagentId:n,messageId:s,type:`request_input`,content:r,context:i}).then(()=>({published:!0}),e=>({published:!1,error:e})),_=await Promise.race([h.then(e=>({response:e})),g]);if(`response`in _)return _.response;if(!_.published)throw e.manager.resolvePendingRequest(n,null),_.error;return h}async function M(e,t){let{sessionId:n,turnId:r,result:i,summary:a}=t,o=e.manager.getByChildSessionId(n);if(o===void 0)throw new u(d.NOT_FOUND,`No subagent owns this child session`);if(o.status===`completed`||o.status===`failed`||o.status===`cancelled`)throw new u(d.ALREADY_TERMINAL,`Subagent already in terminal state: ${o.status}`);let s=o.activeTurnId;if(s===void 0)throw new u(d.INVALID_STATE,`No active turn exists for this child session`);if(r!==void 0&&r!==s)throw new u(d.INVALID_STATE,`Completion turn does not match the active child turn`);return e.manager.recordCompletionCandidate(o.subagentId,s,i,a,`tool`),await e.onCompletionCandidate?.(o.subagentId),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}function P(e,t,n,r){return{kind:`adapter`,adapterName:e,...n!==void 0&&{providerContext:n},...t.model!==void 0&&{model:t.model},...t.reasoningEffort!==void 0&&{reasoningEffort:t.reasoningEffort},...t.systemPrompt!==void 0&&{systemPrompt:t.systemPrompt},...t.adapterConfig!==void 0&&{adapterConfig:t.adapterConfig},...r!==void 0&&{cwd:r},...t.tools!==void 0&&{allowedTools:t.tools},...t.disallowedTools!==void 0&&{disallowedTools:t.disallowedTools},...t.allowedDirectories!==void 0&&{allowedDirectories:t.allowedDirectories}}}async function F(e,t){let{subagentId:n,adapterName:r,config:i,sessionId:a,task:o,targetWorkingDirectory:c,assertAdmission:l}=t,u=i.providerContext;if(u?.state===`resolved`&&i.providerConfigId!==void 0&&i.providerConfigId!==u.providerConfigId)throw Error(`Subagent providerConfigId "${i.providerConfigId}" does not match its resolved provider context "${u.providerConfigId}".`);if(u?.state===`unresolved`&&i.providerConfigId!==void 0)throw new g(`provider-context-unresolved`,r,i.providerConfigId);let d=u??(i.providerConfigId?await _(e,{adapterName:r,providerConfigId:i.providerConfigId}):void 0);await e.request(s.agent.attachResolved,{sessionId:a,role:`lead`,initialMessage:o,source:`system`,assertInitialMessageAdmission:()=>{try{l()}catch{throw Error(`Subagent startup was cancelled before initial task admission: ${n}`)}},...i.responseSchema!==void 0&&{responseSchema:i.responseSchema},...i.harnessId!==void 0&&{harnessId:i.harnessId},agent:P(r,i,d,c)},{timeout:0})}const I={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var L=class extends Error{code;constructor(e){super(`Subagent failure finalization failed (${e}).`),this.code=e,this.name=`SubagentFailureFinalizationError`}},R=class extends h{delegationAllowSet;requestHandlerPriority;executionOwnerId;manager;pendingChildSessionClose=new Set;spawningExecutions=new Set;constructor(e=r,t=o,n=new Set,i=0,a=crypto.randomUUID()){super(e),this.delegationAllowSet=n,this.requestHandlerPriority=i,this.executionOwnerId=a,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(f.spawned,async e=>{e.payload.executionOwnerId!==void 0&&e.payload.executionOwnerId!==this.executionOwnerId||this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(f.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(f.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(f.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(f.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(i.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(a.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerHandler(s.turn.completed,async e=>{await this.handleSessionTurnCompleted(e.payload)}),this.registerHandler(s.turn.started,e=>{this.handleSessionTurnStarted(e.payload)}),this.registerHandler(a.tool.completed,e=>{e.payload._import||e.payload.sessionId===void 0||e.payload.success===void 0||this.manager.recordToolObservation(e.payload.sessionId,{toolName:e.payload.toolName,outcome:e.payload.success?`success`:`failure`,...e.payload.success===!0&&e.payload.artifactResult!==void 0?{artifact:e.payload.artifactResult}:{}},e.payload.toolCallId)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus,executionOwnerId:this.executionOwnerId,onCompletionCandidate:e=>this.finalizeSubagentIfReady(e)};this.registerHandler(f.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,c.parse(t.payload));t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.await,async t=>{let n=await D(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(f.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)},{priority:this.requestHandlerPriority}),this.registerHandler(f.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(f.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(f.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(f.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear(),this.spawningExecutions.clear()}async handleSpawned(e){let{subagentId:t,parentSessionId:n,task:r,spawningToolCallId:i}=e,a=this.manager.get(t);if(!(a&&a.status!==`spawning`)&&!this.spawningExecutions.has(t)){this.spawningExecutions.add(t);try{return await this.executeSpawned(e,n,r,i)}finally{this.spawningExecutions.delete(t)}}}async executeSpawned(e,n,r,i){let{subagentId:a}=e,o=()=>this.shouldAbortSpawn(this.manager.get(a)?.status),s=l.parse({...e.config,task:r}),c=s.adapterName?.trim();if(!c)return this.failSpawn(a,n,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(a)||this.manager.track({subagentId:a,parentSessionId:n,config:s,depth:e.depth??1});let u,d;try{d=await this.buildExecutionTargetResolutionParams(n,s.executionTargetId);let e=await this.bus.requestOptional(t.resolve,d),r;if(e.handled)r=e.data.executionTarget;else if(d.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${d.executionTargetId}'`);else r=I;if(r.type!==`local`)return this.failSpawn(a,n,`adapter_start`,`Execution target type '${r.type}' is not yet supported for subagents`);u=d.executionTargetId??void 0}catch(e){return this.failSpawn(a,n,`adapter_start`,e)}let f;try{f=await this.createChildSessionForSpawn(a,n,s,u,d,i)}catch(e){return this.failSpawn(a,n,`session_create`,e)}if(!o())return this.attachSpawnedSubagent({subagentId:a,parentSessionId:n,adapterName:c,config:s,sessionId:f,task:r,targetWorkingDirectory:d.targetWorkingDirectory,shouldAbort:o})}async attachSpawnedSubagent(e){let{subagentId:t,parentSessionId:r,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,shouldAbort:l}=e;try{await F(this.bus,{subagentId:t,adapterName:i,config:a,sessionId:o,task:s,targetWorkingDirectory:c,assertAdmission:()=>{if(this.shouldAbortSpawn(this.manager.get(t)?.status))throw Error(`startup cancelled`)}})}catch(e){if(l())return;let i=n(e);return this.failSpawn(t,r,i?.stage===`initial_message`?`agent_start`:`adapter_start`,e)}l()||this.manager.markStarted(t)}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:o}=await this.bus.request(s.create,this.buildChildSessionCreatePayload(t,n,r,i.targetWorkingDirectory,a));return this.manager.setChildSessionId(e,o),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),o}async failSpawn(e,t,n,r){let i=r instanceof Error?r:Error(String(r));this.manager.markFailed(e,i.message);let[a,o]=await Promise.allSettled([this.manager.get(e)?.childSessionId===void 0?Promise.resolve():this.requestChildSessionClose(e),this.emitExecutionFailed(e,t,n,i)]),s=[];if(a.status===`rejected`&&s.push(new L(`child-session-close-failed`)),o.status===`rejected`&&s.push(new L(`failure-publication-failed`)),s.length>0)throw AggregateError([i,...s],`Subagent spawn failed and failure finalization also failed.`);return i.message}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{...r.executionTargetId!==void 0&&{executionTargetId:r.executionTargetId},...r.targetWorkingDirectory!==void 0&&{targetWorkingDirectory:r.targetWorkingDirectory}}}buildChildSessionCreatePayload(e,t,n,r,i){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{targetWorkingDirectory:r},...i!==void 0&&{spawningToolCallId:i}}}async handleExecute(e){let t=l.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(s.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){try{await this.requestChildSessionClose(e)}catch{console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,new L(`child-session-close-failed`))}}async requestChildSessionClose(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e),await this.bus.request(s.close,{sessionId:t.childSessionId})}}shouldAbortSpawn(e){return e===void 0||e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,turnId:n,outcome:r,message:i,error:a}=e;if(!(!t||!n))for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let o=r??`completed`;if(o===`completed`)try{this.manager.recordCompletionCandidate(e.subagentId,n,i??``,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}else if(o===`error`)try{this.manager.recordCompletionCandidate(e.subagentId,n,a??`child turn failed`,void 0,`turn`),await this.finalizeSubagentIfReady(e.subagentId)}catch{return}return}}async handleSessionTurnCompleted(e){if(e.ingestionMarker!==`backfill`){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e.sessionId){if(this.manager.recordTurnCompleted(e.sessionId,e.turnId),this.manager.recordCompletedTurn(t.subagentId,e.turnId,e.usage,e.success,e.error),t.completionCandidate?.turnId!==e.turnId)return;await this.finalizeSubagentIfReady(t.subagentId);return}}}handleSessionTurnStarted(e){e.ingestionMarker!==`backfill`&&this.manager.recordTurnStarted(e.sessionId,e.turnId)}async finalizeSubagentIfReady(e){if(!this.manager.finalizeCompletionIfReady(e))return;let t=this.manager.get(e);await this.bus.emit(f.completed,{subagentId:e,success:t?.status===`completed`,...t?.status===`completed`?{result:t.summary?`${t.summary}\n\n${t.result??``}`:t?.result,usage:t.usage}:{error:t?.error??`child turn failed`}})}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(f.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i})}};const z=m(`subagent-service`);function B(e=0){return{name:z.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[p(`session`)],create:t=>new R(t.bus,o,new Set,e)}}const V=B();export{R as a,L as i,B as n,C as o,V as r,y as s,z as t};