@makaio/framework 1.0.0-dev-1779051654000 → 1.0.0-dev-1781023871421

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 (419) hide show
  1. package/LICENSE +1 -1
  2. package/dist/.makaio-build.json +5 -0
  3. package/dist/account-identity-DT5NOtFi.mjs +1 -0
  4. package/dist/adapter-C1eI-fGV.mjs +1 -0
  5. package/dist/adapters/acp-client/index.d.mts +6013 -14
  6. package/dist/adapters/acp-client/index.mjs +3 -1
  7. package/dist/adapters/config/index.d.mts +1 -1
  8. package/dist/adapters/config/index.mjs +1 -1
  9. package/dist/adapters/index.d.mts +47 -20
  10. package/dist/adapters/index.mjs +13 -6
  11. package/dist/adapters/node.d.mts +4 -4
  12. package/dist/adapters/node.mjs +4 -4
  13. package/dist/adapters/stream-session/index.d.mts +30 -0
  14. package/dist/adapters/stream-session/index.mjs +1 -1
  15. package/dist/artifact-B3npq1cy.mjs +1 -0
  16. package/dist/bus/index.d.mts +866 -203
  17. package/dist/bus/index.mjs +1 -1
  18. package/dist/bus-Caz3Jpbc.mjs +1 -0
  19. package/dist/bus-Hb-LGzgb.mjs +2 -0
  20. package/dist/chunk-DTipWd-i.mjs +1 -0
  21. package/dist/client-bx74gm4R.mjs +1 -0
  22. package/dist/clients/index.d.mts +113 -35
  23. package/dist/clients/index.mjs +2 -2
  24. package/dist/{clients-namespace-UHj5wt-l.d.mts → clients-namespace-GmSJpBUV.d.mts} +8 -8
  25. package/dist/{config-namespace-ChZOpi1W.d.mts → config-namespace-CPY9YsR8.d.mts} +4 -4
  26. package/dist/contracts/adapter/index.d.mts +3 -3
  27. package/dist/contracts/adapter/index.mjs +1 -1
  28. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  29. package/dist/contracts/artifact/index.d.mts +2 -0
  30. package/dist/contracts/artifact/index.mjs +1 -0
  31. package/dist/contracts/client/index.d.mts +2 -2
  32. package/dist/contracts/client/index.mjs +1 -1
  33. package/dist/contracts/common/index.d.mts +1 -1
  34. package/dist/contracts/config/index.d.mts +8 -8
  35. package/dist/contracts/config/index.mjs +1 -1
  36. package/dist/contracts/extension/index.d.mts +4 -3
  37. package/dist/contracts/extension/index.mjs +1 -1
  38. package/dist/contracts/facet/index.d.mts +2 -0
  39. package/dist/contracts/facet/index.mjs +1 -0
  40. package/dist/contracts/harness/index.d.mts +1 -1
  41. package/dist/contracts/harness/index.mjs +1 -1
  42. package/dist/contracts/host/index.d.mts +1 -1
  43. package/dist/contracts/host/index.mjs +1 -1
  44. package/dist/contracts/index.d.mts +12370 -1990
  45. package/dist/contracts/index.mjs +1 -1
  46. package/dist/contracts/materialization/index.d.mts +4 -0
  47. package/dist/contracts/materialization/index.mjs +1 -0
  48. package/dist/contracts/model-registry/index.d.mts +1 -1
  49. package/dist/contracts/model-registry/index.mjs +1 -1
  50. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  51. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  52. package/dist/contracts/platform/index.d.mts +1 -1
  53. package/dist/contracts/platform/index.mjs +1 -1
  54. package/dist/contracts/provider/index.d.mts +2 -2
  55. package/dist/contracts/provider/index.mjs +1 -1
  56. package/dist/contracts/session/index.d.mts +3 -3
  57. package/dist/contracts/session/index.mjs +1 -1
  58. package/dist/contracts/shared/index.d.mts +2 -2
  59. package/dist/contracts/shared/index.mjs +1 -1
  60. package/dist/contracts/skill/index.d.mts +1 -1
  61. package/dist/contracts/skill/index.mjs +1 -1
  62. package/dist/contracts/telemetry/index.d.mts +2 -0
  63. package/dist/contracts/telemetry/index.mjs +1 -0
  64. package/dist/contracts/timeout/index.d.mts +1 -1
  65. package/dist/contracts/timeout/index.mjs +1 -1
  66. package/dist/contracts/toast/index.d.mts +2 -2
  67. package/dist/contracts/toast/index.mjs +1 -1
  68. package/dist/contracts/variant/index.d.mts +1 -1
  69. package/dist/contracts/variant/index.mjs +1 -1
  70. package/dist/core/index.d.mts +296 -34
  71. package/dist/core/index.mjs +1 -1
  72. package/dist/{credential-ref-DLCsoKVZ.mjs → credential-ref-YWQQENEo.mjs} +1 -1
  73. package/dist/cursor-storage-CtVJ3JzB.mjs +1 -0
  74. package/dist/{definition-DB7bbFSa.d.mts → definition-BLCdXGzh.d.mts} +17 -3
  75. package/dist/definition-CrgHIpTK.d.mts +60 -0
  76. package/dist/{definition-DkYy1PZz.mjs → definition-DZMXOnjX.mjs} +1 -1
  77. package/dist/{definition-DtUNiGom.d.mts → definition-pkJ6szUl.d.mts} +1 -1
  78. package/dist/drizzle-Eq8W1EbD.mjs +1 -0
  79. package/dist/event-Ca2yUf5i.mjs +1 -0
  80. package/dist/execution-target-CRPTfZlc.mjs +1 -0
  81. package/dist/extension-C-4BHMRI.mjs +1 -0
  82. package/dist/extension-CpIUgBKI.mjs +1 -0
  83. package/dist/facet-BuwhrThl.mjs +1 -0
  84. package/dist/filesystem-service-B8rhBRgB.mjs +1 -0
  85. package/dist/filesystem-service-p_iJVHd4.d.mts +66 -0
  86. package/dist/git/index.d.mts +210 -0
  87. package/dist/git/index.mjs +18 -0
  88. package/dist/globby-rtWVaFHv.mjs +41 -0
  89. package/dist/{handlers-DR_4_rAT.mjs → handlers-CkTsQLra.mjs} +3 -3
  90. package/dist/{harness-B6lGP9rm.mjs → harness-BRCMcvQN.mjs} +1 -1
  91. package/dist/{host-CvEht5RT.mjs → host-Br9VuOyr.mjs} +1 -1
  92. package/dist/{index-WKjrpcA_.d.mts → index-472sOmsW.d.mts} +6 -6
  93. package/dist/index-8SZkg7s6.d.mts +353 -0
  94. package/dist/index-B3PK4FIn.d.mts +5116 -0
  95. package/dist/{index-D2jejYlV.d.mts → index-B80L4YqA.d.mts} +3 -3
  96. package/dist/index-BFg9BUpx.d.mts +355 -0
  97. package/dist/index-BGfWS6GE.d.mts +483 -0
  98. package/dist/{index-DQRsGXb5.d.mts → index-BVgfS-AJ.d.mts} +2 -2
  99. package/dist/{index-CnmPtjnA.d.mts → index-B_zQC98V.d.mts} +16 -16
  100. package/dist/{index-DaEp4UWW.d.mts → index-Bh_Ne7LF.d.mts} +54 -42
  101. package/dist/{index-yvN8UcEH.d.mts → index-Bvb2mMH6.d.mts} +109 -109
  102. package/dist/{index-tKvu34DJ2.d.mts → index-CCGVh9BF2.d.mts} +242 -28
  103. package/dist/{index-C-myW_aK.d.mts → index-CGmcS0Ma.d.mts} +2 -2
  104. package/dist/{index-DEw90pa2.d.mts → index-CLpjm52M.d.mts} +3 -3
  105. package/dist/{index-DQWMu5fS.d.mts → index-Caig6TeF.d.mts} +85 -99
  106. package/dist/{index-DwCA1HWa.d.mts → index-CelJCBjk.d.mts} +15 -15
  107. package/dist/{index-ESSDWIB7.d.mts → index-ChunCFu4.d.mts} +1 -1
  108. package/dist/{index-e5C62_M3.d.mts → index-Cm0dUkWL.d.mts} +819 -85
  109. package/dist/{index-N5K1NOYs.d.mts → index-CokQYGVP.d.mts} +4 -4
  110. package/dist/{index-Bigx81Kr.d.mts → index-Cs0kZXIz2.d.mts} +1 -1
  111. package/dist/{index-6lyShOoU.d.mts → index-D5d5HeWI2.d.mts} +34 -0
  112. package/dist/{index-sBob9D25.d.mts → index-D90OmGmV.d.mts} +3 -3
  113. package/dist/{index-D1T-PPqF.d.mts → index-D9MwJ2Q8.d.mts} +3 -3
  114. package/dist/{index-BePI0ckL.d.mts → index-DANINzMu.d.mts} +1 -1
  115. package/dist/{index-BnSQE7z7.d.mts → index-DBw-89vC2.d.mts} +129 -1332
  116. package/dist/{index-C_kS2aqV2.d.mts → index-DGBu6bHi2.d.mts} +14 -14
  117. package/dist/index-DKC62dY5.d.mts +146 -0
  118. package/dist/{index-7sXlairn2.d.mts → index-DKia0MX1.d.mts} +1 -1
  119. package/dist/{index-E8d_RwaF.d.mts → index-DMKnON5s.d.mts} +1 -1
  120. package/dist/{index-Cq8B7cwK.d.mts → index-DUaw0Dw8.d.mts} +1524 -369
  121. package/dist/{index-Dd5s4MSm.d.mts → index-De3kPhlN.d.mts} +2 -2
  122. package/dist/{index-DGTFJB_8.d.mts → index-L4GjJDKb.d.mts} +116 -23
  123. package/dist/{index-iID2R9G1.d.mts → index-U-A8eyGT.d.mts} +7 -7
  124. package/dist/{index-D7T8XCku.d.mts → index-eemAKwsB.d.mts} +23 -2
  125. package/dist/{index-BXP9GK5q.d.mts → index-mNec7V-9.d.mts} +27 -27
  126. package/dist/{index-CnZOKNjU.d.mts → index-soFznFCy2.d.mts} +2 -2
  127. package/dist/{index-Ch3ph52M2.d.mts → index-vtXJuwrz.d.mts} +2 -2
  128. package/dist/{index-BnNqbx2I.d.mts → index-x_lVDp_J.d.mts} +2 -2
  129. package/dist/json-value-CmhSGMLv.mjs +1 -0
  130. package/dist/kernel/cli/index.d.mts +4 -2
  131. package/dist/kernel/cli/index.mjs +1 -1
  132. package/dist/kernel/cli/schemas.d.mts +1 -0
  133. package/dist/kernel/cli/schemas.mjs +1 -1
  134. package/dist/kernel/extension/index.d.mts +1 -1
  135. package/dist/kernel/extension/index.mjs +1 -1
  136. package/dist/kernel/index.d.mts +5 -5
  137. package/dist/kernel/index.mjs +1 -1
  138. package/dist/kernel/namespace/index.d.mts +1 -1
  139. package/dist/kernel/namespace/index.mjs +1 -1
  140. package/dist/kernel/observability/index.d.mts +1 -1
  141. package/dist/kernel/observability/index.mjs +1 -1
  142. package/dist/kernel/providers/index.d.mts +1 -1
  143. package/dist/kernel/providers/index.mjs +1 -1
  144. package/dist/kernel/window/index.d.mts +1 -1
  145. package/dist/kernel/window/index.mjs +1 -1
  146. package/dist/materialization-CuUBu4XI.mjs +1 -0
  147. package/dist/{namespace-BpIE-jQW.d.mts → namespace-5QQqbF-B.d.mts} +1018 -111
  148. package/dist/{namespace-DwCyOaZn2.d.mts → namespace-BM7Djng9.d.mts} +3 -3
  149. package/dist/namespace-BwzZJqTV.mjs +1 -0
  150. package/dist/{namespace-DZcuLwEA.d.mts → namespace-CTm3nEvh.d.mts} +1 -1
  151. package/dist/{namespace-BK2erxpV.d.mts → namespace-CaaNnKcR.d.mts} +3 -3
  152. package/dist/{namespace-GLGGcWPH.d.mts → namespace-CaoZ3S78.d.mts} +1 -1
  153. package/dist/{namespace-DXnMk3U8.d.mts → namespace-CxhsoFUP.d.mts} +27 -31
  154. package/dist/{namespace-B1E57soL.d.mts → namespace-DD8Oiqo7.d.mts} +23 -23
  155. package/dist/{namespace-BCRNwPnw.d.mts → namespace-DLovh2Ws.d.mts} +21 -21
  156. package/dist/{namespace-Ysg1N6rR.d.mts → namespace-DgqkaOVu.d.mts} +26 -25
  157. package/dist/{namespace-B5ZCshBw.d.mts → namespace-Dr8K0MCp.d.mts} +82 -81
  158. package/dist/{namespace-DGMO2E8f.mjs → namespace-DuXK5AYN.mjs} +1 -1
  159. package/dist/{namespace-ZbthBQVt.d.mts → namespace-EQniz-Aw.d.mts} +14 -14
  160. package/dist/{namespace-C54Oj025.d.mts → namespace-IV1QK__V.d.mts} +1 -1
  161. package/dist/{namespace-BKrV_2gZ.d.mts → namespace-TyiTsLFv.d.mts} +46 -45
  162. package/dist/{namespace-OwAf1Brw.mjs → namespace-xcmbQlxh.mjs} +1 -1
  163. package/dist/{native-session-supervisor-zPt624Tp.mjs → native-session-supervisor-B1TnaPUF.mjs} +1 -1
  164. package/dist/node/bus-server/index.d.mts +1 -1
  165. package/dist/node/bus-server/index.mjs +1 -1
  166. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  167. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  168. package/dist/node/machine-identity/index.mjs +2 -2
  169. package/dist/node/transports/index.d.mts +200 -7
  170. package/dist/node/transports/index.mjs +2 -2
  171. package/dist/{orchestrator-shared-D2txLAUs.mjs → orchestrator-shared-CIDiFJMD.mjs} +1 -1
  172. package/dist/{orchestrator-shared-DrjtTXYh.d.mts → orchestrator-shared-Dfa7FMyw.d.mts} +5 -5
  173. package/dist/package-DKVlsMP3.mjs +1 -0
  174. package/dist/{profile-Cq4A7kQa.mjs → profile-6ynCD5k3.mjs} +1 -1
  175. package/dist/{provider-context-BB4eD8ON.mjs → provider-context-CK6B4X_8.mjs} +1 -1
  176. package/dist/providers/index.mjs +1 -1
  177. package/dist/{providers-namespace-CDwxY_DV.d.mts → providers-namespace-DSEpli4A.d.mts} +1 -1
  178. package/dist/{schema-B295yplx.d.mts → schema-M5YTvSAG.d.mts} +114 -2
  179. package/dist/{schema-C4iznV0q.mjs → schema-e0wU_lcV.mjs} +1 -1
  180. package/dist/{schema-introspection-DCYC47_d.mjs → schema-introspection-Dn1jWQs1.mjs} +1 -1
  181. package/dist/{schemas-C5xtVqdb.d.mts → schemas-Bd0OjRQf.d.mts} +1 -1
  182. package/dist/{schemas-Ra8pz5M-.d.mts → schemas-C46QfKzv.d.mts} +24 -28
  183. package/dist/{schemas-sshQEF3l.d.mts → schemas-CDBSjg7o.d.mts} +1 -1
  184. package/dist/schemas-CR1Rripy.mjs +1 -0
  185. package/dist/schemas-CVvwIfG4.mjs +1 -0
  186. package/dist/schemas-CaLhkkLn.mjs +1 -0
  187. package/dist/{schemas-DYqKRNju.d.mts → schemas-ClOOT1W6.d.mts} +4 -4
  188. package/dist/{schemas-BfMZAwff.d.mts → schemas-DATniTHb.d.mts} +8 -8
  189. package/dist/{schemas-BWvuaL0w.d.mts → schemas-DVF1A4DF.d.mts} +4 -4
  190. package/dist/{schemas-Di0XnnMX.d.mts → schemas-DaRSfYLf.d.mts} +1 -1
  191. package/dist/{schemas-C31qbb0s.d.mts → schemas-DiYVzG6e.d.mts} +51 -48
  192. package/dist/{schemas-KMA1efQg.d.mts → schemas-j7ivZ2HI.d.mts} +3 -3
  193. package/dist/schemas-wg_6PAdV.d.mts +153 -0
  194. package/dist/scoped-bus-04pwo1uM.mjs +1 -0
  195. package/dist/service-base/index.d.mts +1 -1
  196. package/dist/services/adapter-runtime/index.d.mts +3 -3
  197. package/dist/services/adapter-runtime/index.mjs +1 -1
  198. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  199. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  200. package/dist/services/adapter-subsystem/index.d.mts +2 -2
  201. package/dist/services/adapter-subsystem/index.mjs +1 -1
  202. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  203. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  204. package/dist/services/agent-runtime/index.d.mts +2 -2
  205. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  206. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  207. package/dist/services/capability/index.d.mts +1 -1
  208. package/dist/services/capability/index.mjs +1 -1
  209. package/dist/services/cli-detection/namespace.d.mts +1 -1
  210. package/dist/services/codebase/index.d.mts +2 -2
  211. package/dist/services/codebase/namespace.d.mts +1 -1
  212. package/dist/services/codebase/schemas.d.mts +1 -1
  213. package/dist/services/compression/index.d.mts +2 -2
  214. package/dist/services/compression/namespace.d.mts +1 -1
  215. package/dist/services/compression/schemas.d.mts +1 -1
  216. package/dist/services/context-rules/index.d.mts +4 -4
  217. package/dist/services/context-rules/index.mjs +1 -1
  218. package/dist/services/credential-change/index.d.mts +1 -1
  219. package/dist/services/definition/namespace.d.mts +1 -1
  220. package/dist/services/definition/schemas.d.mts +1 -1
  221. package/dist/services/dialog/namespace.d.mts +1 -1
  222. package/dist/services/dialog/schemas.d.mts +1 -1
  223. package/dist/services/execution-target/index.d.mts +4 -4
  224. package/dist/services/execution-target/index.mjs +1 -1
  225. package/dist/services/execution-target/namespace.d.mts +1 -1
  226. package/dist/services/execution-target/schemas.d.mts +1 -1
  227. package/dist/services/execution-target/schemas.mjs +1 -1
  228. package/dist/services/filesystem/index.d.mts +3 -0
  229. package/dist/services/filesystem/index.mjs +1 -0
  230. package/dist/services/filesystem/namespace.d.mts +7 -7
  231. package/dist/services/filesystem/schemas.d.mts +4 -4
  232. package/dist/services/git/namespace.d.mts +1163 -0
  233. package/dist/services/git/namespace.mjs +1 -0
  234. package/dist/services/git/schemas.d.mts +932 -0
  235. package/dist/services/git/schemas.mjs +1 -0
  236. package/dist/services/harness/index.d.mts +35 -35
  237. package/dist/services/harness/index.mjs +1 -1
  238. package/dist/services/harness/storage/schema.d.mts +5 -5
  239. package/dist/services/index.d.mts +1411 -928
  240. package/dist/services/index.mjs +1 -1
  241. package/dist/services/local-notification/index.d.mts +1 -1
  242. package/dist/services/local-notification/namespace.d.mts +1 -1
  243. package/dist/services/local-notification/schemas.d.mts +1 -1
  244. package/dist/services/log-import/browser.d.mts +2 -2
  245. package/dist/services/log-import/index.d.mts +23 -24
  246. package/dist/services/log-import/index.mjs +2 -2
  247. package/dist/services/log-import/log-import.d.mts +1 -1
  248. package/dist/services/log-import/log-import.mjs +1 -1
  249. package/dist/services/log-import/namespace.d.mts +1 -1
  250. package/dist/services/log-import/namespace.mjs +1 -1
  251. package/dist/services/log-import/schemas.d.mts +1 -1
  252. package/dist/services/log-import/schemas.mjs +1 -1
  253. package/dist/services/model-registry/index.d.mts +1 -1
  254. package/dist/services/model-registry/index.mjs +1 -1
  255. package/dist/services/preferences/index.d.mts +2 -2
  256. package/dist/services/preferences/schemas.d.mts +1 -1
  257. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  258. package/dist/services/provider-context/index.d.mts +1 -1
  259. package/dist/services/provider-context/index.mjs +1 -1
  260. package/dist/services/provider-runtime/index.d.mts +1 -1
  261. package/dist/services/provider-runtime/index.mjs +1 -1
  262. package/dist/services/session/handlers/index.d.mts +1 -1
  263. package/dist/services/session/handlers/index.mjs +1 -1
  264. package/dist/services/session/index.d.mts +10 -10
  265. package/dist/services/session/index.mjs +1 -1
  266. package/dist/services/session/messages/namespace.d.mts +1 -1
  267. package/dist/services/session/messages/namespace.mjs +1 -1
  268. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  269. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  270. package/dist/services/session/session-events/namespace.d.mts +1 -1
  271. package/dist/services/session/session-events/namespace.mjs +1 -1
  272. package/dist/services/session/storage/namespace.d.mts +1 -1
  273. package/dist/services/session/storage/schema.d.mts +1 -1
  274. package/dist/services/session/storage/schema.mjs +1 -1
  275. package/dist/services/session/testing/index.d.mts +2 -2
  276. package/dist/services/session/testing/index.mjs +16 -3
  277. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  278. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  279. package/dist/services/session/turns/namespace.d.mts +1 -1
  280. package/dist/services/session/turns/namespace.mjs +1 -1
  281. package/dist/services/session-editor/index.d.mts +3 -3
  282. package/dist/services/session-editor/index.mjs +1 -1
  283. package/dist/services/settings/index.d.mts +4 -4
  284. package/dist/services/settings/index.mjs +1 -1
  285. package/dist/services/settings/namespace.d.mts +19 -18
  286. package/dist/services/settings/namespace.mjs +1 -1
  287. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  288. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  289. package/dist/services/settings/storage/extension-configs/namespace.d.mts +4 -4
  290. package/dist/services/settings/storage/index.d.mts +3 -3
  291. package/dist/services/settings/storage/index.mjs +1 -1
  292. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  293. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  294. package/dist/services/subagent/index.d.mts +2 -0
  295. package/dist/services/subagent/index.mjs +1 -0
  296. package/dist/services/subagent-template/index.d.mts +3 -0
  297. package/dist/services/subagent-template/index.mjs +1 -0
  298. package/dist/services/subagent-template/namespace.d.mts +2 -0
  299. package/dist/services/subagent-template/namespace.mjs +1 -0
  300. package/dist/services/subagent-template/schemas.d.mts +2 -0
  301. package/dist/services/subagent-template/schemas.mjs +1 -0
  302. package/dist/services/tool-approval/index.d.mts +1 -1
  303. package/dist/services/tool-approval/index.mjs +1 -1
  304. package/dist/services/tools/index.d.mts +1 -1
  305. package/dist/services/tools/index.mjs +1 -1
  306. package/dist/services/tray-menu/index.d.mts +3 -3
  307. package/dist/services/tray-menu/index.mjs +1 -1
  308. package/dist/services/tray-menu/namespace.d.mts +1 -1
  309. package/dist/services/tray-menu/schemas.d.mts +1 -1
  310. package/dist/services/turn/index.d.mts +1 -1
  311. package/dist/services/turn/namespace.d.mts +1 -1
  312. package/dist/services/turn/schemas.d.mts +12 -12
  313. package/dist/session-BoldSdNZ2.mjs +134 -0
  314. package/dist/session-DuVOYctZ.mjs +1 -0
  315. package/dist/{session-lineage-B0cpHfuc.d.mts → session-lineage-CRsc9g1x.d.mts} +1 -1
  316. package/dist/shared-DpOEfD8F.mjs +1 -0
  317. package/dist/{skill-20_SBXaI.mjs → skill-CQO4mDqK.mjs} +1 -1
  318. package/dist/storage/drizzle/client.d.mts +2 -2
  319. package/dist/storage/drizzle/client.mjs +1 -1
  320. package/dist/storage/drizzle/index.d.mts +49 -10
  321. package/dist/storage/drizzle/index.mjs +1 -1
  322. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  323. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  324. package/dist/storage/handlers/index.d.mts +2 -2
  325. package/dist/storage/handlers/index.mjs +1 -1
  326. package/dist/storage/index.d.mts +4 -4
  327. package/dist/{storage-namespace-DoH-Wkjp.d.mts → storage-namespace-BXkoh5Sy.d.mts} +11 -11
  328. package/dist/storage-namespace-DWsYLAXa.mjs +1 -0
  329. package/dist/{storage-namespace-definition-CJgqyXH1.d.mts → storage-namespace-definition-Bkx5rSto.d.mts} +1 -1
  330. package/dist/style.css +540 -540
  331. package/dist/telemetry-CvdLBWuk.mjs +1 -0
  332. package/dist/testing/drizzle-harness.mjs +1 -1
  333. package/dist/testing/index.mjs +1 -1
  334. package/dist/tool-approval-service-BvZWhYZp.mjs +1 -0
  335. package/dist/tools/index.d.mts +20 -10
  336. package/dist/tools/index.mjs +1 -1
  337. package/dist/tools/testing/index.d.mts +1 -1
  338. package/dist/tools-D-luYcDw.mjs +1431 -0
  339. package/dist/{types-C11LvekX.d.mts → types-BCMUtBj1.d.mts} +117 -20
  340. package/dist/{types-vNpkAe4Y.d.mts → types-C2Ob9zz_.d.mts} +1 -1
  341. package/dist/{types-t295YC6T.d.mts → types-CCdqjeuH.d.mts} +2 -2
  342. package/dist/{types-Cvrj2ogm.d.mts → types-DZHvOc_Q.d.mts} +4 -4
  343. package/dist/{types--nrtGZ1V.d.mts → types-Dy3YTcTF.d.mts} +255 -97
  344. package/dist/{types-DYF5LxZY.d.mts → types-MfJZ67e9.d.mts} +91 -9
  345. package/dist/{types-6WxLfoM3.d.mts → types-dyP-bXXE.d.mts} +1 -1
  346. package/dist/ui-components/index.mjs +2 -2
  347. package/dist/ui-hooks/index.d.mts +111 -1
  348. package/dist/ui-hooks/index.mjs +1 -1
  349. package/dist/ui-kernel/index.d.mts +4 -4
  350. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  351. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  352. package/dist/ui-views/index.mjs +2 -2
  353. package/dist/utils/index.d.mts +36 -1
  354. package/dist/utils/index.mjs +2 -2
  355. package/dist/utils/project-manifest.d.mts +130 -0
  356. package/dist/utils/project-manifest.mjs +1 -0
  357. package/dist/utils/scope-paths.d.mts +33 -0
  358. package/dist/utils/scope-paths.mjs +1 -0
  359. package/dist/utils/workspace-packages.d.mts +59 -0
  360. package/dist/utils/workspace-packages.mjs +1 -0
  361. package/dist/utils/workspace-root.d.mts +6 -9
  362. package/dist/utils/workspace-root.mjs +1 -1
  363. package/dist/{version-D8S4O22A.mjs → version-BeT3ASEe.mjs} +1 -1
  364. package/package.json +55 -2
  365. package/dist/account-identity-Bg_vKkcs.mjs +0 -1
  366. package/dist/adapter-CpF2aK_-.mjs +0 -1
  367. package/dist/bus-B1seC4M_.mjs +0 -2
  368. package/dist/chunk-Dc06z0qk.mjs +0 -1
  369. package/dist/client-DMWXCWhM.mjs +0 -1
  370. package/dist/cursor-storage-BoNI7OAR.mjs +0 -1
  371. package/dist/drizzle-Bn2GtW8c.mjs +0 -1
  372. package/dist/execution-target-D6MgthYs.mjs +0 -1
  373. package/dist/extension-53GerdGg.mjs +0 -1
  374. package/dist/extension-fJmv8Yri.mjs +0 -1
  375. package/dist/namespace-C_h7scWx2.mjs +0 -1
  376. package/dist/schemas-Bn8aqDIE.mjs +0 -1
  377. package/dist/services/worker/index.d.mts +0 -3
  378. package/dist/services/worker/index.mjs +0 -1
  379. package/dist/services/worker/namespace.d.mts +0 -2
  380. package/dist/services/worker/namespace.mjs +0 -1
  381. package/dist/services/worker/schemas.d.mts +0 -2
  382. package/dist/services/worker/schemas.mjs +0 -1
  383. package/dist/session-BCSf-Fgj.mjs +0 -1
  384. package/dist/session-BNo_cIiz.mjs +0 -123
  385. package/dist/shared-BhuSHZXH.mjs +0 -1
  386. package/dist/storage-namespace-BIDs9LPb.mjs +0 -1
  387. package/dist/tool-approval-service-CZCPfvVy.mjs +0 -1
  388. package/dist/tools-Cid9D99F.mjs +0 -1
  389. /package/dist/{base-orchestrator-BOAPgqF7.d.mts → base-orchestrator-wyumsn3b.d.mts} +0 -0
  390. /package/dist/{capability-service-DV32ecwR.mjs → capability-service-CJbmhfv9.mjs} +0 -0
  391. /package/dist/{cleanEnvForAdapter-hTPNvPU5.mjs → cleanEnvForAdapter-KkYzQa1f.mjs} +0 -0
  392. /package/dist/{config-namespace-wJ2CakDB.mjs → config-namespace-ncYg2ct_.mjs} +0 -0
  393. /package/dist/{extension-namespace-CTd9kOtt.mjs → extension-namespace-cMh_mMiL.mjs} +0 -0
  394. /package/dist/{identity-DBST3-XO.mjs → identity-Cz2IeEtm.mjs} +0 -0
  395. /package/dist/{index-SzSiyG61.d.mts → index-CHQ1SqT0.d.mts} +0 -0
  396. /package/dist/{model-registry-xINyxQUT.mjs → model-registry-CfXytvzx.mjs} +0 -0
  397. /package/dist/{model-registry-Dzpssh9j.mjs → model-registry-Scn_MC2d.mjs} +0 -0
  398. /package/dist/{namespace-DBw9BYr8.mjs → namespace-BoD94mrN.mjs} +0 -0
  399. /package/dist/{namespace-DUVgMfTR.mjs → namespace-CFLAmQfh.mjs} +0 -0
  400. /package/dist/{namespace-aALq9tnE.mjs → namespace-DkRgbZYn.mjs} +0 -0
  401. /package/dist/{namespace-yxIxUsjo.mjs → namespace-LViZ-EQk.mjs} +0 -0
  402. /package/dist/{namespace-Zb8HAbyF.mjs → namespace-Yna5-Pws.mjs} +0 -0
  403. /package/dist/{platform-BMFUpmTA.mjs → platform-DZ7z-wXD.mjs} +0 -0
  404. /package/dist/{providers-DhiW_fx4.mjs → providers-u8i15co9.mjs} +0 -0
  405. /package/dist/{schema-D3ZG13h9.mjs → schema-CoyE6mPt.mjs} +0 -0
  406. /package/dist/{schemas-CEBe89yE.mjs → schemas-DE-GNmSD.mjs} +0 -0
  407. /package/dist/{schemas-COnLJnt_.mjs → schemas-hSrzflwZ.mjs} +0 -0
  408. /package/dist/{schemas-CrnlCRep.mjs → schemas-jFe1AuI-.mjs} +0 -0
  409. /package/dist/{server-lifecycle-Dx5WgfoS.mjs → server-lifecycle-FXTPW39-.mjs} +0 -0
  410. /package/dist/{server-lifecycle-BC6FRn86.d.mts → server-lifecycle-YoSGFGnU.d.mts} +0 -0
  411. /package/dist/{shared-schemas-Byah36lG.mjs → shared-schemas-CPShiLNp.mjs} +0 -0
  412. /package/dist/{storage-namespace-definition-BjK9nZAN.mjs → storage-namespace-definition-CqSdsuCC.mjs} +0 -0
  413. /package/dist/{timeout-D33CUZ0M.mjs → timeout-XsYIOKrc.mjs} +0 -0
  414. /package/dist/{tray-menu-service-BAYtLdAg.mjs → tray-menu-service-DuXq5k22.mjs} +0 -0
  415. /package/dist/{ui-config-zawaoEfB.mjs → ui-config-9bDRwFZr.mjs} +0 -0
  416. /package/dist/{variant-BZWfmS0q.mjs → variant-CT6XBP6T.mjs} +0 -0
  417. /package/dist/{visibility-CZu8ooOA.mjs → visibility-Cb62p9bv.mjs} +0 -0
  418. /package/dist/{window-registry-C_IJmY8_.d.mts → window-registry-CBcrGTv4.d.mts} +0 -0
  419. /package/dist/{window-registry-B_-hBEcV.mjs → window-registry-DW-dKRjQ.mjs} +0 -0
