@makaio/framework 1.0.0-dev-1787670071418 → 1.0.0-dev-1787670559522

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 (527) hide show
  1. package/README.md +0 -2
  2. package/dist/.makaio-build.json +2 -2
  3. package/dist/{account-identity-B3vLwm9O.mjs → account-identity-DGpXd8h_.mjs} +1 -1
  4. package/dist/adapter-BkdJaOOG.mjs +1 -0
  5. package/dist/adapter-subsystem/index.d.mts +76 -118
  6. package/dist/adapter-subsystem/index.mjs +1 -1
  7. package/dist/adapters/claude/index.d.mts +5 -5
  8. package/dist/adapters/config/index.d.mts +1 -1
  9. package/dist/adapters/config/index.mjs +1 -1
  10. package/dist/adapters/index.d.mts +53 -73
  11. package/dist/adapters/index.mjs +6 -6
  12. package/dist/adapters/node.d.mts +1 -1
  13. package/dist/adapters/node.mjs +1 -1
  14. package/dist/adapters/stream-session/index.mjs +1 -1
  15. package/dist/agent-namespace-D51PODFf.mjs +1 -0
  16. package/dist/{artifact-Btbuib48.mjs → artifact-k3veR4Yx.mjs} +1 -1
  17. package/dist/attach-error-BSlc7JfL.mjs +1 -0
  18. package/dist/{auth-C6tVtaOX.mjs → auth-A1K_7q-8.mjs} +1 -1
  19. package/dist/{authority-state-bootstrap-CLYus369.mjs → authority-state-bootstrap-YwtEImIB.mjs} +1 -1
  20. package/dist/{automation-trigger-ByjNlClm.mjs → automation-trigger-CuSdQwir.mjs} +1 -1
  21. package/dist/bus/index.d.mts +4 -22
  22. package/dist/bus/index.mjs +1 -1
  23. package/dist/bus-BIj0_aG6.mjs +1 -0
  24. package/dist/{bus-D6NoBhIV.mjs → bus-CqgrphNE.mjs} +1 -1
  25. package/dist/{canonical-model-DXOvCaVg.mjs → canonical-model-DJASlL4m.mjs} +1 -1
  26. package/dist/capabilities-Bqckjh7G.mjs +1 -0
  27. package/dist/capability-service-CJHNkjvm.mjs +1 -0
  28. package/dist/{client-BkznbdsO.mjs → client-BL5__WT0.mjs} +1 -1
  29. package/dist/clients/index.d.mts +1 -1
  30. package/dist/clients/index.mjs +1 -1
  31. package/dist/clients/managed-install.d.mts +1 -1
  32. package/dist/clients/managed-install.mjs +1 -1
  33. package/dist/{compression-CtgeVLpP.mjs → compression-BbttSqm8.mjs} +1 -1
  34. package/dist/{config-namespace-CjWvw8ij.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
  35. package/dist/{context-resolution-841T7jBI.d.mts → context-resolution-ya9TXKg-.d.mts} +1 -1
  36. package/dist/contracts/adapter/index.d.mts +3 -3
  37. package/dist/contracts/adapter/index.mjs +1 -1
  38. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  39. package/dist/contracts/artifact/index.d.mts +2 -2
  40. package/dist/contracts/artifact/index.mjs +1 -1
  41. package/dist/contracts/auth/index.d.mts +2 -2
  42. package/dist/contracts/auth/index.mjs +1 -1
  43. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  44. package/dist/contracts/automation-trigger/index.mjs +1 -1
  45. package/dist/contracts/canonical-model/index.d.mts +1 -1
  46. package/dist/contracts/canonical-model/index.mjs +1 -1
  47. package/dist/contracts/capabilities/index.d.mts +1 -1
  48. package/dist/contracts/capabilities/index.mjs +1 -1
  49. package/dist/contracts/client/index.d.mts +2 -2
  50. package/dist/contracts/client/index.mjs +1 -1
  51. package/dist/contracts/common/index.d.mts +1 -1
  52. package/dist/contracts/config/index.d.mts +1 -1
  53. package/dist/contracts/config/index.mjs +1 -1
  54. package/dist/contracts/extension/index.d.mts +5 -5
  55. package/dist/contracts/extension/index.mjs +1 -1
  56. package/dist/contracts/facet/index.d.mts +1 -1
  57. package/dist/contracts/facet/index.mjs +1 -1
  58. package/dist/contracts/harness/index.d.mts +1 -1
  59. package/dist/contracts/harness/index.mjs +1 -1
  60. package/dist/contracts/host/index.d.mts +1 -1
  61. package/dist/contracts/host/index.mjs +1 -1
  62. package/dist/contracts/index.d.mts +47 -57
  63. package/dist/contracts/index.mjs +1 -1
  64. package/dist/contracts/materialization/index.d.mts +3 -3
  65. package/dist/contracts/materialization/index.mjs +1 -1
  66. package/dist/contracts/model-registry/index.d.mts +1 -1
  67. package/dist/contracts/model-registry/index.mjs +1 -1
  68. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  69. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  70. package/dist/contracts/platform/index.d.mts +1 -1
  71. package/dist/contracts/platform/index.mjs +1 -1
  72. package/dist/contracts/provider/index.d.mts +2 -2
  73. package/dist/contracts/provider/index.mjs +1 -1
  74. package/dist/contracts/reaction/index.d.mts +1 -1
  75. package/dist/contracts/reaction/index.mjs +1 -1
  76. package/dist/contracts/session/index.d.mts +3 -3
  77. package/dist/contracts/session/index.mjs +1 -1
  78. package/dist/contracts/shared/index.d.mts +3 -3
  79. package/dist/contracts/shared/index.mjs +1 -1
  80. package/dist/contracts/skill/index.d.mts +1 -1
  81. package/dist/contracts/skill/index.mjs +1 -1
  82. package/dist/contracts/telemetry/index.d.mts +1 -1
  83. package/dist/contracts/telemetry/index.mjs +1 -1
  84. package/dist/contracts/timeout/index.d.mts +1 -1
  85. package/dist/contracts/timeout/index.mjs +1 -1
  86. package/dist/contracts/toast/index.mjs +1 -1
  87. package/dist/contracts/variant/index.d.mts +1 -1
  88. package/dist/contracts/variant/index.mjs +1 -1
  89. package/dist/contracts/worker-node/index.d.mts +1 -1
  90. package/dist/contracts/worker-node/index.mjs +1 -1
  91. package/dist/contracts/workflow/index.d.mts +2 -2
  92. package/dist/contracts/workflow/index.mjs +1 -1
  93. package/dist/{contribution-CUHLVLsT.d.mts → contribution-BB5bjx3f.d.mts} +2 -2
  94. package/dist/core/index.d.mts +2 -25
  95. package/dist/{definition-DyGImhyi.d.mts → definition-BYgHlmMw.d.mts} +1 -1
  96. package/dist/{definition-BH4QLGLI.mjs → definition-CDg-Jq1T.mjs} +1 -1
  97. package/dist/{detached-extension-handle-D0aI0pJA.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
  98. package/dist/drizzle/meta/_journal.json +0 -28
  99. package/dist/event-DR8U9Efx.mjs +1 -0
  100. package/dist/{execution-attempt-repository-BJ2W6wwx.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
  101. package/dist/{execution-target-H0RWV7Py.mjs → execution-target-ByNwZh5-.mjs} +1 -1
  102. package/dist/{extension-Cz39YNXy.mjs → extension-DMdmj9gi.mjs} +1 -1
  103. package/dist/{extension-Bfkr2DBs.mjs → extension-DUmibvMk.mjs} +1 -1
  104. package/dist/{extension-discovery-Dhu3WplO.d.mts → extension-discovery-Fhps4icD.d.mts} +1 -9
  105. package/dist/{filesystem-service-CiUw0YN5.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
  106. package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
  107. package/dist/git/index.mjs +2 -2
  108. package/dist/{globby-QBDqstzq.mjs → globby-BBLuT_vy.mjs} +1 -1
  109. package/dist/handlers-2yd00VEq.mjs +57 -0
  110. package/dist/{harness-YQ2ewID9.mjs → harness-KxbWGL4I.mjs} +1 -1
  111. package/dist/{hook-responses-9Ywsqzzq.d.mts → hook-responses-uCXAICTU.d.mts} +1 -1
  112. package/dist/identity-DC3Pk0ps.mjs +1 -0
  113. package/dist/{index-D-4jv_66.d.mts → index-1UcQWrZy.d.mts} +149 -149
  114. package/dist/{index-D8D-yibS2.d.mts → index-B0xJgTi-.d.mts} +4 -4
  115. package/dist/{index-CYjgoYeX.d.mts → index-BMVZs6pm.d.mts} +3 -3
  116. package/dist/{index-CPi0UpRh.d.mts → index-BSQ30wYP.d.mts} +1 -1
  117. package/dist/{index-DXtQRehh.d.mts → index-Bl7KWFod.d.mts} +1 -1
  118. package/dist/{index-D_4K3Tf_.d.mts → index-BtdK8HeH.d.mts} +168 -43
  119. package/dist/{index-C146Eq_J.d.mts → index-C-JzEkqs.d.mts} +1802 -536
  120. package/dist/{index-DI2lS7VT.d.mts → index-CER64zYO.d.mts} +15 -15
  121. package/dist/{index-BkbnC65b.d.mts → index-CM75k-Ff.d.mts} +17 -189
  122. package/dist/{index-CmwAJ8-5.d.mts → index-CSN_0sCo.d.mts} +1 -1
  123. package/dist/{index-CIEycZrt.d.mts → index-C__EQfKa.d.mts} +1 -1
  124. package/dist/{index-B0VO0rAl.d.mts → index-CfiCJPP6.d.mts} +1 -1
  125. package/dist/{index-BNzUyVwV.d.mts → index-CqQYgsbB.d.mts} +170 -513
  126. package/dist/{index-B0yMCJW8.d.mts → index-DI7-tIL3.d.mts} +14 -39
  127. package/dist/{index-CMekqu_D.d.mts → index-DxYDRoDE2.d.mts} +8 -28
  128. package/dist/index-OsbtyMgx2.d.mts +98 -0
  129. package/dist/{index-DJ2KgJDJ2.d.mts → index-cPqSpWQC.d.mts} +12 -12
  130. package/dist/{index-DNI6UF9h.d.mts → index-e4Txan9i.d.mts} +4 -4
  131. package/dist/{index-CPRQ4dWX.d.mts → index-nydhGvXa.d.mts} +23 -0
  132. package/dist/json-value-C1RGgS0a.d.mts +72 -0
  133. package/dist/json-value-D57aJhVn.mjs +1 -0
  134. package/dist/kernel/cli/index.d.mts +2 -2
  135. package/dist/kernel/cli/index.mjs +1 -1
  136. package/dist/kernel/cli/register.d.mts +1 -1
  137. package/dist/kernel/cli/register.mjs +1 -1
  138. package/dist/kernel/cli/schemas.mjs +1 -1
  139. package/dist/kernel/extension/index.d.mts +1 -1
  140. package/dist/kernel/extension/index.mjs +1 -1
  141. package/dist/kernel/index.d.mts +5 -5
  142. package/dist/kernel/index.mjs +1 -1
  143. package/dist/kernel/namespace/index.d.mts +1 -1
  144. package/dist/kernel/namespace/index.mjs +1 -1
  145. package/dist/kernel/observability/index.d.mts +1 -1
  146. package/dist/kernel/observability/index.mjs +1 -1
  147. package/dist/kernel/providers/index.d.mts +1 -1
  148. package/dist/kernel/providers/index.mjs +1 -1
  149. package/dist/kernel/window/index.d.mts +1 -1
  150. package/dist/kernel/window/index.mjs +1 -1
  151. package/dist/{lib-Cm-uEoC1.mjs → lib-B_rJ6r0T.mjs} +1 -1
  152. package/dist/{lib-BpGvHZye.mjs → lib-CnOAtohU.mjs} +2 -2
  153. package/dist/{load-extensions-DG5LvPyM.mjs → load-extensions-CW9uzNR5.mjs} +1 -1
  154. package/dist/{load-extensions-BQoXaHhR.d.mts → load-extensions-DUpaMQ7G.d.mts} +1 -1
  155. package/dist/{materialization-lVd9_-jr.mjs → materialization-CcpCDhXh.mjs} +1 -1
  156. package/dist/mcp-http-server/index.mjs +1 -1
  157. package/dist/model-ZH3L1dPW.mjs +1 -0
  158. package/dist/{namespace-BL7lHlmg.mjs → namespace-B7bntOB8.mjs} +1 -1
  159. package/dist/{namespace-BNp7n_gu.d.mts → namespace-BgEiY7r1.d.mts} +3 -3
  160. package/dist/{namespace-DknCutQZ.d.mts → namespace-C6CVEGH8.d.mts} +0 -50
  161. package/dist/{namespace-C06lJSuj.d.mts → namespace-ChnRTUG4.d.mts} +6 -6
  162. package/dist/namespace-CxrOLeeP.mjs +1 -0
  163. package/dist/{namespace-BRuHzhPo.d.mts → namespace-DSlfFhB1.d.mts} +2 -154
  164. package/dist/{native-session-supervisor-LKio8XZn.mjs → native-session-supervisor-fZYPUk0-.mjs} +1 -1
  165. package/dist/node/bus-server/index.d.mts +1 -1
  166. package/dist/node/bus-server/index.mjs +1 -1
  167. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  168. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  169. package/dist/{orchestrator-shared-CNHSImNY.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +10 -9
  170. package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
  171. package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
  172. package/dist/{package-BNFTUFLB.d.mts → package-Bf3hyuzs.d.mts} +2 -2
  173. package/dist/{package-JtjbO-Oi.mjs → package-CddkNbZI.mjs} +1 -1
  174. package/dist/{package-B01gmu75.mjs → package-ypz4rKvn.mjs} +1 -1
  175. package/dist/package.json +1 -1
  176. package/dist/{profile-N5qGUpF0.mjs → profile-BtznZlq3.mjs} +1 -1
  177. package/dist/{provider-context-zTDSH2x9.mjs → provider-context-BrLZYnDW.mjs} +1 -1
  178. package/dist/{provider-context-CG42JlP9.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
  179. package/dist/{reaction-D3TNwPK8.mjs → reaction-BS0k4eNN.mjs} +1 -1
  180. package/dist/{registry-Dk12tAfv.mjs → registry-BO_bOoky.mjs} +1 -1
  181. package/dist/{resolved-sq8RXNDf.mjs → resolved-DMByz1_2.mjs} +1 -1
  182. package/dist/rules/index.d.mts +1 -1
  183. package/dist/rules/index.mjs +1 -1
  184. package/dist/rules/schemas.d.mts +1 -1
  185. package/dist/runtime-bun/index.mjs +1 -1
  186. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  187. package/dist/runtime-node/extension-discovery.mjs +1 -1
  188. package/dist/runtime-node/extension-validation.d.mts +1 -1
  189. package/dist/runtime-node/extension-validation.mjs +1 -1
  190. package/dist/runtime-node/index.d.mts +4 -6
  191. package/dist/runtime-node/index.mjs +24 -24
  192. package/dist/runtime-node/makaio-config.d.mts +1 -1
  193. package/dist/runtime-node/makaio-config.mjs +1 -1
  194. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  195. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  196. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  197. package/dist/{schema-Dq-7si8u.mjs → schema-DBG7Jq5_.mjs} +1 -1
  198. package/dist/{schema-B3Pf7JP7.d.mts → schema-DKTzriEY.d.mts} +3 -250
  199. package/dist/{schemas-C1mxTfd7.d.mts → schemas-B7zo7Zcx.d.mts} +4 -60
  200. package/dist/schemas-BqD8LlQw.mjs +1 -0
  201. package/dist/{schemas-QWDnauKX.mjs → schemas-CsjN7cmM.mjs} +1 -1
  202. package/dist/schemas-CvHFbzdy.mjs +1 -0
  203. package/dist/{schemas-BfO5jkrL.mjs → schemas-DSkBOdx_.mjs} +1 -1
  204. package/dist/{schemas-OWvBn7AH.d.mts → schemas-DZH9lpxs.d.mts} +4 -4
  205. package/dist/schemas-DplrlAyR.mjs +1 -0
  206. package/dist/{schemas-Dd13TMgU.d.mts → schemas-DvMbcABQ.d.mts} +4 -4
  207. package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
  208. package/dist/{selection-DL3ric7K.mjs → selection-7Ku8DBnh.mjs} +1 -1
  209. package/dist/services/adapter-runtime/index.d.mts +4 -4
  210. package/dist/services/adapter-runtime/index.mjs +1 -1
  211. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  212. package/dist/services/adapter-runtime/schemas.d.mts +2 -2
  213. package/dist/services/adapter-runtime/schemas.mjs +1 -1
  214. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  215. package/dist/services/adapter-subsystem/index.mjs +1 -1
  216. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  217. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  218. package/dist/services/agent-runtime/index.d.mts +2 -2
  219. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  220. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  221. package/dist/services/automation-trigger/index.mjs +1 -1
  222. package/dist/services/capability/index.d.mts +2 -3
  223. package/dist/services/capability/index.mjs +1 -1
  224. package/dist/services/codebase/index.d.mts +2 -2
  225. package/dist/services/codebase/namespace.d.mts +1 -1
  226. package/dist/services/codebase/schemas.d.mts +1 -1
  227. package/dist/services/compression/index.d.mts +2 -2
  228. package/dist/services/compression/namespace.d.mts +1 -1
  229. package/dist/services/compression/schemas.d.mts +1 -1
  230. package/dist/services/context-rules/index.d.mts +1 -1
  231. package/dist/services/context-rules/index.mjs +1 -1
  232. package/dist/services/execution-target/index.d.mts +3 -3
  233. package/dist/services/execution-target/index.mjs +1 -1
  234. package/dist/services/execution-target/namespace.d.mts +1 -1
  235. package/dist/services/execution-target/namespace.mjs +1 -1
  236. package/dist/services/execution-target/schemas.d.mts +1 -1
  237. package/dist/services/execution-target/schemas.mjs +1 -1
  238. package/dist/services/filesystem/index.d.mts +1 -1
  239. package/dist/services/filesystem/index.mjs +1 -1
  240. package/dist/services/filesystem/namespace.d.mts +6 -6
  241. package/dist/services/filesystem/schemas.d.mts +3 -3
  242. package/dist/services/git/namespace.d.mts +0 -18
  243. package/dist/services/git/namespace.mjs +1 -1
  244. package/dist/services/git/schemas.d.mts +1 -10
  245. package/dist/services/git/schemas.mjs +1 -1
  246. package/dist/services/harness/index.mjs +1 -1
  247. package/dist/services/index.d.mts +61 -161
  248. package/dist/services/index.mjs +1 -1
  249. package/dist/services/log-import/browser.d.mts +2 -2
  250. package/dist/services/log-import/index.d.mts +2 -2
  251. package/dist/services/log-import/log-import.d.mts +1 -1
  252. package/dist/services/log-import/log-import.mjs +1 -1
  253. package/dist/services/log-import/namespace.mjs +1 -1
  254. package/dist/services/log-import/schemas.mjs +1 -1
  255. package/dist/services/materialization/index.d.mts +1 -1
  256. package/dist/services/materialization/index.mjs +1 -1
  257. package/dist/services/model-registry/index.d.mts +1 -1
  258. package/dist/services/model-registry/index.mjs +1 -1
  259. package/dist/services/preferences/index.d.mts +2 -2
  260. package/dist/services/preferences/schemas.d.mts +1 -1
  261. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  262. package/dist/services/provider-context/index.d.mts +1 -1
  263. package/dist/services/provider-context/index.mjs +1 -1
  264. package/dist/services/provider-runtime/index.mjs +1 -1
  265. package/dist/services/session/handlers/index.d.mts +1 -1
  266. package/dist/services/session/handlers/index.mjs +1 -1
  267. package/dist/services/session/index.d.mts +10 -10
  268. package/dist/services/session/index.mjs +1 -1
  269. package/dist/services/session/messages/namespace.d.mts +1 -1
  270. package/dist/services/session/messages/namespace.mjs +1 -1
  271. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  272. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  273. package/dist/services/session/session-events/namespace.d.mts +1 -1
  274. package/dist/services/session/session-events/namespace.mjs +1 -1
  275. package/dist/services/session/storage/namespace.d.mts +1 -1
  276. package/dist/services/session/storage/schema.d.mts +2 -2
  277. package/dist/services/session/storage/schema.mjs +1 -1
  278. package/dist/services/session/testing/index.d.mts +1 -22
  279. package/dist/services/session/testing/index.mjs +14 -38
  280. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  281. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  282. package/dist/services/session/turns/namespace.d.mts +1 -1
  283. package/dist/services/session/turns/namespace.mjs +1 -1
  284. package/dist/services/session-editor/index.d.mts +1 -1
  285. package/dist/services/session-editor/index.mjs +1 -1
  286. package/dist/services/settings/index.d.mts +3 -3
  287. package/dist/services/settings/index.mjs +1 -1
  288. package/dist/services/settings/namespace.d.mts +4 -4
  289. package/dist/services/settings/namespace.mjs +1 -1
  290. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  291. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  292. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  293. package/dist/services/settings/storage/index.d.mts +3 -3
  294. package/dist/services/settings/storage/index.mjs +1 -1
  295. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  296. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  297. package/dist/services/subagent/index.d.mts +1 -1
  298. package/dist/services/subagent/index.mjs +1 -1
  299. package/dist/services/subagent-template/index.d.mts +2 -2
  300. package/dist/services/subagent-template/namespace.d.mts +1 -1
  301. package/dist/services/subagent-template/schemas.d.mts +1 -1
  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/workflow-transitions/index.d.mts +1 -1
  313. package/dist/services/workflow-transitions/index.mjs +1 -1
  314. package/dist/session-BMy2kRpX.mjs +90 -0
  315. package/dist/session-Cipx34j6.mjs +1 -0
  316. package/dist/{shared-B9AWRm9A.mjs → shared-BFVuCDPx.mjs} +1 -1
  317. package/dist/{skill-DGNtc_ww.mjs → skill-C1D51nhh.mjs} +1 -1
  318. package/dist/{src-BmSQ3rlz.mjs → src-xbmzokNe.mjs} +1 -1
  319. package/dist/storage/drizzle/client.d.mts +1 -1
  320. package/dist/storage/drizzle/client.mjs +1 -1
  321. package/dist/storage/drizzle/index.d.mts +2 -41
  322. package/dist/storage/drizzle/index.mjs +1 -1
  323. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  324. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  325. package/dist/storage/handlers/index.d.mts +1 -1
  326. package/dist/storage/handlers/index.mjs +1 -1
  327. package/dist/tool-approval-service-BVgN9Q1r.mjs +1 -0
  328. package/dist/{tools-DWKWX3eV.mjs → tools-DxwHox1a.mjs} +1 -1
  329. package/dist/{transition-D3zUBTPc.d.mts → transition-C_Ka6b0-.d.mts} +6 -6
  330. package/dist/{types-CtDGkyLx2.d.mts → types-BNjPhj_a.d.mts} +1 -1
  331. package/dist/{types-OKJCOjme.d.mts → types-ClpEaoAm.d.mts} +4 -24
  332. package/dist/{types-DcxBYlPA.d.mts → types-CwvN4uN2.d.mts} +49 -3029
  333. package/dist/ui-kernel/index.d.mts +1 -1
  334. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  335. package/dist/utils/index.d.mts +1 -22
  336. package/dist/utils/index.mjs +2 -2
  337. package/dist/utils/project-manifest.mjs +1 -1
  338. package/dist/{version-BYeVh1pI.mjs → version-BfNnVAGr.mjs} +1 -1
  339. package/dist/{view-builder-B0j9p5C0.d.mts → view-builder-KYsPqV-5.d.mts} +4 -4
  340. package/dist/{visibility-DtDLRBdr.mjs → visibility-Dl1o2I01.mjs} +1 -1
  341. package/dist/worker-node-BDOYPEpi.mjs +1 -0
  342. package/dist/{worker-node-Dtf9ilsR.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
  343. package/dist/workflow-Hzc5jlnV.mjs +1 -0
  344. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  345. package/dist/workflow-engine/index.d.mts +95 -95
  346. package/dist/workflow-engine/index.mjs +1 -1
  347. package/dist/workflow-engine/package.d.mts +1 -1
  348. package/dist/workflow-engine/package.mjs +1 -1
  349. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  350. package/dist/workflow-engine/testing/index.d.mts +2 -2
  351. package/dist/workflow-engine/testing/index.mjs +1 -1
  352. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  353. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  354. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  355. package/dist/{workflow-transitions-c_VQbyV0.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
  356. package/dist/workflow-worker-DARC7UZl.mjs +1 -0
  357. package/package.json +1 -18
  358. package/dist/adapter-Dz1fX5Wa.mjs +0 -1
  359. package/dist/attach-error-Cb3GbeKe.mjs +0 -1
  360. package/dist/bus-UgFdHybD.mjs +0 -1
  361. package/dist/caller-owned-adapter-stub-C1M7FKrv.mjs +0 -1
  362. package/dist/capabilities-BUwuA7XX.mjs +0 -1
  363. package/dist/capability-j3NekkIu.mjs +0 -1
  364. package/dist/code-execution/worker-entry.d.mts +0 -21
  365. package/dist/code-execution/worker-entry.mjs +0 -1
  366. package/dist/code-execution-Ckmn8OZu.mjs +0 -1
  367. package/dist/code-execution-CweDSWco.mjs +0 -1
  368. package/dist/code-execution-DqkQjKa1.mjs +0 -1
  369. package/dist/contracts/code-execution/index.d.mts +0 -2
  370. package/dist/contracts/code-execution/index.mjs +0 -1
  371. package/dist/drizzle/0034_m_msha1388.sql +0 -41
  372. package/dist/drizzle/0035_m_mshgj6x7.sql +0 -40
  373. package/dist/drizzle/0036_m_msivwbgm.sql +0 -1
  374. package/dist/drizzle/0037_runtime_instance_incarnation_counter.sql +0 -6
  375. package/dist/event-B8ELuk6k.mjs +0 -1
  376. package/dist/framework-packages-BHgul8Kl.mjs +0 -1
  377. package/dist/handlers-BsHAFtye.mjs +0 -57
  378. package/dist/identity-OjRlG6dZ.mjs +0 -1
  379. package/dist/index-Bqk0pJBQ2.d.mts +0 -138
  380. package/dist/index-Cny5RvjO.d.mts +0 -800
  381. package/dist/index-DHnSLGP4.d.mts +0 -268
  382. package/dist/index-DQ8o3JGi.d.mts +0 -132
  383. package/dist/index-DWBkiiXH.d.mts +0 -18
  384. package/dist/index-Dg11JxKZ.d.mts +0 -496
  385. package/dist/json-value-BBZ6uGwc.mjs +0 -1
  386. package/dist/json-value-DPqb-SJ8.d.mts +0 -177
  387. package/dist/model-DrzPt3ou.mjs +0 -1
  388. package/dist/namespace-sCPb79-7.mjs +0 -1
  389. package/dist/npm-package-name-DuTYVICk.mjs +0 -1
  390. package/dist/orchestrator-shared-BGlN-m-V.mjs +0 -1
  391. package/dist/ownership-memory-handler-BpGdR_uG.mjs +0 -1
  392. package/dist/ownership-recovery-guard-DyW5vGBr.mjs +0 -1
  393. package/dist/package-DttKA9wN.mjs +0 -1
  394. package/dist/runtime-node/code-execution/index.d.mts +0 -3
  395. package/dist/runtime-node/code-execution/index.mjs +0 -1
  396. package/dist/schemas-C3kyQWGf.mjs +0 -1
  397. package/dist/schemas-TK29KWx-.mjs +0 -1
  398. package/dist/schemas-_2Syo_01.mjs +0 -1
  399. package/dist/scoped-bus-DoPmCJeM.mjs +0 -1
  400. package/dist/services/code-execution/index.d.mts +0 -2
  401. package/dist/services/code-execution/index.mjs +0 -1
  402. package/dist/session-BOpTI79g.mjs +0 -1
  403. package/dist/session-CXOPk3yg.mjs +0 -95
  404. package/dist/tool-approval-service-BFDOFUGC.mjs +0 -1
  405. package/dist/types-Cwza95hS.mjs +0 -1
  406. package/dist/types-DnK6Wa_Y.d.mts +0 -260
  407. package/dist/worker-node-CjuQb9hl.mjs +0 -1
  408. package/dist/workflow-C4mck_NW.mjs +0 -1
  409. package/dist/workflow-worker-aNbdgqml.mjs +0 -1
  410. /package/dist/{adapter-auth-runtime-DHHppU4f.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
  411. /package/dist/{adapter-binding-CATvmGuz.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
  412. /package/dist/{ajv-krzJXh1X.mjs → ajv-L5fKxaia.mjs} +0 -0
  413. /package/dist/{attempt-record-codec-BYfYkj4M.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
  414. /package/dist/{await-trigger-Bkg2BQfg.mjs → await-trigger-ph1S0zVI.mjs} +0 -0
  415. /package/dist/{base-orchestrator-B4YW6z_Q.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
  416. /package/dist/{client-BG0WX5Vz.d.mts → client-4ihewPUm.d.mts} +0 -0
  417. /package/dist/{client-binary-version-verifier-0lCKZOTg.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
  418. /package/dist/{client-binary-version-verifier-lcv83Hq3.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
  419. /package/dist/{clients-namespace-DLAjOTTb.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
  420. /package/dist/{config-namespace-CH7sJZ4f.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
  421. /package/dist/{create-static-mount-DxuixuLZ.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
  422. /package/dist/{cross-spawn-CZygZJMH.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
  423. /package/dist/{cursor-storage-bsc9lZKk.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
  424. /package/dist/{definition-BrgzUuFk.d.mts → definition-DB-kKc0d.d.mts} +0 -0
  425. /package/dist/{definitions-CRpdnHYM.mjs → definitions-CF6YmEhL.mjs} +0 -0
  426. /package/dist/{descriptor-to-package-CcjdoWP4.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
  427. /package/dist/{drizzle-Bzc-OGVI.mjs → drizzle-CPv3vdTE.mjs} +0 -0
  428. /package/dist/{esm-i-S5TW72.mjs → esm-CBFWM8u_.mjs} +0 -0
  429. /package/dist/{extension-context-QmFuHdq5.d.mts → extension-context-DzB7ydM3.d.mts} +0 -0
  430. /package/dist/{extension-namespace-QoTTwKPt.mjs → extension-namespace-B554RmCp.mjs} +0 -0
  431. /package/dist/{extension-package-provenance-aYrZuS4W.mjs → extension-package-provenance-Dh_-Z-tE.mjs} +0 -0
  432. /package/dist/{facet-BnMh7Jyc.mjs → facet-DVsW12iF.mjs} +0 -0
  433. /package/dist/{filesystem-service-ZJ43SbBi.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
  434. /package/dist/{handler-DF1fVDpf.mjs → handler-Bqlk-6BY.mjs} +0 -0
  435. /package/dist/{host-B-_ntOMH.mjs → host-k5yoyKHg.mjs} +0 -0
  436. /package/dist/{index-8NdPPzUh2.d.mts → index--atUpi5l2.d.mts} +0 -0
  437. /package/dist/{index-Ek4y8M9J2.d.mts → index-42UdYStR.d.mts} +0 -0
  438. /package/dist/{index-C4V8Pmi4.d.mts → index-BJAB-BW_.d.mts} +0 -0
  439. /package/dist/{index-l01zsChf.d.mts → index-BJMezANn.d.mts} +0 -0
  440. /package/dist/{index-D037TVsm.d.mts → index-BQprJNA_.d.mts} +0 -0
  441. /package/dist/{index-B4svZC6L.d.mts → index-BRCrFirq.d.mts} +0 -0
  442. /package/dist/{index-jxPncqWZ2.d.mts → index-BSbGB23v.d.mts} +0 -0
  443. /package/dist/{index-BMRB9yhF.d.mts → index-BVcQcphK.d.mts} +0 -0
  444. /package/dist/{index-B2Y1Wvbh.d.mts → index-BcvqDfcN.d.mts} +0 -0
  445. /package/dist/{index-DgspOUa72.d.mts → index-BeENojSx2.d.mts} +0 -0
  446. /package/dist/{index-VzLAV0Yt.d.mts → index-Beo_Ik8-.d.mts} +0 -0
  447. /package/dist/{index-CqdMbYmR.d.mts → index-BgGe9WZz.d.mts} +0 -0
  448. /package/dist/{index-kzIjbrS02.d.mts → index-Bqm0ahTQ.d.mts} +0 -0
  449. /package/dist/{index-B-3I98nw.d.mts → index-C7HcDpHE.d.mts} +0 -0
  450. /package/dist/{index-pvX-BIpr2.d.mts → index-CK3f0bAL.d.mts} +0 -0
  451. /package/dist/{index-B5dP8rj6.d.mts → index-CQuRTeRa.d.mts} +0 -0
  452. /package/dist/{index-BC-6qNeo.d.mts → index-CRmE88hi.d.mts} +0 -0
  453. /package/dist/{index-CVpaGijY.d.mts → index-CvW9_SzR.d.mts} +0 -0
  454. /package/dist/{index-BFWvT0NG.d.mts → index-CxSSdIZz.d.mts} +0 -0
  455. /package/dist/{index-BmevAPME2.d.mts → index-DBadVauL.d.mts} +0 -0
  456. /package/dist/{index-BM56936c.d.mts → index-DP3o_13U.d.mts} +0 -0
  457. /package/dist/{index-BfV8U4XX.d.mts → index-DgOfgjx3.d.mts} +0 -0
  458. /package/dist/{index-8y4hT9WL.d.mts → index-DwLRZscE.d.mts} +0 -0
  459. /package/dist/{index-CmbkCxj-.d.mts → index-E4SET1AA.d.mts} +0 -0
  460. /package/dist/{index-BuMsrli0.d.mts → index-OADt3xlS.d.mts} +0 -0
  461. /package/dist/{capability-service-BW1-teFU.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
  462. /package/dist/{index-CL0Jo1b92.d.mts → index-aoxdnhJ42.d.mts} +0 -0
  463. /package/dist/{index-BTEJfzjE.d.mts → index-bIe_57cL.d.mts} +0 -0
  464. /package/dist/{jsonl-transport-Cyyh5Wje.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
  465. /package/dist/{lib-BqV8hYtk.mjs → lib-Bwdd2m81.mjs} +0 -0
  466. /package/dist/{model-registry-Cixxx2jv.mjs → model-registry-Y854mUml.mjs} +0 -0
  467. /package/dist/{model-registry-C9rFu3kV.mjs → model-registry-yURX738J.mjs} +0 -0
  468. /package/dist/{modes-DwsJ3yVl.mjs → modes-DmUsjHdV.mjs} +0 -0
  469. /package/dist/{namespace-jVTsuZHX.mjs → namespace-B9FEGuEu.mjs} +0 -0
  470. /package/dist/{namespace-NXm_zvL1.mjs → namespace-BFqkUTJp.mjs} +0 -0
  471. /package/dist/{namespace-BUYDmd0r.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
  472. /package/dist/{namespace-CVFaZv8x.d.mts → namespace-BusZERU8.d.mts} +0 -0
  473. /package/dist/{namespace-B0ftHlK3.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
  474. /package/dist/{namespace-BGRHcrmp.d.mts → namespace-C1D77w7U.d.mts} +0 -0
  475. /package/dist/{namespace-Du0accdE.mjs → namespace-CFjdyNXG.mjs} +0 -0
  476. /package/dist/{namespace-DiwqpB-c.mjs → namespace-CfIW0hpQ.mjs} +0 -0
  477. /package/dist/{namespace-BW3Bfu9h.mjs → namespace-CkBbNFSU.mjs} +0 -0
  478. /package/dist/{namespace-DOezqDti.d.mts → namespace-CrDlawqu.d.mts} +0 -0
  479. /package/dist/{namespace-BdAK0lD8.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
  480. /package/dist/{namespace-tjoxekmf.mjs → namespace-DbNWsPFY.mjs} +0 -0
  481. /package/dist/{namespace-CPG6u60N.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
  482. /package/dist/{namespace-l-HG1rLF.d.mts → namespace-DwZwGXgF.d.mts} +0 -0
  483. /package/dist/{namespace-DqZweTbX.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
  484. /package/dist/{namespace-DBO1OzYB.d.mts → namespace-yREpGJgG.d.mts} +0 -0
  485. /package/dist/{out-8bOYN6EF.mjs → out-DrhwCgqM.mjs} +0 -0
  486. /package/dist/{package-EGTn-Ng1.mjs → package-CBdvjyyZ.mjs} +0 -0
  487. /package/dist/{packages-Bp124-gx.mjs → packages-FBv3fAOR.mjs} +0 -0
  488. /package/dist/{packages-CxPMEg8D.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
  489. /package/dist/{platform-CxyYPrkf.mjs → platform-BrsMv_S3.mjs} +0 -0
  490. /package/dist/{provider-operation-DbdyFwNm.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
  491. /package/dist/{providers-C-eekMxD.mjs → providers-CCcn4Ndp.mjs} +0 -0
  492. /package/dist/{providers-namespace-CfZKp-C0.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
  493. /package/dist/{quick-lru-CCEnf7y6.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
  494. /package/dist/{schema-introspection-6-r_KEJQ.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
  495. /package/dist/{schema-C0opCPww.mjs → schema-jIapW8Kb.mjs} +0 -0
  496. /package/dist/{schemas-BXc9qOpl.d.mts → schemas-B3bfVYcL.d.mts} +0 -0
  497. /package/dist/{schemas-BivbWRkG.mjs → schemas-BNdiVBWh.mjs} +0 -0
  498. /package/dist/{schemas-B6Q-qdmn.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
  499. /package/dist/{schemas-B50oWBuj.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
  500. /package/dist/{schemas-ChmQldVH.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
  501. /package/dist/{schemas-Pe892GgN.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
  502. /package/dist/{schemas-B8hKbBwI.mjs → schemas-DgwEVUt-.mjs} +0 -0
  503. /package/dist/{schemas-D7ScxLrf.d.mts → schemas-VbB1FTxx.d.mts} +0 -0
  504. /package/dist/{schemas-scyC2tFF.mjs → schemas-mLpOfMoN.mjs} +0 -0
  505. /package/dist/{schemas-bfZNpl0B.d.mts → schemas-qA279_j_.d.mts} +0 -0
  506. /package/dist/{schemas-BGvkTiCx.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
  507. /package/dist/{semver-BI7kTNsY.mjs → semver-DTXuyLcK.mjs} +0 -0
  508. /package/dist/{server-lifecycle-L8zja8t8.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
  509. /package/dist/{server-lifecycle-B_OZnoe-.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
  510. /package/dist/{session-lineage-bUkd3fqx.d.mts → session-lineage-D5E142LU.d.mts} +0 -0
  511. /package/dist/{shared-schemas-CQ6blrEW.mjs → shared-schemas-aahW97QW.mjs} +0 -0
  512. /package/dist/{src-BacfeiI4.mjs → src-DHqsl5Pg.mjs} +0 -0
  513. /package/dist/{storage-namespace-BZce8kkW.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
  514. /package/dist/{storage-namespace-YmE8XCCL.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
  515. /package/dist/{storage-namespace-definition-Cca-zwXU.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
  516. /package/dist/{supports-color-SV_FgSN2.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
  517. /package/dist/{telemetry-BqoC87F-.mjs → telemetry-BvCBUjFg.mjs} +0 -0
  518. /package/dist/{timeout-DVlN2Zhy.mjs → timeout-B0nYjLc8.mjs} +0 -0
  519. /package/dist/{tray-menu-service-eVVxgPLc.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
  520. /package/dist/{types-DdpSEmTO.d.mts → types-CNS55jvt.d.mts} +0 -0
  521. /package/dist/{types-tyv0B605.d.mts → types-Ce6LL25v.d.mts} +0 -0
  522. /package/dist/{types-BlB23n4f.d.mts → types-xCdGghb2.d.mts} +0 -0
  523. /package/dist/{ui-config-B35GloSX.mjs → ui-config-BIyGzMNL.mjs} +0 -0
  524. /package/dist/{variant-Dwnge3J_.mjs → variant-B4uWdxW7.mjs} +0 -0
  525. /package/dist/{window-registry-Pcf35cac.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
  526. /package/dist/{window-registry-CKiMJjId.mjs → window-registry-CoBJq3u4.mjs} +0 -0
  527. /package/dist/{zod-json-schema-Dixc-B1T.mjs → zod-json-schema-BAGAFfCN.mjs} +0 -0
@@ -0,0 +1,90 @@
1
+ import{adapterSessionClaims as e,adapterSessionClaimsDual as t,agents as n,agentsDual as r,sessions as i,sessionsDual as a}from"./services/session/storage/schema.mjs";import"./schema-DBG7Jq5_.mjs";import{a as o,n as s,o as c}from"./namespace-B7bntOB8.mjs";import{$ as l,A as u,B as d,D as f,E as p,F as m,G as h,H as g,I as _,J as v,K as y,M as ee,N as te,O as ne,P as b,Q as x,S,U as re,V as C,W as w,_ as T,_t as ie,at as ae,ct as oe,dt as se,ft as ce,g as le,gt as ue,ht as de,it as fe,j as pe,k as me,l as he,mt as ge,nt as _e,q as E,rt as ve,st as ye,tt as be,u as xe,ut as Se,v as Ce,w as we,y as Te,z as Ee}from"./handlers-2yd00VEq.mjs";import{TurnStorageSubjects as D}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as O}from"./services/session/storage/namespace.mjs";import{n as k}from"./agent-namespace-D51PODFf.mjs";import{AdapterRuntimeSubjects as De}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as A}from"./services/session/messages/namespace.mjs";import{o as Oe}from"./provider-context-Dh-VOOYF.mjs";import{n as ke}from"./namespace-DbNWsPFY.mjs";import{a as Ae,c as je,i as Me,l as Ne,o as Pe,s as Fe,u as Ie}from"./ownership-memory-handler-Bblp93YC.mjs";import{z as j}from"zod";import{createBusNamespace as Le}from"@makaio/framework/core";import{MakaioBus as Re,NoHandlerError as ze,TimeoutError as Be}from"@makaio/framework/bus";import{AdapterSubjects as Ve,AgentSubjects as M,CanonicalModelSubjects as He,CapabilitySubjects as Ue,ClientSubjects as We,CompressionModeSchema as Ge,FORK_SESSION_LINEAGE_KIND as Ke,ForkTransformsSchema as qe,MessageRoutingSchema as Je,MessageStorageSubjects as Ye,ROOT_SESSION_LINEAGE_KIND as Xe,SessionContextSchema as Ze,SessionDiscoveredSchema as Qe,SessionOwnershipStorageSubjects as N,SessionRecordMetadataSchema as $e,SessionStorageSetRequestSchema as et,SessionStorageUpdateSchema as tt,SessionSubjects as P,TurnIngestionMarkerSchema as nt,compareMessageCursorAsc as rt,compareMessageCursorDesc as it,isCanonicalModelParseError as at,messageToCursor as F,parseCanonicalModel as ot,resolveResumableAdapterSessionId as st}from"@makaio/framework/contracts";import{KernelSubjects as ct}from"@makaio/framework/kernel";import{BaseService as lt}from"@makaio/framework/service-base";import{blob as ut,index as dt,integer as ft,primaryKey as pt,sqliteTable as mt,text as ht,uniqueIndex as gt}from"drizzle-orm/sqlite-core";import{index as _t,primaryKey as vt}from"drizzle-orm/pg-core";import{defineDialectSchema as yt,defineDualTable as bt,didAffectRows as I,executeTransaction as xt,getRawSqlExecutor as St,getStorageEngine as Ct,resolveSchema as L,resolveStorageEngine as wt}from"@makaio/framework/storage/drizzle";import{and as R,asc as z,count as B,desc as Tt,eq as V,gt as Et,gte as Dt,inArray as H,isNull as U,lt as Ot,lte as kt,ne as At,not as jt,or as Mt,sql as W}from"drizzle-orm";import{createStorageNamespaceDefinition as Nt}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Pt}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Ft}from"@makaio/framework/adapters";function It(e,t){if(t!==void 0){if(t.outcome===`lead-conflict`){console.debug(`[session.agent.added] lead designation for ${e} lost to ${t.currentLeadAgentId??`no lead`}`);return}t.outcome!==`claimed`&&t.outcome!==`idempotent`&&console.debug(`[session.agent.added] lead designation for ${e} refused: ${t.outcome}`)}}function Lt(e){return e.on(P.agent.added,async t=>{let n=await e.requestOptional(O.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;if(!r)return;let i=t.payload.role??(r.leadAgentId?`member`:`lead`),a=i===`lead`?await se(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:r.leadAgentId??null}):void 0;i===`lead`&&It(t.payload.agentId,a);let o=a?.outcome===`claimed`||a?.outcome===`idempotent`,s=i===`lead`&&a===void 0;if(!r.adapterName&&(o||s)){let n=o?t.payload.agentId:r.leadAgentId;await Rt(e,t.payload,n);return}await e.requestOptional(O.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})})}async function Rt(e,t,n){let r=await e.requestOptional(O.update,{sessionId:t.sessionId,lastActivityAt:Date.now(),identity:{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId},expectIdentityOpenForLead:n??null});!r.handled||r.data.success||await e.requestOptional(O.update,{sessionId:t.sessionId,lastActivityAt:Date.now()})}function zt(e){return e.on(P.agent.removed,async t=>{let n=await e.requestOptional(O.get,{sessionId:t.payload.sessionId});n.handled&&n.data.session&&(await e.requestOptional(k.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),await e.requestOptional(P.ownership.release,{agentId:t.payload.agentId,disposition:`released`}),await se(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:t.payload.agentId,clear:!0}),await e.requestOptional(O.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()}))})}function Bt(e){return e.on(M.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(k.get,{agentId:n}),c=s.handled?s.data.agent:null;c&&!c.adapterSessionId&&await e.requestOptional(k.updateRuntime,{agentId:n,adapterSessionId:r});let l=await e.requestOptional(O.get,{sessionId:o}),u=l.handled?l.data.session:null;if(u&&!u.adapterSessionId&&u.leadAgentId===n){if(u.adapterName!==void 0&&(i!==u.adapterName||a!==u.adapterId))return;u.adapterSessionId=r,u.adapterName=i,u.adapterId=a,u.lastActivityAt=Date.now(),await e.requestOptional(O.set,{sessionId:o,session:u})}})}async function Vt(e,t){try{let n=await e.requestOptional(Ve.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function Ht(e,t){if(t!==void 0)return t;let n=await e.requestOptional(De.getMachineId,{});return n.handled?n.data.machineId:void 0}async function Ut(e,t,n,r,i){let a=l(t,n);return _e(ae({intent:`resume`,session:t,localMachineId:i,adapterSupportsNative:await Vt(e,r),targetAdapterName:n.adapterName,currentCwd:n.cwd,targetCwd:n.cwd,resumeIdentity:a}),a.adapterSessionId)}function Wt(e,t){let{agentId:n,storedAdapterId:r}=e;switch(t?.kind){case`rehydrated`:case`joined`:return{agentId:n,adapterId:t.agent.adapterId,success:!0};case`deferred`:return{agentId:n,adapterId:r,success:!0};case`refused`:return{agentId:n,adapterId:r,success:!1,error:`Ownership reservation refused: ${t.message??t.outcome}`};case`lost`:return{agentId:n,adapterId:r,success:!1,error:`Another runtime claimed this agent’s recovery`};default:return{agentId:n,adapterId:r,success:!1,error:`Restart produced no result`}}}async function Gt(e,t,n,r){let{agentId:i,adapterId:a}=n;if(n.status===`disposed`)return{agentId:i,adapterId:a,success:!1,error:`Agent is disposed and can no longer be restarted`};let o=await x(e,{adapterName:n.adapterName,storedAdapterId:a,...r!==void 0&&{machineId:r}});if(o===void 0)return{agentId:i,adapterId:a,success:!0};let s=await Ut(e,t,n,o.adapterId,o.machineId);if(ve(s))return{agentId:i,adapterId:a,success:!0};let c=await g(e,{agent:n,sessionId:n.sessionId,instance:o,resumeProviderSessionId:s.resumeAdapterSessionId,...n.cwd!==void 0&&{cwd:n.cwd},...n.model!==void 0&&{model:n.model}});return Wt({agentId:i,storedAdapterId:a},c)}function Kt(e){let t=e instanceof Error?e.cause:void 0;return t instanceof Error?t.message:e instanceof Error?e.message:String(e)}function qt(e){return e.on(P.restartAgents,async t=>{let{sessionId:n,machineId:r}=t.payload,i=await e.requestOptional(k.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await Ht(e,r),c=await e.requestOptional(O.get,{sessionId:n}),l=c.handled?c.data.session:null;for(let t of a){if(l===null){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:`Session row could not be read; agent has no reachable recovery path`});continue}try{o.push(await Gt(e,l,t,s))}catch(e){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:Kt(e)})}}t.setResult({sessionId:n,results:o})})}function Jt(e){return[Zt(e),Qt(e),$t(e),Yt(e),en(e),qt(e.bus),tn(e),nn(e),rn(e),Lt(e.bus),zt(e.bus),Bt(e.bus),Se({bus:e.bus,machineId:e.machineId,topology:e.topology??`shared-machine`}),oe(e.bus)]}function Yt(e){let{bus:t}=e;return t.on(P.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(P.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await Xt(t,n,r);if(s!==void 0){a.abort(),e.setResult({completion:s});return}try{let t=await o;e.setResult({completion:t.payload})}catch(e){throw e instanceof Error&&e.name===`OnceTimeoutError`?new Be(`session.turn.await`,i):e}})}async function Xt(e,t,n){let r=await e.requestOptional(D.get,{turnId:n}),i=r.handled?r.data.turn:null;if(!(i?.sessionId!==t||i.status!==`completed`&&i.status!==`error`))return{sessionId:t,turnId:n,turnNumber:i.turnNumber,success:i.status===`completed`,...i.error!==void 0&&{error:i.error},...i.usage!==void 0&&{usage:i.usage},...i.initiator!==void 0&&{initiator:i.initiator}}}function Zt(e){let{bus:t}=e;return t.on(P.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(P.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),y={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},ee=await t.requestOptional(O.set,{sessionId:h,session:y,ifAbsent:!0});if(ee.handled&&!ee.data.success){e.setResult({sessionId:h});return}await t.emit(P.created,{sessionId:h,createdAt:y.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function Qt(e){let{bus:t}=e;return t.on(P.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 $t(e){let{bus:t}=e;return t.on(P.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(O.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],l=s.handled?s.data.total:0;e.setResult({sessions:c,total:l})})}function en(e){let{bus:t}=e;return t.on(P.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(P.closed,{sessionId:n}),e.setResult({success:!0})})}function tn(e){let{bus:t}=e;return t.on(P.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(O.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(P.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function nn(e){let{bus:t}=e;return t.on(P.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(P.archived,{sessionId:n}),e.setResult({success:!0})})}function rn(e){let{bus:t}=e;return t.on(P.purge,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,error:`Session not found`});return}if(i.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let a=await t.requestOptional(O.list,{status:`all`}),o=a.handled?a.data.sessions:[];for(let e of o)e.parentSessionId===n&&await t.requestOptional(O.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(s.getEvents,{sessionId:n,options:{limit:1}}),l=c.handled?c.data.totalCount:0;await t.requestOptional(s.deleteBySession,{sessionId:n}),await t.requestOptional(O.delete,{sessionId:n}),await t.emit(P.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:l})})}var an=class extends lt{options;constructor(e=Re,t={}){super(e),this.options=t}async onInit(){for(let e of Jt({bus:this.bus,...this.options.machineId!==void 0&&{machineId:this.options.machineId},...this.options.topology!==void 0&&{topology:this.options.topology}}))this.addCleanup(e);this.addCleanup(ie(this.bus)),this.addCleanup(this.scheduleOwnershipReconcile()),await this.reconcileOrphanedTurns()}scheduleOwnershipReconcile(){let e=this.bus.on(ct.phase.coordinatorReady,async t=>{e(),t.setResult({});try{await this.bus.request(P.ownership.reconcile,{})}catch(e){console.error(`[MakaioSessionService] Ownership reconcile failed:`,e)}});return e}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(D.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(D.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});if(t){let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`,ingestionMarker:`live`};await ge(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(P.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function on(e,t){let n=t===void 0?``:` machineId="${t}"`;return Error(`No adapter found for adapterName="${e}"${n}. Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}function sn(e,t){return JSON.stringify([t??null,e])}var cn=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(Ve.initialized,e=>{this.registry.set(sn(e.payload.adapterName),e.payload.adapterId)})}resolve(e){let t=this.registry.get(sn(e));if(!t)throw on(e);return t}async resolveAvailable(e,t){try{let{adapterId:n}=await this.bus.request(De.resolveId,{adapterName:e,...t!==void 0&&{machineId:t}});return this.registry.set(sn(e,t),n),n}catch{let n=this.registry.get(sn(e,t));if(n)return n;throw on(e,t)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function ln(e,t){e.emit(A.stored,{message:structuredClone(t)});try{await e.request(s.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 un(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 dn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await n.insert(r).values({messageId:o,turnId:s.turnId,sessionId:s.sessionId,role:s.role,contentText:s.contentText,blocks:JSON.stringify(s.blocks),agentId:s.agentId??null,adapterSessionId:s.adapterSessionId??null,adapterMessageId:s.adapterMessageId??null,timestamp:s.timestamp,editOf:s.editOf??null,origin:s.origin??null}),e.setResult({message:s}),(a??!0)&&await ln(t,s)})}function fn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?Tt:z,l=n.select().from(r).where(V(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Mt(Ot(r.timestamp,a.timestamp),R(V(r.timestamp,a.timestamp),o?kt(r.messageId,a.messageId):Ot(r.messageId,a.messageId))):Mt(Et(r.timestamp,a.timestamp),R(V(r.timestamp,a.timestamp),o?Dt(r.messageId,a.messageId):Et(r.messageId,a.messageId)));l=n.select().from(r).where(R(V(r.sessionId,t),e)).orderBy(c(r.timestamp),c(r.messageId))}let u=i??100,d=await l.limit(u+1),f=d.length>u,p=f?d.slice(0,u):d,m=f&&p.length>0?F(p[p.length-1]):null;e.setResult({messages:p.map(un),nextCursor:m})})}function pn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(V(r.turnId,t)).orderBy(z(r.timestamp));e.setResult({messages:i.map(un)})})}function mn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(V(r.messageId,t)).limit(1);e.setResult({message:i?un(i):null})})}function hn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c),i=wt(n).fts;return t.on(A.search,async e=>{let{query:t,sessionId:a,limit:o}=e.payload,s=o??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let{rows:c,total:l}=await i.searchMessages(n,r,{query:t,sessionId:a,limit:s});e.setResult({messages:c.map(un),total:l})})}function gn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c),i=wt(n).fts;return t.on(A.ftsSearch,async e=>{let{query:t,sessionId:a,limit:o=20}=e.payload;if(!t.trim()){e.setResult({results:[],total:0});return}let{results:s,total:c}=await i.searchMessageExcerpts(n,r,{query:t,sessionId:a,limit:o});e.setResult({results:s,total:c})})}function _n(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(V(r.adapterMessageId,t)).limit(1);e.setResult({message:i?un(i):null})})}function vn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(R(V(r.adapterMessageId,i),V(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(V(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(R(V(r.adapterMessageId,i),V(r.sessionId,a))).limit(1);if(t===void 0)throw Error(`Message upsert conflict winner disappeared before reread completed`);t.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(V(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await ln(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 yn(e,t){let n={bus:e,db:t},r=[dn(n),fn(n),pn(n),mn(n),hn(n),gn(n),vn(n),_n(n)];return()=>r.forEach(e=>e())}function bn(e,t){return rt(F(e),F(t))}function xn(e,t){return it(F(e),F(t))}function Sn(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function Cn(e,t,n,r){if(r===null)return;let i=e.get(n);if(i===void 0||i.turnId!==null)return;i.turnId=r;let a=t.get(r)??[];a.includes(n)||(a.push(n),t.set(r,a))}function wn(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Tn(t,n,r,i),o=[En(e,t,a),Dn(e,t,n),On(e,t,r),kn(e,t),An(e,t),jn(e,t,r,i,a),Mn(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Tn(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&&Sn(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function En(e,t,n){return e.on(A.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 ln(e,o)})}function Dn(e,t,n){return e.on(A.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`?xn:bn,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?it(F(e),a):rt(F(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?F(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function On(e,t,n){return e.on(A.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(bn);e.setResult({messages:i})})}function kn(e,t){return e.on(A.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function An(e,t){return e.on(A.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(bn),e.setResult({messages:c.slice(0,a),total:c.length})})}function jn(e,t,n,r,i){return e.on(A.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){Cn(t,n,g,c),a.setResult({messageId:g,created:!1});return}let _=crypto.randomUUID(),v={messageId:_,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f??void 0,adapterSessionId:p??void 0,adapterMessageId:o,timestamp:m,editOf:void 0,origin:h??void 0};i(v),a.setResult({messageId:_,created:!0}),await ln(e,v)})}function Mn(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)}if(n.adapterMessageId){let e=i.get(n.sessionId);e?.delete(n.adapterMessageId),e?.size===0&&i.delete(n.sessionId)}}}n.delete(a)})}const Nn=bt(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(o,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[pt({columns:[e.messageId,e.agentId,e.status]}),dt(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[vt({columns:[e.messageId,e.agentId,e.status]}),_t(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),Pn=Nn.sqlite,Fn=Nt(`messageRouting`,{schemas:{record:{request:Je,response:j.object({success:j.boolean()})},getByMessage:{request:j.object({messageId:j.string()}),response:j.object({routing:j.array(Je)})},getCompleted:{request:j.object({messageId:j.string()}),response:j.object({agentIds:j.array(j.string())})},isComplete:{request:j.object({messageId:j.string(),targetAgentIds:j.array(j.string())}),response:j.object({complete:j.boolean(),pending:j.array(j.string())})}},extensions:{drizzle:{messageRouting:Pn}}}),G=Fn.subjects,In=Nn.postgres,Ln=yt({messageRouting:Pn},{messageRouting:In});function Rn(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function zn(e,t){let{messageRouting:n}=L(t,Ln),r=[];return r.push(e.on(G.record,async e=>{let{messageId:r,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(n).values({messageId:r,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[n.messageId,n.agentId,n.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),r.push(e.on(G.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(V(n.messageId,r));e.setResult({routing:i.map(Rn)})})),r.push(e.on(G.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(R(V(n.messageId,r),V(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(G.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(R(V(n.messageId,r),V(n.status,`completed`))),o=new Set(a.map(e=>e.agentId)),s=i.filter(e=>!o.has(e));e.setResult({complete:s.length===0,pending:s})})),()=>r.forEach(e=>e())}const Bn={writesAgentStatus:!0};async function Vn(e,t,n){let r=await v(e,{sessionId:t.sessionId,agentId:n,adapterName:t.adapterName,instance:t.instance,role:`lead`,resumeProviderSessionId:null,expectedLeadAgentId:t.expectedLeadAgentId});return r.outcome===`reserved`?{kind:`reserved`,reservation:r.reservation}:r.outcome===`lead-conflict`?{kind:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:{kind:`refused`,outcome:r.outcome}}async function Hn(e,t,n){let r=u({agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,role:`lead`,runtime:t.startRequest,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId}}),i;try{await e.requestOptional(k.set,{agentId:n,agent:r}),i=await Vn(e,t,n)}catch(t){throw await y(e,n,void 0),t}if(i.kind===`lead-conflict`)return await y(e,n,void 0),{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId};if(i.kind===`refused`)throw await y(e,n,void 0),new E(`start-failed`,`[session.start] reservation for agent ${n} was refused: ${i.outcome}`);let{reservation:a}=i,o=new w([a.claim?.claimToken]),s;try{s=await e.request(Ve.startAgent,{...t.startRequest,agentId:n})}catch(t){throw await h(e,n,Bn,o),t}if(!s.success)throw s.dispatch===`not-dispatched`?await y(e,n,a):await h(e,n,Bn,o),new E(`start-failed`,`[session.start] Failed to start agent (sessionId=${t.sessionId}, adapterName=${t.adapterName}): ${s.message}`);let c=ce();return o.add(c),await re(e,{sessionId:t.sessionId,agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,policy:Bn,claimTokens:o,settlementClaimToken:c,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},machineId:t.instance.machineId},s.adapterSessionId),{outcome:`started`,agent:{...r,status:`idle`,...s.adapterSessionId!==void 0&&{adapterSessionId:s.adapterSessionId}}}}async function Un(e,t){let n=crypto.randomUUID(),r;if(await ye(n,async()=>(r=await Hn(e,t,n),r.outcome===`started`?`connected`:`no-connector`)).settled,r===void 0)throw new E(`start-failed`,`[session.start] start for agent ${n} produced no result`);return r}function Wn(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var Gn=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];admittedTargetsByMessageId=new Map;terminalPairs=new Map;pendingMessageAdmissions=new Set;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(Wn(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return Wn(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this.pendingMessageAdmissions.size>0}addMessage(e){this.admitMessage(e,this._agentIds),this.commitMessageAdmission(e)}claimMessageAppend(e){this.admitMessage(e,this._agentIds)}releaseMessageAppend(e){this.rollbackMessageAdmission(e)}admitMessage(e,t){if(this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} already admitted message ${e}`);if(t.length===0||new Set(t).size!==t.length)throw Error(`Turn ${this.turnId} requires a non-empty unique target set for message ${e}`);if(t.some(e=>!this.hasAgent(e)))throw Error(`Turn ${this.turnId} cannot admit targets outside its immutable participant set`);this._messageIds.push(e),this.admittedTargetsByMessageId.set(e,new Set(t)),this.pendingMessageAdmissions.add(e)}commitMessageAdmission(e){if(!this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} cannot commit unknown message ${e}`);this.pendingMessageAdmissions.delete(e)}rollbackMessageAdmission(e){let t=this.admittedTargetsByMessageId.get(e);if(!t)return;if([...t].some(t=>this.terminalPairs.has(this.pairKey(e,t))))throw Error(`Turn ${this.turnId} cannot roll back terminal message ${e}`);this.admittedTargetsByMessageId.delete(e),this.pendingMessageAdmissions.delete(e);let n=this._messageIds.indexOf(e);n>=0&&this._messageIds.splice(n,1)}recordPairTerminal(e,t,n,r){if(!this.admittedTargetsByMessageId.get(e)?.has(t))return{accepted:!1,turnComplete:!1};let i=this.pairKey(e,t);return this.terminalPairs.has(i)?{accepted:!1,turnComplete:!1}:(this.terminalPairs.set(i,{outcome:n,...r!==void 0&&{error:r}}),this.isComplete()?{accepted:!0,turnComplete:!0,result:this.getResult()}:{accepted:!0,turnComplete:!1})}hasAdmittedPair(e,t){return this.admittedTargetsByMessageId.get(e)?.has(t)??!1}get admittedPairs(){return[...this.admittedTargetsByMessageId].flatMap(([e,t])=>[...t].map(t=>({messageId:e,agentId:t})))}hasAgent(e){return this._agentIds.includes(e)}isComplete(){if(this.admittedTargetsByMessageId.size===0||this.pendingMessageAdmissions.size>0)return!1;for(let[e,t]of this.admittedTargetsByMessageId)for(let n of t)if(!this.terminalPairs.has(this.pairKey(e,n)))return!1;return!0}getResult(){let e=[...this.terminalPairs.values()].filter(e=>e.outcome===`error`).map(e=>e.error??`Unknown error`);return{success:e.length===0,errors:e}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}pairKey(e,t){return JSON.stringify([e,t])}},Kn=class e{byAgent=new Map;coverageByAgent=new Map;ambiguousAgents=new Set;providerCalls=new Set;add(e){if(e.granularity===`latest-request-gauge`||this.ambiguousAgents.has(e.agentId))return;let t=this.coverageByAgent.get(e.agentId);if(t!==void 0&&t!==e.granularity){this.byAgent.delete(e.agentId),this.ambiguousAgents.add(e.agentId);return}if(e.granularity===`provider-call`&&e.llmCallId!==void 0){let t=`${e.agentId}:${e.llmCallId}`;if(this.providerCalls.has(t))return;this.providerCalls.add(t)}this.coverageByAgent.set(e.agentId,e.granularity);let n=this.byAgent.get(e.agentId);n?(n.inputTokens+=e.inputTokens,e.inputCachedTokens>0&&(n.cachedInputTokens=(n.cachedInputTokens??0)+e.inputCachedTokens),n.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,...e.inputCachedTokens>0&&{cachedInputTokens:e.inputCachedTokens},outputTokens:e.outputTokens})}preview(t){let n=new e;for(let[e,t]of this.byAgent)n.byAgent.set(e,{...t});for(let[e,t]of this.coverageByAgent)n.coverageByAgent.set(e,t);for(let e of this.ambiguousAgents)n.ambiguousAgents.add(e);for(let e of this.providerCalls)n.providerCalls.add(e);for(let e of t)n.add(e);return n.snapshot()}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n=0,r={};for(let[i,a]of this.byAgent)e+=a.inputTokens,t+=a.cachedInputTokens??0,n+=a.outputTokens,r[i]={...a};return{total:{inputTokens:e,...t>0&&{cachedInputTokens:t},outputTokens:n},byAgent:r}}flush(){let e=this.snapshot();return this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear(),e}clear(){this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear()}};const qn=Symbol(`turnReservation`);var Jn=class{activeTurns=new Map;reservations=new Map;pendingAcquisitions=new Map;pendingPreparations=new Map;preparedTurnIds=new Set;pendingFinalizations=new Map;finalizingTurnIds=new Set;async awaitFinalization(e,t){let n=this.pendingFinalizations.get(e);if(n)return await n;let r=t();this.pendingFinalizations.set(e,r);try{await r}finally{this.pendingFinalizations.get(e)===r&&this.pendingFinalizations.delete(e)}}getActive(e){return this.activeTurns.get(e)}findActiveByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}async acquire(e,t){let n=this.activeTurns.get(e);if(n)return{turn:n,isNew:!1};let r=this.pendingAcquisitions.get(e);if(r)return{turn:await r,isNew:!1};let i=t(this.reserve(e));this.pendingAcquisitions.set(e,i);try{return{turn:await i,isNew:!0}}finally{this.pendingAcquisitions.get(e)===i&&this.pendingAcquisitions.delete(e)}}reserve(e){if(this.activeTurns.has(e)||this.reservations.has(e))throw Error(`Session ${e} already has a routable or pending turn`);let t={sessionId:e,[qn]:!0};return this.reservations.set(e,t),t}release(e){this.reservations.get(e.sessionId)===e&&this.reservations.delete(e.sessionId)}activate(e,t){if(this.reservations.get(e.sessionId)!==e)throw Error(`Turn reservation for session ${e.sessionId} is no longer active`);this.activeTurns.set(e.sessionId,t),this.release(e)}clearActive(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),this.preparedTurnIds.delete(e.turnId),!0):!1}tryAdmitMessage(e,t,n){if(this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId)return;e.admitMessage(t,n);let r=!1;return{turn:e,messageId:t,agentIds:[...n],commit:()=>{r||(r=!0,e.commitMessageAdmission(t))},rollback:async()=>{r||(r=!0,e.rollbackMessageAdmission(t))}}}beginFinalization(e){return this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId?!1:(this.finalizingTurnIds.add(e.turnId),this.clearActive(e),!0)}finishFinalization(e){this.finalizingTurnIds.delete(e.turnId)}beginPreparation(e){if(this.preparedTurnIds.has(e.turnId))return{turn:e,isOwner:!1,ready:Promise.resolve()};let t=this.pendingPreparations.get(e.turnId);if(t)return{turn:e,isOwner:!1,ready:t.ready};let n,r,i=new Promise((e,t)=>{n=e,r=t});return i.catch(()=>{}),this.pendingPreparations.set(e.turnId,{turn:e,ready:i,resolve:n,reject:r}),{turn:e,isOwner:!0,ready:i}}completePreparation(e){if(!e.isOwner)throw Error(`Only the preparation owner can complete turn ${e.turn.turnId}`);let t=this.pendingPreparations.get(e.turn.turnId);if(!t||t.turn!==e.turn)throw Error(`Turn preparation for ${e.turn.turnId} is no longer active`);this.pendingPreparations.delete(e.turn.turnId),this.preparedTurnIds.add(e.turn.turnId),t.resolve()}failPreparation(e,t){if(!e.isOwner)throw Error(`Only the preparation owner can fail turn ${e.turn.turnId}`);let n=this.pendingPreparations.get(e.turn.turnId);!n||n.turn!==e.turn||(this.pendingPreparations.delete(e.turn.turnId),n.reject(t))}clear(){this.activeTurns.clear(),this.reservations.clear(),this.pendingAcquisitions.clear(),this.pendingFinalizations.clear(),this.finalizingTurnIds.clear();for(let e of this.pendingPreparations.values())e.reject(Error(`Turn slot registry was cleared during preparation`));this.pendingPreparations.clear(),this.preparedTurnIds.clear()}},Yn=class{bus;resolveTurn;timeoutMs;settledPairs=new Map;waiters=new Map;cleanup;destroyed=!1;constructor(e,t,n){this.bus=e,this.resolveTurn=t,this.timeoutMs=n,this.cleanup=e.on(P.turn.assistantPersistenceSettled,e=>{if(this.destroyed)return;let{sessionId:t,turnId:n,messageId:r,agentId:i}=e.payload,a=this.resolveTurn(n);if(!a||a.sessionId!==t||!a.hasAdmittedPair(r,i))return;let o=this.settledPairs.get(n)??new Set;o.add(this.pairKey(r,i)),this.settledPairs.set(n,o),this.isSettled(a)&&this.waiters.get(n)?.settle()})}async waitFor(e){if(this.destroyed||e.agentIds.length===0||this.isSettled(e))return;let t=await this.bus.requestOptional(A.getByTurn,{turnId:e.turnId});this.destroyed||!t.handled||await new Promise(t=>{let n=()=>{clearTimeout(r),this.waiters.delete(e.turnId),t()},r=setTimeout(n,this.timeoutMs);this.waiters.set(e.turnId,{settle:n}),this.isSettled(e)&&n()})}clear(e){this.waiters.get(e)?.settle(),this.settledPairs.delete(e)}destroy(){if(!this.destroyed){this.destroyed=!0,this.cleanup();for(let e of[...this.waiters.values()])e.settle();this.waiters.clear(),this.settledPairs.clear()}}isSettled(e){if(e.admittedPairs.length===0)return!0;let t=this.settledPairs.get(e.turnId);return t!==void 0&&e.admittedPairs.every(({messageId:e,agentId:n})=>t.has(this.pairKey(e,n)))}pairKey(e,t){return JSON.stringify([e,t])}};function Xn(e,t,n){return{...e,isPreparationOwner:t.isOwner,commit:()=>{e.commit(),t.isOwner&&n.completePreparation(t)},rollback:async(r=`message-setup-failed:${e.messageId}`)=>{let i=e.rollback();if(t.isOwner){let a={success:!1,errors:[r]};n.beginSetupFailure(e,a),n.failPreparation(t,Error(`Message ${e.messageId} setup failed`)),await i,await n.finalizeSetupFailure(e,a);return}await i,e.turn.isComplete()&&await n.finalizeCompletedLedger(e,e.turn.getResult())}}}function Zn(e){return{status:e.success?`completed`:`error`,error:e.errors.length>0?e.errors.join(`; `):void 0}}function Qn(e,t){if(e===void 0||t===void 0)return e===t;if(e.total.inputTokens!==t.total.inputTokens||e.total.cachedInputTokens!==t.total.cachedInputTokens||e.total.outputTokens!==t.total.outputTokens||e.total.cost!==t.total.cost)return!1;let n=e.byAgent??{},r=t.byAgent??{},i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length?i.every((e,t)=>{if(e!==a[t])return!1;let i=n[e],o=r[e];return i?.inputTokens===o?.inputTokens&&i?.cachedInputTokens===o?.cachedInputTokens&&i?.outputTokens===o?.outputTokens&&i?.cost===o?.cost}):!1}async function $n(e,t,n,r,i){let a=Zn(n),o=await e.requestOptional(D.complete,{turnId:t.turnId,status:a.status,...i!==void 0&&{expectedStatus:i},error:a.error,usage:r??null});if(!o.handled)return{handled:!1,transitioned:!0};let s=o.data.turn;if(!(s.status===a.status&&s.error===a.error))return{handled:!0,transitioned:!1};if(Qn(s.usage,r))return{handled:!0,transitioned:!0};if(o.data.transitioned)throw Error(`Turn completion storage returned non-canonical usage for transitioned turn ${t.turnId}`);let c=await e.requestOptional(D.complete,{turnId:t.turnId,status:a.status,error:a.error,usage:r??null});if(!c.handled||!Qn(c.data.turn.usage,r))throw Error(`Turn completion usage reconciliation did not persist the canonical snapshot for ${t.turnId}`);if(c.data.turn.status!==a.status||c.data.turn.error!==a.error)throw Error(`Turn completion usage reconciliation changed terminal metadata for ${t.turnId}`);return{handled:!0,transitioned:!0}}async function er(e){let t=e.turn.turnId,n=e.currentUsage;for(;;){let r=e.bufferedUsage.get(t);if(r===void 0||r.length===0)return n;e.bufferedUsage.delete(t);let i=e.usageAccumulator?e.usageAccumulator.preview(r):n;try{await $n(e.bus,e.turn,e.result,i)}catch(n){let i=e.bufferedUsage.get(t)??[];throw e.bufferedUsage.set(t,[...r,...i]),n}for(let t of r)e.usageAccumulator?.add(t);n=e.usageAccumulator?.snapshot()??i}}function tr(e,t,n){return[e.on(M.usage,e=>{let{agentId:n,turnId:r,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,llmCallId:c}=e.payload;if(!r){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${n}).`);return}let l=t.resolveUsageTurn(r);if(!l||!l.hasAgent(n))return;let u={agentId:n,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,...c&&{llmCallId:c}};t.isCompletionInFlight(l.turnId)?t.bufferUsage(l.turnId,u):t.addUsage(l,u)}),e.on(M.complete,async r=>{let{agentId:i,outcome:a,error:o,turnId:s,messageId:c}=r.payload;r.payload._import||!s||await nr(e,t,{agentId:i,messageId:c,outcome:a??`completed`,error:a===`error`?o:void 0,turnId:s,onTurnComplete:n})})]}async function nr(e,t,n){let r=t.resolveCompletionTurn(n.turnId);if(!r?.hasAgent(n.agentId))return;let i=r.recordPairTerminal(n.messageId,n.agentId,n.outcome,n.error);if(!i.accepted){t.canRetry(r.turnId)&&await t.retry(r.turnId);return}i.turnComplete&&t.beginFinalization(r,i.result);let a=e.emit(P.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:n.messageId,agentId:n.agentId,outcome:n.outcome,...n.error!==void 0&&{error:n.error}}),o=i.turnComplete?n.onTurnComplete(r,i.result):Promise.resolve(),[s,c]=await Promise.allSettled([a,o]);if(s.status===`rejected`&&console.error(`[SessionTurnManager] Failed to emit user-message completion:`,s.reason),c.status===`rejected`)throw c.reason}var rr=class{bus;turnSlots=new Jn;usageAccumulators=new Map;completingTurnIds=new Set;completionPromises=new Map;completingTurns=new Map;closedUsageAdmissions=new Set;pendingTerminalCompletions=new Map;pendingTerminalResults=new Map;setupFinalizingTurnIds=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantPersistenceBarrier;cleanups=[];constructor(e){this.bus=e,this.assistantPersistenceBarrier=new Yn(e,e=>this.findTurnForCompletion(e),1500)}async acquireTurn(e,t,n,r){await this.retryRetainedCompletionsForSession(e);let i=await this.turnSlots.acquire(e,e=>this.createReservedTurn(e,t,n,r));if(t.some(e=>!i.turn.hasAgent(e)))throw Error(`Turn ${i.turn.turnId} cannot route agents outside its immutable participant set (sessionId=${e})`);return i}async reserveTurn(e){return await this.retryRetainedCompletionsForSession(e),this.turnSlots.reserve(e)}releaseTurnReservation(e){this.turnSlots.release(e)}async acquireMessageAdmission(e,t,n,r,i){for(;;){let a=await this.acquireTurn(e,t,r,i),o=this.turnSlots.tryAdmitMessage(a.turn,n,t);if(!o)continue;let s=this.turnSlots.beginPreparation(a.turn);if(!s.isOwner)try{await s.ready}catch{await o.rollback();continue}return this.composeAdmissionWithPreparation(o,s)}}admitReservedMessage(e,t,n){let r=this.turnSlots.tryAdmitMessage(e,t,n);if(!r)throw Error(`Turn ${e.turnId} is no longer routable for message admission`);return this.composeAdmissionWithPreparation(r,this.turnSlots.beginPreparation(e))}async createReservedTurn(e,t,n,r){let{sessionId:i}=e;try{let a=await this.bus.requestOptional(D.create,{sessionId:i,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),o,s;if(a.handled)o=a.data.turn.turnId,s=a.data.turn.turnNumber;else{o=r??crypto.randomUUID();let e=(this.syntheticTurnCounters.get(i)??0)+1;this.syntheticTurnCounters.set(i,e),s=e}let c=new Gn({sessionId:i,agentIds:t,turnId:o,turnNumber:s,initiator:n});return this.turnSlots.activate(e,c),this.usageAccumulators.set(c.turnId,new Kn),c}finally{this.releaseTurnReservation(e)}}async createTurn(e,t,n,r){return this.createReservedTurn(await this.reserveTurn(e),t,n,r)}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId))}async failActiveTurnBeforeDispatch(e,t){if(this.turnSlots.getActive(e.sessionId)?.turnId!==e.turnId)return;let n={success:!1,errors:[t]};this.beginFinalization(e,n,`setup`),await this.completeTurn(e,n)}async failActiveTurnSetup(e,t){e.messageIds.length>0||e.hasPendingMessageAppends||await this.failActiveTurnBeforeDispatch(e,t)}clearActiveRoutingTurn(e){return this.turnSlots.clearActive(e)}composeAdmissionWithPreparation(e,t){return Xn(e,t,{completePreparation:e=>this.turnSlots.completePreparation(e),failPreparation:(e,t)=>this.turnSlots.failPreparation(e,t),beginSetupFailure:(e,t)=>this.beginFinalization(e.turn,t,`setup`),finalizeSetupFailure:async(e,t)=>this.completeTurn(e.turn,t),finalizeCompletedLedger:async(e,t)=>{this.beginFinalization(e.turn,t,`normal`),await this.completeTurn(e.turn,t)}})}registerCompletionHandlers(e){this.cleanups.push(...tr(this.bus,this.completionEventHooks(),e))}async completeTurn(e,t){let n=this.completionPromises.get(e.turnId);if(n)return await n;let r=this.completeTurnInternal(e,t);this.completionPromises.set(e.turnId,r);try{await r}finally{this.completionPromises.get(e.turnId)===r&&this.completionPromises.delete(e.turnId)}}async completeTurnInternal(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId);let n=this.beginFinalization(e,t,`normal`),r=this.usageAccumulators.get(e.turnId),i=r?.snapshot(),a=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let t=await $n(this.bus,e,n,i,`active`);if(a=t.handled,!t.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,r);return}this.pendingTerminalCompletions.set(e.turnId,a),i=await er({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion})}}catch(t){throw this.completingTurnIds.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}let o=!1;try{a&&!this.setupFinalizingTurnIds.has(e.turnId)&&await this.assistantPersistenceBarrier.waitFor(e),this.closedUsageAdmissions.add(e.turnId),i=await er({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion});let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:n.success,error:n.errors.length>0?n.errors.join(`; `):void 0,...i!==void 0&&{usage:i},initiator:e.initiator,ingestionMarker:`live`};await ge(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:t}),o=!0,await this.bus.emit(P.turn.completed,t)}catch(t){throw o?this.clearCompletionState(e,r):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,r)}async retryTurnCompletion(e){let t=this.completingTurns.get(e),n=this.pendingTerminalResults.get(e);if(t===void 0||n===void 0)throw Error(`Turn ${e} has no retryable completion`);await this.completeTurn(t,n)}async retryRetainedCompletionsForSession(e){await this.turnSlots.awaitFinalization(e,async()=>{for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.setupFinalizingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:this.completingTurnIds.has(t.turnId)||await this.retryTurnCompletion(t.turnId)}for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.pendingTerminalResults.has(t.turnId)&&!this.completingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:await this.retryTurnCompletion(t.turnId)}})}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId),this.completingTurns.delete(e.turnId),this.closedUsageAdmissions.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId),this.pendingTerminalResults.delete(e.turnId),this.setupFinalizingTurnIds.delete(e.turnId),this.turnSlots.finishFinalization(e)}getActiveTurn(e){return this.turnSlots.getActive(e)}findActiveTurnByTurnId(e){return this.turnSlots.findActiveByTurnId(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnSlots.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completionPromises.clear(),this.completingTurns.clear(),this.closedUsageAdmissions.clear(),this.pendingTerminalCompletions.clear(),this.pendingTerminalResults.clear(),this.setupFinalizingTurnIds.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear(),this.assistantPersistenceBarrier.destroy()}async recordAgentCompletion(e,t,n,r,i,a){await nr(this.bus,this.completionEventHooks(),{agentId:e,messageId:t,outcome:n,...r!==void 0&&{error:r},turnId:a,onTurnComplete:i})}completionEventHooks(){return{resolveUsageTurn:e=>this.findTurnForUsage(e),resolveCompletionTurn:e=>this.findTurnForCompletion(e),isCompletionInFlight:e=>this.completingTurnIds.has(e),addUsage:(e,t)=>this.usageAccumulators.get(e.turnId)?.add(t),bufferUsage:(e,t)=>this.bufferUsageDuringCompletion(e,t),canRetry:e=>this.pendingTerminalResults.has(e)&&!this.completingTurnIds.has(e),retry:async e=>this.retryTurnCompletion(e),beginFinalization:(e,t)=>this.beginFinalization(e,t,`normal`)}}beginFinalization(e,t,n){let r=this.pendingTerminalResults.get(e.turnId)??t;return this.completingTurns.set(e.turnId,e),this.pendingTerminalResults.set(e.turnId,r),n===`setup`&&this.setupFinalizingTurnIds.add(e.turnId),this.turnSlots.beginFinalization(e),r}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){let t=this.findActiveTurnByTurnId(e);if(t!==void 0)return t;if(!this.closedUsageAdmissions.has(e))return this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}};async function ir(e,t,n){let r=T(t.adapterName),i=T(t.adapterId);if(!r&&!i)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${n})`);if(i)return Ce(e,i,r,`[SessionOrchestrator.sendMessage] (sessionId=${n}) `);if(r===void 0)throw Error(`[SessionOrchestrator.sendMessage] adapterName could not be resolved (sessionId=${n})`);return r}async function ar(e,t,n,r,i){if(!t)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${n})`);if(t.kind===`adapter`)return t;if(t.kind===`canonical-model`)return await or(e,t,n,r,i);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${n})`)}async function or(e,t,n,r,i){let a=ot(t.model);if(at(a))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${t.model}" (sessionId=${n}): ${a.message}`);if(a.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${n})`);let o=await e.request(He.resolve,{parsed:a,context:{sessionId:n,promptText:ne(r),...i===void 0?{}:{sessionContext:i}}});return{...t,...o,kind:`adapter`,providerConfigId:t.providerConfigId??o.providerConfigId}}async function sr(e,t,n){let{adapterName:r,sessionId:i,machineId:a,registry:o}=n,s={adapterId:T(t.adapterId),machineId:T(t.machineId)},c=le(s,{sessionId:i,errorPrefix:`[SessionOrchestrator.sendMessage] `});if(c!==void 0)throw new E(`start-failed`,c);if(s.adapterId===void 0)return{adapterId:await o.resolveAvailable(r,a),machineId:a};let l=await x(e,{adapterName:r,adapterId:s.adapterId,...s.machineId!==void 0&&{machineId:s.machineId}});if(l?.machineId===void 0)throw new E(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${s.adapterId} produced no machine (sessionId=${i})`);return{adapterId:l.adapterId,machineId:l.machineId}}async function cr(e,t,n){let r=await ir(e,t,n.sessionId),i=t.providerConfigId===void 0?void 0:Oe(e,{adapterName:r,providerConfigId:t.providerConfigId});i?.catch(()=>void 0);let a=await sr(e,t,{...n,adapterName:r}),o=await i;return{adapterName:r,instance:a,providerContext:o,providerConfigId:t.providerConfigId??o?.providerConfigId}}const lr=`[session.sendMessage]`;function ur(e,t){for(let n of t)e.add(n)}const dr={droppedAgentIds:new Set,recoveringAgentIds:new Set,arbitratedAgentIds:new Set};var fr=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=Re,t){this.bus=e,this.machineId=t,this.turnManager=new rr(e),this.adapterRegistry=new cn(e),this.cleanups.push(he(this.bus,this.turnManager,t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(P.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=we(o,e.payload.extensionId),l=e.payload.sessionContext?Ze.parse(e.payload.sessionContext):void 0,{sessionId:u,session:h}=await p(this.bus,t,l,e.payload.originWindowId,this.machineId),g=await d(this.bus,h);te(lr,u,h,r);let _=new Set(g.recoveringAgentIds),v=new Set(g.arbitratedAgentIds);if(h.agents.length===0){let e=await this.startLeadAgent(h,u,a,n,l);ur(_,e.recoveringAgentIds),ur(v,e.arbitratedAgentIds)}let y=f(h,r);if(y.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${u})`);let ee=await this.recoverDeadTargets(h,y,_,v),b=ee.deferredAgentIds,x=ee.recoveryContext;if(b.size>0){let e=await this.retargetAfterDeferral({session:h,sessionId:u,targetSpec:r,agentSelection:a,message:n,sessionContext:l},y,b);if(y=e.targetAgents,x=e.recoveryContext??x,e.recovering.size>0){let t=await this.recoverDeadTargets(h,y,e.recovering,e.arbitrated);t.deferredAgentIds.size>0&&m(lr,u,t.deferredAgentIds),x=t.recoveryContext??x}}let S=crypto.randomUUID(),re=me(n),C=await this.turnManager.acquireMessageAdmission(u,y.map(e=>e.agentId),S,c,e.payload.turnId),w=C.turn;try{if(!(await this.bus.requestOptional(A.append,{message:{messageId:S,turnId:w.turnId,sessionId:u,role:`user`,contentText:ne(n),blocks:re,timestamp:Date.now(),...s!==void 0&&{origin:s}}})).handled)throw Error(`Message storage append handler is not registered`);C.isPreparationOwner&&await de(this.bus,{sessionId:u,turnId:w.turnId,turnNumber:w.turnNumber,messageId:S,agentIds:[...w.agentIds],initiator:w.initiator,ingestionMarker:`live`}),await ue(this.bus,{sessionId:u,turnId:w.turnId,turnNumber:w.turnNumber,messageId:S,content:n,agentIds:y.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}}),C.commit()}catch(e){try{await C.rollback(`user-message-persistence-failed`)}catch(e){console.error(`[SessionOrchestrator] Failed to finalize rejected message setup:`,e)}throw e}for(let e of y)this.bus.requestOptional(G.record,{messageId:S,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:u,messageId:S,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});let T=x?{...l,...x}:l;await xe(this.bus,h,y,n,S,w,i,this.completeTurn.bind(this),this.turnManager,T,e.payload.responseSchema),e.setResult({messageId:S,turnId:w.turnId,sessionId:u,...b.size>0&&{deferredAgentIds:[...b]}})}))}async recoverDeadTargets(e,t,n,r){let i=await Promise.all(t.map(async e=>{if(!(n.has(e.agentId)&&!r.has(e.agentId)))return this.bus.requestOptional(Ve.getAgent,{agentId:e.agentId,adapterId:e.adapterId})})),a=[];for(let[e,n]of t.entries()){let t=i[e];if(t===void 0){a.push(n);continue}let o=t.handled?t.data.agent:void 0;if(r.has(n.agentId)){if(o==null){a.push(n);continue}await C(this.bus,n.agentId);continue}t.handled&&o===null&&a.push(n)}let o=new Set;if(a.length===0)return{recoveryContext:void 0,deferredAgentIds:o};let s=be,c=await Te(this.bus,e,s),l=fe(s)??null;for(let e of a)(await Ee(this.bus,e,{resumeProviderSessionId:l,machineId:this.machineId})).deferred&&o.add(e.agentId);return o.size===a.length?{recoveryContext:void 0,deferredAgentIds:o}:{recoveryContext:c,deferredAgentIds:o}}async retargetAfterDeferral(e,t,n){let{session:r,sessionId:i,targetSpec:a}=e,o=t.filter(e=>n.has(e.agentId)),s=b(r,t,n);if(s.length>0)return{targetAgents:s,recovering:dr.recoveringAgentIds,arbitrated:dr.arbitratedAgentIds};_(a)!==`lead-default`&&m(lr,i,n);let c=await this.startLeadAgent(r,i,e.agentSelection??ee(o[0],this.machineId),e.message,e.sessionContext),l=f(r,a);return l.length===0&&m(lr,i,n),{targetAgents:l,recovering:c.recoveringAgentIds,arbitrated:c.arbitratedAgentIds,recoveryContext:await Te(this.bus,r,be)}}async startLeadAgent(e,t,n,r,i){let a=await ar(this.bus,n,t,r,i),{adapterName:o,instance:s,providerContext:c,providerConfigId:l}=await cr(this.bus,a,{sessionId:t,machineId:this.machineId,registry:this.adapterRegistry}),u=await Un(this.bus,{sessionId:t,instance:s,adapterName:o,expectedLeadAgentId:e.leadAgentId??null,...l!==void 0&&{providerConfigId:l},startRequest:pe(a,{adapterId:s.adapterId,sessionId:t,providerContext:c,sessionContext:i})});if(u.outcome===`started`)return e.agents.push(u.agent),e.leadAgentId=u.agent.agentId,dr;let{session:f}=await this.bus.request(P.get,{sessionId:t});if(!f||f.agents.length===0)throw new E(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${u.currentLeadAgentId??`another start`}, which left no agent behind`);e.agents=f.agents,e.leadAgentId=f.leadAgentId;let p=await d(this.bus,e);if(e.agents.length===0)throw new E(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${u.currentLeadAgentId??`another start`}, whose agent did not survive its start`);return p}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()}},pr=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(A.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof ze||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 mr(e){let{bus:t}=e;return t.on(P.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(O.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function hr(e){let{bus:t}=e;return t.on(P.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(P.resumed,{sessionId:n}),e.setResult({success:!0})})}function gr(e){return e.on(ke.listActions,e=>{let t=S.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const _r=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function vr(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 yr=class{bus;agentToSession=new Map;pendingAssistantResponses=new Map;cleanups=[];constructor(e=Re){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(P.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(P.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&this.agentToSession.delete(t);for(let[t,n]of this.pendingAssistantResponses)n.sessionId===e.payload.sessionId&&this.pendingAssistantResponses.delete(t)}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(P.turn.started,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.has(i)||this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(P.user_message.sent,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(P.user_message.acknowledged,e=>{let t=this.pendingKey(e.payload.turnId,e.payload.messageId,e.payload.agentId);this.pendingAssistantResponses.has(t)||this.pendingAssistantResponses.set(t,{sessionId:e.payload.sessionId,turnId:e.payload.turnId,messageId:e.payload.messageId,agentId:e.payload.agentId,blocks:[]})})),this.cleanups.push(this.bus.on(P.turn.assistantPersistenceSettled,e=>{let{turnId:t,messageId:n,agentId:r}=e.payload;this.pendingAssistantResponses.delete(this.pendingKey(t,n,r))})),this.cleanups.push(this.bus.on(P.turn.completed,e=>{let{sessionId:t,turnId:n}=e.payload;for(let[e,r]of this.pendingAssistantResponses)r.sessionId===t&&r.turnId===n&&this.pendingAssistantResponses.delete(e)}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(M.message,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(M.reasoning,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(M.tool.use,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(M.tool.completed,e=>{let t=this.pendingForProviderEvent(e.payload);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.blocks.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(M.complete,async e=>{if(e.payload._import){let{turnId:t,messageId:n,agentId:r}=e.payload;t&&this.pendingAssistantResponses.delete(this.pendingKey(t,n,r));return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o,turnId:s,messageId:c}=e.payload;if(!s)return;let l=this.pendingKey(s,c,t),u=this.pendingAssistantResponses.get(l);if(u){this.pendingAssistantResponses.delete(l);try{await this.storeAssistantMessage(u,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}finally{await this.bus.emit(P.turn.assistantPersistenceSettled,{sessionId:u.sessionId,turnId:u.turnId,agentId:t,messageId:u.messageId})}}}))}async storeAssistantMessage(e,t,n,r){let i=r===void 0?e.blocks:r.content===void 0?[]:[{type:`text`,content:r.content}];if(i.length===0&&!n)return;let a=i.filter(e=>e.type===`text`).map(e=>e.content).join(`
2
+ `),o=crypto.randomUUID();try{if(!(await this.bus.requestOptional(A.append,{message:{messageId:o,turnId:e.turnId,sessionId:e.sessionId,role:`assistant`,contentText:a||(n?`[Error: ${n}]`:``),blocks:i,agentId:e.agentId,adapterSessionId:t,timestamp:Date.now()}})).handled)return;let r=await this.bus.requestOptional(A.getByTurn,{turnId:e.turnId});if(r.handled){let t=r.data.messages.find(t=>t.role===`user`&&t.messageId===e.messageId);t&&await this.bus.requestOptional(G.record,{messageId:t.messageId,agentId:e.agentId,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.pendingAssistantResponses.clear()}pendingForProviderEvent(e){if(!(!e.turnId||!e.messageId))return this.pendingAssistantResponses.get(this.pendingKey(e.turnId,e.messageId,e.agentId))}pendingKey(e,t,n){return JSON.stringify([e,t,n])}},br=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(P.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(P.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(P.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(P.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(P.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(P.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(P.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function xr(e,t,n,r,i,a){return new br(e,t,n,r,i,a)}const Sr=a.postgres,Cr=r.postgres,wr=t.postgres,K=yt({sessions:i,agents:n,adapterSessionClaims:e},{sessions:Sr,agents:Cr,adapterSessionClaims:wr});function Tr(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return R(n===null?U(t.clientId):V(t.clientId,n),r===null?U(t.clientAccountId):V(t.clientAccountId,r),i===null?U(t.lastClientIdentityObservation):V(t.lastClientIdentityObservation,i))}function Er(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0,allowedDirectories:e.allowedDirectories??void 0,providerConfigId:e.providerConfigId??void 0,personaId:e.personaId??void 0,profileId:e.profileId??void 0,harnessId:e.harnessId??void 0,clientId:e.clientId??void 0,compressionMode:e.compressionMode?Ge.parse(e.compressionMode):void 0,currentAdapterSessionId:e.currentAdapterSessionId??void 0,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function Dr(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??null,adapterSessionId:e.adapterSessionId??null,cwd:e.cwd??null,allowedDirectories:e.allowedDirectories??null,providerConfigId:e.providerConfigId??null,personaId:e.personaId??null,profileId:e.profileId??null,harnessId:e.harnessId??null,clientId:e.clientId??null,compressionMode:e.compressionMode??null}}function Or(e,t){let{adapterSessionId:n,status:r,...i}=e;return{...i,status:W`CASE WHEN ${t.status} = 'disposed' THEN ${t.status} ELSE excluded.status END`}}function kr(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function Ar(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.get,async e=>{let[t]=await n.select().from(r).where(V(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?Er(t):null})})}function jr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.set,async e=>{let{agent:t}=e.payload,i=Dr(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:Or(i,r)});e.setResult({success:I(a)})})}function Mr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.delete,async e=>{let t=await n.delete(r).where(V(r.agentId,e.payload.agentId));e.setResult({success:I(t)})})}function Nr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[V(r.adapterName,t)];i&&i!==`all`&&a.push(V(r.status,i));let o=a.length>1?R(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(Er)})})}function Pr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(V(r.sessionId,t));e.setResult({agents:i.map(Er)})})}function Fr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateStatus,async e=>{let{agentId:t,status:i,expectedStatus:a}=e.payload,o=Date.now(),s=[V(r.agentId,t),At(r.status,`disposed`)];if(a&&s.push(H(r.status,a)),I(await n.update(r).set({status:i,lastActivityAt:o}).where(R(...s)))){e.setResult({success:!0,transitioned:!0});return}let[c]=await n.select({agentId:r.agentId}).from(r).where(V(r.agentId,t)).limit(1);e.setResult({success:c!==void 0,transitioned:!1})})}function Ir(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(V(r.agentId,t));e.setResult({success:I(a)})})}function Lr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateRuntime,async e=>{let{agentId:t,adapterId:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=e.payload,u={lastActivityAt:Date.now()};i!==void 0&&(u.adapterId=i),a!==void 0&&(u.adapterSessionId=a),o!==void 0&&(u.cwd=o),s!==void 0&&(u.model=s),c!==void 0&&(u.allowedDirectories=c),l!==void 0&&(u.providerConfigId=l);let d=await n.update(r).set(u).where(V(r.agentId,t));e.setResult({success:I(d)})})}function Rr(e,t){let n={bus:e,db:t},r=[Ar(n),jr(n),Mr(n),Nr(n),Pr(n),Fr(n),Ir(n),Lr(n)];return()=>kr(r)}function q(e){return e??void 0}function zr(e){if(e)try{let t=JSON.parse(e),n=Pt.safeParse(t);return n.success?n.data:void 0}catch{return}}function Br(e){if(e)try{let t=JSON.parse(e),n=qe.safeParse(t);return n.success?n.data:void 0}catch{return}}function J(e,t){let n=Br(e.forkTransforms),r=zr(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:q(e.leadAgentId),parentSessionId:q(e.parentSessionId),contextInheritance:q(e.contextInheritance),rootSessionId:q(e.rootSessionId),forkPointMessageId:q(e.forkPointMessageId),branchKind:q(e.branchKind),adapterName:q(e.adapterName),adapterSessionId:q(e.adapterSessionId),currentAdapterSessionId:q(e.currentAdapterSessionId),currentAdapterSessionIdState:e.currentAdapterSessionIdState,adapterId:q(e.adapterId),clientId:q(e.clientId),clientAccountId:q(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:q(e.isOrchestrated),isImported:q(e.isImported),title:q(e.title),summary:q(e.summary),summaryUpdatedAt:q(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:q(e.targetWorkingDirectory),executionTargetId:q(e.executionTargetId),agents:t.map(Er),approvalPolicyOverride:q(e.approvalPolicyOverride),metadata:q(e.metadata),spawningToolCallId:q(e.spawningToolCallId),source:q(e.source),parentExternalSessionId:q(e.parentExternalSessionId),logFilePath:q(e.logFilePath),discoveredAt:q(e.discoveredAt),importStatus:q(e.importStatus),isSidechain:q(e.isSidechain),machineId:q(e.machineId)}}function Vr(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 Hr(e,t,n){if(!n||t.length===0)return{};let{messages:r}=L(e,c),i=e.select({sessionId:r.sessionId,minTimestamp:W`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(R(V(r.role,`user`),H(r.sessionId,t))).groupBy(r.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:r.sessionId,preview:r.contentText}).from(r).innerJoin(i,R(V(r.sessionId,i.sessionId),V(r.timestamp,i.minTimestamp))).where(V(r.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:r.sessionId,count:B()}).from(r).where(H(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of s)l.set(e.sessionId,e.count);return{previewBySession:o,countBySession:l}}function Ur(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function Wr(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Gr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[V(r.adapterSessionId,t)];a!==void 0&&s.push(V(r.source,a)),o!==void 0&&s.push(V(r.adapterName,o));let c=await n.select().from(r).where(R(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(V(i.sessionId,l.sessionId));e.setResult({session:J(l,u)})})}function Kr(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K),{messages:i}=L(n,c);return t.on(O.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(V(r.parentSessionId,t));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await n.select({sessionId:i.sessionId,count:B()}).from(i).where(H(i.sessionId,o)).groupBy(i.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await n.select({parentSessionId:r.parentSessionId,count:B()}).from(r).where(H(r.parentSessionId,o)).groupBy(r.parentSessionId),u=new Set;for(let e of l)e.parentSessionId&&u.add(e.parentSessionId);let d=a.map(e=>e.forkPointMessageId).filter(e=>e!==null),f=new Map;if(d.length>0){let e=await n.select({messageId:i.messageId,adapterMessageId:i.adapterMessageId}).from(i).where(R(V(i.sessionId,t),H(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}function qr(e){return{...e.cwd===void 0?{}:{targetWorkingDirectory:e.cwd},...e.logFilePath===void 0?{}:{logFilePath:e.logFilePath},...e.machineId===void 0?{}:{machineId:e.machineId}}}function Jr(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.rebindObserved,async e=>{let i=e.payload,a=R(V(r.source,i.source),V(r.adapterSessionId,i.externalSessionId)),o=qr(i),s=Object.keys(o),[c]=s.length===0?await n.select({sessionId:r.sessionId}).from(r).where(a).limit(1):await n.update(r).set(o).where(a).returning({sessionId:r.sessionId});if(!c){e.setResult({outcome:`not-found`});return}e.setResult({outcome:`rebound`,sessionId:c.sessionId}),s.length>0&&t.emit(P.updated,{sessionId:c.sessionId,changedProperties:s}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}const Yr=Pe();function Xr(e){return e?JSON.stringify(e):null}function Zr(e,t){return W`
3
+ SELECT ${t}.key AS key,
4
+ CASE ${t}.type
5
+ WHEN 'object' THEN ${t}.value
6
+ WHEN 'array' THEN ${t}.value
7
+ WHEN 'true' THEN 'true'
8
+ WHEN 'false' THEN 'false'
9
+ WHEN 'null' THEN 'null'
10
+ WHEN 'text' THEN json_quote(${t}.value)
11
+ ELSE CAST(${t}.value AS TEXT)
12
+ END AS vjson
13
+ FROM json_each(${e}) AS ${t}
14
+ `}function Qr(e,t){let n=t===`postgres`?W`excluded.metadata || ${e.metadata}`:W`(
15
+ SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
16
+ ${Zr(W`excluded.metadata`,W`inc`)}
17
+ WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
18
+ UNION ALL
19
+ ${Zr(W`${e.metadata}`,W`ex`)}
20
+ ) AS mk
21
+ )`;return W`
22
+ CASE
23
+ WHEN ${e.metadata} IS NULL THEN excluded.metadata
24
+ WHEN excluded.metadata IS NULL THEN ${e.metadata}
25
+ ELSE ${n}
26
+ END
27
+ `}function $r(e,t,n){return t===void 0?W`${e}`:W`
28
+ CASE
29
+ WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
30
+ ELSE ${e}
31
+ END
32
+ `}function ei(e){return W`
33
+ CASE
34
+ WHEN ${e.importStatus} = 'imported' OR excluded.import_status = 'imported' THEN 'imported'
35
+ WHEN ${e.importStatus} = 'tracking' OR excluded.import_status = 'tracking' THEN 'tracking'
36
+ ELSE COALESCE(${e.importStatus}, excluded.import_status, 'discovered')
37
+ END
38
+ `}function ti(e,t){return t===`live`?W`
39
+ CASE
40
+ WHEN ${e.status} = 'discovered' THEN 'active'
41
+ ELSE ${e.status}
42
+ END
43
+ `:W`
44
+ CASE
45
+ WHEN ${e.status} IN ('closed', 'archived') THEN ${e.status}
46
+ WHEN ${e.status} = 'active' AND ${e.isImported} = TRUE THEN ${e.status}
47
+ WHEN ${ei(e)} = 'discovered' THEN excluded.status
48
+ ELSE ${e.status}
49
+ END
50
+ `}function ni(e,t,n,r,i){return{status:ti(e,i),isImported:!0,importStatus:ei(e),adapterName:W`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:W`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:W`COALESCE(${e.source}, excluded.source)`,logFilePath:W`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:W`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:W`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:W`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:W`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:W`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:W`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:W`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:W`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:W`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?W`${e.machineId}`:r===null?W`NULL`:W`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:Qr(e,n),createdAt:$r(e.createdAt,t,e),lastActivityAt:$r(e.lastActivityAt,t,e)}}function ri(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K),{dialect:i}=St(n);return t.on(O.importUpsert,async e=>{let a=e.payload,{externalSessionId:o,source:s,clientId:c,adapterId:l,cwd:u,logFilePath:d,startedAt:f,title:p,kind:m,parentAdapterSessionId:h,forkPointMessageId:g,metadata:_,lastClientIdentityObservation:v,importStatus:y,isSidechain:ee,machineId:te,activation:ne}=a,b=Yr(),x=crypto.randomUUID(),S=f??b,re=Fe(m)??null,C=h??null,[w]=await n.insert(r).values({sessionId:x,status:Ae(a),isImported:!0,importStatus:y??`discovered`,adapterName:s,adapterSessionId:o,source:s??null,clientId:c??null,adapterId:l??null,targetWorkingDirectory:u??null,logFilePath:d??null,forkPointMessageId:g??null,branchKind:re,parentExternalSessionId:C,discoveredAt:b,title:p??null,metadata:_??null,lastClientIdentityObservation:Xr(v),isSidechain:ee??null,machineId:te??null,createdAt:S,lastActivityAt:S}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:ni(r,f,i,te,ne)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),T=w.sessionId===x;await ii(t,n,w,T,re,S,s),e.setResult({sessionId:w.sessionId,created:T})})}async function ii(e,t,n,r,i,a,o){if(r){let r=await ai(t,n.sessionId,n.parentExternalSessionId,o);e.emit(P.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 ai(t,n.sessionId,n.parentExternalSessionId,o),e.emit(P.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function ai(e,t,n,r){let{sessions:i}=L(e,K);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(R(V(i.adapterSessionId,n),V(i.source,r))).limit(1);if(!a)return null;let o=a.rootSessionId??a.sessionId;return await e.update(i).set({parentSessionId:a.sessionId,rootSessionId:o}).where(V(i.sessionId,t)),a.sessionId}function oi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(V(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(V(i.sessionId,a.sessionId));e.setResult({session:J(a,o)})})}function si(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[V(r.isImported,!0)];t!==void 0&&o.push(V(r.source,t)),a!==void 0&&o.push(V(r.importStatus,a));let s=R(...o),c=await n.select().from(r).where(s).orderBy(Tt(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Vr(await n.select().from(i).where(H(i.sessionId,l)));e.setResult({sessions:c.map(e=>J(e,u.get(e.sessionId)??[]))})})}function ci(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:W`count(*)`}).from(r).where(R(V(r.isImported,!0),V(r.source,t))).groupBy(r.importStatus),a=0,o=0,s=0,c=0;for(let e of i){let t=Number(e.count);a+=t,e.importStatus===`imported`&&(o+=t),e.importStatus===`tracking`&&(s+=t),e.importStatus===`discovered`&&(c=t)}e.setResult({total:a,imported:o,tracking:s,discovered:c})})}function li(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:W`
51
+ CASE
52
+ WHEN ${r.status} = 'discovered' THEN 'active'
53
+ ELSE ${r.status}
54
+ END
55
+ `}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(R(V(r.sessionId,i),Mt(U(r.importStatus),W`${r.importStatus} <> ${a}`))).returning({adapterSessionId:r.adapterSessionId,adapterName:r.adapterName,source:r.source}),c=s!==void 0;if(e.setResult({success:c}),c){t.emit(P.importStatusChanged,{sessionId:i,importStatus:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let e=s.source??s.adapterName;a===`imported`&&s.adapterSessionId&&e&&t.emit(P.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function ui(e,t){let n={bus:e,db:t};return[ri(n),Jr(n),oi(n),si(n),ci(n),li(n)]}function Y(e){return e??null}function di(e){return e?JSON.stringify(e):null}function fi(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:Y(e.leadAgentId),parentSessionId:Y(e.parentSessionId),contextInheritance:Y(e.contextInheritance),rootSessionId:Y(e.rootSessionId),forkPointMessageId:Y(e.forkPointMessageId),branchKind:Y(e.branchKind),adapterName:Y(e.adapterName),adapterSessionId:Y(e.adapterSessionId),adapterId:Y(e.adapterId),clientId:Y(e.clientId),clientAccountId:Y(e.clientAccountId),lastClientIdentityObservation:mi(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Y(e.title),summary:Y(e.summary),summaryUpdatedAt:Y(e.summaryUpdatedAt),forkTransforms:di(e.forkTransforms),targetWorkingDirectory:Y(e.targetWorkingDirectory),executionTargetId:Y(e.executionTargetId),approvalPolicyOverride:Y(e.approvalPolicyOverride),metadata:Y(e.metadata),spawningToolCallId:Y(e.spawningToolCallId),source:Y(e.source),parentExternalSessionId:Y(e.parentExternalSessionId),logFilePath:Y(e.logFilePath),discoveredAt:Y(e.discoveredAt),importStatus:Y(e.importStatus),machineId:Y(e.machineId)}}function pi(e){let{leadAgentId:t,...n}=e;return n}function mi(e){return e?JSON.stringify(e):null}function X(e,t,n){n!==void 0&&(e[t]=n)}function hi(e,t,n){n!==void 0&&(e[t]=n??null)}function gi(e,t){let n={};return X(n,`status`,e.status),X(n,`parentSessionId`,e.parentSessionId),X(n,`contextInheritance`,e.contextInheritance),X(n,`rootSessionId`,e.rootSessionId),X(n,`forkPointMessageId`,e.forkPointMessageId),X(n,`branchKind`,e.branchKind),X(n,`isOrchestrated`,e.isOrchestrated),X(n,`clientId`,e.clientId),X(n,`clientAccountId`,e.clientAccountId),X(n,`title`,e.title),X(n,`targetWorkingDirectory`,e.targetWorkingDirectory),X(n,`createdAt`,e.createdAt),X(n,`lastActivityAt`,e.lastActivityAt),X(n,`machineId`,e.machineId),e.identity!==void 0&&(n.adapterName=e.identity.adapterName,n.adapterId=e.identity.adapterId,X(n,`adapterSessionId`,e.identity.adapterSessionId)),hi(n,`executionTargetId`,e.executionTargetId),hi(n,`approvalPolicyOverride`,e.approvalPolicyOverride),hi(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=W`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=mi(e.lastClientIdentityObservation)),n}function _i(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.get,async e=>{let[t]=await n.select().from(r).where(V(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(V(i.sessionId,e.payload.sessionId));e.setResult({session:J(t,a)})})}function vi(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=et.parse(e.payload),s=fi(a);if(o){Ne(null,a);let o=I(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&Ie(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(V(r.sessionId,i)).limit(1),c=o?J(o,[]):null;if(Ne(c,a),I(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:pi(s),setWhere:Tr(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),Ie(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function yi(e){let{bus:t,db:n}=e,{sessions:r,agents:i,adapterSessionClaims:a}=L(n,K);return t.on(O.delete,async e=>{let{sessionId:t}=e.payload;await xt(n,async e=>{await e.delete(i).where(V(i.sessionId,t)),await e.delete(a).where(V(a.sessionId,t)),await e.delete(r).where(V(r.sessionId,t))}),e.setResult({success:!0})})}function bi(e,t){return e===void 0?void 0:H(t.status,e)}function xi(e,t){if(e!==void 0)return R(U(t.adapterName),U(t.adapterId),e===null?U(t.leadAgentId):V(t.leadAgentId,e))}function Si(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.update,async e=>{let i=tt.request.parse(e.payload),{sessionId:a}=i,o=gi(i,r),s=Wr(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}let c=bi(i.expectedStatus,r),l=xi(i.expectIdentityOpenForLead,r);if(!s){let t=await n.update(r).set(o).where(R(V(r.sessionId,a),c,l));e.setResult({success:I(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(V(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let u=J(s,[]),d=Ur(u,i);if(Ne(u,d),i.expectedStatus!==void 0&&!i.expectedStatus.includes(u.status)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Me(u,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(I(await n.update(r).set(o).where(R(V(r.sessionId,a),c,l,Tr(s,r))))){e.setResult({success:!0,clientAccountChanged:(u.clientAccountId??null)!==(d.clientAccountId??null)}),Ie(t,u,d);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function Ci(e,t){let n=[];return e.status!==`all`&&n.push(V(t.status,e.status)),e.executionTargetId!==void 0&&n.push(V(t.executionTargetId,e.executionTargetId)),R(...n)}function wi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=Ci({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(Tt(r.lastActivityAt)):await u.orderBy(Tt(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:B()}).from(r).where(l):n.select({count:B()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Vr(await n.select().from(i).where(H(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Hr(n,m,s),v=d.map(e=>{let t=J(e,h.get(e.sessionId)??[]);return s&&g&&_?{...t,preview:{messageCount:_.get(e.sessionId)??0,firstUserMessage:g.get(e.sessionId)??null}}:t});e.setResult({sessions:v,total:p})})}function Ti(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:B()}).from(r).groupBy(r.status),i=0,a=0,o=0,s=0;for(let e of t)e.status===`active`?i=e.count:e.status===`closed`?a=e.count:e.status===`archived`?o=e.count:e.status===`discovered`&&(s=e.count);let c=i+a+o+s;e.setResult({all:c,active:i,closed:a,archived:o,discovered:s})})}function Ei(e,t){let n={bus:e,db:t},r=[_i(n),vi(n),yi(n),Si(n),wi(n),Kr(n),Gr(n),Ti(n),...ui(e,t)];return()=>r.forEach(e=>e())}async function Di(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(R(V(r.machineId,n.machineId),V(r.adapterId,n.adapterId),V(r.providerSessionId,n.providerSessionId))).limit(1);return i}async function Oi(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(V(r.claimToken,n)).limit(1);return i}async function ki(e,t,n){let{agents:r}=t,[i]=await e.select().from(r).where(V(r.agentId,n)).limit(1);return i}async function Ai(e,t,n){let{sessions:r}=t,[i]=await e.select({leadAgentId:r.leadAgentId}).from(r).where(V(r.sessionId,n)).limit(1);return i===void 0?void 0:i.leadAgentId??null}async function ji(e,t,n){let{agents:r}=t,[i]=await e.update(r).set({currencyFence:r.currencyFence}).where(V(r.agentId,n)).returning();return i}function Z(e){return W`cast(${e} as text)`}function Mi(e){return W`cast(${e} as bigint)`}function Ni(e){return W`cast(${e} as integer)`}function Pi(e,t){return W`(case when ${e} > ${t} then ${e} else ${t} end)`}function Fi(e,t){let{adapterSessionClaims:n}=e;return W`coalesce((select max(${n.fence}) from ${n}
56
+ where ${V(n.agentId,t)}), 0)`}function Ii(e,t){let{agents:n}=e;return W`coalesce((select ${n.currencyFence} from ${n}
57
+ where ${V(n.agentId,t)}), 0)`}function Li(e,t,n){return W`1 + ${Pi(n,Fi(e,t))}`}function Ri(e,t,n){return Li(e,t,Pi(Ni(n),Ii(e,t)))}function Q(e){return{claimId:e.claimId,machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:e.providerSessionId,sessionId:e.sessionId,agentId:e.agentId,claimToken:e.claimToken,fence:e.fence,status:e.status,claimedAt:e.claimedAt,updatedAt:e.updatedAt}}function zi(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState}}function Bi(e,t,n,r){let{agents:i}=e;return W`exists (select 1 from ${i} where ${R(V(i.agentId,t),V(i.sessionId,n),...r===`live`?[At(i.status,`disposed`)]:[])})`}function Vi(e,t,n,r){let{agents:i,sessions:a}=e,o={claimId:Z(n),machineId:Z(t.machineId),adapterId:Z(t.adapterId),adapterName:Z(t.adapterName),providerSessionId:Z(t.providerSessionId),sessionId:Z(t.sessionId),agentId:Z(t.agentId),claimToken:Z(t.claimToken),fence:Li(e,t.agentId,W`${i.currencyFence}`),status:Z(`held`),claimedAt:Mi(r),updatedAt:Mi(r)};return W`select ${W.join(Object.values(o),W`, `)} from ${i}
58
+ where ${V(i.agentId,t.agentId)}
59
+ and ${V(i.sessionId,t.sessionId)}
60
+ and ${At(i.status,`disposed`)}
61
+ and exists (select 1 from ${a} where ${V(a.sessionId,t.sessionId)})`}function Hi(e,t){let{agents:n,sessions:r}=e,i=V(n.agentId,t),a=e=>W`(select ${e} from ${n} where ${i})`,o=a(W`${n.currentAdapterSessionIdState}`),s=a(W`${n.currentAdapterSessionId}`),c=a(W`${n.adapterSessionId}`),l=W`${r.adapterSessionId}`,u=W`(${c} = ${l} or (${c} is null and ${l} is null))`;return{currentAdapterSessionId:W`(case
62
+ when ${o} <> 'inherited' then ${s}
63
+ when ${u} then null
64
+ when ${c} is null then null
65
+ else ${c} end)`,currentAdapterSessionIdState:W`(case
66
+ when ${o} <> 'inherited' then ${o}
67
+ when ${u} then ${Z(`inherited`)}
68
+ when ${c} is null then ${Z(`moved`)}
69
+ else ${Z(`confirmed`)} end)`}}function Ui(e,t){let{adapterSessionClaims:n}=e,r=[V(n.machineId,t.machineId)];return t.adapterId!==void 0&&r.push(V(n.adapterId,t.adapterId)),t.providerSessionId!==void 0&&r.push(V(n.providerSessionId,t.providerSessionId)),t.statuses!==void 0&&r.push(H(n.status,t.statuses)),r}function Wi(e,t){let{agents:n,adapterSessionClaims:r}=e,{target:i}=t,a=W`(${i.currentAdapterSessionId===null?U(n.currentAdapterSessionId):V(n.currentAdapterSessionId,i.currentAdapterSessionId)} and ${V(n.currentAdapterSessionIdState,i.currentAdapterSessionIdState)} and ${V(n.currencyFence,t.fence)})`;return R(V(n.agentId,t.agentId),At(n.status,`disposed`),V(n.revision,t.expectedRevision),kt(n.currencyFence,t.fence),W`exists (select 1 from ${r} where ${R(V(r.claimToken,t.claimToken),V(r.agentId,t.agentId),V(r.sessionId,n.sessionId),V(r.status,`held`),V(r.fence,t.fence))})`,jt(a))}function Gi(e,t,n){if(t.status===`disposed`)return{outcome:`agent-disposed`};if(e===void 0||e.agentId!==n.agentId||e.sessionId!==t.sessionId||e.status!==`held`||e.fence!==n.fence)return{outcome:`not-owner`};if(n.fence<t.currencyFence)return{outcome:`superseded`,currentFence:t.currencyFence};let r=zi(t);return r.currentAdapterSessionId===n.target.currentAdapterSessionId&&r.currentAdapterSessionIdState===n.target.currentAdapterSessionIdState&&t.currencyFence===n.fence?{outcome:`idempotent`,revision:t.revision,currency:r,sessionSnapshotUpdated:!1}:{outcome:`currency-changed`,revision:t.revision,currency:r}}async function Ki(e,t,n){let r=await ki(e,t,n.agentId);return r===void 0?{outcome:`not-found`}:Gi(await Oi(e,t,n.claimToken),r,n)}async function qi(e,t,n){let{adapterSessionClaims:r}=t;return(await e.update(r).set({updatedAt:r.updatedAt}).where(V(r.claimToken,n)).returning({claimId:r.claimId})).length>0}async function Ji(e,t,n){let{agents:r,sessions:i}=t,{target:a}=n,[o]=await e.update(r).set({currentAdapterSessionId:a.currentAdapterSessionId,currentAdapterSessionIdState:a.currentAdapterSessionIdState,currencyFence:n.fence,revision:n.expectedRevision+1,lastActivityAt:Date.now()}).where(Wi(t,n)).returning();if(o===void 0)return Ki(e,t,n);let s=await e.update(i).set({...Hi(t,n.agentId)}).where(R(V(i.sessionId,o.sessionId),V(i.leadAgentId,n.agentId))).returning({sessionId:i.sessionId});return{outcome:`settled`,revision:n.expectedRevision+1,currency:{adapterSessionId:o.adapterSessionId??null,...a},sessionSnapshotUpdated:s.length>0}}async function Yi(e,t){let n=L(e,K);return xt(e,async e=>await ji(e,n,t.agentId)===void 0?{outcome:`not-found`}:await qi(e,n,t.claimToken)?Ji(e,n,t):Ki(e,n,t))}async function Xi(e,t,n){if(await Ai(e,t,n.sessionId)===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=await ki(e,t,n.agentId);return r===void 0||r.sessionId!==n.sessionId?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:r.status===`disposed`?{kind:`refused`,result:{outcome:`agent-disposed`}}:{kind:`ok`,agent:r}}async function Zi(e,t,n,r){let{adapterSessionClaims:i}=t,[a]=await e.insert(i).select(Vi(t,n,crypto.randomUUID(),r)).onConflictDoNothing({target:[i.machineId,i.adapterId,i.providerSessionId]}).returning();return a}async function Qi(e,t,n,r,i,a){let{adapterSessionClaims:o,agents:s}=t,c=W`exists (select 1 from ${s} where ${R(V(s.agentId,o.agentId),V(s.status,`disposed`))})`,[l]=await e.update(o).set({claimToken:n.claimToken,fence:Ri(t,n.agentId,r.fence),agentId:n.agentId,sessionId:n.sessionId,adapterName:n.adapterName,status:`held`,claimedAt:a,updatedAt:a}).where(R(V(o.claimId,r.claimId),V(o.claimToken,r.claimToken),Bi(t,n.agentId,n.sessionId,`live`),...i===`incumbent-disposed`?[c]:[])).returning();return l}async function $i(e,t,n){return(await ki(e,t,n.agentId))?.status===`disposed`}var ea=class extends Error{result;constructor(e){super(`session ownership movement rolled back: ${e.outcome}`),this.name=`MovementRollbackSignal`,this.result=e}};function ta(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=st(zi(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}async function na(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.update(r).set({updatedAt:r.updatedAt}).where(R(V(r.machineId,n.machineId),V(r.adapterId,n.adapterId),V(r.providerSessionId,n.providerSessionId),V(r.agentId,n.agentId),V(r.status,`held`))).returning();return i}async function ra(e,t,n,r){for(let i=0;i<2;i+=1){let i=await Zi(e,t,n,r);if(i!==void 0)return i;let a=await Di(e,t,n);if(a===void 0){let r=await Xi(e,t,n);if(r.kind===`refused`)throw new ea(r.result.outcome===`agent-disposed`?{outcome:`agent-disposed`}:{outcome:`not-found`});continue}if(await $i(e,t,a)){let i=await Qi(e,t,n,a,`incumbent-disposed`,r);if(i!==void 0)return i;let o=await Di(e,t,n);if(o===void 0)continue;throw new ea({outcome:`already-claimed`,holder:Q(o)})}throw new ea({outcome:`already-claimed`,holder:Q(a)})}throw Error(`session ownership movement could not acquire the key ${n.machineId}/${n.adapterId}/${n.providerSessionId}: it was taken and freed by a competitor on every attempt`)}async function ia(e,t,n,r){let{adapterSessionClaims:i}=t;return(await e.delete(i).where(R(V(i.agentId,n),V(i.status,`held`),At(i.claimId,r))).returning({providerSessionId:i.providerSessionId})).map(e=>e.providerSessionId)}function aa(e,t){return e.outcome===`idempotent`?{outcome:`idempotent`,revision:e.revision,currency:e.currency,sessionSnapshotUpdated:!1,claim:Q(t)}:e}async function oa(e,t){let n=L(e,K),r=Date.now();try{return await xt(e,async e=>{let i=await ji(e,n,t.agentId);if(i===void 0||i.sessionId!==t.sessionId)return{outcome:`not-found`};if(i.status===`disposed`)return{outcome:`agent-disposed`};let a=ta(t.movement,i);if(a===null)return{outcome:`idempotent`,revision:i.revision,currency:zi(i),sessionSnapshotUpdated:!1,claim:null};let o={machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:a.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,claimToken:t.movement.claimToken},s=await na(e,n,o)??await ra(e,n,o,r),c=t.movement.kind===`confirmed`?await ia(e,n,t.agentId,s.claimId):[],l=await Ji(e,n,{agentId:t.agentId,claimToken:s.claimToken,fence:s.fence,expectedRevision:t.expectedRevision,target:a.currency});if(l.outcome!==`settled`)throw new ea(aa(l,s));return{outcome:`settled`,revision:l.revision,currency:l.currency,sessionSnapshotUpdated:l.sessionSnapshotUpdated,releasedProviderSessionIds:c,claim:Q(s)}})}catch(e){if(e instanceof ea)return e.result;throw e}}var sa=class extends Error{result;constructor(e){super(`session ownership claim rolled back: ${e.outcome}`),this.name=`ClaimRollbackSignal`,this.result=e}};async function ca(e,t,n){let{sessions:r}=t,[i]=await e.update(r).set({lastActivityAt:r.lastActivityAt}).where(V(r.sessionId,n)).returning({leadAgentId:r.leadAgentId});return i===void 0?void 0:i.leadAgentId??null}function la(e,t,n,r){let{sessions:i}=e,a=n===null?U(i.leadAgentId):V(i.leadAgentId,n);return r?a:Mt(a,V(i.leadAgentId,t.agentId))}async function ua(e,t,n){let{sessions:r}=t,i=await ca(e,t,n.sessionId);if(i===void 0)throw new sa({outcome:`not-found`,missing:`session`});let a=n.designateLead;if(a===void 0)return{leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId,c=o?`any-status`:`live`,l=s!==i;return(await e.update(r).set({leadAgentId:s,...o||!l?{}:Hi(t,n.agentId)}).where(R(V(r.sessionId,n.sessionId),la(t,n,a.expectedLeadAgentId,o),Bi(t,n.agentId,n.sessionId,c))).returning({leadAgentId:r.leadAgentId})).length===0?fa(e,t,n,i,c):{leadDesignated:l,previousLeadAgentId:i}}function da(e){return{outcome:`lead-conflict`,currentLeadAgentId:e}}async function fa(e,t,n,r,i){let a=await Xi(e,t,n);throw a.kind===`refused`&&!(i===`any-status`&&a.result.outcome===`agent-disposed`)?new sa(a.result):new sa(da(r))}function pa(e,t,n){return{outcome:e,claim:t===null?null:Q(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}async function ma(e,t,n,r,i,a){let o=await Qi(e,t,n,r,i,a);if(o!==void 0)return pa(`claimed`,o,await ua(e,t,n));let s=await Di(e,t,n);if(s===void 0)return ga;if(s.claimToken===r.claimToken){let r=await Xi(e,t,n);if(r.kind===`refused`)return r.result}return{outcome:`already-claimed`,holder:Q(s)}}async function ha(e,t,n,r){if(r.status!==`held`)return{outcome:`already-claimed`,holder:Q(r)};let i=await Xi(e,t,n);return i.kind===`refused`?i.result:pa(`idempotent`,r,await ua(e,t,n))}const ga=Symbol(`retry-acquisition`);async function _a(e,t,n,r){return n.supersedes?.claimToken===r.claimToken?`named-token`:await $i(e,t,r)?`incumbent-disposed`:void 0}async function va(e,t,n,r){let i=await Zi(e,t,n,r);if(i!==void 0)return pa(`claimed`,i,await ua(e,t,n));let a=await Di(e,t,n);if(a===void 0){let r=await Xi(e,t,n);return r.kind===`refused`?r.result:ga}if(a.claimToken===n.claimToken)return a.agentId===n.agentId&&a.sessionId===n.sessionId?ha(e,t,n,a):{outcome:`already-claimed`,holder:Q(a)};let o=await _a(e,t,n,a);return o===void 0?{outcome:`already-claimed`,holder:Q(a)}:ma(e,t,n,a,o,r)}async function ya(e,t,n,r){return r.sessionId===n.sessionId?r.status===`disposed`&&n.designateLead?.clear!==!0?{outcome:`agent-disposed`}:pa(`claimed`,null,await ua(e,t,n)):{outcome:`not-found`,missing:`agent`}}async function ba(e,t,n){let r=await ji(e,t,n.agentId);if(r!==void 0)return{kind:`ok`,agent:r};let i=await Xi(e,t,n);if(i.kind===`refused`)return{kind:`refused`,result:i.result};let a=await ji(e,t,n.agentId);return a===void 0?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:{kind:`ok`,agent:a}}async function xa(e,t){let n=L(e,K),r=Date.now();try{return await xt(e,async e=>{let i=await ba(e,n,t);if(i.kind===`refused`)return i.result;let{providerSessionId:a}=t;if(a===null)return ya(e,n,t,i.agent);let o={...t,providerSessionId:a};for(let t=0;t<2;t+=1){let t=await va(e,n,o,r);if(t!==ga)return t}throw Error(`session ownership claim could not be acquired: the key ${t.machineId}/${t.adapterId}/${a} was taken and freed by a competitor on every attempt`)})}catch(e){if(e instanceof sa)return e.result;throw e}}async function Sa(e,t){let n=L(e,K),{adapterSessionClaims:r}=n,i=Date.now();return xt(e,async e=>{await ji(e,n,t.agentId);let a=R(V(r.claimToken,t.claimToken),V(r.agentId,t.agentId));if(t.disposition===`released`){if((await e.delete(r).where(a).returning({claimId:r.claimId})).length>0)return{outcome:`released`}}else{let[n]=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();if(n!==void 0)return{outcome:`marked`,claim:Q(n)}}let o=await Oi(e,n,t.claimToken);return o===void 0?{outcome:`not-found`}:{outcome:`not-owner`,holder:Q(o)}})}async function Ca(e,t){let n=L(e,K),{adapterSessionClaims:r}=n,i=Date.now();return xt(e,async e=>{await ji(e,n,t.agentId);let a=t.claimToken===void 0?V(r.agentId,t.agentId):R(V(r.agentId,t.agentId),V(r.claimToken,t.claimToken));if(t.disposition===`released`){let n=await e.delete(r).where(a).returning({providerSessionId:r.providerSessionId});return{releasedProviderSessionIds:n.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:t.claimToken!==void 0&&n.length===0}}let o=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();return{releasedProviderSessionIds:[],markedClaims:o.map(Q),claimTokenNotFound:t.claimToken!==void 0&&o.length===0}})}function wa(e){let{bus:t,db:n}=e,{agents:r,adapterSessionClaims:i}=L(n,K);return t.on(N.read,async e=>{let{agentId:t}=e.payload,[a]=await n.select().from(r).where(V(r.agentId,t)).limit(1);if(a===void 0){e.setResult({ownership:null});return}let o=await n.select().from(i).where(V(i.agentId,t)).orderBy(z(i.fence),z(i.claimId));e.setResult({ownership:{agentId:a.agentId,sessionId:a.sessionId,currency:zi(a),revision:a.revision,currencyFence:a.currencyFence,claims:o.map(Q)}})})}function Ta(e){let{bus:t,db:n}=e,r=L(n,K),{adapterSessionClaims:i}=r;return t.on(N.listClaims,async e=>{let t=await n.select().from(i).where(R(...Ui(r,e.payload))).orderBy(z(i.claimedAt),z(i.claimId));e.setResult({claims:t.map(Q)})})}function Ea(e,t){let n={bus:e,db:t},r=[wa(n),e.on(N.claim,async e=>{e.setResult(await xa(t,e.payload))}),e.on(N.settleCurrency,async e=>{e.setResult(await Yi(t,e.payload))}),e.on(N.settleMovement,async e=>{e.setResult(await oa(t,e.payload))}),e.on(N.release,async e=>{e.setResult(await Sa(t,e.payload))}),e.on(N.releaseAgentClaims,async e=>{e.setResult(await Ca(t,e.payload))}),Ta(n)];return()=>{for(let e=r.length-1;e>=0;--e)r[e]?.()}}async function Da(e,t){if(t.length===0)return new Map;let{agents:n}=L(e,K),r=[...new Set(t)],i=await e.select().from(n).where(H(n.sessionId,r)),a=new Map;for(let e of i){let t=a.get(e.sessionId)??[];t.push(e),a.set(e.sessionId,t)}return a}async function Oa(e,t){return wt(e).fts.fetchFirstUserMessagePreviews(e,t)}async function ka(e,t){if(t.length===0)return new Map;let{messages:n}=L(e,c),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:B()}).from(n).where(H(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Aa(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function ja(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=$e.safeParse(t);return n.success?n.data:void 0}catch{return}}function Ma(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:Aa(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:ja(e.metadata),machineId:e.machine_id??void 0,agents:t.map(e=>({agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0})),preview:{messageCount:r.get(e.session_id)??0,firstUserMessage:n.get(e.session_id)??null}}}function Na(e,t){let n=wt(t).fts,r=[];return r.push(e.on(O.search,async e=>{let{query:r,limit:i=20,status:a=`all`,isImported:o}=e.payload,s=r.trim();if(!s){e.setResult({sessions:[],total:0});return}let c={query:s,likePattern:`%${s.toLowerCase()}%`,status:a===`all`?void 0:a,isImported:o},l=await n.searchSessionRows(t,{...c,limit:i});if(l.length===0){e.setResult({sessions:[],total:0});return}let u=await n.countSessionMatches(t,c),d=l.map(e=>e.session_id),f=await Da(t,d),p=await Oa(t,d),m=await ka(t,d),h=l.map(e=>Ma(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Pa(e,t){return(await St(e).all(W`
70
+ WITH RECURSIVE ancestors AS (
71
+ SELECT session_id, parent_session_id
72
+ FROM sessions
73
+ WHERE session_id = ${t}
74
+
75
+ UNION ALL
76
+
77
+ SELECT s.session_id, s.parent_session_id
78
+ FROM sessions s
79
+ JOIN ancestors a ON s.session_id = a.parent_session_id
80
+ )
81
+ SELECT session_id FROM ancestors
82
+ `)).map(e=>e.session_id)}const Fa=new Map;function Ia(e,t){let n=(Fa.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return Fa.set(e,r),r.then(()=>{Fa.get(e)===r&&Fa.delete(e)}),n}function La(e,t){return`${e}:${t}`}async function Ra(e,t,n){let r=await e.requestOptional(s.getByIds,{sessionId:t,eventIds:[La(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function za(e,t){return Ia(JSON.stringify([t.sessionId,t.turnAnchorId]),()=>Ba(e,t))}async function Ba(e,t){let{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}=t,{turn:u,created:d}=await e.request(D.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(A.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await Ra(e,n,u.turnId)===!1),m&&(p===void 0?console.warn(`[turn-ingest] Turn ${u.turnId} (session ${n}) ingested without messages — skipping session.turn.* emission (getByTurn contract unfulfillable)`):await Va(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function Va(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:l}=t,u={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:l},d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:l};await ge(e,{type:`turn.started`,sessionId:i,payload:u,eventId:La(`turn.started`,n.turnId)}),await ge(e,{type:`turn.completed`,sessionId:i,payload:d,eventId:La(`turn.completed`,n.turnId)}),await e.emit(P.turn.started,u),await e.emit(P.turn.completed,d)}const Ha=Le(`log-import`,{listImporters:{request:j.object({}),response:j.object({importers:j.array(j.object({adapterName:j.string(),clientId:j.string().optional()}))})},importFile:{request:j.object({filePath:j.string(),adapterName:j.string(),ingestionMarker:nt.optional()}),response:j.discriminatedUnion(`status`,[j.object({status:j.literal(`imported`),sessionId:j.string(),messageCount:j.number(),turnCount:j.number()}),j.object({status:j.literal(`skipped`),reason:j.enum([`no-importer`,`file-missing`])})])},importSession:{request:j.object({adapterSessionId:j.string(),adapterName:j.string(),ingestionMarker:nt.optional()}),response:j.object({sessionId:j.string(),messageCount:j.number()})}}).subjects,Ua=`observed-session-ingestion-policy`;function Wa(e,t){return e.emit(Ue.register,{capabilityId:Ua,provider:t})}function Ga(e,t){return e.emit(Ue.unregister,{capabilityId:Ua,providerId:t})}function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function Ka(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.displayName==`string`&&typeof t.decideObservedSessionIngestion==`function`}function qa(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function Ja(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var Ya=class{bus;managedAdapterSessionIds=new Set;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=Re){this.bus=e,this.cleanups.push(this.bus.on(We.runtime.started,async e=>{try{await this.handleRuntimeStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to handle runtime started`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(We.session.started,async e=>{try{await this.handleSessionStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to register observed session`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(We.session.turn.completed,async e=>{try{await this.handleTurnCompleted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to trigger import for observed turn`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(Ue.register,e=>{let{provider:t}=e.payload;Ka(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Ua}}),this.bus.on(Ue.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Ua}}))}destroy(){for(let e of this.cleanups.splice(0))e()}async handleRuntimeStarted(e){if(!(e.source.layer!==`adapter`||e.adapterSessionId===void 0)){if(!this.managedAdapterSessionIds.has(e.adapterSessionId)){if(this.managedAdapterSessionIds.size>=1e4){let e=this.managedAdapterSessionIds.values().next().value;e!==void 0&&this.managedAdapterSessionIds.delete(e)}this.managedAdapterSessionIds.add(e.adapterSessionId)}await this.reconcileTrackingStub(e.clientId,e.adapterSessionId)}}async reconcileTrackingStub(e,t){let n=await this.resolveImporter(e);if(n===null)return;let r=await this.bus.requestOptional(O.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!Ja(i))return;let a=await this.bus.requestOptional(Ye.getBySession,{sessionId:i.sessionId,limit:1});if(!a.handled){$(`Preserved tracking stub because message storage is unavailable`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}if(a.data.messages.length>0){$(`Preserved tracking stub with imported content (native takeover)`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}(await this.bus.requestOptional(O.delete,{sessionId:i.sessionId})).handled&&$(`Reconciled hook-first tracking stub`,{adapterSessionId:t,source:n.adapterName,deletedSessionId:i.sessionId})}async resolveImporter(e){let t=this.importerByClientId.get(e);if(t!==void 0)return t===null?null:{adapterName:t};let n=await this.bus.requestOptional(Ha.listImporters,{});if(!n.handled)return this.debugUnresolved(e,`no log-import service registered`),null;let r=n.data.importers.find(t=>t.clientId===e);return r===void 0?(this.importerByClientId.set(e,null),this.debugUnresolved(e,`no importer registered for client`),null):(this.importerByClientId.set(e,r.adapterName),{adapterName:r.adapterName})}debugUnresolved(e,t){this.unresolvedClientIds.has(e)||(this.unresolvedClientIds.add(e),$(`Skipping observed ingestion for client '${e}': ${t}`))}async handleSessionStarted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n===null)return;let r=e.startMode===`resume`||e.startMode===`compact`?e.startMode:void 0;(r===void 0?await this.registerObservedSession(e,t,n.adapterName):await this.rebindObservedSession(e,t,n.adapterName,r))&&this.managedAdapterSessionIds.has(t)&&await this.reconcileTrackingStub(e.clientId,t)}async rebindObservedSession(e,t,n,r){let i=await this.bus.requestOptional(O.rebindObserved,{externalSessionId:t,source:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId}});if(!i.handled)return $(`Session storage unavailable; skipped observed-session rebind`,{adapterSessionId:t}),!1;if(i.data.outcome===`not-found`){let i=await this.decideImportStatus(this.policyInput(e,t,n));return i===`discovered`?await this.registerObservedSession(e,t,n,i):($(`Observed continuation of an unknown session; leaving creation to the transcript import`,{adapterSessionId:t,source:n,startMode:r}),!1)}try{await this.bus.requestOptional(P.ownership.continuation,{sessionId:i.data.sessionId,startMode:r})}catch(e){$(`Continuation report failed; the rebind stands`,{sessionId:i.data.sessionId,startMode:r,error:e})}return!0}policyInput(e,t,n){return{clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}}async registerObservedSession(e,t,n,r){let i=Xa(e.metadata),a=r??await this.decideImportStatus(this.policyInput(e,t,n)),o=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,s=o===void 0?{kind:Xe,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:Ke,parentAdapterSessionId:o,forkPointMessageId:null};return(await this.bus.requestOptional(O.importUpsert,{...s,externalSessionId:t,source:n,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:a,activation:a===`tracking`?`live`:void 0,...i===void 0?{}:{metadata:i}})).handled?!0:($(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t}),!1)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Ha.importFile,{filePath:e.transcriptPath,adapterName:n.adapterName,ingestionMarker:`live`});r.handled?r.data.status===`skipped`&&$(`Targeted import skipped`,{adapterSessionId:t,reason:r.data.reason}):$(`log-import.importFile unhandled; watcher fallback will ingest`,{adapterSessionId:t});return}try{await this.bus.requestOptional(Ha.importSession,{adapterSessionId:t,adapterName:n.adapterName,ingestionMarker:`live`})}catch(e){$(`Discovery-based import fallback failed (no stub yet); watcher will ingest`,{adapterSessionId:t,error:e})}}}async decideImportStatus(e){for(let t of this.policyProviders.values())if((await t.decideObservedSessionIngestion(e)).importStatus===`discovered`)return`discovered`;return`tracking`}async shouldImportObservedContent(e){let t=await this.bus.requestOptional(O.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if(qa(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function Xa(e){if(e===void 0)return;let t=$e.safeParse(e);return t.success?t.data:void 0}const Za=bt(`import_cursors`,e=>({filePath:e.text(`file_path`).primaryKey(),bytesRead:e.int8(`bytes_read`).notNull(),lastModified:e.text(`last_modified`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Qa=Za.sqlite,$a=Za.postgres,eo=yt({importCursors:Qa},{importCursors:$a});function to(e,t){let{importCursors:n}=L(t,eo),r=[];return r.push(e.on(Ft.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(V(n.filePath,r)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),r.push(e.on(Ft.set,async e=>{let{filePath:r,bytesRead:i,lastModified:a}=e.payload;await t.insert(n).values({filePath:r,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:n.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(Ft.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(V(n.filePath,r));e.setResult({success:I(i)})})),()=>{r.forEach(e=>e())}}mt(`embeddings`,{id:ft(`id`).primaryKey({autoIncrement:!0}),entityType:ht(`entity_type`).notNull(),entityId:ht(`entity_id`).notNull(),model:ht(`model`).notNull(),dimensions:ft(`dimensions`).notNull(),content:ht(`content`),embedding:ut(`embedding`,{mode:`buffer`}).notNull(),createdAt:ft(`created_at`).notNull()},e=>[dt(`idx_embeddings_entity`).on(e.entityType,e.entityId),dt(`idx_embeddings_model`).on(e.model),gt(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function no(e){if(e.byteLength%4!=0)throw Error(`Invalid embedding blob: byte length ${e.byteLength} is not a multiple of 4 (IEEE-754 f32 lanes)`);return e instanceof ArrayBuffer?new Float32Array(e):e.byteOffset%4==0?new Float32Array(e.buffer,e.byteOffset,e.byteLength/4):new Float32Array(Uint8Array.from(e).buffer)}var ro=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=St(e),this.engine=Ct(this.rawSql.dialect)}slugify(e){return e.replace(/[^a-zA-Z0-9]/g,`_`).toLowerCase()}hashModel(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t.toString(36)}getTableName(e){return`embeddings_idx_${this.slugify(e)}_${this.hashModel(e)}`}async ensureIndexTable(e,t){let n=this.getTableName(e);if(this.knownTables.has(n))return n;let r=W.identifier(n),i=W.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(W`CREATE TABLE IF NOT EXISTS ${r} (
83
+ entity_type TEXT NOT NULL,
84
+ entity_id TEXT NOT NULL,
85
+ embedding ${i} NOT NULL,
86
+ PRIMARY KEY (entity_type, entity_id)
87
+ )`),this.knownTables.add(n),n}async upsertIndexed(e,t,n,r,i){let a=await this.ensureIndexTable(e,t),o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s=W.identifier(a);await this.rawSql.run(W`INSERT INTO ${s} (entity_type, entity_id, embedding)
88
+ VALUES (${n}, ${r}, ${o})
89
+ ON CONFLICT(entity_type, entity_id) DO UPDATE SET
90
+ embedding = excluded.embedding`)}async searchSimilar(e,t,n=10){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return[];this.knownTables.add(r)}let i=W.identifier(r),a=await this.rawSql.all(W`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=no(e.embedding),r=this.euclideanDistance(t,n);return{entityType:e.entity_type,entityId:e.entity_id,distance:r}}).sort((e,t)=>e.distance-t.distance).slice(0,n)}async deleteByEntity(e,t,n){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return;this.knownTables.add(r)}let i=W.identifier(r);await this.rawSql.run(W`DELETE FROM ${i} WHERE entity_type = ${t} AND entity_id = ${n}`)}euclideanDistance(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r]-t[r];n+=i*i}return Math.sqrt(n)}},io=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 Gn({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await de(this.bus,{sessionId:this.sessionId,turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId,ingestionMarker:`live`}),t}getActiveTurn(){for(let e=this._turns.length-1;e>=0;e--){let t=this._turns[e];if(!this._completedTurnIds.has(t.turnId))return t}}async completeTurn(e){if(!e.isComplete())throw Error(`Turn ${e.turnId} is not complete yet`);let t=e.getResult(),n={turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0};await ge(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(P.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function ao(e,t){let{sessions:n}=L(t,K);async function r(i,a,o,s=0){if(s>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let c=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(R(V(n.parentExternalSessionId,i),V(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(O.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(P.import.completed,async i=>{let{adapterSessionId:a,sessionId:o,source:s}=i.payload,c=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(R(V(n.parentExternalSessionId,a),V(n.source,s),U(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(O.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(O.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const oo=new Set([`Agent`,`spawn_subagent`]),so=`[^A-Za-z0-9_-]`;function co(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function lo(e,t){return t.test(e)}async function uo(e,t){let n=[],r,i=0;do{let a=await e.request(A.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 fo(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&oo.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function po(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(lo(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 mo(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 ho(e){return[...e].map(e=>{let t=co(e);return{id:e,pattern:RegExp(`(^|${so})${t}($|${so})`)}})}async function go(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}),o=a?.adapterSessionId;if(!o)return;let s=ho(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await uo(e,t.sessionId),r=fo(n);if(r.length===0)return null;let i=po(n,s);if(i.size===0)return null;let a=[...i.entries()].filter(([,e])=>e===o);if(a.length!==1)return null;let[c]=a[0];return r.some(e=>e.toolCallId===c)?{parentSessionId:t.sessionId,toolCallId:c}:null}))).filter(e=>e!==null);c.length===1&&await e.request(O.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function _o(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(O.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(O.getChildren,{sessionId:s}),l=await vo(e,c);if(l.size===0)return;let u=await uo(e,a),d=fo(u);if(d.length===0)return;let f=po(u,ho(new Set(l.keys()))),p=new Map;for(let e of d){let t=f.get(e.toolCallId);t!==void 0&&p.set(t,(p.get(t)??0)+1)}let m=new Map;for(let e of d){let t=f.get(e.toolCallId),n=t===void 0?void 0:l.get(t);n!==void 0&&t!==void 0&&p.get(t)===1&&m.set(n,e.toolCallId)}if(m.size===0)return;let h=[...m].map(async([t,n])=>{try{await e.request(O.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:s,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(h)}async function vo(e,t){return mo(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 yo(e){return e.on(P.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 go(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await _o(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function bo(e){return[...e].map(e=>{let t=co(e);return{id:e,pattern:RegExp(`(^|${so})${t}($|${so})`)}})}async function xo(e,t,n){return mo(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 So(e){return e.on(P.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(O.getChildren,{sessionId:n}),a=await xo(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await uo(e,n),c=fo(s);if(c.length===0)return;let l=po(s,bo(o)),u=new Map;for(let e of c){let t=l.get(e.toolCallId);t!==void 0&&u.set(t,(u.get(t)??0)+1)}let d=new Map;for(let e of c){let t=l.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&u.get(t)===1&&d.set(n,e.toolCallId)}let f=[...d].map(async([t,r])=>{try{let{session:n}=await e.request(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(f)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function Co(e){return e.on(Ve.session.discovered,async t=>{let n=Qe.safeParse(t.payload);if(!n.success)throw console.error(`[registerSessionDiscoveredHandler] Invalid adapter.session.discovered payload`,{issues:n.error.issues}),n.error;let{adapterId:r,adapterSessionId:i,adapterName:a,cwd:o,title:s,logFilePath:c,startedAt:l,machineId:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=je({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(O.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...l===void 0?{}:{startedAt:l},...u===void 0?{}:{machineId:u},...m})})}var wo=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(M.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{an as $,J as A,pr as B,Oa as C,Ei as D,Ea as E,vr as F,zn as G,sr as H,_r as I,Pn as J,Fn as K,gr as L,br as M,xr as N,Hr as O,yr as P,cn as Q,mr as R,ka as S,Aa as T,rr as U,fr as V,Gn as W,wn as X,Nn as Y,yn as Z,Ha as _,ao as a,Na as b,to as c,Ya as d,Jt as et,qa as f,Ga as g,Wa as h,yo as i,Rr as j,Vr as k,Qa as l,Ua as m,Co as n,io as o,Ja as p,G as q,So as r,ro as s,wo as t,Za as u,za as v,Ma as w,Da as x,Pa as y,hr as z};
@@ -0,0 +1 @@
1
+ import{D as e,Dt as t,Et as n,It as r,Nt as ee,Ot as i,Pt as a,Qt as o,Tt as s,bt as c,nn as l,rn as u,tn as d,xt as f}from"./schemas-DplrlAyR.mjs";import"./compression-BbttSqm8.mjs";import{t as p}from"./schemas-DgwEVUt-.mjs";import{i as m}from"./account-identity-DGpXd8h_.mjs";import{t as h}from"./storage-namespace-definition-CDef0E20.mjs";import{CompressSessionLineageSchema as g,ForkSessionLineageSchema as _,RootSessionLineageSchema as v,SubagentSessionLineageSchema as y}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as b}from"zod";import{createBusNamespace as te}from"@makaio/framework/core";const x=te(`session`,e),ne=x.subjects;function re(e){return f.includes(e.type)}const ie=`ui-warnings`,ae=`connector-swap-warning-suppressed`,oe=1440*60*1e3,S={cancel:`cancel`,edit:`edit`,continue:`continue`},C=`CONNECTOR_SWAP_CANCELLED`;var w=class extends Error{code=C;constructor(){super(`Connector swap cancelled by user`),this.name=`ConnectorSwapCancelledError`}};function T(e){return e instanceof w||e instanceof Error&&`code`in e&&e.code===`CONNECTOR_SWAP_CANCELLED`}const E={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 D(e){return e!=null&&E[e].staysInView}function O(e){return e==null||E[e].navigatesToChild}function k(e){return e!=null&&E[e].canMergeBack}function A(e){return E[e]}const j=b.object({timestamp:b.number(),messageId:b.string()}),M=h(`message`,{schemas:{append:{request:b.object({message:r.omit({messageId:!0}).extend({messageId:b.string().optional()}),emitEvent:b.boolean().optional()}),response:b.object({message:r})},getBySession:{request:b.object({sessionId:b.string(),limit:b.number().int().min(1).optional(),after:j.optional(),includeAfter:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),response:b.object({messages:b.array(r),nextCursor:j.nullable()})},getByTurn:{request:b.object({turnId:b.string()}),response:b.object({messages:b.array(r)})},get:{request:b.object({messageId:b.string()}),response:b.object({message:r.nullable()})},getByAdapterMessageId:{request:b.object({adapterMessageId:b.string()}),response:b.object({message:r.nullable()})},search:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional()}),response:b.object({messages:b.array(r),total:b.number()})},ftsSearch:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional().default(20)}),response:b.object({results:b.array(b.object({messageId:b.string(),sessionId:b.string(),score:b.number(),excerpt:b.string()})),total:b.number()})},upsertByAdapterMessageId:{request:b.object({sessionId:b.string(),turnId:b.string().nullable(),adapterMessageId:b.string(),role:b.enum([`user`,`assistant`]),contentText:b.string(),blocks:b.array(ee),agentId:b.string().optional(),adapterSessionId:b.string().optional(),timestamp:b.number(),origin:a.optional()}),response:b.object({messageId:b.string(),created:b.boolean()})},stored:b.object({message:r})}}),N=M.subjects;function P(e,t){return e.timestamp===t.timestamp?e.messageId.localeCompare(t.messageId):e.timestamp-t.timestamp}function F(e,t){return P(t,e)}function I(e){return{timestamp:e.timestamp,messageId:e.messageId}}function L(e){return`${e.timestamp}:${e.messageId}`}const se=b.object({after:b.string().optional(),limit:b.number().int().min(1).optional(),types:b.array(b.string()).optional(),includeReasoning:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),R=b.object({events:b.array(c),nextCursor:b.string().nullable(),totalCount:b.number().optional()}),z=h(`sessionEvent`,{schemas:{append:{request:b.object({event:c}),response:b.object({success:b.boolean()})},getEvents:{request:b.object({sessionId:b.string(),options:se.optional()}),response:R},getByIds:{request:b.object({sessionId:b.string(),eventIds:b.array(b.string())}),response:b.object({events:b.array(c)})},deleteBySession:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean(),deletedCount:b.number().optional()})},getEventsBySessions:{request:b.object({sessionIds:b.array(b.string()),types:b.array(b.string()),limitPerSession:b.number().int().min(1).optional()}),response:b.object({eventsBySession:b.record(b.string(),b.array(c))})}}}),B=z.subjects,V=s.extend({preview:n});function H(e,t){e.clientAccountId!==void 0&&e.lastClientIdentityObservation===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`lastClientIdentityObservation`],message:`lastClientIdentityObservation is required when clientAccountId is provided`}),e.clientAccountId!==void 0&&e.clientId===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`clientId`],message:`clientId is required when clientAccountId is provided`})}const U=s.superRefine((e,t)=>{H(e,t)}),W=b.object({sessionId:b.string(),session:U,ifAbsent:b.boolean().optional()}).superRefine((e,t)=>{e.sessionId!==e.session.sessionId&&t.addIssue({code:b.ZodIssueCode.custom,path:[`session`,`sessionId`],message:`session.sessionId must match the top-level sessionId`})}),G=b.string().nullable().optional(),K=b.enum([`active`,`closed`,`archived`,`discovered`]),ce=b.object({adapterName:b.string(),adapterId:b.string(),adapterSessionId:b.string().optional()});function le(e,t){e.identity!==void 0&&e.expectIdentityOpenForLead===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`expectIdentityOpenForLead`],message:`expectIdentityOpenForLead is required when identity is provided`}),e.expectIdentityOpenForLead!==void 0&&e.identity===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`identity`],message:`identity is required when expectIdentityOpenForLead is provided`})}const q={request:b.object({sessionId:b.string(),status:K.optional(),expectedStatus:b.array(K).nonempty().optional(),parentSessionId:b.string().optional(),contextInheritance:u.optional(),rootSessionId:b.string().optional(),forkPointMessageId:b.string().optional(),branchKind:d.optional(),isOrchestrated:b.boolean().optional(),clientId:b.string().optional(),clientAccountId:b.string().optional(),lastClientIdentityObservation:m.optional(),executionTargetId:b.string().nullable().optional(),approvalPolicyOverride:p.nullable().optional(),title:b.string().optional(),targetWorkingDirectory:b.string().optional(),createdAt:b.number().finite().optional(),lastActivityAt:b.number().finite().optional(),metadata:t.nullable().optional(),spawningToolCallId:b.string().nullable().optional(),machineId:G,identity:ce.optional(),expectIdentityOpenForLead:b.string().nullable().optional()}).superRefine((e,t)=>{le(e,t)}),response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},ue=b.enum([`live`]),J=b.object({externalSessionId:b.string(),source:b.string(),clientId:b.string().optional(),adapterId:b.string().optional(),cwd:b.string().nullable(),logFilePath:b.string().nullable().optional(),startedAt:b.number().finite().optional(),title:b.string().nullable().optional(),metadata:t.optional(),lastClientIdentityObservation:m.optional(),importStatus:b.enum([`discovered`,`tracking`]).optional(),activation:ue.optional(),isSidechain:b.boolean().optional(),machineId:G}),Y=b.discriminatedUnion(`kind`,[J.merge(v),J.merge(_),J.merge(y),J.merge(g)]),X=b.object({externalSessionId:b.string(),source:b.string(),cwd:b.string().optional(),logFilePath:b.string().optional(),machineId:G}),Z=b.discriminatedUnion(`outcome`,[b.object({outcome:b.literal(`rebound`),sessionId:b.string()}),b.object({outcome:b.literal(`not-found`)})]),Q=h(`session`,{schemas:{get:{request:b.object({sessionId:b.string()}),response:b.object({session:s.nullable()})},set:{request:W,response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},delete:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean()})},list:{request:b.object({status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:b.number().int().min(1).optional(),offset:b.number().int().min(0).optional(),includePreview:b.boolean().optional(),executionTargetId:b.string().optional()}),response:b.object({sessions:b.array(i),total:b.number()})},getChildren:{request:b.object({sessionId:b.string()}),response:b.object({children:b.array(o)})},search:{request:b.object({query:b.string(),limit:b.number().int().min(1).optional(),status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:b.boolean().optional()}),response:b.object({sessions:b.array(V),total:b.number()})},update:q,getByAdapterSessionId:{request:b.object({adapterSessionId:b.string(),source:b.string().optional(),adapterName:b.string().optional()}),response:b.object({session:s.nullable()})},getStatusCounts:{request:b.object({}),response:b.object({all:b.number(),active:b.number(),closed:b.number(),archived:b.number(),discovered:b.number()})},importUpsert:{request:Y,response:b.object({sessionId:b.string(),created:b.boolean()})},rebindObserved:{request:X,response:Z},getByLogFilePath:{request:b.object({logFilePath:b.string()}),response:b.object({session:s.nullable()})},listImported:{request:b.object({source:b.string().optional(),importStatus:l.optional()}),response:b.object({sessions:b.array(s)})},countBySource:{request:b.object({source:b.string()}),response:b.object({total:b.number(),imported:b.number(),discovered:b.number(),tracking:b.number()})},updateImportStatus:{request:b.object({sessionId:b.string(),importStatus:l}),response:b.object({success:b.boolean()})}}}),de=Q.subjects,$=`makaio:extraction-excluded`;function fe(e){return e?.[$]===!0}function pe(){return{[$]:!0}}export{oe as A,k as C,T as D,w as E,re as M,x as N,S as O,ne as P,D as S,C as T,I as _,Q as a,N as b,W as c,q as d,z as f,L as g,F as h,Y as i,ie as j,ae as k,U as l,P as m,pe as n,X as o,B as p,fe as r,Z as s,$ as t,de as u,j as v,O as w,A as x,M as y};
@@ -1 +1 @@
1
- import{a as e}from"./json-value-BBZ6uGwc.mjs";import"./zod-json-schema-Dixc-B1T.mjs";import"./ui-config-B35GloSX.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
+ import{i as e}from"./json-value-D57aJhVn.mjs";import"./zod-json-schema-BAGAFfCN.mjs";import"./ui-config-BIyGzMNL.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-Cca-zwXU.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-CDef0E20.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 +1 @@
1
- import{t as e}from"./jsonl-transport-Cyyh5Wje.mjs";import{CorrelationTracker as t,DEFAULT_REQUEST_TIMEOUT_MS as n,handleCorrelationResponse as r,trackMessageCorrelation as i}from"@makaio/framework/bus";var a=class{name;spawnOptions;jsonl=null;handlers=new Set;correlations=new t;handshakeComplete=!1;terminalError=null;localSubscriptions=new Map;readyResolve=null;readyReject=null;onNewReadySession=void 0;onConnected=void 0;onDisconnected=void 0;ready;constructor(e){this.name=e.name??`stdio-server`,this.spawnOptions=e.spawn,this.ready=this.createReadyPromise()}async connect(){if(this.jsonl!==null)throw Error(`StdioServerTransport: already connected`);this.readyResolve===null&&this.readyReject===null&&(this.ready=this.createReadyPromise()),this.handshakeComplete=!1,this.terminalError=null;let t=e(this.spawnOptions);this.jsonl=t,t.onMessage(e=>{this.jsonl===t&&this.handleInbound(e)}),t.onError(e=>{this.jsonl===t&&this.terminateSession(e,!0)}),t.process.once(`exit`,e=>{this.jsonl===t&&this.terminateSession(Error(`Child process exited (code ${e??`signal`}) before subscribe-sync handshake completed`),!1)}),this.localSubscriptions.size>0&&this.sendSubscribeMessage()}async send(e,t){if(this.jsonl===null)throw Error(`StdioServerTransport: not connected`);return this.jsonl.send(e),i(e,this.correlations,t??n)}onReceive(e){return this.handlers.add(e),()=>{this.handlers.delete(e)}}async disconnect(){let e=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=null,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),e?.close()}async subscribe(e,t,n=[],r){let i=r??this.localSubscriptions.get(e)?.deliveryClass??`relayable`;this.localSubscriptions.set(e,{priorities:n,filter:t,deliveryClass:i}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n,i)}async unsubscribe(e){let t=this.localSubscriptions.delete(e);this.jsonl!==null&&t&&this.jsonl.send({type:`unsubscribe`,subjects:{[e]:[]}})}isReady(){return this.jsonl!==null&&this.terminalError===null&&this.handshakeComplete&&this.jsonl.process.exitCode===null}cancelRequest(e,t){this.correlations.cancel(e,t)}createReadyPromise(){let e=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t});return this.onNewReadySession?.(e),e}terminateSession(e,t){let n=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=e,this.readyReject?.(e),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),t&&n?.close(),this.onDisconnected?.()}async handleInbound(e){if(typeof e!=`object`||!e||typeof e.type!=`string`)return;let t=e;if(t.type!==`heartbeat`){if(t.type===`subscribe-sync-complete`){this.handshakeComplete=!0,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.jsonl?.send({type:`subscribe-sync-complete`}),this.onConnected?.();return}if(!r(t,this.correlations))for(let e of this.handlers)try{await e(t,{transportName:this.name})}catch{}}}sendSubscribeMessage(e,t,n=[],r=`relayable`){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},deliveryClasses:{[e]:r},...t===void 0?{}:{filters:{[e]:t}}});return}let i={},a={},o={},s=!1;for(let[e,t]of this.localSubscriptions)i[e]=t.priorities,a[e]=t.deliveryClass,t.filter!==void 0&&(o[e]=t.filter,s=!0);this.jsonl.send({type:`subscribe`,subjects:i,deliveryClasses:a,...s?{filters:o}:{}})}};export{a as StdioServerTransport};
1
+ import{t as e}from"./jsonl-transport-Bp_6pB2a.mjs";import{CorrelationTracker as t,DEFAULT_REQUEST_TIMEOUT_MS as n,handleCorrelationResponse as r,trackMessageCorrelation as i}from"@makaio/framework/bus";var a=class{name;spawnOptions;jsonl=null;handlers=new Set;correlations=new t;handshakeComplete=!1;terminalError=null;localSubscriptions=new Map;readyResolve=null;readyReject=null;onNewReadySession=void 0;onConnected=void 0;onDisconnected=void 0;ready;constructor(e){this.name=e.name??`stdio-server`,this.spawnOptions=e.spawn,this.ready=this.createReadyPromise()}async connect(){if(this.jsonl!==null)throw Error(`StdioServerTransport: already connected`);this.readyResolve===null&&this.readyReject===null&&(this.ready=this.createReadyPromise()),this.handshakeComplete=!1,this.terminalError=null;let t=e(this.spawnOptions);this.jsonl=t,t.onMessage(e=>{this.jsonl===t&&this.handleInbound(e)}),t.onError(e=>{this.jsonl===t&&this.terminateSession(e,!0)}),t.process.once(`exit`,e=>{this.jsonl===t&&this.terminateSession(Error(`Child process exited (code ${e??`signal`}) before subscribe-sync handshake completed`),!1)}),this.localSubscriptions.size>0&&this.sendSubscribeMessage()}async send(e,t){if(this.jsonl===null)throw Error(`StdioServerTransport: not connected`);return this.jsonl.send(e),i(e,this.correlations,t??n)}onReceive(e){return this.handlers.add(e),()=>{this.handlers.delete(e)}}async disconnect(){let e=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=null,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),e?.close()}async subscribe(e,t,n=[],r){let i=r??this.localSubscriptions.get(e)?.deliveryClass??`relayable`;this.localSubscriptions.set(e,{priorities:n,filter:t,deliveryClass:i}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n,i)}async unsubscribe(e){let t=this.localSubscriptions.delete(e);this.jsonl!==null&&t&&this.jsonl.send({type:`unsubscribe`,subjects:{[e]:[]}})}isReady(){return this.jsonl!==null&&this.terminalError===null&&this.handshakeComplete&&this.jsonl.process.exitCode===null}cancelRequest(e,t){this.correlations.cancel(e,t)}createReadyPromise(){let e=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t});return this.onNewReadySession?.(e),e}terminateSession(e,t){let n=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=e,this.readyReject?.(e),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),t&&n?.close(),this.onDisconnected?.()}async handleInbound(e){if(typeof e!=`object`||!e||typeof e.type!=`string`)return;let t=e;if(t.type!==`heartbeat`){if(t.type===`subscribe-sync-complete`){this.handshakeComplete=!0,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.jsonl?.send({type:`subscribe-sync-complete`}),this.onConnected?.();return}if(!r(t,this.correlations))for(let e of this.handlers)try{await e(t,{transportName:this.name})}catch{}}}sendSubscribeMessage(e,t,n=[],r=`relayable`){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},deliveryClasses:{[e]:r},...t===void 0?{}:{filters:{[e]:t}}});return}let i={},a={},o={},s=!1;for(let[e,t]of this.localSubscriptions)i[e]=t.priorities,a[e]=t.deliveryClass,t.filter!==void 0&&(o[e]=t.filter,s=!0);this.jsonl.send({type:`subscribe`,subjects:i,deliveryClasses:a,...s?{filters:o}:{}})}};export{a as StdioServerTransport};
@@ -1,2 +1,2 @@
1
- import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-BG0WX5Vz.mjs";
1
+ import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-4ihewPUm.mjs";
2
2
  export { DatabaseClient, DatabaseClientConfig, PostgresClientOptions, createDatabaseClient };
@@ -1 +1 @@
1
- import{a as e,h as t,n}from"../../registry-Dk12tAfv.mjs";async function r(r={}){if(r.url!==void 0){let n=e(r.url);if(n.kind===`missing-engine`)throw Error(t(n.dialect,n.packageName));if(n.kind===`engine`)return n.engine.createClient(r)}return n(`sqlite`).createClient(r)}export{r as createDatabaseClient};
1
+ import{a as e,h as t,n}from"../../registry-BO_bOoky.mjs";async function r(r={}){if(r.url!==void 0){let n=e(r.url);if(n.kind===`missing-engine`)throw Error(t(n.dialect,n.packageName));if(n.kind===`engine`)return n.engine.createClient(r)}return n(`sqlite`).createClient(r)}export{r as createDatabaseClient};
@@ -1,4 +1,4 @@
1
- import { a as DATABASE_DIALECT, c as getDatabaseDialect, n as DatabaseClientConfig, o as MakaioDatabase, s as StorageDialect, t as DatabaseClient } from "../../client-BG0WX5Vz.mjs";
1
+ import { a as DATABASE_DIALECT, c as getDatabaseDialect, n as DatabaseClientConfig, o as MakaioDatabase, s as StorageDialect, t as DatabaseClient } from "../../client-4ihewPUm.mjs";
2
2
  import { IMakaioBus } from "@makaio/framework/bus";
3
3
  import { ExtensionContext } from "@makaio/framework/contracts";
4
4
  import * as _$drizzle_orm_sqlite_core0 from "drizzle-orm/sqlite-core";
@@ -248,26 +248,6 @@ interface FtsSearchStrategy {
248
248
  }
249
249
  //#endregion
250
250
  //#region storage/drizzle/src/engine/types.d.ts
251
- /** Stable identity for a transaction-scoped cross-process lock. */
252
- interface TransactionLock {
253
- /** Versioned domain that owns the identity format. */
254
- readonly namespace: string;
255
- /** Domain-owned stable identity within the lock namespace. */
256
- readonly identity: string;
257
- }
258
- /** Engine-specific expressions that acquire transaction-scoped stable keys. */
259
- interface StorageEngineTransactionLocks {
260
- /**
261
- * Build transaction-lock expressions for the supplied stable keys.
262
- *
263
- * The generic Drizzle seam executes every returned expression sequentially.
264
- * Engines that serialize these operations without a cross-process primitive
265
- * return an empty list.
266
- * @param locks - Stable keys the caller needs for this transaction.
267
- * @returns Expressions whose evaluation acquires the requested locks.
268
- */
269
- lockExpressions(locks: readonly TransactionLock[]): readonly SQL[];
270
- }
271
251
  /**
272
252
  * Dialect-specific classification of database errors.
273
253
  *
@@ -465,8 +445,6 @@ interface StorageEngine {
465
445
  readonly capabilities: StorageEngineCapabilities;
466
446
  /** Migration ledger, journal, and transaction behavior. */
467
447
  readonly migrations: StorageEngineMigrationBehavior;
468
- /** Transaction-scoped stable-key locking behavior. */
469
- readonly transactionLocks: StorageEngineTransactionLocks;
470
448
  /**
471
449
  * Full-text-search provisioning and query operations.
472
450
  *
@@ -820,23 +798,6 @@ declare function serializeDatabaseOperation<T>(db: MakaioDatabase, operation: ()
820
798
  */
821
799
  declare function executeTransaction<T>(db: MakaioDatabase, callback: TransactionCallback<T>): Promise<T>;
822
800
  //#endregion
823
- //#region storage/drizzle/src/transaction-locks.d.ts
824
- /** Transaction context accepted by {@link acquireTransactionLocks}. */
825
- type TransactionLockTransaction = Parameters<TransactionCallback<unknown>>[0];
826
- /**
827
- * Acquire all requested stable keys before the caller evaluates or mutates the
828
- * rows they protect.
829
- *
830
- * Expressions are evaluated one at a time so an engine that maps keys to
831
- * database locks controls the exact acquisition order. SQLite returns no
832
- * expressions because its transaction writer serialization already supplies
833
- * the required ordering.
834
- * @param db - Database handle selecting the storage engine strategy.
835
- * @param tx - Open transaction that will retain acquired locks until completion.
836
- * @param locks - Stable keys the following statements may mutate.
837
- */
838
- declare function acquireTransactionLocks(db: MakaioDatabase, tx: TransactionLockTransaction, locks: readonly TransactionLock[]): Promise<void>;
839
- //#endregion
840
801
  //#region storage/drizzle/src/fts/sanitize.d.ts
841
802
  /**
842
803
  * FTS5 query utilities for SQLite full-text search.
@@ -1221,4 +1182,4 @@ declare module '@makaio/framework/storage' {
1221
1182
  }
1222
1183
  }
1223
1184
  //#endregion
1224
- export { DATABASE_DIALECT, type DialectSchema, type DrizzleHandlerRegistration, DrizzleSchemaRecord, type DrizzleWriteResult, type DualBuilder, type DualColumnBuilderBase, type DualColumnBundle, type DualColumnRef, type DualReferenceActions, type DualTable, type DualTableExtras, type Equal, type FtsMessageExcerptHit, type FtsMessageSearchInput, type FtsSearchStrategy, type FtsSessionCountInput, type FtsSessionSearchInput, type MakaioDatabase, NON_BASELINE_GENERATION_LEGS, type OperationTailStore, type PostgresTwinSchema, type RawSqlExecutor, type RawSqlSession, STORAGE_ENGINE_URL_HINTS, type StorageDialect, type StorageEngine, type StorageEngineCapabilities, type StorageEngineConstraintSuspension, type StorageEngineErrorClassifiers, type StorageEngineGenerationLeg, type StorageEngineMigrationBehavior, type StorageEngineTransactionLocks, type StorageEngineUrlHint, type StorageEngineUrlResolution, type StorageNamespace, type StorageNamespaceConfig, type StorageNamespaceExtensions, type TransactionCallback, type TransactionLock, type TransactionLockTransaction, acquireTransactionLocks, affectedRowCount, brandDatabase, buildFirstUserMessagePreviewQuery, createStorageNamespace, defineDialectSchema, defineDualTable, describeMissingStorageEngine, didAffectRows, executeTransaction, findGenerationLegForDialect, findStorageEngine, getDatabaseDialect, getRawSqlExecutor, getStorageEngine, importRuntimeModule, isSqliteDuplicateObjectError, isSqliteUniqueViolationError, quoteSqlIdentifier, readErrorCode, registerDrizzleHandlers, registerStorageEngine, resolveSchema, resolveStorageEngine, resolveStorageEngineForUrl, sanitizeFtsQuery, serializeByKey, serializeDatabaseOperation, someInCauseChain, sqliteFtsSearchStrategy, sqliteStorageEngine };
1185
+ export { DATABASE_DIALECT, type DialectSchema, type DrizzleHandlerRegistration, DrizzleSchemaRecord, type DrizzleWriteResult, type DualBuilder, type DualColumnBuilderBase, type DualColumnBundle, type DualColumnRef, type DualReferenceActions, type DualTable, type DualTableExtras, type Equal, type FtsMessageExcerptHit, type FtsMessageSearchInput, type FtsSearchStrategy, type FtsSessionCountInput, type FtsSessionSearchInput, type MakaioDatabase, NON_BASELINE_GENERATION_LEGS, type OperationTailStore, type PostgresTwinSchema, type RawSqlExecutor, type RawSqlSession, STORAGE_ENGINE_URL_HINTS, type StorageDialect, type StorageEngine, type StorageEngineCapabilities, type StorageEngineConstraintSuspension, type StorageEngineErrorClassifiers, type StorageEngineGenerationLeg, type StorageEngineMigrationBehavior, type StorageEngineUrlHint, type StorageEngineUrlResolution, type StorageNamespace, type StorageNamespaceConfig, type StorageNamespaceExtensions, type TransactionCallback, affectedRowCount, brandDatabase, buildFirstUserMessagePreviewQuery, createStorageNamespace, defineDialectSchema, defineDualTable, describeMissingStorageEngine, didAffectRows, executeTransaction, findGenerationLegForDialect, findStorageEngine, getDatabaseDialect, getRawSqlExecutor, getStorageEngine, importRuntimeModule, isSqliteDuplicateObjectError, isSqliteUniqueViolationError, quoteSqlIdentifier, readErrorCode, registerDrizzleHandlers, registerStorageEngine, resolveSchema, resolveStorageEngine, resolveStorageEngineForUrl, sanitizeFtsQuery, serializeByKey, serializeDatabaseOperation, someInCauseChain, sqliteFtsSearchStrategy, sqliteStorageEngine };
@@ -1 +1 @@
1
- import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../../registry-Dk12tAfv.mjs";import{autoPk as C,bool as w,epochMs as T,float8 as E,jsonCol as D}from"./columns/sqlite.mjs";import{autoPk as O,bool as k,epochMs as A,float8 as j,jsonCol as M}from"./columns/postgres.mjs";import{integer as N,sqliteTable as P,text as F}from"drizzle-orm/sqlite-core";import{bigint as ee,integer as I,pgTable as L,text as R}from"drizzle-orm/pg-core";import{getTableColumns as z,sql as B}from"drizzle-orm";import{createStorageNamespace as V}from"@makaio/framework/storage";const H=[{dialect:`postgres`,enginePackageName:`@makaio/storage-pg`,chainDirName:`drizzle-postgres`,drizzleConfigSpecifier:`drizzle.config.ts`,normalizeScriptSpecifier:`scripts/normalize-migrations.ts`}];function U(e){return H.find(t=>t.dialect===e)}async function W(e,t,n){for(let r of u(e).transactionLocks.lockExpressions(n))await t.select({acquired:r}).from(B.raw(`(SELECT 1) AS transaction_lock_anchor`))}async function G(e,t,n){let r=e.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.get(t)===a&&e.delete(t)}}async function K(e,t){return G(J,e,t)}async function q(e,t){return K(e,()=>e.transaction(t))}const J=new WeakMap;function Y(e){return(t,n,r)=>e(t,n,r)}function X(e,t){return{sqlite:e,postgres:t}}function Z(t,n){return n[e(t)]}function Q(e,t){let n=(e,t)=>({sqlite:e,postgres:t,notNull:()=>n(e.notNull(),t.notNull()),default:r=>n(e.default(r),t.default(r)),primaryKey:()=>n(e.primaryKey(),t.primaryKey()),unique:r=>n(e.unique(r),t.unique(r)),$type:()=>n(e,t),references:(r,i)=>n(e.references(()=>r().sqlite,i),t.references(()=>r().postgres,i))});return n(e,t)}const $={text:e=>Q(F(e),R(e)),textEnum:(e,t)=>Q(F(e,t),R(e,t)),epochMs:e=>Q(T(e),A(e)),bool:e=>Q(w(e),k(e)),jsonCol:e=>Q(D(e),M(e)),autoPk:e=>Q(C(e),O(e)),float8:e=>Q(E(e),j(e)),int4:e=>Q(N(e),I(e)),int8:e=>Q(N(e),ee(e,{mode:`number`}))};function te(e,t,n){let r=t($),i={},a={};for(let[e,t]of Object.entries(r))i[e]=t.sqlite,a[e]=t.postgres;let o=P(e,i,n?.sqlite),s=L(e,a,n?.postgres),c=z(o),l=z(s);return{sqlite:o,postgres:s,columnPair(e){return{sqlite:c[e],postgres:l[e]}}}}export{t as DATABASE_DIALECT,H as NON_BASELINE_GENERATION_LEGS,f as STORAGE_ENGINE_URL_HINTS,W as acquireTransactionLocks,i as affectedRowCount,b as brandDatabase,d as buildFirstUserMessagePreviewQuery,V as createStorageNamespace,X as defineDialectSchema,te as defineDualTable,l as describeMissingStorageEngine,x as didAffectRows,q as executeTransaction,U as findGenerationLegForDialect,v as findStorageEngine,e as getDatabaseDialect,S as getRawSqlExecutor,p as getStorageEngine,n as importRuntimeModule,y as isSqliteDuplicateObjectError,o as isSqliteUniqueViolationError,c as quoteSqlIdentifier,s as readErrorCode,Y as registerDrizzleHandlers,g as registerStorageEngine,Z as resolveSchema,u as resolveStorageEngine,r as resolveStorageEngineForUrl,a as sanitizeFtsQuery,G as serializeByKey,K as serializeDatabaseOperation,h as someInCauseChain,_ as sqliteFtsSearchStrategy,m as sqliteStorageEngine};
1
+ import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../../registry-BO_bOoky.mjs";import{autoPk as C,bool as w,epochMs as T,float8 as E,jsonCol as D}from"./columns/sqlite.mjs";import{autoPk as O,bool as k,epochMs as A,float8 as j,jsonCol as M}from"./columns/postgres.mjs";import{integer as N,sqliteTable as P,text as F}from"drizzle-orm/sqlite-core";import{bigint as I,integer as L,pgTable as R,text as z}from"drizzle-orm/pg-core";import{getTableColumns as B}from"drizzle-orm";import{createStorageNamespace as V}from"@makaio/framework/storage";const H=[{dialect:`postgres`,enginePackageName:`@makaio/storage-pg`,chainDirName:`drizzle-postgres`,drizzleConfigSpecifier:`drizzle.config.ts`,normalizeScriptSpecifier:`scripts/normalize-migrations.ts`}];function U(e){return H.find(t=>t.dialect===e)}async function W(e,t,n){let r=e.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.get(t)===a&&e.delete(t)}}async function G(e,t){return W(q,e,t)}async function K(e,t){return G(e,()=>e.transaction(t))}const q=new WeakMap;function J(e){return(t,n,r)=>e(t,n,r)}function Y(e,t){return{sqlite:e,postgres:t}}function X(t,n){return n[e(t)]}function Z(e,t){let n=(e,t)=>({sqlite:e,postgres:t,notNull:()=>n(e.notNull(),t.notNull()),default:r=>n(e.default(r),t.default(r)),primaryKey:()=>n(e.primaryKey(),t.primaryKey()),unique:r=>n(e.unique(r),t.unique(r)),$type:()=>n(e,t),references:(r,i)=>n(e.references(()=>r().sqlite,i),t.references(()=>r().postgres,i))});return n(e,t)}const Q={text:e=>Z(F(e),z(e)),textEnum:(e,t)=>Z(F(e,t),z(e,t)),epochMs:e=>Z(T(e),A(e)),bool:e=>Z(w(e),k(e)),jsonCol:e=>Z(D(e),M(e)),autoPk:e=>Z(C(e),O(e)),float8:e=>Z(E(e),j(e)),int4:e=>Z(N(e),L(e)),int8:e=>Z(N(e),I(e,{mode:`number`}))};function $(e,t,n){let r=t(Q),i={},a={};for(let[e,t]of Object.entries(r))i[e]=t.sqlite,a[e]=t.postgres;let o=P(e,i,n?.sqlite),s=R(e,a,n?.postgres),c=B(o),l=B(s);return{sqlite:o,postgres:s,columnPair(e){return{sqlite:c[e],postgres:l[e]}}}}export{t as DATABASE_DIALECT,H as NON_BASELINE_GENERATION_LEGS,f as STORAGE_ENGINE_URL_HINTS,i as affectedRowCount,b as brandDatabase,d as buildFirstUserMessagePreviewQuery,V as createStorageNamespace,Y as defineDialectSchema,$ as defineDualTable,l as describeMissingStorageEngine,x as didAffectRows,K as executeTransaction,U as findGenerationLegForDialect,v as findStorageEngine,e as getDatabaseDialect,S as getRawSqlExecutor,p as getStorageEngine,n as importRuntimeModule,y as isSqliteDuplicateObjectError,o as isSqliteUniqueViolationError,c as quoteSqlIdentifier,s as readErrorCode,J as registerDrizzleHandlers,g as registerStorageEngine,X as resolveSchema,u as resolveStorageEngine,r as resolveStorageEngineForUrl,a as sanitizeFtsQuery,W as serializeByKey,G as serializeDatabaseOperation,h as someInCauseChain,_ as sqliteFtsSearchStrategy,m as sqliteStorageEngine};
@@ -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-B5dP8rj6.mjs";
1
+ import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../../index-CQuRTeRa.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-Bzc-OGVI.mjs";export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler};
1
+ import{n as e,r as t,t as n}from"../../../drizzle-CPv3vdTE.mjs";export{n as buildScopePredicates,t as createDrizzleCrudHandlers,e as createDrizzleListHandler};
@@ -1,4 +1,4 @@
1
- import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index-B5dP8rj6.mjs";
1
+ import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index-CQuRTeRa.mjs";
2
2
 
3
3
  //#region storage/handlers/src/utils.d.ts
4
4
  /**