@makaio/framework 1.0.0-dev-1781117225170 → 1.0.0-dev-1781260968078

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 (315) hide show
  1. package/README.md +29 -0
  2. package/dist/.makaio-build.json +2 -2
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/config/index.mjs +1 -1
  5. package/dist/adapters/index.d.mts +3 -3
  6. package/dist/adapters/index.mjs +1 -1
  7. package/dist/adapters/node.d.mts +1 -1
  8. package/dist/adapters/node.mjs +1 -1
  9. package/dist/bus/index.mjs +1 -1
  10. package/dist/client-BJVDImPV.d.mts +175 -0
  11. package/dist/clients/index.d.mts +105 -2
  12. package/dist/clients/index.mjs +2 -2
  13. package/dist/contracts/adapter/index.d.mts +2 -2
  14. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  15. package/dist/contracts/artifact/index.d.mts +1 -1
  16. package/dist/contracts/client/index.d.mts +2 -2
  17. package/dist/contracts/common/index.d.mts +1 -1
  18. package/dist/contracts/config/index.d.mts +1 -1
  19. package/dist/contracts/extension/index.d.mts +4 -4
  20. package/dist/contracts/extension/index.mjs +1 -1
  21. package/dist/contracts/facet/index.d.mts +1 -1
  22. package/dist/contracts/harness/index.d.mts +1 -1
  23. package/dist/contracts/host/index.d.mts +1 -1
  24. package/dist/contracts/index.d.mts +575 -62
  25. package/dist/contracts/index.mjs +1 -1
  26. package/dist/contracts/materialization/index.d.mts +3 -3
  27. package/dist/contracts/model-registry/index.d.mts +1 -1
  28. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  29. package/dist/contracts/platform/index.d.mts +1 -1
  30. package/dist/contracts/provider/index.d.mts +2 -2
  31. package/dist/contracts/session/index.d.mts +2 -2
  32. package/dist/contracts/shared/index.d.mts +1 -1
  33. package/dist/contracts/skill/index.d.mts +1 -1
  34. package/dist/contracts/telemetry/index.d.mts +1 -1
  35. package/dist/contracts/timeout/index.d.mts +1 -1
  36. package/dist/contracts/variant/index.d.mts +1 -1
  37. package/dist/{definition-Cp-5xJp_.d.mts → definition-SiimP25_.d.mts} +1 -1
  38. package/dist/{detached-extension-handle-oXbjv1tA.mjs → detached-extension-handle-Diiwgm13.mjs} +1 -1
  39. package/dist/drizzle/0001_messages_content_tsv.na.md +18 -0
  40. package/dist/drizzle/0012_legal_kate_bishop.sql +3 -0
  41. package/dist/drizzle/0013_eager_rhodey.sql +56 -0
  42. package/dist/drizzle/0014_fancy_ultimo.sql +1 -0
  43. package/dist/drizzle/meta/0012_snapshot.json +2934 -0
  44. package/dist/drizzle/meta/0013_snapshot.json +2954 -0
  45. package/dist/drizzle/meta/0014_snapshot.json +2959 -0
  46. package/dist/drizzle/meta/_journal.json +21 -0
  47. package/dist/drizzle-wjquQK2m.mjs +1 -0
  48. package/dist/extension-DfNcE0zm.mjs +1 -0
  49. package/dist/extension-ZBN4BGre.mjs +1 -0
  50. package/dist/{filesystem-service-CBJT7A5w.mjs → filesystem-service-BjfrUmGS.mjs} +1 -1
  51. package/dist/{globby-C0lgTOUl.mjs → globby-BIH65cbN.mjs} +1 -1
  52. package/dist/handler-DSfSAlxx.mjs +1 -0
  53. package/dist/handlers-C8EtpSqK.mjs +41 -0
  54. package/dist/{index-DfUBcVtG.d.mts → index-B2xbnMZe.d.mts} +1 -1
  55. package/dist/{index-uQl_1wQO.d.mts → index-BAhJKQLX.d.mts} +8 -8
  56. package/dist/{index-i7o6FtS0.d.mts → index-BDRKAxIV.d.mts} +129 -2
  57. package/dist/{index-kLBWooVu.d.mts → index-BQiHs8EF.d.mts} +12 -12
  58. package/dist/{index-SFkbbDxs.d.mts → index-BYkOUd0x.d.mts} +1 -1
  59. package/dist/{index-C1uZLARQ.d.mts → index-BvSyOgTY.d.mts} +1314 -46
  60. package/dist/{index-Bw8SkcWG.d.mts → index-Bw_zL7Rs.d.mts} +1 -1
  61. package/dist/{index-CXfWW8cP.d.mts → index-CARxIllg.d.mts} +7 -7
  62. package/dist/{index-t9Vt4Jbb.d.mts → index-Cb64d5c5.d.mts} +6 -6
  63. package/dist/{index-hWzUQtDn.d.mts → index-CgjslA5-.d.mts} +92 -19
  64. package/dist/{index-ClgVA8Rz.d.mts → index-D5CI1V5d.d.mts} +22 -22
  65. package/dist/{index-BY-fz0Jy.d.mts → index-DDQkhhRo.d.mts} +149 -141
  66. package/dist/{index-v2kRZnfw2.d.mts → index-DTdqGAfH2.d.mts} +20 -10
  67. package/dist/{index-CT-zFurA.d.mts → index-Drz_a7kW.d.mts} +1 -1
  68. package/dist/{index-BELri1Hy.d.mts → index-IekAD8Gp.d.mts} +8 -8
  69. package/dist/{index-C_jIVT40.d.mts → index-fVgKVvta.d.mts} +1 -1
  70. package/dist/kernel/cli/index.d.mts +2 -2
  71. package/dist/kernel/cli/register.d.mts +1 -1
  72. package/dist/kernel/extension/index.d.mts +1 -1
  73. package/dist/kernel/extension/index.mjs +1 -1
  74. package/dist/kernel/index.d.mts +5 -5
  75. package/dist/kernel/index.mjs +1 -1
  76. package/dist/kernel/namespace/index.d.mts +1 -1
  77. package/dist/kernel/observability/index.d.mts +1 -1
  78. package/dist/kernel/providers/index.d.mts +1 -1
  79. package/dist/kernel/window/index.d.mts +1 -1
  80. package/dist/{lib-zuQKc8ym.mjs → lib-Cq5R6Tx9.mjs} +1 -1
  81. package/dist/{lib-IkUYa2Qs.mjs → lib-nlcl5kRW.mjs} +1 -1
  82. package/dist/{load-extensions-DE8qDIqi.d.mts → load-extensions-D9nbDIiW.d.mts} +1 -1
  83. package/dist/{load-extensions-CwxilDj1.mjs → load-extensions-wELQ4BBN.mjs} +1 -1
  84. package/dist/mcp-http-server/index.mjs +1 -1
  85. package/dist/{namespace-CZPu_jvy.d.mts → namespace-7tsuJhQ9.d.mts} +66 -66
  86. package/dist/{namespace-ffepZB8Y.d.mts → namespace-B73Sxj5L.d.mts} +6 -6
  87. package/dist/{namespace-Da_dHfdm.d.mts → namespace-Ba4bxtHQ.d.mts} +11 -11
  88. package/dist/{namespace-DvHoeMUV.d.mts → namespace-DDCjoQUj.d.mts} +3 -3
  89. package/dist/namespace-DwE2g8Wm.mjs +1 -0
  90. package/dist/node/bus-server/index.d.mts +1 -1
  91. package/dist/node/bus-server/index.mjs +1 -1
  92. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  93. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  94. package/dist/{orchestrator-shared-FnWrPS09.mjs → orchestrator-shared-Dt4WDse7.mjs} +1 -1
  95. package/dist/package-Be2Ez4vv.mjs +1 -0
  96. package/dist/package.json +1 -1
  97. package/dist/primitive-runtime-Xrc9xh6p.mjs +1 -0
  98. package/dist/registry-RG-bkw3c.mjs +146 -0
  99. package/dist/rules/index.d.mts +1 -1
  100. package/dist/rules/index.mjs +1 -1
  101. package/dist/rules/schemas.d.mts +1 -1
  102. package/dist/runtime-bun/index.mjs +1 -1
  103. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  104. package/dist/runtime-node/extension-validation.d.mts +1 -1
  105. package/dist/runtime-node/extension-validation.mjs +1 -1
  106. package/dist/runtime-node/index.d.mts +59 -38
  107. package/dist/runtime-node/index.mjs +26 -53
  108. package/dist/runtime-node/makaio-config.d.mts +1 -1
  109. package/dist/runtime-node/makaio-config.mjs +1 -1
  110. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  111. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  112. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  113. package/dist/{schema-CfuF2cXW.d.mts → schema-BNrM9LWb.d.mts} +218 -12
  114. package/dist/schema-BerZmr2q.mjs +1 -0
  115. package/dist/schema-BrnYlDwZ.mjs +1 -0
  116. package/dist/{schemas-SPI-Y87l2.d.mts → schemas-DAFYpgHk2.d.mts} +12 -12
  117. package/dist/services/adapter-runtime/index.d.mts +3 -3
  118. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  119. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  120. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  121. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  122. package/dist/services/agent-runtime/index.d.mts +2 -2
  123. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  124. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  125. package/dist/services/capability/index.d.mts +1 -1
  126. package/dist/services/codebase/index.d.mts +2 -2
  127. package/dist/services/codebase/namespace.d.mts +1 -1
  128. package/dist/services/codebase/schemas.d.mts +1 -1
  129. package/dist/services/compression/index.d.mts +2 -2
  130. package/dist/services/compression/namespace.d.mts +1 -1
  131. package/dist/services/compression/schemas.d.mts +1 -1
  132. package/dist/services/context-rules/index.d.mts +4 -4
  133. package/dist/services/execution-target/index.d.mts +3 -3
  134. package/dist/services/execution-target/namespace.d.mts +1 -1
  135. package/dist/services/execution-target/schemas.d.mts +1 -1
  136. package/dist/services/filesystem/index.d.mts +1 -1
  137. package/dist/services/filesystem/index.mjs +1 -1
  138. package/dist/services/filesystem/namespace.d.mts +12 -12
  139. package/dist/services/filesystem/schemas.d.mts +6 -6
  140. package/dist/services/git/namespace.d.mts +2 -2
  141. package/dist/services/git/schemas.d.mts +2 -2
  142. package/dist/services/harness/index.d.mts +32 -20
  143. package/dist/services/harness/index.mjs +1 -1
  144. package/dist/services/harness/storage/schema.d.mts +60 -16
  145. package/dist/services/harness/storage/schema.mjs +1 -1
  146. package/dist/services/index.d.mts +73 -73
  147. package/dist/services/index.mjs +1 -1
  148. package/dist/services/log-import/browser.d.mts +2 -2
  149. package/dist/services/log-import/index.d.mts +7 -12
  150. package/dist/services/log-import/index.mjs +2 -2
  151. package/dist/services/log-import/log-import.d.mts +1 -1
  152. package/dist/services/log-import/namespace.d.mts +2 -2
  153. package/dist/services/log-import/schemas.d.mts +1 -1
  154. package/dist/services/model-registry/index.d.mts +1 -1
  155. package/dist/services/preferences/index.d.mts +2 -2
  156. package/dist/services/preferences/schemas.d.mts +1 -1
  157. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  158. package/dist/services/provider-context/index.d.mts +1 -1
  159. package/dist/services/session/handlers/index.d.mts +1 -1
  160. package/dist/services/session/handlers/index.mjs +1 -1
  161. package/dist/services/session/index.d.mts +10 -10
  162. package/dist/services/session/index.mjs +1 -1
  163. package/dist/services/session/messages/namespace.d.mts +1 -1
  164. package/dist/services/session/messages/namespace.mjs +1 -1
  165. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  166. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  167. package/dist/services/session/session-events/namespace.d.mts +1 -1
  168. package/dist/services/session/session-events/namespace.mjs +1 -1
  169. package/dist/services/session/storage/namespace.d.mts +1 -1
  170. package/dist/services/session/storage/schema.d.mts +2 -2
  171. package/dist/services/session/storage/schema.mjs +1 -1
  172. package/dist/services/session/testing/index.d.mts +18 -2
  173. package/dist/services/session/testing/index.mjs +52 -3
  174. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  175. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  176. package/dist/services/session/turns/namespace.d.mts +1 -1
  177. package/dist/services/session/turns/namespace.mjs +1 -1
  178. package/dist/services/session-editor/index.d.mts +1 -1
  179. package/dist/services/settings/index.d.mts +3 -3
  180. package/dist/services/settings/namespace.d.mts +12 -12
  181. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  182. package/dist/services/settings/storage/index.d.mts +3 -3
  183. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  184. package/dist/services/subagent/index.d.mts +1 -1
  185. package/dist/services/subagent-template/index.d.mts +2 -2
  186. package/dist/services/subagent-template/namespace.d.mts +1 -1
  187. package/dist/services/subagent-template/schemas.d.mts +1 -1
  188. package/dist/services/tool-approval/index.d.mts +1 -1
  189. package/dist/services/tool-approval/index.mjs +1 -1
  190. package/dist/services/tools/index.d.mts +1 -1
  191. package/dist/services/tools/index.mjs +1 -1
  192. package/dist/services/tray-menu/index.d.mts +3 -3
  193. package/dist/services/tray-menu/namespace.d.mts +1 -1
  194. package/dist/services/tray-menu/schemas.d.mts +1 -1
  195. package/dist/services/turn/index.d.mts +1 -1
  196. package/dist/services/turn/namespace.d.mts +1 -1
  197. package/dist/session-KnewDVxt.mjs +39 -0
  198. package/dist/{session-lineage-CxHc3_bm.d.mts → session-lineage-CXzV_hAP.d.mts} +1 -1
  199. package/dist/{src-DI5TcYUW.mjs → src-CBG3IHUl.mjs} +1 -1
  200. package/dist/storage/drizzle/client.d.mts +2 -78
  201. package/dist/storage/drizzle/client.mjs +1 -1
  202. package/dist/storage/drizzle/columns/postgres.d.mts +88 -0
  203. package/dist/storage/drizzle/columns/postgres.mjs +1 -0
  204. package/dist/storage/drizzle/columns/sqlite.d.mts +81 -0
  205. package/dist/storage/drizzle/columns/sqlite.mjs +1 -0
  206. package/dist/storage/drizzle/index.d.mts +976 -23
  207. package/dist/storage/drizzle/index.mjs +1 -1
  208. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  209. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  210. package/dist/storage/handlers/index.d.mts +1 -1
  211. package/dist/storage/handlers/index.mjs +1 -1
  212. package/dist/testing/drizzle-harness.d.mts +52 -6
  213. package/dist/testing/drizzle-harness.mjs +1 -1
  214. package/dist/testing/index.d.mts +34 -2
  215. package/dist/testing/index.mjs +1 -1
  216. package/dist/{tool-approval-service-BgNcJvKx.mjs → tool-approval-service-Cb2F1yT6.mjs} +1 -1
  217. package/dist/tools-D5DVHC-R.mjs +1 -0
  218. package/dist/{types-C5Uy3WEy.d.mts → types-D5IMwOkJ.d.mts} +1 -1
  219. package/dist/{types-CZHV05Lu.d.mts → types-DLVitCZP.d.mts} +51 -51
  220. package/dist/ui-kernel/index.d.mts +1 -1
  221. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  222. package/dist/workflow-engine/index.d.mts +482 -86
  223. package/dist/workflow-engine/index.mjs +1 -1
  224. package/dist/workflow-engine/package.d.mts +1 -1
  225. package/dist/workflow-engine/package.mjs +1 -1
  226. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  227. package/dist/{workflow-worker-hDaQzTBl.mjs → workflow-worker-CK9Sqj7D.mjs} +1 -1
  228. package/package.json +40 -1
  229. package/dist/drizzle-DpjZFY_j.mjs +0 -1
  230. package/dist/extension--5Q190u_.mjs +0 -1
  231. package/dist/extension-DFIZ3FCJ.mjs +0 -1
  232. package/dist/handlers-Bev7-xjL.mjs +0 -41
  233. package/dist/namespace-CDiM5Bcr.mjs +0 -1
  234. package/dist/namespace-h0HIuqx0.mjs +0 -1
  235. package/dist/package-C9wOiMK9.mjs +0 -1
  236. package/dist/primitive-runtime-1Z3JbRUj.mjs +0 -1
  237. package/dist/schema-DCJyzRHe.mjs +0 -1
  238. package/dist/schema-DOnJmAPw.mjs +0 -1
  239. package/dist/session-BnfsJoZi.mjs +0 -134
  240. package/dist/tools-B8d8Iqqx.mjs +0 -1
  241. package/dist/types-yTKQTAok.d.mts +0 -31
  242. /package/dist/{ajv-0JG5NFEd.mjs → ajv-BA2z5ztb.mjs} +0 -0
  243. /package/dist/{await-trigger-CHuOd5co.mjs → await-trigger-DREnXCEJ.mjs} +0 -0
  244. /package/dist/{base-orchestrator-D-S9v5VY.d.mts → base-orchestrator-M5mAB5-w.d.mts} +0 -0
  245. /package/dist/{cleanEnvForAdapter-BlpmyXYk.mjs → cleanEnvForAdapter-vZfPGi0X.mjs} +0 -0
  246. /package/dist/{clients-namespace-E97p_GKF.d.mts → clients-namespace-SFk7OTop.d.mts} +0 -0
  247. /package/dist/{config-namespace-R_34Wfps.d.mts → config-namespace-BzAvE2nY.d.mts} +0 -0
  248. /package/dist/{create-static-mount-B9Szo_7y.mjs → create-static-mount-BB1MIQ9J.mjs} +0 -0
  249. /package/dist/{cross-spawn-CTptpCy4.mjs → cross-spawn-BL6EvJBv.mjs} +0 -0
  250. /package/dist/{cursor-storage-YikwAZR5.mjs → cursor-storage-CmKjSvKY.mjs} +0 -0
  251. /package/dist/{definition-CYzWS2eR.d.mts → definition-BSghHJpQ.d.mts} +0 -0
  252. /package/dist/{definition-CvOuzWNT.d.mts → definition-q6iLw11H.d.mts} +0 -0
  253. /package/dist/{descriptor-to-package-9nrAH_D5.mjs → descriptor-to-package-CY8oc2gl.mjs} +0 -0
  254. /package/dist/{esm-CglYG5aA.mjs → esm-CQVFKEW5.mjs} +0 -0
  255. /package/dist/{extension-discovery-BD1-oNU_.d.mts → extension-discovery-CkV_VRdJ.d.mts} +0 -0
  256. /package/dist/{filesystem-service-BcwRp4k1.d.mts → filesystem-service-Ddngll0j.d.mts} +0 -0
  257. /package/dist/{index-DJQew2k-.d.mts → index-9IDJUJ4X.d.mts} +0 -0
  258. /package/dist/{index-CNYPKkyH.d.mts → index-BBvcP-P0.d.mts} +0 -0
  259. /package/dist/{index-BFaeVdsn2.d.mts → index-BKKNWqkP2.d.mts} +0 -0
  260. /package/dist/{index-Dn9Uum3F.d.mts → index-BMpRB6iE.d.mts} +0 -0
  261. /package/dist/{index-CdNDnxXR.d.mts → index-BbCjtc3h.d.mts} +0 -0
  262. /package/dist/{index-B6RGNugn.d.mts → index-BnQSPC6c.d.mts} +0 -0
  263. /package/dist/{index-DUPZKsd3.d.mts → index-BpXX9WZJ.d.mts} +0 -0
  264. /package/dist/{index-DUhXk_q6.d.mts → index-BpniJgxu.d.mts} +0 -0
  265. /package/dist/{index-ChG8ZUNP.d.mts → index-Bsp0O_sI.d.mts} +0 -0
  266. /package/dist/{index-CmGvjpUG.d.mts → index-BtztOqaF.d.mts} +0 -0
  267. /package/dist/{index-CF7dnqQj.d.mts → index-Buo9H8RK.d.mts} +0 -0
  268. /package/dist/{index-9KnLzPYu.d.mts → index-BxFA1XcP.d.mts} +0 -0
  269. /package/dist/{index-AZ4iLe7O2.d.mts → index-C33Tq1ei2.d.mts} +0 -0
  270. /package/dist/{index--0CnhN0g.d.mts → index-C6BhKRnH.d.mts} +0 -0
  271. /package/dist/{index-BV8rSmDZ.d.mts → index-CDU_s69P.d.mts} +0 -0
  272. /package/dist/{index-BDlpFEsp2.d.mts → index-CGJjA-hR2.d.mts} +0 -0
  273. /package/dist/{index-Dsu1tPHm.d.mts → index-CZ_TcT6J.d.mts} +0 -0
  274. /package/dist/{index-DNGUXQGC.d.mts → index-Cz9JMjZK.d.mts} +0 -0
  275. /package/dist/{index-C-YBGCCG.d.mts → index-D0SUjZmU.d.mts} +0 -0
  276. /package/dist/{index-yNb7G73-.d.mts → index-D6Iyvz9T.d.mts} +0 -0
  277. /package/dist/{index-ziQTLYUO.d.mts → index-DOfq0qqv.d.mts} +0 -0
  278. /package/dist/{index-BYxgW2i0.d.mts → index-DSV1aFgK.d.mts} +0 -0
  279. /package/dist/{index-Dbwm5Y-Q.d.mts → index-Dsq2zKvu.d.mts} +0 -0
  280. /package/dist/{jsonl-transport-DBHQgcIm.mjs → jsonl-transport-C21tpVfe.mjs} +0 -0
  281. /package/dist/{lib-CaOdTS9F.mjs → lib-CNOQJtgs.mjs} +0 -0
  282. /package/dist/{namespace-DnZ4rS6T2.d.mts → namespace-B60mn8J-2.d.mts} +0 -0
  283. /package/dist/{namespace-DfYutvMT.d.mts → namespace-BBVtD1gu.d.mts} +0 -0
  284. /package/dist/{namespace-BaJJxBsI.d.mts → namespace-CHMszppN.d.mts} +0 -0
  285. /package/dist/{namespace-uGw5nK6d.d.mts → namespace-CqUGzG53.d.mts} +0 -0
  286. /package/dist/{namespace-Dik_dNeE.d.mts → namespace-D1Iw_d1P.d.mts} +0 -0
  287. /package/dist/{namespace-13uMtVGj.d.mts → namespace-DRFJN-_z.d.mts} +0 -0
  288. /package/dist/{namespace-TfZGCy7N.d.mts → namespace-DzVf1hVH.d.mts} +0 -0
  289. /package/dist/{namespace-QTFnJWHC.d.mts → namespace-XTGCaSXj.d.mts} +0 -0
  290. /package/dist/{namespace-CTrNKkxY.d.mts → namespace-nlsvvMtD.d.mts} +0 -0
  291. /package/dist/{namespace-DkDvQJhB.d.mts → namespace-uuR0Fg5r.d.mts} +0 -0
  292. /package/dist/{orchestrator-shared-BZVeoRfr.d.mts → orchestrator-shared-D91Wk7z-.d.mts} +0 -0
  293. /package/dist/{out-CiFds_ap.mjs → out-C1JFb2Bp.mjs} +0 -0
  294. /package/dist/{package-B2HkKyRz.d.mts → package-BSnp1zOR.d.mts} +0 -0
  295. /package/dist/{providers-namespace-Cc9FQ-Zt.d.mts → providers-namespace-BqWYkydw.d.mts} +0 -0
  296. /package/dist/{schemas-BD-1NGmS.d.mts → schemas-B5ToLwIs.d.mts} +0 -0
  297. /package/dist/{schemas-Hy-lsBpg.d.mts → schemas-B77Gi8Xr.d.mts} +0 -0
  298. /package/dist/{schemas-BzK1I1eX.d.mts → schemas-C792eVAZ.d.mts} +0 -0
  299. /package/dist/{schemas-CYS6bkht.d.mts → schemas-Chyj6HuZ.d.mts} +0 -0
  300. /package/dist/{schemas-BiMxSTUx.d.mts → schemas-CkOSG2eJ.d.mts} +0 -0
  301. /package/dist/{schemas-DL_bGYyZ.d.mts → schemas-DZUaRcYl.d.mts} +0 -0
  302. /package/dist/{schemas-DdZwjeF0.d.mts → schemas-Dv5FxHDT.d.mts} +0 -0
  303. /package/dist/{schemas-CsjB6gel.d.mts → schemas-Dyk7JuVl.d.mts} +0 -0
  304. /package/dist/{schemas-DFWGb4uj.d.mts → schemas-Kq33MTPY.d.mts} +0 -0
  305. /package/dist/{schemas-BFeP62V4.d.mts → schemas-lqvZ6UpK.d.mts} +0 -0
  306. /package/dist/{server-lifecycle-DVAbXQzg.d.mts → server-lifecycle-47mygK3E.d.mts} +0 -0
  307. /package/dist/{server-lifecycle-JTFuSJhg.mjs → server-lifecycle-Cg47L59Q.mjs} +0 -0
  308. /package/dist/{src-4_2jBceX.mjs → src-DedDL9iv.mjs} +0 -0
  309. /package/dist/{storage-namespace-I30TaZP7.d.mts → storage-namespace-BXmMUd7a.d.mts} +0 -0
  310. /package/dist/{storage-namespace-definition-ZNBL3v2h.d.mts → storage-namespace-definition-C3XbpiP8.d.mts} +0 -0
  311. /package/dist/{types-11QnNmpW.d.mts → types-5Gw3iVpK.d.mts} +0 -0
  312. /package/dist/{types-BKNpS4Xw.d.mts → types-B0BtvVAq.d.mts} +0 -0
  313. /package/dist/{types-0u6hpELc.d.mts → types-BMpIa4fx.d.mts} +0 -0
  314. /package/dist/{types-BtMNh2FS.d.mts → types-D-bP8RRE.d.mts} +0 -0
  315. /package/dist/{window-registry-QD1rTk_f.d.mts → window-registry-CfEi_Ji4.d.mts} +0 -0