@@ -0,0 +1,134 @@
1
+ import{agents as e,sessions as t}from"./services/session/storage/schema.mjs";import{t as n}from"./schema-e0wU_lcV.mjs";import{n as r,r as i}from"./namespace-DuXK5AYN.mjs";import{SessionStorageNamespace as a,SessionStorageSubjects as o}from"./services/session/storage/namespace.mjs";import{A as s,D as c,E as l,F as u,O as d,P as f,T as p,b as m,d as h,f as g,j as _,k as v,u as ee,v as te}from"./handlers-CkTsQLra.mjs";import{TurnStorageSubjects as y}from"./services/turn/namespace.mjs";import{AdapterRuntimeSubjects as b}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as x}from"./services/session/messages/namespace.mjs";import{n as S}from"./namespace-LViZ-EQk.mjs";import{z as C}from"zod";import{MakaioBus as w,NoHandlerError as ne}from"@makaio/framework/bus";import{AdapterSubjects as T,AgentSubjects as E,CanonicalModelSubjects as re,CompressionModeSchema as ie,ForkTransformsSchema as ae,MessageRoutingSchema as oe,SessionContextSchema as se,SessionDiscoveredSchema as ce,SessionStorageSetRequestSchema as le,SessionStorageUpdateSchema as ue,SessionSubjects as D,compareMessageCursorAsc as de,compareMessageCursorDesc as fe,isCanonicalModelParseError as pe,messageToCursor as O,parseCanonicalModel as me}from"@makaio/framework/contracts";import{BaseService as he}from"@makaio/framework/service-base";import{index as ge,integer as _e,primaryKey as ve,sqliteTable as ye,text as k}from"drizzle-orm/sqlite-core";import{and as A,asc as j,count as M,desc as N,eq as P,gt as be,gte as xe,inArray as F,isNull as I,lt as Se,lte as Ce,or as we,sql as L}from"drizzle-orm";import{createStorageNamespaceDefinition as Te}from"@makaio/framework/storage";import{didAffectRows as R,sanitizeFtsQuery as Ee}from"@makaio/framework/storage/drizzle";import{ClientIdentityObservationSchema as De}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Oe}from"@makaio/framework/adapters";function ke(e){return e.on(D.agent.added,async t=>{let n=await e.requestOptional(o.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(o.set,{sessionId:t.payload.sessionId,session:r}))})}function Ae(e){return e.on(D.agent.removed,async t=>{let n=await e.requestOptional(o.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(await e.requestOptional(u.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),r.leadAgentId===t.payload.agentId&&(r.leadAgentId=void 0),r.lastActivityAt=Date.now(),await e.request(o.set,{sessionId:t.payload.sessionId,session:r}))})}function je(e){return[Me(e),Ne(e),Pe(e),Fe(e),Ie(e),Le(e),Re(e),ke(e.bus),Ae(e.bus)]}function Me(e){let{bus:t}=e;return t.on(D.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:s,forkTransforms:c,title:l,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:l,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:s,forkTransforms:c,targetWorkingDirectory:u,executionTargetId:d,spawningToolCallId:f},_=await t.requestOptional(o.set,{sessionId:m,session:g,ifAbsent:!0});if(_.handled&&!_.data.success){e.setResult({sessionId:m});return}await t.emit(D.created,{sessionId:m,createdAt:g.createdAt,parentSessionId:r??null,branchKind:s??null,originWindowId:p??`server`}),e.setResult({sessionId:m})})}function Ne(e){let{bus:t}=e;return t.on(D.get,async e=>{let n=await t.requestOptional(o.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function Pe(e){let{bus:t}=e;return t.on(D.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:s}=e.payload,c=await t.requestOptional(o.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:s}),l=c.handled?c.data.sessions:[],u=c.handled?c.data.total:0;e.setResult({sessions:l,total:u})})}function Fe(e){let{bus:t}=e;return t.on(D.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(o.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(o.set,{sessionId:n,session:i}),await t.emit(D.closed,{sessionId:n}),e.setResult({success:!0})})}function Ie(e){let{bus:t}=e;return t.on(D.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}=e.payload,s=await t.requestOptional(o.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),e.length>0&&await t.emit(D.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function Le(e){let{bus:t}=e;return t.on(D.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(o.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(o.set,{sessionId:n,session:i}),await t.emit(D.archived,{sessionId:n}),e.setResult({success:!0})})}function Re(e){let{bus:t}=e;return t.on(D.purge,async e=>{let{sessionId:n}=e.payload,i=await t.requestOptional(o.get,{sessionId:n}),a=i.handled?i.data.session:null;if(!a){e.setResult({success:!1,error:`Session not found`});return}if(a.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let s=await t.requestOptional(o.list,{status:`all`}),c=s.handled?s.data.sessions:[];for(let e of c)e.parentSessionId===n&&await t.requestOptional(o.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let l=await t.requestOptional(r.getEvents,{sessionId:n,options:{limit:1}}),u=l.handled?l.data.totalCount:0;await t.requestOptional(r.deleteBySession,{sessionId:n}),await t.requestOptional(o.delete,{sessionId:n}),await t.emit(D.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:u})})}var ze=class extends he{constructor(e=w){super(e)}async onInit(){for(let e of je({bus:this.bus}))this.addCleanup(e);await this.reconcileOrphanedTurns()}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(y.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(y.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});t&&await this.bus.emit(D.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 Be(e){return Error(`No adapter found for adapterName="${e}". Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}var Ve=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(T.initialized,e=>{this.registry.set(e.payload.adapterName,e.payload.adapterId)})}resolve(e){let t=this.registry.get(e);if(!t)throw Be(e);return t}async resolveAvailable(e){try{let{adapterId:t}=await this.bus.request(b.resolveId,{adapterName:e});return this.registry.set(e,t),t}catch{let t=this.registry.get(e);if(t)return t;throw Be(e)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};function He(e,t,n,i){return e.on(r.append,e=>{let{event:r}=e.payload,a=t.get(r.sessionId)??[];if(n.has(r.eventId)){e.setResult({success:!0});return}a.push(r),t.set(r.sessionId,a),n.set(r.eventId,i()),e.setResult({success:!0})})}function Ue(e,t,n){return e.on(r.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 We(e,t){return e.on(r.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 Ge(e,t,n){return e.on(r.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 Ke(e,t){return e.on(r.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 qe(e){let t=new Map,n=new Map,r=1,i=[He(e,t,n,()=>r++),Ue(e,t,n),We(e,t),Ge(e,t,n),Ke(e,t)];return()=>i.forEach(e=>e())}const Je=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function Ye(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))Je.includes(e)||(n[e]=r);return n}function Xe(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 Ze(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 Qe(e.payload)}}function Qe(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 $e({bus:e,db:t}){return e.on(r.append,async e=>{let{event:n}=e.payload,r=`payload`in n&&`agentId`in n.payload?n.payload.agentId:null,a=`payload`in n&&`adapterId`in n.payload?n.payload.adapterId:null,o=`payload`in n&&`turnId`in n.payload?n.payload.turnId:null,s=`payload`in n&&`messageId`in n.payload?n.payload.messageId:null,c=n.type===`message`?s:null,l=n.type===`message`?null:s,u={sessionId:n.sessionId,eventId:n.eventId,timestamp:n.timestamp,type:n.type,agentId:r,adapterId:a,messageId:c,originatingMessageId:l,turnId:o,contentText:Ze(n),payload:JSON.stringify(Ye(n))};await t.insert(i).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function et({bus:e,db:t}){return e.on(r.getEvents,async e=>{let{sessionId:n,options:r}=e.payload,a=[P(i.sessionId,n)],o=r?.order??`asc`;if(r?.after){let e=parseInt(r.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(Se(i.id,e)):a.push(be(i.id,e)))}r?.types&&r.types.length>0&&a.push(F(i.type,r.types));let s=r?.limit??100,c=o===`desc`?N:j,l=await t.select().from(i).where(A(...a)).orderBy(c(i.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(Xe),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function tt({bus:e,db:t}){return e.on(r.getByIds,async e=>{let{sessionId:n,eventIds:r}=e.payload,a=(await t.select().from(i).where(A(P(i.sessionId,n),F(i.eventId,r))).orderBy(j(i.timestamp))).map(Xe);e.setResult({events:a})})}function nt({bus:e,db:t}){return e.on(r.deleteBySession,async e=>{let{sessionId:n}=e.payload,r=(await t.select().from(i).where(P(i.sessionId,n))).length;await t.delete(i).where(P(i.sessionId,n)),e.setResult({success:!0,deletedCount:r})})}function rt({bus:e,db:t}){return e.on(r.getEventsBySessions,async e=>{let{sessionIds:n,types:r,limitPerSession:a=50}=e.payload;if(n.length===0||r.length===0){e.setResult({eventsBySession:{}});return}let o={};for(let e of n){let n=await t.select().from(i).where(A(P(i.sessionId,e),F(i.type,r))).orderBy(N(i.timestamp)).limit(a);n.length>0&&(o[e]=n.map(Xe))}e.setResult({eventsBySession:o})})}function it(e,t,n){let r={bus:e,db:t},i=[$e(r),et(r),tt(r),nt(r),rt(r)];return()=>i.forEach(e=>e())}async function at(e,t){e.emit(x.stored,{message:structuredClone(t)});try{await e.request(r.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 z(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 ot(e){let{bus:t,db:r}=e;return t.on(x.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await r.insert(n).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 at(t,s)})}function st(e){let{bus:t,db:r}=e;return t.on(x.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?N:j,l=r.select().from(n).where(P(n.sessionId,t)).orderBy(c(n.timestamp),c(n.messageId));if(a){let e=s===`desc`?we(Se(n.timestamp,a.timestamp),A(P(n.timestamp,a.timestamp),o?Ce(n.messageId,a.messageId):Se(n.messageId,a.messageId))):we(be(n.timestamp,a.timestamp),A(P(n.timestamp,a.timestamp),o?xe(n.messageId,a.messageId):be(n.messageId,a.messageId)));l=r.select().from(n).where(A(P(n.sessionId,t),e)).orderBy(c(n.timestamp),c(n.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?O(p[p.length-1]):null;e.setResult({messages:p.map(z),nextCursor:m})})}function ct(e){let{bus:t,db:r}=e;return t.on(x.getByTurn,async e=>{let{turnId:t}=e.payload,i=await r.select().from(n).where(P(n.turnId,t)).orderBy(j(n.timestamp));e.setResult({messages:i.map(z)})})}function lt(e){let{bus:t,db:r}=e;return t.on(x.get,async e=>{let{messageId:t}=e.payload,[i]=await r.select().from(n).where(P(n.messageId,t)).limit(1);e.setResult({message:i?z(i):null})})}function ut(e){let{bus:t,db:n}=e;return t.on(x.search,async e=>{let{query:t,sessionId:r,limit:i}=e.payload,a=i??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let o=Ee(t),s=L`
3
+ m.message_id AS messageId,
4
+ m.turn_id AS turnId,
5
+ m.session_id AS sessionId,
6
+ m.role AS role,
7
+ m.content_text AS contentText,
8
+ m.blocks AS blocks,
9
+ m.agent_id AS agentId,
10
+ m.adapter_session_id AS adapterSessionId,
11
+ m.adapter_message_id AS adapterMessageId,
12
+ m.timestamp AS timestamp,
13
+ m.edit_of AS editOf,
14
+ m.origin AS origin
15
+ `,c=r?L`
16
+ SELECT ${s}
17
+ FROM messages m
18
+ JOIN messages_fts fts ON m.rowid = fts.rowid
19
+ WHERE messages_fts MATCH ${o}
20
+ AND fts.session_id = ${r}
21
+ ORDER BY bm25(messages_fts)
22
+ LIMIT ${a}
23
+ `:L`
24
+ SELECT ${s}
25
+ FROM messages m
26
+ JOIN messages_fts fts ON m.rowid = fts.rowid
27
+ WHERE messages_fts MATCH ${o}
28
+ ORDER BY bm25(messages_fts)
29
+ LIMIT ${a}
30
+ `,l=await n.all(c),u=r?L`
31
+ SELECT COUNT(*) as count FROM messages_fts
32
+ WHERE messages_fts MATCH ${o}
33
+ AND session_id = ${r}
34
+ `:L`
35
+ SELECT COUNT(*) as count FROM messages_fts
36
+ WHERE messages_fts MATCH ${o}
37
+ `,[d]=await n.all(u),f=d?.count??0;e.setResult({messages:l.map(z),total:f})})}async function dt(e,t,n,r){let i=L`
38
+ m.message_id AS message_id,
39
+ fts.session_id AS session_id,
40
+ -bm25(messages_fts) AS score,
41
+ snippet(messages_fts, 1, '<mark>', '</mark>', '...', 40) AS excerpt
42
+ FROM messages_fts fts
43
+ JOIN messages m ON m.rowid = fts.rowid`;return r===void 0?e.all(L`
44
+ SELECT ${i}
45
+ WHERE messages_fts MATCH ${t}
46
+ ORDER BY score DESC
47
+ LIMIT ${n}
48
+ `):e.all(L`
49
+ SELECT ${i}
50
+ WHERE messages_fts MATCH ${t}
51
+ AND fts.session_id = ${r}
52
+ ORDER BY score DESC
53
+ LIMIT ${n}
54
+ `)}async function ft(e,t,n){return(await(n===void 0?e.all(L`
55
+ SELECT COUNT(*) AS total
56
+ FROM messages_fts
57
+ WHERE messages_fts MATCH ${t}
58
+ `):e.all(L`
59
+ SELECT COUNT(*) AS total
60
+ FROM messages_fts
61
+ WHERE messages_fts MATCH ${t}
62
+ AND session_id = ${n}
63
+ `)))[0]?.total??0}function pt(e){let{bus:t,db:n}=e;return t.on(x.ftsSearch,async e=>{let{query:t,sessionId:r,limit:i=20}=e.payload,a=t.trim();if(!a){e.setResult({results:[],total:0});return}let o=Ee(a),[s,c]=await Promise.all([dt(n,o,i,r),ft(n,o,r)]);e.setResult({results:s.map(e=>({messageId:e.message_id,sessionId:e.session_id,score:e.score,excerpt:e.excerpt})),total:c})})}function mt(e){let{bus:t,db:r}=e;return t.on(x.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await r.select().from(n).where(P(n.adapterMessageId,t)).limit(1);e.setResult({message:i?z(i):null})})}function ht(e){let{bus:t,db:r}=e;return t.on(x.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 r.select({messageId:n.messageId}).from(n).where(P(n.adapterMessageId,i)).limit(1);if(m){e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();await r.insert(n).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 at(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 gt(e,t,n){let r={bus:e,db:t},i=[ot(r),st(r),ct(r),lt(r),ut(r),pt(r),ht(r),mt(r)];return()=>i.forEach(e=>e())}function _t(e,t){return de(O(e),O(t))}function vt(e,t){return fe(O(e),O(t))}function yt(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=bt(t,n,r,i),o=[xt(e,t,a),St(e,t,n),Ct(e,t,r),wt(e,t),Tt(e,t),Et(e,i,a),Dt(e,t,n,r,i)];return()=>o.forEach(e=>e())}function bt(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 xt(e,t,n){return e.on(x.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 at(e,o)})}function St(e,t,n){return e.on(x.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`?vt:_t,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?fe(O(e),a):de(O(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?O(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function Ct(e,t,n){return e.on(x.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(_t);e.setResult({messages:i})})}function wt(e,t){return e.on(x.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function Tt(e,t){return e.on(x.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(_t),e.setResult({messages:c.slice(0,a),total:c.length})})}function Et(e,t,n){return e.on(x.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 at(e,g)})}function Dt(e,t,n,r,i){return e.on(o.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 B=ye(`message_routing`,{messageId:k(`message_id`).notNull().references(()=>n.messageId,{onDelete:`cascade`}),agentId:k(`agent_id`).notNull(),status:k(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:_e(`timestamp`).notNull(),error:k(`error`)},e=>[ve({columns:[e.messageId,e.agentId,e.status]}),ge(`idx_routing_agent`).on(e.agentId,e.timestamp)]),Ot=Te(`messageRouting`,{schemas:{record:{request:oe,response:C.object({success:C.boolean()})},getByMessage:{request:C.object({messageId:C.string()}),response:C.object({routing:C.array(oe)})},getCompleted:{request:C.object({messageId:C.string()}),response:C.object({agentIds:C.array(C.string())})},isComplete:{request:C.object({messageId:C.string(),targetAgentIds:C.array(C.string())}),response:C.object({complete:C.boolean(),pending:C.array(C.string())})}},extensions:{drizzle:{messageRouting:B}}}),V=Ot.subjects;function kt(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function At(e,t,n){let r=[];return r.push(e.on(V.record,async e=>{let{messageId:n,agentId:r,status:i,timestamp:a,error:o}=e.payload;await t.insert(B).values({messageId:n,agentId:r,status:i,timestamp:a,error:o??null}).onConflictDoUpdate({target:[B.messageId,B.agentId,B.status],set:{timestamp:a,error:o??null}}),e.setResult({success:!0})})),r.push(e.on(V.getByMessage,async e=>{let{messageId:n}=e.payload,r=await t.select().from(B).where(P(B.messageId,n));e.setResult({routing:r.map(kt)})})),r.push(e.on(V.getCompleted,async e=>{let{messageId:n}=e.payload,r=await t.select().from(B).where(A(P(B.messageId,n),P(B.status,`completed`)));e.setResult({agentIds:r.map(e=>e.agentId)})})),r.push(e.on(V.isComplete,async e=>{let{messageId:n,targetAgentIds:r}=e.payload,i=await t.select().from(B).where(A(P(B.messageId,n),P(B.status,`completed`))),a=new Set(i.map(e=>e.agentId)),o=r.filter(e=>!a.has(e));e.setResult({complete:o.length===0,pending:o})})),()=>r.forEach(e=>e())}var jt=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()}},Mt=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(y.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 _({sessionId:e,agentIds:t,turnId:a,turnNumber:o,initiator:n});return this.activeTurns.set(e,s),this.usageAccumulators.set(e,new jt),s}registerCompletionHandlers(e){this.cleanups.push(this.bus.on(E.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(E.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(y.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(y.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(D.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=l(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(D.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)}},Nt=class{bus;turnManager;adapterRegistry;cleanups=[];constructor(e=w,t){this.bus=e,this.turnManager=new Mt(e),this.adapterRegistry=new Ve(e),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(D.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:l}=e.payload,u=p(o,e.payload.extensionId),f=e.payload.sessionContext?se.parse(e.payload.sessionContext):void 0,{sessionId:m,session:g}=await c(this.bus,t,f,e.payload.originWindowId);if(g.agents.length===0){let e=await this.resolveInitialAdapterSelection(a,m,n,f),t=await this.resolveAdapterName(e,m),r=h(e.adapterId)??await this.adapterRegistry.resolveAvailable(t),i=await this.bus.request(T.startAgent,{adapterId:r,sessionId:m,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},...f!==void 0&&{sessionContext:f}});if(!i.success)throw Error(`[SessionOrchestrator.sendMessage] Failed to start agent (sessionId=${m}, adapterName=${t}): ${i.message}`);let o=Date.now();g.agents.push({agentId:i.agentId,adapterId:i.adapterId,adapterName:t,sessionId:m,role:`lead`,status:`idle`,createdAt:o,lastActivityAt:o}),g.leadAgentId=i.agentId}let _=d(g,r);if(_.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${m})`);let y=new Set;for(let e of _){let t=await this.bus.requestOptional(T.getAgent,{agentId:e.agentId,adapterId:e.adapterId});t.handled&&t.data.agent===null&&y.add(e.agentId)}let b;if(y.size>0){b=await te(this.bus,g);for(let e of _)y.has(e.agentId)&&await this.bus.requestOptional(T.rehydrateAgent,{agentId:e.agentId,adapterId:e.adapterId})}let S=this.turnManager.getActiveTurn(m),C=!S;S||=await this.turnManager.createTurn(m,_.map(e=>e.agentId),u,e.payload.turnId);let w=crypto.randomUUID();S.addMessage(w);let ne=s(n);this.bus.requestOptional(x.append,{message:{messageId:w,turnId:S.turnId,sessionId:m,role:`user`,contentText:v(n),blocks:ne,timestamp:Date.now(),...l!==void 0&&{origin:l}}}).catch(e=>{console.warn(`[SessionOrchestrator] Failed to store user message`,{sessionId:m,messageId:w,error:e instanceof Error?e.message:String(e)})});for(let e of _)this.bus.requestOptional(V.record,{messageId:w,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:m,messageId:w,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});C&&await this.bus.emit(D.turn.started,{sessionId:m,turnId:S.turnId,turnNumber:S.turnNumber,messageId:w,agentIds:[...S.agentIds],initiator:S.initiator}),await this.bus.emit(D.user_message.sent,{sessionId:m,turnId:S.turnId,turnNumber:S.turnNumber,messageId:w,content:n,agentIds:_.map(e=>e.agentId),...o!==void 0&&{source:o},...l!==void 0&&{origin:l}});let E=b?{...f,...b}:f;await ee(this.bus,g,_,n,w,S,i,this.completeTurn.bind(this),E,e.payload.responseSchema),e.setResult({messageId:w,turnId:S.turnId,sessionId:m})}))}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=h(e.adapterName),r=h(e.adapterId);if(!n&&!r)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${t})`);return r?g(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=me(e.model);if(pe(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(re.resolve,{parsed:i,context:{sessionId:t,promptText:v(n),...r===void 0?{}:{sessionContext:r}}});return{...e,...a,kind:`adapter`,providerConfigId:e.providerConfigId??a.providerConfigId}}},Pt=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(x.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof ne||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 Ft(e){let{bus:t}=e;return t.on(D.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:s}=await t.request(o.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:s})})}function It(e){let{bus:t}=e;return t.on(D.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(o.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(o.set,{sessionId:n,session:r}),await t.emit(D.resumed,{sessionId:n}),e.setResult({success:!0})})}function Lt(e){return e.on(S.listActions,e=>{let t=m.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const Rt=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function zt(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 Bt=class{bus;agentToSession=new Map;agentContext=new Map;agentBlocks=new Map;cleanups=[];constructor(e=w){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(D.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(D.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(D.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(D.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(E.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(E.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(E.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(E.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(E.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(`
64
+ `),s=crypto.randomUUID();try{if(!(await this.bus.requestOptional(x.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(x.getByTurn,{turnId:i.turnId});if(r.handled){let t=r.data.messages.find(e=>e.role===`user`);t&&await this.bus.requestOptional(V.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()}},Vt=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(D.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(D.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(D.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(D.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(D.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(D.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(D.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function Ht(e,t,n,r,i,a){return new Vt(e,t,n,r,i,a)}function Ut(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function H(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function U(e,t,n){let r=Ut(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(D.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function W(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function Wt(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 Gt(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}const Kt=Gt();function qt(e,t,n){n!==void 0&&(e[t]=n)}function Jt(e,t,n){let r=e.startedAt??n;return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:`discovered`,branchKind:W(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 Yt(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 Xt(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=W(t.kind);n!==void 0&&(e.branchKind=n),qt(e,`adapterId`,t.adapterId),qt(e,`clientId`,t.clientId)}function Zt(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 Qt(e,t,n){let r=e.discoveredAt;Yt(e,t,n),Xt(e,t),Zt(e,t,r)}function $t(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 en(e,t,n){if(n){e.emit(D.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(D.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function tn(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 nn(e,t,n){e.emit(D.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(D.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function rn(e){let{bus:t,store:n,cloneSession:r,populateAgents:i}=e;return[t.on(o.importUpsert,e=>{let r=e.payload,i=Array.from(n.values()).find(e=>e.adapterSessionId===r.externalSessionId&&e.source===r.source),a=Kt(),o=i===void 0,s=i??Jt(r,crypto.randomUUID(),a);i?(Qt(i,r,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&$t(n,i)):(n.set(s.sessionId,s),$t(n,s)),en(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),t.on(o.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(o.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(o.countBySource,e=>{let t=Array.from(n.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(tn(t))}),t.on(o.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}),nn(t,r,i)})]}async function an(e,t){let n=await e.requestOptional(u.listBySession,{sessionId:t});return n.handled?n.data.agents:[]}function G(e){return structuredClone(e)}function K(e,t,n){n!==void 0&&(e[t]=n)}function on(e,t,n){n!==void 0&&(e[t]=n??void 0)}function sn(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 cn(e,t){K(e,`status`,t.status),K(e,`parentSessionId`,t.parentSessionId),K(e,`contextInheritance`,t.contextInheritance),K(e,`rootSessionId`,t.rootSessionId),K(e,`forkPointMessageId`,t.forkPointMessageId),K(e,`branchKind`,t.branchKind),K(e,`isOrchestrated`,t.isOrchestrated),K(e,`clientId`,t.clientId),K(e,`clientAccountId`,t.clientAccountId),K(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),K(e,`title`,t.title),K(e,`targetWorkingDirectory`,t.targetWorkingDirectory),K(e,`createdAt`,t.createdAt),K(e,`lastActivityAt`,t.lastActivityAt),on(e,`executionTargetId`,t.executionTargetId),on(e,`approvalPolicyOverride`,t.approvalPolicyOverride),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function ln(e,t){return e.on(o.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=sn(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=>({...G(t),agents:await an(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function un(e,t){return e.on(o.update,async n=>{let r=structuredClone(ue.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}let a=G(i);H(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),cn(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),U(e,a,G(i))})}function dn(e){let t=new Map,n=[];return n.push(e.on(o.get,async n=>{let r=t.get(n.payload.sessionId);if(!r){n.setResult({session:null});return}let i=await an(e,n.payload.sessionId);n.setResult({session:{...G(r),agents:i}})})),n.push(e.on(o.set,async n=>{let{sessionId:r,session:i,ifAbsent:a}=le.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?G(s):null;H(s,o),t.set(r,o),n.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(o.clientAccountId??null)}),U(e,c,G(o))})),n.push(e.on(o.delete,async e=>{t.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),n.push(ln(e,t)),n.push(e.on(o.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(o.getStatusCounts,e=>{e.payload;let n=Array.from(t.values()),r=n.filter(e=>e.status===`active`).length,i=n.filter(e=>e.status===`closed`).length,a=n.filter(e=>e.status===`archived`).length,o=n.filter(e=>e.status===`discovered`).length;e.setResult({all:r+i+a+o,active:r,closed:i,archived:a,discovered:o})})),n.push(un(e,t)),n.push(fn(e,t)),n.push(...rn({bus:e,store:t,populateAgents:an,cloneSession:G})),()=>n.forEach(e=>e())}function fn(e,t){return e.on(o.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(u.listBySession,{sessionId:o.sessionId}),c=s.handled?s.data.agents:[];n.setResult({session:{...G(o),agents:c}})})}function pn(e){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return A(n===null?I(t.clientId):P(t.clientId,n),r===null?I(t.clientAccountId):P(t.clientAccountId,r),i===null?I(t.lastClientIdentityObservation):P(t.lastClientIdentityObservation,i))}const{agents:q}=f.extensions.drizzle;function J(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?ie.parse(e.compressionMode):void 0}}function mn(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 hn(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function gn(e){let{bus:t,db:n}=e;return t.on(u.get,async e=>{let[t]=await n.select().from(q).where(P(q.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?J(t):null})})}function _n(e){let{bus:t,db:n}=e;return t.on(u.set,async e=>{let{agent:t}=e.payload,r=mn(t),i=await n.insert(q).values(r).onConflictDoUpdate({target:q.agentId,set:r});e.setResult({success:R(i)})})}function vn(e){let{bus:t,db:n}=e;return t.on(u.delete,async e=>{let t=await n.delete(q).where(P(q.agentId,e.payload.agentId));e.setResult({success:R(t)})})}function yn(e){let{bus:t,db:n}=e;return t.on(u.listByAdapter,async e=>{let{adapterName:t,status:r}=e.payload,i=[P(q.adapterName,t)];r&&r!==`all`&&i.push(P(q.status,r));let a=i.length>1?A(...i):i[0],o=await n.select().from(q).where(a);e.setResult({agents:o.map(J)})})}function bn(e){let{bus:t,db:n}=e;return t.on(u.listBySession,async e=>{let{sessionId:t}=e.payload,r=await n.select().from(q).where(P(q.sessionId,t));e.setResult({agents:r.map(J)})})}function xn(e){let{bus:t,db:n}=e;return t.on(u.updateStatus,async e=>{let{agentId:t,status:r}=e.payload,i=Date.now(),a=await n.update(q).set({status:r,lastActivityAt:i}).where(P(q.agentId,t));e.setResult({success:R(a)})})}function Sn(e){let{bus:t,db:n}=e;return t.on(u.updateActivity,async e=>{let{agentId:t,lastActivityAt:r}=e.payload,i=await n.update(q).set({lastActivityAt:r}).where(P(q.agentId,t));e.setResult({success:R(i)})})}function Cn(e){let{bus:t,db:n}=e;return t.on(u.updateRuntime,async e=>{let{agentId:t,cwd:r,model:i,providerConfigId:a}=e.payload,o={lastActivityAt:Date.now()};r!==void 0&&(o.cwd=r),i!==void 0&&(o.model=i),a!==void 0&&(o.providerConfigId=a);let s=await n.update(q).set(o).where(P(q.agentId,t));e.setResult({success:R(s)})})}function wn(e,t,n){let r={bus:e,db:t},i=[gn(r),_n(r),vn(r),yn(r),bn(r),xn(r),Sn(r),Cn(r)];return()=>hn(i)}function Y(e){return e??void 0}function Tn(e){if(e)try{let t=JSON.parse(e),n=De.safeParse(t);return n.success?n.data:void 0}catch{return}}function En(e){if(e)try{let t=JSON.parse(e),n=ae.safeParse(t);return n.success?n.data:void 0}catch{return}}function X(e,t){let n=En(e.forkTransforms),r=Tn(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:Y(e.leadAgentId),parentSessionId:Y(e.parentSessionId),contextInheritance:Y(e.contextInheritance),rootSessionId:Y(e.rootSessionId),forkPointMessageId:Y(e.forkPointMessageId),branchKind:Y(e.branchKind),adapterName:Y(e.adapterName),adapterSessionId:Y(e.adapterSessionId),adapterId:Y(e.adapterId),clientId:Y(e.clientId),clientAccountId:Y(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:Y(e.isOrchestrated),isImported:Y(e.isImported),title:Y(e.title),summary:Y(e.summary),summaryUpdatedAt:Y(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:Y(e.targetWorkingDirectory),executionTargetId:Y(e.executionTargetId),agents:t.map(J),approvalPolicyOverride:Y(e.approvalPolicyOverride),spawningToolCallId:Y(e.spawningToolCallId),source:Y(e.source),parentExternalSessionId:Y(e.parentExternalSessionId),logFilePath:Y(e.logFilePath),discoveredAt:Y(e.discoveredAt),importStatus:Y(e.importStatus)}}function Dn(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 On(e,t,r){if(!r||t.length===0)return{};let i=e.select({sessionId:n.sessionId,minTimestamp:L`MIN(${n.timestamp})`.as(`min_timestamp`)}).from(n).where(A(P(n.role,`user`),F(n.sessionId,t))).groupBy(n.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:n.sessionId,preview:n.contentText}).from(n).innerJoin(i,A(P(n.sessionId,i.sessionId),P(n.timestamp,i.minTimestamp))).where(P(n.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let s=await e.select({sessionId:n.sessionId,count:M()}).from(n).where(F(n.sessionId,t)).groupBy(n.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);return{previewBySession:o,countBySession:c}}function kn(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function An(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function jn(n){let{bus:r,db:i}=n;return r.on(o.getByAdapterSessionId,async n=>{let{adapterSessionId:r,source:a}=n.payload,o=await i.select().from(t).where(a===void 0?P(t.adapterSessionId,r):A(P(t.adapterSessionId,r),P(t.source,a))).limit(2),s=o[0];if(o.length!==1||s===void 0){n.setResult({session:null});return}let c=await i.select().from(e).where(P(e.sessionId,s.sessionId));n.setResult({session:X(s,c)})})}const Mn=Gt();function Nn(e,n){return n===void 0?L`${e}`:L`
65
+ CASE
66
+ WHEN ${t.discoveredAt} IS NULL OR ${e} = ${t.discoveredAt} THEN ${n}
67
+ ELSE ${e}
68
+ END
69
+ `}function Pn(e){let{bus:n,db:r}=e;return n.on(o.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=Mn(),g=crypto.randomUUID(),_=u??h,v=W(f)??null,ee=p??null,[te]=await r.insert(t).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:ee,discoveredAt:h,title:d??null,createdAt:_,lastActivityAt:_}).onConflictDoUpdate({target:[t.source,t.adapterSessionId],set:{status:L`
70
+ CASE
71
+ WHEN COALESCE(${t.importStatus}, excluded.import_status) = 'discovered' THEN excluded.status
72
+ ELSE ${t.status}
73
+ END
74
+ `,isImported:!0,importStatus:L`COALESCE(${t.importStatus}, excluded.import_status)`,adapterName:L`COALESCE(${t.adapterName}, excluded.adapter_name)`,discoveredAt:L`COALESCE(${t.discoveredAt}, excluded.discovered_at)`,source:L`COALESCE(${t.source}, excluded.source)`,logFilePath:L`COALESCE(${t.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:L`COALESCE(excluded.target_working_directory, ${t.targetWorkingDirectory})`,title:L`COALESCE(excluded.title, ${t.title})`,forkPointMessageId:L`COALESCE(excluded.fork_point_message_id, ${t.forkPointMessageId})`,parentExternalSessionId:L`COALESCE(excluded.parent_external_session_id, ${t.parentExternalSessionId})`,branchKind:L`COALESCE(excluded.branch_kind, ${t.branchKind})`,adapterId:L`COALESCE(excluded.adapter_id, ${t.adapterId})`,clientId:L`COALESCE(excluded.client_id, ${t.clientId})`,createdAt:Nn(t.createdAt,u),lastActivityAt:Nn(t.lastActivityAt,u)}}).returning({sessionId:t.sessionId,discoveredAt:t.discoveredAt,parentExternalSessionId:t.parentExternalSessionId,parentSessionId:t.parentSessionId}),y=te.sessionId===g;await Fn(n,r,te,y,v,_,a),e.setResult({sessionId:te.sessionId,created:y})})}async function Fn(e,t,n,r,i,a,o){if(r){let r=await In(t,n.sessionId,n.parentExternalSessionId,o);e.emit(D.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 In(t,n.sessionId,n.parentExternalSessionId,o),e.emit(D.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function In(e,n,r,i){if(r===null)return null;let[a]=await e.select({sessionId:t.sessionId,rootSessionId:t.rootSessionId}).from(t).where(A(P(t.adapterSessionId,r),P(t.source,i))).limit(1);if(!a)return null;let o=a.rootSessionId??a.sessionId;return await e.update(t).set({parentSessionId:a.sessionId,rootSessionId:o}).where(P(t.sessionId,n)),a.sessionId}function Ln(n){let{bus:r,db:i}=n;return r.on(o.getByLogFilePath,async n=>{let{logFilePath:r}=n.payload,[a]=await i.select().from(t).where(P(t.logFilePath,r)).limit(1);if(!a){n.setResult({session:null});return}let o=await i.select().from(e).where(P(e.sessionId,a.sessionId));n.setResult({session:X(a,o)})})}function Rn(n){let{bus:r,db:i}=n;return r.on(o.listImported,async n=>{let{source:r,importStatus:a}=n.payload,o=[P(t.isImported,!0)];r!==void 0&&o.push(P(t.source,r)),a!==void 0&&o.push(P(t.importStatus,a));let s=A(...o),c=await i.select().from(t).where(s).orderBy(N(t.createdAt));if(c.length===0){n.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Dn(await i.select().from(e).where(F(e.sessionId,l)));n.setResult({sessions:c.map(e=>X(e,u.get(e.sessionId)??[]))})})}function zn(e){let{bus:n,db:r}=e;return n.on(o.countBySource,async e=>{let{source:n}=e.payload,i=await r.select({importStatus:t.importStatus,count:L`count(*)`}).from(t).where(A(P(t.isImported,!0),P(t.source,n))).groupBy(t.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 Bn(e){let{bus:n,db:r}=e;return n.on(o.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:L`
75
+ CASE
76
+ WHEN ${t.status} = 'discovered' THEN 'active'
77
+ ELSE ${t.status}
78
+ END
79
+ `}:{},[s]=await r.update(t).set({importStatus:a,...o}).where(A(P(t.sessionId,i),we(I(t.importStatus),L`${t.importStatus} <> ${a}`))).returning({adapterSessionId:t.adapterSessionId,adapterName:t.adapterName,source:t.source}),c=s!==void 0;if(e.setResult({success:c}),c){n.emit(D.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&&n.emit(D.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function Vn(e,t){let n={bus:e,db:t};return[Pn(n),Ln(n),Rn(n),zn(n),Bn(n)]}function Z(e){return e??null}function Hn(e){return e?JSON.stringify(e):null}function Un(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:Z(e.leadAgentId),parentSessionId:Z(e.parentSessionId),contextInheritance:Z(e.contextInheritance),rootSessionId:Z(e.rootSessionId),forkPointMessageId:Z(e.forkPointMessageId),branchKind:Z(e.branchKind),adapterName:Z(e.adapterName),adapterSessionId:Z(e.adapterSessionId),adapterId:Z(e.adapterId),clientId:Z(e.clientId),clientAccountId:Z(e.clientAccountId),lastClientIdentityObservation:Wn(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Z(e.title),summary:Z(e.summary),summaryUpdatedAt:Z(e.summaryUpdatedAt),forkTransforms:Hn(e.forkTransforms),targetWorkingDirectory:Z(e.targetWorkingDirectory),executionTargetId:Z(e.executionTargetId),approvalPolicyOverride:Z(e.approvalPolicyOverride),spawningToolCallId:Z(e.spawningToolCallId),source:Z(e.source),parentExternalSessionId:Z(e.parentExternalSessionId),logFilePath:Z(e.logFilePath),discoveredAt:Z(e.discoveredAt),importStatus:Z(e.importStatus)}}function Wn(e){return e?JSON.stringify(e):null}function Q(e,t,n){n!==void 0&&(e[t]=n)}function Gn(e,t,n){n!==void 0&&(e[t]=n??null)}function Kn(e){let n={};return Q(n,`status`,e.status),Q(n,`parentSessionId`,e.parentSessionId),Q(n,`contextInheritance`,e.contextInheritance),Q(n,`rootSessionId`,e.rootSessionId),Q(n,`forkPointMessageId`,e.forkPointMessageId),Q(n,`branchKind`,e.branchKind),Q(n,`isOrchestrated`,e.isOrchestrated),Q(n,`clientId`,e.clientId),Q(n,`clientAccountId`,e.clientAccountId),Q(n,`title`,e.title),Q(n,`targetWorkingDirectory`,e.targetWorkingDirectory),Q(n,`createdAt`,e.createdAt),Q(n,`lastActivityAt`,e.lastActivityAt),Gn(n,`executionTargetId`,e.executionTargetId),Gn(n,`approvalPolicyOverride`,e.approvalPolicyOverride),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=L`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=Wn(e.lastClientIdentityObservation)),n}function qn(n){let{bus:r,db:i}=n;return r.on(o.get,async n=>{let[r]=await i.select().from(t).where(P(t.sessionId,n.payload.sessionId)).limit(1);if(!r){n.setResult({session:null});return}let a=await i.select().from(e).where(P(e.sessionId,n.payload.sessionId));n.setResult({session:X(r,a)})})}function Jn(e){let{bus:n,db:r}=e;return n.on(o.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=le.parse(e.payload),s=Un(a);if(o){H(null,a);let o=R(await r.insert(t).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&U(n,null,a);return}for(let o=0;o<3;o++){let[o]=await r.select().from(t).where(P(t.sessionId,i)).limit(1),c=o?X(o,[]):null;if(H(c,a),R(await r.insert(t).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:t.sessionId,set:s,setWhere:pn(o)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),U(n,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function Yn(e){let{bus:n,db:r}=e;return n.on(o.delete,async e=>{await r.delete(t).where(P(t.sessionId,e.payload.sessionId)),e.setResult({success:!0})})}function Xn(e){let{bus:n,db:r}=e;return n.on(o.update,async e=>{let i=ue.request.parse(e.payload),{sessionId:a}=i,o=Kn(i),s=An(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}if(!s){let n=await r.update(t).set(o).where(P(t.sessionId,a));e.setResult({success:R(n),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await r.select().from(t).where(P(t.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let c=X(s,[]),l=kn(c,i);if(H(c,l),R(await r.update(t).set(o).where(A(P(t.sessionId,a),pn(s))))){e.setResult({success:!0,clientAccountChanged:(c.clientAccountId??null)!==(l.clientAccountId??null)}),U(n,c,l);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function Zn(e){let n=[];return e.status!==`all`&&n.push(P(t.status,e.status)),e.executionTargetId!==void 0&&n.push(P(t.executionTargetId,e.executionTargetId)),A(...n)}function Qn(n){let{bus:r,db:i}=n;return r.on(o.list,async n=>{let{status:r=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=n.payload,l=Zn({status:r,executionTargetId:c}),u=l?i.select().from(t).where(l):i.select().from(t),d=a===void 0?await u.orderBy(N(t.lastActivityAt)):await u.orderBy(N(t.lastActivityAt)).limit(a).offset(o),[f]=await(l?i.select({count:M()}).from(t).where(l):i.select({count:M()}).from(t)),p=f?.count??0;if(d.length===0){n.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Dn(await i.select().from(e).where(F(e.sessionId,m))),{previewBySession:g,countBySession:_}=await On(i,m,s),v=d.map(e=>{let t=X(e,h.get(e.sessionId)??[]);return s&&g&&_?{...t,preview:{messageCount:_.get(e.sessionId)??0,firstUserMessage:g.get(e.sessionId)??null}}:t});n.setResult({sessions:v,total:p})})}function $n(e){let{bus:r,db:i}=e;return r.on(o.getChildren,async e=>{let{sessionId:r}=e.payload,a=await i.select().from(t).where(P(t.parentSessionId,r));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await i.select({sessionId:n.sessionId,count:M()}).from(n).where(F(n.sessionId,o)).groupBy(n.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await i.select({parentSessionId:t.parentSessionId,count:M()}).from(t).where(F(t.parentSessionId,o)).groupBy(t.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 i.select({messageId:n.messageId,adapterMessageId:n.adapterMessageId}).from(n).where(F(n.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})})}function er(e){let{bus:n,db:r}=e;return n.on(o.getStatusCounts,async e=>{e.payload;let n=await r.select({status:t.status,count:M()}).from(t).groupBy(t.status),i=0,a=0,o=0,s=0;for(let e of n)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 tr(e,t,n){let r={bus:e,db:t},i=[qn(r),Jn(r),Yn(r),Xn(r),Qn(r),$n(r),jn(r),er(r),...Vn(e,t)];return()=>i.forEach(e=>e())}function nr(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 rr(e){let t=new Map,n=[];return n.push(e.on(u.get,e=>{let n=t.get(e.payload.agentId)??null;e.setResult({agent:n})})),n.push(e.on(u.set,e=>{t.set(e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),n.push(e.on(u.delete,e=>{let n=t.delete(e.payload.agentId);e.setResult({success:n})})),n.push(e.on(u.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(u.listBySession,e=>{let n=Array.from(t.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:n})})),n.push(e.on(u.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(u.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(u.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(!nr(n,r,i,a)){e.setResult({success:!1});return}n.lastActivityAt=Date.now(),e.setResult({success:!0})})),()=>n.forEach(e=>e())}async function ir(t,n){if(n.length===0)return new Map;let r=[...new Set(n)],i=await t.select().from(e).where(F(e.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 ar(e,t){if(t.length===0)return new Map;let n=[...new Set(t)],r=await e.all(L`
80
+ SELECT m.session_id as sessionId, m.content_text as preview
81
+ FROM messages m
82
+ WHERE m.role = 'user'
83
+ AND m.session_id IN (${L.join(n.map(e=>L`${e}`),L`, `)})
84
+ AND NOT EXISTS (
85
+ SELECT 1
86
+ FROM messages m2
87
+ WHERE m2.session_id = m.session_id
88
+ AND m2.role = 'user'
89
+ AND (m2.timestamp < m.timestamp OR (m2.timestamp = m.timestamp AND m2.rowid < m.rowid))
90
+ )
91
+ `),i=new Map;for(let e of r)i.set(e.sessionId,e.preview);return i}async function or(e,t){if(t.length===0)return new Map;let r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:M()}).from(n).where(F(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function sr(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function cr(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:sr(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 lr(e){let t=[];return e.status!==`all`&&t.push(L`s.status = ${e.status}`),e.isImported!==void 0&&t.push(e.isImported?L`s.is_imported = 1`:L`COALESCE(s.is_imported, 0) = 0`),t.length===0?L``:L` AND ${L.join(t,L` AND `)}`}async function ur(e,t,n,r,i){let a=lr(i);return e.all(L`
92
+ SELECT DISTINCT
93
+ s.session_id,
94
+ s.created_at,
95
+ s.last_activity_at,
96
+ s.status,
97
+ s.title,
98
+ s.lead_agent_id,
99
+ s.parent_session_id,
100
+ s.root_session_id,
101
+ s.fork_point_message_id,
102
+ s.branch_kind,
103
+ s.adapter_name,
104
+ s.adapter_session_id,
105
+ s.adapter_id,
106
+ s.is_orchestrated,
107
+ s.is_imported,
108
+ s.summary,
109
+ s.summary_updated_at,
110
+ s.fork_transforms,
111
+ s.target_working_directory
112
+ FROM sessions s
113
+ WHERE (
114
+ s.session_id IN (
115
+ SELECT session_id FROM messages_fts
116
+ WHERE messages_fts MATCH ${t}
117
+ )
118
+ OR LOWER(s.title) LIKE ${n}
119
+ )
120
+ ${a}
121
+ ORDER BY s.last_activity_at DESC
122
+ LIMIT ${r}
123
+ `)}async function dr(e,t,n,r){let i=lr(r),[a]=await e.all(L`
124
+ SELECT COUNT(DISTINCT s.session_id) as total
125
+ FROM sessions s
126
+ WHERE (
127
+ s.session_id IN (
128
+ SELECT session_id FROM messages_fts
129
+ WHERE messages_fts MATCH ${t}
130
+ )
131
+ OR LOWER(s.title) LIKE ${n}
132
+ )
133
+ ${i}
134
+ `);return a?.total??0}function fr(e,t){let n=[];return n.push(e.on(o.search,async e=>{let{query:n,limit:r=20,status:i=`all`,isImported:a}=e.payload,o=n.trim();if(!o){e.setResult({sessions:[],total:0});return}let s=`%${o.toLowerCase()}%`,c={status:i,isImported:a},l=await ur(t,o,s,r,c);if(l.length===0){e.setResult({sessions:[],total:0});return}let u=await dr(t,o,s,c),d=l.map(e=>e.session_id),f=await ir(t,d),p=await ar(t,d),m=await or(t,d),h=l.map(e=>cr(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>n.forEach(e=>e())}var pr=class{bus;options;cleanups=[];transform;constructor(e=w,t={}){this.bus=e,this.options=t,this.transform=t.transform??(e=>e),this.registerHandlers()}async emitStorageEvent(e,t,n){let i={sessionId:t,eventId:crypto.randomUUID(),timestamp:Date.now(),type:e,payload:n},a=this.transform(i);a&&await this.bus.request(r.append,{event:a})}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(D.agent.added,`agent.added`),this.registerHandler(D.turn.started,`turn.started`),this.registerHandler(D.turn.completed,`turn.completed`),this.registerHandler(D.branch.created,`branch.created`)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0}};const $=ye(`import_cursors`,{filePath:k(`file_path`).primaryKey(),bytesRead:_e(`bytes_read`).notNull(),lastModified:k(`last_modified`).notNull(),updatedAt:_e(`updated_at`).notNull()});function mr(e,t,n){let r=[];return r.push(e.on(Oe.get,async e=>{let{filePath:n}=e.payload,r=(await t.select().from($).where(P($.filePath,n)).limit(1))[0];if(!r){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:r.filePath,bytesRead:r.bytesRead,lastModified:r.lastModified}})})),r.push(e.on(Oe.set,async e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;await t.insert($).values({filePath:n,bytesRead:r,lastModified:i,updatedAt:Date.now()}).onConflictDoUpdate({target:$.filePath,set:{bytesRead:r,lastModified:i,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(Oe.delete,async e=>{let{filePath:n}=e.payload,r=await t.delete($).where(P($.filePath,n));e.setResult({success:R(r)})})),()=>{r.forEach(e=>e())}}var hr=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 _({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await this.emit(D.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(D.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 gr(e,t){let{sessions:n}=a.extensions.drizzle;async function r(i,a,s,c=0){if(c>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let l=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(A(P(n.parentExternalSessionId,i),P(n.source,a)));for(let t of l)t.parentSessionId!==null&&await e.request(o.update,{sessionId:t.sessionId,rootSessionId:s}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,s,c+1)}return e.on(D.import.completed,async i=>{let{adapterSessionId:a,sessionId:s,source:c}=i.payload,l=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(A(P(n.parentExternalSessionId,a),P(n.source,c),I(n.parentSessionId)));if(l.length===0)return;let{session:u}=await e.request(o.get,{sessionId:s}),d=u?.rootSessionId??s;for(let t of l)await e.request(o.update,{sessionId:t.sessionId,parentSessionId:s,rootSessionId:d,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,c,d)})}const _r=new Set([`Agent`,`spawn_subagent`]),vr=`[^A-Za-z0-9_-]`;function yr(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function br(e,t){return t.test(e)}async function xr(e,t){let n=[],r,i=0;do{let a=await e.request(x.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 Sr(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&_r.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function Cr(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 Tr(e){return[...e].map(e=>{let t=yr(e);return{id:e,pattern:RegExp(`(^|${vr})${t}($|${vr})`)}})}async function Er(e,t,n){let{children:r}=await e.request(o.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(o.get,{sessionId:t}),s=a?.adapterSessionId;if(!s)return;let c=Tr(new Set([s])),l=(await Promise.all(i.map(async t=>{let n=await xr(e,t.sessionId),r=Sr(n);if(r.length===0)return null;let i=Cr(n,c);if(i.size===0)return null;let a=[...i.entries()].filter(([,e])=>e===s);if(a.length!==1)return null;let[o]=a[0];return r.some(e=>e.toolCallId===o)?{parentSessionId:t.sessionId,toolCallId:o}:null}))).filter(e=>e!==null);l.length===1&&await e.request(o.update,{sessionId:t,parentSessionId:l[0].parentSessionId,spawningToolCallId:l[0].toolCallId})}async function Dr(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:s}=await e.request(o.getByAdapterSessionId,{adapterSessionId:r,source:i}),c=s?.sessionId;if(!c)return;let{children:l}=await e.request(o.getChildren,{sessionId:c}),u=await Or(e,l);if(u.size===0)return;let d=await xr(e,a),f=Sr(d);if(f.length===0)return;let p=Cr(d,Tr(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(o.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:c,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(g)}async function Or(e,t){return wr(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(o.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function kr(e){return e.on(D.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(o.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await Er(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await Dr(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Ar(e){return[...e].map(e=>{let t=yr(e);return{id:e,pattern:RegExp(`(^|${vr})${t}($|${vr})`)}})}async function jr(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(o.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Mr(e){return e.on(D.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(o.getChildren,{sessionId:n}),a=await jr(e,r,i),s=new Set(a.keys());if(s.size===0)return;let c=await xr(e,n),l=Sr(c);if(l.length===0)return;let u=Cr(c,Ar(s)),d=new Map;for(let e of l){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 l){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(o.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(o.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 Nr(e){return e.on(T.session.discovered,async t=>{let n=ce.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:s,title:c,logFilePath:l,startedAt:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=Wt({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(o.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:s??null,...c===void 0?{}:{title:c},...l===void 0?{}:{logFilePath:l},...u===void 0?{}:{startedAt:u},...m})})}var Pr=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(E.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{Lt as A,yt as B,W as C,Bt as D,Ht as E,Mt as F,ze as G,it as H,At as I,je as K,Ot as L,It as M,Pt as N,zt as O,Nt as P,V as R,dn as S,Vt as T,qe as U,gt as V,Ve as W,tr as _,gr as a,X as b,$ as c,ir as d,or as f,rr as g,sr as h,kr as i,Ft as j,Rt as k,pr as l,cr as m,Nr as n,hr as o,ar as p,Mr as r,mr as s,Pr as t,fr as u,On as v,Wt as w,wn as x,Dn as y,B as z};
@@ -0,0 +1 @@
1
+ import{A as e,F as t,G as n,H as r,N as i,P as a,U as ee,at as o,it as s,j as c,rt as l,tt as te,y as u}from"./schemas-CaLhkkLn.mjs";import{t as d}from"./schemas-hSrzflwZ.mjs";import{i as f}from"./account-identity-DT5NOtFi.mjs";import{CompressSessionLineageSchema as p,ForkSessionLineageSchema as m,RootSessionLineageSchema as h,SubagentSessionLineageSchema as g}from"./contracts/adapter/schemas/session-lineage.mjs";import{t as _}from"./storage-namespace-definition-CqSdsuCC.mjs";import{z as v}from"zod";import{createBusNamespace as y}from"@makaio/framework/core";const b=y(`session`,u),x=b.subjects;function S(e){return c.includes(e.type)}const C=`ui-warnings`,w=`connector-swap-warning-suppressed`,T=1440*60*1e3,E={cancel:`cancel`,edit:`edit`,continue:`continue`},D=`CONNECTOR_SWAP_CANCELLED`;var O=class extends Error{code=D;constructor(){super(`Connector swap cancelled by user`),this.name=`ConnectorSwapCancelledError`}};function k(e){return e instanceof O||e instanceof Error&&`code`in e&&e.code===`CONNECTOR_SWAP_CANCELLED`}const A={branch:{label:`branch`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},subagent:{label:`subagent`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},fork:{label:`fork`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},compress:{label:`compress`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},rewrite:{label:`rewrite`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},coordinator:{label:`coordinator`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1},aside:{label:`aside`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1}};function j(e){return e!=null&&A[e].staysInView}function M(e){return e==null||A[e].navigatesToChild}function N(e){return e!=null&&A[e].canMergeBack}function P(e){return A[e]}const F=v.object({timestamp:v.number(),messageId:v.string()}),I=_(`message`,{schemas:{append:{request:v.object({message:n.omit({messageId:!0}).extend({messageId:v.string().optional()}),emitEvent:v.boolean().optional()}),response:v.object({message:n})},getBySession:{request:v.object({sessionId:v.string(),limit:v.number().int().min(1).optional(),after:F.optional(),includeAfter:v.boolean().optional(),order:v.enum([`asc`,`desc`]).optional()}),response:v.object({messages:v.array(n),nextCursor:F.nullable()})},getByTurn:{request:v.object({turnId:v.string()}),response:v.object({messages:v.array(n)})},get:{request:v.object({messageId:v.string()}),response:v.object({message:n.nullable()})},getByAdapterMessageId:{request:v.object({adapterMessageId:v.string()}),response:v.object({message:n.nullable()})},search:{request:v.object({query:v.string(),sessionId:v.string().optional(),limit:v.number().int().min(1).optional()}),response:v.object({messages:v.array(n),total:v.number()})},ftsSearch:{request:v.object({query:v.string(),sessionId:v.string().optional(),limit:v.number().int().min(1).optional().default(20)}),response:v.object({results:v.array(v.object({messageId:v.string(),sessionId:v.string(),score:v.number(),excerpt:v.string()})),total:v.number()})},upsertByAdapterMessageId:{request:v.object({sessionId:v.string(),turnId:v.string().nullable(),adapterMessageId:v.string(),role:v.enum([`user`,`assistant`]),contentText:v.string(),blocks:v.array(r),agentId:v.string().optional(),adapterSessionId:v.string().optional(),timestamp:v.number(),origin:ee.optional()}),response:v.object({messageId:v.string(),created:v.boolean()})},stored:v.object({message:n})}}),L=I.subjects;function R(e,t){return e.timestamp===t.timestamp?e.messageId.localeCompare(t.messageId):e.timestamp-t.timestamp}function z(e,t){return R(t,e)}function B(e){return{timestamp:e.timestamp,messageId:e.messageId}}function V(e){return`${e.timestamp}:${e.messageId}`}const H=v.object({after:v.string().optional(),limit:v.number().int().min(1).optional(),types:v.array(v.string()).optional(),includeReasoning:v.boolean().optional(),order:v.enum([`asc`,`desc`]).optional()}),U=v.object({events:v.array(e),nextCursor:v.string().nullable(),totalCount:v.number().optional()}),W=_(`sessionEvent`,{schemas:{append:{request:v.object({event:e}),response:v.object({success:v.boolean()})},getEvents:{request:v.object({sessionId:v.string(),options:H.optional()}),response:U},getByIds:{request:v.object({sessionId:v.string(),eventIds:v.array(v.string())}),response:v.object({events:v.array(e)})},deleteBySession:{request:v.object({sessionId:v.string()}),response:v.object({success:v.boolean(),deletedCount:v.number().optional()})},getEventsBySessions:{request:v.object({sessionIds:v.array(v.string()),types:v.array(v.string()),limitPerSession:v.number().int().min(1).optional()}),response:v.object({eventsBySession:v.record(v.string(),v.array(e))})}}}),G=W.subjects,K=i.extend({preview:a});function q(e,t){e.clientAccountId!==void 0&&e.lastClientIdentityObservation===void 0&&t.addIssue({code:v.ZodIssueCode.custom,path:[`lastClientIdentityObservation`],message:`lastClientIdentityObservation is required when clientAccountId is provided`}),e.clientAccountId!==void 0&&e.clientId===void 0&&t.addIssue({code:v.ZodIssueCode.custom,path:[`clientId`],message:`clientId is required when clientAccountId is provided`})}const J=i.superRefine((e,t)=>{q(e,t)}),Y=v.object({sessionId:v.string(),session:J,ifAbsent:v.boolean().optional()}).superRefine((e,t)=>{e.sessionId!==e.session.sessionId&&t.addIssue({code:v.ZodIssueCode.custom,path:[`session`,`sessionId`],message:`session.sessionId must match the top-level sessionId`})}),X={request:v.object({sessionId:v.string(),status:v.enum([`active`,`closed`,`archived`,`discovered`]).optional(),parentSessionId:v.string().optional(),contextInheritance:o.optional(),rootSessionId:v.string().optional(),forkPointMessageId:v.string().optional(),branchKind:l.optional(),isOrchestrated:v.boolean().optional(),clientId:v.string().optional(),clientAccountId:v.string().optional(),lastClientIdentityObservation:f.optional(),executionTargetId:v.string().nullable().optional(),approvalPolicyOverride:d.nullable().optional(),title:v.string().optional(),targetWorkingDirectory:v.string().optional(),createdAt:v.number().finite().optional(),lastActivityAt:v.number().finite().optional(),spawningToolCallId:v.string().nullable().optional()}),response:v.object({success:v.boolean(),clientAccountChanged:v.boolean().optional()})},Z=v.object({externalSessionId:v.string(),source:v.string(),clientId:v.string().optional(),adapterId:v.string().optional(),cwd:v.string().nullable(),logFilePath:v.string().nullable().optional(),startedAt:v.number().finite().optional(),title:v.string().nullable().optional()}),Q=v.discriminatedUnion(`kind`,[Z.merge(h),Z.merge(m),Z.merge(g),Z.merge(p)]),$=_(`session`,{schemas:{get:{request:v.object({sessionId:v.string()}),response:v.object({session:i.nullable()})},set:{request:Y,response:v.object({success:v.boolean(),clientAccountChanged:v.boolean().optional()})},delete:{request:v.object({sessionId:v.string()}),response:v.object({success:v.boolean()})},list:{request:v.object({status:v.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:v.number().int().min(1).optional(),offset:v.number().int().min(0).optional(),includePreview:v.boolean().optional(),executionTargetId:v.string().optional()}),response:v.object({sessions:v.array(t),total:v.number()})},getChildren:{request:v.object({sessionId:v.string()}),response:v.object({children:v.array(te)})},search:{request:v.object({query:v.string(),limit:v.number().int().min(1).optional(),status:v.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:v.boolean().optional()}),response:v.object({sessions:v.array(K),total:v.number()})},update:X,getByAdapterSessionId:{request:v.object({adapterSessionId:v.string(),source:v.string().optional()}),response:v.object({session:i.nullable()})},getStatusCounts:{request:v.object({}),response:v.object({all:v.number(),active:v.number(),closed:v.number(),archived:v.number(),discovered:v.number()})},importUpsert:{request:Q,response:v.object({sessionId:v.string(),created:v.boolean()})},getByLogFilePath:{request:v.object({logFilePath:v.string()}),response:v.object({session:i.nullable()})},listImported:{request:v.object({source:v.string().optional(),importStatus:s.optional()}),response:v.object({sessions:v.array(i)})},countBySource:{request:v.object({source:v.string()}),response:v.object({total:v.number(),imported:v.number(),discovered:v.number(),tracking:v.number()})},updateImportStatus:{request:v.object({sessionId:v.string(),importStatus:s}),response:v.object({success:v.boolean()})}}}),ne=$.subjects;export{w as C,b as D,S as E,x as O,E as S,C as T,N as _,X as a,O as b,R as c,B as d,F as f,j as g,P as h,ne as i,z as l,L as m,Y as n,W as o,I as p,J as r,G as s,$ as t,V as u,M as v,T as w,k as x,D as y};
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
 
3
- //#region packages/contracts/src/adapter/schemas/session-lineage.d.ts
3
+ //#region core/contracts/src/adapter/schemas/session-lineage.d.ts
4
4
  /** Closed set of adapter session lineage kinds. */
5
5
  declare const SESSION_LINEAGE_KINDS: readonly ["root", "fork", "subagent", "compress"];
6
6
  /** Canonical root lineage literal. */
@@ -0,0 +1 @@
1
+ import{r as e}from"./json-value-CmhSGMLv.mjs";import"./ui-config-9bDRwFZr.mjs";import{z as t}from"zod";const n=t.string().max(64).regex(/^[a-zA-Z0-9_-]+$/),r=t.object({schema:e,name:n.optional(),strict:t.boolean().optional()}).strict(),i=t.object({message:t.string(),instancePath:t.string(),schemaPath:t.string()}).strict(),a=t.enum([`passed`,`failed`,`enforced`]),o=t.discriminatedUnion(`status`,[t.object({status:t.literal(`passed`)}).strict(),t.object({status:t.literal(`enforced`)}).strict(),t.object({status:t.literal(`failed`),errors:t.array(i).min(1)}).strict()]),s=t.discriminatedUnion(`type`,[t.object({type:t.literal(`base64`),data:t.string(),mimeType:t.string()}),t.object({type:t.literal(`url`),url:t.string(),mimeType:t.string().optional()})]),c=t.enum([`file`,`directory`]),l=t.discriminatedUnion(`type`,[t.object({type:t.literal(`text`),content:t.string()}),t.object({type:t.literal(`image`),source:s}),t.object({type:t.literal(`document`),source:s}),t.object({type:t.literal(`attachment`),fileName:t.string(),filePath:t.string(),source:s,displayName:t.string().optional(),attachmentType:c}),t.object({type:t.literal(`reasoning`),content:t.string(),metadata:t.record(t.string(),t.unknown()).optional()}),t.object({type:t.literal(`tool_call`),toolCallId:t.string(),name:t.string(),args:t.record(t.string(),t.unknown())}),t.object({type:t.literal(`tool_output`),toolCallId:t.string(),output:t.string(),isError:t.boolean().optional()})]),u=t.enum([`user`,`assistant`,`system`]),d=t.object({role:u.optional(),blocks:t.union([l,t.array(l)])}),f=t.union([t.string(),d]),p=t.object({message:t.string().optional()}),m=t.enum([`completed`,`superseded`,`merged`,`cancelled`,`error`,`rejected`]),h=t.object({messageId:t.string(),result:p.optional(),error:t.string().optional(),outcome:m}),g=t.enum([`enqueue`,`immediate`,`replace`]),_=t.union([t.string(),t.object({mode:t.literal(`append`),content:t.string()})]),v=t.object({role:t.enum([`user`,`assistant`,`system`]),blocks:t.array(l),message:t.string().optional()}),y=[`rate_limit`,`auth`,`model_unavailable`,`quota_exceeded`],b=t.enum(y);export{a as _,g as a,d as c,h as d,_ as f,o as g,i as h,l as i,v as l,n as m,y as n,f as o,r as p,b as r,m as s,s as t,p as u};
@@ -1 +1 @@
1
- import{t as e}from"./storage-namespace-definition-BjK9nZAN.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=t.enum([`global`,`project`,`session`]),i=t.enum([`filesystem`,`database`]),a=t.enum([`manual`,`auto`]),o=t.enum([`model`,`user`,`auto`,`reinjection`]),s=t.enum([`cwd_changed`,`session_end`,`user`,`replaced`]),c=t.object({maxTurns:t.number().int().positive().optional()}),l=t.object({name:t.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(64),description:t.string().min(1).max(1024),license:t.string().optional(),compatibility:t.string().min(1).max(500).optional(),metadata:t.record(t.string(),t.string()).optional(),allowedTools:t.string().optional()}),u=t.object({category:t.string().optional(),tags:t.array(t.string()).optional(),adapters:t.array(t.string()).nullable().optional(),activationMode:a.default(`manual`),reinjection:c.optional(),enabled:t.boolean().default(!0)}),d=l.merge(u).extend({id:t.string(),source:i,scope:r,projectId:t.string().optional(),sessionId:t.string().optional(),location:t.string().optional(),baseDir:t.string().optional(),content:t.string(),createdAt:t.number(),updatedAt:t.number()}),f=t.object({name:l.shape.name,description:l.shape.description,compatibility:l.shape.compatibility,category:u.shape.category,tags:u.shape.tags,adapters:u.shape.adapters,activationMode:u.shape.activationMode,source:i,scope:r,location:t.string().optional(),baseDir:t.string().optional()}).strict(),p=t.object({license:l.shape.license,compatibility:l.shape.compatibility,allowedTools:l.shape.allowedTools,metadata:l.shape.metadata}).strict(),m=t.object({name:t.string(),description:t.string(),compatibility:t.string().optional()}),h=t.object({name:t.string(),content:t.string(),license:t.string().optional(),compatibility:t.string().optional(),allowedTools:t.string().optional(),metadata:t.record(t.string(),t.string()).optional()}),g=t.object({name:t.string(),content:t.string(),metadata:p.optional(),baseDir:t.string().optional(),resources:t.array(t.string()).optional(),trigger:o,activatedAt:t.number(),activatedAtTurn:t.number().int().positive().optional(),lastInjectedAtTurn:t.number().int().positive().optional(),reinjection:c.optional()}),_=l.merge(u).extend({id:t.string(),scope:r,projectId:t.string().optional(),sessionId:t.string().optional(),content:t.string(),source:t.literal(`database`).default(`database`)}).strict(),v=t.object({sessionId:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional(),category:t.string().optional(),tags:t.array(t.string()).optional(),enabledOnly:t.boolean().optional()}),y={"catalog.built":t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string(),adapterId:t.string().optional(),skillNames:t.array(t.string()),timestamp:t.number()}),activated:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string(),adapterId:t.string().optional(),skillName:t.string(),trigger:o,turnNumber:t.number().int().positive().optional(),timestamp:t.number()}),deactivated:t.object({sessionId:t.string(),agentId:t.string(),skillName:t.string(),reason:s,timestamp:t.number()}),getCatalog:{request:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional()}),response:t.object({entries:t.array(f),cwd:t.string()})},activate:{request:t.object({sessionId:t.string(),agentId:t.string(),skillName:t.string(),trigger:o,cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional(),turnNumber:t.number().int().positive().optional()}),response:t.object({name:t.string(),content:t.string(),metadata:p.optional(),baseDir:t.string().optional(),resources:t.array(t.string()).optional(),alreadyActive:t.boolean().default(!1)})},getActiveSkills:{request:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional()}),response:t.object({skills:t.array(g),cwd:t.string().optional()})}},b=n(`skill`,y),x=b.subjects,S=e(`skill`,{schemas:{get:{request:t.object({id:t.string()}),response:t.object({skill:d.nullable()})},set:{request:t.object({skill:_}),response:t.object({id:t.string()})},delete:{request:t.object({id:t.string()}),response:t.object({deleted:t.boolean()})},list:{request:v,response:t.object({skills:t.array(d)})},getEffective:{request:v,response:t.object({skills:t.array(d)})}}}),C=S.subjects;function w(e){if(e.scope===`global`){if(e.projectId||e.sessionId)throw Error(`Global scope skills must not have projectId or sessionId`);return}if(e.scope===`project`){if(!e.projectId)throw Error(`Project scope skills require projectId`);if(e.sessionId)throw Error(`Project scope skills must not have sessionId`);return}if(!e.sessionId)throw Error(`Session scope skills require sessionId`)}export{h as S,c as _,x as a,r as b,a as c,m as d,s as f,d as g,_ as h,b as i,o as l,v as m,C as n,p as o,l as p,w as r,g as s,S as t,f as u,u as v,i as x,y};
1
+ import{t as e}from"./storage-namespace-definition-CqSdsuCC.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=t.enum([`global`,`project`,`session`]),i=t.enum([`filesystem`,`database`]),a=t.enum([`manual`,`auto`]),o=t.enum([`model`,`user`,`auto`,`reinjection`]),s=t.enum([`cwd_changed`,`session_end`,`user`,`replaced`]),c=t.object({maxTurns:t.number().int().positive().optional()}),l=t.object({name:t.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(64),description:t.string().min(1).max(1024),license:t.string().optional(),compatibility:t.string().min(1).max(500).optional(),metadata:t.record(t.string(),t.string()).optional(),allowedTools:t.string().optional()}),u=t.object({category:t.string().optional(),tags:t.array(t.string()).optional(),adapters:t.array(t.string()).nullable().optional(),activationMode:a.default(`manual`),reinjection:c.optional(),enabled:t.boolean().default(!0)}),d=l.merge(u).extend({id:t.string(),source:i,scope:r,projectId:t.string().optional(),sessionId:t.string().optional(),location:t.string().optional(),baseDir:t.string().optional(),content:t.string(),createdAt:t.number(),updatedAt:t.number()}),f=t.object({name:l.shape.name,description:l.shape.description,compatibility:l.shape.compatibility,category:u.shape.category,tags:u.shape.tags,adapters:u.shape.adapters,activationMode:u.shape.activationMode,source:i,scope:r,location:t.string().optional(),baseDir:t.string().optional()}).strict(),p=t.object({license:l.shape.license,compatibility:l.shape.compatibility,allowedTools:l.shape.allowedTools,metadata:l.shape.metadata}).strict(),m=t.object({name:t.string(),description:t.string(),compatibility:t.string().optional()}),h=t.object({name:t.string(),content:t.string(),license:t.string().optional(),compatibility:t.string().optional(),allowedTools:t.string().optional(),metadata:t.record(t.string(),t.string()).optional()}),g=t.object({name:t.string(),content:t.string(),metadata:p.optional(),baseDir:t.string().optional(),resources:t.array(t.string()).optional(),trigger:o,activatedAt:t.number(),activatedAtTurn:t.number().int().positive().optional(),lastInjectedAtTurn:t.number().int().positive().optional(),reinjection:c.optional()}),_=l.merge(u).extend({id:t.string(),scope:r,projectId:t.string().optional(),sessionId:t.string().optional(),content:t.string(),source:t.literal(`database`).default(`database`)}).strict(),v=t.object({sessionId:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional(),category:t.string().optional(),tags:t.array(t.string()).optional(),enabledOnly:t.boolean().optional()}),y={"catalog.built":t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string(),adapterId:t.string().optional(),skillNames:t.array(t.string()),timestamp:t.number()}),activated:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string(),adapterId:t.string().optional(),skillName:t.string(),trigger:o,turnNumber:t.number().int().positive().optional(),timestamp:t.number()}),deactivated:t.object({sessionId:t.string(),agentId:t.string(),skillName:t.string(),reason:s,timestamp:t.number()}),getCatalog:{request:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional()}),response:t.object({entries:t.array(f),cwd:t.string()})},activate:{request:t.object({sessionId:t.string(),agentId:t.string(),skillName:t.string(),trigger:o,cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional(),turnNumber:t.number().int().positive().optional()}),response:t.object({name:t.string(),content:t.string(),metadata:p.optional(),baseDir:t.string().optional(),resources:t.array(t.string()).optional(),alreadyActive:t.boolean().default(!1)})},getActiveSkills:{request:t.object({sessionId:t.string(),agentId:t.string(),cwd:t.string().optional(),projectId:t.string().optional(),adapterId:t.string().optional()}),response:t.object({skills:t.array(g),cwd:t.string().optional()})}},b=n(`skill`,y),x=b.subjects,S=e(`skill`,{schemas:{get:{request:t.object({id:t.string()}),response:t.object({skill:d.nullable()})},set:{request:t.object({skill:_}),response:t.object({id:t.string()})},delete:{request:t.object({id:t.string()}),response:t.object({deleted:t.boolean()})},list:{request:v,response:t.object({skills:t.array(d)})},getEffective:{request:v,response:t.object({skills:t.array(d)})}}}),C=S.subjects;function w(e){if(e.scope===`global`){if(e.projectId||e.sessionId)throw Error(`Global scope skills must not have projectId or sessionId`);return}if(e.scope===`project`){if(!e.projectId)throw Error(`Project scope skills require projectId`);if(e.sessionId)throw Error(`Project scope skills must not have sessionId`);return}if(!e.sessionId)throw Error(`Session scope skills require sessionId`)}export{h as S,c as _,x as a,r as b,a as c,m as d,s as f,d as g,_ as h,b as i,o as l,v as m,C as n,p as o,l as p,w as r,g as s,S as t,f as u,u as v,i as x,y};
@@ -1,6 +1,6 @@
1
- import { t as MakaioDatabase } from "../../types-6WxLfoM3.mjs";
1
+ import { t as MakaioDatabase } from "../../types-dyP-bXXE.mjs";
2
2
 
3
- //#region packages/storage/drizzle/src/client.d.ts
3
+ //#region storage/drizzle/src/client.d.ts
4
4
  /**
5
5
  * Configuration options for the database client.
6
6
  */
@@ -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";import{drizzle as r}from"drizzle-orm/libsql";async function i(e={}){let{url:t=`file:./makaio.db`,authToken:r}=e;return n()&&a(t)?c(t):l(t,r)}function a(e){return e.startsWith(`file:`)||e===`:memory:`}const o=[`PRAGMA journal_mode = WAL`,`PRAGMA busy_timeout = 5000`,`PRAGMA foreign_keys = ON`],s=[`PRAGMA foreign_keys = ON`];async function c(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 d(n))o.run(t.raw(e));let s=!1;return{db:o,close:()=>{s||(s=!0,a.close())}}}async function l(e,n){let i=r({connection:{url:e,authToken:n}});if(a(e))for(let n of d(e))await i.run(t.raw(n));let o=!1;return{db:i,close:()=>{o||(o=!0,i.$client.close())}}}function u(e){return e.startsWith(`file:`)}function d(e){return u(e)?o:s}export{i as createDatabaseClient};
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,10 +1,10 @@
1
- import { t as MakaioDatabase } from "../../types-6WxLfoM3.mjs";
1
+ import { t as MakaioDatabase } from "../../types-dyP-bXXE.mjs";
2
2
  import { IMakaioBus } from "@makaio/framework/bus";
3
3
  import { ExtensionContext } from "@makaio/framework/contracts";
4
- import { StorageNamespace, StorageNamespaceConfig, StorageNamespaceExtensions, createStorageNamespace } from "@makaio/framework/storage";
5
4
  import { Table } from "drizzle-orm";
5
+ import { StorageNamespace, StorageNamespaceConfig, StorageNamespaceExtensions, createStorageNamespace } from "@makaio/framework/storage";
6
6
 
7
- //#region packages/storage/drizzle/src/transaction.d.ts
7
+ //#region storage/drizzle/src/transaction.d.ts
8
8
  type LibSQLTransactionExecutor = MakaioDatabase['transaction'];
9
9
  /**
10
10
  * Transaction callback that receives Drizzle's transaction context.
@@ -19,9 +19,9 @@ type TransactionCallback<T> = Parameters<LibSQLTransactionExecutor>[0] extends (
19
19
  /**
20
20
  * Execute a database transaction through a shared transaction seam.
21
21
  *
22
- * This is currently a pass-through to `db.transaction()`. Keeping transaction
23
- * calls behind this helper gives us one extension point for future write
24
- * serialization (mutex/queue/pool) without changing handler call sites.
22
+ * Transaction work is serialized per database instance. SQLite permits only
23
+ * one active transaction on a connection; without this queue, concurrent bus
24
+ * handlers can fail at `BEGIN` with SQLITE_BUSY before busy_timeout can help.
25
25
  *
26
26
  * **Driver compatibility:** `MakaioDatabase` is typed as `LibSQLDatabase`
27
27
  * (Node.js async dialect), which runs the transaction asynchronously and
@@ -35,7 +35,7 @@ type TransactionCallback<T> = Parameters<LibSQLTransactionExecutor>[0] extends (
35
35
  */
36
36
  declare function executeTransaction<T>(db: MakaioDatabase, callback: TransactionCallback<T>): Promise<T>;
37
37
  //#endregion
38
- //#region packages/storage/drizzle/src/fts.d.ts
38
+ //#region storage/drizzle/src/fts.d.ts
39
39
  /**
40
40
  * FTS5 query utilities for SQLite full-text search.
41
41
  */
@@ -56,7 +56,46 @@ declare function executeTransaction<T>(db: MakaioDatabase, callback: Transaction
56
56
  */
57
57
  declare function sanitizeFtsQuery(query: string): string;
58
58
  //#endregion
59
- //#region packages/storage/drizzle/src/register-handlers.d.ts
59
+ //#region storage/drizzle/src/result.d.ts
60
+ /**
61
+ * Cross-driver result helpers for Drizzle write operations.
62
+ *
63
+ * The libsql dialect returns `{ rowsAffected: number }` while the bun-sqlite
64
+ * dialect returns `{ changes: number }`. Consumers must not depend on either
65
+ * field directly — use {@link didAffectRows} to normalise across drivers.
66
+ * @packageDocumentation
67
+ */
68
+ /**
69
+ * Shape emitted by Drizzle write operations across all supported drivers.
70
+ *
71
+ * The libsql (Node.js) driver populates `rowsAffected`; the bun-sqlite driver
72
+ * populates `changes`. Both may be present when a future driver version unifies
73
+ * the surface; either being absent is normal.
74
+ */
75
+ interface DrizzleWriteResult {
76
+ readonly rowsAffected?: number | null;
77
+ readonly changes?: number | null;
78
+ }
79
+ /**
80
+ * Determine whether a Drizzle write operation mutated at least one row.
81
+ *
82
+ * Normalises the driver-specific result shape so callers do not need to know
83
+ * which SQLite dialect is active at runtime.
84
+ * @param result - Write result from a Drizzle `insert`, `update`, or `delete`.
85
+ * @returns `true` when one or more rows were affected.
86
+ */
87
+ declare function didAffectRows(result: DrizzleWriteResult): boolean;
88
+ /**
89
+ * Extract the affected row count from a Drizzle write result.
90
+ *
91
+ * Returns the driver-appropriate count regardless of whether the libsql or
92
+ * bun-sqlite dialect is active.
93
+ * @param result - Write result from a Drizzle `insert`, `update`, or `delete`.
94
+ * @returns Number of affected rows, defaulting to `0` when neither field is set.
95
+ */
96
+ declare function affectedRowCount(result: DrizzleWriteResult): number;
97
+ //#endregion
98
+ //#region storage/drizzle/src/register-handlers.d.ts
60
99
  /**
61
100
  * Typed storage handler registration callback with `db` narrowed to
62
101
  * {@link MakaioDatabase}.
@@ -79,7 +118,7 @@ type DrizzleHandlerRegistration<TSchema extends Record<string, unknown> = Record
79
118
  */
80
119
  declare function registerDrizzleHandlers<TSchema extends Record<string, unknown> = Record<string, never>>(registration: DrizzleHandlerRegistration<TSchema>): (bus: IMakaioBus, db: unknown, ctx: ExtensionContext) => (() => void) | void;
81
120
  //#endregion
82
- //#region packages/storage/drizzle/src/index.d.ts
121
+ //#region storage/drizzle/src/index.d.ts
83
122
  /**
84
123
  * Drizzle schema record type.
85
124
  * Maps table names to Drizzle table definitions.
@@ -95,4 +134,4 @@ declare module '@makaio/framework/storage' {
95
134
  }
96
135
  }
97
136
  //#endregion
98
- export { type DrizzleHandlerRegistration, DrizzleSchemaRecord, type MakaioDatabase, type StorageNamespace, type StorageNamespaceConfig, type StorageNamespaceExtensions, type TransactionCallback, createStorageNamespace, executeTransaction, registerDrizzleHandlers, sanitizeFtsQuery };
137
+ export { type DrizzleHandlerRegistration, DrizzleSchemaRecord, type MakaioDatabase, type StorageNamespace, type StorageNamespaceConfig, type StorageNamespaceExtensions, type TransactionCallback, affectedRowCount, createStorageNamespace, didAffectRows, executeTransaction, registerDrizzleHandlers, sanitizeFtsQuery };
@@ -1 +1 @@
1
- import{createStorageNamespace as e}from"@makaio/framework/storage";async function t(e,t){return e.transaction(t)}function n(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`""`:t.map(e=>`"${e.replace(/"/g,`""`)}"`).join(` `)}function r(e){return(t,n,r)=>e(t,n,r)}export{e as createStorageNamespace,t as executeTransaction,r as registerDrizzleHandlers,n as sanitizeFtsQuery};
1
+ import{createStorageNamespace as e}from"@makaio/framework/storage";async function t(e,t){let r=n.get(e)??Promise.resolve(),i=()=>{},a=new Promise(e=>{i=e}),o=r.catch(()=>void 0).then(()=>a);n.set(e,o),await r.catch(()=>void 0);try{return await e.transaction(t)}finally{i(),n.get(e)===o&&n.delete(e)}}const n=new WeakMap;function r(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?`""`:t.map(e=>`"${e.replace(/"/g,`""`)}"`).join(` `)}function i(e){return(e.rowsAffected??e.changes??0)>0}function a(e){return e.rowsAffected??e.changes??0}function o(e){return(t,n,r)=>e(t,n,r)}export{a as affectedRowCount,e as createStorageNamespace,i as didAffectRows,t as executeTransaction,o as registerDrizzleHandlers,r as sanitizeFtsQuery};
@@ -1,2 +1,2 @@
1
- import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../../index-N5K1NOYs.mjs";
1
+ import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../../index-CokQYGVP.mjs";
2
2
  export { CrudLifecycleConfig, DrizzleCrudConfig, DrizzleListConfig, buildScopePredicates, createDrizzleCrudHandlers, createDrizzleListHandler };
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../../../drizzle-Bn2GtW8c.mjs";export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler};
1
+ import{n as e,r as t,t as n}from"../../../drizzle-Eq8W1EbD.mjs";export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler};
@@ -1,6 +1,6 @@
1
- import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index-N5K1NOYs.mjs";
1
+ import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index-CokQYGVP.mjs";
2
2
 
3
- //#region packages/storage/handlers/src/utils.d.ts
3
+ //#region storage/handlers/src/utils.d.ts
4
4
  /**
5
5
  * Convert null values to undefined for specified keys.
6
6
  * Used when mapping database rows to API types.
@@ -1 +1 @@
1
- import{n as e,r as t,t as n}from"../../drizzle-Bn2GtW8c.mjs";function r(e,t){let n={...e};for(let e of t)n[e]===null&&(n[e]=void 0);return n}function i(e,t){let n={...e};for(let e of t)n[e]===void 0&&(n[e]=null);return n}export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler,r as nullToUndefined,i as undefinedToNull};
1
+ import{n as e,r as t,t as n}from"../../drizzle-Eq8W1EbD.mjs";function r(e,t){let n={...e};for(let e of t)n[e]===null&&(n[e]=void 0);return n}function i(e,t){let n={...e};for(let e of t)n[e]===void 0&&(n[e]=null);return n}export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler,r as nullToUndefined,i as undefinedToNull};
@@ -1,7 +1,7 @@
1
1
  import { BusNamespaceDefinition, FilterablePayloadIntersection, SchemaRecord, SubjectRecord, SubjectRecordFromSchemaRecord } from "@makaio/framework/core";
2
2
  import { BusNamespace } from "@makaio/framework/bus";
3
3
 
4
- //#region packages/storage/core/src/types.d.ts
4
+ //#region storage/core/src/types.d.ts
5
5
  /**
6
6
  * Extension point for storage namespace extensions.
7
7
  *
@@ -62,7 +62,7 @@ interface StorageNamespaceConfig<Schemas extends SchemaRecord, Ext extends Stora
62
62
  */
63
63
  type StorageNamespaceFromConfig<N extends string, Schemas extends SchemaRecord> = StorageNamespace<N, SubjectRecordFromSchemaRecord<Schemas>, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord<Schemas>>, StorageNamespaceExtensions, Schemas>;
64
64
  //#endregion
65
- //#region packages/storage/core/src/create-storage-namespace-definition.d.ts
65
+ //#region storage/core/src/create-storage-namespace-definition.d.ts
66
66
  /**
67
67
  * A declarative storage namespace definition.
68
68
  *
@@ -116,7 +116,7 @@ interface StorageNamespaceDefinition<N extends string = string, Schemas extends
116
116
  */
117
117
  declare function createStorageNamespaceDefinition<N extends string, Schemas extends SchemaRecord, Ext extends StorageNamespaceExtensions = StorageNamespaceExtensions>(domain: N, config: StorageNamespaceConfig<Schemas, Ext>): StorageNamespaceDefinition<N, Schemas, Ext>;
118
118
  //#endregion
119
- //#region packages/storage/core/src/create-storage-namespace.d.ts
119
+ //#region storage/core/src/create-storage-namespace.d.ts
120
120
  /**
121
121
  * Registers a storage namespace definition on the bus singleton.
122
122
  *
@@ -149,7 +149,7 @@ declare function createStorageNamespaceDefinition<N extends string, Schemas exte
149
149
  */
150
150
  declare function createStorageNamespace<N extends string, Schemas extends SchemaRecord, Ext extends StorageNamespaceExtensions = StorageNamespaceExtensions>(definition: StorageNamespaceDefinition<N, Schemas, Ext>): StorageNamespace<N, SubjectRecordFromSchemaRecord<Schemas>, FilterablePayloadIntersection<SubjectRecordFromSchemaRecord<Schemas>>, Ext, Schemas>;
151
151
  //#endregion
152
- //#region packages/storage/core/src/create-extension-storage-namespace.d.ts
152
+ //#region storage/core/src/create-extension-storage-namespace.d.ts
153
153
  type Whitespace = ' ' | '\n' | '\r' | '\t' | '\v' | '\f' | '\u00A0' | '\u1680' | '\u2000' | '\u2001' | '\u2002' | '\u2003' | '\u2004' | '\u2005' | '\u2006' | '\u2007' | '\u2008' | '\u2009' | '\u200A' | '\u2028' | '\u2029' | '\u202F' | '\u205F' | '\u3000' | '\uFEFF';
154
154
  type TrimLeft<T extends string> = T extends `${Whitespace}${infer Rest}` ? TrimLeft<Rest> : T;
155
155
  type TrimRight<T extends string> = T extends `${infer Rest}${Whitespace}` ? TrimRight<Rest> : T;