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

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 (494) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{account-identity-B3vLwm9O.mjs → account-identity-DCBpVurJ.mjs} +1 -1
  3. package/dist/{adapter-Dz1fX5Wa.mjs → adapter-D6IpEDIo.mjs} +1 -1
  4. package/dist/adapters/config/index.d.mts +1 -1
  5. package/dist/adapters/config/index.mjs +1 -1
  6. package/dist/adapters/index.d.mts +2 -2
  7. package/dist/adapters/index.mjs +1 -1
  8. package/dist/adapters/node.d.mts +1 -1
  9. package/dist/adapters/node.mjs +1 -1
  10. package/dist/artifact-OnwP6uaD.mjs +1 -0
  11. package/dist/{attempt-record-codec-BcAPEIW3.mjs → attempt-record-codec-CqKq0NIB.mjs} +1 -1
  12. package/dist/{auth-C6tVtaOX.mjs → auth-CeH3w2fi.mjs} +1 -1
  13. package/dist/authority-state-bootstrap-rnsTk0u7.mjs +1 -0
  14. package/dist/{automation-trigger-ByjNlClm.mjs → automation-trigger-D_xKqEoV.mjs} +1 -1
  15. package/dist/bus/index.mjs +1 -1
  16. package/dist/{caller-owned-adapter-stub-C1M7FKrv.mjs → caller-owned-adapter-stub-egWCuKcE.mjs} +1 -1
  17. package/dist/{canonical-model-DXOvCaVg.mjs → canonical-model-DwuFQ02A.mjs} +1 -1
  18. package/dist/{capabilities-DEvmD9VJ.mjs → capabilities-DGqMG9M3.mjs} +1 -1
  19. package/dist/{client-BkznbdsO.mjs → client-CTqzLpVx.mjs} +1 -1
  20. package/dist/clients/index.d.mts +1 -1
  21. package/dist/clients/index.mjs +1 -1
  22. package/dist/clients/managed-install.d.mts +1 -1
  23. package/dist/clients/managed-install.mjs +1 -1
  24. package/dist/code-execution/worker-entry.d.mts +1 -1
  25. package/dist/code-execution/worker-entry.mjs +1 -1
  26. package/dist/{code-execution-Ckmn8OZu.mjs → code-execution-BMmUATcc.mjs} +1 -1
  27. package/dist/{code-execution-CweDSWco.mjs → code-execution-C2PgBdmE.mjs} +1 -1
  28. package/dist/{code-execution-DqkQjKa1.mjs → code-execution-Mo1jztUH.mjs} +1 -1
  29. package/dist/{compression-CtgeVLpP.mjs → compression-3DauETKU.mjs} +1 -1
  30. package/dist/{config-namespace-CjWvw8ij.mjs → config-namespace-MjFuIPyL.mjs} +1 -1
  31. package/dist/contracts/adapter/index.d.mts +2 -2
  32. package/dist/contracts/adapter/index.mjs +1 -1
  33. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  34. package/dist/contracts/artifact/index.d.mts +3 -3
  35. package/dist/contracts/artifact/index.mjs +1 -1
  36. package/dist/contracts/auth/index.d.mts +2 -2
  37. package/dist/contracts/auth/index.mjs +1 -1
  38. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  39. package/dist/contracts/automation-trigger/index.mjs +1 -1
  40. package/dist/contracts/canonical-model/index.d.mts +1 -1
  41. package/dist/contracts/canonical-model/index.mjs +1 -1
  42. package/dist/contracts/capabilities/index.d.mts +1 -1
  43. package/dist/contracts/capabilities/index.mjs +1 -1
  44. package/dist/contracts/client/index.d.mts +2 -2
  45. package/dist/contracts/client/index.mjs +1 -1
  46. package/dist/contracts/code-execution/index.d.mts +1 -1
  47. package/dist/contracts/code-execution/index.mjs +1 -1
  48. package/dist/contracts/common/index.d.mts +1 -1
  49. package/dist/contracts/config/index.d.mts +1 -1
  50. package/dist/contracts/config/index.mjs +1 -1
  51. package/dist/contracts/extension/index.d.mts +5 -5
  52. package/dist/contracts/extension/index.mjs +1 -1
  53. package/dist/contracts/facet/index.d.mts +1 -1
  54. package/dist/contracts/facet/index.mjs +1 -1
  55. package/dist/contracts/harness/index.d.mts +1 -1
  56. package/dist/contracts/harness/index.mjs +1 -1
  57. package/dist/contracts/host/index.d.mts +1 -1
  58. package/dist/contracts/host/index.mjs +1 -1
  59. package/dist/contracts/index.d.mts +100 -100
  60. package/dist/contracts/index.mjs +1 -1
  61. package/dist/contracts/materialization/index.d.mts +2 -3
  62. package/dist/contracts/materialization/index.mjs +1 -1
  63. package/dist/contracts/model-registry/index.d.mts +1 -1
  64. package/dist/contracts/model-registry/index.mjs +1 -1
  65. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  66. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  67. package/dist/contracts/platform/index.d.mts +1 -1
  68. package/dist/contracts/platform/index.mjs +1 -1
  69. package/dist/contracts/provider/index.d.mts +2 -2
  70. package/dist/contracts/provider/index.mjs +1 -1
  71. package/dist/contracts/reaction/index.d.mts +1 -1
  72. package/dist/contracts/reaction/index.mjs +1 -1
  73. package/dist/contracts/session/index.d.mts +2 -2
  74. package/dist/contracts/session/index.mjs +1 -1
  75. package/dist/contracts/shared/index.d.mts +2 -2
  76. package/dist/contracts/shared/index.mjs +1 -1
  77. package/dist/contracts/skill/index.d.mts +1 -1
  78. package/dist/contracts/skill/index.mjs +1 -1
  79. package/dist/contracts/telemetry/index.d.mts +1 -1
  80. package/dist/contracts/telemetry/index.mjs +1 -1
  81. package/dist/contracts/timeout/index.d.mts +1 -1
  82. package/dist/contracts/timeout/index.mjs +1 -1
  83. package/dist/contracts/toast/index.mjs +1 -1
  84. package/dist/contracts/variant/index.d.mts +1 -1
  85. package/dist/contracts/variant/index.mjs +1 -1
  86. package/dist/contracts/worker/index.d.mts +1 -1
  87. package/dist/contracts/worker/index.mjs +1 -1
  88. package/dist/contracts/workflow/index.d.mts +2 -2
  89. package/dist/contracts/workflow/index.mjs +1 -1
  90. package/dist/{contribution-CQIpPQLl.d.mts → contribution-BoTMoHVB.d.mts} +2 -2
  91. package/dist/{definition-Cdpw5l9g.d.mts → definition-BgY763Q4.d.mts} +1 -1
  92. package/dist/{definition-BH4QLGLI.mjs → definition-YGj42UeO.mjs} +1 -1
  93. package/dist/{detached-extension-handle-2yUaviLu.mjs → detached-extension-handle-B9c_6Pcb.mjs} +1 -1
  94. package/dist/{execution-attempt-owner-recovery-BRjtmTGv.mjs → execution-attempt-owner-recovery-BNERIDH0.mjs} +1 -1
  95. package/dist/{execution-attempt-repository-CPk3F98N.d.mts → execution-attempt-repository-CtFZfBfp.d.mts} +1 -1
  96. package/dist/{execution-target-BcoF_oDB.mjs → execution-target-CqaBmnvX.mjs} +1 -1
  97. package/dist/{extension-Bfkr2DBs.mjs → extension-B51JzHJu.mjs} +1 -1
  98. package/dist/extension-C4lFc8-j.mjs +1 -0
  99. package/dist/{filesystem-service-CiUw0YN5.mjs → filesystem-service-DGqU-6x-.mjs} +1 -1
  100. package/dist/framework-packages-CZJDukan.mjs +1 -0
  101. package/dist/git/index.mjs +1 -1
  102. package/dist/{globby-QBDqstzq.mjs → globby-BT0rrriG.mjs} +1 -1
  103. package/dist/{handlers-BsHAFtye.mjs → handlers-CBbFzDHc.mjs} +1 -1
  104. package/dist/{harness-YQ2ewID9.mjs → harness-GNtHsoh4.mjs} +1 -1
  105. package/dist/{hook-responses-DK6uu35J.d.mts → hook-responses-BSCAdJ3i.d.mts} +1 -1
  106. package/dist/{index-B9vEfalH.d.mts → index-BVRQOZbm.d.mts} +1 -1
  107. package/dist/{index-C3uCMCHI.d.mts → index-BZlmWCcW.d.mts} +3 -3
  108. package/dist/{index-BlJbchHp.d.mts → index-BZtasAZP.d.mts} +1 -1
  109. package/dist/{index-Cjy1_Hc2.d.mts → index-BdbYIlDL.d.mts} +18 -18
  110. package/dist/{index-B8Tc0urp.d.mts → index-BkY6zO7p.d.mts} +138 -115
  111. package/dist/{index-DmTBlEzu.d.mts → index-CDLHgV7v.d.mts} +15 -15
  112. package/dist/{index-DQWEOn6i.d.mts → index-CQtttPGm.d.mts} +1 -1
  113. package/dist/{index-DvV7vEKt.d.mts → index-CYmQt2lF.d.mts} +37 -37
  114. package/dist/{index-COSxBdTp.d.mts → index-CYwbfa0_.d.mts} +2 -2
  115. package/dist/{index-CXZ8ODDT.d.mts → index-C_OLvAr_.d.mts} +1 -1
  116. package/dist/{index-1y-PUD3B.d.mts → index-Cau0jTTM.d.mts} +1 -1
  117. package/dist/{index-BDAPOKi3.d.mts → index-CoGo6HFE.d.mts} +8 -8
  118. package/dist/{index-CvWUgywU.d.mts → index-D0DfEO45.d.mts} +1 -1
  119. package/dist/{index-CU90gGDk2.d.mts → index-DIYgFhTZ2.d.mts} +4 -4
  120. package/dist/{index-BDs5tDcM.d.mts → index-DJ0Muy2s.d.mts} +8 -8
  121. package/dist/{index-jZXIrHlY.d.mts → index-F6hV4tWI.d.mts} +23 -23
  122. package/dist/{index-DwFnHNoq2.d.mts → index-LwOw7ZLk2.d.mts} +22 -22
  123. package/dist/{index-DXv51ZIb.d.mts → index-PTp68NH1.d.mts} +127 -127
  124. package/dist/{index-Dne0xNUI.d.mts → index-R2BZejEz.d.mts} +591 -726
  125. package/dist/{index-CsDj-DEW.d.mts → index-RpG4EP3u.d.mts} +1 -1
  126. package/dist/{index-DtHmaj-q.d.mts → index-dL0Oet1j.d.mts} +1 -1
  127. package/dist/{index-D9CdrFKz2.d.mts → index-mylsCg6V2.d.mts} +1 -1
  128. package/dist/{index-D5UpsCNq.d.mts → index-nPpqnP7P.d.mts} +1 -1
  129. package/dist/{index-zCstNu9J2.d.mts → index-oucWFlFP2.d.mts} +12 -12
  130. package/dist/kernel/cli/index.d.mts +2 -2
  131. package/dist/kernel/cli/index.mjs +1 -1
  132. package/dist/kernel/cli/register.d.mts +1 -1
  133. package/dist/kernel/cli/register.mjs +1 -1
  134. package/dist/kernel/cli/schemas.mjs +1 -1
  135. package/dist/kernel/extension/index.d.mts +1 -1
  136. package/dist/kernel/extension/index.mjs +1 -1
  137. package/dist/kernel/index.d.mts +5 -5
  138. package/dist/kernel/index.mjs +1 -1
  139. package/dist/kernel/namespace/index.d.mts +1 -1
  140. package/dist/kernel/namespace/index.mjs +1 -1
  141. package/dist/kernel/observability/index.d.mts +1 -1
  142. package/dist/kernel/observability/index.mjs +1 -1
  143. package/dist/kernel/providers/index.d.mts +1 -1
  144. package/dist/kernel/providers/index.mjs +1 -1
  145. package/dist/kernel/window/index.d.mts +1 -1
  146. package/dist/kernel/window/index.mjs +1 -1
  147. package/dist/kind-registration-BNhVCSaT.mjs +1 -0
  148. package/dist/{lib-BB0XjVs6.mjs → lib-B8Yv4IY-.mjs} +1 -1
  149. package/dist/{lib-DNGNIb-O.mjs → lib-hwdGyO-m.mjs} +1 -1
  150. package/dist/{load-extensions-CWlR-8BM.mjs → load-extensions-CNT2Nd9h.mjs} +1 -1
  151. package/dist/{load-extensions-C3Y3y9EW.d.mts → load-extensions-D0yT_Kta.d.mts} +1 -1
  152. package/dist/materialization-Dx1z_MDj.mjs +1 -0
  153. package/dist/mcp-http-server/index.mjs +1 -1
  154. package/dist/model-B6t_-_sp.mjs +1 -0
  155. package/dist/{namespace-Bz3qcZBD.d.mts → namespace-BY5-nA4j.d.mts} +6 -6
  156. package/dist/{namespace-C3Ch35nb.d.mts → namespace-C7wggVcn.d.mts} +18 -18
  157. package/dist/{namespace-agOiy4kr.d.mts → namespace-CPC1vbOu.d.mts} +1 -1
  158. package/dist/{namespace-B8i86gVL.d.mts → namespace-D1qK-Ed3.d.mts} +2 -2
  159. package/dist/namespace-D4zmxaC4.mjs +1 -0
  160. package/dist/{namespace-DeezOMb9.d.mts → namespace-Dh5fTXYt.d.mts} +2 -2
  161. package/dist/{namespace-BL7lHlmg.mjs → namespace-ZAIFBrIy.mjs} +1 -1
  162. package/dist/{native-session-supervisor-LKio8XZn.mjs → native-session-supervisor-BlGzmZrH.mjs} +1 -1
  163. package/dist/node/bus-server/index.d.mts +1 -1
  164. package/dist/node/bus-server/index.mjs +1 -1
  165. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  166. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  167. package/dist/{orchestrator-shared-BGlN-m-V.mjs → orchestrator-shared-BKMtjTE9.mjs} +1 -1
  168. package/dist/{ownership-memory-handler-BpGdR_uG.mjs → ownership-memory-handler-BCu1EjFO.mjs} +1 -1
  169. package/dist/{package-w4WZqO7J.d.mts → package-C9XYuN9J.d.mts} +3 -3
  170. package/dist/{package-BdOoo7XE.mjs → package-D7c2HC-S.mjs} +1 -1
  171. package/dist/{package-JtjbO-Oi.mjs → package-buHQFmTH.mjs} +1 -1
  172. package/dist/package.json +1 -1
  173. package/dist/packages-BhhBcPgz.mjs +1 -0
  174. package/dist/{packages-uNYWGMH1.d.mts → packages-DAqep89i.d.mts} +12 -39
  175. package/dist/{profile-N5qGUpF0.mjs → profile-DBDvy9uc.mjs} +1 -1
  176. package/dist/{provider-context-zTDSH2x9.mjs → provider-context-CSb0qX1c.mjs} +1 -1
  177. package/dist/{provider-context-CG42JlP9.mjs → provider-context-CTOrOW54.mjs} +1 -1
  178. package/dist/{reaction-D3TNwPK8.mjs → reaction-OQibmmDW.mjs} +1 -1
  179. package/dist/{resolved-sq8RXNDf.mjs → resolved-ONt3rOMh.mjs} +1 -1
  180. package/dist/rules/index.d.mts +1 -1
  181. package/dist/rules/index.mjs +1 -1
  182. package/dist/rules/schemas.d.mts +1 -1
  183. package/dist/runtime-bun/index.mjs +1 -1
  184. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  185. package/dist/runtime-node/code-execution/index.mjs +1 -1
  186. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  187. package/dist/runtime-node/extension-validation.d.mts +1 -1
  188. package/dist/runtime-node/extension-validation.mjs +1 -1
  189. package/dist/runtime-node/index.d.mts +6 -6
  190. package/dist/runtime-node/index.mjs +20 -20
  191. package/dist/runtime-node/makaio-config.d.mts +1 -1
  192. package/dist/runtime-node/makaio-config.mjs +1 -1
  193. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  194. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  195. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  196. package/dist/{schema-Dq-7si8u.mjs → schema-B8jinlbH.mjs} +1 -1
  197. package/dist/{schemas-B4MSOlcv.d.mts → schemas-BSBb1KFq.d.mts} +10 -10
  198. package/dist/{schemas-QWDnauKX.mjs → schemas-BUK9I-Oz.mjs} +1 -1
  199. package/dist/{schemas-uaQuIxm4.d.mts → schemas-BjNlwTDl.d.mts} +2 -2
  200. package/dist/{context-resolution-BZKEKzu4.d.mts → schemas-C5FreSE0.d.mts} +133 -539
  201. package/dist/{schemas-_2Syo_01.mjs → schemas-CSDiTBsU.mjs} +1 -1
  202. package/dist/{schemas-BfO5jkrL.mjs → schemas-CbhvgFQs.mjs} +1 -1
  203. package/dist/{schemas-Bw2-j1lm.d.mts → schemas-DmE-a0kN.d.mts} +4 -4
  204. package/dist/{schemas-Io717dOA.d.mts → schemas-gfrOgGau.d.mts} +1 -1
  205. package/dist/schemas-hzbKeyyt.mjs +1 -0
  206. package/dist/{selection-DL3ric7K.mjs → selection-7SkHsmWs.mjs} +1 -1
  207. package/dist/services/adapter-runtime/index.d.mts +3 -3
  208. package/dist/services/adapter-runtime/index.mjs +1 -1
  209. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  210. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  211. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  212. package/dist/services/adapter-subsystem/index.mjs +1 -1
  213. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  214. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  215. package/dist/services/agent-runtime/index.d.mts +2 -2
  216. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  217. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  218. package/dist/services/automation-trigger/index.mjs +1 -1
  219. package/dist/services/capability/index.d.mts +2 -2
  220. package/dist/services/capability/index.mjs +1 -1
  221. package/dist/services/code-execution/index.d.mts +1 -1
  222. package/dist/services/code-execution/index.mjs +1 -1
  223. package/dist/services/codebase/index.d.mts +2 -2
  224. package/dist/services/codebase/namespace.d.mts +1 -1
  225. package/dist/services/codebase/schemas.d.mts +1 -1
  226. package/dist/services/compression/index.d.mts +2 -2
  227. package/dist/services/compression/namespace.d.mts +1 -1
  228. package/dist/services/compression/schemas.d.mts +1 -1
  229. package/dist/services/context-rules/index.d.mts +4 -4
  230. package/dist/services/context-rules/index.mjs +1 -1
  231. package/dist/services/execution-target/index.d.mts +3 -3
  232. package/dist/services/execution-target/index.mjs +1 -1
  233. package/dist/services/execution-target/namespace.d.mts +1 -1
  234. package/dist/services/execution-target/namespace.mjs +1 -1
  235. package/dist/services/execution-target/schemas.d.mts +1 -1
  236. package/dist/services/execution-target/schemas.mjs +1 -1
  237. package/dist/services/filesystem/index.d.mts +1 -1
  238. package/dist/services/filesystem/index.mjs +1 -1
  239. package/dist/services/filesystem/namespace.d.mts +6 -6
  240. package/dist/services/filesystem/schemas.d.mts +3 -3
  241. package/dist/services/git/namespace.mjs +1 -1
  242. package/dist/services/git/schemas.mjs +1 -1
  243. package/dist/services/harness/index.mjs +1 -1
  244. package/dist/services/index.d.mts +61 -82
  245. package/dist/services/index.mjs +1 -1
  246. package/dist/services/log-import/browser.d.mts +2 -2
  247. package/dist/services/log-import/index.d.mts +2 -2
  248. package/dist/services/log-import/log-import.d.mts +1 -1
  249. package/dist/services/log-import/log-import.mjs +1 -1
  250. package/dist/services/log-import/namespace.mjs +1 -1
  251. package/dist/services/log-import/schemas.mjs +1 -1
  252. package/dist/services/materialization/index.d.mts +13 -34
  253. package/dist/services/materialization/index.mjs +1 -1
  254. package/dist/services/model-registry/index.d.mts +1 -1
  255. package/dist/services/model-registry/index.mjs +1 -1
  256. package/dist/services/preferences/index.d.mts +2 -2
  257. package/dist/services/preferences/schemas.d.mts +1 -1
  258. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  259. package/dist/services/provider-context/index.d.mts +1 -1
  260. package/dist/services/provider-context/index.mjs +1 -1
  261. package/dist/services/provider-runtime/index.mjs +1 -1
  262. package/dist/services/session/handlers/index.d.mts +1 -1
  263. package/dist/services/session/handlers/index.mjs +1 -1
  264. package/dist/services/session/index.d.mts +9 -9
  265. package/dist/services/session/index.mjs +1 -1
  266. package/dist/services/session/messages/namespace.d.mts +1 -1
  267. package/dist/services/session/messages/namespace.mjs +1 -1
  268. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  269. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  270. package/dist/services/session/session-events/namespace.d.mts +1 -1
  271. package/dist/services/session/session-events/namespace.mjs +1 -1
  272. package/dist/services/session/storage/namespace.d.mts +1 -1
  273. package/dist/services/session/storage/schema.d.mts +1 -1
  274. package/dist/services/session/testing/index.mjs +1 -1
  275. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  276. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  277. package/dist/services/session/turns/namespace.d.mts +1 -1
  278. package/dist/services/session/turns/namespace.mjs +1 -1
  279. package/dist/services/session-editor/index.d.mts +1 -1
  280. package/dist/services/session-editor/index.mjs +1 -1
  281. package/dist/services/settings/index.d.mts +3 -3
  282. package/dist/services/settings/index.mjs +1 -1
  283. package/dist/services/settings/namespace.d.mts +10 -10
  284. package/dist/services/settings/namespace.mjs +1 -1
  285. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  286. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  287. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  288. package/dist/services/settings/storage/index.d.mts +3 -3
  289. package/dist/services/settings/storage/index.mjs +1 -1
  290. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  291. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  292. package/dist/services/subagent/index.d.mts +1 -1
  293. package/dist/services/subagent/index.mjs +1 -1
  294. package/dist/services/subagent-template/index.d.mts +2 -2
  295. package/dist/services/subagent-template/namespace.d.mts +1 -1
  296. package/dist/services/subagent-template/schemas.d.mts +1 -1
  297. package/dist/services/tool-approval/index.d.mts +1 -1
  298. package/dist/services/tool-approval/index.mjs +1 -1
  299. package/dist/services/tools/index.d.mts +1 -1
  300. package/dist/services/tools/index.mjs +1 -1
  301. package/dist/services/tray-menu/index.d.mts +3 -3
  302. package/dist/services/tray-menu/index.mjs +1 -1
  303. package/dist/services/tray-menu/namespace.d.mts +1 -1
  304. package/dist/services/tray-menu/schemas.d.mts +1 -1
  305. package/dist/services/turn/index.d.mts +1 -1
  306. package/dist/services/turn/namespace.d.mts +1 -1
  307. package/dist/services/workflow-transitions/index.d.mts +1 -1
  308. package/dist/services/workflow-transitions/index.mjs +1 -1
  309. package/dist/{session-CXOPk3yg.mjs → session-BDFNAcuY.mjs} +1 -1
  310. package/dist/{session-BOpTI79g.mjs → session-CQAuApxe.mjs} +1 -1
  311. package/dist/{shared-B9AWRm9A.mjs → shared-BYP7z9xy.mjs} +1 -1
  312. package/dist/{skill-DGNtc_ww.mjs → skill-1gU2q1KT.mjs} +1 -1
  313. package/dist/{src-BWEtqWTw.mjs → src-D4Gx0QHf.mjs} +1 -1
  314. package/dist/storage/drizzle/client.d.mts +1 -1
  315. package/dist/storage/drizzle/client.mjs +1 -1
  316. package/dist/storage/drizzle/index.d.mts +1 -1
  317. package/dist/storage/drizzle/index.mjs +1 -1
  318. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  319. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  320. package/dist/storage/handlers/index.d.mts +1 -1
  321. package/dist/storage/handlers/index.mjs +1 -1
  322. package/dist/{tool-approval-service-BFDOFUGC.mjs → tool-approval-service-7mzJVMo_.mjs} +1 -1
  323. package/dist/{tools-DWKWX3eV.mjs → tools-Cyo6BuGM.mjs} +1 -1
  324. package/dist/{transition-CGnHfVIv.d.mts → transition-CwMPKBjz.d.mts} +2 -2
  325. package/dist/{types-B6V3HDRl2.d.mts → types-BOF825V52.d.mts} +1 -1
  326. package/dist/{types-FPmiU-3J.d.mts → types-Dg_acP9p.d.mts} +18 -18
  327. package/dist/ui-kernel/index.d.mts +1 -1
  328. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  329. package/dist/{version-BYeVh1pI.mjs → version-3xWJDCeF.mjs} +1 -1
  330. package/dist/{view-builder-CELaqM4Z.d.mts → view-builder-D76L0Db8.d.mts} +209 -15
  331. package/dist/{visibility-DtDLRBdr.mjs → visibility-C5sLzqyS.mjs} +1 -1
  332. package/dist/{worker-B4nD_Erm.mjs → worker-9X0QNB1k.mjs} +1 -1
  333. package/dist/{worker-CLsRbzpk.mjs → worker-BwUhRg7i.mjs} +1 -1
  334. package/dist/workflow-B3MWrYhG.mjs +1 -0
  335. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  336. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  337. package/dist/workflow-engine/index.d.mts +77 -77
  338. package/dist/workflow-engine/index.mjs +1 -1
  339. package/dist/workflow-engine/package.d.mts +1 -1
  340. package/dist/workflow-engine/package.mjs +1 -1
  341. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  342. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  343. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  344. package/dist/workflow-engine/testing/index.d.mts +2 -2
  345. package/dist/workflow-engine/testing/index.mjs +1 -1
  346. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  347. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  348. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  349. package/dist/{workflow-transitions-c_VQbyV0.mjs → workflow-transitions-B7HtjuAn.mjs} +1 -1
  350. package/dist/workflow-worker-zYb2UguP.mjs +2 -0
  351. package/package.json +1 -1
  352. package/dist/artifact-ClvHqL3w.mjs +0 -1
  353. package/dist/authority-state-bootstrap-7Cgb9TR2.mjs +0 -1
  354. package/dist/extension-Cz39YNXy.mjs +0 -1
  355. package/dist/framework-packages-BHgul8Kl.mjs +0 -1
  356. package/dist/materialization-B_LA9pfy.mjs +0 -1
  357. package/dist/model-DrzPt3ou.mjs +0 -1
  358. package/dist/namespace-sCPb79-7.mjs +0 -1
  359. package/dist/packages-Bp124-gx.mjs +0 -1
  360. package/dist/schemas-CNkUEbIr.mjs +0 -1
  361. package/dist/workflow-H8hsEikC.mjs +0 -1
  362. package/dist/workflow-worker-CmIkKnpF.mjs +0 -2
  363. /package/dist/{adapter-auth-runtime-DHHppU4f.mjs → adapter-auth-runtime-DGY1CDxj.mjs} +0 -0
  364. /package/dist/{adapter-binding-C6jAAjGu.d.mts → adapter-binding-fGIz-ss3.d.mts} +0 -0
  365. /package/dist/{ajv-krzJXh1X.mjs → ajv-DWgn_plp.mjs} +0 -0
  366. /package/dist/{attach-error-Cb3GbeKe.mjs → attach-error-B-vXQFLQ.mjs} +0 -0
  367. /package/dist/{attempt-fixtures-gGhCA_WQ.mjs → attempt-fixtures-Dpfgqll0.mjs} +0 -0
  368. /package/dist/{base-orchestrator-B9OUXDR-.d.mts → base-orchestrator-BeLqYKJG.d.mts} +0 -0
  369. /package/dist/{bootstrap-start-client-DrvofWwi.mjs → bootstrap-start-client-BYoxrgMk.mjs} +0 -0
  370. /package/dist/{capability-j3NekkIu.mjs → capability-Bw4tsDQu.mjs} +0 -0
  371. /package/dist/{capability-service-DA9xdAyh.d.mts → capability-service-BlYnun2M.d.mts} +0 -0
  372. /package/dist/{client-BhRxxVig.d.mts → client-CtOWHpFB.d.mts} +0 -0
  373. /package/dist/{client-binary-version-verifier-DXu9mjRx.d.mts → client-binary-version-verifier-BwmToeS1.d.mts} +0 -0
  374. /package/dist/{client-binary-version-verifier-0lCKZOTg.mjs → client-binary-version-verifier-sv-Uv0lB.mjs} +0 -0
  375. /package/dist/{clients-namespace-2TIeXofb.d.mts → clients-namespace-Bf73bcZh.d.mts} +0 -0
  376. /package/dist/{config-namespace-Burux0cR.d.mts → config-namespace-BbLLd4V0.d.mts} +0 -0
  377. /package/dist/{create-static-mount-CuiFK6nC.mjs → create-static-mount-BQnyEUH1.mjs} +0 -0
  378. /package/dist/{cross-spawn-CZygZJMH.mjs → cross-spawn-DPrJR9Nq.mjs} +0 -0
  379. /package/dist/{cursor-storage-bsc9lZKk.mjs → cursor-storage-iJ6vBOWd.mjs} +0 -0
  380. /package/dist/{definition-011l3aQ8.d.mts → definition-aS9AM2ht.d.mts} +0 -0
  381. /package/dist/{definitions-CRpdnHYM.mjs → definitions-CYZTuMdL.mjs} +0 -0
  382. /package/dist/{descriptor-to-package-CcjdoWP4.mjs → descriptor-to-package-FBkLjHZo.mjs} +0 -0
  383. /package/dist/{drizzle-Bzc-OGVI.mjs → drizzle-CIf_jdYI.mjs} +0 -0
  384. /package/dist/{esm-i-S5TW72.mjs → esm-BH4Kmq3r.mjs} +0 -0
  385. /package/dist/{event-B8ELuk6k.mjs → event-m7_IdhOS.mjs} +0 -0
  386. /package/dist/{execution-attempt-repository-D0cCU7dI.mjs → execution-attempt-repository-D_qR7NyG.mjs} +0 -0
  387. /package/dist/{extension-context-CogUIfZb.d.mts → extension-context-41A1ZUus.d.mts} +0 -0
  388. /package/dist/{extension-discovery-CuC5Nd5d.d.mts → extension-discovery-DNB1VVsV.d.mts} +0 -0
  389. /package/dist/{extension-namespace-QoTTwKPt.mjs → extension-namespace-twXNwE4R.mjs} +0 -0
  390. /package/dist/{extension-package-provenance-aYrZuS4W.mjs → extension-package-provenance-CTYdo0yF.mjs} +0 -0
  391. /package/dist/{facet-BnMh7Jyc.mjs → facet-Cly0VpTI.mjs} +0 -0
  392. /package/dist/{filesystem-service-DYYL4fLd.d.mts → filesystem-service-DOrm4Llq.d.mts} +0 -0
  393. /package/dist/{handler-DF1fVDpf.mjs → handler-COkV00I9.mjs} +0 -0
  394. /package/dist/{host-B-_ntOMH.mjs → host-CiHn8Yog.mjs} +0 -0
  395. /package/dist/{identity-OjRlG6dZ.mjs → identity-BULrIHmo.mjs} +0 -0
  396. /package/dist/{index-B4MG7PBn.d.mts → index-BB4EWIf3.d.mts} +0 -0
  397. /package/dist/{index-CUxMqAoE2.d.mts → index-BBq5I7SB2.d.mts} +0 -0
  398. /package/dist/{index-Oejq5WGD2.d.mts → index-BJjdUzfw2.d.mts} +0 -0
  399. /package/dist/{index-luD7oSCA.d.mts → index-BKvzOrbF.d.mts} +0 -0
  400. /package/dist/{index-CKeNzHte.d.mts → index-BO8n7zAS.d.mts} +0 -0
  401. /package/dist/{index-DiHGEgh-.d.mts → index-BbAqoQmv.d.mts} +0 -0
  402. /package/dist/{index-BNF8osK42.d.mts → index-BcTwLu9C2.d.mts} +0 -0
  403. /package/dist/{index-DhCBbChV.d.mts → index-Bg5iXHk5.d.mts} +0 -0
  404. /package/dist/{index-BlkTzRHz.d.mts → index-BiXqOfhl.d.mts} +0 -0
  405. /package/dist/{index-CrA9tCMf.d.mts → index-BjaQsfAr.d.mts} +0 -0
  406. /package/dist/{index-BD1_BSMP.d.mts → index-Bk865qJX.d.mts} +0 -0
  407. /package/dist/{index-CrUijdhZ.d.mts → index-Bq4PHWe9.d.mts} +0 -0
  408. /package/dist/{index-DmjyHIEH.d.mts → index-CUHWylh4.d.mts} +0 -0
  409. /package/dist/{index-C0uHQitR2.d.mts → index-CavvxFdG2.d.mts} +0 -0
  410. /package/dist/{index-09JDqcgy2.d.mts → index-Cb3NfGSV2.d.mts} +0 -0
  411. /package/dist/{index-CbaOOgMX.d.mts → index-Ce_l029J.d.mts} +0 -0
  412. /package/dist/{index-DsIrU-pP.d.mts → index-CgVdz5IV.d.mts} +0 -0
  413. /package/dist/{index-BPX7lMRX.d.mts → index-Ck5amD5_.d.mts} +0 -0
  414. /package/dist/{index-DuoOsxow.d.mts → index-ClJjlOox.d.mts} +0 -0
  415. /package/dist/{index-C7ZdyYMT.d.mts → index-DR9-fFwc.d.mts} +0 -0
  416. /package/dist/{index-BRNRgfOm.d.mts → index-Q29tcu5N.d.mts} +0 -0
  417. /package/dist/{index-BKco9D6a.d.mts → index-VVJqONaI.d.mts} +0 -0
  418. /package/dist/{index-fQIrZBY0.d.mts → index-gK54T8Am.d.mts} +0 -0
  419. /package/dist/{index-CweK7QAS.d.mts → index-jW7MJ2_q.d.mts} +0 -0
  420. /package/dist/{index-XNbcZBEZ.d.mts → index-l5HeyxKn.d.mts} +0 -0
  421. /package/dist/{index-ikP83tJm.d.mts → index-z-YJG2cw.d.mts} +0 -0
  422. /package/dist/{index-CDJUiga3.d.mts → index-zvgQ8ErF.d.mts} +0 -0
  423. /package/dist/{json-value-DbwI1AMR.d.mts → json-value-C57MkQrB.d.mts} +0 -0
  424. /package/dist/{json-value-BBZ6uGwc.mjs → json-value-DM-EjTC1.mjs} +0 -0
  425. /package/dist/{jsonl-transport-W03tkPvB.mjs → jsonl-transport-QQuABrN7.mjs} +0 -0
  426. /package/dist/{lib-Wtk4Ef-T.mjs → lib-Sx8gBJvV.mjs} +0 -0
  427. /package/dist/{model-registry-C9rFu3kV.mjs → model-registry-B7ThN_s3.mjs} +0 -0
  428. /package/dist/{model-registry-Cixxx2jv.mjs → model-registry-DNHDnyvs.mjs} +0 -0
  429. /package/dist/{modes-DwsJ3yVl.mjs → modes-CyG4sgs_.mjs} +0 -0
  430. /package/dist/{namespace-NXm_zvL1.mjs → namespace-BFlSY040.mjs} +0 -0
  431. /package/dist/{namespace-DiwqpB-c.mjs → namespace-BGgY903U.mjs} +0 -0
  432. /package/dist/{namespace-D4RJjLv8.d.mts → namespace-Bn-ryJn5.d.mts} +0 -0
  433. /package/dist/{namespace-BW2rjW9-.d.mts → namespace-By3nEmBH.d.mts} +0 -0
  434. /package/dist/{namespace-Du0accdE.mjs → namespace-C9d0aoYT.mjs} +0 -0
  435. /package/dist/{namespace-D5nHBTPz.d.mts → namespace-Ca4sQ8X-.d.mts} +0 -0
  436. /package/dist/{namespace-Br7IQt88.d.mts → namespace-DE3oGhaN.d.mts} +0 -0
  437. /package/dist/{namespace-aUe_P5qN.d.mts → namespace-DENdNdK0.d.mts} +0 -0
  438. /package/dist/{namespace-jVTsuZHX.mjs → namespace-DHrItZyM.mjs} +0 -0
  439. /package/dist/{namespace-Df8uPrMr.d.mts → namespace-DInMixc8.d.mts} +0 -0
  440. /package/dist/{namespace-BGi71aDN.d.mts → namespace-DP0WWpTO.d.mts} +0 -0
  441. /package/dist/{namespace-C3l4AsWS.d.mts → namespace-DkAlBY9o.d.mts} +0 -0
  442. /package/dist/{namespace-BW3Bfu9h.mjs → namespace-QXCaZK3I.mjs} +0 -0
  443. /package/dist/{namespace-C9X7Qvn5.d.mts → namespace-WeSQXdAL.d.mts} +0 -0
  444. /package/dist/{namespace-tjoxekmf.mjs → namespace-ZN49zpqw.mjs} +0 -0
  445. /package/dist/{orchestrator-shared-B2Lb5Enk.d.mts → orchestrator-shared-2vuCvljs.d.mts} +0 -0
  446. /package/dist/{out-8bOYN6EF.mjs → out-Rz-t3WeC.mjs} +0 -0
  447. /package/dist/{ownership-recovery-guard-DyW5vGBr.mjs → ownership-recovery-guard-Ce9-C5Sa.mjs} +0 -0
  448. /package/dist/{package-DttKA9wN.mjs → package-DfjGt5oK.mjs} +0 -0
  449. /package/dist/{package-EGTn-Ng1.mjs → package-Tt2uoAFf.mjs} +0 -0
  450. /package/dist/{platform-CxyYPrkf.mjs → platform-C-fDsuEl.mjs} +0 -0
  451. /package/dist/{provider-operation-BwvTdAsv.d.mts → provider-operation-BwrIrOeY.d.mts} +0 -0
  452. /package/dist/{providers-C-eekMxD.mjs → providers-DVlsnJaY.mjs} +0 -0
  453. /package/dist/{providers-namespace-D-gdpu0p.d.mts → providers-namespace-C56pGeTO.d.mts} +0 -0
  454. /package/dist/{quick-lru-CCEnf7y6.mjs → quick-lru-uXa2PNb5.mjs} +0 -0
  455. /package/dist/{registry-Dk12tAfv.mjs → registry-CZf8VGBh.mjs} +0 -0
  456. /package/dist/{schema-C0opCPww.mjs → schema-DIHGEQx3.mjs} +0 -0
  457. /package/dist/{schema-introspection-6-r_KEJQ.mjs → schema-introspection-CSnLZJpC.mjs} +0 -0
  458. /package/dist/{schema-BwrsXKsP.d.mts → schema-wArHaxA9.d.mts} +0 -0
  459. /package/dist/{schemas-CMQ2PiO2.d.mts → schemas-B0zhTfet.d.mts} +0 -0
  460. /package/dist/{schemas-BaWB3EXP.d.mts → schemas-B2Q284-G.d.mts} +0 -0
  461. /package/dist/{schemas-v1W9Gj9m.d.mts → schemas-BJKx29Sp.d.mts} +0 -0
  462. /package/dist/{schemas-BivbWRkG.mjs → schemas-BKnJj2i-.mjs} +0 -0
  463. /package/dist/{schemas-CsOAG1rB.d.mts → schemas-BMGJLkdK2.d.mts} +0 -0
  464. /package/dist/{schemas-CeHU889f.mjs → schemas-BapfTRqp.mjs} +0 -0
  465. /package/dist/{schemas-DKJyKDpe.d.mts → schemas-BsZJHdvY.d.mts} +0 -0
  466. /package/dist/{schemas-Ds_YMFjX.d.mts → schemas-CITR9cWN.d.mts} +0 -0
  467. /package/dist/{schemas-B8hKbBwI.mjs → schemas-CnFVygzI.mjs} +0 -0
  468. /package/dist/{schemas-scyC2tFF.mjs → schemas-DDCAGKRi.mjs} +0 -0
  469. /package/dist/{schemas-BNf-WkKF.d.mts → schemas-wPB7RnHB.d.mts} +0 -0
  470. /package/dist/{semver-BI7kTNsY.mjs → semver-D_D2mA48.mjs} +0 -0
  471. /package/dist/{server-lifecycle-B_OZnoe-.mjs → server-lifecycle-AvBVeCFR.mjs} +0 -0
  472. /package/dist/{server-lifecycle-CmuBMs3O.d.mts → server-lifecycle-CREtXADx.d.mts} +0 -0
  473. /package/dist/{session-lineage-BRhnTWqq.d.mts → session-lineage-CRLvurB-.d.mts} +0 -0
  474. /package/dist/{shared-schemas-CQ6blrEW.mjs → shared-schemas-kUho6Kmw.mjs} +0 -0
  475. /package/dist/{src-BA_c2cXX.mjs → src-DnLncoLg.mjs} +0 -0
  476. /package/dist/{storage-namespace-BZce8kkW.mjs → storage-namespace-CH4j0_Zs.mjs} +0 -0
  477. /package/dist/{storage-namespace-CTXxds3h.d.mts → storage-namespace-JBh9nkKw.d.mts} +0 -0
  478. /package/dist/{storage-namespace-definition-Cca-zwXU.mjs → storage-namespace-definition-BJCbqVWz.mjs} +0 -0
  479. /package/dist/{storage-namespace-definition-Dkxl1FGw.d.mts → storage-namespace-definition-C0mnpnC_.d.mts} +0 -0
  480. /package/dist/{supports-color-SV_FgSN2.mjs → supports-color-BBMFnbC4.mjs} +0 -0
  481. /package/dist/{telemetry-BqoC87F-.mjs → telemetry-CUkZrhW6.mjs} +0 -0
  482. /package/dist/{timeout-DVlN2Zhy.mjs → timeout-DeBYTGBR.mjs} +0 -0
  483. /package/dist/{tray-menu-service-eVVxgPLc.mjs → tray-menu-service-thAhpcPA.mjs} +0 -0
  484. /package/dist/{types-BklZfFWo.d.mts → types-9ldZyQTb.d.mts} +0 -0
  485. /package/dist/{types-C4ayzk8k.d.mts → types-BMkn9jOe.d.mts} +0 -0
  486. /package/dist/{types-Cwza95hS.mjs → types-CjjNAiHa.mjs} +0 -0
  487. /package/dist/{types-BWfAz9Sh.d.mts → types-DJuxNrac.d.mts} +0 -0
  488. /package/dist/{types-DDfy8LgJ.d.mts → types-eCGV_g6P.d.mts} +0 -0
  489. /package/dist/{types--Sa8Ip8j.d.mts → types-xXv0lUeU.d.mts} +0 -0
  490. /package/dist/{ui-config-B35GloSX.mjs → ui-config-9hlZAJOS.mjs} +0 -0
  491. /package/dist/{variant-Dwnge3J_.mjs → variant-73kFgYBK.mjs} +0 -0
  492. /package/dist/{window-registry-CIlKN806.d.mts → window-registry-CGaYVD7l.d.mts} +0 -0
  493. /package/dist/{window-registry-CKiMJjId.mjs → window-registry-CzAwaPKL.mjs} +0 -0
  494. /package/dist/{zod-json-schema-Dixc-B1T.mjs → zod-json-schema-B9TYYq3e.mjs} +0 -0