@@ -1,2 +1,2 @@
1
- import { i as ProviderStorageSubjects, n as ProviderRecordSchema, r as ProviderStorageNamespace, t as ProviderRecord } from "../../../providers-namespace-Cc9FQ-Zt.mjs";
1
+ import { i as ProviderStorageSubjects, n as ProviderRecordSchema, r as ProviderStorageNamespace, t as ProviderRecord } from "../../../providers-namespace-BqWYkydw.mjs";
2
2
  export { ProviderRecord, ProviderRecordSchema, ProviderStorageNamespace, ProviderStorageSubjects };
@@ -1,2 +1,2 @@
1
- import { a as InternalPendingRequest, c as SubagentServiceToken, d as SpawnDelegationAllowSet, f as isPeerAuthorizedToDelegate, i as InputResolver, l as subagentServicePackage, n as TrackOptions, o as SpawnOptions, r as AwaitResult, s as TrackedSubagent, t as SubagentManager, u as SubagentService } from "../../index-BFaeVdsn2.mjs";
1
+ import { a as InternalPendingRequest, c as SubagentServiceToken, d as SpawnDelegationAllowSet, f as isPeerAuthorizedToDelegate, i as InputResolver, l as subagentServicePackage, n as TrackOptions, o as SpawnOptions, r as AwaitResult, s as TrackedSubagent, t as SubagentManager, u as SubagentService } from "../../index-BKKNWqkP2.mjs";
2
2
  export { AwaitResult, InputResolver, InternalPendingRequest, SpawnDelegationAllowSet, SpawnOptions, SubagentManager, SubagentService, SubagentServiceToken, TrackOptions, TrackedSubagent, isPeerAuthorizedToDelegate, subagentServicePackage };
