@makaio/framework 1.0.0-dev-1785409369816 → 1.0.0-dev-1786014320559

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 (508) hide show
  1. package/dist/.makaio-build.json +4 -3
  2. package/dist/{account-identity-DFx8pwKL.mjs → account-identity-DGpXd8h_.mjs} +1 -1
  3. package/dist/adapter-BkdJaOOG.mjs +1 -0
  4. package/dist/adapter-subsystem/index.d.mts +138 -6
  5. package/dist/adapter-subsystem/index.mjs +1 -1
  6. package/dist/adapters/acp-client/index.d.mts +105 -7
  7. package/dist/adapters/acp-client/index.mjs +2 -2
  8. package/dist/adapters/config/index.d.mts +1 -1
  9. package/dist/adapters/config/index.mjs +1 -1
  10. package/dist/adapters/index.d.mts +362 -801
  11. package/dist/adapters/index.mjs +6 -6
  12. package/dist/adapters/node.d.mts +1 -1
  13. package/dist/adapters/node.mjs +1 -1
  14. package/dist/adapters/stream-session/index.d.mts +28 -7
  15. package/dist/adapters/stream-session/index.mjs +1 -1
  16. package/dist/agent-namespace-D51PODFf.mjs +1 -0
  17. package/dist/{ajv-DD3SIL2i.mjs → ajv-L5fKxaia.mjs} +2 -2
  18. package/dist/artifact-k3veR4Yx.mjs +1 -0
  19. package/dist/attach-error-BSlc7JfL.mjs +1 -0
  20. package/dist/{auth-DGEdiHF6.mjs → auth-A1K_7q-8.mjs} +1 -1
  21. package/dist/authority-state-bootstrap-YwtEImIB.mjs +1 -0
  22. package/dist/automation-trigger-CuSdQwir.mjs +1 -0
  23. package/dist/await-trigger-ph1S0zVI.mjs +1 -0
  24. package/dist/bus/index.d.mts +19 -5
  25. package/dist/bus/index.mjs +1 -1
  26. package/dist/bus-BIj0_aG6.mjs +1 -0
  27. package/dist/bus-CqgrphNE.mjs +2 -0
  28. package/dist/{canonical-model-BAytQ4NV.mjs → canonical-model-DJASlL4m.mjs} +1 -1
  29. package/dist/{capabilities-BQEp34ir.mjs → capabilities-Bqckjh7G.mjs} +1 -1
  30. package/dist/{client-DbS847wW.mjs → client-BL5__WT0.mjs} +1 -1
  31. package/dist/clients/index.d.mts +2 -2
  32. package/dist/clients/index.mjs +1 -1
  33. package/dist/clients/managed-install.d.mts +1 -1
  34. package/dist/clients/managed-install.mjs +1 -1
  35. package/dist/{compression-74fFeBha.mjs → compression-BbttSqm8.mjs} +1 -1
  36. package/dist/{config-namespace-TVX-hG4I.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
  37. package/dist/{context-resolution-DdyhpH4L.d.mts → context-resolution-CW0ya4QO.d.mts} +13 -13
  38. package/dist/contracts/adapter/index.d.mts +3 -3
  39. package/dist/contracts/adapter/index.mjs +1 -1
  40. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  41. package/dist/contracts/artifact/index.d.mts +3 -3
  42. package/dist/contracts/artifact/index.mjs +1 -1
  43. package/dist/contracts/auth/index.d.mts +2 -2
  44. package/dist/contracts/auth/index.mjs +1 -1
  45. package/dist/contracts/automation-trigger/index.d.mts +4 -0
  46. package/dist/contracts/automation-trigger/index.mjs +1 -0
  47. package/dist/contracts/canonical-model/index.d.mts +1 -1
  48. package/dist/contracts/canonical-model/index.mjs +1 -1
  49. package/dist/contracts/capabilities/index.d.mts +1 -1
  50. package/dist/contracts/capabilities/index.mjs +1 -1
  51. package/dist/contracts/client/index.d.mts +2 -2
  52. package/dist/contracts/client/index.mjs +1 -1
  53. package/dist/contracts/common/index.d.mts +1 -1
  54. package/dist/contracts/config/index.d.mts +1 -1
  55. package/dist/contracts/config/index.mjs +1 -1
  56. package/dist/contracts/extension/index.d.mts +6 -5
  57. package/dist/contracts/extension/index.mjs +1 -1
  58. package/dist/contracts/facet/index.d.mts +1 -1
  59. package/dist/contracts/facet/index.mjs +1 -1
  60. package/dist/contracts/harness/index.d.mts +1 -1
  61. package/dist/contracts/harness/index.mjs +1 -1
  62. package/dist/contracts/host/index.d.mts +1 -1
  63. package/dist/contracts/host/index.mjs +1 -1
  64. package/dist/contracts/index.d.mts +181 -120
  65. package/dist/contracts/index.mjs +1 -1
  66. package/dist/contracts/materialization/index.d.mts +3 -3
  67. package/dist/contracts/materialization/index.mjs +1 -1
  68. package/dist/contracts/model-registry/index.d.mts +1 -1
  69. package/dist/contracts/model-registry/index.mjs +1 -1
  70. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  71. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  72. package/dist/contracts/platform/index.d.mts +1 -1
  73. package/dist/contracts/platform/index.mjs +1 -1
  74. package/dist/contracts/provider/index.d.mts +2 -2
  75. package/dist/contracts/provider/index.mjs +1 -1
  76. package/dist/contracts/reaction/index.d.mts +2 -0
  77. package/dist/contracts/reaction/index.mjs +1 -0
  78. package/dist/contracts/session/index.d.mts +3 -3
  79. package/dist/contracts/session/index.mjs +1 -1
  80. package/dist/contracts/shared/index.d.mts +3 -3
  81. package/dist/contracts/shared/index.mjs +1 -1
  82. package/dist/contracts/skill/index.d.mts +1 -1
  83. package/dist/contracts/skill/index.mjs +1 -1
  84. package/dist/contracts/telemetry/index.d.mts +1 -1
  85. package/dist/contracts/telemetry/index.mjs +1 -1
  86. package/dist/contracts/timeout/index.d.mts +1 -1
  87. package/dist/contracts/timeout/index.mjs +1 -1
  88. package/dist/contracts/toast/index.mjs +1 -1
  89. package/dist/contracts/variant/index.d.mts +1 -1
  90. package/dist/contracts/variant/index.mjs +1 -1
  91. package/dist/contracts/worker-node/index.d.mts +1 -1
  92. package/dist/contracts/worker-node/index.mjs +1 -1
  93. package/dist/contracts/workflow/index.d.mts +3 -3
  94. package/dist/contracts/workflow/index.mjs +1 -1
  95. package/dist/contribution-BH-wKsWI.d.mts +35 -0
  96. package/dist/core/index.d.mts +60 -1
  97. package/dist/core/index.mjs +1 -1
  98. package/dist/definition-BYgHlmMw.d.mts +375 -0
  99. package/dist/{definition-CJfiv8xm.mjs → definition-CDg-Jq1T.mjs} +1 -1
  100. package/dist/{detached-extension-handle-Ddfquy5_.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
  101. package/dist/drizzle/0031_adapter_session_currency.sql +66 -0
  102. package/dist/drizzle/0032_native_session_ownership.sql +77 -0
  103. package/dist/drizzle/0033_m_msf3hu2s.sql +1 -0
  104. package/dist/drizzle/meta/_journal.json +21 -0
  105. package/dist/{execution-attempt-repository-DWXKY41_.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
  106. package/dist/{execution-target-Cf645pDj.mjs → execution-target-ByNwZh5-.mjs} +1 -1
  107. package/dist/extension-DMdmj9gi.mjs +1 -0
  108. package/dist/extension-DUmibvMk.mjs +1 -0
  109. package/dist/extension-context-CqfddWXs.d.mts +295 -0
  110. package/dist/{extension-discovery-CQRdbVQ6.d.mts → extension-discovery-Fhps4icD.d.mts} +2 -0
  111. package/dist/{extension-namespace-Yu41YepM.mjs → extension-namespace-B554RmCp.mjs} +1 -1
  112. package/dist/extension-package-provenance-Dh_-Z-tE.mjs +1 -0
  113. package/dist/{filesystem-service-DlP2HfDg.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
  114. package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
  115. package/dist/git/index.mjs +1 -1
  116. package/dist/{globby-1yCVCk8s.mjs → globby-BBLuT_vy.mjs} +1 -1
  117. package/dist/handlers-2yd00VEq.mjs +57 -0
  118. package/dist/{harness-DpwsFsE7.mjs → harness-KxbWGL4I.mjs} +1 -1
  119. package/dist/{hook-responses-Dh1PWXqJ.d.mts → hook-responses-CQZIv3L3.d.mts} +2 -293
  120. package/dist/{index-DCZ8BX9S.d.mts → index-3eUIRy7T.d.mts} +304 -74
  121. package/dist/{index-brqfk9JQ.d.mts → index-B4xdTT3c.d.mts} +6 -6
  122. package/dist/{index-4VfqCjl2.d.mts → index-B5op6AsV.d.mts} +49 -39
  123. package/dist/{index-CMgLxw14.d.mts → index-B6GOuxVy2.d.mts} +18 -18
  124. package/dist/index-BFhJe-Sb.d.mts +302 -0
  125. package/dist/{index-EjsSBQXy2.d.mts → index-BSQ30wYP.d.mts} +1 -1
  126. package/dist/{index-DlsHL9Jg.d.mts → index-BiAYXjgM.d.mts} +25 -25
  127. package/dist/{index-B9UW_vPM.d.mts → index-ByZi9bml.d.mts} +4967 -1509
  128. package/dist/{index-BVlXneHH.d.mts → index-C7HcDpHE.d.mts} +14 -10
  129. package/dist/{index-BskPjMet.d.mts → index-CB4aIUoF.d.mts} +16 -16
  130. package/dist/{index-cqLS1eFV.d.mts → index-CDusRXio.d.mts} +70 -71
  131. package/dist/{index-DnG-QFpG.d.mts → index-CSN_0sCo.d.mts} +18 -1
  132. package/dist/{index-BAXkicoQ.d.mts → index-C__EQfKa.d.mts} +1 -1
  133. package/dist/{index-CLvQsL6s2.d.mts → index-CqQYgsbB.d.mts} +1660 -218
  134. package/dist/{index-BNMnIe-j.d.mts → index-CwDiyJkJ.d.mts} +276 -705
  135. package/dist/{index-GHASUiem.d.mts → index-DBadVauL.d.mts} +1 -1
  136. package/dist/{index-gUhidukN.d.mts → index-DI7-tIL3.d.mts} +299 -2
  137. package/dist/index-DP3o_13U.d.mts +165 -0
  138. package/dist/{index-DSBT83c0.d.mts → index-DcYAAJ0V.d.mts} +24 -3
  139. package/dist/{index-D5Nb7IEP.d.mts → index-Dch_AxUg.d.mts} +77 -39
  140. package/dist/{index-D_ODXsBv.d.mts → index-DcqSUsX6.d.mts} +35 -79
  141. package/dist/{index-B0Kf_OWi.d.mts → index-DgOfgjx3.d.mts} +1 -1
  142. package/dist/{index-Ds5_rDEJ.d.mts → index-DwLRZscE.d.mts} +1 -12
  143. package/dist/{index-DkiTJM5p.d.mts → index-DxYDRoDE2.d.mts} +17 -3
  144. package/dist/{index-CRvpVIqA.d.mts → index-OsbtyMgx2.d.mts} +10 -1
  145. package/dist/{index-BaZeoZoS.d.mts → index-bIe_57cL.d.mts} +1 -1
  146. package/dist/{json-value-Brslhqbm.d.mts → json-value-C1RGgS0a.d.mts} +16 -1
  147. package/dist/{json-value-DmU8ibo_.mjs → json-value-D57aJhVn.mjs} +1 -1
  148. package/dist/kernel/cli/index.d.mts +2 -2
  149. package/dist/kernel/cli/index.mjs +1 -1
  150. package/dist/kernel/cli/register.d.mts +1 -1
  151. package/dist/kernel/cli/register.mjs +1 -1
  152. package/dist/kernel/cli/schemas.mjs +1 -1
  153. package/dist/kernel/extension/index.d.mts +1 -1
  154. package/dist/kernel/extension/index.mjs +1 -1
  155. package/dist/kernel/index.d.mts +9 -9
  156. package/dist/kernel/index.mjs +1 -1
  157. package/dist/kernel/namespace/index.d.mts +2 -2
  158. package/dist/kernel/namespace/index.mjs +1 -1
  159. package/dist/kernel/observability/index.d.mts +1 -1
  160. package/dist/kernel/observability/index.mjs +1 -1
  161. package/dist/kernel/providers/index.d.mts +1 -1
  162. package/dist/kernel/providers/index.mjs +1 -1
  163. package/dist/kernel/window/index.d.mts +1 -1
  164. package/dist/kernel/window/index.mjs +1 -1
  165. package/dist/{lib-C7-s68uf.mjs → lib-B_rJ6r0T.mjs} +1 -1
  166. package/dist/{lib-DErgth_E.mjs → lib-CnOAtohU.mjs} +1 -1
  167. package/dist/load-extensions-CW9uzNR5.mjs +1 -0
  168. package/dist/{load-extensions-BxsDB87B.d.mts → load-extensions-DUpaMQ7G.d.mts} +17 -13
  169. package/dist/{materialization-Jd198K3y.mjs → materialization-CcpCDhXh.mjs} +1 -1
  170. package/dist/mcp-http-server/index.mjs +1 -1
  171. package/dist/model-ZH3L1dPW.mjs +1 -0
  172. package/dist/{namespace-BqxtpNAn.mjs → namespace-B7bntOB8.mjs} +1 -1
  173. package/dist/{namespace-CWUDFGOy.mjs → namespace-BFqkUTJp.mjs} +1 -1
  174. package/dist/{namespace-CjjFvrIA2.d.mts → namespace-CAy4P5mW.d.mts} +29 -29
  175. package/dist/{namespace-B8uKAzWJ.mjs → namespace-CFjdyNXG.mjs} +1 -1
  176. package/dist/{namespace-DV-Hr9sZ.d.mts → namespace-ChnRTUG4.d.mts} +11 -1
  177. package/dist/namespace-CxrOLeeP.mjs +1 -0
  178. package/dist/{namespace-g_mbIZq_.d.mts → namespace-DSlfFhB1.d.mts} +410 -26
  179. package/dist/{namespace-CupOzbRv.d.mts → namespace-DwZwGXgF.d.mts} +24 -20
  180. package/dist/{namespace-TseEI3Pu.d.mts → namespace-Rge9mMI-.d.mts} +36 -28
  181. package/dist/{native-session-supervisor-DRx0MX-d.mjs → native-session-supervisor-fZYPUk0-.mjs} +1 -1
  182. package/dist/node/bus-server/index.d.mts +1 -1
  183. package/dist/node/bus-server/index.mjs +1 -1
  184. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  185. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  186. package/dist/{orchestrator-shared-BHCv-l2O.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +1 -0
  187. package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
  188. package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
  189. package/dist/{package-DWMxGfzK.d.mts → package-Bf3hyuzs.d.mts} +234 -84
  190. package/dist/package-CBdvjyyZ.mjs +1 -0
  191. package/dist/package-CddkNbZI.mjs +1 -0
  192. package/dist/package-ypz4rKvn.mjs +7 -0
  193. package/dist/package.json +1 -1
  194. package/dist/{profile-BTAI31Nt.mjs → profile-BtznZlq3.mjs} +1 -1
  195. package/dist/{provider-context-Dq53Cgzz.mjs → provider-context-BrLZYnDW.mjs} +1 -1
  196. package/dist/{provider-context-PZIQWcqQ.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
  197. package/dist/reaction-BS0k4eNN.mjs +1 -0
  198. package/dist/{registry-wfF2uTty.mjs → registry-BO_bOoky.mjs} +2 -2
  199. package/dist/{resolved-DZgqql2Z.mjs → resolved-DMByz1_2.mjs} +1 -1
  200. package/dist/rules/index.d.mts +1 -1
  201. package/dist/rules/index.mjs +1 -1
  202. package/dist/rules/schemas.d.mts +1 -1
  203. package/dist/runtime-bun/index.mjs +1 -1
  204. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  205. package/dist/runtime-node/extension-validation.d.mts +1 -1
  206. package/dist/runtime-node/extension-validation.mjs +1 -1
  207. package/dist/runtime-node/index.d.mts +4 -4
  208. package/dist/runtime-node/index.mjs +24 -24
  209. package/dist/runtime-node/makaio-config.d.mts +1 -1
  210. package/dist/runtime-node/makaio-config.mjs +1 -1
  211. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  212. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  213. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  214. package/dist/{schema-Dd-e89MO.mjs → schema-DBG7Jq5_.mjs} +1 -1
  215. package/dist/{schema-DKUb4rkr.d.mts → schema-DKTzriEY.d.mts} +519 -9
  216. package/dist/{schemas-DrVg4aQQ.d.mts → schemas-9qeeHGBf.d.mts} +8 -8
  217. package/dist/{schemas-CRB2O5zo.mjs → schemas-BqD8LlQw.mjs} +1 -1
  218. package/dist/{schemas-DaHQzpgm.mjs → schemas-CsjN7cmM.mjs} +1 -1
  219. package/dist/schemas-DSkBOdx_.mjs +1 -0
  220. package/dist/schemas-DplrlAyR.mjs +1 -0
  221. package/dist/{schemas-DnYiAvfz.d.mts → schemas-VbB1FTxx.d.mts} +24 -20
  222. package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
  223. package/dist/{selection-BNwTKEVT.mjs → selection-7Ku8DBnh.mjs} +1 -1
  224. package/dist/services/adapter-runtime/index.d.mts +3 -3
  225. package/dist/services/adapter-runtime/index.mjs +1 -1
  226. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  227. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  228. package/dist/services/adapter-subsystem/index.d.mts +4 -4
  229. package/dist/services/adapter-subsystem/index.mjs +1 -1
  230. package/dist/services/adapter-subsystem/namespace.d.mts +2 -2
  231. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  232. package/dist/services/agent-runtime/index.d.mts +2 -2
  233. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  234. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  235. package/dist/services/automation-trigger/index.d.mts +943 -0
  236. package/dist/services/automation-trigger/index.mjs +1 -0
  237. package/dist/services/capability/index.d.mts +1 -1
  238. package/dist/services/capability/index.mjs +1 -1
  239. package/dist/services/codebase/index.d.mts +2 -2
  240. package/dist/services/codebase/namespace.d.mts +1 -1
  241. package/dist/services/codebase/schemas.d.mts +1 -1
  242. package/dist/services/compression/index.d.mts +2 -2
  243. package/dist/services/compression/namespace.d.mts +1 -1
  244. package/dist/services/compression/schemas.d.mts +1 -1
  245. package/dist/services/context-rules/index.d.mts +4 -4
  246. package/dist/services/context-rules/index.mjs +1 -1
  247. package/dist/services/execution-target/index.d.mts +3 -3
  248. package/dist/services/execution-target/index.mjs +1 -1
  249. package/dist/services/execution-target/namespace.d.mts +1 -1
  250. package/dist/services/execution-target/namespace.mjs +1 -1
  251. package/dist/services/execution-target/schemas.d.mts +1 -1
  252. package/dist/services/execution-target/schemas.mjs +1 -1
  253. package/dist/services/filesystem/index.d.mts +1 -1
  254. package/dist/services/filesystem/index.mjs +1 -1
  255. package/dist/services/filesystem/namespace.d.mts +6 -6
  256. package/dist/services/filesystem/schemas.d.mts +3 -3
  257. package/dist/services/git/namespace.mjs +1 -1
  258. package/dist/services/git/schemas.mjs +1 -1
  259. package/dist/services/harness/index.mjs +1 -1
  260. package/dist/services/index.d.mts +459 -93
  261. package/dist/services/index.mjs +1 -1
  262. package/dist/services/log-import/browser.d.mts +2 -2
  263. package/dist/services/log-import/index.d.mts +3 -3
  264. package/dist/services/log-import/log-import.d.mts +1 -1
  265. package/dist/services/log-import/log-import.mjs +1 -1
  266. package/dist/services/log-import/namespace.mjs +1 -1
  267. package/dist/services/log-import/schemas.mjs +1 -1
  268. package/dist/services/materialization/index.d.mts +1 -1
  269. package/dist/services/materialization/index.mjs +1 -1
  270. package/dist/services/model-registry/index.d.mts +1 -1
  271. package/dist/services/model-registry/index.mjs +1 -1
  272. package/dist/services/preferences/index.d.mts +2 -2
  273. package/dist/services/preferences/schemas.d.mts +1 -1
  274. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  275. package/dist/services/provider-context/index.d.mts +1 -1
  276. package/dist/services/provider-context/index.mjs +1 -1
  277. package/dist/services/provider-runtime/index.mjs +1 -1
  278. package/dist/services/session/handlers/index.d.mts +2 -2
  279. package/dist/services/session/handlers/index.mjs +1 -1
  280. package/dist/services/session/index.d.mts +10 -10
  281. package/dist/services/session/index.mjs +1 -1
  282. package/dist/services/session/messages/namespace.d.mts +1 -1
  283. package/dist/services/session/messages/namespace.mjs +1 -1
  284. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  285. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  286. package/dist/services/session/session-events/namespace.d.mts +1 -1
  287. package/dist/services/session/session-events/namespace.mjs +1 -1
  288. package/dist/services/session/storage/namespace.d.mts +1 -1
  289. package/dist/services/session/storage/schema.d.mts +2 -2
  290. package/dist/services/session/storage/schema.mjs +1 -1
  291. package/dist/services/session/testing/index.d.mts +12 -4
  292. package/dist/services/session/testing/index.mjs +36 -4
  293. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  294. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  295. package/dist/services/session/turns/namespace.d.mts +1 -1
  296. package/dist/services/session/turns/namespace.mjs +1 -1
  297. package/dist/services/session-editor/index.d.mts +1 -1
  298. package/dist/services/session-editor/index.mjs +1 -1
  299. package/dist/services/settings/index.d.mts +3 -3
  300. package/dist/services/settings/index.mjs +1 -1
  301. package/dist/services/settings/namespace.d.mts +8 -8
  302. package/dist/services/settings/namespace.mjs +1 -1
  303. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  304. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  305. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  306. package/dist/services/settings/storage/index.d.mts +3 -3
  307. package/dist/services/settings/storage/index.mjs +1 -1
  308. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  309. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  310. package/dist/services/subagent/index.d.mts +1 -1
  311. package/dist/services/subagent/index.mjs +1 -1
  312. package/dist/services/subagent-template/index.d.mts +2 -2
  313. package/dist/services/subagent-template/namespace.d.mts +1 -1
  314. package/dist/services/subagent-template/schemas.d.mts +1 -1
  315. package/dist/services/tool-approval/index.d.mts +1 -1
  316. package/dist/services/tool-approval/index.mjs +1 -1
  317. package/dist/services/tools/index.d.mts +1 -1
  318. package/dist/services/tools/index.mjs +1 -1
  319. package/dist/services/tray-menu/index.d.mts +3 -3
  320. package/dist/services/tray-menu/index.mjs +1 -1
  321. package/dist/services/tray-menu/namespace.d.mts +1 -1
  322. package/dist/services/tray-menu/schemas.d.mts +1 -1
  323. package/dist/services/turn/index.d.mts +1 -1
  324. package/dist/services/turn/namespace.d.mts +1 -1
  325. package/dist/services/workflow-transitions/index.d.mts +1 -1
  326. package/dist/services/workflow-transitions/index.mjs +1 -1
  327. package/dist/session-BMy2kRpX.mjs +90 -0
  328. package/dist/session-Cipx34j6.mjs +1 -0
  329. package/dist/{session-lineage-B_JW5LpF.d.mts → session-lineage-B_PVa1XN.d.mts} +1 -1
  330. package/dist/shared-BFVuCDPx.mjs +1 -0
  331. package/dist/{skill-BR6rkfLe.mjs → skill-C1D51nhh.mjs} +1 -1
  332. package/dist/{src-DD0v-nIj.mjs → src-xbmzokNe.mjs} +1 -1
  333. package/dist/storage/drizzle/client.d.mts +1 -1
  334. package/dist/storage/drizzle/client.mjs +1 -1
  335. package/dist/storage/drizzle/index.d.mts +42 -2
  336. package/dist/storage/drizzle/index.mjs +1 -1
  337. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  338. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  339. package/dist/storage/handlers/index.d.mts +1 -1
  340. package/dist/storage/handlers/index.mjs +1 -1
  341. package/dist/tool-approval-service-BVgN9Q1r.mjs +1 -0
  342. package/dist/{tools-PdG9fO1M.mjs → tools-DxwHox1a.mjs} +1 -1
  343. package/dist/{transition-Du3MQzJV.d.mts → transition-BF1nevaC.d.mts} +7 -34
  344. package/dist/{types-DMLDHFR9.d.mts → types-BNjPhj_a.d.mts} +1 -1
  345. package/dist/{types-Dzrwa1GY.d.mts → types-CijlWGwb.d.mts} +2036 -618
  346. package/dist/types-ClpEaoAm.d.mts +2917 -0
  347. package/dist/{types-D7_kevBK.d.mts → types-xCdGghb2.d.mts} +1 -1
  348. package/dist/ui-hooks/index.d.mts +29 -2
  349. package/dist/ui-hooks/index.mjs +1 -1
  350. package/dist/ui-kernel/index.d.mts +2 -2
  351. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  352. package/dist/ui-views/index.d.mts +1 -1
  353. package/dist/utils/index.d.mts +77 -1
  354. package/dist/utils/index.mjs +2 -2
  355. package/dist/{version-CoCeMxDT.mjs → version-BfNnVAGr.mjs} +1 -1
  356. package/dist/{view-builder-DeFd-k7C.d.mts → view-builder-Bc9dx6jF.d.mts} +1 -1
  357. package/dist/{visibility-qhGWmpSJ.mjs → visibility-Dl1o2I01.mjs} +1 -1
  358. package/dist/{worker-node-Bl9_vqYi.mjs → worker-node-BDOYPEpi.mjs} +1 -1
  359. package/dist/{worker-node-DZTuT1DS.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
  360. package/dist/workflow-Hzc5jlnV.mjs +1 -0
  361. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  362. package/dist/workflow-engine/index.d.mts +114 -395
  363. package/dist/workflow-engine/index.mjs +1 -1
  364. package/dist/workflow-engine/package.d.mts +1 -1
  365. package/dist/workflow-engine/package.mjs +1 -1
  366. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  367. package/dist/workflow-engine/testing/index.d.mts +2 -2
  368. package/dist/workflow-engine/testing/index.mjs +1 -1
  369. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  370. package/dist/workflow-engine/testing/sqlite.mjs +27 -27
  371. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  372. package/dist/workflow-engine/workflow-trigger-binding-consumer.d.mts +46 -0
  373. package/dist/workflow-engine/workflow-trigger-binding-consumer.mjs +1 -0
  374. package/dist/{workflow-transitions-DSc45ixc.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
  375. package/dist/workflow-worker-DARC7UZl.mjs +1 -0
  376. package/dist/zod-json-schema-BAGAFfCN.mjs +1 -0
  377. package/package.json +29 -1
  378. package/dist/adapter-D5c5LrPN.mjs +0 -1
  379. package/dist/artifact-DGiXqb11.mjs +0 -1
  380. package/dist/attach-error-C3tngg6J.mjs +0 -1
  381. package/dist/authority-state-bootstrap-GPL_tqaT.mjs +0 -1
  382. package/dist/await-trigger-I3lrepb8.mjs +0 -1
  383. package/dist/bus-B6SAjgOC.mjs +0 -2
  384. package/dist/bus-C2l3K74u.mjs +0 -1
  385. package/dist/extension-DCA4pYrY.mjs +0 -1
  386. package/dist/extension-hjOPs10e.mjs +0 -1
  387. package/dist/framework-packages-C3RWfJDk.mjs +0 -1
  388. package/dist/handlers-CfnLyLfE.mjs +0 -57
  389. package/dist/load-extensions-D0DfjYLC.mjs +0 -1
  390. package/dist/model-BGgVmRnN.mjs +0 -1
  391. package/dist/namespace-DJfUADSV.mjs +0 -1
  392. package/dist/orchestrator-shared-BxmHCPvx.mjs +0 -1
  393. package/dist/package-CNUPPcU1.mjs +0 -7
  394. package/dist/package-Dft_RItb.mjs +0 -1
  395. package/dist/schemas-Cm09dXL4.mjs +0 -1
  396. package/dist/scoped-bus-C9BdNwfM.mjs +0 -1
  397. package/dist/session-BOGCd18q.mjs +0 -1
  398. package/dist/session-BTFiDoGz.mjs +0 -76
  399. package/dist/shared-BQ0CHIVy.mjs +0 -1
  400. package/dist/tool-approval-service-kBA0fRzm.mjs +0 -1
  401. package/dist/types-CJ_QZ1yW.d.mts +0 -1487
  402. package/dist/workflow-BfDbgtIQ.mjs +0 -1
  403. package/dist/workflow-worker-BN9XPxQO.mjs +0 -1
  404. package/dist/{adapter-auth-runtime-DO-FVTXg.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
  405. package/dist/{adapter-binding-DQchUtrK.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
  406. package/dist/{attempt-record-codec-CqO1_XnE.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
  407. package/dist/{base-orchestrator-BilsQNW1.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
  408. package/dist/{capability-service-BqiLlRGA.mjs → capability-service-CJHNkjvm.mjs} +0 -0
  409. package/dist/{client-B--e2qcU.d.mts → client-4ihewPUm.d.mts} +0 -0
  410. package/dist/{client-binary-version-verifier-taewmKTY.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
  411. package/dist/{client-binary-version-verifier-CgjM_vGF.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
  412. package/dist/{clients-namespace-DfxjG2ZP.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
  413. package/dist/{config-namespace-BCqvufbD.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
  414. package/dist/{create-static-mount-bbQhTt6W.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
  415. package/dist/{cross-spawn-B57KZuns.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
  416. package/dist/{cursor-storage-DIFK_9hg.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
  417. package/dist/{definition-gnKgXU91.d.mts → definition-DB-kKc0d.d.mts} +0 -0
  418. package/dist/{definitions-xrrY0wgz.mjs → definitions-CF6YmEhL.mjs} +0 -0
  419. package/dist/{descriptor-to-package-DvF08krT.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
  420. package/dist/{drizzle-z_0SiGY8.mjs → drizzle-CPv3vdTE.mjs} +0 -0
  421. package/dist/{esm-CltRnX8_.mjs → esm-CBFWM8u_.mjs} +0 -0
  422. package/dist/{event-CmVjR6Ib.mjs → event-DR8U9Efx.mjs} +0 -0
  423. package/dist/{facet-BCI00njh.mjs → facet-DVsW12iF.mjs} +0 -0
  424. package/dist/{filesystem-service-CQ9yVkSz.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
  425. package/dist/{handler-Cbv9FqDO.mjs → handler-Bqlk-6BY.mjs} +0 -0
  426. package/dist/{host-Caq6ZfSJ.mjs → host-k5yoyKHg.mjs} +0 -0
  427. package/dist/{identity-D6guMtmi.mjs → identity-DC3Pk0ps.mjs} +0 -0
  428. package/dist/{index-dtsLKOID.d.mts → index-42UdYStR.d.mts} +0 -0
  429. package/dist/{index-DR40QWlw.d.mts → index-BJAB-BW_.d.mts} +0 -0
  430. package/dist/{index-Dm1nUxCF.d.mts → index-BJMezANn.d.mts} +0 -0
  431. package/dist/{index-CnMu8BQl.d.mts → index-BQprJNA_.d.mts} +0 -0
  432. package/dist/{index-Cv-o5Krs.d.mts → index-BRCrFirq.d.mts} +0 -0
  433. package/dist/{index-BVRQEpAg.d.mts → index-BRzHs7Bx.d.mts} +6 -6
  434. /package/dist/{index-DXN_L5D6.d.mts → index-BSbGB23v.d.mts} +0 -0
  435. /package/dist/{index-vA--0lOM.d.mts → index-BVcQcphK.d.mts} +0 -0
  436. /package/dist/{index-ye0oklfU.d.mts → index-BcvqDfcN.d.mts} +0 -0
  437. /package/dist/{index-CGZQVTid.d.mts → index-BeENojSx2.d.mts} +0 -0
  438. /package/dist/{index-DjgLchuQ.d.mts → index-Beo_Ik8-.d.mts} +0 -0
  439. /package/dist/{index-sS6KUlrx.d.mts → index-BgGe9WZz.d.mts} +0 -0
  440. /package/dist/{index-CWHfOz6d.d.mts → index-CK3f0bAL.d.mts} +0 -0
  441. /package/dist/{index-DZunhZec.d.mts → index-CQuRTeRa.d.mts} +0 -0
  442. /package/dist/{index-jTaAHsul.d.mts → index-CRmE88hi.d.mts} +0 -0
  443. /package/dist/{index-CjdRdsd0.d.mts → index-CvW9_SzR.d.mts} +0 -0
  444. /package/dist/{index-ByKi34v5.d.mts → index-CxSSdIZz.d.mts} +0 -0
  445. /package/dist/{index-vcSj12YQ.d.mts → index-E4SET1AA.d.mts} +0 -0
  446. /package/dist/{index-DN4NOCqN2.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
  447. /package/dist/{index-BIdsFcQs2.d.mts → index-aoxdnhJ42.d.mts} +0 -0
  448. /package/dist/{index-SsBHjUqA.d.mts → index-nydhGvXa.d.mts} +0 -0
  449. /package/dist/{jsonl-transport-bQl3JwIu.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
  450. /package/dist/{lib-DOBXZmYX.mjs → lib-Bwdd2m81.mjs} +0 -0
  451. /package/dist/{model-registry-CmgcPDH3.mjs → model-registry-Y854mUml.mjs} +0 -0
  452. /package/dist/{model-registry-xyBKSye-.mjs → model-registry-yURX738J.mjs} +0 -0
  453. /package/dist/{modes-BheyN7SS.mjs → modes-DmUsjHdV.mjs} +0 -0
  454. /package/dist/{namespace-HO2J9sO8.mjs → namespace-B9FEGuEu.mjs} +0 -0
  455. /package/dist/{namespace-jDhZjw-i.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
  456. /package/dist/{namespace-GPA7zots.d.mts → namespace-BusZERU8.d.mts} +0 -0
  457. /package/dist/{namespace-BOkKoq34.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
  458. /package/dist/{namespace-YytVKIgI.d.mts → namespace-C1D77w7U.d.mts} +0 -0
  459. /package/dist/{namespace-CErHuXtb.d.mts → namespace-C6CVEGH8.d.mts} +0 -0
  460. /package/dist/{namespace-C-9si-fV.mjs → namespace-CfIW0hpQ.mjs} +0 -0
  461. /package/dist/{namespace-YxU1xf-K.mjs → namespace-CkBbNFSU.mjs} +0 -0
  462. /package/dist/{namespace-DWCEo-9M.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
  463. /package/dist/{namespace-CWGKCNZm.mjs → namespace-DbNWsPFY.mjs} +0 -0
  464. /package/dist/{namespace-Cv1RFP7n.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
  465. /package/dist/{namespace-tGRAod3o.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
  466. /package/dist/{namespace-Blp4c8GK.d.mts → namespace-yREpGJgG.d.mts} +0 -0
  467. /package/dist/{out-CvjtANXN.mjs → out-DrhwCgqM.mjs} +0 -0
  468. /package/dist/{packages-DtEEP0Vt.mjs → packages-FBv3fAOR.mjs} +0 -0
  469. /package/dist/{packages-BZ6pzFIq.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
  470. /package/dist/{platform-Bv8llU9c.mjs → platform-BrsMv_S3.mjs} +0 -0
  471. /package/dist/{provider-operation-Cxoe2SUr.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
  472. /package/dist/{providers-Co5UszRH.mjs → providers-CCcn4Ndp.mjs} +0 -0
  473. /package/dist/{providers-namespace-DjFkmvBR.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
  474. /package/dist/{quick-lru-CrOpWwrf.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
  475. /package/dist/{schema-introspection-DgWQCpwx.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
  476. /package/dist/{schema-Db-y-09L.mjs → schema-jIapW8Kb.mjs} +0 -0
  477. /package/dist/{schemas-CR8hSqTy.d.mts → schemas-B7zo7Zcx.d.mts} +0 -0
  478. /package/dist/{schemas-CqRm0i9a.mjs → schemas-BNdiVBWh.mjs} +0 -0
  479. /package/dist/{schemas-B1NWNASS.d.mts → schemas-C-Bm6Oac.d.mts} +0 -0
  480. /package/dist/{schemas-BO7uOum6.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
  481. /package/dist/{schemas-N6x2z7Lf.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
  482. /package/dist/{schemas-CwbYk_kZ.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
  483. /package/dist/{schemas-BtZqovRH.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
  484. /package/dist/{schemas-tDf_WiC8.mjs → schemas-CvHFbzdy.mjs} +0 -0
  485. /package/dist/{schemas-BsVYZviy.d.mts → schemas-DZH9lpxs.d.mts} +0 -0
  486. /package/dist/{schemas-BGExwp3j.mjs → schemas-DgwEVUt-.mjs} +0 -0
  487. /package/dist/{schemas-Bfxskx_2.mjs → schemas-mLpOfMoN.mjs} +0 -0
  488. /package/dist/{schemas-CQyRBqD6.d.mts → schemas-qA279_j_.d.mts} +0 -0
  489. /package/dist/{schemas-miYxK_Z1.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
  490. /package/dist/{semver-DlM8znk4.mjs → semver-DTXuyLcK.mjs} +0 -0
  491. /package/dist/{server-lifecycle-Dsq56aqC.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
  492. /package/dist/{server-lifecycle-kmQ5PUDv.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
  493. /package/dist/{shared-schemas-DXwyMCwZ.mjs → shared-schemas-aahW97QW.mjs} +0 -0
  494. /package/dist/{src-CCu8TwL6.mjs → src-DHqsl5Pg.mjs} +0 -0
  495. /package/dist/{storage-namespace-BSrv0vXR.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
  496. /package/dist/{storage-namespace-dfywhXR3.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
  497. /package/dist/{storage-namespace-definition-BvlX0QV_.d.mts → storage-namespace-definition-BsnYAPot.d.mts} +0 -0
  498. /package/dist/{storage-namespace-definition-CkMKt7-I.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
  499. /package/dist/{supports-color-DUugCQsK.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
  500. /package/dist/{telemetry-Pr3oP2rk.mjs → telemetry-BvCBUjFg.mjs} +0 -0
  501. /package/dist/{timeout-DWDhddRJ.mjs → timeout-B0nYjLc8.mjs} +0 -0
  502. /package/dist/{tray-menu-service-BBLa-Rcv.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
  503. /package/dist/{types-BrcjaNPZ.d.mts → types-CNS55jvt.d.mts} +0 -0
  504. /package/dist/{types-b54n1o57.d.mts → types-Ce6LL25v.d.mts} +0 -0
  505. /package/dist/{ui-config-CyCdlns_.mjs → ui-config-BIyGzMNL.mjs} +0 -0
  506. /package/dist/{variant-krjlTdJt.mjs → variant-B4uWdxW7.mjs} +0 -0
  507. /package/dist/{window-registry-BDnZLPVx.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
  508. /package/dist/{window-registry-I-imZHV_.mjs → window-registry-CoBJq3u4.mjs} +0 -0
@@ -1 +0,0 @@
1
- import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{n}from"./attach-error-C3tngg6J.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 +0,0 @@
1
- import{i as e,t}from"./json-value-DmU8ibo_.mjs";import{a as n,s as ee}from"./visibility-qhGWmpSJ.mjs";import"./model-BGgVmRnN.mjs";import{c as te,f as r,i as ne,o as i,p as a,r as re,s as ie}from"./shared-BQ0CHIVy.mjs";import{a as o,f as ae,i as oe,n as se,r as s,t as ce,u as le}from"./compression-74fFeBha.mjs";import{t as c}from"./provider-context-Dq53Cgzz.mjs";import{t as ue}from"./schemas-BGExwp3j.mjs";import{r as de}from"./profile-BTAI31Nt.mjs";import{i as fe}from"./account-identity-DFx8pwKL.mjs";import{SessionLineageSchema as pe}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as l}from"zod";import{localSubject as u,observability as d}from"@makaio/framework/core";const f=l.object({adapterId:l.string(),adapterName:l.string()}),p=l.object({cwd:l.string().optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional(),systemPrompt:r.optional()}),me={request:l.object({adapterName:l.string().optional(),adapterId:l.string().optional()}).refine(e=>e.adapterName||e.adapterId,{message:`Either adapterName or adapterId must be provided`}),response:l.object({capabilities:l.array(l.string()),nativeTools:l.array(l.string())})},m=l.enum([`lead`,`member`]),h=l.enum([`fork`,`branch`,`subagent`,`compress`,`rewrite`,`coordinator`,`aside`]),g=l.enum([`parent-history`,`none`]),_=l.enum([`discovered`,`imported`,`tracking`]),he=l.object({sessionId:l.string(),title:l.string().nullable(),forkPointMessageId:l.string().nullable(),branchKind:h.nullable(),messageCount:l.number(),hasChildren:l.boolean(),spawningToolCallId:l.string().optional()}),ge=l.object({fromMessageId:l.string(),toMessageId:l.string(),policy:l.enum([`verbatim`,`summarize`,`exclude`]),stripReasoning:l.boolean().optional(),stripToolOutputs:l.boolean().optional(),overrides:l.record(l.string(),l.literal(`exclude`)).optional(),summaryText:l.string().optional()}),v=l.object({removedMessageIds:l.array(l.string()).optional(),appliedPipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()})).optional(),segments:l.array(ge).optional()}),_e=l.object({parentSessionId:l.string(),childSessionId:l.string(),summary:l.string().optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),ve=l.object({success:l.boolean(),handoff:l.string().optional()}),ye=l.object({parentSessionId:l.string(),childSessionId:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),be=l.object({success:l.boolean()}),xe=l.object({sessionId:l.string()}),Se=l.object({children:l.array(he)}),Ce=l.object({parentSessionId:l.string(),childSessionId:l.string(),reason:l.string()}),we=l.object({parentSessionId:l.string(),childSessionId:l.string(),forkPoint:l.string().optional()}),Te=l.object({parentSessionId:l.string(),childSessionId:l.string()}),Ee=l.object({parentSessionId:l.string(),childSessionId:l.string(),handoff:l.string()}),De=l.object({sessionId:l.string(),parentSessionId:l.string().optional()}),Oe=l.object({parentSessionId:l.string(),childSessionId:l.string(),result:l.unknown()}),ke=l.object({sessionId:l.string(),reason:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),Ae=l.object({sessionId:l.string(),pipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()}))}),je=l.object({eventId:l.string(),contextJson:l.record(l.string(),l.unknown()),tokensBefore:l.number(),tokensAfter:l.number().optional()}),Me=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),kind:h,forkPointMessageId:l.string().optional(),transforms:v.optional()}),Ne=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()}),Pe=l.object({sessionId:l.string(),summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()}),y=l.object({sessionId:l.string(),parentSessionId:l.string().nullable(),branchKind:h.nullable(),createdAt:l.number(),originWindowId:l.string().optional()}),b=l.object({sessionId:l.string(),changedProperties:l.array(l.string())}),Fe={merge:{request:_e,response:ve},abandon:{request:ye,response:be},getChildren:{request:xe,response:Se},forking:Ce,forked:we,merging:Te,merged:Ee,abandoned:De,childCompleted:Oe,compressionRequested:ke,"branch.created":Me,"branch.merged":Ne,squash:Pe,created:y,updated:b,compress:{request:Ae,response:je}},x=l.enum([`adapter-unsupported`,`adapter-mismatch`,`no-adapter-session`,`missing-machine-id`,`machine-mismatch`,`cwd-mismatch`,`transforms-present`,`compression-present`,`connector-swap`,`mid-history-unsupported`,`hybrid-imported-orchestrated`,`native-attempt-failed`,`agent-already-started`,`fork-point-unresolvable`]),S=l.discriminatedUnion(`kind`,[l.object({kind:l.literal(`native`)}),l.object({kind:l.literal(`degrade`),reason:x}),l.object({kind:l.literal(`foreign`),machineId:l.string()})]),C=l.object({sourceSessionId:l.string(),sourceAdapterSessionId:l.string(),forkPointMessageId:l.string().optional(),targetWorkingDirectory:l.string().optional()}),w=l.string().regex(/^[\u0020-\u007e]*$/u,`Correlation identifiers must contain only printable ASCII characters`).trim().min(1).max(512),T=l.object({sessionId:w.optional(),turnId:w.optional(),messageId:w.optional(),executionId:w.optional(),frameId:w.optional()}).strict(),E=[`auto`,`systemPrompt`,`fullPrefix`],D=l.object({messageHistory:l.array(te).optional(),hasNewTransforms:l.boolean().optional(),hasCompression:l.boolean().optional(),extractedContext:l.unknown().optional(),isFirstTurn:l.boolean().optional(),hasConnectorSwap:l.boolean().optional(),cacheStrategy:l.enum(E).optional(),turnContext:l.record(l.string(),e).optional(),requestCorrelation:T.optional(),nativeLocality:S.optional(),nativeFork:C.optional()}),O=ne,k=l.enum([`user`,`assistant`]),A=l.enum([`voice`,`text`,`compact`]),j=l.object({messageId:l.string(),turnId:l.string().nullable(),sessionId:l.string(),role:k,contentText:l.string(),blocks:l.array(O),agentId:l.string().optional(),adapterSessionId:l.string().optional(),adapterMessageId:l.string().optional(),timestamp:l.number(),editOf:l.string().optional(),origin:A.optional()}),M=l.enum([`active`,`completed`,`error`]),N=l.object({inputTokens:l.number(),cachedInputTokens:l.number().optional(),outputTokens:l.number(),cost:l.number().optional()}),P=l.object({total:N,byAgent:l.record(l.string(),N).optional()}),F=l.object({source:l.enum([`user`,`extension`,`system`]),sourceId:l.string().optional()}),I=l.object({turnId:l.string(),sessionId:l.string(),turnNumber:l.number().int().min(1),startedAt:l.number(),completedAt:l.number().optional(),status:M,error:l.string().optional(),usage:P.optional(),initiator:F.optional()}),L=l.enum([`sent`,`acknowledged`,`completed`]),Ie=l.object({messageId:l.string(),agentId:l.string(),status:L,timestamp:l.number(),error:l.string().optional()}),Le=l.enum([`idle`,`active`,`dead`,`disposed`]),R=l.object({agentId:l.string(),adapterId:l.string(),adapterName:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional(),model:l.string().optional(),cwd:l.string().optional(),allowedDirectories:l.array(l.string()).optional(),providerConfigId:l.string().optional(),personaId:l.string().optional(),profileId:l.string().optional(),harnessId:l.string().optional(),clientId:l.string().optional(),compressionMode:ce.optional(),role:m,status:Le,createdAt:l.number(),lastActivityAt:l.number()}),z=l.record(l.string(),e),B=l.object({sessionId:l.string(),createdAt:l.number(),lastActivityAt:l.number(),agents:l.array(R),status:l.enum([`active`,`closed`,`archived`,`discovered`]),leadAgentId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:g.optional(),rootSessionId:l.string().optional(),forkPointMessageId:l.string().optional(),branchKind:h.optional(),adapterName:l.string().optional(),adapterSessionId:l.string().optional(),adapterId:l.string().optional(),clientId:l.string().optional(),clientAccountId:l.string().optional(),lastClientIdentityObservation:fe.optional(),isOrchestrated:l.boolean().optional(),title:l.string().optional(),summary:l.string().optional(),summaryUpdatedAt:l.number().optional(),isImported:l.boolean().optional(),forkTransforms:v.optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),spawningToolCallId:l.string().optional(),approvalPolicyOverride:ue.nullable().optional(),metadata:z.optional(),source:l.string().optional(),parentExternalSessionId:l.string().optional(),logFilePath:l.string().optional(),discoveredAt:l.number().optional(),importStatus:_.optional(),isSidechain:l.boolean().optional(),machineId:l.string().nullable().optional()}),V=l.object({messageCount:l.number(),firstUserMessage:l.string().nullable()}),H=B.extend({preview:V.optional()}),U=l.enum([`live`,`backfill`]),W=l.object({sessionId:l.string(),turnId:l.string(),turnNumber:l.number().int().min(1)}),G=W.extend({messageId:l.string()}),K=W.extend({success:l.boolean(),error:l.string().optional(),usage:P.optional(),initiator:F.optional(),ingestionMarker:U.optional()}),Re=oe.safeExtend({kind:l.string().regex(/^(?!(?:adapter|canonical-model)$).+$/)}),ze=l.union([s,se,Re]),Be=s.extend({providerContext:c.optional()}),Ve=l.object({sessionId:l.string(),agent:Be,harnessId:l.string().optional(),initialMessage:i.optional(),responseSchema:a.optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional(),assertInitialMessageAdmission:l.unknown().optional(),role:l.enum([`lead`,`member`]).optional()}),He=l.object({agentId:l.string(),adapterSessionId:l.string().optional(),role:l.enum([`lead`,`member`]),messageId:l.string().optional(),turnId:l.string().optional()}),q={sendMessage:{request:l.object({sessionId:l.string(),message:i,agent:ze.optional(),agentIds:l.union([l.array(l.string()),l.literal(`all`)]).optional(),deliveryMode:l.enum([`enqueue`]).optional(),turnId:l.string().optional(),sessionContext:D.optional(),responseSchema:a.optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional(),originWindowId:l.string().optional(),skipConnectorSwapWarning:l.boolean().optional(),origin:A.optional()}),response:l.object({messageId:l.string(),turnId:l.string(),sessionId:l.string()})},"agent.attach":{request:l.object({sessionId:l.string(),agent:o,initialMessage:i.optional(),responseSchema:a.optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional(),role:l.enum([`lead`,`member`]).optional()}),response:l.object({agentId:l.string(),adapterSessionId:l.string().optional(),role:l.enum([`lead`,`member`]),messageId:l.string().optional(),turnId:l.string().optional()})},"agent.attachResolved":u({request:Ve,response:He}),"turn.started":W.extend({messageId:l.string(),agentIds:l.array(l.string()),initiator:F.optional(),ingestionMarker:U.optional()}),"turn.assistantPersistenceSettled":u(l.object({sessionId:l.string(),turnId:l.string(),messageId:l.string(),agentId:l.string()})),"turn.completed":K,"turn.await":{request:l.object({sessionId:l.string(),turnId:l.string(),timeoutMs:l.number().int().positive()}),response:l.object({completion:K})},"user_message.sent":G.extend({content:i,agentIds:l.array(l.string()),source:l.enum([`extension`,`user`,`system`]).optional(),origin:A.optional()}),"user_message.acknowledged":G.extend({agentId:l.string()}),"user_message.completed":G.extend({agentId:l.string(),outcome:ie,supersededBy:l.string().optional(),mergedInto:l.string().optional(),error:l.string().optional()}),fork:{request:l.object({sourceSessionId:l.string(),fromMessageId:l.string().optional(),name:l.string().optional(),branchKind:l.enum([`fork`,`branch`,`aside`]).optional(),transforms:v.optional(),targetWorkingDirectory:l.string().optional(),metadata:z.optional(),existingSessionId:l.string().optional()}),response:l.object({sessionId:l.string()})}},Ue=l.discriminatedUnion(`success`,[l.object({agentId:l.string(),adapterId:l.string(),success:l.literal(!0)}),l.object({agentId:l.string(),adapterId:l.string(),success:l.literal(!1),error:l.string()})]),We=l.object({sessionId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:g.optional(),forkPointMessageId:l.string().optional(),branchKind:h.optional(),forkTransforms:v.optional(),title:l.string().optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),metadata:z.optional(),spawningToolCallId:l.string().optional(),originWindowId:l.string().optional(),machineId:l.string().nullable().optional()});function Ge(e,t){e.spawningToolCallId&&e.branchKind!==`subagent`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`spawningToolCallId`],message:`spawningToolCallId is only valid for subagent sessions`})}const Ke={list:{request:d.schema(l.object({status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:l.number().int().min(1).optional(),offset:d.hidden(l.number().int().min(0).optional()),includePreview:l.boolean().optional(),executionTargetId:l.string().optional()}),{traceAll:!0}),response:l.object({sessions:l.array(H),total:l.number()})},search:{request:l.object({query:l.string(),limit:l.number().int().min(1).optional(),status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:l.boolean().optional()}),response:l.object({sessions:l.array(H),total:l.number()})},get:{request:l.object({sessionId:l.string()}),response:l.object({session:B.nullable()})},create:{request:We.superRefine(Ge),response:l.object({sessionId:l.string()})},close:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},resume:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},restartAgents:{request:l.object({sessionId:l.string(),machineId:l.string().optional()}),response:l.object({sessionId:l.string(),results:l.array(Ue)})},archive:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},purge:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean(),eventsDeleted:l.number().optional(),error:l.string().optional()})},update:{request:l.object({sessionId:l.string(),executionTargetId:l.string().nullable().optional(),approvalPolicyOverride:ue.nullable().optional(),title:l.string().optional(),metadata:z.nullable().optional()}),response:l.object({success:l.boolean()})},getByAdapterSessionId:{request:l.object({adapterSessionId:l.string()}),response:l.object({session:B.nullable()})},getStatusCounts:{request:l.object({}),response:l.object({all:l.number(),active:l.number(),closed:l.number(),archived:l.number(),discovered:l.number()})}},J=l.object({sessionId:l.string(),eventId:l.string(),timestamp:l.number()}),qe=l.discriminatedUnion(`type`,[J.extend({type:l.literal(`agent.added`),payload:l.object({sessionId:l.string(),adapterSessionId:l.string().optional(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:l.enum([`lead`,`member`]).optional(),model:l.string().optional(),cwd:l.string().optional()})}),J.extend({type:l.literal(`user_message.sent`),payload:q[`user_message.sent`]}),J.extend({type:l.literal(`user_message.acknowledged`),payload:q[`user_message.acknowledged`]}),J.extend({type:l.literal(`user_message.completed`),payload:q[`user_message.completed`]}),J.extend({type:l.literal(`turn.started`),payload:q[`turn.started`]}),J.extend({type:l.literal(`turn.completed`),payload:q[`turn.completed`]}),J.extend({type:l.literal(`message`),payload:l.object({messageId:l.string(),turnId:l.string().nullable(),role:l.enum([`user`,`assistant`])})}),J.extend({type:l.literal(`branch.created`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),kind:h,forkPointMessageId:l.string().optional()})}),J.extend({type:l.literal(`branch.merged`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()})}),J.extend({type:l.literal(`squash`),payload:l.object({summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()})}),J.extend({type:l.literal(`locality.degraded`),payload:l.discriminatedUnion(`verdictKind`,[l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`degrade`),reason:x,agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()}),l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`foreign`),foreignMachineId:l.string(),agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()})])})]),Je=[`message`,`agent.added`,`turn.started`,`turn.completed`,`user_message.sent`,`user_message.acknowledged`,`user_message.completed`,`branch.created`,`branch.merged`,`squash`,`locality.degraded`],Ye=Je,Xe=J.extend({type:l.string().refine(e=>!Je.includes(e),{message:`Plugin session event type must not shadow a core event type.`}),payload:l.record(l.string(),l.unknown())}),Y=l.union([qe,Xe]),Ze=l.string(),Qe=l.object({sessionId:l.string().min(1),clientId:l.string().min(1),previousClientAccountId:l.string().min(1).nullable(),clientAccountId:l.string().min(1),source:l.string().min(1),observedAt:l.number().int().finite().nonnegative(),lastClientIdentityObservation:fe}),$e=l.object({sessionId:l.string(),importStatus:_}),et={"agent.added":l.object({sessionId:l.string(),adapterSessionId:l.string().optional(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:m.optional(),model:l.string().optional(),cwd:l.string().optional()}),"agent.removed":l.object({sessionId:l.string(),agentId:l.string()}),closed:l.object({sessionId:l.string(),reason:l.string().optional()}),resumed:l.object({sessionId:l.string()}),archived:l.object({sessionId:l.string()}),purged:l.object({sessionId:l.string()}),compressed:l.object({sessionId:l.string(),eventId:l.string()}),"clientAccount.changed":Qe,"connectorSwap.editRequested":l.object({sessionId:l.string(),agentId:l.string(),previousCwd:l.string().optional(),newCwd:l.string().optional(),previousModel:l.string().optional(),newModel:l.string().optional()}),"locality.degraded":l.intersection(l.object({sessionId:l.string(),eventId:l.string(),timestamp:l.number()}),l.discriminatedUnion(`verdictKind`,[l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`degrade`),reason:x,agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()}),l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`foreign`),foreignMachineId:l.string(),agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()})])),getContextWindowState:{request:l.object({sessionId:l.string()}),response:l.object({state:l.object({currentTokens:l.number(),maxTokens:l.number(),percentage:l.number(),level:l.enum([`ok`,`warn`,`critical`]),lastUpdatedAt:l.number()}).nullable()})},importStatusChanged:$e,"import.completed":l.object({sessionId:l.string(),adapterSessionId:l.string(),source:l.string()}),event:Y},X=l.object({includeEvents:l.boolean().default(!1),includeToolOutputs:l.boolean().default(!1),includeAncestors:l.boolean().default(!0),includeChildren:l.boolean().default(!1)}),tt=`1.0`,Z=l.object({version:l.literal(`1.0`),exportedAt:l.number(),options:X,sessions:l.array(B),agents:l.array(R),messages:l.array(j),turns:l.array(I),events:l.array(Y).optional()});function nt(e){return Z.parse(e)}function rt(e){let t=Z.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}const it={"snapshot.export":{request:l.object({sessionId:l.string(),options:X.optional()}),response:l.object({snapshot:Z})},"snapshot.import":{request:l.object({snapshot:Z,onConflict:l.enum([`fail`,`skip`,`overwrite`]).default(`fail`)}),response:l.object({imported:l.array(l.string()),skipped:l.array(l.string()),errors:l.array(l.object({sessionId:l.string(),error:l.string()}))})},"snapshot.validate":{request:l.object({snapshot:l.unknown()}),response:l.object({valid:l.boolean(),errors:l.array(l.string())})}},at={resolveAgentConfig:{request:l.object({selection:o,projectId:l.string().optional()}),response:l.object({adapterName:l.string(),model:l.string().optional(),providerConfigId:l.string().optional(),reasoningEffort:n.optional(),supportedReasoningLevels:ee.optional(),systemPrompt:r.optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional()})}},ot={resolveSystemPrompt:{request:l.object({sessionId:l.string(),personaId:l.string().optional(),profileId:l.string().optional()}),response:l.object({systemPrompt:l.string(),personaName:l.string().optional(),profileName:l.string().optional()})}},st={enrichContext:{request:l.object({sessionId:l.string()}),response:l.record(l.string(),l.unknown())}},ct={...Ke,...et,...it,...Fe,...q,...at,...ot,...st},Q=l.object({adapterId:l.string(),harnessId:l.string().optional(),clientId:l.string().optional(),clientProfileName:de.optional(),initialMessage:i.optional(),responseSchema:a.optional(),model:l.string().optional(),reasoningEffort:n.optional(),adapterConfig:t.optional(),env:l.record(l.string(),l.string()).optional(),role:m,sessionContext:D.optional(),mcpSessionContext:l.union([ae,le]).optional(),providerContext:c.optional(),ephemeral:l.boolean().optional()}).merge(p),lt={request:l.union([Q.extend({mode:l.literal(`fork`),sessionId:l.string(),sourceSessionId:l.string(),sourceAdapterSessionId:l.string(),forkPointMessageId:l.string().optional(),targetWorkingDirectory:l.string().optional()}),Q.extend({mode:l.literal(`resume`),sessionId:l.string(),adapterSessionId:l.string()}),Q.extend({mode:l.literal(`create`).optional(),sessionId:l.string().optional()})]).superRefine((e,t)=>{let n=e.mode??`create`;e.ephemeral&&n!==`create`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`ephemeral`],message:`ephemeral is only supported for create mode`}),e.ephemeral&&e.initialMessage===void 0&&t.addIssue({code:l.ZodIssueCode.custom,path:[`initialMessage`],message:`ephemeral startAgent requires initialMessage`})}),response:l.discriminatedUnion(`success`,[l.object({success:l.literal(!0),agentId:l.string(),adapterId:l.string(),adapterSessionId:l.string().optional(),sessionId:l.string(),messageId:l.string().optional()}),l.object({success:l.literal(!1),message:l.string()})])},ut={request:l.object({adapterId:l.string(),prompt:l.string(),model:l.string().optional(),systemPrompt:l.string().optional(),responseSchema:a.optional(),providerContext:c.optional()}),response:l.object({text:l.string(),usage:l.object({inputTokens:l.number(),outputTokens:l.number()}).optional()})},dt={request:l.object({adapterId:l.string()}),response:l.object({agents:l.array(l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}))})},ft={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({agent:l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}).nullable()})},pt={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({success:l.boolean()})},mt={request:l.object({adapterId:l.string(),agentId:l.string(),cwd:l.string().optional(),model:l.string().optional(),adapterSessionId:l.string().optional(),resumeAdapterSessionId:l.string().optional()}),response:l.object({})},ht={request:l.object({adapterName:l.string()}),response:l.object({found:l.boolean(),adapterName:l.string(),jsonSchema:l.record(l.string(),l.unknown()).nullable()})},gt=f.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}),_t=f.extend({adapterSessionId:l.string().optional(),sessionId:l.string(),model:l.string()}),vt=f.extend({sessionId:l.string(),adapterSessionId:l.string().optional(),totalInputTokens:l.number(),totalOutputTokens:l.number(),totalCalls:l.number()}),yt=f.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string(),reason:l.string().optional()}),bt=f.extend({message:l.string(),timestamp:l.number(),level:l.enum([`debug`,`info`,`warn`,`error`]).optional()}),xt=f.extend({error:l.string(),sessionId:l.string().optional(),errorCategory:re.optional()}),St=f.extend({capabilities:l.array(l.string()),nativeTools:l.array(l.string()).optional()}),Ct=f.extend({provider:l.string(),quotaType:l.string(),limit:l.number(),used:l.number(),overage:l.number(),resetDate:l.string()}),wt=l.object({agentId:d.attribute(l.string(),`makaio.agent.id`),adapterId:d.attribute(l.string(),`makaio.adapter.id`),adapterName:d.attribute(l.string(),`makaio.adapter.name`),sessionId:d.attribute(l.string(),`makaio.session.id`).optional(),adapterSessionId:d.attribute(l.string(),`makaio.adapter.session_id`).optional(),messageId:d.attribute(l.string(),`makaio.message.id`).optional(),turnId:d.attribute(l.string(),`makaio.turn.id`).optional(),clientId:d.attribute(l.string(),`makaio.client.id`).optional(),providerConfigId:d.attribute(l.string(),`makaio.provider.config_id`).optional(),occurredAt:d.attribute(l.number(),`event.occurred_at`).optional()}),Tt=l.object({model:l.string().nullable(),cwd:l.string().nullable()}),Et=[`fresh`,`resume`,`fork`,`rotation`],$=l.enum(Et),Dt=wt.merge(Tt).extend({startMode:$}),Ot=f.merge(Tt).extend({adapterSessionId:l.string(),title:l.string().optional(),logFilePath:l.string().nullable().optional(),startedAt:l.number().finite().optional(),machineId:l.string().nullable().optional()}).and(pe);export{N as $,Qe as A,H as B,ot as C,X as D,Z as E,We as F,O as G,R as H,U as I,j as J,A as K,B as L,Y as M,Ye as N,rt as O,Ze as P,P as Q,V as R,st as S,tt as T,Ie as U,Le as V,L as W,I as X,F as Y,M as Z,ft as _,wt as a,S as at,lt as b,xt as c,y as ct,vt as d,m as dt,E as et,_t as f,h as ft,pt as g,p as gt,mt as h,me as ht,Dt as i,x as it,$e as j,nt as k,bt as l,b as lt,ht as m,g as mt,Et as n,T as nt,Ct as o,v as ot,gt as p,_ as pt,k as q,$ as r,C as rt,St as s,ge as st,Ot as t,D as tt,yt as u,he as ut,dt as v,at as w,ct as x,ut as y,z};
@@ -1 +0,0 @@
1
- import{s as e}from"./bus-B6SAjgOC.mjs";export{e as createScopedBus};
@@ -1 +0,0 @@
1
- import{B as e,G as t,J as n,K as ee,L as r,M as i,N as a,R as o,ft as s,mt as c,pt as l,ut as u,x as d,z as f}from"./schemas-Cm09dXL4.mjs";import"./compression-74fFeBha.mjs";import{t as p}from"./schemas-BGExwp3j.mjs";import{i as m}from"./account-identity-DFx8pwKL.mjs";import{CompressSessionLineageSchema as h,ForkSessionLineageSchema as g,RootSessionLineageSchema as _,SubagentSessionLineageSchema as v}from"./contracts/adapter/schemas/session-lineage.mjs";import{t as y}from"./storage-namespace-definition-CkMKt7-I.mjs";import{z as b}from"zod";import{createBusNamespace as x}from"@makaio/framework/core";const S=x(`session`,d),te=S.subjects;function ne(e){return a.includes(e.type)}const re=`ui-warnings`,C=`connector-swap-warning-suppressed`,w=1440*60*1e3,T={cancel:`cancel`,edit:`edit`,continue:`continue`},E=`CONNECTOR_SWAP_CANCELLED`;var D=class extends Error{code=E;constructor(){super(`Connector swap cancelled by user`),this.name=`ConnectorSwapCancelledError`}};function O(e){return e instanceof D||e instanceof Error&&`code`in e&&e.code===`CONNECTOR_SWAP_CANCELLED`}const k={branch:{label:`branch`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},subagent:{label:`subagent`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},fork:{label:`fork`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},compress:{label:`compress`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},rewrite:{label:`rewrite`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},coordinator:{label:`coordinator`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1},aside:{label:`aside`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1}};function A(e){return e!=null&&k[e].staysInView}function j(e){return e==null||k[e].navigatesToChild}function M(e){return e!=null&&k[e].canMergeBack}function N(e){return k[e]}const P=b.object({timestamp:b.number(),messageId:b.string()}),F=y(`message`,{schemas:{append:{request:b.object({message:n.omit({messageId:!0}).extend({messageId:b.string().optional()}),emitEvent:b.boolean().optional()}),response:b.object({message:n})},getBySession:{request:b.object({sessionId:b.string(),limit:b.number().int().min(1).optional(),after:P.optional(),includeAfter:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),response:b.object({messages:b.array(n),nextCursor:P.nullable()})},getByTurn:{request:b.object({turnId:b.string()}),response:b.object({messages:b.array(n)})},get:{request:b.object({messageId:b.string()}),response:b.object({message:n.nullable()})},getByAdapterMessageId:{request:b.object({adapterMessageId:b.string()}),response:b.object({message:n.nullable()})},search:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional()}),response:b.object({messages:b.array(n),total:b.number()})},ftsSearch:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional().default(20)}),response:b.object({results:b.array(b.object({messageId:b.string(),sessionId:b.string(),score:b.number(),excerpt:b.string()})),total:b.number()})},upsertByAdapterMessageId:{request:b.object({sessionId:b.string(),turnId:b.string().nullable(),adapterMessageId:b.string(),role:b.enum([`user`,`assistant`]),contentText:b.string(),blocks:b.array(t),agentId:b.string().optional(),adapterSessionId:b.string().optional(),timestamp:b.number(),origin:ee.optional()}),response:b.object({messageId:b.string(),created:b.boolean()})},stored:b.object({message:n})}}),I=F.subjects;function L(e,t){return e.timestamp===t.timestamp?e.messageId.localeCompare(t.messageId):e.timestamp-t.timestamp}function R(e,t){return L(t,e)}function ie(e){return{timestamp:e.timestamp,messageId:e.messageId}}function z(e){return`${e.timestamp}:${e.messageId}`}const B=b.object({after:b.string().optional(),limit:b.number().int().min(1).optional(),types:b.array(b.string()).optional(),includeReasoning:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),V=b.object({events:b.array(i),nextCursor:b.string().nullable(),totalCount:b.number().optional()}),H=y(`sessionEvent`,{schemas:{append:{request:b.object({event:i}),response:b.object({success:b.boolean()})},getEvents:{request:b.object({sessionId:b.string(),options:B.optional()}),response:V},getByIds:{request:b.object({sessionId:b.string(),eventIds:b.array(b.string())}),response:b.object({events:b.array(i)})},deleteBySession:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean(),deletedCount:b.number().optional()})},getEventsBySessions:{request:b.object({sessionIds:b.array(b.string()),types:b.array(b.string()),limitPerSession:b.number().int().min(1).optional()}),response:b.object({eventsBySession:b.record(b.string(),b.array(i))})}}}),U=H.subjects,W=r.extend({preview:o});function G(e,t){e.clientAccountId!==void 0&&e.lastClientIdentityObservation===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`lastClientIdentityObservation`],message:`lastClientIdentityObservation is required when clientAccountId is provided`}),e.clientAccountId!==void 0&&e.clientId===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`clientId`],message:`clientId is required when clientAccountId is provided`})}const K=r.superRefine((e,t)=>{G(e,t)}),q=b.object({sessionId:b.string(),session:K,ifAbsent:b.boolean().optional()}).superRefine((e,t)=>{e.sessionId!==e.session.sessionId&&t.addIssue({code:b.ZodIssueCode.custom,path:[`session`,`sessionId`],message:`session.sessionId must match the top-level sessionId`})}),J=b.string().nullable().optional(),Y={request:b.object({sessionId:b.string(),status:b.enum([`active`,`closed`,`archived`,`discovered`]).optional(),parentSessionId:b.string().optional(),contextInheritance:c.optional(),rootSessionId:b.string().optional(),forkPointMessageId:b.string().optional(),branchKind:s.optional(),isOrchestrated:b.boolean().optional(),clientId:b.string().optional(),clientAccountId:b.string().optional(),lastClientIdentityObservation:m.optional(),executionTargetId:b.string().nullable().optional(),approvalPolicyOverride:p.nullable().optional(),title:b.string().optional(),targetWorkingDirectory:b.string().optional(),createdAt:b.number().finite().optional(),lastActivityAt:b.number().finite().optional(),metadata:f.nullable().optional(),spawningToolCallId:b.string().nullable().optional(),machineId:J}),response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},ae=b.enum([`live`]),X=b.object({externalSessionId:b.string(),source:b.string(),clientId:b.string().optional(),adapterId:b.string().optional(),cwd:b.string().nullable(),logFilePath:b.string().nullable().optional(),startedAt:b.number().finite().optional(),title:b.string().nullable().optional(),metadata:f.optional(),lastClientIdentityObservation:m.optional(),importStatus:b.enum([`discovered`,`tracking`]).optional(),activation:ae.optional(),isSidechain:b.boolean().optional(),machineId:J}),Z=b.discriminatedUnion(`kind`,[X.merge(_),X.merge(g),X.merge(v),X.merge(h)]),Q=y(`session`,{schemas:{get:{request:b.object({sessionId:b.string()}),response:b.object({session:r.nullable()})},set:{request:q,response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},delete:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean()})},list:{request:b.object({status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:b.number().int().min(1).optional(),offset:b.number().int().min(0).optional(),includePreview:b.boolean().optional(),executionTargetId:b.string().optional()}),response:b.object({sessions:b.array(e),total:b.number()})},getChildren:{request:b.object({sessionId:b.string()}),response:b.object({children:b.array(u)})},search:{request:b.object({query:b.string(),limit:b.number().int().min(1).optional(),status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:b.boolean().optional()}),response:b.object({sessions:b.array(W),total:b.number()})},update:Y,getByAdapterSessionId:{request:b.object({adapterSessionId:b.string(),source:b.string().optional(),adapterName:b.string().optional()}),response:b.object({session:r.nullable()})},getStatusCounts:{request:b.object({}),response:b.object({all:b.number(),active:b.number(),closed:b.number(),archived:b.number(),discovered:b.number()})},importUpsert:{request:Z,response:b.object({sessionId:b.string(),created:b.boolean()})},getByLogFilePath:{request:b.object({logFilePath:b.string()}),response:b.object({session:r.nullable()})},listImported:{request:b.object({source:b.string().optional(),importStatus:l.optional()}),response:b.object({sessions:b.array(r)})},countBySource:{request:b.object({source:b.string()}),response:b.object({total:b.number(),imported:b.number(),discovered:b.number(),tracking:b.number()})},updateImportStatus:{request:b.object({sessionId:b.string(),importStatus:l}),response:b.object({success:b.boolean()})}}}),oe=Q.subjects,$=`makaio:extraction-excluded`;function se(e){return e?.[$]===!0}function ce(){return{[$]:!0}}export{ne as A,E as C,C as D,T as E,te as M,w as O,j as S,O as T,F as _,Q as a,A as b,oe as c,U as d,L as f,P as g,ie as h,Z as i,S as j,re as k,Y as l,z as m,ce as n,q as o,R as p,se as r,K as s,$ as t,H as u,I as v,D as w,M as x,N as y};
@@ -1,76 +0,0 @@
1
- import{agents as e,agentsDual as t,sessions as n,sessionsDual as r}from"./services/session/storage/schema.mjs";import"./schema-Dd-e89MO.mjs";import{a as i,n as a,o}from"./namespace-BqxtpNAn.mjs";import{D as s,F as c,I as l,L as u,R as d,T as f,_ as p,d as m,g as h,h as g,k as _,l as v,m as ee,p as te,u as ne,v as y,x as b,z as x}from"./handlers-CfnLyLfE.mjs";import{TurnStorageSubjects as S}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as C}from"./services/session/storage/namespace.mjs";import{o as re}from"./provider-context-PZIQWcqQ.mjs";import{AdapterRuntimeSubjects as w}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as T}from"./services/session/messages/namespace.mjs";import{n as E}from"./namespace-CWGKCNZm.mjs";import{z as D}from"zod";import{createBusNamespace as ie}from"@makaio/framework/core";import{MakaioBus as ae,NoHandlerError as oe,TimeoutError as se}from"@makaio/framework/bus";import{AdapterSubjects as O,AgentSubjects as k,CanonicalModelSubjects as ce,CapabilitySubjects as le,ClientSubjects as ue,CompressionModeSchema as de,FORK_SESSION_LINEAGE_KIND as fe,ForkTransformsSchema as pe,MessageRoutingSchema as me,MessageStorageSubjects as he,ROOT_SESSION_LINEAGE_KIND as ge,SessionContextSchema as _e,SessionDiscoveredSchema as ve,SessionRecordMetadataSchema as ye,SessionStorageSetRequestSchema as be,SessionStorageUpdateSchema as xe,SessionSubjects as A,TurnIngestionMarkerSchema as Se,compareMessageCursorAsc as Ce,compareMessageCursorDesc as we,isCanonicalModelParseError as Te,messageToCursor as j,parseCanonicalModel as Ee}from"@makaio/framework/contracts";import{BaseService as De}from"@makaio/framework/service-base";import{blob as Oe,index as ke,integer as Ae,primaryKey as je,sqliteTable as Me,text as Ne,uniqueIndex as Pe}from"drizzle-orm/sqlite-core";import{index as Fe,primaryKey as Ie}from"drizzle-orm/pg-core";import{defineDialectSchema as Le,defineDualTable as Re,didAffectRows as M,getRawSqlExecutor as ze,getStorageEngine as Be,resolveSchema as N,resolveStorageEngine as Ve}from"@makaio/framework/storage/drizzle";import{and as P,asc as He,count as F,desc as Ue,eq as I,gt as We,gte as Ge,inArray as L,isNull as R,lt as Ke,lte as qe,or as Je,sql as z}from"drizzle-orm";import{createStorageNamespaceDefinition as Ye}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Xe}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Ze}from"@makaio/framework/adapters";function Qe(e){return e.on(A.agent.added,async t=>{let n=await e.requestOptional(C.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(r.adapterSessionId||(r.adapterSessionId=t.payload.adapterSessionId,r.adapterName=t.payload.adapterName,r.adapterId=t.payload.adapterId),(t.payload.role??(r.leadAgentId?`member`:`lead`))===`lead`&&(r.leadAgentId=t.payload.agentId),r.lastActivityAt=Date.now(),await e.request(C.set,{sessionId:t.payload.sessionId,session:r}))})}function $e(e){return e.on(A.agent.removed,async t=>{let n=await e.requestOptional(C.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(await e.requestOptional(c.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),r.leadAgentId===t.payload.agentId&&(r.leadAgentId=void 0),r.lastActivityAt=Date.now(),await e.request(C.set,{sessionId:t.payload.sessionId,session:r}))})}function et(e){return e.on(k.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(c.get,{agentId:n}),l=s.handled?s.data.agent:null;l&&!l.adapterSessionId&&await e.requestOptional(c.updateRuntime,{agentId:n,adapterSessionId:r});let u=await e.requestOptional(C.get,{sessionId:o}),d=u.handled?u.data.session:null;if(d&&!d.adapterSessionId){if(d.adapterName){if(i!==d.adapterName)return;d.adapterSessionId=r}else d.adapterSessionId=r,d.adapterName=i,d.adapterId=a;d.lastActivityAt=Date.now(),await e.requestOptional(C.set,{sessionId:o,session:d})}})}function tt(e){return[it(e),at(e),ot(e),nt(e),st(e),ut(e),dt(e),ft(e),pt(e),Qe(e.bus),$e(e.bus),et(e.bus)]}function nt(e){let{bus:t}=e;return t.on(A.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(A.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await rt(t,n,r);if(s!==void 0){a.abort(),e.setResult({completion:s});return}try{let t=await o;e.setResult({completion:t.payload})}catch(e){throw e instanceof Error&&e.name===`OnceTimeoutError`?new se(`session.turn.await`,i):e}})}async function rt(e,t,n){let r=await e.requestOptional(S.get,{turnId:n}),i=r.handled?r.data.turn:null;if(!(i?.sessionId!==t||i.status!==`completed`&&i.status!==`error`))return{sessionId:t,turnId:n,turnNumber:i.turnNumber,success:i.status===`completed`,...i.error!==void 0&&{error:i.error},...i.usage!==void 0&&{usage:i.usage},...i.initiator!==void 0&&{initiator:i.initiator}}}function it(e){let{bus:t}=e;return t.on(A.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(A.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),ee={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},te=await t.requestOptional(C.set,{sessionId:h,session:ee,ifAbsent:!0});if(te.handled&&!te.data.success){e.setResult({sessionId:h});return}await t.emit(A.created,{sessionId:h,createdAt:ee.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function at(e){let{bus:t}=e;return t.on(A.get,async e=>{let n=await t.requestOptional(C.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function ot(e){let{bus:t}=e;return t.on(A.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(C.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],l=s.handled?s.data.total:0;e.setResult({sessions:c,total:l})})}function st(e){let{bus:t}=e;return t.on(A.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(C.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`closed`){e.setResult({success:!0});return}if(i.status!==`active`){e.setResult({success:!1});return}i.status=`closed`,i.lastActivityAt=Date.now(),await t.requestOptional(C.set,{sessionId:n,session:i}),await t.emit(A.closed,{sessionId:n}),e.setResult({success:!0})})}async function ct(e,t){try{let n=await e.requestOptional(O.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function lt(e,t){if(t!==void 0)return t;let n=await e.requestOptional(w.getMachineId,{});return n.handled?n.data.machineId:void 0}function ut(e){let{bus:t}=e;return t.on(A.restartAgents,async e=>{let{sessionId:n,machineId:r}=e.payload,i=await t.requestOptional(c.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await lt(t,r),l=await t.requestOptional(C.get,{sessionId:n}),u=l.handled?l.data.session??void 0:void 0;for(let e of a)try{let n,r=!1;if(u!==void 0&&(b({intent:`resume`,session:u,localMachineId:s,adapterSupportsNative:await ct(t,e.adapterId),targetAdapterName:e.adapterName,currentCwd:e.cwd,targetCwd:e.cwd}).kind===`native`&&e.adapterSessionId!==void 0?n=e.adapterSessionId:r=!0),r){o.push({agentId:e.agentId,adapterId:e.adapterId,success:!0});continue}let i=await f(t,e,{cwd:e.cwd,model:e.model,resumeAdapterSessionId:n});await t.requestOptional(c.updateRuntime,{agentId:i.agentId,adapterId:i.adapterId}),o.push({agentId:i.agentId,adapterId:i.adapterId,success:!0})}catch(t){let n=t instanceof Error?t.cause:void 0,r=n instanceof Error?n.message:t instanceof Error?t.message:String(t);o.push({agentId:e.agentId,adapterId:e.adapterId,success:!1,error:r})}e.setResult({sessionId:n,results:o})})}function dt(e){let{bus:t}=e;return t.on(A.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(C.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(A.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function ft(e){let{bus:t}=e;return t.on(A.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(C.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`archived`){e.setResult({success:!0});return}if(i.status!==`closed`){e.setResult({success:!1});return}i.status=`archived`,i.lastActivityAt=Date.now(),await t.requestOptional(C.set,{sessionId:n,session:i}),await t.emit(A.archived,{sessionId:n}),e.setResult({success:!0})})}function pt(e){let{bus:t}=e;return t.on(A.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(C.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1,error:`Session not found`});return}if(i.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let o=await t.requestOptional(C.list,{status:`all`}),s=o.handled?o.data.sessions:[];for(let e of s)e.parentSessionId===n&&await t.requestOptional(C.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(a.getEvents,{sessionId:n,options:{limit:1}}),l=c.handled?c.data.totalCount:0;await t.requestOptional(a.deleteBySession,{sessionId:n}),await t.requestOptional(C.delete,{sessionId:n}),await t.emit(A.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:l})})}var mt=class extends De{constructor(e=ae){super(e)}async onInit(){for(let e of tt({bus:this.bus}))this.addCleanup(e);this.addCleanup(x(this.bus)),await this.reconcileOrphanedTurns()}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(S.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(S.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});if(t){let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`,ingestionMarker:`live`};await l(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(A.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function ht(e){return Error(`No adapter found for adapterName="${e}". Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}var gt=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(O.initialized,e=>{this.registry.set(e.payload.adapterName,e.payload.adapterId)})}resolve(e){let t=this.registry.get(e);if(!t)throw ht(e);return t}async resolveAvailable(e){try{let{adapterId:t}=await this.bus.request(w.resolveId,{adapterName:e});return this.registry.set(e,t),t}catch{let t=this.registry.get(e);if(t)return t;throw ht(e)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function _t(e,t){e.emit(T.stored,{message:structuredClone(t)});try{await e.request(a.append,{event:{sessionId:t.sessionId,eventId:crypto.randomUUID(),timestamp:t.timestamp,type:`message`,payload:{messageId:t.messageId,turnId:t.turnId,role:t.role}}})}catch(e){console.error(`[MessageStorage] Failed to emit session event for message:`,e)}}function B(e){return{messageId:e.messageId,turnId:e.turnId,sessionId:e.sessionId,role:e.role,contentText:e.contentText,blocks:JSON.parse(e.blocks),agentId:e.agentId??void 0,adapterSessionId:e.adapterSessionId??void 0,adapterMessageId:e.adapterMessageId??void 0,timestamp:e.timestamp,editOf:e.editOf??void 0,origin:e.origin??void 0}}function vt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await n.insert(r).values({messageId:o,turnId:s.turnId,sessionId:s.sessionId,role:s.role,contentText:s.contentText,blocks:JSON.stringify(s.blocks),agentId:s.agentId??null,adapterSessionId:s.adapterSessionId??null,adapterMessageId:s.adapterMessageId??null,timestamp:s.timestamp,editOf:s.editOf??null,origin:s.origin??null}),e.setResult({message:s}),(a??!0)&&await _t(t,s)})}function yt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?Ue:He,l=n.select().from(r).where(I(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Je(Ke(r.timestamp,a.timestamp),P(I(r.timestamp,a.timestamp),o?qe(r.messageId,a.messageId):Ke(r.messageId,a.messageId))):Je(We(r.timestamp,a.timestamp),P(I(r.timestamp,a.timestamp),o?Ge(r.messageId,a.messageId):We(r.messageId,a.messageId)));l=n.select().from(r).where(P(I(r.sessionId,t),e)).orderBy(c(r.timestamp),c(r.messageId))}let u=i??100,d=await l.limit(u+1),f=d.length>u,p=f?d.slice(0,u):d,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p.map(B),nextCursor:m})})}function bt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(I(r.turnId,t)).orderBy(He(r.timestamp));e.setResult({messages:i.map(B)})})}function xt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(I(r.messageId,t)).limit(1);e.setResult({message:i?B(i):null})})}function St(e){let{bus:t,db:n}=e,{messages:r}=N(n,o),i=Ve(n).fts;return t.on(T.search,async e=>{let{query:t,sessionId:a,limit:o}=e.payload,s=o??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let{rows:c,total:l}=await i.searchMessages(n,r,{query:t,sessionId:a,limit:s});e.setResult({messages:c.map(B),total:l})})}function Ct(e){let{bus:t,db:n}=e,{messages:r}=N(n,o),i=Ve(n).fts;return t.on(T.ftsSearch,async e=>{let{query:t,sessionId:a,limit:o=20}=e.payload;if(!t.trim()){e.setResult({results:[],total:0});return}let{results:s,total:c}=await i.searchMessageExcerpts(n,r,{query:t,sessionId:a,limit:o});e.setResult({results:s,total:c})})}function wt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(I(r.adapterMessageId,t)).limit(1);e.setResult({message:i?B(i):null})})}function Tt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(P(I(r.adapterMessageId,i),I(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(I(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(P(I(r.adapterMessageId,i),I(r.sessionId,a))).limit(1);if(t===void 0)throw Error(`Message upsert conflict winner disappeared before reread completed`);t.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(I(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await _t(t,{messageId:h,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u??void 0,adapterSessionId:d??void 0,adapterMessageId:i,timestamp:f,editOf:void 0,origin:p??void 0})})}function Et(e,t){let n={bus:e,db:t},r=[vt(n),yt(n),bt(n),xt(n),St(n),Ct(n),Tt(n),wt(n)];return()=>r.forEach(e=>e())}function Dt(e,t){return Ce(j(e),j(t))}function Ot(e,t){return we(j(e),j(t))}function kt(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function At(e,t,n,r){if(r===null)return;let i=e.get(n);if(i===void 0||i.turnId!==null)return;i.turnId=r;let a=t.get(r)??[];a.includes(n)||(a.push(n),t.set(r,a))}function jt(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Mt(t,n,r,i),o=[Nt(e,t,a),Pt(e,t,n),Ft(e,t,r),It(e,t),Lt(e,t),Rt(e,t,r,i,a),zt(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Mt(e,t,n,r){return i=>{e.set(i.messageId,i);let a=t.get(i.sessionId)??[];if(a.push(i.messageId),t.set(i.sessionId,a),i.turnId){let e=n.get(i.turnId)??[];e.push(i.messageId),n.set(i.turnId,e)}i.adapterMessageId&&kt(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function Nt(e,t,n){return e.on(T.append,async t=>{let{message:r,emitEvent:i}=t.payload,a=r.messageId??crypto.randomUUID(),o={...r,messageId:a,blocks:r.blocks??[]};n(o),t.setResult({message:o}),(i??!0)&&await _t(e,o)})}function Pt(e,t,n){return e.on(T.getBySession,async e=>{let{sessionId:r,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=n.get(r)??[],l=s===`desc`?Ot:Dt,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?we(j(e),a):Ce(j(e),a);return o?t>=0:t>0}));let d=i??100,f=u.length>d,p=f?u.slice(0,d):u,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function Ft(e,t,n){return e.on(T.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(Dt);e.setResult({messages:i})})}function It(e,t){return e.on(T.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function Lt(e,t){return e.on(T.search,async e=>{let{query:n,sessionId:r,limit:i}=e.payload,a=i??50,o=n.trim().toLowerCase(),s=[...t.values()].filter(e=>r?e.sessionId===r:!0),c=o.length===0?[]:s.filter(e=>e.contentText.toLowerCase().includes(o));c.sort(Dt),e.setResult({messages:c.slice(0,a),total:c.length})})}function Rt(e,t,n,r,i){return e.on(T.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){At(t,n,g,c),a.setResult({messageId:g,created:!1});return}let _=crypto.randomUUID(),v={messageId:_,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f??void 0,adapterSessionId:p??void 0,adapterMessageId:o,timestamp:m,editOf:void 0,origin:h??void 0};i(v),a.setResult({messageId:_,created:!0}),await _t(e,v)})}function zt(e,t,n,r,i){return e.on(C.delete,e=>{let{sessionId:a}=e.payload,o=n.get(a)??[];for(let e of o){let n=t.get(e);if(n){if(t.delete(e),n.turnId){let t=(r.get(n.turnId)??[]).filter(t=>t!==e);t.length===0?r.delete(n.turnId):r.set(n.turnId,t)}if(n.adapterMessageId){let e=i.get(n.sessionId);e?.delete(n.adapterMessageId),e?.size===0&&i.delete(n.sessionId)}}}n.delete(a)})}const Bt=Re(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(i,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[je({columns:[e.messageId,e.agentId,e.status]}),ke(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[Ie({columns:[e.messageId,e.agentId,e.status]}),Fe(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),Vt=Bt.sqlite,Ht=Ye(`messageRouting`,{schemas:{record:{request:me,response:D.object({success:D.boolean()})},getByMessage:{request:D.object({messageId:D.string()}),response:D.object({routing:D.array(me)})},getCompleted:{request:D.object({messageId:D.string()}),response:D.object({agentIds:D.array(D.string())})},isComplete:{request:D.object({messageId:D.string(),targetAgentIds:D.array(D.string())}),response:D.object({complete:D.boolean(),pending:D.array(D.string())})}},extensions:{drizzle:{messageRouting:Vt}}}),V=Ht.subjects,Ut=Bt.postgres,Wt=Le({messageRouting:Vt},{messageRouting:Ut});function Gt(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function Kt(e,t){let{messageRouting:n}=N(t,Wt),r=[];return r.push(e.on(V.record,async e=>{let{messageId:r,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(n).values({messageId:r,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[n.messageId,n.agentId,n.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),r.push(e.on(V.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(I(n.messageId,r));e.setResult({routing:i.map(Gt)})})),r.push(e.on(V.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(P(I(n.messageId,r),I(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(V.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(P(I(n.messageId,r),I(n.status,`completed`))),o=new Set(a.map(e=>e.agentId)),s=i.filter(e=>!o.has(e));e.setResult({complete:s.length===0,pending:s})})),()=>r.forEach(e=>e())}function qt(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var Jt=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];admittedTargetsByMessageId=new Map;terminalPairs=new Map;pendingMessageAdmissions=new Set;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(qt(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return qt(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this.pendingMessageAdmissions.size>0}addMessage(e){this.admitMessage(e,this._agentIds),this.commitMessageAdmission(e)}claimMessageAppend(e){this.admitMessage(e,this._agentIds)}releaseMessageAppend(e){this.rollbackMessageAdmission(e)}admitMessage(e,t){if(this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} already admitted message ${e}`);if(t.length===0||new Set(t).size!==t.length)throw Error(`Turn ${this.turnId} requires a non-empty unique target set for message ${e}`);if(t.some(e=>!this.hasAgent(e)))throw Error(`Turn ${this.turnId} cannot admit targets outside its immutable participant set`);this._messageIds.push(e),this.admittedTargetsByMessageId.set(e,new Set(t)),this.pendingMessageAdmissions.add(e)}commitMessageAdmission(e){if(!this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} cannot commit unknown message ${e}`);this.pendingMessageAdmissions.delete(e)}rollbackMessageAdmission(e){let t=this.admittedTargetsByMessageId.get(e);if(!t)return;if([...t].some(t=>this.terminalPairs.has(this.pairKey(e,t))))throw Error(`Turn ${this.turnId} cannot roll back terminal message ${e}`);this.admittedTargetsByMessageId.delete(e),this.pendingMessageAdmissions.delete(e);let n=this._messageIds.indexOf(e);n>=0&&this._messageIds.splice(n,1)}recordPairTerminal(e,t,n,r){if(!this.admittedTargetsByMessageId.get(e)?.has(t))return{accepted:!1,turnComplete:!1};let i=this.pairKey(e,t);return this.terminalPairs.has(i)?{accepted:!1,turnComplete:!1}:(this.terminalPairs.set(i,{outcome:n,...r!==void 0&&{error:r}}),this.isComplete()?{accepted:!0,turnComplete:!0,result:this.getResult()}:{accepted:!0,turnComplete:!1})}hasAdmittedPair(e,t){return this.admittedTargetsByMessageId.get(e)?.has(t)??!1}get admittedPairs(){return[...this.admittedTargetsByMessageId].flatMap(([e,t])=>[...t].map(t=>({messageId:e,agentId:t})))}hasAgent(e){return this._agentIds.includes(e)}isComplete(){if(this.admittedTargetsByMessageId.size===0||this.pendingMessageAdmissions.size>0)return!1;for(let[e,t]of this.admittedTargetsByMessageId)for(let n of t)if(!this.terminalPairs.has(this.pairKey(e,n)))return!1;return!0}getResult(){let e=[...this.terminalPairs.values()].filter(e=>e.outcome===`error`).map(e=>e.error??`Unknown error`);return{success:e.length===0,errors:e}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}pairKey(e,t){return JSON.stringify([e,t])}},Yt=class e{byAgent=new Map;coverageByAgent=new Map;ambiguousAgents=new Set;providerCalls=new Set;add(e){if(e.granularity===`latest-request-gauge`||this.ambiguousAgents.has(e.agentId))return;let t=this.coverageByAgent.get(e.agentId);if(t!==void 0&&t!==e.granularity){this.byAgent.delete(e.agentId),this.ambiguousAgents.add(e.agentId);return}if(e.granularity===`provider-call`&&e.llmCallId!==void 0){let t=`${e.agentId}:${e.llmCallId}`;if(this.providerCalls.has(t))return;this.providerCalls.add(t)}this.coverageByAgent.set(e.agentId,e.granularity);let n=this.byAgent.get(e.agentId);n?(n.inputTokens+=e.inputTokens,e.inputCachedTokens>0&&(n.cachedInputTokens=(n.cachedInputTokens??0)+e.inputCachedTokens),n.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,...e.inputCachedTokens>0&&{cachedInputTokens:e.inputCachedTokens},outputTokens:e.outputTokens})}preview(t){let n=new e;for(let[e,t]of this.byAgent)n.byAgent.set(e,{...t});for(let[e,t]of this.coverageByAgent)n.coverageByAgent.set(e,t);for(let e of this.ambiguousAgents)n.ambiguousAgents.add(e);for(let e of this.providerCalls)n.providerCalls.add(e);for(let e of t)n.add(e);return n.snapshot()}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n=0,r={};for(let[i,a]of this.byAgent)e+=a.inputTokens,t+=a.cachedInputTokens??0,n+=a.outputTokens,r[i]={...a};return{total:{inputTokens:e,...t>0&&{cachedInputTokens:t},outputTokens:n},byAgent:r}}flush(){let e=this.snapshot();return this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear(),e}clear(){this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear()}};const Xt=Symbol(`turnReservation`);var Zt=class{activeTurns=new Map;reservations=new Map;pendingAcquisitions=new Map;pendingPreparations=new Map;preparedTurnIds=new Set;pendingFinalizations=new Map;finalizingTurnIds=new Set;async awaitFinalization(e,t){let n=this.pendingFinalizations.get(e);if(n)return await n;let r=t();this.pendingFinalizations.set(e,r);try{await r}finally{this.pendingFinalizations.get(e)===r&&this.pendingFinalizations.delete(e)}}getActive(e){return this.activeTurns.get(e)}findActiveByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}async acquire(e,t){let n=this.activeTurns.get(e);if(n)return{turn:n,isNew:!1};let r=this.pendingAcquisitions.get(e);if(r)return{turn:await r,isNew:!1};let i=t(this.reserve(e));this.pendingAcquisitions.set(e,i);try{return{turn:await i,isNew:!0}}finally{this.pendingAcquisitions.get(e)===i&&this.pendingAcquisitions.delete(e)}}reserve(e){if(this.activeTurns.has(e)||this.reservations.has(e))throw Error(`Session ${e} already has a routable or pending turn`);let t={sessionId:e,[Xt]:!0};return this.reservations.set(e,t),t}release(e){this.reservations.get(e.sessionId)===e&&this.reservations.delete(e.sessionId)}activate(e,t){if(this.reservations.get(e.sessionId)!==e)throw Error(`Turn reservation for session ${e.sessionId} is no longer active`);this.activeTurns.set(e.sessionId,t),this.release(e)}clearActive(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),this.preparedTurnIds.delete(e.turnId),!0):!1}tryAdmitMessage(e,t,n){if(this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId)return;e.admitMessage(t,n);let r=!1;return{turn:e,messageId:t,agentIds:[...n],commit:()=>{r||(r=!0,e.commitMessageAdmission(t))},rollback:async()=>{r||(r=!0,e.rollbackMessageAdmission(t))}}}beginFinalization(e){return this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId?!1:(this.finalizingTurnIds.add(e.turnId),this.clearActive(e),!0)}finishFinalization(e){this.finalizingTurnIds.delete(e.turnId)}beginPreparation(e){if(this.preparedTurnIds.has(e.turnId))return{turn:e,isOwner:!1,ready:Promise.resolve()};let t=this.pendingPreparations.get(e.turnId);if(t)return{turn:e,isOwner:!1,ready:t.ready};let n,r,i=new Promise((e,t)=>{n=e,r=t});return i.catch(()=>{}),this.pendingPreparations.set(e.turnId,{turn:e,ready:i,resolve:n,reject:r}),{turn:e,isOwner:!0,ready:i}}completePreparation(e){if(!e.isOwner)throw Error(`Only the preparation owner can complete turn ${e.turn.turnId}`);let t=this.pendingPreparations.get(e.turn.turnId);if(!t||t.turn!==e.turn)throw Error(`Turn preparation for ${e.turn.turnId} is no longer active`);this.pendingPreparations.delete(e.turn.turnId),this.preparedTurnIds.add(e.turn.turnId),t.resolve()}failPreparation(e,t){if(!e.isOwner)throw Error(`Only the preparation owner can fail turn ${e.turn.turnId}`);let n=this.pendingPreparations.get(e.turn.turnId);!n||n.turn!==e.turn||(this.pendingPreparations.delete(e.turn.turnId),n.reject(t))}clear(){this.activeTurns.clear(),this.reservations.clear(),this.pendingAcquisitions.clear(),this.pendingFinalizations.clear(),this.finalizingTurnIds.clear();for(let e of this.pendingPreparations.values())e.reject(Error(`Turn slot registry was cleared during preparation`));this.pendingPreparations.clear(),this.preparedTurnIds.clear()}},Qt=class{bus;resolveTurn;timeoutMs;settledPairs=new Map;waiters=new Map;cleanup;destroyed=!1;constructor(e,t,n){this.bus=e,this.resolveTurn=t,this.timeoutMs=n,this.cleanup=e.on(A.turn.assistantPersistenceSettled,e=>{if(this.destroyed)return;let{sessionId:t,turnId:n,messageId:r,agentId:i}=e.payload,a=this.resolveTurn(n);if(!a||a.sessionId!==t||!a.hasAdmittedPair(r,i))return;let o=this.settledPairs.get(n)??new Set;o.add(this.pairKey(r,i)),this.settledPairs.set(n,o),this.isSettled(a)&&this.waiters.get(n)?.settle()})}async waitFor(e){if(this.destroyed||e.agentIds.length===0||this.isSettled(e))return;let t=await this.bus.requestOptional(T.getByTurn,{turnId:e.turnId});this.destroyed||!t.handled||await new Promise(t=>{let n=()=>{clearTimeout(r),this.waiters.delete(e.turnId),t()},r=setTimeout(n,this.timeoutMs);this.waiters.set(e.turnId,{settle:n}),this.isSettled(e)&&n()})}clear(e){this.waiters.get(e)?.settle(),this.settledPairs.delete(e)}destroy(){if(!this.destroyed){this.destroyed=!0,this.cleanup();for(let e of[...this.waiters.values()])e.settle();this.waiters.clear(),this.settledPairs.clear()}}isSettled(e){if(e.admittedPairs.length===0)return!0;let t=this.settledPairs.get(e.turnId);return t!==void 0&&e.admittedPairs.every(({messageId:e,agentId:n})=>t.has(this.pairKey(e,n)))}pairKey(e,t){return JSON.stringify([e,t])}};function $t(e,t,n){return{...e,isPreparationOwner:t.isOwner,commit:()=>{e.commit(),t.isOwner&&n.completePreparation(t)},rollback:async(r=`message-setup-failed:${e.messageId}`)=>{let i=e.rollback();if(t.isOwner){let a={success:!1,errors:[r]};n.beginSetupFailure(e,a),n.failPreparation(t,Error(`Message ${e.messageId} setup failed`)),await i,await n.finalizeSetupFailure(e,a);return}await i,e.turn.isComplete()&&await n.finalizeCompletedLedger(e,e.turn.getResult())}}}function en(e){return{status:e.success?`completed`:`error`,error:e.errors.length>0?e.errors.join(`; `):void 0}}function tn(e,t){if(e===void 0||t===void 0)return e===t;if(e.total.inputTokens!==t.total.inputTokens||e.total.cachedInputTokens!==t.total.cachedInputTokens||e.total.outputTokens!==t.total.outputTokens||e.total.cost!==t.total.cost)return!1;let n=e.byAgent??{},r=t.byAgent??{},i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length?i.every((e,t)=>{if(e!==a[t])return!1;let i=n[e],o=r[e];return i?.inputTokens===o?.inputTokens&&i?.cachedInputTokens===o?.cachedInputTokens&&i?.outputTokens===o?.outputTokens&&i?.cost===o?.cost}):!1}async function nn(e,t,n,r,i){let a=en(n),o=await e.requestOptional(S.complete,{turnId:t.turnId,status:a.status,...i!==void 0&&{expectedStatus:i},error:a.error,usage:r??null});if(!o.handled)return{handled:!1,transitioned:!0};let s=o.data.turn;if(!(s.status===a.status&&s.error===a.error))return{handled:!0,transitioned:!1};if(tn(s.usage,r))return{handled:!0,transitioned:!0};if(o.data.transitioned)throw Error(`Turn completion storage returned non-canonical usage for transitioned turn ${t.turnId}`);let c=await e.requestOptional(S.complete,{turnId:t.turnId,status:a.status,error:a.error,usage:r??null});if(!c.handled||!tn(c.data.turn.usage,r))throw Error(`Turn completion usage reconciliation did not persist the canonical snapshot for ${t.turnId}`);if(c.data.turn.status!==a.status||c.data.turn.error!==a.error)throw Error(`Turn completion usage reconciliation changed terminal metadata for ${t.turnId}`);return{handled:!0,transitioned:!0}}async function rn(e){let t=e.turn.turnId,n=e.currentUsage;for(;;){let r=e.bufferedUsage.get(t);if(r===void 0||r.length===0)return n;e.bufferedUsage.delete(t);let i=e.usageAccumulator?e.usageAccumulator.preview(r):n;try{await nn(e.bus,e.turn,e.result,i)}catch(n){let i=e.bufferedUsage.get(t)??[];throw e.bufferedUsage.set(t,[...r,...i]),n}for(let t of r)e.usageAccumulator?.add(t);n=e.usageAccumulator?.snapshot()??i}}function an(e,t,n){return[e.on(k.usage,e=>{let{agentId:n,turnId:r,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,llmCallId:c}=e.payload;if(!r){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${n}).`);return}let l=t.resolveUsageTurn(r);if(!l||!l.hasAgent(n))return;let u={agentId:n,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,...c&&{llmCallId:c}};t.isCompletionInFlight(l.turnId)?t.bufferUsage(l.turnId,u):t.addUsage(l,u)}),e.on(k.complete,async r=>{let{agentId:i,outcome:a,error:o,turnId:s,messageId:c}=r.payload;r.payload._import||!s||await on(e,t,{agentId:i,messageId:c,outcome:a??`completed`,error:a===`error`?o:void 0,turnId:s,onTurnComplete:n})})]}async function on(e,t,n){let r=t.resolveCompletionTurn(n.turnId);if(!r?.hasAgent(n.agentId))return;let i=r.recordPairTerminal(n.messageId,n.agentId,n.outcome,n.error);if(!i.accepted){t.canRetry(r.turnId)&&await t.retry(r.turnId);return}i.turnComplete&&t.beginFinalization(r,i.result);let a=e.emit(A.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:n.messageId,agentId:n.agentId,outcome:n.outcome,...n.error!==void 0&&{error:n.error}}),o=i.turnComplete?n.onTurnComplete(r,i.result):Promise.resolve(),[s,c]=await Promise.allSettled([a,o]);if(s.status===`rejected`&&console.error(`[SessionTurnManager] Failed to emit user-message completion:`,s.reason),c.status===`rejected`)throw c.reason}var sn=class{bus;turnSlots=new Zt;usageAccumulators=new Map;completingTurnIds=new Set;completionPromises=new Map;completingTurns=new Map;closedUsageAdmissions=new Set;pendingTerminalCompletions=new Map;pendingTerminalResults=new Map;setupFinalizingTurnIds=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantPersistenceBarrier;cleanups=[];constructor(e){this.bus=e,this.assistantPersistenceBarrier=new Qt(e,e=>this.findTurnForCompletion(e),1500)}async acquireTurn(e,t,n,r){await this.retryRetainedCompletionsForSession(e);let i=await this.turnSlots.acquire(e,e=>this.createReservedTurn(e,t,n,r));if(t.some(e=>!i.turn.hasAgent(e)))throw Error(`Turn ${i.turn.turnId} cannot route agents outside its immutable participant set (sessionId=${e})`);return i}async reserveTurn(e){return await this.retryRetainedCompletionsForSession(e),this.turnSlots.reserve(e)}releaseTurnReservation(e){this.turnSlots.release(e)}async acquireMessageAdmission(e,t,n,r,i){for(;;){let a=await this.acquireTurn(e,t,r,i),o=this.turnSlots.tryAdmitMessage(a.turn,n,t);if(!o)continue;let s=this.turnSlots.beginPreparation(a.turn);if(!s.isOwner)try{await s.ready}catch{await o.rollback();continue}return this.composeAdmissionWithPreparation(o,s)}}admitReservedMessage(e,t,n){let r=this.turnSlots.tryAdmitMessage(e,t,n);if(!r)throw Error(`Turn ${e.turnId} is no longer routable for message admission`);return this.composeAdmissionWithPreparation(r,this.turnSlots.beginPreparation(e))}async createReservedTurn(e,t,n,r){let{sessionId:i}=e;try{let a=await this.bus.requestOptional(S.create,{sessionId:i,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),o,s;if(a.handled)o=a.data.turn.turnId,s=a.data.turn.turnNumber;else{o=r??crypto.randomUUID();let e=(this.syntheticTurnCounters.get(i)??0)+1;this.syntheticTurnCounters.set(i,e),s=e}let c=new Jt({sessionId:i,agentIds:t,turnId:o,turnNumber:s,initiator:n});return this.turnSlots.activate(e,c),this.usageAccumulators.set(c.turnId,new Yt),c}finally{this.releaseTurnReservation(e)}}async createTurn(e,t,n,r){return this.createReservedTurn(await this.reserveTurn(e),t,n,r)}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId))}async failActiveTurnBeforeDispatch(e,t){if(this.turnSlots.getActive(e.sessionId)?.turnId!==e.turnId)return;let n={success:!1,errors:[t]};this.beginFinalization(e,n,`setup`),await this.completeTurn(e,n)}async failActiveTurnSetup(e,t){e.messageIds.length>0||e.hasPendingMessageAppends||await this.failActiveTurnBeforeDispatch(e,t)}clearActiveRoutingTurn(e){return this.turnSlots.clearActive(e)}composeAdmissionWithPreparation(e,t){return $t(e,t,{completePreparation:e=>this.turnSlots.completePreparation(e),failPreparation:(e,t)=>this.turnSlots.failPreparation(e,t),beginSetupFailure:(e,t)=>this.beginFinalization(e.turn,t,`setup`),finalizeSetupFailure:async(e,t)=>this.completeTurn(e.turn,t),finalizeCompletedLedger:async(e,t)=>{this.beginFinalization(e.turn,t,`normal`),await this.completeTurn(e.turn,t)}})}registerCompletionHandlers(e){this.cleanups.push(...an(this.bus,this.completionEventHooks(),e))}async completeTurn(e,t){let n=this.completionPromises.get(e.turnId);if(n)return await n;let r=this.completeTurnInternal(e,t);this.completionPromises.set(e.turnId,r);try{await r}finally{this.completionPromises.get(e.turnId)===r&&this.completionPromises.delete(e.turnId)}}async completeTurnInternal(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId);let n=this.beginFinalization(e,t,`normal`),r=this.usageAccumulators.get(e.turnId),i=r?.snapshot(),a=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let t=await nn(this.bus,e,n,i,`active`);if(a=t.handled,!t.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,r);return}this.pendingTerminalCompletions.set(e.turnId,a),i=await rn({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion})}}catch(t){throw this.completingTurnIds.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}let o=!1;try{a&&!this.setupFinalizingTurnIds.has(e.turnId)&&await this.assistantPersistenceBarrier.waitFor(e),this.closedUsageAdmissions.add(e.turnId),i=await rn({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion});let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:n.success,error:n.errors.length>0?n.errors.join(`; `):void 0,...i!==void 0&&{usage:i},initiator:e.initiator,ingestionMarker:`live`};await l(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:t}),o=!0,await this.bus.emit(A.turn.completed,t)}catch(t){throw o?this.clearCompletionState(e,r):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,r)}async retryTurnCompletion(e){let t=this.completingTurns.get(e),n=this.pendingTerminalResults.get(e);if(t===void 0||n===void 0)throw Error(`Turn ${e} has no retryable completion`);await this.completeTurn(t,n)}async retryRetainedCompletionsForSession(e){await this.turnSlots.awaitFinalization(e,async()=>{for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.setupFinalizingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:this.completingTurnIds.has(t.turnId)||await this.retryTurnCompletion(t.turnId)}for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.pendingTerminalResults.has(t.turnId)&&!this.completingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:await this.retryTurnCompletion(t.turnId)}})}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId),this.completingTurns.delete(e.turnId),this.closedUsageAdmissions.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId),this.pendingTerminalResults.delete(e.turnId),this.setupFinalizingTurnIds.delete(e.turnId),this.turnSlots.finishFinalization(e)}getActiveTurn(e){return this.turnSlots.getActive(e)}findActiveTurnByTurnId(e){return this.turnSlots.findActiveByTurnId(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnSlots.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completionPromises.clear(),this.completingTurns.clear(),this.closedUsageAdmissions.clear(),this.pendingTerminalCompletions.clear(),this.pendingTerminalResults.clear(),this.setupFinalizingTurnIds.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear(),this.assistantPersistenceBarrier.destroy()}async recordAgentCompletion(e,t,n,r,i,a){await on(this.bus,this.completionEventHooks(),{agentId:e,messageId:t,outcome:n,...r!==void 0&&{error:r},turnId:a,onTurnComplete:i})}completionEventHooks(){return{resolveUsageTurn:e=>this.findTurnForUsage(e),resolveCompletionTurn:e=>this.findTurnForCompletion(e),isCompletionInFlight:e=>this.completingTurnIds.has(e),addUsage:(e,t)=>this.usageAccumulators.get(e.turnId)?.add(t),bufferUsage:(e,t)=>this.bufferUsageDuringCompletion(e,t),canRetry:e=>this.pendingTerminalResults.has(e)&&!this.completingTurnIds.has(e),retry:async e=>this.retryTurnCompletion(e),beginFinalization:(e,t)=>this.beginFinalization(e,t,`normal`)}}beginFinalization(e,t,n){let r=this.pendingTerminalResults.get(e.turnId)??t;return this.completingTurns.set(e.turnId,e),this.pendingTerminalResults.set(e.turnId,r),n===`setup`&&this.setupFinalizingTurnIds.add(e.turnId),this.turnSlots.beginFinalization(e),r}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){let t=this.findActiveTurnByTurnId(e);if(t!==void 0)return t;if(!this.closedUsageAdmissions.has(e))return this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}},cn=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=ae,t){this.bus=e,this.machineId=t,this.turnManager=new sn(e),this.adapterRegistry=new gt(e),this.cleanups.push(v(this.bus,this.turnManager,t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(A.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:l}=e.payload,f=m(o,e.payload.extensionId),_=e.payload.sessionContext?_e.parse(e.payload.sessionContext):void 0,{sessionId:v,session:y}=await te(this.bus,t,_,e.payload.originWindowId,this.machineId);if(y.agents.length===0){let e=await this.resolveInitialAdapterSelection(a,v,n,_),t=await this.resolveAdapterName(e,v),r=p(e.adapterId)??await this.adapterRegistry.resolveAvailable(t),i=e.providerConfigId===void 0?void 0:await re(this.bus,{adapterName:t,providerConfigId:e.providerConfigId}),o=e.providerConfigId??i?.providerConfigId,s=await this.bus.request(O.startAgent,{adapterId:r,sessionId:v,role:`lead`,...i!==void 0&&{providerContext:i},...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},..._!==void 0&&{sessionContext:_}});if(!s.success)throw Error(`[SessionOrchestrator.sendMessage] Failed to start agent (sessionId=${v}, adapterName=${t}): ${s.message}`);let l=Date.now();y.agents.push({agentId:s.agentId,adapterId:s.adapterId,adapterName:t,sessionId:v,role:`lead`,status:`idle`,...o!==void 0&&{providerConfigId:o},createdAt:l,lastActivityAt:l}),y.leadAgentId=s.agentId,o!==void 0&&await this.bus.requestOptional(c.updateRuntime,{agentId:s.agentId,providerConfigId:o})}let b=ee(y,r);if(b.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${v})`);let x=new Set;for(let e of b){let t=await this.bus.requestOptional(O.getAgent,{agentId:e.agentId,adapterId:e.adapterId});t.handled&&t.data.agent===null&&x.add(e.agentId)}let S;if(x.size>0){S=await s(this.bus,y);for(let e of b)x.has(e.agentId)&&await this.bus.requestOptional(O.rehydrateAgent,{agentId:e.agentId,adapterId:e.adapterId})}let C=crypto.randomUUID(),w=h(n),E=await this.turnManager.acquireMessageAdmission(v,b.map(e=>e.agentId),C,f,e.payload.turnId),D=E.turn;try{if(!(await this.bus.requestOptional(T.append,{message:{messageId:C,turnId:D.turnId,sessionId:v,role:`user`,contentText:g(n),blocks:w,timestamp:Date.now(),...l!==void 0&&{origin:l}}})).handled)throw Error(`Message storage append handler is not registered`);E.isPreparationOwner&&await u(this.bus,{sessionId:v,turnId:D.turnId,turnNumber:D.turnNumber,messageId:C,agentIds:[...D.agentIds],initiator:D.initiator,ingestionMarker:`live`}),await d(this.bus,{sessionId:v,turnId:D.turnId,turnNumber:D.turnNumber,messageId:C,content:n,agentIds:b.map(e=>e.agentId),...o!==void 0&&{source:o},...l!==void 0&&{origin:l}}),E.commit()}catch(e){try{await E.rollback(`user-message-persistence-failed`)}catch(e){console.error(`[SessionOrchestrator] Failed to finalize rejected message setup:`,e)}throw e}for(let e of b)this.bus.requestOptional(V.record,{messageId:C,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:v,messageId:C,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});let ie=S?{..._,...S}:_;await ne(this.bus,y,b,n,C,D,i,this.completeTurn.bind(this),this.turnManager,ie,e.payload.responseSchema),e.setResult({messageId:C,turnId:D.turnId,sessionId:v})}))}async completeTurn(e,t){await this.turnManager.completeTurn(e,t)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnManager.destroy(),this.adapterRegistry.destroy()}async resolveAdapterName(e,t){let n=p(e.adapterName),r=p(e.adapterId);if(!n&&!r)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${t})`);return r?y(this.bus,r,n,`[SessionOrchestrator.sendMessage] (sessionId=${t}) `):n}async resolveInitialAdapterSelection(e,t,n,r){if(!e)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${t})`);if(e.kind===`adapter`)return e;if(e.kind===`canonical-model`)return await this.resolveCanonicalModelSelection(e,t,n,r);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${t})`)}async resolveCanonicalModelSelection(e,t,n,r){let i=Ee(e.model);if(Te(i))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${e.model}" (sessionId=${t}): ${i.message}`);if(i.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${t})`);let a=await this.bus.request(ce.resolve,{parsed:i,context:{sessionId:t,promptText:g(n),...r===void 0?{}:{sessionContext:r}}});return{...e,...a,kind:`adapter`,providerConfigId:e.providerConfigId??a.providerConfigId}}},ln=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(T.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof oe||console.warn(`[TurnContextEnricher] Failed to load turn-so-far context:`,e),[]}}async enrichForDeliveryMode(e,t,n){if(n!==`immediate`)return e;let r=await this.getTurnSoFarContext(t);return r.length===0?e:[...e??[],...r]}convertSessionMessagesToMessages(e){return e.map(e=>({role:e.role,blocks:e.blocks}))}};function un(e){let{bus:t}=e;return t.on(A.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(C.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function dn(e){let{bus:t}=e;return t.on(A.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(C.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(C.set,{sessionId:n,session:r}),await t.emit(A.resumed,{sessionId:n}),e.setResult({success:!0})})}function fn(e){return e.on(E.listActions,e=>{let t=_.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const pn=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function mn(e){return{...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools}}}var hn=class{bus;agentToSession=new Map;pendingAssistantResponses=new Map;cleanups=[];constructor(e=ae){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(A.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(A.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&this.agentToSession.delete(t);for(let[t,n]of this.pendingAssistantResponses)n.sessionId===e.payload.sessionId&&this.pendingAssistantResponses.delete(t)}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(A.turn.started,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.has(i)||this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(A.user_message.sent,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(A.user_message.acknowledged,e=>{let t=this.pendingKey(e.payload.turnId,e.payload.messageId,e.payload.agentId);this.pendingAssistantResponses.has(t)||this.pendingAssistantResponses.set(t,{sessionId:e.payload.sessionId,turnId:e.payload.turnId,messageId:e.payload.messageId,agentId:e.payload.agentId,blocks:[]})})),this.cleanups.push(this.bus.on(A.turn.assistantPersistenceSettled,e=>{let{turnId:t,messageId:n,agentId:r}=e.payload;this.pendingAssistantResponses.delete(this.pendingKey(t,n,r))})),this.cleanups.push(this.bus.on(A.turn.completed,e=>{let{sessionId:t,turnId:n}=e.payload;for(let[e,r]of this.pendingAssistantResponses)r.sessionId===t&&r.turnId===n&&this.pendingAssistantResponses.delete(e)}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(k.message,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.reasoning,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.tool.use,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(k.tool.completed,e=>{let t=this.pendingForProviderEvent(e.payload);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.blocks.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(k.complete,async e=>{if(e.payload._import){let{turnId:t,messageId:n,agentId:r}=e.payload;t&&this.pendingAssistantResponses.delete(this.pendingKey(t,n,r));return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o,turnId:s,messageId:c}=e.payload;if(!s)return;let l=this.pendingKey(s,c,t),u=this.pendingAssistantResponses.get(l);if(u){this.pendingAssistantResponses.delete(l);try{await this.storeAssistantMessage(u,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}finally{await this.bus.emit(A.turn.assistantPersistenceSettled,{sessionId:u.sessionId,turnId:u.turnId,agentId:t,messageId:u.messageId})}}}))}async storeAssistantMessage(e,t,n,r){let i=r===void 0?e.blocks:r.content===void 0?[]:[{type:`text`,content:r.content}];if(i.length===0&&!n)return;let a=i.filter(e=>e.type===`text`).map(e=>e.content).join(`
2
- `),o=crypto.randomUUID();try{if(!(await this.bus.requestOptional(T.append,{message:{messageId:o,turnId:e.turnId,sessionId:e.sessionId,role:`assistant`,contentText:a||(n?`[Error: ${n}]`:``),blocks:i,agentId:e.agentId,adapterSessionId:t,timestamp:Date.now()}})).handled)return;let r=await this.bus.requestOptional(T.getByTurn,{turnId:e.turnId});if(r.handled){let t=r.data.messages.find(t=>t.role===`user`&&t.messageId===e.messageId);t&&await this.bus.requestOptional(V.record,{messageId:t.messageId,agentId:e.agentId,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.pendingAssistantResponses.clear()}pendingForProviderEvent(e){if(!(!e.turnId||!e.messageId))return this.pendingAssistantResponses.get(this.pendingKey(e.turnId,e.messageId,e.agentId))}pendingKey(e,t,n){return JSON.stringify([e,t,n])}},gn=class{bus;_sessionId;_extensionId;_turnId;_parentSessionId;contextTracker;contextContributions=new Map;constructor(e,t,n,r,i,a){this.bus=e,this._sessionId=t,this._extensionId=n,this._turnId=r,this._parentSessionId=i,this.contextTracker=a}get sessionId(){return this._sessionId}get turnId(){return this._turnId}get parentSessionId(){return this._parentSessionId}get extensionId(){return this._extensionId}async sendToAgent(e,t){await this.bus.request(A.sendMessage,{sessionId:this._sessionId,agentIds:[e],message:t,source:`extension`,extensionId:this._extensionId})}contributeContext(e,t){this.contextContributions.set(e,t)}getContributions(){return Object.fromEntries(this.contextContributions)}async fork(e){return(await this.bus.request(A.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(A.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(A.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(A.compressionRequested,{sessionId:this._sessionId,reason:e,source:`extension`,extensionId:this._extensionId})}async getContextWindowState(){if(this.contextTracker){let e=this.contextTracker.getSessionState(this._sessionId);if(e)return{currentTokens:e.currentTokens,maxTokens:e.maxTokens,percentage:e.percentage,level:e.level}}let{session:e}=await this.bus.request(A.get,{sessionId:this._sessionId});return!e||e.agents.length===0?{currentTokens:0,maxTokens:1,percentage:0,level:`ok`}:{currentTokens:0,maxTokens:2e5,percentage:0,level:`ok`}}async getChildSessions(){return(await this.bus.request(A.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function _n(e,t,n,r,i,a){return new gn(e,t,n,r,i,a)}function vn(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function H(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 U(e,t,n){let r=vn(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(A.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function yn(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function bn(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 xn(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function Sn(e){return e.activation===`live`?`active`:`discovered`}const Cn=xn();function wn(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function Tn(e,t,n){n!==void 0&&(e[t]=n)}function En(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function Dn(e,t,n){if(!En(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function On(e,t,n){let r=e.startedAt??n,i=yn(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:Sn(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 kn(e,t,n){let r=wn(e.importStatus,t.importStatus);Dn(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 An(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=yn(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),Tn(e,`adapterId`,t.adapterId),Tn(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),Tn(e,`isSidechain`,t.isSidechain),Tn(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function jn(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 Mn(e,t,n){let r=e.discoveredAt;kn(e,t,n),An(e,t),jn(e,t,r)}function Nn(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 Pn(e,t,n){if(n){e.emit(A.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(A.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function Fn(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 In(e,t,n){e.emit(A.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(A.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function Ln(e){let{bus:t,store:n,cloneSession:r,populateAgents:i}=e;return[t.on(C.importUpsert,e=>{let r=e.payload,i=Array.from(n.values()).find(e=>e.adapterSessionId===r.externalSessionId&&e.source===r.source),a=Cn(),o=i===void 0,s=i??On(r,crypto.randomUUID(),a);i?(Mn(i,r,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&Nn(n,i)):(n.set(s.sessionId,s),Nn(n,s)),Pn(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),t.on(C.getByLogFilePath,async e=>{let a=Array.from(n.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!a){e.setResult({session:null});return}let o=await i(t,a.sessionId);e.setResult({session:{...r(a),agents:o}})}),t.on(C.listImported,async e=>{let{source:a,importStatus:o}=e.payload,s=Array.from(n.values()).filter(e=>e.isImported===!0).filter(e=>a===void 0||e.source===a).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...r(e),agents:await i(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(C.countBySource,e=>{let t=Array.from(n.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(Fn(t))}),t.on(C.updateImportStatus,e=>{let r=n.get(e.payload.sessionId),i=e.payload.importStatus;if(!r||r.importStatus===i){e.setResult({success:!1});return}r.importStatus=i,i===`imported`&&r.status===`discovered`&&(r.status=`active`),e.setResult({success:!0}),In(t,r,i)})]}async function Rn(e,t){let n=await e.requestOptional(c.listBySession,{sessionId:t});return n.handled?n.data.agents:[]}function W(e){return structuredClone(e)}function G(e,t,n){n!==void 0&&(e[t]=n)}function zn(e,t,n){n!==void 0&&(e[t]=n??void 0)}function Bn(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 Vn(e,t){G(e,`status`,t.status),G(e,`parentSessionId`,t.parentSessionId),G(e,`contextInheritance`,t.contextInheritance),G(e,`rootSessionId`,t.rootSessionId),G(e,`forkPointMessageId`,t.forkPointMessageId),G(e,`branchKind`,t.branchKind),G(e,`isOrchestrated`,t.isOrchestrated),G(e,`clientId`,t.clientId),G(e,`clientAccountId`,t.clientAccountId),G(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),G(e,`title`,t.title),G(e,`targetWorkingDirectory`,t.targetWorkingDirectory),G(e,`createdAt`,t.createdAt),G(e,`lastActivityAt`,t.lastActivityAt),G(e,`machineId`,t.machineId),zn(e,`executionTargetId`,t.executionTargetId),zn(e,`approvalPolicyOverride`,t.approvalPolicyOverride),zn(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function Hn(e,t){return e.on(C.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=Bn(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=>({...W(t),agents:await Rn(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function Un(e,t){return e.on(C.update,async n=>{let r=structuredClone(xe.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}let a=W(i);H(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),Vn(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),U(e,a,W(i))})}function Wn(e){let t=new Map,n=[];return n.push(e.on(C.get,async n=>{let r=t.get(n.payload.sessionId);if(!r){n.setResult({session:null});return}let i=await Rn(e,n.payload.sessionId);n.setResult({session:{...W(r),agents:i}})})),n.push(e.on(C.set,async n=>{let{sessionId:r,session:i,ifAbsent:a}=be.parse(n.payload);if(a&&t.has(r)){n.setResult({success:!1,clientAccountChanged:!1});return}let o=structuredClone(i),s=t.get(r)??null,c=s?W(s):null;H(s,o),t.set(r,o),n.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(o.clientAccountId??null)}),U(e,c,W(o))})),n.push(e.on(C.delete,async e=>{t.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),n.push(Hn(e,t)),n.push(e.on(C.getChildren,e=>{let{sessionId:n}=e.payload,r=Array.from(t.values()),i=r.filter(e=>e.parentSessionId===n),a=new Set(r.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})})),n.push(e.on(C.getStatusCounts,e=>{e.payload;let n=Array.from(t.values()),r=n.filter(e=>e.status===`active`).length,i=n.filter(e=>e.status===`closed`).length,a=n.filter(e=>e.status===`archived`).length,o=n.filter(e=>e.status===`discovered`).length;e.setResult({all:r+i+a+o,active:r,closed:i,archived:a,discovered:o})})),n.push(Un(e,t)),n.push(Gn(e,t)),n.push(...Ln({bus:e,store:t,populateAgents:Rn,cloneSession:W})),()=>n.forEach(e=>e())}function Gn(e,t){return e.on(C.getByAdapterSessionId,async n=>{let{adapterSessionId:r,source:i,adapterName:a}=n.payload,o=Array.from(t.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===r&&(i===void 0||e.source===i)&&(a===void 0||e.adapterName===a)),s=o[0];if(o.length!==1||s===void 0){n.setResult({session:null});return}let l=await e.requestOptional(c.listBySession,{sessionId:s.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...W(s),agents:u}})})}const Kn=r.postgres,qn=t.postgres,K=Le({sessions:n,agents:e},{sessions:Kn,agents:qn});function Jn(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return P(n===null?R(t.clientId):I(t.clientId,n),r===null?R(t.clientAccountId):I(t.clientAccountId,r),i===null?R(t.lastClientIdentityObservation):I(t.lastClientIdentityObservation,i))}function Yn(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0,allowedDirectories:e.allowedDirectories??void 0,providerConfigId:e.providerConfigId??void 0,personaId:e.personaId??void 0,profileId:e.profileId??void 0,harnessId:e.harnessId??void 0,clientId:e.clientId??void 0,compressionMode:e.compressionMode?de.parse(e.compressionMode):void 0}}function Xn(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??null,adapterSessionId:e.adapterSessionId??null,cwd:e.cwd??null,allowedDirectories:e.allowedDirectories??null,providerConfigId:e.providerConfigId??null,personaId:e.personaId??null,profileId:e.profileId??null,harnessId:e.harnessId??null,clientId:e.clientId??null,compressionMode:e.compressionMode??null}}function Zn(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function Qn(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.get,async e=>{let[t]=await n.select().from(r).where(I(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?Yn(t):null})})}function $n(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.set,async e=>{let{agent:t}=e.payload,i=Xn(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:i});e.setResult({success:M(a)})})}function er(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.delete,async e=>{let t=await n.delete(r).where(I(r.agentId,e.payload.agentId));e.setResult({success:M(t)})})}function tr(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[I(r.adapterName,t)];i&&i!==`all`&&a.push(I(r.status,i));let o=a.length>1?P(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(Yn)})})}function nr(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(I(r.sessionId,t));e.setResult({agents:i.map(Yn)})})}function rr(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.updateStatus,async e=>{let{agentId:t,status:i}=e.payload,a=Date.now(),o=await n.update(r).set({status:i,lastActivityAt:a}).where(I(r.agentId,t));e.setResult({success:M(o)})})}function ir(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(I(r.agentId,t));e.setResult({success:M(a)})})}function ar(e){let{bus:t,db:n}=e,{agents:r}=N(n,K);return t.on(c.updateRuntime,async e=>{let{agentId:t,adapterId:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=e.payload,u={lastActivityAt:Date.now()};i!==void 0&&(u.adapterId=i),a!==void 0&&(u.adapterSessionId=a),o!==void 0&&(u.cwd=o),s!==void 0&&(u.model=s),c!==void 0&&(u.allowedDirectories=c),l!==void 0&&(u.providerConfigId=l);let d=await n.update(r).set(u).where(I(r.agentId,t));e.setResult({success:M(d)})})}function or(e,t){let n={bus:e,db:t},r=[Qn(n),$n(n),er(n),tr(n),nr(n),rr(n),ir(n),ar(n)];return()=>Zn(r)}function q(e){return e??void 0}function sr(e){if(e)try{let t=JSON.parse(e),n=Xe.safeParse(t);return n.success?n.data:void 0}catch{return}}function cr(e){if(e)try{let t=JSON.parse(e),n=pe.safeParse(t);return n.success?n.data:void 0}catch{return}}function J(e,t){let n=cr(e.forkTransforms),r=sr(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:q(e.leadAgentId),parentSessionId:q(e.parentSessionId),contextInheritance:q(e.contextInheritance),rootSessionId:q(e.rootSessionId),forkPointMessageId:q(e.forkPointMessageId),branchKind:q(e.branchKind),adapterName:q(e.adapterName),adapterSessionId:q(e.adapterSessionId),adapterId:q(e.adapterId),clientId:q(e.clientId),clientAccountId:q(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:q(e.isOrchestrated),isImported:q(e.isImported),title:q(e.title),summary:q(e.summary),summaryUpdatedAt:q(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:q(e.targetWorkingDirectory),executionTargetId:q(e.executionTargetId),agents:t.map(Yn),approvalPolicyOverride:q(e.approvalPolicyOverride),metadata:q(e.metadata),spawningToolCallId:q(e.spawningToolCallId),source:q(e.source),parentExternalSessionId:q(e.parentExternalSessionId),logFilePath:q(e.logFilePath),discoveredAt:q(e.discoveredAt),importStatus:q(e.importStatus),isSidechain:q(e.isSidechain),machineId:q(e.machineId)}}function lr(e){let t=new Map;for(let n of e){let e=t.get(n.sessionId)??[];e.push(n),t.set(n.sessionId,e)}return t}async function ur(e,t,n){if(!n||t.length===0)return{};let{messages:r}=N(e,o),i=e.select({sessionId:r.sessionId,minTimestamp:z`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(P(I(r.role,`user`),L(r.sessionId,t))).groupBy(r.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:r.sessionId,preview:r.contentText}).from(r).innerJoin(i,P(I(r.sessionId,i.sessionId),I(r.timestamp,i.minTimestamp))).where(I(r.role,`user`)),s=new Map;for(let e of a)s.has(e.sessionId)||s.set(e.sessionId,e.preview);let c=await e.select({sessionId:r.sessionId,count:F()}).from(r).where(L(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of c)l.set(e.sessionId,e.count);return{previewBySession:s,countBySession:l}}function dr(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function fr(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function pr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,K);return t.on(C.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[I(r.adapterSessionId,t)];a!==void 0&&s.push(I(r.source,a)),o!==void 0&&s.push(I(r.adapterName,o));let c=await n.select().from(r).where(P(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(I(i.sessionId,l.sessionId));e.setResult({session:J(l,u)})})}function mr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K),{messages:i}=N(n,o);return t.on(C.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(I(r.parentSessionId,t));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await n.select({sessionId:i.sessionId,count:F()}).from(i).where(L(i.sessionId,o)).groupBy(i.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await n.select({parentSessionId:r.parentSessionId,count:F()}).from(r).where(L(r.parentSessionId,o)).groupBy(r.parentSessionId),u=new Set;for(let e of l)e.parentSessionId&&u.add(e.parentSessionId);let d=a.map(e=>e.forkPointMessageId).filter(e=>e!==null),f=new Map;if(d.length>0){let e=await n.select({messageId:i.messageId,adapterMessageId:i.adapterMessageId}).from(i).where(P(I(i.sessionId,t),L(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}const hr=xn();function gr(e){return e?JSON.stringify(e):null}function _r(e,t){return z`
3
- SELECT ${t}.key AS key,
4
- CASE ${t}.type
5
- WHEN 'object' THEN ${t}.value
6
- WHEN 'array' THEN ${t}.value
7
- WHEN 'true' THEN 'true'
8
- WHEN 'false' THEN 'false'
9
- WHEN 'null' THEN 'null'
10
- WHEN 'text' THEN json_quote(${t}.value)
11
- ELSE CAST(${t}.value AS TEXT)
12
- END AS vjson
13
- FROM json_each(${e}) AS ${t}
14
- `}function vr(e,t){let n=t===`postgres`?z`excluded.metadata || ${e.metadata}`:z`(
15
- SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
16
- ${_r(z`excluded.metadata`,z`inc`)}
17
- WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
18
- UNION ALL
19
- ${_r(z`${e.metadata}`,z`ex`)}
20
- ) AS mk
21
- )`;return z`
22
- CASE
23
- WHEN ${e.metadata} IS NULL THEN excluded.metadata
24
- WHEN excluded.metadata IS NULL THEN ${e.metadata}
25
- ELSE ${n}
26
- END
27
- `}function yr(e,t,n){return t===void 0?z`${e}`:z`
28
- CASE
29
- WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
30
- ELSE ${e}
31
- END
32
- `}function br(e){return z`
33
- CASE
34
- WHEN ${e.importStatus} = 'imported' OR excluded.import_status = 'imported' THEN 'imported'
35
- WHEN ${e.importStatus} = 'tracking' OR excluded.import_status = 'tracking' THEN 'tracking'
36
- ELSE COALESCE(${e.importStatus}, excluded.import_status, 'discovered')
37
- END
38
- `}function xr(e,t){return t===`live`?z`
39
- CASE
40
- WHEN ${e.status} = 'discovered' THEN 'active'
41
- ELSE ${e.status}
42
- END
43
- `:z`
44
- CASE
45
- WHEN ${e.status} IN ('closed', 'archived') THEN ${e.status}
46
- WHEN ${e.status} = 'active' AND ${e.isImported} = TRUE THEN ${e.status}
47
- WHEN ${br(e)} = 'discovered' THEN excluded.status
48
- ELSE ${e.status}
49
- END
50
- `}function Sr(e,t,n,r,i){return{status:xr(e,i),isImported:!0,importStatus:br(e),adapterName:z`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:z`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:z`COALESCE(${e.source}, excluded.source)`,logFilePath:z`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:z`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:z`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:z`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:z`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:z`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:z`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:z`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:z`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:z`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?z`${e.machineId}`:r===null?z`NULL`:z`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:vr(e,n),createdAt:yr(e.createdAt,t,e),lastActivityAt:yr(e.lastActivityAt,t,e)}}function Cr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K),{dialect:i}=ze(n);return t.on(C.importUpsert,async e=>{let a=e.payload,{externalSessionId:o,source:s,clientId:c,adapterId:l,cwd:u,logFilePath:d,startedAt:f,title:p,kind:m,parentAdapterSessionId:h,forkPointMessageId:g,metadata:_,lastClientIdentityObservation:v,importStatus:ee,isSidechain:te,machineId:ne,activation:y}=a,b=hr(),x=crypto.randomUUID(),S=f??b,C=yn(m)??null,re=h??null,[w]=await n.insert(r).values({sessionId:x,status:Sn(a),isImported:!0,importStatus:ee??`discovered`,adapterName:s,adapterSessionId:o,source:s??null,clientId:c??null,adapterId:l??null,targetWorkingDirectory:u??null,logFilePath:d??null,forkPointMessageId:g??null,branchKind:C,parentExternalSessionId:re,discoveredAt:b,title:p??null,metadata:_??null,lastClientIdentityObservation:gr(v),isSidechain:te??null,machineId:ne??null,createdAt:S,lastActivityAt:S}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:Sr(r,f,i,ne,y)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),T=w.sessionId===x;await wr(t,n,w,T,C,S,s),e.setResult({sessionId:w.sessionId,created:T})})}async function wr(e,t,n,r,i,a,o){if(r){let r=await Tr(t,n.sessionId,n.parentExternalSessionId,o);e.emit(A.created,{sessionId:n.sessionId,parentSessionId:r,branchKind:i,createdAt:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e))}else n.parentExternalSessionId!==null&&n.parentSessionId===null&&await Tr(t,n.sessionId,n.parentExternalSessionId,o),e.emit(A.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function Tr(e,t,n,r){let{sessions:i}=N(e,K);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(P(I(i.adapterSessionId,n),I(i.source,r))).limit(1);if(!a)return null;let o=a.rootSessionId??a.sessionId;return await e.update(i).set({parentSessionId:a.sessionId,rootSessionId:o}).where(I(i.sessionId,t)),a.sessionId}function Er(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,K);return t.on(C.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(I(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(I(i.sessionId,a.sessionId));e.setResult({session:J(a,o)})})}function Dr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,K);return t.on(C.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[I(r.isImported,!0)];t!==void 0&&o.push(I(r.source,t)),a!==void 0&&o.push(I(r.importStatus,a));let s=P(...o),c=await n.select().from(r).where(s).orderBy(Ue(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=lr(await n.select().from(i).where(L(i.sessionId,l)));e.setResult({sessions:c.map(e=>J(e,u.get(e.sessionId)??[]))})})}function Or(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:z`count(*)`}).from(r).where(P(I(r.isImported,!0),I(r.source,t))).groupBy(r.importStatus),a=0,o=0,s=0,c=0;for(let e of i){let t=Number(e.count);a+=t,e.importStatus===`imported`&&(o+=t),e.importStatus===`tracking`&&(s+=t),e.importStatus===`discovered`&&(c=t)}e.setResult({total:a,imported:o,tracking:s,discovered:c})})}function kr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:z`
51
- CASE
52
- WHEN ${r.status} = 'discovered' THEN 'active'
53
- ELSE ${r.status}
54
- END
55
- `}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(P(I(r.sessionId,i),Je(R(r.importStatus),z`${r.importStatus} <> ${a}`))).returning({adapterSessionId:r.adapterSessionId,adapterName:r.adapterName,source:r.source}),c=s!==void 0;if(e.setResult({success:c}),c){t.emit(A.importStatusChanged,{sessionId:i,importStatus:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let e=s.source??s.adapterName;a===`imported`&&s.adapterSessionId&&e&&t.emit(A.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function Ar(e,t){let n={bus:e,db:t};return[Cr(n),Er(n),Dr(n),Or(n),kr(n)]}function Y(e){return e??null}function jr(e){return e?JSON.stringify(e):null}function Mr(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:Y(e.leadAgentId),parentSessionId:Y(e.parentSessionId),contextInheritance:Y(e.contextInheritance),rootSessionId:Y(e.rootSessionId),forkPointMessageId:Y(e.forkPointMessageId),branchKind:Y(e.branchKind),adapterName:Y(e.adapterName),adapterSessionId:Y(e.adapterSessionId),adapterId:Y(e.adapterId),clientId:Y(e.clientId),clientAccountId:Y(e.clientAccountId),lastClientIdentityObservation:Nr(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Y(e.title),summary:Y(e.summary),summaryUpdatedAt:Y(e.summaryUpdatedAt),forkTransforms:jr(e.forkTransforms),targetWorkingDirectory:Y(e.targetWorkingDirectory),executionTargetId:Y(e.executionTargetId),approvalPolicyOverride:Y(e.approvalPolicyOverride),metadata:Y(e.metadata),spawningToolCallId:Y(e.spawningToolCallId),source:Y(e.source),parentExternalSessionId:Y(e.parentExternalSessionId),logFilePath:Y(e.logFilePath),discoveredAt:Y(e.discoveredAt),importStatus:Y(e.importStatus),machineId:Y(e.machineId)}}function Nr(e){return e?JSON.stringify(e):null}function X(e,t,n){n!==void 0&&(e[t]=n)}function Pr(e,t,n){n!==void 0&&(e[t]=n??null)}function Fr(e,t){let n={};return X(n,`status`,e.status),X(n,`parentSessionId`,e.parentSessionId),X(n,`contextInheritance`,e.contextInheritance),X(n,`rootSessionId`,e.rootSessionId),X(n,`forkPointMessageId`,e.forkPointMessageId),X(n,`branchKind`,e.branchKind),X(n,`isOrchestrated`,e.isOrchestrated),X(n,`clientId`,e.clientId),X(n,`clientAccountId`,e.clientAccountId),X(n,`title`,e.title),X(n,`targetWorkingDirectory`,e.targetWorkingDirectory),X(n,`createdAt`,e.createdAt),X(n,`lastActivityAt`,e.lastActivityAt),X(n,`machineId`,e.machineId),Pr(n,`executionTargetId`,e.executionTargetId),Pr(n,`approvalPolicyOverride`,e.approvalPolicyOverride),Pr(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=z`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=Nr(e.lastClientIdentityObservation)),n}function Ir(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,K);return t.on(C.get,async e=>{let[t]=await n.select().from(r).where(I(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(I(i.sessionId,e.payload.sessionId));e.setResult({session:J(t,a)})})}function Lr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=be.parse(e.payload),s=Mr(a);if(o){H(null,a);let o=M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&U(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(I(r.sessionId,i)).limit(1),c=o?J(o,[]):null;if(H(c,a),M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:s,setWhere:Jn(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),U(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function Rr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.delete,async e=>{await n.delete(r).where(I(r.sessionId,e.payload.sessionId)),e.setResult({success:!0})})}function zr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.update,async e=>{let i=xe.request.parse(e.payload),{sessionId:a}=i,o=Fr(i,r),s=fr(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}if(!s){let t=await n.update(r).set(o).where(I(r.sessionId,a));e.setResult({success:M(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(I(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let c=J(s,[]),l=dr(c,i);if(H(c,l),M(await n.update(r).set(o).where(P(I(r.sessionId,a),Jn(s,r))))){e.setResult({success:!0,clientAccountChanged:(c.clientAccountId??null)!==(l.clientAccountId??null)}),U(t,c,l);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function Br(e,t){let n=[];return e.status!==`all`&&n.push(I(t.status,e.status)),e.executionTargetId!==void 0&&n.push(I(t.executionTargetId,e.executionTargetId)),P(...n)}function Vr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,K);return t.on(C.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=Br({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(Ue(r.lastActivityAt)):await u.orderBy(Ue(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:F()}).from(r).where(l):n.select({count:F()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=lr(await n.select().from(i).where(L(i.sessionId,m))),{previewBySession:g,countBySession:_}=await ur(n,m,s),v=d.map(e=>{let t=J(e,h.get(e.sessionId)??[]);return s&&g&&_?{...t,preview:{messageCount:_.get(e.sessionId)??0,firstUserMessage:g.get(e.sessionId)??null}}:t});e.setResult({sessions:v,total:p})})}function Hr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,K);return t.on(C.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:F()}).from(r).groupBy(r.status),i=0,a=0,o=0,s=0;for(let e of t)e.status===`active`?i=e.count:e.status===`closed`?a=e.count:e.status===`archived`?o=e.count:e.status===`discovered`&&(s=e.count);let c=i+a+o+s;e.setResult({all:c,active:i,closed:a,archived:o,discovered:s})})}function Ur(e,t){let n={bus:e,db:t},r=[Ir(n),Lr(n),Rr(n),zr(n),Vr(n),mr(n),pr(n),Hr(n),...Ar(e,t)];return()=>r.forEach(e=>e())}function Wr(e,t){let{adapterId:n,adapterSessionId:r,cwd:i,model:a,allowedDirectories:o,providerConfigId:s}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.adapterSessionId=r),i!==void 0&&(e.cwd=i),a!==void 0&&(e.model=a),o!==void 0&&(e.allowedDirectories=o),s===null?delete e.providerConfigId:s!==void 0&&(e.providerConfigId=s),!0)}function Gr(e){let t=new Map,n=[];return n.push(e.on(c.get,e=>{let n=t.get(e.payload.agentId)??null;e.setResult({agent:n})})),n.push(e.on(c.set,e=>{t.set(e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),n.push(e.on(c.delete,e=>{let n=t.delete(e.payload.agentId);e.setResult({success:n})})),n.push(e.on(c.listByAdapter,e=>{let{adapterName:n,status:r}=e.payload,i=Array.from(t.values()).filter(e=>e.adapterName===n);r&&r!==`all`&&(i=i.filter(e=>e.status===r)),e.setResult({agents:i})})),n.push(e.on(c.listBySession,e=>{let n=Array.from(t.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:n})})),n.push(e.on(c.updateStatus,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.status=e.payload.status,n.lastActivityAt=Date.now(),e.setResult({success:!0})})),n.push(e.on(c.updateActivity,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.lastActivityAt=e.payload.lastActivityAt,e.setResult({success:!0})})),n.push(e.on(c.updateRuntime,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}let{adapterId:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=e.payload;if(!Wr(n,{adapterId:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c})){e.setResult({success:!1});return}n.lastActivityAt=Date.now(),e.setResult({success:!0})})),()=>n.forEach(e=>e())}async function Kr(e,t){if(t.length===0)return new Map;let{agents:n}=N(e,K),r=[...new Set(t)],i=await e.select().from(n).where(L(n.sessionId,r)),a=new Map;for(let e of i){let t=a.get(e.sessionId)??[];t.push(e),a.set(e.sessionId,t)}return a}async function qr(e,t){return Ve(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Jr(e,t){if(t.length===0)return new Map;let{messages:n}=N(e,o),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:F()}).from(n).where(L(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Yr(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function Xr(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=ye.safeParse(t);return n.success?n.data:void 0}catch{return}}function Zr(e,t,n,r){return{sessionId:e.session_id,createdAt:e.created_at,lastActivityAt:e.last_activity_at,status:e.status,title:e.title??void 0,leadAgentId:e.lead_agent_id??void 0,parentSessionId:e.parent_session_id??void 0,rootSessionId:e.root_session_id??void 0,forkPointMessageId:e.fork_point_message_id??void 0,branchKind:e.branch_kind??void 0,adapterName:e.adapter_name??void 0,adapterSessionId:e.adapter_session_id??void 0,adapterId:e.adapter_id??void 0,isOrchestrated:e.is_orchestrated===null?void 0:!!e.is_orchestrated,isImported:e.is_imported===null?void 0:!!e.is_imported,summary:e.summary??void 0,summaryUpdatedAt:e.summary_updated_at??void 0,forkTransforms:Yr(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:Xr(e.metadata),machineId:e.machine_id??void 0,agents:t.map(e=>({agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0})),preview:{messageCount:r.get(e.session_id)??0,firstUserMessage:n.get(e.session_id)??null}}}function Qr(e,t){let n=Ve(t).fts,r=[];return r.push(e.on(C.search,async e=>{let{query:r,limit:i=20,status:a=`all`,isImported:o}=e.payload,s=r.trim();if(!s){e.setResult({sessions:[],total:0});return}let c={query:s,likePattern:`%${s.toLowerCase()}%`,status:a===`all`?void 0:a,isImported:o},l=await n.searchSessionRows(t,{...c,limit:i});if(l.length===0){e.setResult({sessions:[],total:0});return}let u=await n.countSessionMatches(t,c),d=l.map(e=>e.session_id),f=await Kr(t,d),p=await qr(t,d),m=await Jr(t,d),h=l.map(e=>Zr(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function $r(e,t){return(await ze(e).all(z`
56
- WITH RECURSIVE ancestors AS (
57
- SELECT session_id, parent_session_id
58
- FROM sessions
59
- WHERE session_id = ${t}
60
-
61
- UNION ALL
62
-
63
- SELECT s.session_id, s.parent_session_id
64
- FROM sessions s
65
- JOIN ancestors a ON s.session_id = a.parent_session_id
66
- )
67
- SELECT session_id FROM ancestors
68
- `)).map(e=>e.session_id)}const ei=new Map;function ti(e,t){let n=(ei.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return ei.set(e,r),r.then(()=>{ei.get(e)===r&&ei.delete(e)}),n}function ni(e,t){return`${e}:${t}`}async function ri(e,t,n){let r=await e.requestOptional(a.getByIds,{sessionId:t,eventIds:[ni(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function ii(e,t){return ti(JSON.stringify([t.sessionId,t.turnAnchorId]),()=>ai(e,t))}async function ai(e,t){let{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}=t,{turn:u,created:d}=await e.request(S.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(T.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await ri(e,n,u.turnId)===!1),m&&(p===void 0?console.warn(`[turn-ingest] Turn ${u.turnId} (session ${n}) ingested without messages — skipping session.turn.* emission (getByTurn contract unfulfillable)`):await oi(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function oi(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:u}=t,d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:u},f={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:u};await l(e,{type:`turn.started`,sessionId:i,payload:d,eventId:ni(`turn.started`,n.turnId)}),await l(e,{type:`turn.completed`,sessionId:i,payload:f,eventId:ni(`turn.completed`,n.turnId)}),await e.emit(A.turn.started,d),await e.emit(A.turn.completed,f)}const Z=`observed-session-ingestion-policy`;function si(e,t){return e.emit(le.register,{capabilityId:Z,provider:t})}function ci(e,t){return e.emit(le.unregister,{capabilityId:Z,providerId:t})}const Q=ie(`log-import`,{listImporters:{request:D.object({}),response:D.object({importers:D.array(D.object({adapterName:D.string(),clientId:D.string().optional()}))})},importFile:{request:D.object({filePath:D.string(),adapterName:D.string(),ingestionMarker:Se.optional()}),response:D.discriminatedUnion(`status`,[D.object({status:D.literal(`imported`),sessionId:D.string(),messageCount:D.number(),turnCount:D.number()}),D.object({status:D.literal(`skipped`),reason:D.enum([`no-importer`,`file-missing`])})])},importSession:{request:D.object({adapterSessionId:D.string(),adapterName:D.string(),ingestionMarker:Se.optional()}),response:D.object({sessionId:D.string(),messageCount:D.number()})}}).subjects;function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function li(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.displayName==`string`&&typeof t.decideObservedSessionIngestion==`function`}function ui(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function di(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var fi=class{bus;managedAdapterSessionIds=new Set;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=ae){this.bus=e,this.cleanups.push(this.bus.on(ue.runtime.started,async e=>{try{await this.handleRuntimeStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to handle runtime started`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(ue.session.started,async e=>{try{await this.handleSessionStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to register observed session`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(ue.session.turn.completed,async e=>{try{await this.handleTurnCompleted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to trigger import for observed turn`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(le.register,e=>{let{provider:t}=e.payload;li(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Z}}),this.bus.on(le.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Z}}))}destroy(){for(let e of this.cleanups.splice(0))e()}async handleRuntimeStarted(e){if(!(e.source.layer!==`adapter`||e.adapterSessionId===void 0)){if(!this.managedAdapterSessionIds.has(e.adapterSessionId)){if(this.managedAdapterSessionIds.size>=1e4){let e=this.managedAdapterSessionIds.values().next().value;e!==void 0&&this.managedAdapterSessionIds.delete(e)}this.managedAdapterSessionIds.add(e.adapterSessionId)}await this.reconcileTrackingStub(e.clientId,e.adapterSessionId)}}async reconcileTrackingStub(e,t){let n=await this.resolveImporter(e);if(n===null)return;let r=await this.bus.requestOptional(C.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!di(i))return;let a=await this.bus.requestOptional(he.getBySession,{sessionId:i.sessionId,limit:1});if(!a.handled){$(`Preserved tracking stub because message storage is unavailable`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}if(a.data.messages.length>0){$(`Preserved tracking stub with imported content (native takeover)`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}(await this.bus.requestOptional(C.delete,{sessionId:i.sessionId})).handled&&$(`Reconciled hook-first tracking stub`,{adapterSessionId:t,source:n.adapterName,deletedSessionId:i.sessionId})}async resolveImporter(e){let t=this.importerByClientId.get(e);if(t!==void 0)return t===null?null:{adapterName:t};let n=await this.bus.requestOptional(Q.listImporters,{});if(!n.handled)return this.debugUnresolved(e,`no log-import service registered`),null;let r=n.data.importers.find(t=>t.clientId===e);return r===void 0?(this.importerByClientId.set(e,null),this.debugUnresolved(e,`no importer registered for client`),null):(this.importerByClientId.set(e,r.adapterName),{adapterName:r.adapterName})}debugUnresolved(e,t){this.unresolvedClientIds.has(e)||(this.unresolvedClientIds.add(e),$(`Skipping observed ingestion for client '${e}': ${t}`))}async handleSessionStarted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n===null)return;let r=pi(e.metadata),i=await this.decideImportStatus({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}),a=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,o=a===void 0?{kind:ge,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:fe,parentAdapterSessionId:a,forkPointMessageId:null};if(!(await this.bus.requestOptional(C.importUpsert,{...o,externalSessionId:t,source:n.adapterName,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:i,activation:i===`tracking`?`live`:void 0,...r===void 0?{}:{metadata:r}})).handled){$(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t});return}this.managedAdapterSessionIds.has(t)&&await this.reconcileTrackingStub(e.clientId,t)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Q.importFile,{filePath:e.transcriptPath,adapterName:n.adapterName,ingestionMarker:`live`});r.handled?r.data.status===`skipped`&&$(`Targeted import skipped`,{adapterSessionId:t,reason:r.data.reason}):$(`log-import.importFile unhandled; watcher fallback will ingest`,{adapterSessionId:t});return}try{await this.bus.requestOptional(Q.importSession,{adapterSessionId:t,adapterName:n.adapterName,ingestionMarker:`live`})}catch(e){$(`Discovery-based import fallback failed (no stub yet); watcher will ingest`,{adapterSessionId:t,error:e})}}}async decideImportStatus(e){for(let t of this.policyProviders.values())if((await t.decideObservedSessionIngestion(e)).importStatus===`discovered`)return`discovered`;return`tracking`}async shouldImportObservedContent(e){let t=await this.bus.requestOptional(C.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if(ui(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function pi(e){if(e===void 0)return;let t=ye.safeParse(e);return t.success?t.data:void 0}const mi=Re(`import_cursors`,e=>({filePath:e.text(`file_path`).primaryKey(),bytesRead:e.int8(`bytes_read`).notNull(),lastModified:e.text(`last_modified`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),hi=mi.sqlite,gi=mi.postgres,_i=Le({importCursors:hi},{importCursors:gi});function vi(e,t){let{importCursors:n}=N(t,_i),r=[];return r.push(e.on(Ze.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(I(n.filePath,r)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),r.push(e.on(Ze.set,async e=>{let{filePath:r,bytesRead:i,lastModified:a}=e.payload;await t.insert(n).values({filePath:r,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:n.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(Ze.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(I(n.filePath,r));e.setResult({success:M(i)})})),()=>{r.forEach(e=>e())}}Me(`embeddings`,{id:Ae(`id`).primaryKey({autoIncrement:!0}),entityType:Ne(`entity_type`).notNull(),entityId:Ne(`entity_id`).notNull(),model:Ne(`model`).notNull(),dimensions:Ae(`dimensions`).notNull(),content:Ne(`content`),embedding:Oe(`embedding`,{mode:`buffer`}).notNull(),createdAt:Ae(`created_at`).notNull()},e=>[ke(`idx_embeddings_entity`).on(e.entityType,e.entityId),ke(`idx_embeddings_model`).on(e.model),Pe(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function yi(e){if(e.byteLength%4!=0)throw Error(`Invalid embedding blob: byte length ${e.byteLength} is not a multiple of 4 (IEEE-754 f32 lanes)`);return e instanceof ArrayBuffer?new Float32Array(e):e.byteOffset%4==0?new Float32Array(e.buffer,e.byteOffset,e.byteLength/4):new Float32Array(Uint8Array.from(e).buffer)}var bi=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=ze(e),this.engine=Be(this.rawSql.dialect)}slugify(e){return e.replace(/[^a-zA-Z0-9]/g,`_`).toLowerCase()}hashModel(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t.toString(36)}getTableName(e){return`embeddings_idx_${this.slugify(e)}_${this.hashModel(e)}`}async ensureIndexTable(e,t){let n=this.getTableName(e);if(this.knownTables.has(n))return n;let r=z.identifier(n),i=z.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(z`CREATE TABLE IF NOT EXISTS ${r} (
69
- entity_type TEXT NOT NULL,
70
- entity_id TEXT NOT NULL,
71
- embedding ${i} NOT NULL,
72
- PRIMARY KEY (entity_type, entity_id)
73
- )`),this.knownTables.add(n),n}async upsertIndexed(e,t,n,r,i){let a=await this.ensureIndexTable(e,t),o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s=z.identifier(a);await this.rawSql.run(z`INSERT INTO ${s} (entity_type, entity_id, embedding)
74
- VALUES (${n}, ${r}, ${o})
75
- ON CONFLICT(entity_type, entity_id) DO UPDATE SET
76
- embedding = excluded.embedding`)}async searchSimilar(e,t,n=10){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return[];this.knownTables.add(r)}let i=z.identifier(r),a=await this.rawSql.all(z`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=yi(e.embedding),r=this.euclideanDistance(t,n);return{entityType:e.entity_type,entityId:e.entity_id,distance:r}}).sort((e,t)=>e.distance-t.distance).slice(0,n)}async deleteByEntity(e,t,n){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return;this.knownTables.add(r)}let i=z.identifier(r);await this.rawSql.run(z`DELETE FROM ${i} WHERE entity_type = ${t} AND entity_id = ${n}`)}euclideanDistance(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r]-t[r];n+=i*i}return Math.sqrt(n)}},xi=class{sessionId;parentSessionId;status=`active`;_turns=[];_completedTurnIds=new Set;bus;constructor(e){this.sessionId=e.sessionId??crypto.randomUUID(),this.parentSessionId=e.parentSessionId,this.bus=e.bus}get turns(){return this._turns}async startTurn(e){if(this.status!==`active`)throw Error(`Cannot start turn on non-active session`);let t=new Jt({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await u(this.bus,{sessionId:this.sessionId,turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId,ingestionMarker:`live`}),t}getActiveTurn(){for(let e=this._turns.length-1;e>=0;e--){let t=this._turns[e];if(!this._completedTurnIds.has(t.turnId))return t}}async completeTurn(e){if(!e.isComplete())throw Error(`Turn ${e.turnId} is not complete yet`);let t=e.getResult(),n={turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0};await l(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(A.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function Si(e,t){let{sessions:n}=N(t,K);async function r(i,a,o,s=0){if(s>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let c=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(P(I(n.parentExternalSessionId,i),I(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(C.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(A.import.completed,async i=>{let{adapterSessionId:a,sessionId:o,source:s}=i.payload,c=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(P(I(n.parentExternalSessionId,a),I(n.source,s),R(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(C.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(C.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const Ci=new Set([`Agent`,`spawn_subagent`]),wi=`[^A-Za-z0-9_-]`;function Ti(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Ei(e,t){return t.test(e)}async function Di(e,t){let n=[],r,i=0;do{let a=await e.request(T.getBySession,{sessionId:t,order:`asc`,...r===void 0?{}:{after:r}});if(n.push(...a.messages),r=a.nextCursor??void 0,i+=1,r!==void 0&&i>=1e3)throw Error(`Exceeded 1000 message pages while loading session ${t}`)}while(r!==void 0);return n}function Oi(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&Ci.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function ki(e,t){let n=new Map;for(let r of e)for(let e of r.blocks)if(e.type===`tool_output`){for(let r of t)if(Ei(e.output,r.pattern)){let t=n.get(e.toolCallId)??new Set;t.add(r.id),n.set(e.toolCallId,t)}}let r=new Map;for(let[e,t]of n)if(t.size===1){let[n]=t;r.set(e,n)}return r}function Ai(e){let t=new Map,n=new Set;for(let r of e)if(!(r===null||n.has(r.adapterSessionId))){if(t.has(r.adapterSessionId)){t.delete(r.adapterSessionId),n.add(r.adapterSessionId);continue}t.set(r.adapterSessionId,r.sessionId)}return t}function ji(e){return[...e].map(e=>{let t=Ti(e);return{id:e,pattern:RegExp(`(^|${wi})${t}($|${wi})`)}})}async function Mi(e,t,n){let{children:r}=await e.request(C.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(C.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=ji(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await Di(e,t.sessionId),r=Oi(n);if(r.length===0)return null;let i=ki(n,s);if(i.size===0)return null;let a=[...i.entries()].filter(([,e])=>e===o);if(a.length!==1)return null;let[c]=a[0];return r.some(e=>e.toolCallId===c)?{parentSessionId:t.sessionId,toolCallId:c}:null}))).filter(e=>e!==null);c.length===1&&await e.request(C.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function Ni(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(C.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(C.getChildren,{sessionId:s}),l=await Pi(e,c);if(l.size===0)return;let u=await Di(e,a),d=Oi(u);if(d.length===0)return;let f=ki(u,ji(new Set(l.keys()))),p=new Map;for(let e of d){let t=f.get(e.toolCallId);t!==void 0&&p.set(t,(p.get(t)??0)+1)}let m=new Map;for(let e of d){let t=f.get(e.toolCallId),n=t===void 0?void 0:l.get(t);n!==void 0&&t!==void 0&&p.get(t)===1&&m.set(n,e.toolCallId)}if(m.size===0)return;let h=[...m].map(async([t,n])=>{try{await e.request(C.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:s,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(h)}async function Pi(e,t){return Ai(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(C.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function Fi(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(C.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await Mi(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await Ni(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Ii(e){return[...e].map(e=>{let t=Ti(e);return{id:e,pattern:RegExp(`(^|${wi})${t}($|${wi})`)}})}async function Li(e,t,n){return Ai(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(C.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Ri(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(C.getChildren,{sessionId:n}),a=await Li(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await Di(e,n),c=Oi(s);if(c.length===0)return;let l=ki(s,Ii(o)),u=new Map;for(let e of c){let t=l.get(e.toolCallId);t!==void 0&&u.set(t,(u.get(t)??0)+1)}let d=new Map;for(let e of c){let t=l.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&u.get(t)===1&&d.set(n,e.toolCallId)}let f=[...d].map(async([t,r])=>{try{let{session:n}=await e.request(C.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(C.update,{sessionId:t,spawningToolCallId:r})}catch(e){console.error(`Failed to persist spawning tool call correlation`,{parentSessionId:n,childSessionId:t,toolCallId:r,error:e})}});await Promise.allSettled(f)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function zi(e){return e.on(O.session.discovered,async t=>{let n=ve.safeParse(t.payload);if(!n.success)throw console.error(`[registerSessionDiscoveredHandler] Invalid adapter.session.discovered payload`,{issues:n.error.issues}),n.error;let{adapterId:r,adapterSessionId:i,adapterName:a,cwd:o,title:s,logFilePath:c,startedAt:l,machineId:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=bn({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(C.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...l===void 0?{}:{startedAt:l},...u===void 0?{}:{machineId:u},...m})})}var Bi=class{bus;agentStates=new Map;sessionStates=new Map;unsubscribe;staleThresholdMs;constructor(e,t){this.bus=e,this.staleThresholdMs=t?.staleThresholdMs??36e5}start(){this.unsubscribe||=this.bus.on(k.contextWindow.updated,e=>{let{agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s}=e.payload;if(!n)return;let c={agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s,updatedAt:Date.now()};this.agentStates.set(t,c),this.recomputeSessionState(n)})}stop(){this.unsubscribe?.(),this.unsubscribe=void 0,this.agentStates.clear(),this.sessionStates.clear()}getSessionState(e){return this.sessionStates.get(e)}clearSession(e){this.sessionStates.delete(e);for(let[t,n]of this.agentStates)n.sessionId===e&&this.agentStates.delete(t)}recomputeSessionState(e){let t=Date.now(),n;for(let[r,i]of this.agentStates){if(t-i.updatedAt>this.staleThresholdMs){this.agentStates.delete(r);continue}i.sessionId===e&&(!n||i.percentage>n.percentage)&&(n=i)}n&&this.sessionStates.set(e,{currentTokens:n.currentTokens,maxTokens:n.maxTokens,percentage:n.percentage,level:n.level,worstAgentId:n.agentId,lastUpdatedAt:n.updatedAt})}};export{Et as $,J as A,fn as B,qr as C,Ur as D,Gr as E,gn as F,sn as G,dn as H,_n as I,Ht as J,Jt as K,hn as L,Wn as M,yn as N,ur as O,bn as P,jt as Q,mn as R,Jr as S,Yr as T,ln as U,un as V,cn as W,Vt as X,V as Y,Bt as Z,ci as _,Si as a,Qr as b,vi as c,Q as d,gt as et,fi as f,si as g,Z as h,Fi as i,or as j,lr as k,hi as l,di as m,zi as n,tt as nt,xi as o,ui as p,Kt as q,Ri as r,bi as s,Bi as t,mt as tt,mi as u,ii as v,Zr as w,Kr as x,$r as y,pn as z};
@@ -1 +0,0 @@
1
- import{r as e}from"./json-value-DmU8ibo_.mjs";import"./ui-config-CyCdlns_.mjs";import{z as t}from"zod";const n=t.string().max(64).regex(/^[a-zA-Z0-9_-]+$/),r=t.object({schema:e,name:n.optional(),strict:t.boolean().optional()}).strict(),i=t.object({message:t.string(),instancePath:t.string(),schemaPath:t.string()}).strict(),a=t.enum([`passed`,`failed`,`enforced`]),o=t.discriminatedUnion(`status`,[t.object({status:t.literal(`passed`)}).strict(),t.object({status:t.literal(`enforced`)}).strict(),t.object({status:t.literal(`failed`),errors:t.array(i).min(1)}).strict()]),s=t.discriminatedUnion(`type`,[t.object({type:t.literal(`base64`),data:t.string(),mimeType:t.string()}),t.object({type:t.literal(`url`),url:t.string(),mimeType:t.string().optional()})]),c=t.enum([`file`,`directory`]),l=t.discriminatedUnion(`type`,[t.object({type:t.literal(`text`),content:t.string()}),t.object({type:t.literal(`image`),source:s}),t.object({type:t.literal(`document`),source:s}),t.object({type:t.literal(`attachment`),fileName:t.string(),filePath:t.string(),source:s,displayName:t.string().optional(),attachmentType:c}),t.object({type:t.literal(`reasoning`),content:t.string(),metadata:t.record(t.string(),t.unknown()).optional()}),t.object({type:t.literal(`tool_call`),toolCallId:t.string(),name:t.string(),args:t.record(t.string(),t.unknown())}),t.object({type:t.literal(`tool_output`),toolCallId:t.string(),output:t.string(),isError:t.boolean().optional()})]),u=t.enum([`user`,`assistant`,`system`]),d=t.object({role:u.optional(),blocks:t.union([l,t.array(l)])}),f=t.union([t.string(),d]),p=t.object({message:t.string().optional()}),m=t.enum([`completed`,`superseded`,`merged`,`cancelled`,`error`,`rejected`]),h=t.object({messageId:t.string(),result:p.optional(),error:t.string().optional(),outcome:m}),g=t.enum([`enqueue`,`immediate`,`replace`]),_=t.union([t.string(),t.object({mode:t.literal(`append`),content:t.string()})]),v=t.object({role:t.enum([`user`,`assistant`,`system`]),blocks:t.array(l),message:t.string().optional()}),y=[`rate_limit`,`auth`,`model_unavailable`,`quota_exceeded`],b=t.enum(y);export{a as _,g as a,d as c,h as d,_ as f,o as g,i as h,l as i,v as l,n as m,y as n,f as o,r as p,b as r,m as s,s as t,p as u};
@@ -1 +0,0 @@
1
- import{F as e}from"./handlers-CfnLyLfE.mjs";import{SessionStorageSubjects as t}from"./services/session/storage/namespace.mjs";import"./session-BTFiDoGz.mjs";import{AgentSubjects as n,ApprovalSubjects as r,HarnessSubjects as i,computeMetaTags as a}from"@makaio/framework/contracts";import{BaseService as o}from"@makaio/framework/service-base";import{extractToolFilePath as s}from"@makaio/framework/tools";const c={"full-access":0,"always-ask":1,reject:2};function l(){return`apr_${crypto.randomUUID()}`}function u(e){switch(e){case`allow`:return`full-access`;case`deny`:return`reject`;case`ask`:return`always-ask`}}function d(e){if(!e?.length)return`neutral`;let t=a(e);return t.includes(`destructive`)?`destructive`:t.includes(`read-only`)?`safe`:`neutral`}function f(e,t){if(e)return t&&e.toolApprovalOverrides?.[t]!==void 0?e.toolApprovalOverrides[t]:e.approvalPolicy}function p(e,t,n,r){let i=r[t];if(!i?.length)return e;let a=e;for(let e of i){let t=n[e];t&&c[t]>c[a]&&(a=t)}return a}function m(e,t,n){return n.handled?n.data.allowedDirectories??void 0:t?[]:void 0}function h(e,t,n){if(!n||!e?.cwd)return{};let r;return(e.personaId||e.profileId)&&t&&(r=m(e.personaId,e.profileId,t)),{cwd:e.cwd,...r&&{allowedDirectories:r}}}function g(e,t,n){if(!(!e&&!t))return!n||!n.handled?{policy:`always-ask`}:{policy:u(n.data.action),...n.data.personaName&&{personaName:n.data.personaName},...n.data.profileName&&{profileName:n.data.profileName}}}function _(e,t){let n=t.harness?.toolCapabilityMap&&e.toolName?t.harness.toolCapabilityMap[e.toolName]:void 0;return{requestId:l(),toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,agentId:e.agentId,sessionId:e.sessionId,adapterName:t.resolvedAdapterName,...t.personaName&&{personaName:t.personaName},...t.profileName&&{profileName:t.profileName},capabilities:n,riskLevel:d(n),reasoning:e.reasoning,createdAt:Date.now()}}var v=class extends o{logger=console;options;constructor(e,t={}){super(e),this.options=t}async onInit(){this.registerHandler(n.toolApprove,async e=>{let t=await this.getAgentMetadata(e.payload.agentId,e.payload.sessionId),n=(t?.personaId||t?.profileId)&&e.payload.toolName?await this.fetchRawEnrichedPolicy(t?.personaId,t?.profileId,e.payload.toolName):void 0,r=h(t,n,this.options.fileAccessRuleProvider),i=await this.checkFileAccessDenyReason(e.payload,r);if(i){e.setResult({action:`deny`,message:i,shouldAbort:!1});return}let a=await this.resolveSessionOverride(e.payload.sessionId);if(a===`full-access`){e.setResult({action:`allow`});return}if(a===`reject`){e.setResult({action:`deny`,message:`Tool use rejected by session approval policy override`,shouldAbort:!1});return}let o=await this.resolvePolicyWithContext({adapterName:e.payload.adapterName,toolName:e.payload.toolName},t,n);switch(a===`always-ask`?`always-ask`:o.policy){case`full-access`:e.setResult({action:`allow`});return;case`reject`:e.setResult({action:`deny`,message:`Tool use rejected by approval policy`,shouldAbort:!1});return;case`always-ask`:await this.dispatchAlwaysAskApproval(e.payload,e.setResult.bind(e),o);return}})}async dispatchAlwaysAskApproval(e,t,i){let a=_(e,i),o=new AbortController,s=this.bus.on(n.session.closed,()=>{o.abort()},{filter:{agentId:a.agentId,...e.adapterSessionId!==void 0&&{adapterSessionId:e.adapterSessionId}}});try{let e=await this.bus.requestOptional(r.request,a,{timeout:0,signal:o.signal});e.handled&&e.data.action===`allow`?t({action:`allow`,...e.data.updatedInput&&{updatedInput:e.data.updatedInput}}):t({action:`deny`,message:e.handled&&e.data.action===`deny`?e.data.message??`User denied tool execution`:`No approval handler available`,shouldAbort:!1})}catch{t({action:`deny`,message:o.signal.aborted?`Approval cancelled — agent session closed`:`Tool approval request failed`,shouldAbort:!1})}finally{s()}}async checkFileAccessDenyReason(e,t){if(!this.options.fileAccessRuleProvider||!t.cwd)return;let n=s(e.toolName,e.args,t.cwd);if(n)try{return(await this.options.fileAccessRuleProvider(t.cwd,t.allowedDirectories)).isDenied(n)?`Access denied: '${n}' is restricted by .makaioignore rules`:void 0}catch{return`Access denied: file access rules could not be evaluated`}}async fetchRawEnrichedPolicy(e,t,n){try{return await this.bus.requestOptional(r.resolveEnrichedPolicy,{toolName:n,personaId:e,profileId:t})}catch(r){return this.logger.error(`[ToolApprovalService] approval.resolveEnrichedPolicy failed; falling back to fail-closed`,{toolName:n,personaId:e,profileId:t,error:r}),{handled:!1}}}async resolvePolicyWithContext(e,t,n){let r=t?.adapterName??e.adapterName,i=g(t?.personaId,t?.profileId,n),a=await this.resolveHarnessPolicy(r,t?.harnessId,t?.clientId),o=f(a,e.toolName),s=i?.policy??o??`always-ask`,c=s;return a?.capabilityOverrides&&a.toolCapabilityMap&&e.toolName&&(c=p(s,e.toolName,a.capabilityOverrides,a.toolCapabilityMap)),{policy:c,harness:a,agent:t,resolvedAdapterName:r,...i?.personaName&&{personaName:i.personaName},...i?.profileName&&{profileName:i.profileName}}}async getAgentMetadata(t,n){try{if(n){let{agents:r}=await this.bus.request(e.listBySession,{sessionId:n});return r.find(e=>e.agentId===t)??null}let r=await this.bus.requestOptional(e.get,{agentId:t});return r.handled?r.data.agent:null}catch{return null}}async resolveSessionOverride(e){if(e)try{let n=await this.bus.requestOptional(t.get,{sessionId:e});return n.handled?n.data.session?.approvalPolicyOverride??void 0:void 0}catch{return}}async resolveHarnessPolicy(e,t,n){try{let r=await this.bus.request(i.resolve,{adapterName:e,...t&&{profileHarnessId:t},...n&&{clientId:n}});return{approvalPolicy:r.approvalPolicy,capabilityOverrides:r.capabilityOverrides,toolCapabilityMap:r.toolCapabilityMap,toolApprovalOverrides:r.toolApprovalOverrides}}catch{return}}};export{v as t};