@@ -2032,8 +2032,8 @@ declare const MessageStorageNamespace$1: {
2032
2032
  agentId: never;
2033
2033
  adapterSessionId: never;
2034
2034
  turnId: string | null;
2035
- timestamp: number;
2036
2035
  limit: never;
2036
+ timestamp: number;
2037
2037
  query: string;
2038
2038
  contentText: string;
2039
2039
  adapterMessageId: string;
@@ -47,8 +47,8 @@ declare const AdapterRuntimeNamespace: _$_makaio_core0.BusNamespaceDefinition<"a
47
47
  teardownCompleted: _$zod.ZodObject<{
48
48
  evidence: _$zod.ZodEnum<{
49
49
  unknown: "unknown";
50
- exited: "exited";
51
50
  closed: "closed";
51
+ exited: "exited";
52
52
  released: "released";
53
53
  detached: "detached";
54
54
  }>;
@@ -100,8 +100,8 @@ declare const AdapterRuntimeSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core
100
100
  teardownCompleted: _$zod.ZodObject<{
101
101
  evidence: _$zod.ZodEnum<{
102
102
  unknown: "unknown";
103
- exited: "exited";
104
103
  closed: "closed";
104
+ exited: "exited";
105
105
  released: "released";
106
106
  detached: "detached";
107
107
  }>;
@@ -0,0 +1 @@
1
+ import{t as e}from"./schemas-BKnJj2i-.mjs";import{createBusNamespace as t}from"@makaio/framework/core";const n=t(`kernel:cli`,e),r=n.subjects;export{r as n,n as t};
@@ -67,8 +67,8 @@ declare const ExecutionTargetNamespace: _$_makaio_core0.BusNamespaceDefinition<"
67
67
  name: _$zod.ZodString;
68
68
  image: _$zod.ZodOptional<_$zod.ZodString>;
69
69
  enabled: _$zod.ZodBoolean;
70
- busUrl: _$zod.ZodOptional<_$zod.ZodString>;
71
70
  scope: _$zod.ZodString;
71
+ busUrl: _$zod.ZodOptional<_$zod.ZodString>;
72
72
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
73
73
  type: _$zod.ZodLiteral<"container-isolated">;
74
74
  id: _$zod.ZodString;
@@ -338,8 +338,8 @@ declare const ExecutionTargetSubjects: _$_makaio_core0.BusSubjects<_$_makaio_cor
338
338
  name: _$zod.ZodString;
339
339
  image: _$zod.ZodOptional<_$zod.ZodString>;
340
340
  enabled: _$zod.ZodBoolean;
341
- busUrl: _$zod.ZodOptional<_$zod.ZodString>;
342
341
  scope: _$zod.ZodString;
342
+ busUrl: _$zod.ZodOptional<_$zod.ZodString>;
343
343
  }, _$zod_v4_core0.$strip>, _$zod.ZodObject<{
344
344
  type: _$zod.ZodLiteral<"container-isolated">;
345
345
  id: _$zod.ZodString;
@@ -1 +1 @@
1
- import{sessionsDual as e}from"./services/session/storage/schema.mjs";import{n as t}from"./schema-C0opCPww.mjs";import{t as n}from"./schema-Dq-7si8u.mjs";import{SessionEventStorageNamespace as r,SessionEventStorageSubjects as i}from"@makaio/framework/contracts";import{index as a}from"drizzle-orm/sqlite-core";import{customType as o,index as s,pgTable as c,text as l,uniqueIndex as u}from"drizzle-orm/pg-core";import{defineDialectSchema as d,defineDualTable as f}from"@makaio/framework/storage/drizzle";import{sql as p}from"drizzle-orm";import{epochMs as m}from"@makaio/framework/storage/drizzle/columns/postgres";const h=o({dataType(){return`tsvector`}}),g=c(`messages`,{messageId:l(`message_id`).primaryKey(),turnId:l(`turn_id`).references(()=>t.postgres.turnId,{onDelete:`cascade`}),sessionId:l(`session_id`).notNull().references(()=>e.postgres.sessionId,{onDelete:`cascade`}),role:l(`role`,{enum:[`user`,`assistant`]}).notNull(),contentText:l(`content_text`).notNull(),blocks:l(`blocks`).notNull().default(`[]`),agentId:l(`agent_id`),adapterSessionId:l(`adapter_session_id`),adapterMessageId:l(`adapter_message_id`),timestamp:m(`timestamp`).notNull(),editOf:l(`edit_of`).references(()=>g.messageId),origin:l(`origin`,{enum:[`voice`,`text`,`compact`]}),contentTsv:h(`content_tsv`).generatedAlwaysAs(p`to_tsvector('english', coalesce(content_text, ''))`)},e=>[s(`idx_messages_session`).on(e.sessionId,e.timestamp),s(`idx_messages_turn`).on(e.turnId,e.timestamp),s(`idx_messages_agent`).on(e.agentId,e.timestamp),u(`uniq_messages_adapter_message_id_session`).on(e.adapterMessageId,e.sessionId),s(`idx_messages_content_tsv`).using(`gin`,e.contentTsv)]),_=d({messages:n},{messages:g}),v=()=>({sqlite:n.messageId,postgres:g.messageId}),y=f(`session_events`,t=>({id:t.autoPk(`id`),sessionId:t.text(`session_id`).notNull().references(()=>e.columnPair(`sessionId`),{onDelete:`cascade`}),eventId:t.text(`event_id`).notNull().unique(),timestamp:t.epochMs(`timestamp`).notNull(),type:t.text(`type`).notNull(),agentId:t.text(`agent_id`),adapterId:t.text(`adapter_id`),originatingMessageId:t.text(`originating_message_id`),messageId:t.text(`message_id`).references(v,{onDelete:`cascade`}),turnId:t.text(`turn_id`),contentText:t.text(`content_text`),payload:t.text(`payload`).notNull()}),{sqlite:e=>[a(`idx_events_session_ts`).on(e.sessionId,e.timestamp),a(`idx_events_session_type`).on(e.sessionId,e.type),a(`idx_events_turn`).on(e.turnId),a(`idx_events_originating_message`).on(e.originatingMessageId)],postgres:e=>[s(`idx_events_session_ts`).on(e.sessionId,e.timestamp),s(`idx_events_session_type`).on(e.sessionId,e.type),s(`idx_events_turn`).on(e.turnId),s(`idx_events_originating_message`).on(e.originatingMessageId)]}),b=y.sqlite,x={...r,extensions:{drizzle:{sessionEvents:b}}};export{v as a,y as i,i as n,_ as o,b as r,x as t};
1
+ import{sessionsDual as e}from"./services/session/storage/schema.mjs";import{n as t}from"./schema-DIHGEQx3.mjs";import{t as n}from"./schema-B8jinlbH.mjs";import{SessionEventStorageNamespace as r,SessionEventStorageSubjects as i}from"@makaio/framework/contracts";import{index as a}from"drizzle-orm/sqlite-core";import{customType as o,index as s,pgTable as c,text as l,uniqueIndex as u}from"drizzle-orm/pg-core";import{defineDialectSchema as d,defineDualTable as f}from"@makaio/framework/storage/drizzle";import{sql as p}from"drizzle-orm";import{epochMs as m}from"@makaio/framework/storage/drizzle/columns/postgres";const h=o({dataType(){return`tsvector`}}),g=c(`messages`,{messageId:l(`message_id`).primaryKey(),turnId:l(`turn_id`).references(()=>t.postgres.turnId,{onDelete:`cascade`}),sessionId:l(`session_id`).notNull().references(()=>e.postgres.sessionId,{onDelete:`cascade`}),role:l(`role`,{enum:[`user`,`assistant`]}).notNull(),contentText:l(`content_text`).notNull(),blocks:l(`blocks`).notNull().default(`[]`),agentId:l(`agent_id`),adapterSessionId:l(`adapter_session_id`),adapterMessageId:l(`adapter_message_id`),timestamp:m(`timestamp`).notNull(),editOf:l(`edit_of`).references(()=>g.messageId),origin:l(`origin`,{enum:[`voice`,`text`,`compact`]}),contentTsv:h(`content_tsv`).generatedAlwaysAs(p`to_tsvector('english', coalesce(content_text, ''))`)},e=>[s(`idx_messages_session`).on(e.sessionId,e.timestamp),s(`idx_messages_turn`).on(e.turnId,e.timestamp),s(`idx_messages_agent`).on(e.agentId,e.timestamp),u(`uniq_messages_adapter_message_id_session`).on(e.adapterMessageId,e.sessionId),s(`idx_messages_content_tsv`).using(`gin`,e.contentTsv)]),_=d({messages:n},{messages:g}),v=()=>({sqlite:n.messageId,postgres:g.messageId}),y=f(`session_events`,t=>({id:t.autoPk(`id`),sessionId:t.text(`session_id`).notNull().references(()=>e.columnPair(`sessionId`),{onDelete:`cascade`}),eventId:t.text(`event_id`).notNull().unique(),timestamp:t.epochMs(`timestamp`).notNull(),type:t.text(`type`).notNull(),agentId:t.text(`agent_id`),adapterId:t.text(`adapter_id`),originatingMessageId:t.text(`originating_message_id`),messageId:t.text(`message_id`).references(v,{onDelete:`cascade`}),turnId:t.text(`turn_id`),contentText:t.text(`content_text`),payload:t.text(`payload`).notNull()}),{sqlite:e=>[a(`idx_events_session_ts`).on(e.sessionId,e.timestamp),a(`idx_events_session_type`).on(e.sessionId,e.type),a(`idx_events_turn`).on(e.turnId),a(`idx_events_originating_message`).on(e.originatingMessageId)],postgres:e=>[s(`idx_events_session_ts`).on(e.sessionId,e.timestamp),s(`idx_events_session_type`).on(e.sessionId,e.type),s(`idx_events_turn`).on(e.turnId),s(`idx_events_originating_message`).on(e.originatingMessageId)]}),b=y.sqlite,x={...r,extensions:{drizzle:{sessionEvents:b}}};export{v as a,y as i,i as n,_ as o,b as r,x as t};
@@ -1 +1 @@
1
- import{r as e}from"./profile-N5qGUpF0.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=t.enum([`running`,`stopped`,`exited`,`unknown`]),i={request:t.object({clientId:t.string(),cwd:t.string(),command:t.string(),args:t.array(t.string()),env:t.record(t.string(),t.string()).optional(),sessionId:t.string().optional(),clientProfileName:e.optional(),adapterSessionId:t.string().optional(),metadata:t.record(t.string(),t.unknown()).optional()}),response:t.object({supervisorSessionId:t.string(),pid:t.number().int().positive()})},a={request:t.union([t.object({supervisorSessionId:t.string()}).strict(),t.object({sessionId:t.string()}).strict(),t.object({adapterSessionId:t.string()}).strict()]),response:t.object({success:t.boolean(),supervisorSessionId:t.string().optional(),pid:t.number().int().positive().optional(),terminalAttachment:t.object({canAttach:t.boolean()}).optional()})},o={request:t.object({supervisorSessionId:t.string(),signal:t.string().optional()}),response:t.object({success:t.boolean()})},s=t.object({supervisorSessionId:t.string(),clientId:t.string(),pid:t.number().int().positive().nullable(),status:r,cwd:t.string(),sessionId:t.string().optional(),adapterSessionId:t.string().optional(),startedAt:t.number().int().nonnegative(),stoppedAt:t.number().int().nonnegative().optional()}),c={request:t.union([t.object({}).strict(),t.object({supervisorSessionId:t.string()}).strict(),t.object({sessionId:t.string()}).strict(),t.object({adapterSessionId:t.string()}).strict()]),response:t.object({runtimes:t.array(s)})},l={launch:i,attach:a,stop:o,status:c},u=n(`native-session-supervisor`,l),d=u.subjects;export{i as a,s as c,a as i,r as l,d as n,c as o,l as r,o as s,u as t};
1
+ import{r as e}from"./profile-DBDvy9uc.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=t.enum([`running`,`stopped`,`exited`,`unknown`]),i={request:t.object({clientId:t.string(),cwd:t.string(),command:t.string(),args:t.array(t.string()),env:t.record(t.string(),t.string()).optional(),sessionId:t.string().optional(),clientProfileName:e.optional(),adapterSessionId:t.string().optional(),metadata:t.record(t.string(),t.unknown()).optional()}),response:t.object({supervisorSessionId:t.string(),pid:t.number().int().positive()})},a={request:t.union([t.object({supervisorSessionId:t.string()}).strict(),t.object({sessionId:t.string()}).strict(),t.object({adapterSessionId:t.string()}).strict()]),response:t.object({success:t.boolean(),supervisorSessionId:t.string().optional(),pid:t.number().int().positive().optional(),terminalAttachment:t.object({canAttach:t.boolean()}).optional()})},o={request:t.object({supervisorSessionId:t.string(),signal:t.string().optional()}),response:t.object({success:t.boolean()})},s=t.object({supervisorSessionId:t.string(),clientId:t.string(),pid:t.number().int().positive().nullable(),status:r,cwd:t.string(),sessionId:t.string().optional(),adapterSessionId:t.string().optional(),startedAt:t.number().int().nonnegative(),stoppedAt:t.number().int().nonnegative().optional()}),c={request:t.union([t.object({}).strict(),t.object({supervisorSessionId:t.string()}).strict(),t.object({sessionId:t.string()}).strict(),t.object({adapterSessionId:t.string()}).strict()]),response:t.object({runtimes:t.array(s)})},l={launch:i,attach:a,stop:o,status:c},u=n(`native-session-supervisor`,l),d=u.subjects;export{i as a,s as c,a as i,r as l,d as n,c as o,l as r,o as s,u as t};
@@ -1,4 +1,4 @@
1
- import { i as BusServerConfig, n as startBusServer, r as BusServer, t as StartBusServerOptions } from "../../server-lifecycle-CmuBMs3O.mjs";
1
+ import { i as BusServerConfig, n as startBusServer, r as BusServer, t as StartBusServerOptions } from "../../server-lifecycle-CREtXADx.mjs";
2
2
  import { BusBroadcastMessage, BusMessage, BusRequestMessage, BusTransport, BusTransportError } from "@makaio/framework/bus";
3
3
  import { TransportAuth, WebSocketLike, WebSocketServerLike, WebSocketServerLike as WebSocketServerLike$1 } from "@makaio/framework/node/transports";
4
4
 
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../../server-lifecycle-B_OZnoe-.mjs";var r=class{connectionListeners=new Set;on(e,t){e===`connection`&&this.connectionListeners.add(t)}off(e,t){e===`connection`&&this.connectionListeners.delete(t)}close(e){this.connectionListeners.clear(),e?.()}accept(e){for(let t of this.connectionListeners)t(e)}};export{r as HonoWebSocketBridge,t as LoopbackTransport,e as createBusServer,n as startBusServer};
1
+ import{n as e,r as t,t as n}from"../../server-lifecycle-AvBVeCFR.mjs";var r=class{connectionListeners=new Set;on(e,t){e===`connection`&&this.connectionListeners.add(t)}off(e,t){e===`connection`&&this.connectionListeners.delete(t)}close(e){this.connectionListeners.clear(),e?.()}accept(e){for(let t of this.connectionListeners)t(e)}};export{r as HonoWebSocketBridge,t as LoopbackTransport,e as createBusServer,n as startBusServer};
@@ -1,2 +1,2 @@
1
- import { n as startBusServer, t as StartBusServerOptions } from "../../server-lifecycle-CmuBMs3O.mjs";
1
+ import { n as startBusServer, t as StartBusServerOptions } from "../../server-lifecycle-CREtXADx.mjs";
2
2
  export { StartBusServerOptions, startBusServer };
@@ -1 +1 @@
1
- import{t as e}from"../../server-lifecycle-B_OZnoe-.mjs";export{e as startBusServer};
1
+ import{t as e}from"../../server-lifecycle-AvBVeCFR.mjs";export{e as startBusServer};
@@ -1 +1 @@
1
- import{n as e}from"./namespace-BL7lHlmg.mjs";import"./ownership-memory-handler-BpGdR_uG.mjs";import{t}from"./caller-owned-adapter-stub-C1M7FKrv.mjs";import{MakaioBus as n}from"@makaio/framework/bus";import{AdapterSubjects as r,AgentSubjects as i,SessionSubjects as a}from"@makaio/framework/contracts";function o(){n.__resetHandlers?.()}function s(e=10){return new Promise(t=>setTimeout(t,e))}function c(e,t){let n=Date.now();return{agentId:e,adapterId:`adapter-${e}`,adapterName:`test-adapter`,sessionId:t?.sessionId??`test-session`,role:`member`,status:`idle`,createdAt:n,lastActivityAt:n,...t}}async function l(e,t=e,i=`test-machine`){await n.emit(r.initialized,{adapterName:e,adapterId:t,machineId:i,ownerInstanceId:`owner-${t}`,capabilities:[]})}async function u(t){return(await n.request(e.getEvents,{sessionId:t})).events}function d(e,t,r){let i=[];return r.push(n.on(e,(e=>{let n=e.payload;i.push(t(n))}))),{received:i,clear:()=>{i.length=0}}}function f(e){return d(a.turn.started,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,messageId:e.messageId,agentIds:[...e.agentIds],initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function p(e){return d(a.turn.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:e.success,error:e.error,initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function m(e){return d(a.user_message.sent,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,content:e.content,agentIds:[...e.agentIds],origin:e.origin}),e)}function h(e){return d(a.user_message.acknowledged,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId}),e)}function g(e){return d(a.user_message.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId,outcome:e.outcome,error:e.error}),e)}function _(e,t){return c(e,{runtimeOwner:{machineId:`test-machine`,instanceId:`test-runtime-owner`},...t})}function v(e){let t=Date.now();return{sessionId:e.sessionId,createdAt:t,lastActivityAt:t,status:e.status??`active`,agents:e.agents??[],leadAgentId:e.leadAgentId,targetWorkingDirectory:e.targetWorkingDirectory}}function y(e){return n.on(a.create,t=>{let n=t.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`;e.set(n,v({sessionId:n,agents:[]})),t.setResult({sessionId:n})})}function b(e){return n.on(a.agent.added,t=>{let n=e.get(t.payload.sessionId);if(!n)return;let r=n.agents.length===0,i=t.payload.role??(r?`lead`:`member`);r&&(n.adapterSessionId=t.payload.adapterSessionId,n.adapterName=t.payload.adapterName,n.adapterId=t.payload.adapterId);let a=Date.now();n.agents.push({agentId:t.payload.agentId,adapterId:t.payload.adapterId,adapterName:t.payload.adapterName,sessionId:t.payload.sessionId,role:i,status:`idle`,createdAt:a,lastActivityAt:a}),i===`lead`&&(n.leadAgentId=t.payload.agentId),n.lastActivityAt=Date.now()})}function x(e){return n.on(a.get,t=>{t.setResult({session:e.get(t.payload.sessionId)??null})})}function S(e){return n.on(r.getAgent,t=>{for(let n of e.values()){let e=n.agents.find(e=>e.agentId===t.payload.agentId);if(e){t.setResult({agent:{agentId:e.agentId,sessionId:n.sessionId,adapterSessionId:``}});return}}t.setResult({agent:null})})}function C(){return n.on(r.rehydrateAgent,e=>{e.setResult({success:!0,...t(e.payload)})})}function w(e=`/previous/cwd`){return n.on(i.cwd.change,t=>{t.setResult({success:!0,previousCwd:e})})}function T(){return n.on(i.model.change,e=>{e.setResult({success:!0,swapped:!1})})}function E(e){return n.on(r.startAgent,n=>{let{adapterId:r,initialMessage:i}=n.payload,a=n.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`,o=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,s=i?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,c=`adapter-session-${a}`;e?.({adapterId:r,sessionId:a,initialMessage:i}),n.setResult({success:!0,agentId:o,adapterId:r,adapterSessionId:c,sessionId:a,...t(n.payload),...s&&{messageId:s}}),M({sessionId:a,agentId:o,adapterId:r,adapterSessionId:c})})}function D(e){return n.on(r.startAgent,t=>{t.setResult({success:!1,dispatch:`not-dispatched`,message:e})})}function O(e){return n.on(i.sendMessage,t=>{let{agentId:n,adapterId:r,message:i,messageId:a,sessionContext:o,responseSchema:s}=t.payload,c=a??`msg-${crypto.randomUUID().slice(0,8)}`;e?.({agentId:n,adapterId:r,message:i,messageId:c,sessionContext:o,responseSchema:s}),t.setResult({messageId:c})})}function k(e,t){return n.on(i.sendMessage,n=>{if(e.has(n.payload.agentId))throw Error(t);n.setResult({messageId:n.payload.messageId??`generated-id`})})}async function A(e){await n.emit(i.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId})}async function j(e){await n.emit(i.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId,outcome:`error`,error:e.error})}function M(e){setImmediate(()=>{n.emit(a.agent.added,{sessionId:e.sessionId,agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterId,adapterSessionId:e.adapterSessionId,role:e.role})})}function N(e,i){let a=new Map,o=n.on(r.startAgent,n=>{i.payload=n.payload;let r=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,o=n.payload.initialMessage?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,s=`adapter-session-${e}`;a.set(r,{agentId:r,sessionId:e,adapterSessionId:s,adapterId:n.payload.adapterId}),n.setResult({success:!0,agentId:r,adapterId:n.payload.adapterId,adapterSessionId:s,sessionId:e,...t(n.payload),...o&&{messageId:o}}),M({sessionId:e,agentId:r,adapterId:n.payload.adapterId,adapterSessionId:s})}),s=n.on(r.getAgent,e=>{let t=a.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})});return()=>{o(),s()}}export{l as C,s as E,m as S,o as T,E as _,j as a,h as b,y as c,D as d,S as f,O as g,C as h,A as i,w as l,T as m,v as n,b as o,x as p,M as r,N as s,_ as t,k as u,p as v,u as w,g as x,f as y};
1
+ import{n as e}from"./namespace-ZAIFBrIy.mjs";import"./ownership-memory-handler-BCu1EjFO.mjs";import{t}from"./caller-owned-adapter-stub-egWCuKcE.mjs";import{MakaioBus as n}from"@makaio/framework/bus";import{AdapterSubjects as r,AgentSubjects as i,SessionSubjects as a}from"@makaio/framework/contracts";function o(){n.__resetHandlers?.()}function s(e=10){return new Promise(t=>setTimeout(t,e))}function c(e,t){let n=Date.now();return{agentId:e,adapterId:`adapter-${e}`,adapterName:`test-adapter`,sessionId:t?.sessionId??`test-session`,role:`member`,status:`idle`,createdAt:n,lastActivityAt:n,...t}}async function l(e,t=e,i=`test-machine`){await n.emit(r.initialized,{adapterName:e,adapterId:t,machineId:i,ownerInstanceId:`owner-${t}`,capabilities:[]})}async function u(t){return(await n.request(e.getEvents,{sessionId:t})).events}function d(e,t,r){let i=[];return r.push(n.on(e,(e=>{let n=e.payload;i.push(t(n))}))),{received:i,clear:()=>{i.length=0}}}function f(e){return d(a.turn.started,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,messageId:e.messageId,agentIds:[...e.agentIds],initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function p(e){return d(a.turn.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:e.success,error:e.error,initiator:e.initiator,ingestionMarker:e.ingestionMarker}),e)}function m(e){return d(a.user_message.sent,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,content:e.content,agentIds:[...e.agentIds],origin:e.origin}),e)}function h(e){return d(a.user_message.acknowledged,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId}),e)}function g(e){return d(a.user_message.completed,e=>({sessionId:e.sessionId,turnId:e.turnId,messageId:e.messageId,agentId:e.agentId,outcome:e.outcome,error:e.error}),e)}function _(e,t){return c(e,{runtimeOwner:{machineId:`test-machine`,instanceId:`test-runtime-owner`},...t})}function v(e){let t=Date.now();return{sessionId:e.sessionId,createdAt:t,lastActivityAt:t,status:e.status??`active`,agents:e.agents??[],leadAgentId:e.leadAgentId,targetWorkingDirectory:e.targetWorkingDirectory}}function y(e){return n.on(a.create,t=>{let n=t.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`;e.set(n,v({sessionId:n,agents:[]})),t.setResult({sessionId:n})})}function b(e){return n.on(a.agent.added,t=>{let n=e.get(t.payload.sessionId);if(!n)return;let r=n.agents.length===0,i=t.payload.role??(r?`lead`:`member`);r&&(n.adapterSessionId=t.payload.adapterSessionId,n.adapterName=t.payload.adapterName,n.adapterId=t.payload.adapterId);let a=Date.now();n.agents.push({agentId:t.payload.agentId,adapterId:t.payload.adapterId,adapterName:t.payload.adapterName,sessionId:t.payload.sessionId,role:i,status:`idle`,createdAt:a,lastActivityAt:a}),i===`lead`&&(n.leadAgentId=t.payload.agentId),n.lastActivityAt=Date.now()})}function x(e){return n.on(a.get,t=>{t.setResult({session:e.get(t.payload.sessionId)??null})})}function S(e){return n.on(r.getAgent,t=>{for(let n of e.values()){let e=n.agents.find(e=>e.agentId===t.payload.agentId);if(e){t.setResult({agent:{agentId:e.agentId,sessionId:n.sessionId,adapterSessionId:``}});return}}t.setResult({agent:null})})}function C(){return n.on(r.rehydrateAgent,e=>{e.setResult({success:!0,...t(e.payload)})})}function w(e=`/previous/cwd`){return n.on(i.cwd.change,t=>{t.setResult({success:!0,previousCwd:e})})}function T(){return n.on(i.model.change,e=>{e.setResult({success:!0,swapped:!1})})}function E(e){return n.on(r.startAgent,n=>{let{adapterId:r,initialMessage:i}=n.payload,a=n.payload.sessionId??`session-${crypto.randomUUID().slice(0,8)}`,o=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,s=i?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,c=`adapter-session-${a}`;e?.({adapterId:r,sessionId:a,initialMessage:i}),n.setResult({success:!0,agentId:o,adapterId:r,adapterSessionId:c,sessionId:a,...t(n.payload),...s&&{messageId:s}}),M({sessionId:a,agentId:o,adapterId:r,adapterSessionId:c})})}function D(e){return n.on(r.startAgent,t=>{t.setResult({success:!1,dispatch:`not-dispatched`,message:e})})}function O(e){return n.on(i.sendMessage,t=>{let{agentId:n,adapterId:r,message:i,messageId:a,sessionContext:o,responseSchema:s}=t.payload,c=a??`msg-${crypto.randomUUID().slice(0,8)}`;e?.({agentId:n,adapterId:r,message:i,messageId:c,sessionContext:o,responseSchema:s}),t.setResult({messageId:c})})}function k(e,t){return n.on(i.sendMessage,n=>{if(e.has(n.payload.agentId))throw Error(t);n.setResult({messageId:n.payload.messageId??`generated-id`})})}async function A(e){await n.emit(i.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId})}async function j(e){await n.emit(i.complete,{agentId:e.agentId,adapterId:`adapter-${e.agentId}`,adapterName:`test-adapter`,adapterSessionId:`adapter-session-${e.agentId}`,messageId:e.messageId,turnId:e.turnId,outcome:`error`,error:e.error})}function M(e){setImmediate(()=>{n.emit(a.agent.added,{sessionId:e.sessionId,agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterId,adapterSessionId:e.adapterSessionId,role:e.role})})}function N(e,i){let a=new Map,o=n.on(r.startAgent,n=>{i.payload=n.payload;let r=n.payload.agentId??`agent-${crypto.randomUUID().slice(0,8)}`,o=n.payload.initialMessage?`msg-${crypto.randomUUID().slice(0,8)}`:void 0,s=`adapter-session-${e}`;a.set(r,{agentId:r,sessionId:e,adapterSessionId:s,adapterId:n.payload.adapterId}),n.setResult({success:!0,agentId:r,adapterId:n.payload.adapterId,adapterSessionId:s,sessionId:e,...t(n.payload),...o&&{messageId:o}}),M({sessionId:e,agentId:r,adapterId:n.payload.adapterId,adapterSessionId:s})}),s=n.on(r.getAgent,e=>{let t=a.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})});return()=>{o(),s()}}export{l as C,s as E,m as S,o as T,E as _,j as a,h as b,y as c,D as d,S as f,O as g,C as h,A as i,w as l,T as m,v as n,b as o,x as p,M as r,N as s,_ as t,k as u,p as v,u as w,g as x,f as y};
@@ -1 +1 @@
1
- import{a as e,t}from"./ownership-recovery-guard-DyW5vGBr.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function m(e,t,n){let r=ee(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function te(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function g(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function _(e){return e.activation===`live`?`active`:`discovered`}const ne=g();function re(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function v(e,t,n){n!==void 0&&(e[t]=n)}function ie(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function ae(e,t,n){if(!ie(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function oe(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:_(e),branchKind:i,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function se(e,t,n){let r=re(e.importStatus,t.importStatus);ae(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function y(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),v(e,`adapterId`,t.adapterId),v(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),v(e,`isSidechain`,t.isSidechain),v(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function ce(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function le(e,t,n){let r=e.discoveredAt;se(e,t,n),y(e,t),ce(e,t,r)}function b(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function ue(e,t,n){if(n){e.emit(s.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function de(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function x(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function fe(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),n}function pe(e,t,n){e.emit(s.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function me(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=x(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=fe(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function he(e){let{bus:t,store:r,cloneSession:i,populateAgents:a}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=x(r,n.source,n.externalSessionId),a=ne(),o=i===void 0,s=i??oe(n,crypto.randomUUID(),a);i?(le(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&b(r,i)):(r.set(s.sessionId,s),b(r,s)),ue(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),me(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let o=await a(t,n.sessionId);e.setResult({session:{...i(n),agents:o}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:o}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...i(e),agents:await a(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(de(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),pe(t,n,i)})]}function S(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function C(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function w(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function T(e){return structuredClone(e)}function E(e,t,n){n!==void 0&&(e[t]=n)}function D(e,t,n){n!==void 0&&(e[t]=n??void 0)}function O(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function k(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId)}function A(e,t){E(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),E(e,`contextInheritance`,t.contextInheritance),E(e,`rootSessionId`,t.rootSessionId),E(e,`forkPointMessageId`,t.forkPointMessageId),E(e,`branchKind`,t.branchKind),E(e,`isOrchestrated`,t.isOrchestrated),E(e,`clientId`,t.clientId),E(e,`clientAccountId`,t.clientAccountId),E(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),E(e,`title`,t.title),E(e,`targetWorkingDirectory`,t.targetWorkingDirectory),E(e,`createdAt`,t.createdAt),E(e,`lastActivityAt`,t.lastActivityAt),E(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,E(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),D(e,`executionTargetId`,t.executionTargetId),D(e,`approvalPolicyOverride`,t.approvalPolicyOverride),D(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function j(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=O(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...T(t),agents:await w(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function M(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(S(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(C(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=T(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),A(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,T(i))})}function N(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await w(e,t.payload.sessionId);t.setResult({session:{...T(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?T(c):null;k(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,T(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(j(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(M(e,r)),i.push(P(e,r)),i.push(...he({bus:e,store:r,populateAgents:w,cloneSession:T})),()=>i.forEach(e=>e())}function P(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...T(c),agents:u}})})}function F(e){return structuredClone(e)}function I(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function L(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function R(e,t,n){let r=e.get(t),i=r===void 0?void 0:L(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ge(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function _e(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function ve(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:F(t)})})),i.push(t.on(e.set,e=>{R(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:_e(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(F)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(F)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ge(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>I(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function ye(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,ye(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function be(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function xe(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Se(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ce(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function we(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Te(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=xe(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ce(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Se(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function Ee(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=we(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function De(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?Ee(e,r,a):Te(e,r,i,a,o)}function Oe(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=Oe(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;be(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function ke(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ae(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function je(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Me(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ae(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();ke(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ne(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Pe(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Fe(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function Ie(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ne(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Me(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=je(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Le(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Re(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function ze(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Be(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function Ve(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function He(e,t=d()){let n=[Pe(e,t),Fe(e,t),e.on(i.claim,e=>{e.setResult(De(t,e.payload))}),$(e,t),Ie(e,t),Re(e,t),Le(e,t),ze(e,t),Be(e,t),Ve(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{S as a,h as c,m as d,d as f,C as i,te as l,ve as n,_ as o,N as r,g as s,He as t,p as u};
1
+ import{a as e,t}from"./ownership-recovery-guard-Ce9-C5Sa.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function m(e,t,n){let r=ee(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function te(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function g(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function _(e){return e.activation===`live`?`active`:`discovered`}const ne=g();function re(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function v(e,t,n){n!==void 0&&(e[t]=n)}function ie(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function ae(e,t,n){if(!ie(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function oe(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:_(e),branchKind:i,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function se(e,t,n){let r=re(e.importStatus,t.importStatus);ae(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function y(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),v(e,`adapterId`,t.adapterId),v(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),v(e,`isSidechain`,t.isSidechain),v(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function ce(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function le(e,t,n){let r=e.discoveredAt;se(e,t,n),y(e,t),ce(e,t,r)}function b(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function ue(e,t,n){if(n){e.emit(s.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function de(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function x(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function fe(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),n}function pe(e,t,n){e.emit(s.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function me(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=x(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=fe(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function he(e){let{bus:t,store:r,cloneSession:i,populateAgents:a}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=x(r,n.source,n.externalSessionId),a=ne(),o=i===void 0,s=i??oe(n,crypto.randomUUID(),a);i?(le(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&b(r,i)):(r.set(s.sessionId,s),b(r,s)),ue(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),me(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let o=await a(t,n.sessionId);e.setResult({session:{...i(n),agents:o}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:o}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...i(e),agents:await a(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(de(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),pe(t,n,i)})]}function S(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function C(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function w(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function T(e){return structuredClone(e)}function E(e,t,n){n!==void 0&&(e[t]=n)}function D(e,t,n){n!==void 0&&(e[t]=n??void 0)}function O(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function k(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId)}function A(e,t){E(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),E(e,`contextInheritance`,t.contextInheritance),E(e,`rootSessionId`,t.rootSessionId),E(e,`forkPointMessageId`,t.forkPointMessageId),E(e,`branchKind`,t.branchKind),E(e,`isOrchestrated`,t.isOrchestrated),E(e,`clientId`,t.clientId),E(e,`clientAccountId`,t.clientAccountId),E(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),E(e,`title`,t.title),E(e,`targetWorkingDirectory`,t.targetWorkingDirectory),E(e,`createdAt`,t.createdAt),E(e,`lastActivityAt`,t.lastActivityAt),E(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,E(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),D(e,`executionTargetId`,t.executionTargetId),D(e,`approvalPolicyOverride`,t.approvalPolicyOverride),D(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function j(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=O(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...T(t),agents:await w(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function M(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(S(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(C(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=T(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),A(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,T(i))})}function N(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await w(e,t.payload.sessionId);t.setResult({session:{...T(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?T(c):null;k(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,T(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(j(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(M(e,r)),i.push(P(e,r)),i.push(...he({bus:e,store:r,populateAgents:w,cloneSession:T})),()=>i.forEach(e=>e())}function P(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...T(c),agents:u}})})}function F(e){return structuredClone(e)}function I(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function L(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function R(e,t,n){let r=e.get(t),i=r===void 0?void 0:L(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ge(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function _e(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function ve(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:F(t)})})),i.push(t.on(e.set,e=>{R(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:_e(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(F)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(F)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ge(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>I(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function ye(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,ye(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function be(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function xe(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Se(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ce(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function we(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Te(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=xe(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ce(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Se(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function Ee(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=we(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function De(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?Ee(e,r,a):Te(e,r,i,a,o)}function Oe(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=Oe(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;be(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function ke(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ae(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function je(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Me(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ae(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();ke(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ne(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Pe(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Fe(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function Ie(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ne(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Me(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=je(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Le(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Re(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function ze(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Be(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function Ve(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function He(e,t=d()){let n=[Pe(e,t),Fe(e,t),e.on(i.claim,e=>{e.setResult(De(t,e.payload))}),$(e,t),Ie(e,t),Re(e,t),Le(e,t),ze(e,t),Be(e,t),Ve(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{S as a,h as c,m as d,d as f,C as i,te as l,ve as n,_ as o,N as r,g as s,He as t,p as u};
@@ -1,5 +1,5 @@
1
- import { $ as RuntimeReadinessDecision, A as MarkRuntimeReadyInput, B as ReadBootstrapStartStateInput, C as ExecutionAttemptRepository, D as GetInstructionInput, E as ExecutionOwnerId, F as PendingAttemptAbandonmentDecision, G as RecordProvisionerIncarnationLostInput, H as RecordAllocationTerminatedInput, J as RegisterRuntimeInput, K as RecordProvisioningAbsentInput, L as ProvisionerIncarnationLossDecision, M as OperationCompletionDecision, N as OperationReportDecision, O as HandoffProviderOperationInput, P as OutcomeCodec, R as ProvisioningAbsenceDecision, U as RecordInfrastructureFailureInput, V as RecordAllocationInput, W as RecordProviderOperationUncertaintyInput, X as ReportOperationInput, Y as RenewProviderOperationClaimInput, Z as RuntimeOutcomeFence, a as AllocationRefEvolutionDecision, b as ExecutionAttemptOutcomeDecision, et as RuntimeRegistrationDecision, f as CompleteOperationInput, gt as AttemptSettlementRead, h as DurableOutcome, i as AllocationRefEvolution, j as OperationAdmissionDecision, k as InfrastructureFailureDecision, n as AdmitOperationInput, o as AllocationTerminationDecision, p as DiscoveredAllocationDecision, q as RecoverableAttemptRecord, r as AllocationRecordingDecision, s as AttemptControlState, tt as TakeOverProviderOperationInput, u as BeginProvisioningInput, vt as EnsureExecutionAttemptDecision, x as ExecutionAttemptRecord, xt as ReadAttemptSettlementInput, yt as EnsureExecutionAttemptInput, z as ProvisioningClaimDecision } from "./execution-attempt-repository-CPk3F98N.mjs";
2
- import { l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-BwvTdAsv.mjs";
1
+ import { $ as RuntimeReadinessDecision, A as MarkRuntimeReadyInput, B as ReadBootstrapStartStateInput, C as ExecutionAttemptRepository, D as GetInstructionInput, E as ExecutionOwnerId, F as PendingAttemptAbandonmentDecision, G as RecordProvisionerIncarnationLostInput, H as RecordAllocationTerminatedInput, J as RegisterRuntimeInput, K as RecordProvisioningAbsentInput, L as ProvisionerIncarnationLossDecision, M as OperationCompletionDecision, N as OperationReportDecision, O as HandoffProviderOperationInput, P as OutcomeCodec, R as ProvisioningAbsenceDecision, U as RecordInfrastructureFailureInput, V as RecordAllocationInput, W as RecordProviderOperationUncertaintyInput, X as ReportOperationInput, Y as RenewProviderOperationClaimInput, Z as RuntimeOutcomeFence, a as AllocationRefEvolutionDecision, b as ExecutionAttemptOutcomeDecision, et as RuntimeRegistrationDecision, f as CompleteOperationInput, gt as AttemptSettlementRead, h as DurableOutcome, i as AllocationRefEvolution, j as OperationAdmissionDecision, k as InfrastructureFailureDecision, n as AdmitOperationInput, o as AllocationTerminationDecision, p as DiscoveredAllocationDecision, q as RecoverableAttemptRecord, r as AllocationRecordingDecision, s as AttemptControlState, tt as TakeOverProviderOperationInput, u as BeginProvisioningInput, vt as EnsureExecutionAttemptDecision, x as ExecutionAttemptRecord, xt as ReadAttemptSettlementInput, yt as EnsureExecutionAttemptInput, z as ProvisioningClaimDecision } from "./execution-attempt-repository-CtFZfBfp.mjs";
2
+ import { l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-BwrIrOeY.mjs";
3
3
  import { z } from "zod";
4
4
  import { IMakaioBus } from "@makaio/framework/bus";
5
5
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
@@ -725,7 +725,7 @@ declare const WorkflowAttemptOutcomeSchema: z.ZodUnion<readonly [z.ZodDiscrimina
725
725
  level: z.ZodString;
726
726
  ids: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
727
727
  }, z.core.$strip>;
728
- schemaVersion: z.ZodString;
728
+ schemaVersion: z.ZodNumber;
729
729
  data: z.ZodType<Record<string, unknown>, Record<string, unknown>, z.core.$ZodTypeInternals<Record<string, unknown>, Record<string, unknown>>>;
730
730
  relations: z.ZodArray<z.ZodObject<{
731
731
  type: z.ZodString;
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,D as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,Q as ee,R as te,U as ne,V as re,W as ie,X as ae,Y as oe,Z as se,_t as ce,a as le,at as ue,c as de,ct as fe,dt as pe,et as me,f as he,ft as ge,g as _e,gt as ve,h as ye,ht as be,i as xe,it as Se,j as Ce,k as m,l as we,lt as Te,m as Ee,mt as De,n as Oe,nt as ke,o as Ae,ot as je,p as Me,pt as Ne,q as Pe,r as Fe,rt as Ie,st as Le,tt as Re,u as ze,ut as Be,v as Ve,vt as h,z as g}from"./authority-state-bootstrap-7Cgb9TR2.mjs";import{a as He}from"./execution-attempt-repository-D0cCU7dI.mjs";import{assertWorkflowTriggerPayload as Ue,compileWorkflowTriggerBindingFilter as We}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as Ge,r as Ke}from"./execution-attempt-owner-recovery-BRjtmTGv.mjs";import{SerialLane as qe}from"@makaio/framework/utils";import{ArtifactSubjects as Je,AutomationTriggerSubjects as Ye,CRON_AUTOMATION_TRIGGER_KIND as Xe,EXECUTION_LIST_DEFAULT_LIMIT as Ze,EXECUTION_LIST_MAX_LIMIT as _,EXECUTION_LIST_MIN_LIMIT as v,EXTERNAL_EXECUTION_ID_PREFIX as y,ExecutionAttemptSchemas as b,ExecutionAttemptSubjects as x,ExecutionsByArtifactRefsQuerySchema as Qe,JsonPatchOperationSchema as $e,JsonValueSchema as et,SessionSubjects as tt,WORKFLOW_CANCELLED_REASON as nt,WorkLogFrameEntrySchema as rt,WorkerSubjects as it,WorkflowAutomationTriggerBindingSchema as at,WorkflowError as S,WorkflowErrorCode as ot,WorkflowNamespace as st,WorkflowRunContextSchema as ct,WorkflowRunResultSchema as lt,WorkflowStepTypeSchema as ut,WorkflowSubjects as C,createWorkflowCancelSubject as dt,createWorkflowDelegateResultFinalizerNamespace as ft,createWorkflowFinalizerNamespace as pt,dep as mt,extensionToken as ht,serializeArtifactRef as gt,walkWorkflowDefinition as _t}from"@makaio/framework/contracts";import{BaseService as vt}from"@makaio/framework/service-base";import{defineDialectSchema as yt,executeTransaction as w,getDatabaseDialect as bt,registerDrizzleHandlers as xt,resolveSchema as T,serializeDatabaseOperation as E}from"@makaio/framework/storage/drizzle";import{and as D,asc as O,count as k,desc as A,eq as j,getTableColumns as St,gte as Ct,isNotNull as wt,isNull as M,lt as Tt,lte as Et,notInArray as Dt,or as Ot,sql as N,sum as P}from"drizzle-orm";import{SessionToken as kt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as At}from"@makaio/framework/services/automation-trigger";const jt=ie.postgres,Mt=me.postgres,Nt=c.postgres,Pt=ke.postgres,Ft=je.postgres,It=s.postgres,Lt=Se.postgres,Rt=De.postgres,zt=Be.postgres,Bt=fe.postgres,Vt=ge.postgres,Ht=ae.postgres,Ut=ee.postgres,Wt=ve.postgres,F=yt({workflowDefinitions:ne,workflowExecutions:e,workflowExecutionFrames:i,workflowGateInstances:Re,workflowStepSpans:ue,workflowExecutionLinks:Pe,workflowRunContexts:Ie,worklogSummaries:Ne,worklogFrameEntries:Te,worklogArtifactWrites:Le,worklogGateEvents:pe,workflowExecutionState:oe,workflowExecutionStateEvents:se,workflowFinalizations:be},{workflowDefinitions:jt,workflowExecutions:Mt,workflowExecutionFrames:Nt,workflowGateInstances:Pt,workflowStepSpans:Ft,workflowExecutionLinks:It,workflowRunContexts:Lt,worklogSummaries:Rt,worklogFrameEntries:zt,worklogArtifactWrites:Bt,worklogGateEvents:Vt,workflowExecutionState:Ht,workflowExecutionStateEvents:Ut,workflowFinalizations:Wt});function I(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function L(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function Gt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=I(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function R(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:L(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function Kt(e,t){let n=I(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function qt(e,t){let{workflowDefinitions:n}=T(t,F),r=St(n),i=e.on(a.get,async e=>{let r=await t.select().from(n).where(j(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?R(r[0]):null})}),o=e.on(a.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=Kt(a,o),c=await E(t,async()=>{let e=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:N`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?N`${r.description}`:s.description,inputSchema:s.inputSchema===null?N`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?N`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?N`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?N`${r.artifact}`:s.artifact,triggers:s.triggers===null?N`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?N`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?N`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...I(a.scope)}).where(j(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?h.definition.created:h.definition.updated,R(c.row)),i.setResult({id:a.id})}),s=e.on(a.delete,async r=>{let i=(await E(t,()=>t.delete(n).where(j(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(a.list,async e=>{let r=e.payload,i=r.scope?Gt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(D(...i)):await t.select().from(n);e.setResult({workflows:a.map(R)})});return()=>{i(),o(),s(),c()}}function Jt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function Yt(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function Xt(e,t){let{workflowExecutionFrames:n}=T(t,F),r=e.on(a.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Yt(r,i);await E(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(a.getFrame,async e=>{let r=await t.select().from(n).where(j(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Jt(r[0]):null})}),o=e.on(a.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.frameId));e.setResult({frames:r.map(Jt)})});return()=>{r(),i(),o()}}function Zt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function z(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function B(e){return{id:Zt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function Qt(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??Ze;if(!Number.isInteger(i)||i<v||i>_)throw Error(`Gate instance list limit must be an integer between ${v} and ${_}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[j(r.executionId,e)],...t===void 0?[]:[j(r.status,t)]]}}function $t(e,t){let{workflowExecutions:n,workflowGateInstances:r}=T(t,F),i=e.on(a.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=B(n);await E(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),o=e.on(a.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=B(n),a=await E(t,()=>t.update(r).set(i).where(D(j(r.id,i.id),j(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),s=e.on(a.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[j(r.executionId,n),j(r.nodeId,i)];a!==void 0&&o.push(j(r.frameId,a));let s=await t.select().from(r).where(D(...o)).limit(1);e.setResult({gate:s[0]?z(s[0]):null})}),c=e.on(a.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Qt(n,i,a,r),c=await t.select().from(r).where(D(...s)).orderBy(A(r.createdAt),A(r.id)).limit(o);e.setResult({gates:c.map(z)})}),l=e.on(a.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,j(r.executionId,n.id)).where(D(j(r.status,`waiting`),j(n.status,`paused`),wt(r.timeoutMs)));e.setResult({gates:i.map(e=>z(e.gate))})});return()=>{i(),o(),s(),c(),l()}}function en(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function nn(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=T(t,F),i=e.on(a.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await E(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),o=e.on(a.listSpans,async e=>{let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.stepId),O(n.frameId));e.setResult({spans:r.map(en)})}),s=e.on(a.setExecutionLink,async e=>{let{link:n}=e.payload;await E(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),c=e.on(a.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[j(r.sourceExecutionId,n)],...i===void 0?[]:[j(r.targetExecutionId,i)]],o=t.select().from(r).where(D(...a));e.setResult({links:(await o).map(tn)})});return()=>{i(),o(),s(),c()}}function V(e,t){return t===null?bt(e)===`postgres`?N`'null'::jsonb`:N`'null'`:t}function rn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function an(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function on(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:an(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:L(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function sn(e){let t=rn(e.source),n=I(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function cn(e,t,n){let r=sn(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function ln(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=T(t,F),o=e.on(a.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await w(t,async e=>{if(await cn(e,a,n),o===void 0)return;let s=Date.now(),c=V(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),s=e.on(a.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(j(n.executionId,r)),a=i[0]?on(i[0]):null;e.setResult({runContext:a})});return()=>{o(),s()}}async function un(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=T(e,F),a=Date.now(),o=V(e,n);await w(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function dn(e,t){let{workflowExecutionState:n}=T(e,F),r=(await e.select().from(n).where(j(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=T(e,F),i=Date.now(),a=V(e,t.nextValue);return w(e,async e=>{let o=(await e.select().from(n).where(j(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=te(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(D(j(n.executionId,t.executionId),j(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function pn(e,t){let n=e.on(a.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await un(t,n,r),e.setResult({})}),r=e.on(a.getState,async e=>{let{executionId:n}=e.payload,r=await dn(t,n);e.setResult({state:r})}),i=e.on(a.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function mn(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function hn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function gn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:_n(t),setWhere:Dt(n.status,[`completed`,`failed`,`cancelled`])})}function _n(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function H(e,t){let{worklogSummaries:n}=T(e,F),r=await e.select().from(n).where(j(n.executionId,t)).limit(1);return r[0]?mn(r[0]):null}async function vn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[j(n.status,i)]],c=s.length>0?D(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(A(n.startedAt)).limit(a).offset(o),e.select({count:k()}).from(n).where(c)]);return{items:l.map(mn),total:u[0]?.count??0}}async function yn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function bn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Dt(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function U(e,t){let{worklogFrameEntries:n}=T(e,F);return(await e.select().from(n).where(j(n.frameId,t)).limit(1))[0]??null}async function xn(e,t){let n=await U(e,t);return n===null?null:rt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Sn(e,t){let{worklogArtifactWrites:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Cn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(e,t){let{worklogGateEvents:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function wn(e,t){let{worklogGateEvents:n}=T(e,F);return(await e.select().from(n).where(j(n.id,t)).limit(1))[0]??null}function G(e,t,n){return`${e}:${t}:${n}`}async function Tn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(j(t.executionId,n)).returning();return r}async function En(e,t,n){let[r]=await e.select({totalInputTokens:P(t.inputTokens),totalOutputTokens:P(t.outputTokens),totalEstimatedCost:P(t.estimatedCost),measuredInputTokens:k(t.inputTokens),measuredOutputTokens:k(t.outputTokens),measuredCosts:k(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Dn(e){return e.hasMeasurements}async function On(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(j(t.executionId,n))}async function kn(e,t,n,r){let i=N`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=N`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=N`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=N`exists(
1
+ import{$ as e,A as t,B as n,D as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,Q as ee,R as te,U as ne,V as re,W as ie,X as ae,Y as oe,Z as se,_t as ce,a as le,at as ue,c as de,ct as fe,dt as pe,et as me,f as he,ft as ge,g as _e,gt as ve,h as ye,ht as be,i as xe,it as Se,j as Ce,k as m,l as we,lt as Te,m as Ee,mt as De,n as Oe,nt as ke,o as Ae,ot as je,p as Me,pt as Ne,q as Pe,r as Fe,rt as Ie,st as Le,tt as Re,u as ze,ut as Be,v as Ve,vt as h,z as g}from"./authority-state-bootstrap-rnsTk0u7.mjs";import{a as He}from"./execution-attempt-repository-D_qR7NyG.mjs";import{assertWorkflowTriggerPayload as Ue,compileWorkflowTriggerBindingFilter as We}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as Ge,r as Ke}from"./execution-attempt-owner-recovery-BNERIDH0.mjs";import{SerialLane as qe}from"@makaio/framework/utils";import{ArtifactSubjects as Je,AutomationTriggerSubjects as Ye,CRON_AUTOMATION_TRIGGER_KIND as Xe,EXECUTION_LIST_DEFAULT_LIMIT as Ze,EXECUTION_LIST_MAX_LIMIT as _,EXECUTION_LIST_MIN_LIMIT as v,EXTERNAL_EXECUTION_ID_PREFIX as y,ExecutionAttemptSchemas as b,ExecutionAttemptSubjects as x,ExecutionsByArtifactRefsQuerySchema as Qe,JsonPatchOperationSchema as $e,JsonValueSchema as et,SessionSubjects as tt,WORKFLOW_CANCELLED_REASON as nt,WorkLogFrameEntrySchema as rt,WorkerSubjects as it,WorkflowAutomationTriggerBindingSchema as at,WorkflowError as S,WorkflowErrorCode as ot,WorkflowNamespace as st,WorkflowRunContextSchema as ct,WorkflowRunResultSchema as lt,WorkflowStepTypeSchema as ut,WorkflowSubjects as C,createWorkflowCancelSubject as dt,createWorkflowDelegateResultFinalizerNamespace as ft,createWorkflowFinalizerNamespace as pt,dep as mt,extensionToken as ht,serializeArtifactRef as gt,walkWorkflowDefinition as _t}from"@makaio/framework/contracts";import{BaseService as vt}from"@makaio/framework/service-base";import{defineDialectSchema as yt,executeTransaction as w,getDatabaseDialect as bt,registerDrizzleHandlers as xt,resolveSchema as T,serializeDatabaseOperation as E}from"@makaio/framework/storage/drizzle";import{and as D,asc as O,count as k,desc as A,eq as j,getTableColumns as St,gte as Ct,isNotNull as wt,isNull as M,lt as Tt,lte as Et,notInArray as Dt,or as Ot,sql as N,sum as P}from"drizzle-orm";import{SessionToken as kt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as At}from"@makaio/framework/services/automation-trigger";const jt=ie.postgres,Mt=me.postgres,Nt=c.postgres,Pt=ke.postgres,Ft=je.postgres,It=s.postgres,Lt=Se.postgres,Rt=De.postgres,zt=Be.postgres,Bt=fe.postgres,Vt=ge.postgres,Ht=ae.postgres,Ut=ee.postgres,Wt=ve.postgres,F=yt({workflowDefinitions:ne,workflowExecutions:e,workflowExecutionFrames:i,workflowGateInstances:Re,workflowStepSpans:ue,workflowExecutionLinks:Pe,workflowRunContexts:Ie,worklogSummaries:Ne,worklogFrameEntries:Te,worklogArtifactWrites:Le,worklogGateEvents:pe,workflowExecutionState:oe,workflowExecutionStateEvents:se,workflowFinalizations:be},{workflowDefinitions:jt,workflowExecutions:Mt,workflowExecutionFrames:Nt,workflowGateInstances:Pt,workflowStepSpans:Ft,workflowExecutionLinks:It,workflowRunContexts:Lt,worklogSummaries:Rt,worklogFrameEntries:zt,worklogArtifactWrites:Bt,worklogGateEvents:Vt,workflowExecutionState:Ht,workflowExecutionStateEvents:Ut,workflowFinalizations:Wt});function I(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function L(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function Gt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=I(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function R(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:L(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function Kt(e,t){let n=I(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function qt(e,t){let{workflowDefinitions:n}=T(t,F),r=St(n),i=e.on(a.get,async e=>{let r=await t.select().from(n).where(j(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?R(r[0]):null})}),o=e.on(a.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=Kt(a,o),c=await E(t,async()=>{let e=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:N`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?N`${r.description}`:s.description,inputSchema:s.inputSchema===null?N`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?N`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?N`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?N`${r.artifact}`:s.artifact,triggers:s.triggers===null?N`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?N`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?N`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...I(a.scope)}).where(j(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?h.definition.created:h.definition.updated,R(c.row)),i.setResult({id:a.id})}),s=e.on(a.delete,async r=>{let i=(await E(t,()=>t.delete(n).where(j(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(a.list,async e=>{let r=e.payload,i=r.scope?Gt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(D(...i)):await t.select().from(n);e.setResult({workflows:a.map(R)})});return()=>{i(),o(),s(),c()}}function Jt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function Yt(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function Xt(e,t){let{workflowExecutionFrames:n}=T(t,F),r=e.on(a.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Yt(r,i);await E(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(a.getFrame,async e=>{let r=await t.select().from(n).where(j(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Jt(r[0]):null})}),o=e.on(a.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.frameId));e.setResult({frames:r.map(Jt)})});return()=>{r(),i(),o()}}function Zt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function z(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function B(e){return{id:Zt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function Qt(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??Ze;if(!Number.isInteger(i)||i<v||i>_)throw Error(`Gate instance list limit must be an integer between ${v} and ${_}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[j(r.executionId,e)],...t===void 0?[]:[j(r.status,t)]]}}function $t(e,t){let{workflowExecutions:n,workflowGateInstances:r}=T(t,F),i=e.on(a.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=B(n);await E(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),o=e.on(a.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=B(n),a=await E(t,()=>t.update(r).set(i).where(D(j(r.id,i.id),j(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),s=e.on(a.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[j(r.executionId,n),j(r.nodeId,i)];a!==void 0&&o.push(j(r.frameId,a));let s=await t.select().from(r).where(D(...o)).limit(1);e.setResult({gate:s[0]?z(s[0]):null})}),c=e.on(a.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Qt(n,i,a,r),c=await t.select().from(r).where(D(...s)).orderBy(A(r.createdAt),A(r.id)).limit(o);e.setResult({gates:c.map(z)})}),l=e.on(a.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,j(r.executionId,n.id)).where(D(j(r.status,`waiting`),j(n.status,`paused`),wt(r.timeoutMs)));e.setResult({gates:i.map(e=>z(e.gate))})});return()=>{i(),o(),s(),c(),l()}}function en(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function nn(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=T(t,F),i=e.on(a.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await E(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),o=e.on(a.listSpans,async e=>{let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.stepId),O(n.frameId));e.setResult({spans:r.map(en)})}),s=e.on(a.setExecutionLink,async e=>{let{link:n}=e.payload;await E(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),c=e.on(a.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[j(r.sourceExecutionId,n)],...i===void 0?[]:[j(r.targetExecutionId,i)]],o=t.select().from(r).where(D(...a));e.setResult({links:(await o).map(tn)})});return()=>{i(),o(),s(),c()}}function V(e,t){return t===null?bt(e)===`postgres`?N`'null'::jsonb`:N`'null'`:t}function rn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function an(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function on(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:an(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:L(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function sn(e){let t=rn(e.source),n=I(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function cn(e,t,n){let r=sn(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function ln(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=T(t,F),o=e.on(a.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await w(t,async e=>{if(await cn(e,a,n),o===void 0)return;let s=Date.now(),c=V(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),s=e.on(a.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(j(n.executionId,r)),a=i[0]?on(i[0]):null;e.setResult({runContext:a})});return()=>{o(),s()}}async function un(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=T(e,F),a=Date.now(),o=V(e,n);await w(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function dn(e,t){let{workflowExecutionState:n}=T(e,F),r=(await e.select().from(n).where(j(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=T(e,F),i=Date.now(),a=V(e,t.nextValue);return w(e,async e=>{let o=(await e.select().from(n).where(j(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=te(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(D(j(n.executionId,t.executionId),j(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function pn(e,t){let n=e.on(a.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await un(t,n,r),e.setResult({})}),r=e.on(a.getState,async e=>{let{executionId:n}=e.payload,r=await dn(t,n);e.setResult({state:r})}),i=e.on(a.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function mn(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function hn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function gn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:_n(t),setWhere:Dt(n.status,[`completed`,`failed`,`cancelled`])})}function _n(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function H(e,t){let{worklogSummaries:n}=T(e,F),r=await e.select().from(n).where(j(n.executionId,t)).limit(1);return r[0]?mn(r[0]):null}async function vn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[j(n.status,i)]],c=s.length>0?D(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(A(n.startedAt)).limit(a).offset(o),e.select({count:k()}).from(n).where(c)]);return{items:l.map(mn),total:u[0]?.count??0}}async function yn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function bn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Dt(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function U(e,t){let{worklogFrameEntries:n}=T(e,F);return(await e.select().from(n).where(j(n.frameId,t)).limit(1))[0]??null}async function xn(e,t){let n=await U(e,t);return n===null?null:rt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Sn(e,t){let{worklogArtifactWrites:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Cn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(e,t){let{worklogGateEvents:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function wn(e,t){let{worklogGateEvents:n}=T(e,F);return(await e.select().from(n).where(j(n.id,t)).limit(1))[0]??null}function G(e,t,n){return`${e}:${t}:${n}`}async function Tn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(j(t.executionId,n)).returning();return r}async function En(e,t,n){let[r]=await e.select({totalInputTokens:P(t.inputTokens),totalOutputTokens:P(t.outputTokens),totalEstimatedCost:P(t.estimatedCost),measuredInputTokens:k(t.inputTokens),measuredOutputTokens:k(t.outputTokens),measuredCosts:k(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Dn(e){return e.hasMeasurements}async function On(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(j(t.executionId,n))}async function kn(e,t,n,r){let i=N`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=N`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=N`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=N`exists(
2
2
  select 1 from ${n}
3
3
  where ${n.executionId} = ${r}
4
4
  and (${n.inputTokens} is not null
@@ -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};
package/dist/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1788863979610",
3
+ "version": "1.0.0-dev-1788897280508",
4
4
  "type": "module"
5
5
  }