@@ -1,3 +1,3 @@
1
- import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-SPI-Y87l2.mjs";
2
- import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-DnZ4rS6T2.mjs";
1
+ import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-DAFYpgHk2.mjs";
2
+ import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-B60mn8J-2.mjs";
3
3
  export { type SubagentTemplate, SubagentTemplateCompletedEventSchema, type SubagentTemplateCreate, SubagentTemplateCreateSchema, type SubagentTemplateInstance, SubagentTemplateInstanceSchema, type SubagentTemplateInstanceStatus, SubagentTemplateInstanceStatusSchema, SubagentTemplateKernelNamespace, SubagentTemplateKernelSchemas, SubagentTemplateSchema, SubagentTemplateSettingsSchemas, type SubagentTemplateSpawnRequest, SubagentTemplateSpawnRequestSchema, SubagentTemplateSpawnedEventSchema, SubagentTemplateSubjects, type SubagentTemplateSummary, SubagentTemplateSummarySchema, type SubagentTemplateUpdate, SubagentTemplateUpdateSchema };
@@ -1,2 +1,2 @@
1
- import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-DnZ4rS6T2.mjs";
1
+ import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-B60mn8J-2.mjs";
2
2
  export { SubagentTemplateKernelNamespace, SubagentTemplateSubjects };
@@ -1,2 +1,2 @@
1
- import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-SPI-Y87l2.mjs";
1
+ import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-DAFYpgHk2.mjs";
2
2
  export { SubagentTemplate, SubagentTemplateCompletedEventSchema, SubagentTemplateCreate, SubagentTemplateCreateSchema, SubagentTemplateInstance, SubagentTemplateInstanceSchema, SubagentTemplateInstanceStatus, SubagentTemplateInstanceStatusSchema, SubagentTemplateKernelSchemas, SubagentTemplateSchema, SubagentTemplateSettingsSchemas, SubagentTemplateSpawnRequest, SubagentTemplateSpawnRequestSchema, SubagentTemplateSpawnedEventSchema, SubagentTemplateSummary, SubagentTemplateSummarySchema, SubagentTemplateUpdate, SubagentTemplateUpdateSchema };
@@ -1,2 +1,2 @@
1
- import { t as ToolApprovalService } from "../../index-DNGUXQGC.mjs";
1
+ import { t as ToolApprovalService } from "../../index-Cz9JMjZK.mjs";
2
2
  export { ToolApprovalService };
@@ -1 +1 @@
1
- import{t as e}from"../../tool-approval-service-BgNcJvKx.mjs";export{e as ToolApprovalService};
1
+ import{t as e}from"../../tool-approval-service-Cb2F1yT6.mjs";export{e as ToolApprovalService};
@@ -1,2 +1,2 @@
1
- import { a as createToolContributionProcessor, c as ToolRegistryOptions, d as ToolsetPolicy, f as ToolsetPolicyProvider, i as extractToolFilePath, l as ToolsWithToolsetsResult, n as FileAccessRuleProvider, o as ToolRegistry, r as FileAccessRules, s as ListToolsFilter, t as FILE_ACCESS_RULES_KEY, u as ToolsetInfo } from "../../index-9KnLzPYu.mjs";
1
+ import { a as createToolContributionProcessor, c as ToolRegistryOptions, d as ToolsetPolicy, f as ToolsetPolicyProvider, i as extractToolFilePath, l as ToolsWithToolsetsResult, n as FileAccessRuleProvider, o as ToolRegistry, r as FileAccessRules, s as ListToolsFilter, t as FILE_ACCESS_RULES_KEY, u as ToolsetInfo } from "../../index-BxFA1XcP.mjs";
2
2
  export { FILE_ACCESS_RULES_KEY, FileAccessRuleProvider, FileAccessRules, ListToolsFilter, ToolRegistry, ToolRegistryOptions, ToolsWithToolsetsResult, ToolsetInfo, ToolsetPolicy, ToolsetPolicyProvider, createToolContributionProcessor, extractToolFilePath };
@@ -1 +1 @@
1
- import{B as e,n as t,r as n,t as r}from"../../tools-B8d8Iqqx.mjs";export{r as FILE_ACCESS_RULES_KEY,e as ToolRegistry,n as createToolContributionProcessor,t as extractToolFilePath};
1
+ import{B as e,n as t,r as n,t as r}from"../../tools-D5DVHC-R.mjs";export{r as FILE_ACCESS_RULES_KEY,e as ToolRegistry,n as createToolContributionProcessor,t as extractToolFilePath};
@@ -1,4 +1,4 @@
1
- import { t as TrayMenuService } from "../../index-Dn9Uum3F.mjs";
2
- import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-BFeP62V4.mjs";
3
- import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-uGw5nK6d.mjs";
1
+ import { t as TrayMenuService } from "../../index-BMpRB6iE.mjs";
2
+ import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-lqvZ6UpK.mjs";
3
+ import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-CqUGzG53.mjs";
4
4
  export { TrayMenuEntry, TrayMenuEntrySchema, TrayMenuGroup, TrayMenuGroupEntrySchema, TrayMenuGroupSchema, TrayMenuItemClicked, TrayMenuItemClickedSchema, TrayMenuListEntry, TrayMenuListEntrySchema, TrayMenuMetadataSchema, TrayMenuNamespace, TrayMenuSchemas, TrayMenuSectionSchema, TrayMenuService, TrayMenuSubjects };
@@ -1,2 +1,2 @@
1
- import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-uGw5nK6d.mjs";
1
+ import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-CqUGzG53.mjs";
2
2
  export { TrayMenuNamespace, TrayMenuSubjects };
@@ -1,2 +1,2 @@
1
- import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-BFeP62V4.mjs";
1
+ import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-lqvZ6UpK.mjs";
2
2
  export { TrayMenuEntry, TrayMenuEntrySchema, TrayMenuGroup, TrayMenuGroupEntrySchema, TrayMenuGroupSchema, TrayMenuItemClicked, TrayMenuItemClickedSchema, TrayMenuListEntry, TrayMenuListEntrySchema, TrayMenuMetadataSchema, TrayMenuSchemas, TrayMenuSectionSchema };
@@ -1,2 +1,2 @@
1
- import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-Dik_dNeE.mjs";
1
+ import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-D1Iw_d1P.mjs";
2
2
  export { TurnStorageNamespace, TurnStorageSubjects };
@@ -1,2 +1,2 @@
1
- import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-Dik_dNeE.mjs";
1
+ import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-D1Iw_d1P.mjs";
2
2
  export { TurnStorageNamespace, TurnStorageSubjects };
@@ -0,0 +1,39 @@
1
+ import{agents as e,agentsDual as t,sessions as n,sessionsDual as r}from"./services/session/storage/schema.mjs";import"./schema-BerZmr2q.mjs";import{a as i,i as a,n as o,o as s,r as c}from"./namespace-DwE2g8Wm.mjs";import{SessionStorageSubjects as l}from"./services/session/storage/namespace.mjs";import{A as u,D as d,E as f,F as p,O as m,T as h,b as g,d as _,f as v,j as y,k as b,u as ee,v as te}from"./handlers-C8EtpSqK.mjs";import{TurnStorageSubjects as x}from"./services/turn/namespace.mjs";import{AdapterRuntimeSubjects as ne}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as S}from"./services/session/messages/namespace.mjs";import{n as C}from"./namespace-D6X67cUk.mjs";import{z as w}from"zod";import{MakaioBus as T,NoHandlerError as re}from"@makaio/framework/bus";import{AdapterSubjects as E,AgentSubjects as D,CanonicalModelSubjects as ie,CompressionModeSchema as ae,ForkTransformsSchema as oe,MessageRoutingSchema as se,SessionContextSchema as ce,SessionDiscoveredSchema as le,SessionStorageSetRequestSchema as ue,SessionStorageUpdateSchema as de,SessionSubjects as O,compareMessageCursorAsc as fe,compareMessageCursorDesc as pe,isCanonicalModelParseError as me,messageToCursor as k,parseCanonicalModel as he}from"@makaio/framework/contracts";import{BaseService as ge}from"@makaio/framework/service-base";import{blob as _e,index as ve,integer as ye,primaryKey as be,sqliteTable as xe,text as Se,uniqueIndex as Ce}from"drizzle-orm/sqlite-core";import{index as we,primaryKey as Te}from"drizzle-orm/pg-core";import{defineDialectSchema as A,defineDualTable as Ee,didAffectRows as j,getRawSqlExecutor as De,getStorageEngine as Oe,resolveSchema as M,resolveStorageEngine as N}from"@makaio/framework/storage/drizzle";import{and as P,asc as F,count as I,desc as L,eq as R,gt as ke,gte as Ae,inArray as z,isNull as B,lt as je,lte as Me,or as Ne,sql as V}from"drizzle-orm";import{createStorageNamespaceDefinition as Pe}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Fe}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Ie}from"@makaio/framework/adapters";function Le(e){return e.on(O.agent.added,async t=>{let n=await e.requestOptional(l.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(l.set,{sessionId:t.payload.sessionId,session:r}))})}function Re(e){return e.on(O.agent.removed,async t=>{let n=await e.requestOptional(l.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(await e.requestOptional(p.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),r.leadAgentId===t.payload.agentId&&(r.leadAgentId=void 0),r.lastActivityAt=Date.now(),await e.request(l.set,{sessionId:t.payload.sessionId,session:r}))})}function ze(e){return[Be(e),Ve(e),He(e),Ue(e),We(e),Ge(e),Ke(e),Le(e.bus),Re(e.bus)]}function Be(e){let{bus:t}=e;return t.on(O.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:u,executionTargetId:d,spawningToolCallId:f,originWindowId:p}=e.payload,m=n??crypto.randomUUID(),h=Date.now(),g={sessionId:m,createdAt:h,lastActivityAt:h,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:u,executionTargetId:d,spawningToolCallId:f},_=await t.requestOptional(l.set,{sessionId:m,session:g,ifAbsent:!0});if(_.handled&&!_.data.success){e.setResult({sessionId:m});return}await t.emit(O.created,{sessionId:m,createdAt:g.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:m})})}function Ve(e){let{bus:t}=e;return t.on(O.get,async e=>{let n=await t.requestOptional(l.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function He(e){let{bus:t}=e;return t.on(O.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(l.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],u=s.handled?s.data.total:0;e.setResult({sessions:c,total:u})})}function Ue(e){let{bus:t}=e;return t.on(O.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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(l.set,{sessionId:n,session:i}),await t.emit(O.closed,{sessionId:n}),e.setResult({success:!0})})}function We(e){let{bus:t}=e;return t.on(O.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}=e.payload,o=await t.requestOptional(l.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}),s=o.handled?o.data.success:!1;if(s){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),e.length>0&&await t.emit(O.updated,{sessionId:n,changedProperties:e})}e.setResult({success:s})})}function Ge(e){let{bus:t}=e;return t.on(O.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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(l.set,{sessionId:n,session:i}),await t.emit(O.archived,{sessionId:n}),e.setResult({success:!0})})}function Ke(e){let{bus:t}=e;return t.on(O.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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 a=await t.requestOptional(l.list,{status:`all`}),s=a.handled?a.data.sessions:[];for(let e of s)e.parentSessionId===n&&await t.requestOptional(l.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(o.getEvents,{sessionId:n,options:{limit:1}}),u=c.handled?c.data.totalCount:0;await t.requestOptional(o.deleteBySession,{sessionId:n}),await t.requestOptional(l.delete,{sessionId:n}),await t.emit(O.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:u})})}var qe=class extends ge{constructor(e=T){super(e)}async onInit(){for(let e of ze({bus:this.bus}))this.addCleanup(e);await this.reconcileOrphanedTurns()}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(x.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(x.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});t&&await this.bus.emit(O.turn.completed,{sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`})}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function Je(e){return Error(`No adapter found for adapterName="${e}". Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}var Ye=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(E.initialized,e=>{this.registry.set(e.payload.adapterName,e.payload.adapterId)})}resolve(e){let t=this.registry.get(e);if(!t)throw Je(e);return t}async resolveAvailable(e){try{let{adapterId:t}=await this.bus.request(ne.resolveId,{adapterName:e});return this.registry.set(e,t),t}catch{let t=this.registry.get(e);if(t)return t;throw Je(e)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};function Xe(e,t,n,r){return e.on(o.append,e=>{let{event:i}=e.payload,a=t.get(i.sessionId)??[];if(n.has(i.eventId)){e.setResult({success:!0});return}a.push(i),t.set(i.sessionId,a),n.set(i.eventId,r()),e.setResult({success:!0})})}function Ze(e,t,n){return e.on(o.getEvents,e=>{let{sessionId:r,options:i}=e.payload,a=t.get(r)??[],o=i?.order??`asc`,s=o===`desc`?[...a].reverse():a,c=0;if(i?.after&&/^\d+$/.test(i.after)){let t=Number(i.after),r=s.findIndex(e=>{let r=n.get(e.eventId)??-1;return o===`desc`?r<t:r>t});if(r===-1){e.setResult({events:[],nextCursor:null,totalCount:a.length});return}c=r}let l=s.slice(c);if(i?.types&&i.types.length>0){let e=new Set(i.types);l=l.filter(t=>e.has(t.type))}let u=i?.limit??100,d=l.length>u,f=l.slice(0,u),p=null;if(d&&f.length>0){let e=f[f.length-1],t=n.get(e.eventId);t!==void 0&&(p=t.toString())}e.setResult({events:f,nextCursor:p,totalCount:a.length})})}function Qe(e,t){return e.on(o.getByIds,e=>{let{sessionId:n,eventIds:r}=e.payload,i=t.get(n)??[],a=new Set(r),o=i.filter(e=>a.has(e.eventId));e.setResult({events:o})})}function $e(e,t,n){return e.on(o.deleteBySession,e=>{let{sessionId:r}=e.payload,i=t.get(r);if(i)for(let e of i)n.delete(e.eventId);let a=i?.length??0;t.delete(r),e.setResult({success:!0,deletedCount:a})})}function et(e,t){return e.on(o.getEventsBySessions,e=>{let{sessionIds:n,types:r,limitPerSession:i=50}=e.payload;if(n.length===0||r.length===0){e.setResult({eventsBySession:{}});return}let a=new Set(r),o={};for(let e of n){let n=(t.get(e)??[]).filter(e=>a.has(e.type)).reverse().slice(0,i);n.length>0&&(o[e]=n)}e.setResult({eventsBySession:o})})}function tt(e){let t=new Map,n=new Map,r=1,i=[Xe(e,t,n,()=>r++),Ze(e,t,n),Qe(e,t),$e(e,t,n),et(e,t)];return()=>i.forEach(e=>e())}const nt=a.postgres,rt=A({sessionEvents:c},{sessionEvents:nt}),it=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function at(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))it.includes(e)||(n[e]=r);return n}function ot(e){let t=JSON.parse(e.payload),n=e.type===`message`?e.messageId:e.originatingMessageId,r={...t,sessionId:e.sessionId,...e.agentId&&{agentId:e.agentId},...e.adapterId&&{adapterId:e.adapterId},...n&&{messageId:n},...e.type===`message`?{turnId:e.turnId??null}:e.turnId&&{turnId:e.turnId}};return{sessionId:e.sessionId,eventId:e.eventId,timestamp:e.timestamp,type:e.type,payload:r}}function st(e){switch(e.type){case`user_message.sent`:{let t=e.payload.content;return typeof t==`string`?t:(Array.isArray(t.blocks)?t.blocks:[t.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
2
+ `)}case`agent.added`:case`user_message.acknowledged`:case`user_message.completed`:case`turn.started`:case`turn.completed`:case`message`:case`branch.created`:case`branch.merged`:case`squash`:return null;default:return ct(e.payload)}}function ct(e){let t=e.contentText;if(typeof t==`string`&&t.length>0)return t;let n=e.summary;return typeof n==`string`&&n.length>0?n:null}function lt({bus:e,db:t,sessionEvents:n}){return e.on(o.append,async e=>{let{event:r}=e.payload,i=`payload`in r&&`agentId`in r.payload?r.payload.agentId:null,a=`payload`in r&&`adapterId`in r.payload?r.payload.adapterId:null,o=`payload`in r&&`turnId`in r.payload?r.payload.turnId:null,s=`payload`in r&&`messageId`in r.payload?r.payload.messageId:null,c=r.type===`message`?s:null,l=r.type===`message`?null:s,u={sessionId:r.sessionId,eventId:r.eventId,timestamp:r.timestamp,type:r.type,agentId:i,adapterId:a,messageId:c,originatingMessageId:l,turnId:o,contentText:st(r),payload:JSON.stringify(at(r))};await t.insert(n).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function ut({bus:e,db:t,sessionEvents:n}){return e.on(o.getEvents,async e=>{let{sessionId:r,options:i}=e.payload,a=[R(n.sessionId,r)],o=i?.order??`asc`;if(i?.after){let e=parseInt(i.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(je(n.id,e)):a.push(ke(n.id,e)))}i?.types&&i.types.length>0&&a.push(z(n.type,i.types));let s=i?.limit??100,c=o===`desc`?L:F,l=await t.select().from(n).where(P(...a)).orderBy(c(n.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(ot),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function dt({bus:e,db:t,sessionEvents:n}){return e.on(o.getByIds,async e=>{let{sessionId:r,eventIds:i}=e.payload,a=(await t.select().from(n).where(P(R(n.sessionId,r),z(n.eventId,i))).orderBy(F(n.timestamp))).map(ot);e.setResult({events:a})})}function ft({bus:e,db:t,sessionEvents:n}){return e.on(o.deleteBySession,async e=>{let{sessionId:r}=e.payload,i=(await t.select().from(n).where(R(n.sessionId,r))).length;await t.delete(n).where(R(n.sessionId,r)),e.setResult({success:!0,deletedCount:i})})}function pt({bus:e,db:t,sessionEvents:n}){return e.on(o.getEventsBySessions,async e=>{let{sessionIds:r,types:i,limitPerSession:a=50}=e.payload;if(r.length===0||i.length===0){e.setResult({eventsBySession:{}});return}let o={};for(let e of r){let r=await t.select().from(n).where(P(R(n.sessionId,e),z(n.type,i))).orderBy(L(n.timestamp)).limit(a);r.length>0&&(o[e]=r.map(ot))}e.setResult({eventsBySession:o})})}function mt(e,t,n){let{sessionEvents:r}=M(t,rt),i={bus:e,db:t,sessionEvents:r},a=[lt(i),ut(i),dt(i),ft(i),pt(i)];return()=>a.forEach(e=>e())}async function H(e,t){e.emit(S.stored,{message:structuredClone(t)});try{await e.request(o.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 U(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 ht(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.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 H(t,s)})}function gt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?L:F,l=n.select().from(r).where(R(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Ne(je(r.timestamp,a.timestamp),P(R(r.timestamp,a.timestamp),o?Me(r.messageId,a.messageId):je(r.messageId,a.messageId))):Ne(ke(r.timestamp,a.timestamp),P(R(r.timestamp,a.timestamp),o?Ae(r.messageId,a.messageId):ke(r.messageId,a.messageId)));l=n.select().from(r).where(P(R(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?k(p[p.length-1]):null;e.setResult({messages:p.map(U),nextCursor:m})})}function _t(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(R(r.turnId,t)).orderBy(F(r.timestamp));e.setResult({messages:i.map(U)})})}function vt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(R(r.messageId,t)).limit(1);e.setResult({message:i?U(i):null})})}function yt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s),i=N(n).fts;return t.on(S.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(U),total:l})})}function bt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s),i=N(n).fts;return t.on(S.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 xt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(R(r.adapterMessageId,t)).limit(1);e.setResult({message:i?U(i):null})})}function St(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.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}).from(r).where(R(r.adapterMessageId,i)).limit(1);if(m){e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();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}),e.setResult({messageId:h,created:!0}),await H(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 Ct(e,t,n){let r={bus:e,db:t},i=[ht(r),gt(r),_t(r),vt(r),yt(r),bt(r),St(r),xt(r)];return()=>i.forEach(e=>e())}function wt(e,t){return fe(k(e),k(t))}function Tt(e,t){return pe(k(e),k(t))}function Et(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Dt(t,n,r,i),o=[Ot(e,t,a),kt(e,t,n),At(e,t,r),jt(e,t),Mt(e,t),Nt(e,i,a),Pt(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Dt(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&&r.set(i.adapterMessageId,i.messageId)}}function Ot(e,t,n){return e.on(S.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 H(e,o)})}function kt(e,t,n){return e.on(S.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`?Tt:wt,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?pe(k(e),a):fe(k(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?k(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function At(e,t,n){return e.on(S.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(wt);e.setResult({messages:i})})}function jt(e,t){return e.on(S.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function Mt(e,t){return e.on(S.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(wt),e.setResult({messages:c.slice(0,a),total:c.length})})}function Nt(e,t,n){return e.on(S.upsertByAdapterMessageId,async r=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=r.payload,m=t.get(i);if(m){r.setResult({messageId:m,created:!1});return}let h=crypto.randomUUID(),g={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};n(g),r.setResult({messageId:h,created:!0}),await H(e,g)})}function Pt(e,t,n,r,i){return e.on(l.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)}n.adapterMessageId&&i.delete(n.adapterMessageId)}}n.delete(a)})}const Ft=Ee(`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=>[be({columns:[e.messageId,e.agentId,e.status]}),ve(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[Te({columns:[e.messageId,e.agentId,e.status]}),we(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),It=Ft.sqlite,Lt=Pe(`messageRouting`,{schemas:{record:{request:se,response:w.object({success:w.boolean()})},getByMessage:{request:w.object({messageId:w.string()}),response:w.object({routing:w.array(se)})},getCompleted:{request:w.object({messageId:w.string()}),response:w.object({agentIds:w.array(w.string())})},isComplete:{request:w.object({messageId:w.string(),targetAgentIds:w.array(w.string())}),response:w.object({complete:w.boolean(),pending:w.array(w.string())})}},extensions:{drizzle:{messageRouting:It}}}),W=Lt.subjects,Rt=Ft.postgres,zt=A({messageRouting:It},{messageRouting:Rt});function Bt(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function Vt(e,t,n){let{messageRouting:r}=M(t,zt),i=[];return i.push(e.on(W.record,async e=>{let{messageId:n,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(r).values({messageId:n,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[r.messageId,r.agentId,r.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),i.push(e.on(W.getByMessage,async e=>{let{messageId:n}=e.payload,i=await t.select().from(r).where(R(r.messageId,n));e.setResult({routing:i.map(Bt)})})),i.push(e.on(W.getCompleted,async e=>{let{messageId:n}=e.payload,i=await t.select().from(r).where(P(R(r.messageId,n),R(r.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),i.push(e.on(W.isComplete,async e=>{let{messageId:n,targetAgentIds:i}=e.payload,a=await t.select().from(r).where(P(R(r.messageId,n),R(r.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})})),()=>i.forEach(e=>e())}var Ht=class{byAgent=new Map;add(e){let t=this.byAgent.get(e.agentId);t?(t.inputTokens+=e.inputTokens,t.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,outputTokens:e.outputTokens})}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n={};for(let[r,i]of this.byAgent)e+=i.inputTokens,t+=i.outputTokens,n[r]={...i};return{total:{inputTokens:e,outputTokens:t},byAgent:n}}flush(){let e=this.snapshot();return this.byAgent.clear(),e}clear(){this.byAgent.clear()}},Ut=class{bus;activeTurns=new Map;usageAccumulators=new Map;completingSessions=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;cleanups=[];constructor(e){this.bus=e}async createTurn(e,t,n,r){let i=await this.bus.requestOptional(x.create,{sessionId:e,...r!==void 0&&{turnId:r}}),a,o;if(i.handled)a=i.data.turn.turnId,o=i.data.turn.turnNumber;else{a=r??crypto.randomUUID();let t=(this.syntheticTurnCounters.get(e)??0)+1;this.syntheticTurnCounters.set(e,t),o=t}let s=new y({sessionId:e,agentIds:t,turnId:a,turnNumber:o,initiator:n});return this.activeTurns.set(e,s),this.usageAccumulators.set(e,new Ht),s}registerCompletionHandlers(e){this.cleanups.push(this.bus.on(D.usage,e=>{let{agentId:t,turnId:n,inputTokens:r,outputTokens:i}=e.payload;if(!n){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${t}).`);return}let a=this.findActiveTurnByTurnId(n);if(!a){console.warn(`[SessionTurnManager] Dropping usage for inactive turn ${n} (agentId=${t}).`);return}if(!a.hasAgent(t)){console.warn(`[SessionTurnManager] Dropping usage for turn ${n}: agent ${t} is not part of the turn.`);return}if(this.completingSessions.has(a.sessionId)){this.bufferUsageDuringCompletion(a.sessionId,{agentId:t,inputTokens:r,outputTokens:i});return}this.usageAccumulators.get(a.sessionId)?.add({agentId:t,inputTokens:r,outputTokens:i})})),this.cleanups.push(this.bus.on(D.complete,async t=>{let{agentId:n,outcome:r,error:i}=t.payload,a=r!==`error`;await this.handleAgentCompletion(n,a,a?void 0:i,e)}))}async completeTurn(e,t){if(this.completingSessions.has(e.sessionId))return;this.completingSessions.add(e.sessionId);let n=this.usageAccumulators.get(e.sessionId),r=n?.snapshot();try{await this.bus.requestOptional(x.complete,{turnId:e.turnId,status:t.success?`completed`:`error`,error:t.errors.length>0?t.errors.join(`; `):void 0,...r!==void 0&&{usage:r}});let i=this.bufferedUsageDuringCompletion.get(e.sessionId)??[];if(i.length>0){for(let e of i)n?.add(e);this.bufferedUsageDuringCompletion.delete(e.sessionId);let r=n?.snapshot();await this.bus.requestOptional(x.complete,{turnId:e.turnId,status:t.success?`completed`:`error`,error:t.errors.length>0?t.errors.join(`; `):void 0,...r!==void 0&&{usage:r}})}}catch(t){throw this.completingSessions.delete(e.sessionId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}n?.clear(),this.activeTurns.delete(e.sessionId),this.usageAccumulators.delete(e.sessionId),this.completingSessions.delete(e.sessionId),await this.bus.emit(O.turn.completed,{sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0,initiator:e.initiator})}getActiveTurn(e){return this.activeTurns.get(e)}getActiveTurnsMap(){return this.activeTurns}findActiveTurnByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.activeTurns.clear(),this.usageAccumulators.clear(),this.completingSessions.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear()}async handleAgentCompletion(e,t,n,r){let i=f(this.activeTurns,e);if(!i)return;let a=t?i.markAgentCompleted(e):i.markAgentErrored(e,n??`Unknown error`);for(let r of i.messageIds)await this.bus.emit(O.user_message.completed,{sessionId:i.sessionId,turnId:i.turnId,turnNumber:i.turnNumber,messageId:r,agentId:e,outcome:t?`completed`:`error`,error:n});a.turnComplete&&await r(i,a.result)}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}},Wt=class{bus;turnManager;adapterRegistry;cleanups=[];constructor(e=T,t){this.bus=e,this.turnManager=new Ut(e),this.adapterRegistry=new Ye(e),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(O.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=h(o,e.payload.extensionId),l=e.payload.sessionContext?ce.parse(e.payload.sessionContext):void 0,{sessionId:f,session:p}=await d(this.bus,t,l,e.payload.originWindowId);if(p.agents.length===0){let e=await this.resolveInitialAdapterSelection(a,f,n,l),t=await this.resolveAdapterName(e,f),r=_(e.adapterId)??await this.adapterRegistry.resolveAvailable(t),i=await this.bus.request(E.startAgent,{adapterId:r,sessionId:f,role:`lead`,...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},...l!==void 0&&{sessionContext:l}});if(!i.success)throw Error(`[SessionOrchestrator.sendMessage] Failed to start agent (sessionId=${f}, adapterName=${t}): ${i.message}`);let o=Date.now();p.agents.push({agentId:i.agentId,adapterId:i.adapterId,adapterName:t,sessionId:f,role:`lead`,status:`idle`,createdAt:o,lastActivityAt:o}),p.leadAgentId=i.agentId}let g=m(p,r);if(g.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${f})`);let v=new Set;for(let e of g){let t=await this.bus.requestOptional(E.getAgent,{agentId:e.agentId,adapterId:e.adapterId});t.handled&&t.data.agent===null&&v.add(e.agentId)}let y;if(v.size>0){y=await te(this.bus,p);for(let e of g)v.has(e.agentId)&&await this.bus.requestOptional(E.rehydrateAgent,{agentId:e.agentId,adapterId:e.adapterId})}let x=this.turnManager.getActiveTurn(f),ne=!x;x||=await this.turnManager.createTurn(f,g.map(e=>e.agentId),c,e.payload.turnId);let C=crypto.randomUUID();x.addMessage(C);let w=u(n);this.bus.requestOptional(S.append,{message:{messageId:C,turnId:x.turnId,sessionId:f,role:`user`,contentText:b(n),blocks:w,timestamp:Date.now(),...s!==void 0&&{origin:s}}}).catch(e=>{console.warn(`[SessionOrchestrator] Failed to store user message`,{sessionId:f,messageId:C,error:e instanceof Error?e.message:String(e)})});for(let e of g)this.bus.requestOptional(W.record,{messageId:C,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:f,messageId:C,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});ne&&await this.bus.emit(O.turn.started,{sessionId:f,turnId:x.turnId,turnNumber:x.turnNumber,messageId:C,agentIds:[...x.agentIds],initiator:x.initiator}),await this.bus.emit(O.user_message.sent,{sessionId:f,turnId:x.turnId,turnNumber:x.turnNumber,messageId:C,content:n,agentIds:g.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}});let T=y?{...l,...y}:l;await ee(this.bus,p,g,n,C,x,i,this.completeTurn.bind(this),T,e.payload.responseSchema),e.setResult({messageId:C,turnId:x.turnId,sessionId:f})}))}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=_(e.adapterName),r=_(e.adapterId);if(!n&&!r)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${t})`);return r?v(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=he(e.model);if(me(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(ie.resolve,{parsed:i,context:{sessionId:t,promptText:b(n),...r===void 0?{}:{sessionContext:r}}});return{...e,...a,kind:`adapter`,providerConfigId:e.providerConfigId??a.providerConfigId}}},Gt=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(S.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof re||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 Kt(e){let{bus:t}=e;return t.on(O.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(l.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function qt(e){let{bus:t}=e;return t.on(O.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(l.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(l.set,{sessionId:n,session:r}),await t.emit(O.resumed,{sessionId:n}),e.setResult({success:!0})})}function Jt(e){return e.on(C.listActions,e=>{let t=g.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const Yt=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function Xt(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 Zt=class{bus;agentToSession=new Map;agentContext=new Map;agentBlocks=new Map;cleanups=[];constructor(e=T){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(O.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(O.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&(this.agentToSession.delete(t),this.agentContext.delete(t),this.agentBlocks.delete(t))}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(O.turn.started,e=>{let{sessionId:t,turnId:n,agentIds:r}=e.payload;for(let e of r){let r=this.agentContext.get(e);this.agentContext.set(e,{...r,sessionId:t,turnId:n}),this.agentBlocks.set(e,[])}})),this.cleanups.push(this.bus.on(O.user_message.acknowledged,e=>{let t=this.agentContext.get(e.payload.agentId);this.agentContext.set(e.payload.agentId,{...t,sessionId:e.payload.sessionId,turnId:e.payload.turnId}),this.agentBlocks.has(e.payload.agentId)||this.agentBlocks.set(e.payload.agentId,[])}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(D.message,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(D.reasoning,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(D.tool.use,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(D.tool.completed,e=>{let t=this.agentBlocks.get(e.payload.agentId);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(D.complete,async e=>{if(e.payload._import){this.agentBlocks.delete(e.payload.agentId);return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o}=e.payload;await this.storeAssistantMessage(t,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}))}async storeAssistantMessage(e,t,n,r){let i=this.agentContext.get(e);if(!i?.turnId)return;let a=r===void 0?this.agentBlocks.get(e)??[]:r.content===void 0?[]:[{type:`text`,content:r.content}];if(a.length===0&&!n){this.agentBlocks.delete(e);return}let o=a.filter(e=>e.type===`text`).map(e=>e.content).join(`
3
+ `),s=crypto.randomUUID();try{if(!(await this.bus.requestOptional(S.append,{message:{messageId:s,turnId:i.turnId,sessionId:i.sessionId,role:`assistant`,contentText:o||(n?`[Error: ${n}]`:``),blocks:a,agentId:e,adapterSessionId:t,timestamp:Date.now()}})).handled){this.agentBlocks.delete(e);return}let r=await this.bus.requestOptional(S.getByTurn,{turnId:i.turnId});if(r.handled){let t=r.data.messages.find(e=>e.role===`user`);t&&await this.bus.requestOptional(W.record,{messageId:t.messageId,agentId:e,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}this.agentBlocks.delete(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.agentContext.clear(),this.agentBlocks.clear()}},Qt=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(O.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(O.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(O.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(O.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(O.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(O.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(O.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function $t(e,t,n,r,i,a){return new Qt(e,t,n,r,i,a)}function en(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function G(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 K(e,t,n){let r=en(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(O.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function tn(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function nn(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 rn(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}const an=rn();function on(e,t,n){n!==void 0&&(e[t]=n)}function sn(e,t,n){let r=e.startedAt??n;return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:`discovered`,branchKind:tn(e.kind),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:`discovered`,forkPointMessageId:e.forkPointMessageId??void 0}}function cn(e,t,n){let r=e.importStatus??`discovered`;r===`discovered`&&(e.status=`discovered`),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function ln(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),t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=tn(t.kind);n!==void 0&&(e.branchKind=n),on(e,`adapterId`,t.adapterId),on(e,`clientId`,t.clientId)}function un(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 dn(e,t,n){let r=e.discoveredAt;cn(e,t,n),ln(e,t),un(e,t,r)}function fn(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(O.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(O.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function mn(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 hn(e,t,n){e.emit(O.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(O.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function gn(e){let{bus:t,store:n,cloneSession:r,populateAgents:i}=e;return[t.on(l.importUpsert,e=>{let r=e.payload,i=Array.from(n.values()).find(e=>e.adapterSessionId===r.externalSessionId&&e.source===r.source),a=an(),o=i===void 0,s=i??sn(r,crypto.randomUUID(),a);i?(dn(i,r,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&fn(n,i)):(n.set(s.sessionId,s),fn(n,s)),pn(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),t.on(l.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(l.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(l.countBySource,e=>{let t=Array.from(n.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(mn(t))}),t.on(l.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}),hn(t,r,i)})]}async function _n(e,t){let n=await e.requestOptional(p.listBySession,{sessionId:t});return n.handled?n.data.agents:[]}function q(e){return structuredClone(e)}function J(e,t,n){n!==void 0&&(e[t]=n)}function vn(e,t,n){n!==void 0&&(e[t]=n??void 0)}function yn(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 bn(e,t){J(e,`status`,t.status),J(e,`parentSessionId`,t.parentSessionId),J(e,`contextInheritance`,t.contextInheritance),J(e,`rootSessionId`,t.rootSessionId),J(e,`forkPointMessageId`,t.forkPointMessageId),J(e,`branchKind`,t.branchKind),J(e,`isOrchestrated`,t.isOrchestrated),J(e,`clientId`,t.clientId),J(e,`clientAccountId`,t.clientAccountId),J(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),J(e,`title`,t.title),J(e,`targetWorkingDirectory`,t.targetWorkingDirectory),J(e,`createdAt`,t.createdAt),J(e,`lastActivityAt`,t.lastActivityAt),vn(e,`executionTargetId`,t.executionTargetId),vn(e,`approvalPolicyOverride`,t.approvalPolicyOverride),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function xn(e,t){return e.on(l.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=yn(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=>({...q(t),agents:await _n(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function Sn(e,t){return e.on(l.update,async n=>{let r=structuredClone(de.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}let a=q(i);G(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),bn(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),K(e,a,q(i))})}function Cn(e){let t=new Map,n=[];return n.push(e.on(l.get,async n=>{let r=t.get(n.payload.sessionId);if(!r){n.setResult({session:null});return}let i=await _n(e,n.payload.sessionId);n.setResult({session:{...q(r),agents:i}})})),n.push(e.on(l.set,async n=>{let{sessionId:r,session:i,ifAbsent:a}=ue.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?q(s):null;G(s,o),t.set(r,o),n.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(o.clientAccountId??null)}),K(e,c,q(o))})),n.push(e.on(l.delete,async e=>{t.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),n.push(xn(e,t)),n.push(e.on(l.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(l.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(Sn(e,t)),n.push(wn(e,t)),n.push(...gn({bus:e,store:t,populateAgents:_n,cloneSession:q})),()=>n.forEach(e=>e())}function wn(e,t){return e.on(l.getByAdapterSessionId,async n=>{let{adapterSessionId:r,source:i}=n.payload,a=Array.from(t.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===r&&(i===void 0||e.source===i)),o=a[0];if(a.length!==1||o===void 0){n.setResult({session:null});return}let s=await e.requestOptional(p.listBySession,{sessionId:o.sessionId}),c=s.handled?s.data.agents:[];n.setResult({session:{...q(o),agents:c}})})}const Tn=r.postgres,En=t.postgres,Y=A({sessions:n,agents:e},{sessions:Tn,agents:En});function Dn(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return P(n===null?B(t.clientId):R(t.clientId,n),r===null?B(t.clientAccountId):R(t.clientAccountId,r),i===null?B(t.lastClientIdentityObservation):R(t.lastClientIdentityObservation,i))}function On(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,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?ae.parse(e.compressionMode):void 0}}function kn(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,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 An(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function jn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.get,async e=>{let[t]=await n.select().from(r).where(R(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?On(t):null})})}function Mn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.set,async e=>{let{agent:t}=e.payload,i=kn(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:i});e.setResult({success:j(a)})})}function Nn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.delete,async e=>{let t=await n.delete(r).where(R(r.agentId,e.payload.agentId));e.setResult({success:j(t)})})}function Pn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[R(r.adapterName,t)];i&&i!==`all`&&a.push(R(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(On)})})}function Fn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(R(r.sessionId,t));e.setResult({agents:i.map(On)})})}function In(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateStatus,async e=>{let{agentId:t,status:i}=e.payload,a=Date.now(),o=await n.update(r).set({status:i,lastActivityAt:a}).where(R(r.agentId,t));e.setResult({success:j(o)})})}function Ln(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(R(r.agentId,t));e.setResult({success:j(a)})})}function Rn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateRuntime,async e=>{let{agentId:t,cwd:i,model:a,providerConfigId:o}=e.payload,s={lastActivityAt:Date.now()};i!==void 0&&(s.cwd=i),a!==void 0&&(s.model=a),o!==void 0&&(s.providerConfigId=o);let c=await n.update(r).set(s).where(R(r.agentId,t));e.setResult({success:j(c)})})}function zn(e,t,n){let r={bus:e,db:t},i=[jn(r),Mn(r),Nn(r),Pn(r),Fn(r),In(r),Ln(r),Rn(r)];return()=>An(i)}function X(e){return e??void 0}function Bn(e){if(e)try{let t=JSON.parse(e),n=Fe.safeParse(t);return n.success?n.data:void 0}catch{return}}function Vn(e){if(e)try{let t=JSON.parse(e),n=oe.safeParse(t);return n.success?n.data:void 0}catch{return}}function Z(e,t){let n=Vn(e.forkTransforms),r=Bn(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:X(e.leadAgentId),parentSessionId:X(e.parentSessionId),contextInheritance:X(e.contextInheritance),rootSessionId:X(e.rootSessionId),forkPointMessageId:X(e.forkPointMessageId),branchKind:X(e.branchKind),adapterName:X(e.adapterName),adapterSessionId:X(e.adapterSessionId),adapterId:X(e.adapterId),clientId:X(e.clientId),clientAccountId:X(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:X(e.isOrchestrated),isImported:X(e.isImported),title:X(e.title),summary:X(e.summary),summaryUpdatedAt:X(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:X(e.targetWorkingDirectory),executionTargetId:X(e.executionTargetId),agents:t.map(On),approvalPolicyOverride:X(e.approvalPolicyOverride),spawningToolCallId:X(e.spawningToolCallId),source:X(e.source),parentExternalSessionId:X(e.parentExternalSessionId),logFilePath:X(e.logFilePath),discoveredAt:X(e.discoveredAt),importStatus:X(e.importStatus)}}function Hn(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 Un(e,t,n){if(!n||t.length===0)return{};let{messages:r}=M(e,s),i=e.select({sessionId:r.sessionId,minTimestamp:V`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(P(R(r.role,`user`),z(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(R(r.sessionId,i.sessionId),R(r.timestamp,i.minTimestamp))).where(R(r.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let c=await e.select({sessionId:r.sessionId,count:I()}).from(r).where(z(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of c)l.set(e.sessionId,e.count);return{previewBySession:o,countBySession:l}}function Wn(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function Gn(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Kn(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a}=e.payload,o=await n.select().from(r).where(a===void 0?R(r.adapterSessionId,t):P(R(r.adapterSessionId,t),R(r.source,a))).limit(2),s=o[0];if(o.length!==1||s===void 0){e.setResult({session:null});return}let c=await n.select().from(i).where(R(i.sessionId,s.sessionId));e.setResult({session:Z(s,c)})})}function qn(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y),{messages:i}=M(n,s);return t.on(l.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(R(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:I()}).from(i).where(z(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:I()}).from(r).where(z(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(R(i.sessionId,t),z(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 Jn=rn();function Yn(e,t,n){return t===void 0?V`${e}`:V`
4
+ CASE
5
+ WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
6
+ ELSE ${e}
7
+ END
8
+ `}function Xn(e,t){return{status:V`
9
+ CASE
10
+ WHEN COALESCE(${e.importStatus}, excluded.import_status) = 'discovered' THEN excluded.status
11
+ ELSE ${e.status}
12
+ END
13
+ `,isImported:!0,importStatus:V`COALESCE(${e.importStatus}, excluded.import_status)`,adapterName:V`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:V`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:V`COALESCE(${e.source}, excluded.source)`,logFilePath:V`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:V`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:V`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:V`COALESCE(excluded.fork_point_message_id, ${e.forkPointMessageId})`,parentExternalSessionId:V`COALESCE(excluded.parent_external_session_id, ${e.parentExternalSessionId})`,branchKind:V`COALESCE(excluded.branch_kind, ${e.branchKind})`,adapterId:V`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:V`COALESCE(excluded.client_id, ${e.clientId})`,createdAt:Yn(e.createdAt,t,e),lastActivityAt:Yn(e.lastActivityAt,t,e)}}function Zn(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.importUpsert,async e=>{let{externalSessionId:i,source:a,clientId:o,adapterId:s,cwd:c,logFilePath:l,startedAt:u,title:d,kind:f,parentAdapterSessionId:p,forkPointMessageId:m}=e.payload,h=Jn(),g=crypto.randomUUID(),_=u??h,v=tn(f)??null,y=p??null,[b]=await n.insert(r).values({sessionId:g,status:`discovered`,isImported:!0,importStatus:`discovered`,adapterName:a,adapterSessionId:i,source:a??null,clientId:o??null,adapterId:s??null,targetWorkingDirectory:c??null,logFilePath:l??null,forkPointMessageId:m??null,branchKind:v,parentExternalSessionId:y,discoveredAt:h,title:d??null,createdAt:_,lastActivityAt:_}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:Xn(r,u)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),ee=b.sessionId===g;await Qn(t,n,b,ee,v,_,a),e.setResult({sessionId:b.sessionId,created:ee})})}async function Qn(e,t,n,r,i,a,o){if(r){let r=await $n(t,n.sessionId,n.parentExternalSessionId,o);e.emit(O.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 $n(t,n.sessionId,n.parentExternalSessionId,o),e.emit(O.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function $n(e,t,n,r){let{sessions:i}=M(e,Y);if(n===null)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(P(R(i.adapterSessionId,n),R(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(R(i.sessionId,t)),a.sessionId}function er(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(R(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(R(i.sessionId,a.sessionId));e.setResult({session:Z(a,o)})})}function tr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[R(r.isImported,!0)];t!==void 0&&o.push(R(r.source,t)),a!==void 0&&o.push(R(r.importStatus,a));let s=P(...o),c=await n.select().from(r).where(s).orderBy(L(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Hn(await n.select().from(i).where(z(i.sessionId,l)));e.setResult({sessions:c.map(e=>Z(e,u.get(e.sessionId)??[]))})})}function nr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:V`count(*)`}).from(r).where(P(R(r.isImported,!0),R(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 rr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:V`
14
+ CASE
15
+ WHEN ${r.status} = 'discovered' THEN 'active'
16
+ ELSE ${r.status}
17
+ END
18
+ `}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(P(R(r.sessionId,i),Ne(B(r.importStatus),V`${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(O.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(O.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function ir(e,t){let n={bus:e,db:t};return[Zn(n),er(n),tr(n),nr(n),rr(n)]}function Q(e){return e??null}function ar(e){return e?JSON.stringify(e):null}function or(e){return{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:sr(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Q(e.title),summary:Q(e.summary),summaryUpdatedAt:Q(e.summaryUpdatedAt),forkTransforms:ar(e.forkTransforms),targetWorkingDirectory:Q(e.targetWorkingDirectory),executionTargetId:Q(e.executionTargetId),approvalPolicyOverride:Q(e.approvalPolicyOverride),spawningToolCallId:Q(e.spawningToolCallId),source:Q(e.source),parentExternalSessionId:Q(e.parentExternalSessionId),logFilePath:Q(e.logFilePath),discoveredAt:Q(e.discoveredAt),importStatus:Q(e.importStatus)}}function sr(e){return e?JSON.stringify(e):null}function $(e,t,n){n!==void 0&&(e[t]=n)}function cr(e,t,n){n!==void 0&&(e[t]=n??null)}function lr(e,t){let n={};return $(n,`status`,e.status),$(n,`parentSessionId`,e.parentSessionId),$(n,`contextInheritance`,e.contextInheritance),$(n,`rootSessionId`,e.rootSessionId),$(n,`forkPointMessageId`,e.forkPointMessageId),$(n,`branchKind`,e.branchKind),$(n,`isOrchestrated`,e.isOrchestrated),$(n,`clientId`,e.clientId),$(n,`clientAccountId`,e.clientAccountId),$(n,`title`,e.title),$(n,`targetWorkingDirectory`,e.targetWorkingDirectory),$(n,`createdAt`,e.createdAt),$(n,`lastActivityAt`,e.lastActivityAt),cr(n,`executionTargetId`,e.executionTargetId),cr(n,`approvalPolicyOverride`,e.approvalPolicyOverride),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=V`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=sr(e.lastClientIdentityObservation)),n}function ur(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.get,async e=>{let[t]=await n.select().from(r).where(R(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(R(i.sessionId,e.payload.sessionId));e.setResult({session:Z(t,a)})})}function dr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=ue.parse(e.payload),s=or(a);if(o){G(null,a);let o=j(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&K(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(R(r.sessionId,i)).limit(1),c=o?Z(o,[]):null;if(G(c,a),j(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:s,setWhere:Dn(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),K(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function fr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.delete,async e=>{await n.delete(r).where(R(r.sessionId,e.payload.sessionId)),e.setResult({success:!0})})}function pr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.update,async e=>{let i=de.request.parse(e.payload),{sessionId:a}=i,o=lr(i,r),s=Gn(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(R(r.sessionId,a));e.setResult({success:j(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(R(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let c=Z(s,[]),l=Wn(c,i);if(G(c,l),j(await n.update(r).set(o).where(P(R(r.sessionId,a),Dn(s,r))))){e.setResult({success:!0,clientAccountChanged:(c.clientAccountId??null)!==(l.clientAccountId??null)}),K(t,c,l);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function mr(e,t){let n=[];return e.status!==`all`&&n.push(R(t.status,e.status)),e.executionTargetId!==void 0&&n.push(R(t.executionTargetId,e.executionTargetId)),P(...n)}function hr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=mr({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(L(r.lastActivityAt)):await u.orderBy(L(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:I()}).from(r).where(l):n.select({count:I()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Hn(await n.select().from(i).where(z(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Un(n,m,s),v=d.map(e=>{let t=Z(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 gr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:I()}).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 _r(e,t,n){let r={bus:e,db:t},i=[ur(r),dr(r),fr(r),pr(r),hr(r),qn(r),Kn(r),gr(r),...ir(e,t)];return()=>i.forEach(e=>e())}function vr(e,t,n,r){return t===void 0&&n===void 0&&r===void 0?!1:(t!==void 0&&(e.cwd=t),n!==void 0&&(e.model=n),r!==void 0&&(e.providerConfigId=r),!0)}function yr(e){let t=new Map,n=[];return n.push(e.on(p.get,e=>{let n=t.get(e.payload.agentId)??null;e.setResult({agent:n})})),n.push(e.on(p.set,e=>{t.set(e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),n.push(e.on(p.delete,e=>{let n=t.delete(e.payload.agentId);e.setResult({success:n})})),n.push(e.on(p.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(p.listBySession,e=>{let n=Array.from(t.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:n})})),n.push(e.on(p.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(p.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(p.updateRuntime,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}let{cwd:r,model:i,providerConfigId:a}=e.payload;if(!vr(n,r,i,a)){e.setResult({success:!1});return}n.lastActivityAt=Date.now(),e.setResult({success:!0})})),()=>n.forEach(e=>e())}async function br(e,t){if(t.length===0)return new Map;let{agents:n}=M(e,Y),r=[...new Set(t)],i=await e.select().from(n).where(z(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 xr(e,t){return N(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Sr(e,t){if(t.length===0)return new Map;let{messages:n}=M(e,s),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:I()}).from(n).where(z(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Cr(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function wr(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:Cr(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??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 Tr(e,t){let n=N(t).fts,r=[];return r.push(e.on(l.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 br(t,d),p=await xr(t,d),m=await Sr(t,d),h=l.map(e=>wr(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Er(e,t){return(await De(e).all(V`
19
+ WITH RECURSIVE ancestors AS (
20
+ SELECT session_id, parent_session_id
21
+ FROM sessions
22
+ WHERE session_id = ${t}
23
+
24
+ UNION ALL
25
+
26
+ SELECT s.session_id, s.parent_session_id
27
+ FROM sessions s
28
+ JOIN ancestors a ON s.session_id = a.parent_session_id
29
+ )
30
+ SELECT session_id FROM ancestors
31
+ `)).map(e=>e.session_id)}var Dr=class{bus;options;cleanups=[];transform;constructor(e=T,t={}){this.bus=e,this.options=t,this.transform=t.transform??(e=>e),this.registerHandlers()}async emitStorageEvent(e,t,n){let r={sessionId:t,eventId:crypto.randomUUID(),timestamp:Date.now(),type:e,payload:n},i=this.transform(r);i&&await this.bus.request(o.append,{event:i})}registerHandler(e,t){this.cleanups.push(this.bus.on(e,(async e=>{try{await this.emitStorageEvent(t,e.payload.sessionId,e.payload)}catch(e){console.error(`[SessionLogger] Failed to emit ${t} to storage:`,e)}})))}registerHandlers(){this.registerHandler(O.agent.added,`agent.added`),this.registerHandler(O.turn.started,`turn.started`),this.registerHandler(O.turn.completed,`turn.completed`),this.registerHandler(O.branch.created,`branch.created`)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0}};const Or=Ee(`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()})),kr=Or.sqlite,Ar=Or.postgres,jr=A({importCursors:kr},{importCursors:Ar});function Mr(e,t,n){let{importCursors:r}=M(t,jr),i=[];return i.push(e.on(Ie.get,async e=>{let{filePath:n}=e.payload,i=(await t.select().from(r).where(R(r.filePath,n)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),i.push(e.on(Ie.set,async e=>{let{filePath:n,bytesRead:i,lastModified:a}=e.payload;await t.insert(r).values({filePath:n,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:r.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),i.push(e.on(Ie.delete,async e=>{let{filePath:n}=e.payload,i=await t.delete(r).where(R(r.filePath,n));e.setResult({success:j(i)})})),()=>{i.forEach(e=>e())}}xe(`embeddings`,{id:ye(`id`).primaryKey({autoIncrement:!0}),entityType:Se(`entity_type`).notNull(),entityId:Se(`entity_id`).notNull(),model:Se(`model`).notNull(),dimensions:ye(`dimensions`).notNull(),content:Se(`content`),embedding:_e(`embedding`,{mode:`buffer`}).notNull(),createdAt:ye(`created_at`).notNull()},e=>[ve(`idx_embeddings_entity`).on(e.entityType,e.entityId),ve(`idx_embeddings_model`).on(e.model),Ce(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function Nr(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 Pr=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=De(e),this.engine=Oe(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=V.identifier(n),i=V.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(V`CREATE TABLE IF NOT EXISTS ${r} (
32
+ entity_type TEXT NOT NULL,
33
+ entity_id TEXT NOT NULL,
34
+ embedding ${i} NOT NULL,
35
+ PRIMARY KEY (entity_type, entity_id)
36
+ )`),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=V.identifier(a);await this.rawSql.run(V`INSERT INTO ${s} (entity_type, entity_id, embedding)
37
+ VALUES (${n}, ${r}, ${o})
38
+ ON CONFLICT(entity_type, entity_id) DO UPDATE SET
39
+ 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=V.identifier(r),a=await this.rawSql.all(V`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=Nr(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=V.identifier(r);await this.rawSql.run(V`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)}},Fr=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 y({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await this.emit(O.turn.started,{turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId}),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`);this._completedTurnIds.add(e.turnId);let t=e.getResult();await this.emit(O.turn.completed,{turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0})}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function Ir(e,t){let{sessions:n}=M(t,Y);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(R(n.parentExternalSessionId,i),R(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(l.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(O.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(R(n.parentExternalSessionId,a),R(n.source,s),B(n.parentSessionId)));if(c.length===0)return;let{session:u}=await e.request(l.get,{sessionId:o}),d=u?.rootSessionId??o;for(let t of c)await e.request(l.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:d,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,d)})}const Lr=new Set([`Agent`,`spawn_subagent`]),Rr=`[^A-Za-z0-9_-]`;function zr(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Br(e,t){return t.test(e)}async function Vr(e,t){let n=[],r,i=0;do{let a=await e.request(S.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 Hr(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&Lr.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function Ur(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(Br(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 Wr(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 Gr(e){return[...e].map(e=>{let t=zr(e);return{id:e,pattern:RegExp(`(^|${Rr})${t}($|${Rr})`)}})}async function Kr(e,t,n){let{children:r}=await e.request(l.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(l.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=Gr(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await Vr(e,t.sessionId),r=Hr(n);if(r.length===0)return null;let i=Ur(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(l.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function qr(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(l.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(l.getChildren,{sessionId:s}),u=await Jr(e,c);if(u.size===0)return;let d=await Vr(e,a),f=Hr(d);if(f.length===0)return;let p=Ur(d,Gr(new Set(u.keys()))),m=new Map;for(let e of f){let t=p.get(e.toolCallId);t!==void 0&&m.set(t,(m.get(t)??0)+1)}let h=new Map;for(let e of f){let t=p.get(e.toolCallId),n=t===void 0?void 0:u.get(t);n!==void 0&&t!==void 0&&m.get(t)===1&&h.set(n,e.toolCallId)}if(h.size===0)return;let g=[...h].map(async([t,n])=>{try{await e.request(l.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(g)}async function Jr(e,t){return Wr(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(l.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function Yr(e){return e.on(O.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(l.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await Kr(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await qr(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Xr(e){return[...e].map(e=>{let t=zr(e);return{id:e,pattern:RegExp(`(^|${Rr})${t}($|${Rr})`)}})}async function Zr(e,t,n){return Wr(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(l.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Qr(e){return e.on(O.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(l.getChildren,{sessionId:n}),a=await Zr(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await Vr(e,n),c=Hr(s);if(c.length===0)return;let u=Ur(s,Xr(o)),d=new Map;for(let e of c){let t=u.get(e.toolCallId);t!==void 0&&d.set(t,(d.get(t)??0)+1)}let f=new Map;for(let e of c){let t=u.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&d.get(t)===1&&f.set(n,e.toolCallId)}let p=[...f].map(async([t,r])=>{try{let{session:n}=await e.request(l.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(l.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(p)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function $r(e){return e.on(E.session.discovered,async t=>{let n=le.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:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=nn({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(l.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...u===void 0?{}:{startedAt:u},...m})})}var ei=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(D.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{Zt as A,Lt as B,Z as C,nn as D,tn as E,qt as F,Ct as G,It as H,Gt as I,Ye as J,mt as K,Wt as L,Yt as M,Jt as N,Qt as O,Kt as P,Ut as R,Hn as S,Cn as T,Ft as U,W as V,Et as W,ze as X,qe as Y,wr as _,Ir as a,_r as b,Mr as c,Dr as d,Er as f,xr as g,Sr as h,Yr as i,Xt as j,$t as k,kr as l,br as m,$r as n,Fr as o,Tr as p,tt as q,Qr as r,Pr as s,ei as t,Or as u,Cr as v,zn as w,Un as x,yr as y,Vt as z};
@@ -13,8 +13,8 @@ declare const SUBAGENT_SESSION_LINEAGE_KIND: "subagent";
13
13
  declare const COMPRESS_SESSION_LINEAGE_KIND: "compress";
14
14
  /** Discriminates the relationship of a session to its parent. */
15
15
  declare const SessionLineageKindSchema: z.ZodEnum<{
16
- fork: "fork";
17
16
  root: "root";
17
+ fork: "fork";
18
18
  subagent: "subagent";
19
19
  compress: "compress";
20
20
  }>;
@@ -1 +1 @@
1
- import{t as e}from"./jsonl-transport-DBHQgcIm.mjs";import{CorrelationTracker as t,DEFAULT_REQUEST_TIMEOUT_MS as n,handleCorrelationResponse as r,trackMessageCorrelation as i}from"@makaio/framework/bus";var a=class{name;spawnOptions;jsonl=null;handlers=new Set;correlations=new t;handshakeComplete=!1;terminalError=null;localSubscriptions=new Map;readyResolve=null;readyReject=null;onNewReadySession=void 0;onConnected=void 0;onDisconnected=void 0;ready;constructor(e){this.name=e.name??`stdio-server`,this.spawnOptions=e.spawn,this.ready=this.createReadyPromise()}async connect(){if(this.jsonl!==null)throw Error(`StdioServerTransport: already connected`);this.readyResolve===null&&this.readyReject===null&&(this.ready=this.createReadyPromise()),this.handshakeComplete=!1,this.terminalError=null;let t=e(this.spawnOptions);this.jsonl=t,t.onMessage(e=>{this.jsonl===t&&this.handleInbound(e)}),t.onError(e=>{this.jsonl===t&&this.terminateSession(e,!0)}),t.process.once(`exit`,e=>{this.jsonl===t&&this.terminateSession(Error(`Child process exited (code ${e??`signal`}) before subscribe-sync handshake completed`),!1)}),this.localSubscriptions.size>0&&this.sendSubscribeMessage()}async send(e,t){if(this.jsonl===null)throw Error(`StdioServerTransport: not connected`);return this.jsonl.send(e),i(e,this.correlations,t??n)}onReceive(e){return this.handlers.add(e),()=>{this.handlers.delete(e)}}async disconnect(){let e=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=null,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),e?.close()}async subscribe(e,t,n=[]){this.localSubscriptions.set(e,{priorities:n,filter:t}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n)}async unsubscribe(e){let t=this.localSubscriptions.delete(e);this.jsonl!==null&&t&&this.jsonl.send({type:`unsubscribe`,subjects:{[e]:[]}})}isReady(){return this.jsonl!==null&&this.terminalError===null&&this.handshakeComplete&&this.jsonl.process.exitCode===null}cancelRequest(e,t){this.correlations.cancel(e,t)}createReadyPromise(){let e=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t});return this.onNewReadySession?.(e),e}terminateSession(e,t){let n=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=e,this.readyReject?.(e),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),t&&n?.close(),this.onDisconnected?.()}async handleInbound(e){if(typeof e!=`object`||!e||typeof e.type!=`string`)return;let t=e;if(t.type!==`heartbeat`){if(t.type===`subscribe-sync-complete`){this.handshakeComplete=!0,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.jsonl?.send({type:`subscribe-sync-complete`}),this.onConnected?.();return}if(!r(t,this.correlations))for(let e of this.handlers)try{await e(t,{transportName:this.name})}catch{}}}sendSubscribeMessage(e,t,n=[]){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},...t===void 0?{}:{filters:{[e]:t}}});return}let r={},i={},a=!1;for(let[e,t]of this.localSubscriptions)r[e]=t.priorities,t.filter!==void 0&&(i[e]=t.filter,a=!0);this.jsonl.send({type:`subscribe`,subjects:r,...a?{filters:i}:{}})}};export{a as StdioServerTransport};
1
+ import{t as e}from"./jsonl-transport-C21tpVfe.mjs";import{CorrelationTracker as t,DEFAULT_REQUEST_TIMEOUT_MS as n,handleCorrelationResponse as r,trackMessageCorrelation as i}from"@makaio/framework/bus";var a=class{name;spawnOptions;jsonl=null;handlers=new Set;correlations=new t;handshakeComplete=!1;terminalError=null;localSubscriptions=new Map;readyResolve=null;readyReject=null;onNewReadySession=void 0;onConnected=void 0;onDisconnected=void 0;ready;constructor(e){this.name=e.name??`stdio-server`,this.spawnOptions=e.spawn,this.ready=this.createReadyPromise()}async connect(){if(this.jsonl!==null)throw Error(`StdioServerTransport: already connected`);this.readyResolve===null&&this.readyReject===null&&(this.ready=this.createReadyPromise()),this.handshakeComplete=!1,this.terminalError=null;let t=e(this.spawnOptions);this.jsonl=t,t.onMessage(e=>{this.jsonl===t&&this.handleInbound(e)}),t.onError(e=>{this.jsonl===t&&this.terminateSession(e,!0)}),t.process.once(`exit`,e=>{this.jsonl===t&&this.terminateSession(Error(`Child process exited (code ${e??`signal`}) before subscribe-sync handshake completed`),!1)}),this.localSubscriptions.size>0&&this.sendSubscribeMessage()}async send(e,t){if(this.jsonl===null)throw Error(`StdioServerTransport: not connected`);return this.jsonl.send(e),i(e,this.correlations,t??n)}onReceive(e){return this.handlers.add(e),()=>{this.handlers.delete(e)}}async disconnect(){let e=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=null,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),e?.close()}async subscribe(e,t,n=[]){this.localSubscriptions.set(e,{priorities:n,filter:t}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n)}async unsubscribe(e){let t=this.localSubscriptions.delete(e);this.jsonl!==null&&t&&this.jsonl.send({type:`unsubscribe`,subjects:{[e]:[]}})}isReady(){return this.jsonl!==null&&this.terminalError===null&&this.handshakeComplete&&this.jsonl.process.exitCode===null}cancelRequest(e,t){this.correlations.cancel(e,t)}createReadyPromise(){let e=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t});return this.onNewReadySession?.(e),e}terminateSession(e,t){let n=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=e,this.readyReject?.(e),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),t&&n?.close(),this.onDisconnected?.()}async handleInbound(e){if(typeof e!=`object`||!e||typeof e.type!=`string`)return;let t=e;if(t.type!==`heartbeat`){if(t.type===`subscribe-sync-complete`){this.handshakeComplete=!0,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.jsonl?.send({type:`subscribe-sync-complete`}),this.onConnected?.();return}if(!r(t,this.correlations))for(let e of this.handlers)try{await e(t,{transportName:this.name})}catch{}}}sendSubscribeMessage(e,t,n=[]){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},...t===void 0?{}:{filters:{[e]:t}}});return}let r={},i={},a=!1;for(let[e,t]of this.localSubscriptions)r[e]=t.priorities,t.filter!==void 0&&(i[e]=t.filter,a=!0);this.jsonl.send({type:`subscribe`,subjects:r,...a?{filters:i}:{}})}};export{a as StdioServerTransport};
@@ -1,78 +1,2 @@
1
- import { t as MakaioDatabase } from "../../types-yTKQTAok.mjs";
2
-
3
- //#region storage/drizzle/src/client.d.ts
4
- /**
5
- * Configuration options for the database client.
6
- */
7
- interface DatabaseClientConfig {
8
- /**
9
- * Database URL.
10
- * Supports libSQL / SQLite connection strings:
11
- * - `file:./path/to/db.db` for local SQLite files
12
- * - `libsql://host` for remote libSQL/Turso
13
- * - `http://localhost:8080` for local libSQL server
14
- * - `:memory:` for an in-process in-memory database
15
- *
16
- * Defaults to `'file:./makaio.db'`.
17
- */
18
- url?: string;
19
- /**
20
- * Authentication token for remote databases (Turso).
21
- * Not required for local file-based or in-memory databases.
22
- */
23
- authToken?: string;
24
- }
25
- /**
26
- * Result of creating a database client.
27
- */
28
- interface DatabaseClient {
29
- /** The drizzle ORM instance */
30
- db: MakaioDatabase;
31
- /** Close the database connection. Safe to call multiple times. */
32
- close(): void;
33
- }
34
- /**
35
- * Creates a drizzle ORM instance backed by the appropriate SQLite driver for
36
- * the current runtime.
37
- *
38
- * **Driver selection (runtime-conditional):**
39
- * - **Bun + local URL** (`file:` or `:memory:`) — uses the built-in `bun:sqlite`
40
- * driver via `drizzle-orm/bun-sqlite`. The module is loaded dynamically so
41
- * this file is safe to import under Node.js.
42
- * - **Bun + remote URL** (`libsql:`, `http:`, `https:`, …) — stays on
43
- * `@libsql/client` via `drizzle-orm/libsql`; `bun:sqlite` cannot handle
44
- * remote connections.
45
- * - **Node.js** — always uses `@libsql/client` via `drizzle-orm/libsql`.
46
- *
47
- * For local databases, automatically enables:
48
- * - `file:` URLs: WAL journal mode, 5-second busy timeout, and foreign key enforcement
49
- * - `:memory:`: foreign key enforcement only
50
- *
51
- * SEAM: This factory allows swapping the database backend by providing
52
- * different connection URLs (local file, Turso, libSQL server).
53
- * @param config - Database configuration options
54
- * @returns Database client with drizzle ORM instance and close method
55
- * @example
56
- * ```typescript
57
- * import { createDatabaseClient } from '@makaio/framework/storage/drizzle/client';
58
- *
59
- * // Local development with file-based SQLite
60
- * const { db, close } = await createDatabaseClient();
61
- *
62
- * // Production with Turso
63
- * const { db, close } = await createDatabaseClient({
64
- * url: process.env.TURSO_DATABASE_URL,
65
- * authToken: process.env.TURSO_AUTH_TOKEN,
66
- * });
67
- *
68
- * // Use with storage handlers
69
- * import { registerDrizzleSessionStorage } from '@makaio/framework/services/session';
70
- * registerDrizzleSessionStorage(bus, db, ctx);
71
- *
72
- * // Close when done
73
- * close();
74
- * ```
75
- */
76
- declare function createDatabaseClient(config?: DatabaseClientConfig): Promise<DatabaseClient>;
77
- //#endregion
78
- export { DatabaseClient, DatabaseClientConfig, createDatabaseClient };
1
+ import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-BJVDImPV.mjs";
2
+ export { DatabaseClient, DatabaseClientConfig, PostgresClientOptions, createDatabaseClient };
@@ -1 +1 @@
1
- import{fileURLToPath as e}from"node:url";import{sql as t}from"drizzle-orm";import{isBunRuntime as n}from"@makaio/framework/utils";async function r(e={}){let{url:t=`file:./makaio.db`,authToken:r}=e;return n()&&i(t)?s(t):c(t,r)}function i(e){return e.startsWith(`file:`)||e===`:memory:`}const a=[`PRAGMA journal_mode = WAL`,`PRAGMA busy_timeout = 5000`,`PRAGMA foreign_keys = ON`],o=[`PRAGMA foreign_keys = ON`];async function s(n){let{Database:r}=await import(`bun:sqlite`),{drizzle:i}=await import(`drizzle-orm/bun-sqlite`),a=new r(n===`:memory:`?`:memory:`:n.startsWith(`file://`)?e(n):n.replace(/^file:/,``)),o=i(a);for(let e of u(n))o.run(t.raw(e));let s=!1;return{db:o,close:()=>{s||(s=!0,a.close())}}}async function c(e,n){let{drizzle:r}=await import(`drizzle-orm/libsql`),a=r({connection:{url:e,authToken:n}});if(i(e))for(let n of u(e))await a.run(t.raw(n));let o=!1;return{db:a,close:()=>{o||(o=!0,a.$client.close())}}}function l(e){return e.startsWith(`file:`)}function u(e){return l(e)?a:o}export{r as createDatabaseClient};
1
+ import{a as e,h as t,n}from"../../registry-RG-bkw3c.mjs";async function r(r={}){if(r.url!==void 0){let n=e(r.url);if(n.kind===`missing-engine`)throw Error(t(n.dialect,n.packageName));if(n.kind===`engine`)return n.engine.createClient(r)}return n(`sqlite`).createClient(r)}export{r as createDatabaseClient};
@@ -0,0 +1,88 @@
1
+ import * as _$drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
2
+ import * as _$drizzle_orm0 from "drizzle-orm";
3
+
4
+ //#region storage/drizzle/src/columns/postgres.d.ts
5
+ /**
6
+ * Postgres column bundle for the storage dialect design.
7
+ *
8
+ * These helpers encode the fixed SQLite→Postgres column mapping table so that
9
+ * twin schema files stay mechanically in sync with their canonical counterparts:
10
+ *
11
+ * | Bundle | SQL type (Postgres) |
12
+ * |----------------------|----------------------------------------------------------|
13
+ * | `epochMs` | `bigint` ('number' mode, int53-safe) |
14
+ * | `bool` | `boolean` |
15
+ * | `jsonCol` | `jsonb` |
16
+ * | `autoPk` | `bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY` |
17
+ * | `float8` | `double precision` |
18
+ *
19
+ * **Accepted divergences (jsonCol → jsonb):** jsonb silently rejects `\u0000`
20
+ * escapes, normalizes key order, and drops duplicate keys. Plain `text` columns
21
+ * holding hand-stringified JSON stay `text` on both dialects — this bundle is
22
+ * for structured JSON that drizzle serializes and deserializes.
23
+ *
24
+ * **Partial-index predicate rewrites:** boolean partial indexes use `= 1` on
25
+ * SQLite and `= true` on Postgres. Postgres twin schema files must rewrite such
26
+ * predicates to `= true` in their `.where()` clauses — drizzle-kit emits DDL
27
+ * mechanically from the twin source, and `= 1` against a native boolean column
28
+ * is a type error on Postgres.
29
+ *
30
+ * **`autoPk` monotonicity caveat:** identity values are strictly increasing per
31
+ * single writer. Cursor pagination over this key assumes a single writer
32
+ * process.
33
+ *
34
+ * **`epochMs` precision:** stored as `bigint` in JavaScript `'number'` mode
35
+ * (int53-safe). No SQL date arithmetic is performed in the framework; the
36
+ * column holds raw millisecond offsets.
37
+ *
38
+ * **`float8` vs `real`:** Postgres `real` is 4-byte and would silently narrow
39
+ * values that are 8-byte in SQLite. `double precision` preserves the range.
40
+ * @packageDocumentation
41
+ */
42
+ /**
43
+ * Unix-epoch-milliseconds timestamp column.
44
+ * SQLite: `integer`. Postgres twin: `bigint` in `'number'` mode (int53-safe;
45
+ * no SQL date arithmetic exists in the framework).
46
+ * @param name - SQL column name.
47
+ * @returns Chainable Postgres `bigint` ('number' mode) column builder.
48
+ */
49
+ declare const epochMs: (name: string) => _$drizzle_orm_pg_core0.PgBigInt53BuilderInitial<string>;
50
+ /**
51
+ * Boolean flag column.
52
+ * SQLite: `integer` in `'boolean'` mode. Postgres twin: native `boolean`.
53
+ * Partial-index predicates over these columns are `= 1` on SQLite and
54
+ * `= true` on Postgres.
55
+ * @param name - SQL column name.
56
+ * @returns Chainable Postgres `boolean` column builder.
57
+ */
58
+ declare const bool: (name: string) => _$drizzle_orm_pg_core0.PgBooleanBuilderInitial<string>;
59
+ /**
60
+ * Structured JSON column (drizzle serializes/deserializes).
61
+ * SQLite: `text` in `'json'` mode. Postgres twin: `jsonb` (accepted divergence:
62
+ * jsonb rejects `\u0000` escapes, normalizes key order, drops duplicate keys).
63
+ * NOT for hand-stringified JSON held in plain `text` columns — those stay `text`.
64
+ * @param name - SQL column name.
65
+ * @typeParam T - Deserialized value type pinned via `$type`.
66
+ * @returns Chainable Postgres `jsonb` column builder typed as `T`.
67
+ */
68
+ declare const jsonCol: <T>(name: string) => _$drizzle_orm0.$Type<_$drizzle_orm_pg_core0.PgJsonbBuilderInitial<string>, T>;
69
+ /**
70
+ * Auto-generated integer primary key.
71
+ * SQLite: `integer ... PRIMARY KEY AUTOINCREMENT`. Postgres twin:
72
+ * `bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY` (`'number'` mode).
73
+ * Monotonicity note: identity values are strictly increasing per single
74
+ * writer; cursor pagination over this key assumes a single writer process.
75
+ * @param name - SQL column name.
76
+ * @returns Chainable Postgres identity `bigint` primary-key column builder.
77
+ */
78
+ declare const autoPk: (name: string) => _$drizzle_orm0.IsPrimaryKey<_$drizzle_orm0.NotNull<_$drizzle_orm0.IsIdentity<_$drizzle_orm_pg_core0.PgBigInt53BuilderInitial<string>, "always">>>;
79
+ /**
80
+ * Eight-byte floating-point column.
81
+ * SQLite: `real` (always 8-byte). Postgres twin: `double precision` —
82
+ * Postgres `real` is 4-byte and would silently narrow.
83
+ * @param name - SQL column name.
84
+ * @returns Chainable Postgres `double precision` column builder.
85
+ */
86
+ declare const float8: (name: string) => _$drizzle_orm_pg_core0.PgDoublePrecisionBuilderInitial<string>;
87
+ //#endregion
88
+ export { autoPk, bool, epochMs, float8, jsonCol };
@@ -0,0 +1 @@
1
+ import{bigint as e,boolean as t,doublePrecision as n,jsonb as r}from"drizzle-orm/pg-core";const i=t=>e(t,{mode:`number`}),a=e=>t(e),o=e=>r(e).$type(),s=t=>e(t,{mode:`number`}).generatedAlwaysAsIdentity().primaryKey(),c=e=>n(e);export{s as autoPk,a as bool,i as epochMs,c as float8,o as jsonCol};