@makaio/framework 1.0.0-dev-1783705652236 → 1.0.0-dev-1783940945655

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 (449) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/account-identity-BYfeWLe-.mjs +1 -0
  3. package/dist/adapter-auth-runtime-a4O7cSNP.mjs +1 -0
  4. package/dist/adapter-binding-DDUyv1JK.d.mts +254 -0
  5. package/dist/{adapter-CA8rPIUz.mjs → adapter-nl_xz9dz.mjs} +1 -1
  6. package/dist/adapter-subsystem/index.d.mts +110 -5
  7. package/dist/adapter-subsystem/index.mjs +1 -1
  8. package/dist/adapters/acp-client/index.d.mts +10 -0
  9. package/dist/adapters/acp-client/index.mjs +2 -2
  10. package/dist/adapters/config/index.d.mts +176 -153
  11. package/dist/adapters/config/index.mjs +1 -1
  12. package/dist/adapters/index.d.mts +1021 -1005
  13. package/dist/adapters/index.mjs +6 -6
  14. package/dist/adapters/node.d.mts +1 -1
  15. package/dist/adapters/node.mjs +1 -1
  16. package/dist/adapters/stream-session/index.d.mts +7 -5
  17. package/dist/adapters/stream-session/index.mjs +1 -1
  18. package/dist/auth-C3NOWqTU.mjs +1 -0
  19. package/dist/{base-orchestrator-J1WKAUkF.d.mts → base-orchestrator-BiShpVKL.d.mts} +6 -0
  20. package/dist/bus/index.d.mts +21 -21
  21. package/dist/bus/index.mjs +1 -1
  22. package/dist/{canonical-model-DV-Z8gsb.mjs → canonical-model-CVRCW9h7.mjs} +1 -1
  23. package/dist/client-BkpLM8Fx.mjs +1 -0
  24. package/dist/client-binary-version-verifier-BK_vIjIo.mjs +2 -0
  25. package/dist/client-binary-version-verifier-BwrMTAh2.d.mts +179 -0
  26. package/dist/clients/index.d.mts +74 -90
  27. package/dist/clients/index.mjs +1 -2
  28. package/dist/clients/managed-install.d.mts +2 -0
  29. package/dist/clients/managed-install.mjs +1 -0
  30. package/dist/{clients-namespace-Bt_VTkEU.d.mts → clients-namespace-B96QIJOs.d.mts} +224 -21
  31. package/dist/compression-CZ_6fYq8.mjs +1 -0
  32. package/dist/config-namespace-DTA6EQL8.mjs +1 -0
  33. package/dist/{config-namespace-DqdFE6zk.d.mts → config-namespace-x0fuhEXe.d.mts} +73 -1
  34. package/dist/contracts/adapter/index.d.mts +3 -3
  35. package/dist/contracts/adapter/index.mjs +1 -1
  36. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  37. package/dist/contracts/artifact/index.d.mts +1 -1
  38. package/dist/contracts/auth/index.d.mts +3 -0
  39. package/dist/contracts/auth/index.mjs +1 -0
  40. package/dist/contracts/canonical-model/index.d.mts +1 -1
  41. package/dist/contracts/canonical-model/index.mjs +1 -1
  42. package/dist/contracts/client/index.d.mts +3 -3
  43. package/dist/contracts/client/index.mjs +1 -1
  44. package/dist/contracts/common/index.d.mts +1 -1
  45. package/dist/contracts/config/index.d.mts +20 -93
  46. package/dist/contracts/config/index.mjs +1 -1
  47. package/dist/contracts/extension/index.d.mts +3 -3
  48. package/dist/contracts/extension/index.mjs +1 -1
  49. package/dist/contracts/facet/index.d.mts +1 -1
  50. package/dist/contracts/facet/index.mjs +1 -1
  51. package/dist/contracts/harness/index.d.mts +1 -1
  52. package/dist/contracts/harness/index.mjs +1 -1
  53. package/dist/contracts/host/index.d.mts +1 -1
  54. package/dist/contracts/host/index.mjs +1 -1
  55. package/dist/contracts/index.d.mts +1214 -261
  56. package/dist/contracts/index.mjs +1 -1
  57. package/dist/contracts/materialization/index.d.mts +3 -3
  58. package/dist/contracts/materialization/index.mjs +1 -1
  59. package/dist/contracts/model-registry/index.d.mts +1 -1
  60. package/dist/contracts/model-registry/index.mjs +1 -1
  61. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  62. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  63. package/dist/contracts/platform/index.d.mts +1 -1
  64. package/dist/contracts/platform/index.mjs +1 -1
  65. package/dist/contracts/provider/index.d.mts +2 -2
  66. package/dist/contracts/provider/index.mjs +1 -1
  67. package/dist/contracts/session/index.d.mts +2 -2
  68. package/dist/contracts/session/index.mjs +1 -1
  69. package/dist/contracts/shared/index.d.mts +2 -2
  70. package/dist/contracts/shared/index.mjs +1 -1
  71. package/dist/contracts/skill/index.d.mts +1 -1
  72. package/dist/contracts/skill/index.mjs +1 -1
  73. package/dist/contracts/telemetry/index.d.mts +1 -1
  74. package/dist/contracts/telemetry/index.mjs +1 -1
  75. package/dist/contracts/timeout/index.d.mts +1 -1
  76. package/dist/contracts/timeout/index.mjs +1 -1
  77. package/dist/contracts/toast/index.mjs +1 -1
  78. package/dist/contracts/variant/index.d.mts +1 -1
  79. package/dist/contracts/variant/index.mjs +1 -1
  80. package/dist/contracts/workflow/index.d.mts +2 -2
  81. package/dist/contracts/workflow/index.mjs +1 -1
  82. package/dist/{definition-s9PIua2B.d.mts → definition-Bj9Vr16H.d.mts} +1 -1
  83. package/dist/{definition-Cllhr9mi.d.mts → definition-BsTlOz99.d.mts} +36 -4
  84. package/dist/{definition-CuJvtYeG.d.mts → definition-Cbl0k6Fc.d.mts} +31 -1
  85. package/dist/definition-K3m51lgO.mjs +1 -0
  86. package/dist/definitions-C1pgx0Nq.mjs +1 -0
  87. package/dist/{detached-extension-handle-Cx6-0eqg.mjs → detached-extension-handle-CTaQoolf.mjs} +1 -1
  88. package/dist/execution-target-Bg2wpfML.mjs +1 -0
  89. package/dist/{extension-CJClssfp.mjs → extension-CjTu6mzW.mjs} +1 -1
  90. package/dist/extension-D4iKUUMG.mjs +1 -0
  91. package/dist/{filesystem-service-Bmyqo6po.mjs → filesystem-service-maY_P3yA.mjs} +1 -1
  92. package/dist/git/index.mjs +1 -1
  93. package/dist/{globby-D4SANVoq.mjs → globby-CisClzat.mjs} +1 -1
  94. package/dist/handlers-RGs3eC9X.mjs +57 -0
  95. package/dist/{harness-DkUpbsuY.mjs → harness-DflvHAGV.mjs} +1 -1
  96. package/dist/{index-C23g_M_J2.d.mts → index-5s_dN3cg2.d.mts} +18 -1
  97. package/dist/index-9dISOTLT.d.mts +174 -0
  98. package/dist/{index-B9d_8_V2.d.mts → index-9g0agW_p.d.mts} +55 -55
  99. package/dist/{index-DoEF9LAc.d.mts → index-BcejR1Jc.d.mts} +3 -3
  100. package/dist/index-BsEvzFey.d.mts +1175 -0
  101. package/dist/{index-ntS1EXlf.d.mts → index-BtL7ONuM.d.mts} +1 -1
  102. package/dist/index-BxuiHVFi.d.mts +284 -0
  103. package/dist/{index-PIlYSC73.d.mts → index-C9Q1E8Y-.d.mts} +66 -53
  104. package/dist/{index-CaerrEDH.d.mts → index-CB2XTzvd.d.mts} +3 -3
  105. package/dist/{index-Cx1Bm6WD.d.mts → index-CVs0Qxks.d.mts} +8 -8
  106. package/dist/{index-WHUV7neB.d.mts → index-CW6-0k3Z.d.mts} +105 -105
  107. package/dist/index-CagRgpXI2.d.mts +84 -0
  108. package/dist/{index-DZPNuWMc.d.mts → index-Cw3cjGAT.d.mts} +7 -7
  109. package/dist/{index-DnnKUwHm.d.mts → index-D5IEq4_E.d.mts} +36 -32
  110. package/dist/{index-h5go5Dtd.d.mts → index-D75FnT0B.d.mts} +1 -1
  111. package/dist/{index-O08Q2ikz.d.mts → index-DNc1yLQs.d.mts} +8 -8
  112. package/dist/{index-FFVwQMad.d.mts → index-DlUPWOh4.d.mts} +737 -97
  113. package/dist/{index-DScUb-hF.d.mts → index-Do7Wgio_2.d.mts} +35 -12
  114. package/dist/{index-C9FCWOhp.d.mts → index-DxatNFz7.d.mts} +124 -22
  115. package/dist/{index-BvTd61i5.d.mts → index-T96ydgVk.d.mts} +260 -160
  116. package/dist/{index-DLNRgZPo2.d.mts → index-j2YlW_Fc.d.mts} +1 -1
  117. package/dist/{index-BcvG3wPv.d.mts → index-p6dWV52m.d.mts} +513 -373
  118. package/dist/{index-B2DjrVb8.d.mts → index-sCOlgPyj.d.mts} +1589 -482
  119. package/dist/kernel/cli/index.d.mts +2 -2
  120. package/dist/kernel/cli/index.mjs +1 -1
  121. package/dist/kernel/cli/register.d.mts +1 -1
  122. package/dist/kernel/cli/register.mjs +1 -1
  123. package/dist/kernel/cli/schemas.mjs +1 -1
  124. package/dist/kernel/extension/index.d.mts +1 -1
  125. package/dist/kernel/extension/index.mjs +1 -1
  126. package/dist/kernel/index.d.mts +5 -5
  127. package/dist/kernel/index.mjs +1 -1
  128. package/dist/kernel/namespace/index.d.mts +1 -1
  129. package/dist/kernel/namespace/index.mjs +1 -1
  130. package/dist/kernel/observability/index.d.mts +1 -1
  131. package/dist/kernel/observability/index.mjs +1 -1
  132. package/dist/kernel/providers/index.d.mts +1 -1
  133. package/dist/kernel/providers/index.mjs +1 -1
  134. package/dist/kernel/window/index.d.mts +1 -1
  135. package/dist/kernel/window/index.mjs +1 -1
  136. package/dist/{lib-BOmKyjWD.mjs → lib-DIVnpS8e.mjs} +1 -1
  137. package/dist/{lib-DLZYp5z3.mjs → lib-DymjnkAP.mjs} +1 -1
  138. package/dist/{load-extensions-Cze1RHcG.mjs → load-extensions-BtUrq2_t.mjs} +1 -1
  139. package/dist/{load-extensions-DNRIy4zC.d.mts → load-extensions-_EnedkUp.d.mts} +1 -1
  140. package/dist/{loop-gate-handlers-o2B5FPdF.mjs → loop-gate-handlers-0a3dIY8O.mjs} +1 -1
  141. package/dist/mcp-http-server/index.mjs +1 -1
  142. package/dist/model-uE5IyUFJ.mjs +1 -0
  143. package/dist/namespace-C05pkLbN.mjs +1 -0
  144. package/dist/{namespace-D8P8Sxce2.d.mts → namespace-CGgOLxiW2.d.mts} +2 -2
  145. package/dist/{namespace-BGIeqwfU.d.mts → namespace-CQBSXm1U.d.mts} +20 -20
  146. package/dist/{namespace-CfvtDD_U.d.mts → namespace-CfgtqUWS.d.mts} +156 -156
  147. package/dist/{namespace-D9PLFmPQ.d.mts → namespace-CpyL93kW.d.mts} +27 -27
  148. package/dist/{namespace-CZK2ff3B.d.mts → namespace-D3SQQgxa2.d.mts} +1 -1
  149. package/dist/namespace-D7pE2QWv.mjs +1 -0
  150. package/dist/{namespace-dFBD2ZmS.mjs → namespace-DwQtzlY-.mjs} +1 -1
  151. package/dist/namespace-HsI0Jbbr.mjs +1 -0
  152. package/dist/namespace-VmsT_tLJ.d.mts +3729 -0
  153. package/dist/namespace-Xp9-g_r-.mjs +1 -0
  154. package/dist/{native-session-supervisor-7ElwM6Is.mjs → native-session-supervisor-CdtVGWA9.mjs} +1 -1
  155. package/dist/node/bus-server/index.d.mts +1 -1
  156. package/dist/node/bus-server/index.mjs +1 -1
  157. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  158. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  159. package/dist/node/transports/index.d.mts +36 -1
  160. package/dist/node/transports/index.mjs +2 -2
  161. package/dist/{orchestrator-shared-ChygCvR1.mjs → orchestrator-shared-DAkGOu9H.mjs} +1 -1
  162. package/dist/{orchestrator-shared-DFLb1otg.d.mts → orchestrator-shared-pxtyNu3W.d.mts} +13 -6
  163. package/dist/{package-Co_GO3UD.mjs → package-0gVhAVkO.mjs} +1 -1
  164. package/dist/package-BwvGaKwn.mjs +1 -0
  165. package/dist/package.json +1 -1
  166. package/dist/{profile-BMBXUqqh.mjs → profile-D2m94ZYD.mjs} +1 -1
  167. package/dist/provider-context-BYkMl--1.mjs +1 -0
  168. package/dist/provider-context-DOsjOjiR.mjs +1 -0
  169. package/dist/{providers-namespace-5GoTlHXz.d.mts → providers-namespace-O4de1tgO.d.mts} +161 -14
  170. package/dist/resolved-O2XXjTeu.mjs +1 -0
  171. package/dist/rules/index.d.mts +1 -1
  172. package/dist/rules/index.mjs +1 -1
  173. package/dist/rules/schemas.d.mts +1 -1
  174. package/dist/runtime-bun/index.mjs +1 -1
  175. package/dist/runtime-node/client-binary-strategy-dependencies.d.mts +34 -0
  176. package/dist/runtime-node/client-binary-strategy-dependencies.mjs +1 -0
  177. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  178. package/dist/runtime-node/extension-validation.d.mts +1 -1
  179. package/dist/runtime-node/extension-validation.mjs +1 -1
  180. package/dist/runtime-node/index.d.mts +32 -6
  181. package/dist/runtime-node/index.mjs +24 -24
  182. package/dist/runtime-node/makaio-config.d.mts +1 -1
  183. package/dist/runtime-node/makaio-config.mjs +1 -1
  184. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  185. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  186. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  187. package/dist/{schema-7aKBGB7S.mjs → schema-BI0aCHvV.mjs} +1 -1
  188. package/dist/{schema-B5vHi7Uu.d.mts → schema-BnTOFCdU.d.mts} +1 -1
  189. package/dist/{schemas-Br-rSxPE2.d.mts → schemas--uwN5dfK2.d.mts} +11 -11
  190. package/dist/schemas-C-J4W1ID.mjs +1 -0
  191. package/dist/{schemas-CoFCV42v.d.mts → schemas-C17AifUQ.d.mts} +156 -156
  192. package/dist/schemas-D6lj9NMg.mjs +1 -0
  193. package/dist/schemas-K3Td_WdR.d.mts +3175 -0
  194. package/dist/schemas-n9Ff6_RX.mjs +1 -0
  195. package/dist/selection-YRuVSdck.mjs +1 -0
  196. package/dist/services/adapter-runtime/index.d.mts +3 -3
  197. package/dist/services/adapter-runtime/index.mjs +1 -1
  198. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  199. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  200. package/dist/services/adapter-subsystem/index.d.mts +4 -3
  201. package/dist/services/adapter-subsystem/index.mjs +1 -1
  202. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  203. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  204. package/dist/services/agent-runtime/index.d.mts +2 -2
  205. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  206. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  207. package/dist/services/capability/index.d.mts +1 -1
  208. package/dist/services/capability/index.mjs +1 -1
  209. package/dist/services/codebase/index.d.mts +2 -2
  210. package/dist/services/codebase/namespace.d.mts +1 -1
  211. package/dist/services/codebase/schemas.d.mts +1 -1
  212. package/dist/services/compression/index.d.mts +2 -2
  213. package/dist/services/compression/namespace.d.mts +1 -1
  214. package/dist/services/compression/schemas.d.mts +1 -1
  215. package/dist/services/context-rules/index.d.mts +1 -1
  216. package/dist/services/context-rules/index.mjs +1 -1
  217. package/dist/services/definition/namespace.d.mts +1 -19
  218. package/dist/services/definition/schemas.d.mts +0 -9
  219. package/dist/services/definition/schemas.mjs +1 -1
  220. package/dist/services/execution-target/index.d.mts +4 -4
  221. package/dist/services/execution-target/index.mjs +1 -1
  222. package/dist/services/execution-target/namespace.d.mts +1 -1
  223. package/dist/services/execution-target/namespace.mjs +1 -1
  224. package/dist/services/execution-target/schemas.d.mts +1 -1
  225. package/dist/services/execution-target/schemas.mjs +1 -1
  226. package/dist/services/filesystem/index.d.mts +1 -1
  227. package/dist/services/filesystem/index.mjs +1 -1
  228. package/dist/services/filesystem/namespace.d.mts +6 -6
  229. package/dist/services/filesystem/schemas.d.mts +3 -3
  230. package/dist/services/git/namespace.mjs +1 -1
  231. package/dist/services/git/schemas.mjs +1 -1
  232. package/dist/services/harness/index.d.mts +6 -6
  233. package/dist/services/harness/index.mjs +1 -1
  234. package/dist/services/index.d.mts +1671 -253
  235. package/dist/services/index.mjs +1 -1
  236. package/dist/services/log-import/browser.d.mts +2 -2
  237. package/dist/services/log-import/index.d.mts +2 -2
  238. package/dist/services/log-import/log-import.d.mts +1 -1
  239. package/dist/services/log-import/log-import.mjs +1 -1
  240. package/dist/services/log-import/namespace.mjs +1 -1
  241. package/dist/services/log-import/schemas.mjs +1 -1
  242. package/dist/services/model-registry/index.d.mts +1 -1
  243. package/dist/services/model-registry/index.mjs +1 -1
  244. package/dist/services/preferences/index.d.mts +2 -2
  245. package/dist/services/preferences/schemas.d.mts +1 -1
  246. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  247. package/dist/services/provider-context/index.d.mts +2 -2
  248. package/dist/services/provider-context/index.mjs +1 -1
  249. package/dist/services/provider-runtime/index.d.mts +18 -0
  250. package/dist/services/provider-runtime/index.mjs +1 -1
  251. package/dist/services/session/handlers/index.d.mts +1 -1
  252. package/dist/services/session/handlers/index.mjs +1 -1
  253. package/dist/services/session/index.d.mts +10 -10
  254. package/dist/services/session/index.mjs +1 -1
  255. package/dist/services/session/messages/namespace.d.mts +1 -1
  256. package/dist/services/session/messages/namespace.mjs +1 -1
  257. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  258. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  259. package/dist/services/session/session-events/namespace.d.mts +1 -1
  260. package/dist/services/session/session-events/namespace.mjs +1 -1
  261. package/dist/services/session/storage/namespace.d.mts +1 -1
  262. package/dist/services/session/storage/schema.d.mts +1 -1
  263. package/dist/services/session/testing/index.d.mts +2 -2
  264. package/dist/services/session/testing/index.mjs +10 -10
  265. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  266. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  267. package/dist/services/session/turns/namespace.d.mts +1 -1
  268. package/dist/services/session/turns/namespace.mjs +1 -1
  269. package/dist/services/session-editor/index.d.mts +1 -1
  270. package/dist/services/session-editor/index.mjs +1 -1
  271. package/dist/services/settings/index.d.mts +3 -3
  272. package/dist/services/settings/index.mjs +1 -1
  273. package/dist/services/settings/namespace.d.mts +18 -25
  274. package/dist/services/settings/namespace.mjs +1 -1
  275. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  276. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  277. package/dist/services/settings/storage/index.d.mts +3 -3
  278. package/dist/services/settings/storage/index.mjs +1 -1
  279. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  280. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  281. package/dist/services/subagent/index.d.mts +2 -2
  282. package/dist/services/subagent/index.mjs +1 -1
  283. package/dist/services/subagent-template/index.d.mts +2 -2
  284. package/dist/services/subagent-template/namespace.d.mts +1 -1
  285. package/dist/services/subagent-template/schemas.d.mts +1 -1
  286. package/dist/services/tool-approval/index.d.mts +1 -1
  287. package/dist/services/tool-approval/index.mjs +1 -1
  288. package/dist/services/tools/index.d.mts +1 -1
  289. package/dist/services/tools/index.mjs +1 -1
  290. package/dist/services/tray-menu/index.d.mts +3 -3
  291. package/dist/services/tray-menu/index.mjs +1 -1
  292. package/dist/services/tray-menu/namespace.d.mts +1 -1
  293. package/dist/services/tray-menu/schemas.d.mts +1 -1
  294. package/dist/services/turn/index.d.mts +1 -1
  295. package/dist/services/turn/namespace.d.mts +1 -1
  296. package/dist/session-CAjudDuJ.mjs +76 -0
  297. package/dist/{session-DBfQkgdy.mjs → session-lRd8HZNZ.mjs} +1 -1
  298. package/dist/{session-lineage-C1M7-O3C.d.mts → session-lineage-BLw8iWAj.d.mts} +1 -1
  299. package/dist/{shared-BVW-3Dhy.mjs → shared-RP_KARKF.mjs} +1 -1
  300. package/dist/{skill-N-ttlp1i.mjs → skill-CpNjWFuE.mjs} +1 -1
  301. package/dist/{src-Ck2sbaDa.mjs → src-Bo2eA51B.mjs} +1 -1
  302. package/dist/storage/drizzle/client.d.mts +1 -1
  303. package/dist/storage/drizzle/client.mjs +1 -1
  304. package/dist/storage/drizzle/index.d.mts +1 -1
  305. package/dist/storage/drizzle/index.mjs +1 -1
  306. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  307. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  308. package/dist/storage/handlers/index.d.mts +1 -1
  309. package/dist/storage/handlers/index.mjs +1 -1
  310. package/dist/{tool-approval-service-DEiMKTv9.mjs → tool-approval-service-Dh0XI21f.mjs} +1 -1
  311. package/dist/tools-C8vqn1KY.mjs +1 -0
  312. package/dist/{transition-OzGXyy3p.d.mts → transition-Bfe8VVc1.d.mts} +2 -2
  313. package/dist/{types-BWduCvRU.d.mts → types-B-xY9WW2.d.mts} +1 -1
  314. package/dist/{types-BrUOVfwe.d.mts → types-DvKaEOOn.d.mts} +252 -19
  315. package/dist/{types-CBLPaQXe.d.mts → types-q95p55BF.d.mts} +437 -287
  316. package/dist/ui-hooks/index.d.mts +103 -14
  317. package/dist/ui-hooks/index.mjs +1 -1
  318. package/dist/ui-kernel/index.d.mts +3 -3
  319. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  320. package/dist/utils/keychain.mjs +1 -1
  321. package/dist/{version-DoV_pSzT.mjs → version-C1-VD-XL.mjs} +1 -1
  322. package/dist/workflow-CvVAZ89A.mjs +1 -0
  323. package/dist/workflow-engine/index.d.mts +33 -33
  324. package/dist/workflow-engine/index.mjs +1 -1
  325. package/dist/workflow-engine/package.d.mts +1 -1
  326. package/dist/workflow-engine/package.mjs +1 -1
  327. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  328. package/dist/{workflow-worker-dH70EbjE.mjs → workflow-worker-CudfEstp.mjs} +1 -1
  329. package/package.json +5 -1
  330. package/dist/account-identity-C7Kx_ieU.mjs +0 -1
  331. package/dist/cleanEnvForAdapter-BooAgM2R.mjs +0 -1
  332. package/dist/client-DaR4mzqn.mjs +0 -1
  333. package/dist/compression-C5JAWdgZ.mjs +0 -1
  334. package/dist/config-namespace-CY9leBnE.mjs +0 -1
  335. package/dist/credential-ref-YWQQENEo.mjs +0 -1
  336. package/dist/definition-C-GVz7uw.mjs +0 -1
  337. package/dist/execution-target-BR8bLkCR.mjs +0 -1
  338. package/dist/extension-BS_4BOeO.mjs +0 -1
  339. package/dist/handlers-B74FvKlA.mjs +0 -57
  340. package/dist/index-BcwOnvUh.d.mts +0 -749
  341. package/dist/index-D6aAzr32.d.mts +0 -997
  342. package/dist/index-DtwGhFFQ.d.mts +0 -40
  343. package/dist/namespace-B4cV_pk3.d.mts +0 -1317
  344. package/dist/namespace-BO3tODGC.mjs +0 -1
  345. package/dist/namespace-CVMZVqB5.mjs +0 -1
  346. package/dist/namespace-DBHwyhME.mjs +0 -1
  347. package/dist/namespace-DibbhCPP.mjs +0 -1
  348. package/dist/package-CF_Zm2v4.mjs +0 -1
  349. package/dist/provider-context-CqMgPOWF.mjs +0 -1
  350. package/dist/provider-context-DC_eq7es.mjs +0 -1
  351. package/dist/schemas-CVo8qAK-.mjs +0 -1
  352. package/dist/schemas-CuG17U3L.mjs +0 -1
  353. package/dist/session-CX6QDhi2.mjs +0 -76
  354. package/dist/tools-CGFZkB7F.mjs +0 -1
  355. package/dist/workflow-C3dgVwTY.mjs +0 -1
  356. /package/dist/{ajv-B5dPIck0.mjs → ajv-DfHhgdS5.mjs} +0 -0
  357. /package/dist/{await-trigger-DwVldnMt.mjs → await-trigger-D623tvig.mjs} +0 -0
  358. /package/dist/{capability-service-XlymTzz1.mjs → capability-service-Dg2bU8qc.mjs} +0 -0
  359. /package/dist/{client-CebV_fZc.d.mts → client-DmJwprw1.d.mts} +0 -0
  360. /package/dist/{create-static-mount-DkK28kKW.mjs → create-static-mount-CBTXRtbN.mjs} +0 -0
  361. /package/dist/{cross-spawn-CDXy3BjE.mjs → cross-spawn-D9WWFl2a.mjs} +0 -0
  362. /package/dist/{cursor-storage-luQAg7E_.mjs → cursor-storage-Bw-7ROzx.mjs} +0 -0
  363. /package/dist/{descriptor-to-package-DdpjpT7n.mjs → descriptor-to-package-D5SWf6TL.mjs} +0 -0
  364. /package/dist/{drizzle-DVTAl7Us.mjs → drizzle-DYfaDzlO.mjs} +0 -0
  365. /package/dist/{esm-CQG9Pc7n.mjs → esm-oHhRYTEn.mjs} +0 -0
  366. /package/dist/{event-DguYjV6D.mjs → event-DTM0-qWP.mjs} +0 -0
  367. /package/dist/{extension-discovery-CIZn5bkq.d.mts → extension-discovery-APMf1Tes.d.mts} +0 -0
  368. /package/dist/{extension-namespace-v3K0qVry.mjs → extension-namespace-vrh4ERXR.mjs} +0 -0
  369. /package/dist/{facet-BM4y4aQP.mjs → facet-DqPBpqkl.mjs} +0 -0
  370. /package/dist/{filesystem-service-Cwp0sWNc.d.mts → filesystem-service-Bx0bR2Lb.d.mts} +0 -0
  371. /package/dist/{handler-BFNvtv5t.mjs → handler-4pKQi3eo.mjs} +0 -0
  372. /package/dist/{host-vY07gek-.mjs → host-BfgdjlII.mjs} +0 -0
  373. /package/dist/{identity-DC3Pk0ps.mjs → identity-2qUT1NME.mjs} +0 -0
  374. /package/dist/{index-COI1tjAf.d.mts → index-BZ_DSGnE.d.mts} +0 -0
  375. /package/dist/{index-D7rWAEY0.d.mts → index-Bd52mmj9.d.mts} +0 -0
  376. /package/dist/{index-Dfi8Rorw.d.mts → index-BkAKfh4d.d.mts} +0 -0
  377. /package/dist/{index-CuHqL95P.d.mts → index-Bv9lm0Kf.d.mts} +0 -0
  378. /package/dist/{index-C4nStEdA.d.mts → index-C18Pn3zP.d.mts} +0 -0
  379. /package/dist/{index-Cr9lh21j.d.mts → index-CarbJsC92.d.mts} +0 -0
  380. /package/dist/{index-BjoOSg95.d.mts → index-Ctw617Tj.d.mts} +0 -0
  381. /package/dist/{index-DUD7wikz2.d.mts → index-D0eUQjTU2.d.mts} +0 -0
  382. /package/dist/{index-DEzdNQum.d.mts → index-DfVSWBBp.d.mts} +0 -0
  383. /package/dist/{index-D3ahzHwb.d.mts → index-DnWZdG6C.d.mts} +0 -0
  384. /package/dist/{index-CpKikwK4.d.mts → index-DoLdETfR.d.mts} +0 -0
  385. /package/dist/{index-B92mToDo2.d.mts → index-DvaPrL6C.d.mts} +0 -0
  386. /package/dist/{index-D7Hkmrr3.d.mts → index-DwDBa2mb.d.mts} +0 -0
  387. /package/dist/{index-Y8rMeYYX.d.mts → index-FDyqQIt5.d.mts} +0 -0
  388. /package/dist/{index-BWIkf5oJ.d.mts → index-Lp0T_V1W.d.mts} +0 -0
  389. /package/dist/{index-OGIC4puQ.d.mts → index-Rhcr4YNA.d.mts} +0 -0
  390. /package/dist/{index-BvLXySoB2.d.mts → index-S-mAqWwq.d.mts} +0 -0
  391. /package/dist/{index-DOOrKin9.d.mts → index-_zsihEmk.d.mts} +0 -0
  392. /package/dist/{index-wq7XeqyG.d.mts → index-iJP-l15K.d.mts} +0 -0
  393. /package/dist/{json-value-DtIkQN7g.d.mts → json-value-C8duSh9X.d.mts} +0 -0
  394. /package/dist/{jsonl-transport-CGPgD8iU.mjs → jsonl-transport-l5NPcQ_2.mjs} +0 -0
  395. /package/dist/{lib-ZKtnbCqH.mjs → lib-ClRTNIuz.mjs} +0 -0
  396. /package/dist/{materialization-CUYxZCfk.mjs → materialization-BwTORtBr.mjs} +0 -0
  397. /package/dist/{model-registry-C2VXobZj.mjs → model-registry-BneK5SGo.mjs} +0 -0
  398. /package/dist/{model-registry-rYICIwyR.mjs → model-registry-C8MInDtX.mjs} +0 -0
  399. /package/dist/{namespace-65uwTpbg.d.mts → namespace-3YVLQ_bM.d.mts} +0 -0
  400. /package/dist/{namespace-CQ8uza7o.d.mts → namespace-BcDHt-ww.d.mts} +0 -0
  401. /package/dist/{namespace-BigVYQyx.d.mts → namespace-BhVlHfoO.d.mts} +0 -0
  402. /package/dist/{namespace-j7vFsmYL.d.mts → namespace-Bl1UhLnK.d.mts} +0 -0
  403. /package/dist/{namespace-Dk4OslmY.d.mts → namespace-BsEoWXV_.d.mts} +0 -0
  404. /package/dist/{namespace-DYSFDC2G.mjs → namespace-C238RqwB.mjs} +0 -0
  405. /package/dist/{namespace-BdO4e1Fm.mjs → namespace-CDO4rY11.mjs} +0 -0
  406. /package/dist/{namespace-wke7juzy.mjs → namespace-DDx4NVJm.mjs} +0 -0
  407. /package/dist/{namespace-D1_9WVCo.d.mts → namespace-Dar3O6iT.d.mts} +0 -0
  408. /package/dist/{namespace-DAj_riOn.d.mts → namespace-DoNigVgx.d.mts} +0 -0
  409. /package/dist/{namespace-D2s-4pyg.d.mts → namespace-Dvi66QS6.d.mts} +0 -0
  410. /package/dist/{out-BoEZjBNz.mjs → out-BB6Kb4Xu.mjs} +0 -0
  411. /package/dist/{package-DmVZxufT.d.mts → package-CdBiknf3.d.mts} +0 -0
  412. /package/dist/{platform-DnbSvm2u.mjs → platform-CWhGFQFX.mjs} +0 -0
  413. /package/dist/{providers-Bd7BOZs0.mjs → providers-CUnrif24.mjs} +0 -0
  414. /package/dist/{quick-lru-6e7I1Bgf.mjs → quick-lru-BLaSzINB.mjs} +0 -0
  415. /package/dist/{registry-U_3aYSin.mjs → registry-TJjQgTgp.mjs} +0 -0
  416. /package/dist/{schema-CHp6I33k.mjs → schema-cus0dJ81.mjs} +0 -0
  417. /package/dist/{schema-introspection-B7xODt4I.mjs → schema-introspection-BsWLmoFp.mjs} +0 -0
  418. /package/dist/{schemas-KlH1hB7u.d.mts → schemas-9QJf1FtS.d.mts} +0 -0
  419. /package/dist/{schemas-CJ2JvA7d.d.mts → schemas-BolSW7pQ.d.mts} +0 -0
  420. /package/dist/{schemas-D4zaFE2p.d.mts → schemas-CLsbsX1W.d.mts} +0 -0
  421. /package/dist/{schemas-XeIBqwvE.mjs → schemas-CMyv7l7-.mjs} +0 -0
  422. /package/dist/{schemas-CPI00yvh.mjs → schemas-CWxf_Yut.mjs} +0 -0
  423. /package/dist/{schemas-BemsLc_V.d.mts → schemas-D_9X_CRo.d.mts} +0 -0
  424. /package/dist/{schemas-DZGnr9Tl.mjs → schemas-DwfTUQIa.mjs} +0 -0
  425. /package/dist/{schemas-B6tEKf9T.d.mts → schemas-XRhqOgVE.d.mts} +0 -0
  426. /package/dist/{schemas-DKncXGnb.d.mts → schemas-fRLDhefF.d.mts} +0 -0
  427. /package/dist/{schemas-DWfo0wp4.d.mts → schemas-jDRSOXJL.d.mts} +0 -0
  428. /package/dist/{schemas-lnE9YoG7.d.mts → schemas-qpo1Goit.d.mts} +0 -0
  429. /package/dist/{schemas-t6h9oSct.d.mts → schemas-qt5QTjVc.d.mts} +0 -0
  430. /package/dist/{semver-CIhHqMkw.mjs → semver-BccS1s9R.mjs} +0 -0
  431. /package/dist/{server-lifecycle-C5Z5PSMD.mjs → server-lifecycle-D-jxVr_0.mjs} +0 -0
  432. /package/dist/{server-lifecycle-_AA6EfzL.d.mts → server-lifecycle-r5Tkk8bU.d.mts} +0 -0
  433. /package/dist/{shared-schemas-BEVG96xW.mjs → shared-schemas-BNCPgGYP.mjs} +0 -0
  434. /package/dist/{src-_VODAJnf.mjs → src-Ci_WY9uw.mjs} +0 -0
  435. /package/dist/{storage-namespace-D5q9CrBp.mjs → storage-namespace-BzE2M4Hq.mjs} +0 -0
  436. /package/dist/{storage-namespace-Di1A3DMm.d.mts → storage-namespace-DWKFqEW-.d.mts} +0 -0
  437. /package/dist/{storage-namespace-definition-CzXPW45M.mjs → storage-namespace-definition-4UYuij1r.mjs} +0 -0
  438. /package/dist/{storage-namespace-definition-BffdI5Bz.d.mts → storage-namespace-definition-BZJGSaX3.d.mts} +0 -0
  439. /package/dist/{supports-color-DcXkvGDF.mjs → supports-color-Dzp6WuF5.mjs} +0 -0
  440. /package/dist/{telemetry-Cvi4rxiE.mjs → telemetry-B42EMbZt.mjs} +0 -0
  441. /package/dist/{timeout-XsYIOKrc.mjs → timeout-CvONPl0l.mjs} +0 -0
  442. /package/dist/{tray-menu-service-B2AxiQqL.mjs → tray-menu-service-Bonl2KXf.mjs} +0 -0
  443. /package/dist/{types-Bo78h9e3.d.mts → types-BCW9kr4L.d.mts} +0 -0
  444. /package/dist/{types-DCvp_swt.d.mts → types-CrJ7KEZ0.d.mts} +0 -0
  445. /package/dist/{types-BNW5n6qm.d.mts → types-DWNoZ3Sd.d.mts} +0 -0
  446. /package/dist/{ui-config-9bDRwFZr.mjs → ui-config-B2L3Xgqo.mjs} +0 -0
  447. /package/dist/{variant-5huHjUTm.mjs → variant-ByI-RZua.mjs} +0 -0
  448. /package/dist/{window-registry-PkrFIwX2.mjs → window-registry-DsWnCc8z.mjs} +0 -0
  449. /package/dist/{window-registry-ofIUQnfo.d.mts → window-registry-WsWu-rcK.d.mts} +0 -0
@@ -1 +0,0 @@
1
- import"./services/settings/storage/extension-configs/namespace.mjs";import{SubagentTemplateSettingsSchemas as e}from"./services/subagent-template/schemas.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";import{ConfigSchema as r,EntityUIConfigSchema as i,ProtocolIdSchema as a}from"@makaio/framework/contracts";import{ProviderDefaultsSchema as o}from"@makaio/framework/contracts/config";const s=t.enum([`ready`,`missing-credentials`,`needs-setup`]),c=t.object({adapterName:t.string(),displayName:t.string(),description:t.string().optional(),enabled:t.boolean(),configCount:t.number(),supportsLogImport:t.boolean(),helpLinks:t.array(t.object({label:t.string(),url:t.string()})).optional(),instructions:t.string().optional(),readiness:s.optional(),clientId:t.string().optional(),protocol:a.optional(),providerDefinitionIds:t.array(t.string()).optional()}),l=t.record(t.string(),t.unknown()),u=r,d=r.partial(),f=t.object({success:t.boolean()}),p=t.record(t.string(),t.unknown()),m=t.object({adapters:t.array(c)}),h=t.object({adapterName:t.string(),enabled:t.boolean()}),g=t.object({success:t.boolean()}),_=t.object({adapterName:t.string()}),v=o.partial(),y=t.object({adapterName:t.string(),defaults:o.partial()}),b=t.object({success:t.boolean()}),x=t.object({adapterName:t.string()}),S=t.object({config:t.record(t.string(),t.unknown())}),C=t.object({adapterName:t.string(),config:t.record(t.string(),t.unknown())}),w=t.object({success:t.boolean()}),T=t.record(t.string(),t.unknown()),E=t.object({adapterName:t.string()}),D=t.object({hasSchema:t.boolean(),schema:T.nullable()}),O=t.object({extensionName:t.string()}),k=t.object({hasSchema:t.boolean(),schema:T.nullable(),uiConfig:i.nullable()}),A=n(`settings`,{"runtime.get":{request:l,response:u},"runtime.update":{request:d,response:f},"adapter.list":{request:p,response:m},"adapter.setEnabled":{request:h,response:g},"adapter.defaults.get":{request:_,response:v},"adapter.defaults.update":{request:y,response:b},"adapter.getConfig":{request:x,response:S},"adapter.updateConfig":{request:C,response:w},"adapter.getConfigSchema":{request:E,response:D},"extension.getConfigSchema":{request:O,response:k}}),j=A.subjects,M=n(`settings:subagentTemplate`,e),N=M.subjects;export{c as a,N as i,j as n,M as r,A as t};
@@ -1 +0,0 @@
1
- import{z as e}from"zod";import{createBusNamespace as t}from"@makaio/framework/core";import{AIModelSchema as n}from"@makaio/framework/contracts";const r=t(`providerRuntime`,{fetchModels:{request:e.object({providerConfigId:e.string()}).strict(),response:e.object({models:e.array(n)}).strict()}}),i=r.subjects;export{i as n,r as t};
@@ -1 +0,0 @@
1
- import{z as e}from"zod";import{createBusNamespace as t}from"@makaio/framework/core";import{ProviderContextSchema as n}from"@makaio/framework/contracts/adapter";import{AdapterFileSchema as r,CredentialRefSchema as i,isCanonicalProviderConfigName as a}from"@makaio/framework/contracts/config";import{ModelFilterModeSchema as o,ModelVisibilitySchema as s,ProtocolEndpointsSchema as c,ProviderDefinitionSchema as l}from"@makaio/framework/contracts/provider";const u=`Provider config name must slugify to a canonical routing segment.`,d=e.record(e.string(),i),f=e.object({definitionId:e.string(),name:e.string().optional(),credentialRefs:e.record(e.string(),i).optional(),endpointOverrides:c.optional(),modelVisibility:e.record(e.string(),s).optional(),modelFilterMode:o.optional(),isSentinel:e.boolean().optional()}).strict().refine(e=>e.name===void 0||a(e.name),{message:u,path:[`name`]}),p=e.object({name:e.string().optional(),endpointOverrides:c.nullable().optional(),modelVisibility:e.record(e.string(),s).optional(),enabled:e.boolean().optional()}).strict().refine(e=>e.name===void 0||a(e.name),{message:u,path:[`name`]}),m=e.object({}).strict(),h=e.object({id:e.string(),definitionId:e.string(),name:e.string(),endpointOverrides:e.record(e.string(),e.string()).optional(),modelVisibility:e.record(e.string(),s).optional(),modelFilterMode:o,isDefault:e.boolean(),enabled:e.boolean(),isSentinel:e.boolean(),hasCredentials:e.boolean(),sourceRef:e.string().optional()}).strict(),g=e.object({adapterName:e.string(),providerConfigId:e.string(),isDefault:e.boolean()}).strict(),_=r.omit({$schema:!0,bindings:!0}).extend({name:e.string(),enabled:e.boolean(),bindings:e.array(g)}).strict(),v=e.enum([`ready`,`needs-setup`]),y=e.object({label:e.string(),url:e.string()}).strict(),b=e.object({name:e.string(),displayName:e.string(),description:e.string().optional(),enabled:e.boolean(),configCount:e.number(),readiness:v,supportsLogImport:e.boolean(),helpLinks:e.array(y).optional(),instructions:e.string().optional(),clientId:e.string().optional(),protocol:e.string().optional(),providerDefinitionIds:e.array(e.string()).optional()}).strict(),x={getAdapterConfig:{request:e.object({name:e.string()}).strict(),response:e.object({config:_.nullable()}).strict()},listAdapterConfigs:{request:m,response:e.object({configs:e.array(_)}).strict()},getProviderConfig:{request:e.object({id:e.string()}).strict(),response:e.object({config:h.nullable()}).strict()},listProviderConfigs:{request:e.object({enabled:e.boolean().optional()}).strict(),response:e.object({configs:e.array(h)}).strict()},listProviderConfigsByDefinition:{request:e.object({definitionId:e.string()}).strict(),response:e.object({configs:e.array(h)}).strict()},listBindings:{request:e.object({adapterName:e.string()}).strict(),response:e.object({bindings:e.array(g)}).strict()},listBindingsByConfig:{request:e.object({providerConfigId:e.string()}).strict(),response:e.object({bindings:e.array(g)}).strict()},getDefaultBinding:{request:e.object({adapterName:e.string()}).strict(),response:e.object({binding:g.nullable()}).strict()},findConfigForDefinitionAndAdapter:{request:e.object({definitionId:e.string(),adapterName:e.string()}).strict(),response:e.object({config:h.nullable()}).strict()},buildProviderContext:{request:e.object({providerConfigId:e.string()}).strict(),response:e.object({context:n.nullable()}).strict()},listAdapters:{request:m,response:e.object({adapters:e.array(b)}).strict()},getProviderDefinitionsByAdapter:{request:e.object({adapterName:e.string()}).strict(),response:e.object({definitions:e.array(l)}).strict()},createProviderConfig:{request:f,response:e.object({config:h}).strict()},updateProviderConfig:{request:e.object({id:e.string(),patch:p}).strict(),response:e.object({config:h}).strict()},setProviderConfigCredentialRefs:{request:e.object({id:e.string(),credentialRefs:d}).strict(),response:e.object({config:h}).strict()},deleteProviderConfig:{request:e.object({id:e.string()}).strict(),response:e.object({deleted:e.boolean()}).strict()},setDefaultProviderConfig:{request:e.object({id:e.string()}).strict(),response:e.object({config:h}).strict()},setModelFilterMode:{request:e.object({id:e.string(),modelFilterMode:o,preferredModel:e.string().optional()}).strict(),response:e.object({config:h}).strict()},setAdapterConfig:{request:e.object({name:e.string(),patch:e.object({displayName:e.string().optional(),description:e.string().optional(),helpLinks:e.array(y).optional(),instructions:e.string().optional(),clientId:e.string().optional(),protocol:e.string().optional(),providerDefinitionIds:e.array(e.string()).optional(),settings:r.shape.settings,enabled:e.boolean().optional()}).strict()}).strict(),response:e.object({config:_}).strict()},setAdapterEnabled:{request:e.object({name:e.string(),enabled:e.boolean()}).strict(),response:e.object({success:e.boolean()}).strict()},bind:{request:e.object({adapterName:e.string(),providerConfigId:e.string()}).strict(),response:e.object({binding:g}).strict()},unbind:{request:e.object({adapterName:e.string(),providerConfigId:e.string()}).strict(),response:m},setDefaultBinding:{request:e.object({adapterName:e.string(),providerConfigId:e.string()}).strict(),response:m},ensureReady:{request:m,response:e.object({ready:e.literal(!0)}).strict()},"providerConfig.created":h,"providerConfig.updated":h,"providerConfig.deleted":e.object({id:e.string()}).strict(),"providerConfig.defaultChanged":e.object({definitionId:e.string(),configId:e.string().nullable()}).strict(),"binding.created":g,"binding.deleted":e.object({adapterName:e.string(),providerConfigId:e.string()}).strict(),"binding.defaultChanged":e.object({adapterName:e.string(),providerConfigId:e.string()}).strict(),ready:m,"adapter.registered":e.object({adapterName:e.string(),displayName:e.string(),packageName:e.string(),enabled:e.boolean(),initialized:e.boolean(),providerDefinitionIds:e.array(e.string())}).strict()},S=t(`adapterSubsystem`,x),C=S.subjects;export{x as a,h as c,f as d,v as i,d as l,C as n,g as o,_ as r,b as s,S as t,p as u};
@@ -1 +0,0 @@
1
- import{t as e}from"./schemas-CPI00yvh.mjs";import{createBusNamespace as t}from"@makaio/framework/core";const n=t(`kernel:cli`,e),r=n.subjects;export{r as n,n as t};
@@ -1 +0,0 @@
1
- import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{ExecutionTargetSubjects as t}from"./services/execution-target/namespace.mjs";import{MakaioBus as n}from"@makaio/framework/bus";import{AdapterSubjects as r,AgentSubjects as i,DEFAULT_CONSTRAINTS as a,SessionSubjects as o,SpawnSubagentRpcRequestSchema as s,SubagentConfigSchema as c,SubagentError as l,SubagentErrorCode as u,SubagentSubjects as d,dep as f,extensionToken as p}from"@makaio/framework/contracts";import{BaseService as m}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as h}from"@makaio/framework/services/adapter-runtime";import{activateProviderContext as g,buildProviderContext as _}from"@makaio/framework/services/provider-context";function v(e,t){return`${e}:${t}`}function y(e,t){return e?.authenticated!==!0||!e.id?!1:e.kind===`workflow-execution`?!0:t.size===0?!1:t.has(v(e.kind,e.id))}var b=class{maxSize;items=[];constructor(e=50){this.maxSize=e}push(e){this.items.push(e),this.items.length>this.maxSize&&this.items.shift()}toArray(){return[...this.items]}get length(){return this.items.length}clear(){this.items=[]}};const x=[`completed`,`failed`,`cancelled`];function S(e){return x.includes(e)}var C=class{constraints;subagents=new Map;awaiters=new Map;constructor(e){this.constraints=e}track(e){let t=Date.now(),n={subagentId:e.subagentId,parentSessionId:e.parentSessionId,childSessionId:void 0,status:`spawning`,config:e.config,depth:e.depth,progressUpdates:new b(50),startTime:t,lastActivityAt:t};return this.subagents.set(e.subagentId,n),n}setChildSessionId(e,t){let n=this.subagents.get(e);n&&(n.childSessionId=t,n.lastActivityAt=Date.now(),n.status===`spawning`&&(n.status=`running`))}get(e){return this.subagents.get(e)}getAllNonTerminal(){let e=[];for(let t of this.subagents.values())S(t.status)||e.push(t);return e}countActiveBySession(e){let t=0;for(let n of this.subagents.values())n.parentSessionId===e&&!S(n.status)&&t++;return t}countTotalActive(){let e=0;for(let t of this.subagents.values())S(t.status)||e++;return e}updateStatus(e,t){let n=this.subagents.get(e);if(!n)return;let r=Date.now();n.status=t,n.lastActivityAt=r,S(t)&&(n.endTime=r)}addProgress(e,t){let n=this.subagents.get(e);n&&(n.progressUpdates.push(t),n.lastActivityAt=Date.now())}setPendingRequest(e,t){let n=this.subagents.get(e);if(!n)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(n.pendingRequest)throw new l(u.REQUEST_PENDING,`Cannot call request_input while another request is pending`);n.pendingRequest=t,n.status=`waiting_input`,n.lastActivityAt=Date.now()}resolvePendingRequest(e,t){let n=this.subagents.get(e);n?.pendingRequest&&(n.pendingRequest.resolver(t),n.pendingRequest=void 0,n.lastActivityAt=Date.now(),n.status===`waiting_input`&&(n.status=`running`))}markCompleted(e,t,n,r){let i=this.subagents.get(e);if(!i)throw new l(u.NOT_FOUND,`Subagent ${e} not found`);if(S(i.status))throw new l(u.ALREADY_TERMINAL,`Subagent already in terminal state: ${i.status}`);let a=Date.now();i.status=`completed`,i.result=t,i.summary=n,i.completionSource=r,i.endTime=a,i.lastActivityAt=a,this.resolveAwaiters(e)}markFailed(e,t){let n=this.subagents.get(e);if(!n||S(n.status))return;let r=Date.now();n.status=`failed`,n.error=t,n.endTime=r,n.lastActivityAt=r,this.resolveAwaiters(e)}markCancelled(e){let t=this.subagents.get(e);if(!t||S(t.status))return!1;let n=Date.now();return t.status=`cancelled`,t.endTime=n,t.lastActivityAt=n,t.pendingRequest&&=(t.pendingRequest.resolver(null),void 0),this.resolveAwaiters(e),!0}addAwaiter(e,t){let n=this.awaiters.get(e)??[];n.push(t),this.awaiters.set(e,n)}removeAwaiter(e,t){let n=this.awaiters.get(e);if(!n)return!1;let r=n.indexOf(t);return r===-1?!1:(n.splice(r,1),n.length===0&&this.awaiters.delete(e),!0)}resolveAwaiters(e){let t=this.subagents.get(e),n=this.awaiters.get(e);if(!n||!t)return;let r={status:t.status,result:t.result,error:t.error,completionSource:t.completionSource};for(let e of n)e(r);this.awaiters.delete(e)}cleanup(){let e=Date.now(),t=0;for(let[n,r]of this.subagents)S(r.status)&&r.endTime&&e-r.endTime>this.constraints.stateRetentionMs&&(this.subagents.delete(n),t++);return t}sweepHung(e){if(e<=0)return 0;let t=Date.now(),n=0;for(let r of this.subagents.values())S(r.status)||r.status!==`waiting_input`&&r.status!==`hung`&&t-r.lastActivityAt>=e&&(r.status=`hung`,r.lastActivityAt=t,n++);return n}};async function w(e,t,n){let r=n?.trim();if(r)return r;let{session:i}=await e.request(o.get,{sessionId:t});return(i?.agents.find(e=>e.agentId===i.leadAgentId)??i?.agents[0])?.adapterName?.trim()}function T(e,t){let n=e.manager.get(t.subagentId);if(!n)throw Error(`Subagent not found: ${t.subagentId}`);return{status:n.status,childSessionId:n.childSessionId,pendingRequest:n.pendingRequest?{messageId:n.pendingRequest.messageId,question:n.pendingRequest.question,context:n.pendingRequest.context}:void 0,progress:n.progressUpdates.toArray(),result:n.result,summary:n.summary,error:n.error}}async function E(e,t){let{parentSessionId:n,config:r,depth:i,spawningToolCallId:a}=t,{constraints:o}=e.manager,s=Math.min(r.maxDepth??o.maxDepth,o.maxDepth);if(i>s)throw new l(u.DEPTH_EXCEEDED,`Maximum subagent depth (${s}) exceeded`);if(e.manager.countActiveBySession(n)>=o.maxConcurrentPerSession)throw new l(u.SESSION_LIMIT,`Maximum concurrent subagents per session (${o.maxConcurrentPerSession}) reached`);if(e.manager.countTotalActive()>=o.maxTotalActive)throw new l(u.GLOBAL_LIMIT,`Maximum total active subagents (${o.maxTotalActive}) reached`);let c=await w(e.bus,n,r.adapterName);if(!c)throw new l(u.ADAPTER_NOT_ALLOWED,`adapterName is required for subagent spawn when parent session has no inheritable adapter`);if(o.allowedAdapters.length>0&&!o.allowedAdapters.includes(c))throw new l(u.ADAPTER_NOT_ALLOWED,`Adapter '${c}' is not allowed`);if(r.model&&o.allowedModels.length>0&&!o.allowedModels.includes(r.model))throw new l(u.MODEL_NOT_ALLOWED,`Model '${r.model}' is not allowed`);let f={...r,adapterName:c},p=crypto.randomUUID();return e.manager.track({subagentId:p,parentSessionId:n,config:f,depth:i}),await e.bus.emit(d.spawned,{subagentId:p,parentSessionId:n,task:f.task,config:f,depth:i,...a!==void 0&&{spawningToolCallId:a}}),{subagentId:p,status:`spawning`}}async function D(e,t){let{subagentId:n,timeoutMs:r}=t,i=e.manager.get(n);if(!i)throw Error(`Subagent not found: ${n}`);if([`completed`,`failed`,`cancelled`].includes(i.status))return{status:i.status,result:i.result,error:i.error,completionSource:i.completionSource};if(i.status===`waiting_input`&&i.pendingRequest)return{status:`waiting_input`,pendingRequest:{messageId:i.pendingRequest.messageId,question:i.pendingRequest.question,context:i.pendingRequest.context}};let a=r??e.manager.constraints.defaultAwaitTimeoutMs;return new Promise(t=>{let r=!1,i,o=e=>{r||(r=!0,i&&clearTimeout(i),t({status:e.status,result:e.result,error:e.error,pendingRequest:e.pendingRequest,completionSource:e.completionSource}))};e.manager.addAwaiter(n,o),a>0&&(i=setTimeout(()=>{r||(r=!0,e.manager.removeAwaiter(n,o),t({status:`timeout`}))},a))})}async function O(e,t){let{subagentId:n,content:r,inResponseTo:i}=t,a=e.manager.get(n);if(!a)throw Error(`Subagent not found: ${n}`);let o=!1;return i&&a.pendingRequest?.messageId===i&&(e.manager.resolvePendingRequest(n,r),o=!0),await e.bus.emit(d.toChild,{subagentId:n,messageId:crypto.randomUUID(),content:r,inResponseTo:i}),{sent:!0,resolvedPending:o}}async function k(e,t){let{subagentId:n,reason:r}=t,i=e.manager.markCancelled(n);return i&&await e.bus.emit(d.cancelled,{subagentId:n,reason:r??`Killed by parent`}),{killed:i}}async function A(e,t){let{subagentId:n,update:r,percentComplete:i}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let a=i===void 0?r:`[${i}%] ${r}`;return e.manager.addProgress(n,a),await e.bus.emit(d.toParent,{subagentId:n,messageId:crypto.randomUUID(),type:`progress`,content:a}),{reported:!0}}async function j(e,t){let{subagentId:n,question:r,context:i,timeoutMs:a}=t;if(!e.manager.get(n))throw Error(`Subagent not found: ${n}`);let o=crypto.randomUUID(),s=a??e.manager.constraints.defaultRequestTimeoutMs;return await e.bus.emit(d.toParent,{subagentId:n,messageId:o,type:`request_input`,content:r,context:i}),new Promise(t=>{let a=!1,c;e.manager.setPendingRequest(n,{messageId:o,question:r,context:i,resolver:e=>{a||(a=!0,c&&clearTimeout(c),t(e===null?{responded:!1,timedOut:!0}:{responded:!0,response:e,timedOut:!1}))}}),s>0&&(c=setTimeout(()=>{a||e.manager.resolvePendingRequest(n,null)},s))})}async function M(e,t){let{subagentId:n,result:r,summary:i}=t;return e.manager.markCompleted(n,r,i,`tool`),await e.bus.emit(d.completed,{subagentId:n,success:!0,result:i?`${i}\n\n${r}`:r}),{completed:!0}}function N(e,t){let{parentSessionId:n}=t;return{subagents:e.manager.getAllNonTerminal().filter(e=>e.parentSessionId===n).map(e=>({subagentId:e.subagentId,task:e.config.task,status:e.status}))}}const P={id:`system:local`,name:`Local`,description:`Default local process execution`,type:`local`,scope:`default`,enabled:!0,createdAt:Date.now(),updatedAt:Date.now()};var F=class extends m{machineId;delegationAllowSet;manager;pendingChildSessionClose=new Set;constructor(e=n,t=a,r,i=new Set){super(e),this.machineId=r,this.delegationAllowSet=i,this.manager=new C(t)}grantDelegation(e,t){this.delegationAllowSet.add(`${e}:${t}`)}revokeDelegation(e,t){this.delegationAllowSet.delete(`${e}:${t}`)}onInit(){this.registerHandler(d.spawned,async e=>{this.handleSpawned(e.payload).catch(e=>{console.error(`[SubagentService] handleSpawned error:`,e)})}),this.registerHandler(d.execute,async e=>{if(!this.isRemoteDelegationAllowed(e))return;let t=await this.handleExecute(e.payload);e.setResult(t)}),this.registerHandler(d.toChild,async e=>{await this.handleToChild(e.payload)}),this.registerHandler(d.completed,async e=>{await this.handleCompleted(e.payload.subagentId)}),this.registerHandler(d.cancelled,async e=>{await this.handleCancelled(e.payload.subagentId)}),this.registerHandler(r.session.closed,e=>{this.handleAdapterSessionClosed(e.payload.sessionId)}),this.registerHandler(i.complete,async e=>{await this.handleAgentComplete(e.payload)}),this.registerRpcHandlers(),this.wirePeriodicSweep()}wirePeriodicSweep(){let{inactivityTimeoutMs:e,sweepIntervalMs:t}=this.manager.constraints;if(t<=0)return;let n=setInterval(()=>{let t=this.manager.sweepHung(e);t>0&&console.warn(`[SubagentService] Swept ${t} hung subagent(s) due to inactivity`),this.manager.cleanup()},t);this.addCleanup(()=>clearInterval(n))}registerRpcHandlers(){let e={manager:this.manager,bus:this.bus};this.registerHandler(d.getStatus,t=>{let n=T(e,t.payload);t.setResult(n)}),this.registerHandler(d.spawn,async t=>{if(!this.isRemoteDelegationAllowed(t))return;let n=await E(e,s.parse(t.payload));t.setResult(n)}),this.registerHandler(d.await,async t=>{let n=await D(e,t.payload);t.setResult(n)}),this.registerHandler(d.send,async t=>{let n=await O(e,t.payload);t.setResult(n)}),this.registerHandler(d.kill,async t=>{let n=await k(e,t.payload);t.setResult(n)}),this.registerHandler(d.reportProgress,async t=>{let n=await A(e,t.payload);t.setResult(n)}),this.registerHandler(d.requestInput,async t=>{let n=await j(e,t.payload);t.setResult(n)}),this.registerHandler(d.completeTask,async t=>{let n=await M(e,t.payload);t.setResult(n)}),this.registerHandler(d.listBySession,t=>{let n=N(e,t.payload);t.setResult(n)})}onDestroy(){this.pendingChildSessionClose.clear()}async handleSpawned(e){let{subagentId:n,parentSessionId:r,task:i,spawningToolCallId:a}=e,o=c.parse({...e.config,task:i}),s=o.adapterName?.trim();if(!s)return this.failSpawn(n,r,`adapter_start`,`Subagent spawn requires a non-empty adapterName`);this.manager.get(n)||this.manager.track({subagentId:n,parentSessionId:r,config:o,depth:e.depth??1});let l,u;try{u=await this.buildExecutionTargetResolutionParams(r,o.executionTargetId);let e=await this.bus.requestOptional(t.resolve,u),i;if(e.handled)i=e.data.executionTarget;else if(u.executionTargetId!=null)throw Error(`Execution target resolver unavailable for explicit target '${u.executionTargetId}'`);else i=P;if(i.type!==`local`)return this.failSpawn(n,r,`adapter_start`,`Execution target type '${i.type}' is not yet supported for subagents`);l=u.executionTargetId??void 0}catch(e){return this.failSpawn(n,r,`adapter_start`,e)}let d;try{d=await this.createChildSessionForSpawn(n,r,o,l,u,a)}catch(e){return this.failSpawn(n,r,`session_create`,e)}let f=this.manager.get(n);if(!(f&&this.isTerminalSubagentStatus(f.status)))try{await this.startAdapterForSubagent(s,o,d,i)}catch(e){return this.failSpawn(n,r,`adapter_start`,e)}}async createChildSessionForSpawn(e,t,n,r,i,a){let{sessionId:s}=await this.bus.request(o.create,this.buildChildSessionCreatePayload(t,n,r,a));return this.manager.setChildSessionId(e,s),this.pendingChildSessionClose.has(e)&&await this.closeChildSession(e),s}async startAdapterForSubagent(e,t,n,i){let{adapterId:a}=await this.bus.request(h.resolveId,{adapterName:e,...this.machineId!==void 0&&{machineId:this.machineId}}),o=t.providerContext??(t.providerConfigId?await _(this.bus,t.providerConfigId):void 0);o!==void 0&&await g(this.bus,o);let s=await this.bus.request(r.startAgent,{adapterId:a,role:`lead`,...o!==void 0&&{providerContext:o},sessionId:n,initialMessage:i,model:t.model,reasoningEffort:t.reasoningEffort,systemPrompt:t.systemPrompt,responseSchema:t.responseSchema,allowedTools:t.tools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,...t.harnessId!==void 0&&{harnessId:t.harnessId}});if(!s||s.success!==!0)throw Error(s?.message??`Adapter start failed`)}async failSpawn(e,t,n,r){let i=r instanceof Error?r.message:String(r);return this.manager.markFailed(e,i),await this.emitExecutionFailed(e,t,n,r),i}async buildExecutionTargetResolutionParams(t,n){if(n!==void 0)return{executionTargetId:n};let{session:r}=await this.bus.request(e.get,{sessionId:t});if(!r)throw Error(`Parent session not found: ${t}`);return{executionTargetId:r.executionTargetId}}buildChildSessionCreatePayload(e,t,n,r){return{branchKind:`subagent`,parentSessionId:e,contextInheritance:t.contextMode===`fork`?`parent-history`:`none`,...n!==void 0&&{executionTargetId:n},...r!==void 0&&{spawningToolCallId:r}}}async handleExecute(e){let t=c.parse({...e.config,task:e.task});this.manager.track({subagentId:e.subagentId,parentSessionId:e.parentSessionId,config:t,depth:e.depth});let n=await this.handleSpawned({subagentId:e.subagentId,parentSessionId:e.parentSessionId,task:e.task,config:t,depth:e.depth});return n?{success:!1,error:n}:{success:!0}}async handleToChild(e){let{subagentId:t,content:n}=e,r=this.manager.get(t);if(!r){console.warn(`[SubagentService] No subagent found: ${t}`);return}if(!r.childSessionId){console.warn(`[SubagentService] No child session for subagent: ${t}`);return}try{await this.bus.request(o.sendMessage,{sessionId:r.childSessionId,message:n,source:`system`})}catch(e){console.error(`[SubagentService] Failed to route message to child session:`,e)}}async handleCompleted(e){await this.closeChildSession(e)}async handleCancelled(e){await this.closeChildSession(e)}async closeChildSession(e){let t=this.manager.get(e);if(t){if(!t.childSessionId){this.pendingChildSessionClose.add(e);return}this.pendingChildSessionClose.delete(e);try{await this.bus.request(o.close,{sessionId:t.childSessionId})}catch(t){console.error(`[SubagentService] Failed to close child session for subagent ${e}:`,t)}}}isTerminalSubagentStatus(e){return e===`completed`||e===`failed`||e===`cancelled`}handleAdapterSessionClosed(e){for(let t of this.manager.getAllNonTerminal())if(t.childSessionId===e){console.warn(`[SubagentService] Adapter session closed for subagent ${t.subagentId}: ${e}`),this.manager.markFailed(t.subagentId,`adapter-session-closed`);return}}async handleAgentComplete(e){let{sessionId:t,outcome:n,message:r,error:i}=e;if(t)for(let e of this.manager.getAllNonTerminal()){if(e.childSessionId!==t)continue;if((e.config.completion??`tool`)!==`turn`||e.status===`waiting_input`)return;let a=n??`completed`;if(a===`completed`){try{this.manager.markCompleted(e.subagentId,r??``,void 0,`turn`)}catch{return}await this.bus.emit(d.completed,{subagentId:e.subagentId,success:!0,result:r??``})}else if(a===`error`){let t=i??`agent turn error`;this.manager.markFailed(e.subagentId,t),await this.bus.emit(d.completed,{subagentId:e.subagentId,success:!1,error:t})}return}}isRemoteDelegationAllowed(e){return e.origin.local||y(e.transport?.peer,this.delegationAllowSet)}async emitExecutionFailed(e,t,n,r){let i=r instanceof Error?r.message:String(r);await this.bus.emit(d.executionFailed,{subagentId:e,parentSessionId:t,phase:n,error:i}).catch(e=>{console.error(`[SubagentService] Failed to emit executionFailed:`,e)})}};const I=p(`subagent-service`),L={name:I.name,displayName:`Subagent Service`,version:`0.1.0`,critical:!0,surface:`headless`,dependencies:[f(`session`)],create:e=>new F(e.bus,a,e.machineId)};export{y as a,C as i,L as n,F as r,I as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./credential-ref-YWQQENEo.mjs";import{r as t,t as n}from"./definition-C-GVz7uw.mjs";import{z as r}from"zod";const i=r.object({providerConfigId:r.string(),definitionId:r.string(),endpointOverrides:n.optional(),credentialRefs:r.record(r.string(),e),credentialEnvVars:r.record(r.string(),r.string()).optional(),ambientCredentialEnvVars:r.array(r.string()).optional(),capabilities:t.optional()});export{i as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./namespace-DBHwyhME.mjs";import{CredentialSubjects as t}from"@makaio/framework/contracts";async function n(t,n){let{context:r}=await t.request(e.buildProviderContext,{providerConfigId:n});if(!r)throw Error(`[buildProviderContext] ProviderConfig '${n}' not found`);return r}function r(e){return{providerConfigId:e.providerConfigId,definitionId:e.definitionId,credentialRefs:e.credentialRefs}}async function i(e,n){await e.request(t.activate,r(n))}async function a(e,n){try{if(!(await e.requestOptional(t.activate,r(n))).handled)return}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(`[activateProviderContext] credential.activate handler failed:`,t)}}async function o(e,t){await i(e,t)}export{o as n,n as r,a as t};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./json-value-DmU8ibo_.mjs";import{a as n,s as ee}from"./visibility-Cb62p9bv.mjs";import"./credential-ref-YWQQENEo.mjs";import{c as te,f as r,i as ne,o as i,p as a,r as re,s as ie}from"./shared-BVW-3Dhy.mjs";import{a as ae,f as oe,i as se,n as ce,r as o,t as le,u as ue}from"./compression-C5JAWdgZ.mjs";import{t as s}from"./provider-context-CqMgPOWF.mjs";import{t as de}from"./schemas-XeIBqwvE.mjs";import{r as fe}from"./profile-BMBXUqqh.mjs";import{i as c}from"./account-identity-C7Kx_ieU.mjs";import{SessionLineageSchema as pe}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as l}from"zod";import{localSubject as me,observability as u}from"@makaio/framework/core";const d=l.object({adapterId:l.string(),adapterName:l.string()}),he=l.object({cwd:l.string().optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional(),systemPrompt:r.optional()}),ge={request:l.object({adapterName:l.string().optional(),adapterId:l.string().optional()}).refine(e=>e.adapterName||e.adapterId,{message:`Either adapterName or adapterId must be provided`}),response:l.object({capabilities:l.array(l.string()),nativeTools:l.array(l.string())})},f=l.enum([`lead`,`member`]),p=l.enum([`fork`,`branch`,`subagent`,`compress`,`rewrite`,`coordinator`,`aside`]),m=l.enum([`parent-history`,`none`]),h=l.enum([`discovered`,`imported`,`tracking`]),g=l.object({sessionId:l.string(),title:l.string().nullable(),forkPointMessageId:l.string().nullable(),branchKind:p.nullable(),messageCount:l.number(),hasChildren:l.boolean(),spawningToolCallId:l.string().optional()}),_=l.object({fromMessageId:l.string(),toMessageId:l.string(),policy:l.enum([`verbatim`,`summarize`,`exclude`]),stripReasoning:l.boolean().optional(),stripToolOutputs:l.boolean().optional(),overrides:l.record(l.string(),l.literal(`exclude`)).optional(),summaryText:l.string().optional()}),v=l.object({removedMessageIds:l.array(l.string()).optional(),appliedPipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()})).optional(),segments:l.array(_).optional()}),_e=l.object({parentSessionId:l.string(),childSessionId:l.string(),summary:l.string().optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),ve=l.object({success:l.boolean(),handoff:l.string().optional()}),ye=l.object({parentSessionId:l.string(),childSessionId:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),be=l.object({success:l.boolean()}),xe=l.object({sessionId:l.string()}),Se=l.object({children:l.array(g)}),Ce=l.object({parentSessionId:l.string(),childSessionId:l.string(),reason:l.string()}),we=l.object({parentSessionId:l.string(),childSessionId:l.string(),forkPoint:l.string().optional()}),Te=l.object({parentSessionId:l.string(),childSessionId:l.string()}),Ee=l.object({parentSessionId:l.string(),childSessionId:l.string(),handoff:l.string()}),De=l.object({sessionId:l.string(),parentSessionId:l.string().optional()}),Oe=l.object({parentSessionId:l.string(),childSessionId:l.string(),result:l.unknown()}),ke=l.object({sessionId:l.string(),reason:l.string(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional()}),Ae=l.object({sessionId:l.string(),pipeline:l.array(l.object({actionId:l.string(),options:l.record(l.string(),l.unknown()).optional()}))}),je=l.object({eventId:l.string(),contextJson:l.record(l.string(),l.unknown()),tokensBefore:l.number(),tokensAfter:l.number().optional()}),Me=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),kind:p,forkPointMessageId:l.string().optional(),transforms:v.optional()}),Ne=l.object({sessionId:l.string(),childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()}),Pe=l.object({sessionId:l.string(),summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()}),y=l.object({sessionId:l.string(),parentSessionId:l.string().nullable(),branchKind:p.nullable(),createdAt:l.number(),originWindowId:l.string().optional()}),b=l.object({sessionId:l.string(),changedProperties:l.array(l.string())}),Fe={merge:{request:_e,response:ve},abandon:{request:ye,response:be},getChildren:{request:xe,response:Se},forking:Ce,forked:we,merging:Te,merged:Ee,abandoned:De,childCompleted:Oe,compressionRequested:ke,"branch.created":Me,"branch.merged":Ne,squash:Pe,created:y,updated:b,compress:{request:Ae,response:je}},x=l.enum([`adapter-unsupported`,`adapter-mismatch`,`no-adapter-session`,`missing-machine-id`,`machine-mismatch`,`cwd-mismatch`,`transforms-present`,`compression-present`,`connector-swap`,`mid-history-unsupported`,`hybrid-imported-orchestrated`,`native-attempt-failed`,`agent-already-started`,`fork-point-unresolvable`]),S=l.discriminatedUnion(`kind`,[l.object({kind:l.literal(`native`)}),l.object({kind:l.literal(`degrade`),reason:x}),l.object({kind:l.literal(`foreign`),machineId:l.string()})]),Ie=l.object({sourceSessionId:l.string(),sourceAdapterSessionId:l.string(),forkPointMessageId:l.string().optional(),targetWorkingDirectory:l.string().optional()}),C=l.string().regex(/^[\u0020-\u007e]*$/u,`Correlation identifiers must contain only printable ASCII characters`).trim().min(1).max(512),Le=l.object({sessionId:C.optional(),turnId:C.optional(),messageId:C.optional(),executionId:C.optional(),frameId:C.optional()}).strict(),Re=[`auto`,`systemPrompt`,`fullPrefix`],w=l.object({messageHistory:l.array(te).optional(),hasNewTransforms:l.boolean().optional(),hasCompression:l.boolean().optional(),extractedContext:l.unknown().optional(),isFirstTurn:l.boolean().optional(),hasConnectorSwap:l.boolean().optional(),cacheStrategy:l.enum(Re).optional(),turnContext:l.record(l.string(),e).optional(),requestCorrelation:Le.optional(),nativeLocality:S.optional(),nativeFork:Ie.optional()}),T=ne,E=l.enum([`user`,`assistant`]),D=l.enum([`voice`,`text`,`compact`]),O=l.object({messageId:l.string(),turnId:l.string().nullable(),sessionId:l.string(),role:E,contentText:l.string(),blocks:l.array(T),agentId:l.string().optional(),adapterSessionId:l.string().optional(),adapterMessageId:l.string().optional(),timestamp:l.number(),editOf:l.string().optional(),origin:D.optional()}),k=l.enum([`active`,`completed`,`error`]),A=l.object({inputTokens:l.number(),outputTokens:l.number(),cost:l.number().optional()}),j=l.object({total:A,byAgent:l.record(l.string(),A).optional()}),M=l.object({source:l.enum([`user`,`extension`,`system`]),sourceId:l.string().optional()}),N=l.object({turnId:l.string(),sessionId:l.string(),turnNumber:l.number().int().min(1),startedAt:l.number(),completedAt:l.number().optional(),status:k,error:l.string().optional(),usage:j.optional(),initiator:M.optional()}),P=l.enum([`sent`,`acknowledged`,`completed`]),ze=l.object({messageId:l.string(),agentId:l.string(),status:P,timestamp:l.number(),error:l.string().optional()}),F=l.enum([`idle`,`active`,`dead`,`disposed`]),I=l.object({agentId:l.string(),adapterId:l.string(),adapterName:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional(),model:l.string().optional(),cwd:l.string().optional(),allowedDirectories:l.array(l.string()).optional(),providerConfigId:l.string().optional(),personaId:l.string().optional(),profileId:l.string().optional(),harnessId:l.string().optional(),clientId:l.string().optional(),compressionMode:le.optional(),role:f,status:F,createdAt:l.number(),lastActivityAt:l.number()}),L=l.record(l.string(),e),R=l.object({sessionId:l.string(),createdAt:l.number(),lastActivityAt:l.number(),agents:l.array(I),status:l.enum([`active`,`closed`,`archived`,`discovered`]),leadAgentId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:m.optional(),rootSessionId:l.string().optional(),forkPointMessageId:l.string().optional(),branchKind:p.optional(),adapterName:l.string().optional(),adapterSessionId:l.string().optional(),adapterId:l.string().optional(),clientId:l.string().optional(),clientAccountId:l.string().optional(),lastClientIdentityObservation:c.optional(),isOrchestrated:l.boolean().optional(),title:l.string().optional(),summary:l.string().optional(),summaryUpdatedAt:l.number().optional(),isImported:l.boolean().optional(),forkTransforms:v.optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),spawningToolCallId:l.string().optional(),approvalPolicyOverride:de.nullable().optional(),metadata:L.optional(),source:l.string().optional(),parentExternalSessionId:l.string().optional(),logFilePath:l.string().optional(),discoveredAt:l.number().optional(),importStatus:h.optional(),isSidechain:l.boolean().optional(),machineId:l.string().nullable().optional()}),z=l.object({messageCount:l.number(),firstUserMessage:l.string().nullable()}),B=R.extend({preview:z.optional()}),V=l.enum([`live`,`backfill`]),H=l.object({sessionId:l.string(),turnId:l.string(),turnNumber:l.number().int().min(1)}),U=H.extend({messageId:l.string()}),W=H.extend({success:l.boolean(),error:l.string().optional(),usage:j.optional(),initiator:M.optional(),ingestionMarker:V.optional()}),Be=se.safeExtend({kind:l.string().regex(/^(?!(?:adapter|canonical-model)$).+$/)}),Ve=l.union([o,ce,Be]),He=o.extend({providerContext:s.optional()}),Ue=l.object({sessionId:l.string(),agent:He,initialMessage:i.optional(),role:l.enum([`lead`,`member`]).optional()}),We=l.object({agentId:l.string(),adapterSessionId:l.string().optional(),role:l.enum([`lead`,`member`]),messageId:l.string().optional(),turnId:l.string().optional()}),G={sendMessage:{request:l.object({sessionId:l.string(),message:i,agent:Ve.optional(),agentIds:l.union([l.array(l.string()),l.literal(`all`)]).optional(),deliveryMode:l.enum([`enqueue`]).optional(),turnId:l.string().optional(),sessionContext:w.optional(),responseSchema:a.optional(),source:l.enum([`extension`,`user`,`system`]).optional(),extensionId:l.string().optional(),originWindowId:l.string().optional(),skipConnectorSwapWarning:l.boolean().optional(),origin:D.optional()}),response:l.object({messageId:l.string(),turnId:l.string(),sessionId:l.string()})},"agent.attach":{request:l.object({sessionId:l.string(),agent:ae,initialMessage:i.optional(),role:l.enum([`lead`,`member`]).optional()}),response:l.object({agentId:l.string(),adapterSessionId:l.string().optional(),role:l.enum([`lead`,`member`]),messageId:l.string().optional(),turnId:l.string().optional()})},"agent.attachResolved":me({request:Ue,response:We}),"turn.started":H.extend({messageId:l.string(),agentIds:l.array(l.string()),initiator:M.optional(),ingestionMarker:V.optional()}),"turn.completed":W,"turn.await":{request:l.object({sessionId:l.string(),turnId:l.string(),timeoutMs:l.number().int().positive()}),response:l.object({completion:W})},"user_message.sent":U.extend({content:i,agentIds:l.array(l.string()),source:l.enum([`extension`,`user`,`system`]).optional(),origin:D.optional()}),"user_message.acknowledged":U.extend({agentId:l.string()}),"user_message.completed":U.extend({agentId:l.string(),outcome:ie,supersededBy:l.string().optional(),mergedInto:l.string().optional(),error:l.string().optional()}),fork:{request:l.object({sourceSessionId:l.string(),fromMessageId:l.string().optional(),name:l.string().optional(),branchKind:l.enum([`fork`,`branch`,`aside`]).optional(),transforms:v.optional(),targetWorkingDirectory:l.string().optional(),metadata:L.optional(),existingSessionId:l.string().optional()}),response:l.object({sessionId:l.string()})}},Ge=l.discriminatedUnion(`success`,[l.object({agentId:l.string(),adapterId:l.string(),success:l.literal(!0)}),l.object({agentId:l.string(),adapterId:l.string(),success:l.literal(!1),error:l.string()})]),K=l.object({sessionId:l.string().optional(),parentSessionId:l.string().optional(),contextInheritance:m.optional(),forkPointMessageId:l.string().optional(),branchKind:p.optional(),forkTransforms:v.optional(),title:l.string().optional(),targetWorkingDirectory:l.string().optional(),executionTargetId:l.string().optional(),metadata:L.optional(),spawningToolCallId:l.string().optional(),originWindowId:l.string().optional(),machineId:l.string().nullable().optional()});function Ke(e,t){e.spawningToolCallId&&e.branchKind!==`subagent`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`spawningToolCallId`],message:`spawningToolCallId is only valid for subagent sessions`})}const qe={list:{request:u.schema(l.object({status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:l.number().int().min(1).optional(),offset:u.hidden(l.number().int().min(0).optional()),includePreview:l.boolean().optional(),executionTargetId:l.string().optional()}),{traceAll:!0}),response:l.object({sessions:l.array(B),total:l.number()})},search:{request:l.object({query:l.string(),limit:l.number().int().min(1).optional(),status:l.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:l.boolean().optional()}),response:l.object({sessions:l.array(B),total:l.number()})},get:{request:l.object({sessionId:l.string()}),response:l.object({session:R.nullable()})},create:{request:K.superRefine(Ke),response:l.object({sessionId:l.string()})},close:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},resume:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},restartAgents:{request:l.object({sessionId:l.string(),machineId:l.string().optional()}),response:l.object({sessionId:l.string(),results:l.array(Ge)})},archive:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean()})},purge:{request:l.object({sessionId:l.string()}),response:l.object({success:l.boolean(),eventsDeleted:l.number().optional(),error:l.string().optional()})},update:{request:l.object({sessionId:l.string(),executionTargetId:l.string().nullable().optional(),approvalPolicyOverride:de.nullable().optional(),title:l.string().optional(),metadata:L.nullable().optional()}),response:l.object({success:l.boolean()})},getByAdapterSessionId:{request:l.object({adapterSessionId:l.string()}),response:l.object({session:R.nullable()})},getStatusCounts:{request:l.object({}),response:l.object({all:l.number(),active:l.number(),closed:l.number(),archived:l.number(),discovered:l.number()})}},q=l.object({sessionId:l.string(),eventId:l.string(),timestamp:l.number()}),Je=l.discriminatedUnion(`type`,[q.extend({type:l.literal(`agent.added`),payload:l.object({sessionId:l.string(),adapterSessionId:l.string().optional(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:l.enum([`lead`,`member`]).optional(),model:l.string().optional(),cwd:l.string().optional()})}),q.extend({type:l.literal(`user_message.sent`),payload:G[`user_message.sent`]}),q.extend({type:l.literal(`user_message.acknowledged`),payload:G[`user_message.acknowledged`]}),q.extend({type:l.literal(`user_message.completed`),payload:G[`user_message.completed`]}),q.extend({type:l.literal(`turn.started`),payload:G[`turn.started`]}),q.extend({type:l.literal(`turn.completed`),payload:G[`turn.completed`]}),q.extend({type:l.literal(`message`),payload:l.object({messageId:l.string(),turnId:l.string().nullable(),role:l.enum([`user`,`assistant`])})}),q.extend({type:l.literal(`branch.created`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),kind:p,forkPointMessageId:l.string().optional()})}),q.extend({type:l.literal(`branch.merged`),payload:l.object({childSessionId:l.string(),parentSessionId:l.string(),resultJson:l.string().optional(),resultMessageId:l.string().optional()})}),q.extend({type:l.literal(`squash`),payload:l.object({summaryJson:l.string(),tokensBefore:l.number().optional(),tokensAfter:l.number().optional(),compressedMessageIds:l.array(l.string()).optional()})}),q.extend({type:l.literal(`locality.degraded`),payload:l.discriminatedUnion(`verdictKind`,[l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`degrade`),reason:x,agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()}),l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`foreign`),foreignMachineId:l.string(),agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()})])})]),J=[`message`,`agent.added`,`turn.started`,`turn.completed`,`user_message.sent`,`user_message.acknowledged`,`user_message.completed`,`branch.created`,`branch.merged`,`squash`,`locality.degraded`],Ye=J,Xe=q.extend({type:l.string().refine(e=>!J.includes(e),{message:`Plugin session event type must not shadow a core event type.`}),payload:l.record(l.string(),l.unknown())}),Y=l.union([Je,Xe]),Ze=l.string(),Qe=l.object({sessionId:l.string().min(1),clientId:l.string().min(1),previousClientAccountId:l.string().min(1).nullable(),clientAccountId:l.string().min(1),source:l.string().min(1),observedAt:l.number().int().finite().nonnegative(),lastClientIdentityObservation:c}),$e=l.object({sessionId:l.string(),importStatus:h}),et={"agent.added":l.object({sessionId:l.string(),adapterSessionId:l.string().optional(),agentId:l.string(),adapterId:l.string(),adapterName:l.string(),role:f.optional(),model:l.string().optional(),cwd:l.string().optional()}),"agent.removed":l.object({sessionId:l.string(),agentId:l.string()}),closed:l.object({sessionId:l.string(),reason:l.string().optional()}),resumed:l.object({sessionId:l.string()}),archived:l.object({sessionId:l.string()}),purged:l.object({sessionId:l.string()}),compressed:l.object({sessionId:l.string(),eventId:l.string()}),"clientAccount.changed":Qe,"connectorSwap.editRequested":l.object({sessionId:l.string(),agentId:l.string(),previousCwd:l.string().optional(),newCwd:l.string().optional(),previousModel:l.string().optional(),newModel:l.string().optional()}),"locality.degraded":l.intersection(l.object({sessionId:l.string(),eventId:l.string(),timestamp:l.number()}),l.discriminatedUnion(`verdictKind`,[l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`degrade`),reason:x,agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()}),l.object({intent:l.enum([`resume`,`fork`]),verdictKind:l.literal(`foreign`),foreignMachineId:l.string(),agentId:l.string().optional(),adapterId:l.string().optional(),turnId:l.string().optional()})])),getContextWindowState:{request:l.object({sessionId:l.string()}),response:l.object({state:l.object({currentTokens:l.number(),maxTokens:l.number(),percentage:l.number(),level:l.enum([`ok`,`warn`,`critical`]),lastUpdatedAt:l.number()}).nullable()})},importStatusChanged:$e,"import.completed":l.object({sessionId:l.string(),adapterSessionId:l.string(),source:l.string()}),event:Y},X=l.object({includeEvents:l.boolean().default(!1),includeToolOutputs:l.boolean().default(!1),includeAncestors:l.boolean().default(!0),includeChildren:l.boolean().default(!1)}),tt=`1.0`,Z=l.object({version:l.literal(`1.0`),exportedAt:l.number(),options:X,sessions:l.array(R),agents:l.array(I),messages:l.array(O),turns:l.array(N),events:l.array(Y).optional()});function nt(e){return Z.parse(e)}function rt(e){let t=Z.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}const it={"snapshot.export":{request:l.object({sessionId:l.string(),options:X.optional()}),response:l.object({snapshot:Z})},"snapshot.import":{request:l.object({snapshot:Z,onConflict:l.enum([`fail`,`skip`,`overwrite`]).default(`fail`)}),response:l.object({imported:l.array(l.string()),skipped:l.array(l.string()),errors:l.array(l.object({sessionId:l.string(),error:l.string()}))})},"snapshot.validate":{request:l.object({snapshot:l.unknown()}),response:l.object({valid:l.boolean(),errors:l.array(l.string())})}},at={resolveAgentConfig:{request:l.object({selection:ae,projectId:l.string().optional()}),response:l.object({adapterName:l.string(),model:l.string().optional(),providerConfigId:l.string().optional(),reasoningEffort:n.optional(),supportedReasoningLevels:ee.optional(),systemPrompt:r.optional(),allowedTools:l.array(l.string()).optional(),disallowedTools:l.array(l.string()).optional(),allowedDirectories:l.array(l.string()).optional()})}},ot={resolveSystemPrompt:{request:l.object({sessionId:l.string(),personaId:l.string().optional(),profileId:l.string().optional()}),response:l.object({systemPrompt:l.string(),personaName:l.string().optional(),profileName:l.string().optional()})}},st={enrichContext:{request:l.object({sessionId:l.string()}),response:l.record(l.string(),l.unknown())}},ct={...qe,...et,...it,...Fe,...G,...at,...ot,...st},Q=l.object({adapterId:l.string(),harnessId:l.string().optional(),clientId:l.string().optional(),clientProfileName:fe.optional(),initialMessage:i.optional(),responseSchema:a.optional(),model:l.string().optional(),reasoningEffort:n.optional(),adapterConfig:t.optional(),env:l.record(l.string(),l.string()).optional(),role:f,sessionContext:w.optional(),mcpSessionContext:l.union([oe,ue]).optional(),providerContext:s.optional(),ephemeral:l.boolean().optional()}).merge(he),lt={request:l.union([Q.extend({mode:l.literal(`fork`),sessionId:l.string(),sourceSessionId:l.string(),sourceAdapterSessionId:l.string(),forkPointMessageId:l.string().optional(),targetWorkingDirectory:l.string().optional()}),Q.extend({mode:l.literal(`resume`),sessionId:l.string(),adapterSessionId:l.string()}),Q.extend({mode:l.literal(`create`).optional(),sessionId:l.string().optional()})]).superRefine((e,t)=>{let n=e.mode??`create`;e.ephemeral&&n!==`create`&&t.addIssue({code:l.ZodIssueCode.custom,path:[`ephemeral`],message:`ephemeral is only supported for create mode`}),e.ephemeral&&e.initialMessage===void 0&&t.addIssue({code:l.ZodIssueCode.custom,path:[`initialMessage`],message:`ephemeral startAgent requires initialMessage`})}),response:l.discriminatedUnion(`success`,[l.object({success:l.literal(!0),agentId:l.string(),adapterId:l.string(),adapterSessionId:l.string().optional(),sessionId:l.string(),messageId:l.string().optional()}),l.object({success:l.literal(!1),message:l.string()})])},ut={request:l.object({adapterId:l.string(),prompt:l.string(),model:l.string().optional(),systemPrompt:l.string().optional(),responseSchema:a.optional(),providerContext:s.optional()}),response:l.object({text:l.string(),usage:l.object({inputTokens:l.number(),outputTokens:l.number()}).optional()})},dt={request:l.object({adapterId:l.string()}),response:l.object({agents:l.array(l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}))})},ft={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({agent:l.object({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}).nullable()})},pt={request:l.object({adapterId:l.string(),agentId:l.string()}),response:l.object({success:l.boolean()})},mt={request:l.object({adapterId:l.string(),agentId:l.string(),cwd:l.string().optional(),model:l.string().optional(),adapterSessionId:l.string().optional(),resumeAdapterSessionId:l.string().optional()}),response:l.object({})},ht={request:l.object({adapterName:l.string()}),response:l.object({found:l.boolean(),adapterName:l.string(),jsonSchema:l.record(l.string(),l.unknown()).nullable()})},gt=d.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string().optional()}),_t=d.extend({adapterSessionId:l.string().optional(),sessionId:l.string(),model:l.string()}),vt=d.extend({sessionId:l.string(),adapterSessionId:l.string().optional(),totalInputTokens:l.number(),totalOutputTokens:l.number(),totalCalls:l.number()}),yt=d.extend({agentId:l.string(),sessionId:l.string(),adapterSessionId:l.string(),reason:l.string().optional()}),bt=d.extend({message:l.string(),timestamp:l.number(),level:l.enum([`debug`,`info`,`warn`,`error`]).optional()}),xt=d.extend({error:l.string(),sessionId:l.string().optional(),errorCategory:re.optional()}),St=d.extend({capabilities:l.array(l.string()),nativeTools:l.array(l.string()).optional()}),Ct=d.extend({provider:l.string(),quotaType:l.string(),limit:l.number(),used:l.number(),overage:l.number(),resetDate:l.string()}),wt=l.object({agentId:u.attribute(l.string(),`makaio.agent.id`),adapterId:u.attribute(l.string(),`makaio.adapter.id`),adapterName:u.attribute(l.string(),`makaio.adapter.name`),sessionId:u.attribute(l.string(),`makaio.session.id`).optional(),adapterSessionId:u.attribute(l.string(),`makaio.adapter.session_id`).optional(),messageId:u.attribute(l.string(),`makaio.message.id`).optional(),turnId:u.attribute(l.string(),`makaio.turn.id`).optional(),clientId:u.attribute(l.string(),`makaio.client.id`).optional(),providerConfigId:u.attribute(l.string(),`makaio.provider.config_id`).optional(),occurredAt:u.attribute(l.number(),`event.occurred_at`).optional()}),Tt=l.object({model:l.string().nullable(),cwd:l.string().nullable()}),Et=[`fresh`,`resume`,`fork`,`rotation`],$=l.enum(Et),Dt=wt.merge(Tt).extend({startMode:$}),Ot=d.merge(Tt).extend({adapterSessionId:l.string(),title:l.string().optional(),logFilePath:l.string().nullable().optional(),startedAt:l.number().finite().optional(),machineId:l.string().nullable().optional()}).and(pe);export{A as $,Qe as A,B,ot as C,X as D,Z as E,K as F,T as G,I as H,V as I,O as J,D as K,R as L,Y as M,Ye as N,rt as O,Ze as P,j as Q,z as R,st as S,tt as T,ze as U,F as V,P as W,N as X,M as Y,k as Z,ft as _,wt as a,S as at,lt as b,xt as c,y as ct,vt as d,f as dt,Re as et,_t as f,p as ft,pt as g,he as gt,mt as h,ge as ht,Dt as i,x as it,$e as j,nt as k,bt as l,b as lt,ht as m,m as mt,Et as n,Le as nt,Ct as o,v as ot,gt as p,h as pt,E as q,$ as r,Ie as rt,St as s,_ as st,Ot as t,w as tt,yt as u,g as ut,dt as v,at as w,ct as x,ut as y,L as z};
@@ -1 +0,0 @@
1
- import{a as e}from"./visibility-Cb62p9bv.mjs";import"./credential-ref-YWQQENEo.mjs";import{p as t}from"./shared-BVW-3Dhy.mjs";import{t as n}from"./provider-context-CqMgPOWF.mjs";import{z as r}from"zod";const i=r.enum([`fork`,`fresh`]),a=r.enum([`spawning`,`running`,`waiting_input`,`hung`,`completed`,`failed`,`cancelled`]),o=r.enum([`tool`,`turn`]),s=r.object({task:r.string(),adapterName:r.string().optional(),providerConfigId:r.string().optional(),providerContext:n.optional(),harnessId:r.string().optional(),model:r.string().optional(),reasoningEffort:e.optional(),contextMode:i.default(`fork`),tools:r.array(r.string()).optional(),disallowedTools:r.array(r.string()).optional(),allowedDirectories:r.array(r.string()).optional(),systemPrompt:r.string().optional(),maxDepth:r.number().optional(),responseSchema:t.optional(),executionTargetId:r.string().optional(),completion:o.optional()}),c=r.object({maxDepth:r.number().default(3),maxConcurrentPerSession:r.number().default(10),maxTotalActive:r.number().default(50),defaultRequestTimeoutMs:r.number().default(6e4),defaultAwaitTimeoutMs:r.number().default(3e5),stateRetentionMs:r.number().default(1800*1e3),inactivityTimeoutMs:r.number().int().nonnegative().default(0),sweepIntervalMs:r.number().int().nonnegative().default(6e4),allowedAdapters:r.array(r.string()).default([]),allowedModels:r.array(r.string()).default([])}).parse({}),l=r.object({inputTokens:r.number(),outputTokens:r.number(),totalTokens:r.number()}),u=r.object({messageId:r.string(),question:r.string(),context:r.string().optional()}),d=r.object({subagentId:r.string(),parentSessionId:r.string(),task:r.string(),config:s,depth:r.number()}),f=r.object({success:r.boolean(),agentId:r.string().optional(),error:r.string().optional()}),p=r.object({subagentId:r.string(),parentSessionId:r.string(),error:r.string(),phase:r.enum([`session_create`,`adapter_start`,`agent_start`])}),m=r.object({parentSessionId:r.string(),config:s,depth:r.number(),spawningToolCallId:r.string().optional()}),h=r.object({subagentId:r.string(),status:r.literal(`spawning`)}),g=r.object({subagentId:r.string(),timeoutMs:r.number().optional()}),_=r.object({status:r.enum([`completed`,`failed`,`waiting_input`,`timeout`,`cancelled`]),result:r.string().optional(),error:r.string().optional(),pendingRequest:u.optional(),completionSource:o.optional()}),v=r.object({subagentId:r.string(),content:r.string(),inResponseTo:r.string().optional()}),y=r.object({sent:r.boolean(),resolvedPending:r.boolean()}),b=r.object({subagentId:r.string(),reason:r.string().optional()}),x=r.object({killed:r.boolean()}),S=r.object({subagentId:r.string(),update:r.string(),percentComplete:r.number().optional()}),C=r.object({reported:r.boolean()}),w=r.object({subagentId:r.string(),question:r.string(),context:r.string().optional(),timeoutMs:r.number().optional()}),T=r.object({responded:r.boolean(),response:r.string().optional(),timedOut:r.boolean()}),E=r.object({subagentId:r.string(),result:r.string(),summary:r.string().optional()}),D=r.object({completed:r.boolean()}),O=r.object({subagentId:r.string(),task:r.string(),status:a}),k=r.object({parentSessionId:r.string()}),A=r.object({subagents:r.array(O)});export{s as C,l as E,h as S,a as T,w as _,o as a,y as b,d as c,x as d,k as f,C as g,S as h,D as i,f as l,u as m,_ as n,i as o,A as p,E as r,c as s,g as t,b as u,T as v,p as w,m as x,v as y};
@@ -1,76 +0,0 @@
1
- import{agents as e,agentsDual as t,sessions as n,sessionsDual as r}from"./services/session/storage/schema.mjs";import"./schema-7aKBGB7S.mjs";import{a as i,n as a,o}from"./namespace-dFBD2ZmS.mjs";import{A as s,E as c,I as l,L as u,O as d,R as f,S as p,_ as m,d as h,f as g,g as _,h as v,l as ee,m as y,p as te,u as b,v as ne,y as x,z as S}from"./handlers-B74FvKlA.mjs";import{TurnStorageSubjects as C}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as w}from"./services/session/storage/namespace.mjs";import{r as re,t as ie}from"./provider-context-DC_eq7es.mjs";import{AdapterRuntimeSubjects as ae}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as T}from"./services/session/messages/namespace.mjs";import{n as oe}from"./namespace-wke7juzy.mjs";import{z as E}from"zod";import{createBusNamespace as se}from"@makaio/framework/core";import{MakaioBus as D,NoHandlerError as ce,TimeoutError as le}from"@makaio/framework/bus";import{AdapterSubjects as O,AgentSubjects as k,CanonicalModelSubjects as ue,CapabilitySubjects as de,ClientSubjects as fe,CompressionModeSchema as pe,FORK_SESSION_LINEAGE_KIND as me,ForkTransformsSchema as he,MessageRoutingSchema as ge,MessageStorageSubjects as _e,ROOT_SESSION_LINEAGE_KIND as ve,SessionContextSchema as ye,SessionDiscoveredSchema as be,SessionRecordMetadataSchema as xe,SessionStorageSetRequestSchema as Se,SessionStorageUpdateSchema as Ce,SessionSubjects as A,TurnIngestionMarkerSchema as we,compareMessageCursorAsc as Te,compareMessageCursorDesc as Ee,isCanonicalModelParseError as De,messageToCursor as j,parseCanonicalModel as Oe}from"@makaio/framework/contracts";import{BaseService as ke}from"@makaio/framework/service-base";import{blob as Ae,index as je,integer as Me,primaryKey as Ne,sqliteTable as Pe,text as Fe,uniqueIndex as Ie}from"drizzle-orm/sqlite-core";import{index as Le,primaryKey as Re}from"drizzle-orm/pg-core";import{defineDialectSchema as ze,defineDualTable as Be,didAffectRows as M,getRawSqlExecutor as Ve,getStorageEngine as He,resolveSchema as N,resolveStorageEngine as Ue}from"@makaio/framework/storage/drizzle";import{and as P,asc as We,count as F,desc as I,eq as L,gt as Ge,gte as Ke,inArray as R,isNull as z,lt as qe,lte as Je,or as Ye,sql as B}from"drizzle-orm";import{createStorageNamespaceDefinition as Xe}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Ze}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Qe}from"@makaio/framework/adapters";function $e(e){return e.on(A.agent.added,async t=>{let n=await e.requestOptional(w.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(r.adapterSessionId||(r.adapterSessionId=t.payload.adapterSessionId,r.adapterName=t.payload.adapterName,r.adapterId=t.payload.adapterId),(t.payload.role??(r.leadAgentId?`member`:`lead`))===`lead`&&(r.leadAgentId=t.payload.agentId),r.lastActivityAt=Date.now(),await e.request(w.set,{sessionId:t.payload.sessionId,session:r}))})}function et(e){return e.on(A.agent.removed,async t=>{let n=await e.requestOptional(w.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(await e.requestOptional(l.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),r.leadAgentId===t.payload.agentId&&(r.leadAgentId=void 0),r.lastActivityAt=Date.now(),await e.request(w.set,{sessionId:t.payload.sessionId,session:r}))})}function tt(e){return e.on(k.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(l.get,{agentId:n}),c=s.handled?s.data.agent:null;c&&!c.adapterSessionId&&await e.requestOptional(l.updateRuntime,{agentId:n,adapterSessionId:r});let u=await e.requestOptional(w.get,{sessionId:o}),d=u.handled?u.data.session:null;if(d&&!d.adapterSessionId){if(d.adapterName){if(i!==d.adapterName)return;d.adapterSessionId=r}else d.adapterSessionId=r,d.adapterName=i,d.adapterId=a;d.lastActivityAt=Date.now(),await e.requestOptional(w.set,{sessionId:o,session:d})}})}function nt(e){return[at(e),ot(e),st(e),rt(e),ct(e),dt(e),ft(e),pt(e),mt(e),$e(e.bus),et(e.bus),tt(e.bus)]}function rt(e){let{bus:t}=e;return t.on(A.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(A.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await it(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 le(`session.turn.await`,i):e}})}async function it(e,t,n){let r=await e.requestOptional(C.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 at(e){let{bus:t}=e;return t.on(A.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(A.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),ee={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},y=await t.requestOptional(w.set,{sessionId:h,session:ee,ifAbsent:!0});if(y.handled&&!y.data.success){e.setResult({sessionId:h});return}await t.emit(A.created,{sessionId:h,createdAt:ee.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function ot(e){let{bus:t}=e;return t.on(A.get,async e=>{let n=await t.requestOptional(w.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function st(e){let{bus:t}=e;return t.on(A.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(w.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 ct(e){let{bus:t}=e;return t.on(A.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(w.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(w.set,{sessionId:n,session:i}),await t.emit(A.closed,{sessionId:n}),e.setResult({success:!0})})}async function lt(e,t){try{let n=await e.requestOptional(O.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function ut(e,t){if(t!==void 0)return t;let n=await e.requestOptional(ae.getMachineId,{});return n.handled?n.data.machineId:void 0}function dt(e){let{bus:t}=e;return t.on(A.restartAgents,async e=>{let{sessionId:n,machineId:r}=e.payload,i=await t.requestOptional(l.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await ut(t,r),u=await t.requestOptional(w.get,{sessionId:n}),d=u.handled?u.data.session??void 0:void 0;for(let e of a)try{let n,r=!1;if(d!==void 0&&(p({intent:`resume`,session:d,localMachineId:s,adapterSupportsNative:await lt(t,e.adapterId),targetAdapterName:e.adapterName,currentCwd:e.cwd,targetCwd:e.cwd}).kind===`native`&&e.adapterSessionId!==void 0?n=e.adapterSessionId:r=!0),r){o.push({agentId:e.agentId,adapterId:e.adapterId,success:!0});continue}let i=await c(t,e,{cwd:e.cwd,model:e.model,resumeAdapterSessionId:n});await t.requestOptional(l.updateRuntime,{agentId:i.agentId,adapterId:i.adapterId}),o.push({agentId:i.agentId,adapterId:i.adapterId,success:!0})}catch(t){let n=t instanceof Error?t.cause:void 0,r=n instanceof Error?n.message:t instanceof Error?t.message:String(t);o.push({agentId:e.agentId,adapterId:e.adapterId,success:!1,error:r})}e.setResult({sessionId:n,results:o})})}function ft(e){let{bus:t}=e;return t.on(A.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(w.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(A.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function pt(e){let{bus:t}=e;return t.on(A.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(w.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(w.set,{sessionId:n,session:i}),await t.emit(A.archived,{sessionId:n}),e.setResult({success:!0})})}function mt(e){let{bus:t}=e;return t.on(A.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(w.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1,error:`Session not found`});return}if(i.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let o=await t.requestOptional(w.list,{status:`all`}),s=o.handled?o.data.sessions:[];for(let e of s)e.parentSessionId===n&&await t.requestOptional(w.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(a.getEvents,{sessionId:n,options:{limit:1}}),l=c.handled?c.data.totalCount:0;await t.requestOptional(a.deleteBySession,{sessionId:n}),await t.requestOptional(w.delete,{sessionId:n}),await t.emit(A.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:l})})}var ht=class extends ke{constructor(e=D){super(e)}async onInit(){for(let e of nt({bus:this.bus}))this.addCleanup(e);this.addCleanup(S(this.bus)),await this.reconcileOrphanedTurns()}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(C.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(C.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 u(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(A.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function gt(e){return Error(`No adapter found for adapterName="${e}". Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}var _t=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(O.initialized,e=>{this.registry.set(e.payload.adapterName,e.payload.adapterId)})}resolve(e){let t=this.registry.get(e);if(!t)throw gt(e);return t}async resolveAvailable(e){try{let{adapterId:t}=await this.bus.request(ae.resolveId,{adapterName:e});return this.registry.set(e,t),t}catch{let t=this.registry.get(e);if(t)return t;throw gt(e)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function vt(e,t){e.emit(T.stored,{message:structuredClone(t)});try{await e.request(a.append,{event:{sessionId:t.sessionId,eventId:crypto.randomUUID(),timestamp:t.timestamp,type:`message`,payload:{messageId:t.messageId,turnId:t.turnId,role:t.role}}})}catch(e){console.error(`[MessageStorage] Failed to emit session event for message:`,e)}}function V(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 yt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await n.insert(r).values({messageId:o,turnId:s.turnId,sessionId:s.sessionId,role:s.role,contentText:s.contentText,blocks:JSON.stringify(s.blocks),agentId:s.agentId??null,adapterSessionId:s.adapterSessionId??null,adapterMessageId:s.adapterMessageId??null,timestamp:s.timestamp,editOf:s.editOf??null,origin:s.origin??null}),e.setResult({message:s}),(a??!0)&&await vt(t,s)})}function bt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?I:We,l=n.select().from(r).where(L(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Ye(qe(r.timestamp,a.timestamp),P(L(r.timestamp,a.timestamp),o?Je(r.messageId,a.messageId):qe(r.messageId,a.messageId))):Ye(Ge(r.timestamp,a.timestamp),P(L(r.timestamp,a.timestamp),o?Ke(r.messageId,a.messageId):Ge(r.messageId,a.messageId)));l=n.select().from(r).where(P(L(r.sessionId,t),e)).orderBy(c(r.timestamp),c(r.messageId))}let u=i??100,d=await l.limit(u+1),f=d.length>u,p=f?d.slice(0,u):d,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p.map(V),nextCursor:m})})}function xt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(L(r.turnId,t)).orderBy(We(r.timestamp));e.setResult({messages:i.map(V)})})}function St(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(L(r.messageId,t)).limit(1);e.setResult({message:i?V(i):null})})}function Ct(e){let{bus:t,db:n}=e,{messages:r}=N(n,o),i=Ue(n).fts;return t.on(T.search,async e=>{let{query:t,sessionId:a,limit:o}=e.payload,s=o??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let{rows:c,total:l}=await i.searchMessages(n,r,{query:t,sessionId:a,limit:s});e.setResult({messages:c.map(V),total:l})})}function wt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o),i=Ue(n).fts;return t.on(T.ftsSearch,async e=>{let{query:t,sessionId:a,limit:o=20}=e.payload;if(!t.trim()){e.setResult({results:[],total:0});return}let{results:s,total:c}=await i.searchMessageExcerpts(n,r,{query:t,sessionId:a,limit:o});e.setResult({results:s,total:c})})}function Tt(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(L(r.adapterMessageId,t)).limit(1);e.setResult({message:i?V(i):null})})}function Et(e){let{bus:t,db:n}=e,{messages:r}=N(n,o);return t.on(T.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(P(L(r.adapterMessageId,i),L(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(L(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(P(L(r.adapterMessageId,i),L(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(L(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await vt(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 Dt(e,t){let n={bus:e,db:t},r=[yt(n),bt(n),xt(n),St(n),Ct(n),wt(n),Et(n),Tt(n)];return()=>r.forEach(e=>e())}function Ot(e,t){return Te(j(e),j(t))}function kt(e,t){return Ee(j(e),j(t))}function At(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function jt(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 Mt(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Nt(t,n,r,i),o=[Pt(e,t,a),Ft(e,t,n),It(e,t,r),Lt(e,t),Rt(e,t),zt(e,t,r,i,a),Bt(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Nt(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&&At(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function Pt(e,t,n){return e.on(T.append,async t=>{let{message:r,emitEvent:i}=t.payload,a=r.messageId??crypto.randomUUID(),o={...r,messageId:a,blocks:r.blocks??[]};n(o),t.setResult({message:o}),(i??!0)&&await vt(e,o)})}function Ft(e,t,n){return e.on(T.getBySession,async e=>{let{sessionId:r,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=n.get(r)??[],l=s===`desc`?kt:Ot,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?Ee(j(e),a):Te(j(e),a);return o?t>=0:t>0}));let d=i??100,f=u.length>d,p=f?u.slice(0,d):u,m=f&&p.length>0?j(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function It(e,t,n){return e.on(T.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(Ot);e.setResult({messages:i})})}function Lt(e,t){return e.on(T.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function Rt(e,t){return e.on(T.search,async e=>{let{query:n,sessionId:r,limit:i}=e.payload,a=i??50,o=n.trim().toLowerCase(),s=[...t.values()].filter(e=>r?e.sessionId===r:!0),c=o.length===0?[]:s.filter(e=>e.contentText.toLowerCase().includes(o));c.sort(Ot),e.setResult({messages:c.slice(0,a),total:c.length})})}function zt(e,t,n,r,i){return e.on(T.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){jt(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 vt(e,v)})}function Bt(e,t,n,r,i){return e.on(w.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 Vt=Be(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(i,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[Ne({columns:[e.messageId,e.agentId,e.status]}),je(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[Re({columns:[e.messageId,e.agentId,e.status]}),Le(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),Ht=Vt.sqlite,Ut=Xe(`messageRouting`,{schemas:{record:{request:ge,response:E.object({success:E.boolean()})},getByMessage:{request:E.object({messageId:E.string()}),response:E.object({routing:E.array(ge)})},getCompleted:{request:E.object({messageId:E.string()}),response:E.object({agentIds:E.array(E.string())})},isComplete:{request:E.object({messageId:E.string(),targetAgentIds:E.array(E.string())}),response:E.object({complete:E.boolean(),pending:E.array(E.string())})}},extensions:{drizzle:{messageRouting:Ht}}}),H=Ut.subjects,Wt=Vt.postgres,Gt=ze({messageRouting:Ht},{messageRouting:Wt});function Kt(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function qt(e,t){let{messageRouting:n}=N(t,Gt),r=[];return r.push(e.on(H.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(H.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(L(n.messageId,r));e.setResult({routing:i.map(Kt)})})),r.push(e.on(H.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(P(L(n.messageId,r),L(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(H.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(P(L(n.messageId,r),L(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())}var Jt=class{byAgent=new Map;add(e){let t=this.byAgent.get(e.agentId);t?(t.inputTokens+=e.inputTokens,t.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,outputTokens:e.outputTokens})}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n={};for(let[r,i]of this.byAgent)e+=i.inputTokens,t+=i.outputTokens,n[r]={...i};return{total:{inputTokens:e,outputTokens:t},byAgent:n}}flush(){let e=this.snapshot();return this.byAgent.clear(),e}clear(){this.byAgent.clear()}},Yt=class{bus;activeTurns=new Map;usageAccumulators=new Map;completingTurnIds=new Set;completingTurns=new Map;pendingTerminalCompletions=new Map;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantStoredCounts=new Map;assistantPersistenceWaiters=new Map;cleanups=[];constructor(e){this.bus=e,this.registerAssistantPersistenceCounter()}async createTurn(e,t,n,r){let i=await this.bus.requestOptional(C.create,{sessionId:e,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),a,o;if(i.handled)a=i.data.turn.turnId,o=i.data.turn.turnNumber;else{a=r??crypto.randomUUID();let t=(this.syntheticTurnCounters.get(e)??0)+1;this.syntheticTurnCounters.set(e,t),o=t}let s=new x({sessionId:e,agentIds:t,turnId:a,turnNumber:o,initiator:n});return this.activeTurns.set(e,s),this.usageAccumulators.set(s.turnId,new Jt),s}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantStoredCounts.delete(e.turnId))}async failActiveTurnSetup(e,t){if(this.activeTurns.get(e.sessionId)?.turnId===e.turnId&&!(e.messageIds.length>0||e.hasPendingMessageAppends)){try{await this.bus.requestOptional(C.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:t})}catch(t){console.error(`[SessionTurnManager] Failed to mark setup-failed turn ${e.turnId} as error:`,t)}this.discardActiveTurn(e)}}clearActiveRoutingTurn(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),!0):!1}registerCompletionHandlers(e){this.cleanups.push(this.bus.on(k.usage,e=>{let{agentId:t,turnId:n,inputTokens:r,outputTokens:i}=e.payload;if(!n){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${t}).`);return}let a=this.findTurnForUsage(n);if(!a){console.warn(`[SessionTurnManager] Dropping usage for inactive turn ${n} (agentId=${t}).`);return}if(!a.hasAgent(t)){console.warn(`[SessionTurnManager] Dropping usage for turn ${n}: agent ${t} is not part of the turn.`);return}if(this.completingTurnIds.has(a.turnId)){this.bufferUsageDuringCompletion(a.turnId,{agentId:t,inputTokens:r,outputTokens:i});return}this.usageAccumulators.get(a.turnId)?.add({agentId:t,inputTokens:r,outputTokens:i})})),this.cleanups.push(this.bus.on(k.complete,async t=>{let{agentId:n,outcome:r,error:i,turnId:a}=t.payload,o=r!==`error`;await this.handleAgentCompletion(n,o,o?void 0:i,e,a)}))}async completeTurn(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId),this.completingTurns.set(e.turnId,e);let n=this.usageAccumulators.get(e.turnId),r=n?.snapshot(),i=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let a=await this.persistTurnCompletion(e,t,r,`active`);if(i=a.handled,!a.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,n);return}this.pendingTerminalCompletions.set(e.turnId,i),r=await this.flushBufferedUsageDuringCompletion(e,t,n,r)}}catch(t){throw this.completingTurnIds.delete(e.turnId),this.completingTurns.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}this.clearActiveRoutingTurn(e);let a=!1;try{i&&await this.awaitAssistantPersistence(e),r=await this.flushBufferedUsageDuringCompletion(e,t,n,r);let o={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0,...r!==void 0&&{usage:r},initiator:e.initiator,ingestionMarker:`live`};await u(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:o}),a=!0,await this.bus.emit(A.turn.completed,o)}catch(t){throw a?this.clearCompletionState(e,n):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,n)}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantStoredCounts.delete(e.turnId),this.completingTurns.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId)}getActiveTurn(e){return this.activeTurns.get(e)}getActiveTurnsMap(){return this.activeTurns}findActiveTurnByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.activeTurns.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completingTurns.clear(),this.pendingTerminalCompletions.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear();for(let e of[...this.assistantPersistenceWaiters.values()])e.settle();this.assistantPersistenceWaiters.clear(),this.assistantStoredCounts.clear()}async handleAgentCompletion(e,t,n,r,i){let a=i?this.findTurnForCompletion(i):this.findTurnForUncorrelatedCompletion(e);if(!a||!a.hasAgent(e)||this.hasTerminalOutcome(a,e))return;let o=t?a.markAgentCompleted(e):a.markAgentErrored(e,n??`Unknown error`);for(let r of a.messageIds)await this.bus.emit(A.user_message.completed,{sessionId:a.sessionId,turnId:a.turnId,turnNumber:a.turnNumber,messageId:r,agentId:e,outcome:t?`completed`:`error`,error:n});o.turnComplete&&await r(a,o.result)}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}findTurnForUncorrelatedCompletion(e){for(let t of this.completingTurns.values())if(t.hasAgent(e))return;return y(this.activeTurns,e)}hasTerminalOutcome(e,t){return e.completedAgents.has(t)||e.erroredAgents.has(t)}async persistTurnCompletion(e,t,n,r){let i=await this.bus.requestOptional(C.complete,{turnId:e.turnId,status:t.success?`completed`:`error`,...r!==void 0&&{expectedStatus:r},error:t.errors.length>0?t.errors.join(`; `):void 0,...n!==void 0&&{usage:n}});return{handled:i.handled,transitioned:i.handled?i.data.transitioned:!0}}async flushBufferedUsageDuringCompletion(e,t,n,r){let i=this.bufferedUsageDuringCompletion.get(e.turnId)??[];if(i.length===0)return r;for(let e of i)n?.add(e);this.bufferedUsageDuringCompletion.delete(e.turnId);let a=n?.snapshot()??r;try{await this.persistTurnCompletion(e,t,a)}catch(t){console.warn(`[SessionTurnManager] Failed to persist buffered usage for turn ${e.turnId}:`,t)}return a}registerAssistantPersistenceCounter(){this.cleanups.push(this.bus.on(T.stored,e=>{let{message:t}=e.payload;if(t.role!==`assistant`||!t.turnId)return;let n=t.turnId;if(!this.assistantStoredCounts.has(n)&&this.assistantStoredCounts.size>=1024){let e=this.assistantStoredCounts.keys().next().value;e!==void 0&&this.assistantStoredCounts.delete(e)}let r=(this.assistantStoredCounts.get(n)??0)+1;this.assistantStoredCounts.set(n,r);let i=this.assistantPersistenceWaiters.get(n);i&&r>=i.expected&&i.settle()}))}async awaitAssistantPersistence(e){let t=e.agentIds.length;if(t<=0||(this.assistantStoredCounts.get(e.turnId)??0)>=t)return;let n=await this.bus.requestOptional(T.getByTurn,{turnId:e.turnId});n.handled&&(n.data.messages.filter(e=>e.role===`assistant`).length>=t||(this.assistantStoredCounts.get(e.turnId)??0)>=t||await new Promise(n=>{let r=()=>{clearTimeout(i),this.assistantPersistenceWaiters.delete(e.turnId),n()},i=setTimeout(r,1500);this.assistantPersistenceWaiters.set(e.turnId,{expected:t,settle:r}),(this.assistantStoredCounts.get(e.turnId)??0)>=t&&r()}))}},Xt=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=D,t){this.bus=e,this.machineId=t,this.turnManager=new Yt(e),this.adapterRegistry=new _t(e),this.cleanups.push(b(this.bus,this.turnManager.getActiveTurnsMap(),t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(A.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=te(o,e.payload.extensionId),u=e.payload.sessionContext?ye.parse(e.payload.sessionContext):void 0,{sessionId:p,session:g}=await v(this.bus,t,u,e.payload.originWindowId,this.machineId);if(g.agents.length===0){let e=await this.resolveInitialAdapterSelection(a,p,n,u),t=await this.resolveAdapterName(e,p),r=h(e.adapterId)??await this.adapterRegistry.resolveAvailable(t),i=e.providerConfigId===void 0?void 0:await re(this.bus,e.providerConfigId),o=e.providerConfigId??i?.providerConfigId;i!==void 0&&await ie(this.bus,i);let s=await this.bus.request(O.startAgent,{adapterId:r,sessionId:p,role:`lead`,...i!==void 0&&{providerContext:i},...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...e.adapterConfig!==void 0&&{adapterConfig:e.adapterConfig},...u!==void 0&&{sessionContext:u}});if(!s.success)throw Error(`[SessionOrchestrator.sendMessage] Failed to start agent (sessionId=${p}, adapterName=${t}): ${s.message}`);let c=Date.now();g.agents.push({agentId:s.agentId,adapterId:s.adapterId,adapterName:t,sessionId:p,role:`lead`,status:`idle`,...o!==void 0&&{providerConfigId:o},createdAt:c,lastActivityAt:c}),g.leadAgentId=s.agentId,o!==void 0&&await this.bus.requestOptional(l.updateRuntime,{agentId:s.agentId,providerConfigId:o})}let y=_(g,r);if(y.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${p})`);let b=new Set;for(let e of y){let t=await this.bus.requestOptional(O.getAgent,{agentId:e.agentId,adapterId:e.adapterId});t.handled&&t.data.agent===null&&b.add(e.agentId)}let x;if(b.size>0){x=await d(this.bus,g);for(let e of y)b.has(e.agentId)&&await this.bus.requestOptional(O.rehydrateAgent,{agentId:e.agentId,adapterId:e.adapterId})}let S=this.turnManager.getActiveTurn(p);S||=await this.turnManager.createTurn(p,y.map(e=>e.agentId),c,e.payload.turnId);let C=crypto.randomUUID(),w=ne(n);S.claimMessageAppend(C);try{if(!(await this.bus.requestOptional(T.append,{message:{messageId:C,turnId:S.turnId,sessionId:p,role:`user`,contentText:m(n),blocks:w,timestamp:Date.now(),...s!==void 0&&{origin:s}}})).handled)throw Error(`Message storage append handler is not registered`)}catch(e){throw console.warn(`[SessionOrchestrator] Failed to store user message`,{sessionId:p,messageId:C,error:e instanceof Error?e.message:String(e)}),S.releaseMessageAppend(C),await this.turnManager.failActiveTurnSetup(S,`user-message-persistence-failed`),e}let ae=S.messageIds.length===0;S.addMessage(C);for(let e of y)this.bus.requestOptional(H.record,{messageId:C,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:p,messageId:C,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});ae&&await f(this.bus,{sessionId:p,turnId:S.turnId,turnNumber:S.turnNumber,messageId:C,agentIds:[...S.agentIds],initiator:S.initiator,ingestionMarker:`live`}),await this.bus.emit(A.user_message.sent,{sessionId:p,turnId:S.turnId,turnNumber:S.turnNumber,messageId:C,content:n,agentIds:y.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}});let oe=x?{...u,...x}:u;await ee(this.bus,g,y,n,C,S,i,this.completeTurn.bind(this),oe,e.payload.responseSchema),e.setResult({messageId:C,turnId:S.turnId,sessionId: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()}async resolveAdapterName(e,t){let n=h(e.adapterName),r=h(e.adapterId);if(!n&&!r)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${t})`);return r?g(this.bus,r,n,`[SessionOrchestrator.sendMessage] (sessionId=${t}) `):n}async resolveInitialAdapterSelection(e,t,n,r){if(!e)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${t})`);if(e.kind===`adapter`)return e;if(e.kind===`canonical-model`)return await this.resolveCanonicalModelSelection(e,t,n,r);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${t})`)}async resolveCanonicalModelSelection(e,t,n,r){let i=Oe(e.model);if(De(i))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${e.model}" (sessionId=${t}): ${i.message}`);if(i.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${t})`);let a=await this.bus.request(ue.resolve,{parsed:i,context:{sessionId:t,promptText:m(n),...r===void 0?{}:{sessionContext:r}}});return{...e,...a,kind:`adapter`,providerConfigId:e.providerConfigId??a.providerConfigId}}},Zt=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(T.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof ce||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 Qt(e){let{bus:t}=e;return t.on(A.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(w.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function $t(e){let{bus:t}=e;return t.on(A.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(w.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(w.set,{sessionId:n,session:r}),await t.emit(A.resumed,{sessionId:n}),e.setResult({success:!0})})}function en(e){return e.on(oe.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 tn=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function nn(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 rn=class{bus;agentToSession=new Map;agentContext=new Map;agentBlocks=new Map;cleanups=[];constructor(e=D){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(A.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(A.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&(this.agentToSession.delete(t),this.agentContext.delete(t),this.agentBlocks.delete(t))}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(A.turn.started,e=>{let{sessionId:t,turnId:n,agentIds:r}=e.payload;for(let e of r){let r=this.agentContext.get(e);this.agentContext.set(e,{...r,sessionId:t,turnId:n}),this.agentBlocks.set(e,[])}})),this.cleanups.push(this.bus.on(A.user_message.acknowledged,e=>{let t=this.agentContext.get(e.payload.agentId);this.agentContext.set(e.payload.agentId,{...t,sessionId:e.payload.sessionId,turnId:e.payload.turnId}),this.agentBlocks.has(e.payload.agentId)||this.agentBlocks.set(e.payload.agentId,[])}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(k.message,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.reasoning,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.tool.use,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(k.tool.completed,e=>{let t=this.agentBlocks.get(e.payload.agentId);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(k.complete,async e=>{if(e.payload._import){this.agentBlocks.delete(e.payload.agentId);return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o}=e.payload;await this.storeAssistantMessage(t,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}))}async storeAssistantMessage(e,t,n,r){let i=this.agentContext.get(e);if(!i?.turnId)return;let a=r===void 0?this.agentBlocks.get(e)??[]:r.content===void 0?[]:[{type:`text`,content:r.content}];if(a.length===0&&!n){this.agentBlocks.delete(e);return}let o=a.filter(e=>e.type===`text`).map(e=>e.content).join(`
2
- `),s=crypto.randomUUID();try{if(!(await this.bus.requestOptional(T.append,{message:{messageId:s,turnId:i.turnId,sessionId:i.sessionId,role:`assistant`,contentText:o||(n?`[Error: ${n}]`:``),blocks:a,agentId:e,adapterSessionId:t,timestamp:Date.now()}})).handled){this.agentBlocks.delete(e);return}let r=await this.bus.requestOptional(T.getByTurn,{turnId:i.turnId});if(r.handled){let t=r.data.messages.find(e=>e.role===`user`);t&&await this.bus.requestOptional(H.record,{messageId:t.messageId,agentId:e,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}this.agentBlocks.delete(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.agentContext.clear(),this.agentBlocks.clear()}},an=class{bus;_sessionId;_extensionId;_turnId;_parentSessionId;contextTracker;contextContributions=new Map;constructor(e,t,n,r,i,a){this.bus=e,this._sessionId=t,this._extensionId=n,this._turnId=r,this._parentSessionId=i,this.contextTracker=a}get sessionId(){return this._sessionId}get turnId(){return this._turnId}get parentSessionId(){return this._parentSessionId}get extensionId(){return this._extensionId}async sendToAgent(e,t){await this.bus.request(A.sendMessage,{sessionId:this._sessionId,agentIds:[e],message:t,source:`extension`,extensionId:this._extensionId})}contributeContext(e,t){this.contextContributions.set(e,t)}getContributions(){return Object.fromEntries(this.contextContributions)}async fork(e){return(await this.bus.request(A.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(A.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(A.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(A.compressionRequested,{sessionId:this._sessionId,reason:e,source:`extension`,extensionId:this._extensionId})}async getContextWindowState(){if(this.contextTracker){let e=this.contextTracker.getSessionState(this._sessionId);if(e)return{currentTokens:e.currentTokens,maxTokens:e.maxTokens,percentage:e.percentage,level:e.level}}let{session:e}=await this.bus.request(A.get,{sessionId:this._sessionId});return!e||e.agents.length===0?{currentTokens:0,maxTokens:1,percentage:0,level:`ok`}:{currentTokens:0,maxTokens:2e5,percentage:0,level:`ok`}}async getChildSessions(){return(await this.bus.request(A.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function on(e,t,n,r,i,a){return new an(e,t,n,r,i,a)}function sn(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function U(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function W(e,t,n){let r=sn(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(A.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function cn(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function ln(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function un(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function dn(e){return e.activation===`live`?`active`:`discovered`}const fn=un();function pn(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function mn(e,t,n){n!==void 0&&(e[t]=n)}function hn(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function gn(e,t,n){if(!hn(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function _n(e,t,n){let r=e.startedAt??n,i=cn(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:dn(e),branchKind:i,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function vn(e,t,n){let r=pn(e.importStatus,t.importStatus);gn(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function yn(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=cn(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),mn(e,`adapterId`,t.adapterId),mn(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),mn(e,`isSidechain`,t.isSidechain),mn(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function bn(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function xn(e,t,n){let r=e.discoveredAt;vn(e,t,n),yn(e,t),bn(e,t,r)}function Sn(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function Cn(e,t,n){if(n){e.emit(A.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(A.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function wn(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function Tn(e,t,n){e.emit(A.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(A.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function En(e){let{bus:t,store:n,cloneSession:r,populateAgents:i}=e;return[t.on(w.importUpsert,e=>{let r=e.payload,i=Array.from(n.values()).find(e=>e.adapterSessionId===r.externalSessionId&&e.source===r.source),a=fn(),o=i===void 0,s=i??_n(r,crypto.randomUUID(),a);i?(xn(i,r,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&Sn(n,i)):(n.set(s.sessionId,s),Sn(n,s)),Cn(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),t.on(w.getByLogFilePath,async e=>{let a=Array.from(n.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!a){e.setResult({session:null});return}let o=await i(t,a.sessionId);e.setResult({session:{...r(a),agents:o}})}),t.on(w.listImported,async e=>{let{source:a,importStatus:o}=e.payload,s=Array.from(n.values()).filter(e=>e.isImported===!0).filter(e=>a===void 0||e.source===a).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...r(e),agents:await i(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(w.countBySource,e=>{let t=Array.from(n.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(wn(t))}),t.on(w.updateImportStatus,e=>{let r=n.get(e.payload.sessionId),i=e.payload.importStatus;if(!r||r.importStatus===i){e.setResult({success:!1});return}r.importStatus=i,i===`imported`&&r.status===`discovered`&&(r.status=`active`),e.setResult({success:!0}),Tn(t,r,i)})]}async function Dn(e,t){let n=await e.requestOptional(l.listBySession,{sessionId:t});return n.handled?n.data.agents:[]}function G(e){return structuredClone(e)}function K(e,t,n){n!==void 0&&(e[t]=n)}function On(e,t,n){n!==void 0&&(e[t]=n??void 0)}function kn(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function An(e,t){K(e,`status`,t.status),K(e,`parentSessionId`,t.parentSessionId),K(e,`contextInheritance`,t.contextInheritance),K(e,`rootSessionId`,t.rootSessionId),K(e,`forkPointMessageId`,t.forkPointMessageId),K(e,`branchKind`,t.branchKind),K(e,`isOrchestrated`,t.isOrchestrated),K(e,`clientId`,t.clientId),K(e,`clientAccountId`,t.clientAccountId),K(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),K(e,`title`,t.title),K(e,`targetWorkingDirectory`,t.targetWorkingDirectory),K(e,`createdAt`,t.createdAt),K(e,`lastActivityAt`,t.lastActivityAt),K(e,`machineId`,t.machineId),On(e,`executionTargetId`,t.executionTargetId),On(e,`approvalPolicyOverride`,t.approvalPolicyOverride),On(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function jn(e,t){return e.on(w.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=kn(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...G(t),agents:await Dn(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function Mn(e,t){return e.on(w.update,async n=>{let r=structuredClone(Ce.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}let a=G(i);U(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),An(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),W(e,a,G(i))})}function Nn(e){let t=new Map,n=[];return n.push(e.on(w.get,async n=>{let r=t.get(n.payload.sessionId);if(!r){n.setResult({session:null});return}let i=await Dn(e,n.payload.sessionId);n.setResult({session:{...G(r),agents:i}})})),n.push(e.on(w.set,async n=>{let{sessionId:r,session:i,ifAbsent:a}=Se.parse(n.payload);if(a&&t.has(r)){n.setResult({success:!1,clientAccountChanged:!1});return}let o=structuredClone(i),s=t.get(r)??null,c=s?G(s):null;U(s,o),t.set(r,o),n.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(o.clientAccountId??null)}),W(e,c,G(o))})),n.push(e.on(w.delete,async e=>{t.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),n.push(jn(e,t)),n.push(e.on(w.getChildren,e=>{let{sessionId:n}=e.payload,r=Array.from(t.values()),i=r.filter(e=>e.parentSessionId===n),a=new Set(r.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),n.push(e.on(w.getStatusCounts,e=>{e.payload;let n=Array.from(t.values()),r=n.filter(e=>e.status===`active`).length,i=n.filter(e=>e.status===`closed`).length,a=n.filter(e=>e.status===`archived`).length,o=n.filter(e=>e.status===`discovered`).length;e.setResult({all:r+i+a+o,active:r,closed:i,archived:a,discovered:o})})),n.push(Mn(e,t)),n.push(Pn(e,t)),n.push(...En({bus:e,store:t,populateAgents:Dn,cloneSession:G})),()=>n.forEach(e=>e())}function Pn(e,t){return e.on(w.getByAdapterSessionId,async n=>{let{adapterSessionId:r,source:i,adapterName:a}=n.payload,o=Array.from(t.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===r&&(i===void 0||e.source===i)&&(a===void 0||e.adapterName===a)),s=o[0];if(o.length!==1||s===void 0){n.setResult({session:null});return}let c=await e.requestOptional(l.listBySession,{sessionId:s.sessionId}),u=c.handled?c.data.agents:[];n.setResult({session:{...G(s),agents:u}})})}const Fn=r.postgres,In=t.postgres,q=ze({sessions:n,agents:e},{sessions:Fn,agents:In});function Ln(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return P(n===null?z(t.clientId):L(t.clientId,n),r===null?z(t.clientAccountId):L(t.clientAccountId,r),i===null?z(t.lastClientIdentityObservation):L(t.lastClientIdentityObservation,i))}function Rn(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?pe.parse(e.compressionMode):void 0}}function zn(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 Bn(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function Vn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.get,async e=>{let[t]=await n.select().from(r).where(L(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?Rn(t):null})})}function Hn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.set,async e=>{let{agent:t}=e.payload,i=zn(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:i});e.setResult({success:M(a)})})}function Un(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.delete,async e=>{let t=await n.delete(r).where(L(r.agentId,e.payload.agentId));e.setResult({success:M(t)})})}function Wn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[L(r.adapterName,t)];i&&i!==`all`&&a.push(L(r.status,i));let o=a.length>1?P(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(Rn)})})}function Gn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(L(r.sessionId,t));e.setResult({agents:i.map(Rn)})})}function Kn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.updateStatus,async e=>{let{agentId:t,status:i}=e.payload,a=Date.now(),o=await n.update(r).set({status:i,lastActivityAt:a}).where(L(r.agentId,t));e.setResult({success:M(o)})})}function qn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(L(r.agentId,t));e.setResult({success:M(a)})})}function Jn(e){let{bus:t,db:n}=e,{agents:r}=N(n,q);return t.on(l.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(L(r.agentId,t));e.setResult({success:M(d)})})}function Yn(e,t){let n={bus:e,db:t},r=[Vn(n),Hn(n),Un(n),Wn(n),Gn(n),Kn(n),qn(n),Jn(n)];return()=>Bn(r)}function J(e){return e??void 0}function Xn(e){if(e)try{let t=JSON.parse(e),n=Ze.safeParse(t);return n.success?n.data:void 0}catch{return}}function Zn(e){if(e)try{let t=JSON.parse(e),n=he.safeParse(t);return n.success?n.data:void 0}catch{return}}function Y(e,t){let n=Zn(e.forkTransforms),r=Xn(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:J(e.leadAgentId),parentSessionId:J(e.parentSessionId),contextInheritance:J(e.contextInheritance),rootSessionId:J(e.rootSessionId),forkPointMessageId:J(e.forkPointMessageId),branchKind:J(e.branchKind),adapterName:J(e.adapterName),adapterSessionId:J(e.adapterSessionId),adapterId:J(e.adapterId),clientId:J(e.clientId),clientAccountId:J(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:J(e.isOrchestrated),isImported:J(e.isImported),title:J(e.title),summary:J(e.summary),summaryUpdatedAt:J(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:J(e.targetWorkingDirectory),executionTargetId:J(e.executionTargetId),agents:t.map(Rn),approvalPolicyOverride:J(e.approvalPolicyOverride),metadata:J(e.metadata),spawningToolCallId:J(e.spawningToolCallId),source:J(e.source),parentExternalSessionId:J(e.parentExternalSessionId),logFilePath:J(e.logFilePath),discoveredAt:J(e.discoveredAt),importStatus:J(e.importStatus),isSidechain:J(e.isSidechain),machineId:J(e.machineId)}}function Qn(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 $n(e,t,n){if(!n||t.length===0)return{};let{messages:r}=N(e,o),i=e.select({sessionId:r.sessionId,minTimestamp:B`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(P(L(r.role,`user`),R(r.sessionId,t))).groupBy(r.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:r.sessionId,preview:r.contentText}).from(r).innerJoin(i,P(L(r.sessionId,i.sessionId),L(r.timestamp,i.minTimestamp))).where(L(r.role,`user`)),s=new Map;for(let e of a)s.has(e.sessionId)||s.set(e.sessionId,e.preview);let c=await e.select({sessionId:r.sessionId,count:F()}).from(r).where(R(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of c)l.set(e.sessionId,e.count);return{previewBySession:s,countBySession:l}}function er(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function tr(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function nr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,q);return t.on(w.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[L(r.adapterSessionId,t)];a!==void 0&&s.push(L(r.source,a)),o!==void 0&&s.push(L(r.adapterName,o));let c=await n.select().from(r).where(P(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(L(i.sessionId,l.sessionId));e.setResult({session:Y(l,u)})})}function rr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q),{messages:i}=N(n,o);return t.on(w.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(L(r.parentSessionId,t));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await n.select({sessionId:i.sessionId,count:F()}).from(i).where(R(i.sessionId,o)).groupBy(i.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await n.select({parentSessionId:r.parentSessionId,count:F()}).from(r).where(R(r.parentSessionId,o)).groupBy(r.parentSessionId),u=new Set;for(let e of l)e.parentSessionId&&u.add(e.parentSessionId);let d=a.map(e=>e.forkPointMessageId).filter(e=>e!==null),f=new Map;if(d.length>0){let e=await n.select({messageId:i.messageId,adapterMessageId:i.adapterMessageId}).from(i).where(P(L(i.sessionId,t),R(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}const ir=un();function ar(e){return e?JSON.stringify(e):null}function or(e,t){return B`
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 sr(e,t){let n=t===`postgres`?B`excluded.metadata || ${e.metadata}`:B`(
15
- SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
16
- ${or(B`excluded.metadata`,B`inc`)}
17
- WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
18
- UNION ALL
19
- ${or(B`${e.metadata}`,B`ex`)}
20
- ) AS mk
21
- )`;return B`
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 cr(e,t,n){return t===void 0?B`${e}`:B`
28
- CASE
29
- WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
30
- ELSE ${e}
31
- END
32
- `}function lr(e){return B`
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 ur(e,t){return t===`live`?B`
39
- CASE
40
- WHEN ${e.status} = 'discovered' THEN 'active'
41
- ELSE ${e.status}
42
- END
43
- `:B`
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 ${lr(e)} = 'discovered' THEN excluded.status
48
- ELSE ${e.status}
49
- END
50
- `}function dr(e,t,n,r,i){return{status:ur(e,i),isImported:!0,importStatus:lr(e),adapterName:B`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:B`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:B`COALESCE(${e.source}, excluded.source)`,logFilePath:B`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:B`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:B`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:B`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:B`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:B`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:B`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:B`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:B`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:B`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?B`${e.machineId}`:r===null?B`NULL`:B`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:sr(e,n),createdAt:cr(e.createdAt,t,e),lastActivityAt:cr(e.lastActivityAt,t,e)}}function fr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q),{dialect:i}=Ve(n);return t.on(w.importUpsert,async e=>{let a=e.payload,{externalSessionId:o,source:s,clientId:c,adapterId:l,cwd:u,logFilePath:d,startedAt:f,title:p,kind:m,parentAdapterSessionId:h,forkPointMessageId:g,metadata:_,lastClientIdentityObservation:v,importStatus:ee,isSidechain:y,machineId:te,activation:b}=a,ne=ir(),x=crypto.randomUUID(),S=f??ne,C=cn(m)??null,w=h??null,[re]=await n.insert(r).values({sessionId:x,status:dn(a),isImported:!0,importStatus:ee??`discovered`,adapterName:s,adapterSessionId:o,source:s??null,clientId:c??null,adapterId:l??null,targetWorkingDirectory:u??null,logFilePath:d??null,forkPointMessageId:g??null,branchKind:C,parentExternalSessionId:w,discoveredAt:ne,title:p??null,metadata:_??null,lastClientIdentityObservation:ar(v),isSidechain:y??null,machineId:te??null,createdAt:S,lastActivityAt:S}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:dr(r,f,i,te,b)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),ie=re.sessionId===x;await pr(t,n,re,ie,C,S,s),e.setResult({sessionId:re.sessionId,created:ie})})}async function pr(e,t,n,r,i,a,o){if(r){let r=await mr(t,n.sessionId,n.parentExternalSessionId,o);e.emit(A.created,{sessionId:n.sessionId,parentSessionId:r,branchKind:i,createdAt:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e))}else n.parentExternalSessionId!==null&&n.parentSessionId===null&&await mr(t,n.sessionId,n.parentExternalSessionId,o),e.emit(A.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function mr(e,t,n,r){let{sessions:i}=N(e,q);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(P(L(i.adapterSessionId,n),L(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(L(i.sessionId,t)),a.sessionId}function hr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,q);return t.on(w.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(L(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(L(i.sessionId,a.sessionId));e.setResult({session:Y(a,o)})})}function gr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,q);return t.on(w.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[L(r.isImported,!0)];t!==void 0&&o.push(L(r.source,t)),a!==void 0&&o.push(L(r.importStatus,a));let s=P(...o),c=await n.select().from(r).where(s).orderBy(I(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Qn(await n.select().from(i).where(R(i.sessionId,l)));e.setResult({sessions:c.map(e=>Y(e,u.get(e.sessionId)??[]))})})}function _r(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:B`count(*)`}).from(r).where(P(L(r.isImported,!0),L(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 vr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:B`
51
- CASE
52
- WHEN ${r.status} = 'discovered' THEN 'active'
53
- ELSE ${r.status}
54
- END
55
- `}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(P(L(r.sessionId,i),Ye(z(r.importStatus),B`${r.importStatus} <> ${a}`))).returning({adapterSessionId:r.adapterSessionId,adapterName:r.adapterName,source:r.source}),c=s!==void 0;if(e.setResult({success:c}),c){t.emit(A.importStatusChanged,{sessionId:i,importStatus:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let e=s.source??s.adapterName;a===`imported`&&s.adapterSessionId&&e&&t.emit(A.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function yr(e,t){let n={bus:e,db:t};return[fr(n),hr(n),gr(n),_r(n),vr(n)]}function X(e){return e??null}function br(e){return e?JSON.stringify(e):null}function xr(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:X(e.leadAgentId),parentSessionId:X(e.parentSessionId),contextInheritance:X(e.contextInheritance),rootSessionId:X(e.rootSessionId),forkPointMessageId:X(e.forkPointMessageId),branchKind:X(e.branchKind),adapterName:X(e.adapterName),adapterSessionId:X(e.adapterSessionId),adapterId:X(e.adapterId),clientId:X(e.clientId),clientAccountId:X(e.clientAccountId),lastClientIdentityObservation:Sr(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:X(e.title),summary:X(e.summary),summaryUpdatedAt:X(e.summaryUpdatedAt),forkTransforms:br(e.forkTransforms),targetWorkingDirectory:X(e.targetWorkingDirectory),executionTargetId:X(e.executionTargetId),approvalPolicyOverride:X(e.approvalPolicyOverride),metadata:X(e.metadata),spawningToolCallId:X(e.spawningToolCallId),source:X(e.source),parentExternalSessionId:X(e.parentExternalSessionId),logFilePath:X(e.logFilePath),discoveredAt:X(e.discoveredAt),importStatus:X(e.importStatus),machineId:X(e.machineId)}}function Sr(e){return e?JSON.stringify(e):null}function Z(e,t,n){n!==void 0&&(e[t]=n)}function Cr(e,t,n){n!==void 0&&(e[t]=n??null)}function wr(e,t){let n={};return Z(n,`status`,e.status),Z(n,`parentSessionId`,e.parentSessionId),Z(n,`contextInheritance`,e.contextInheritance),Z(n,`rootSessionId`,e.rootSessionId),Z(n,`forkPointMessageId`,e.forkPointMessageId),Z(n,`branchKind`,e.branchKind),Z(n,`isOrchestrated`,e.isOrchestrated),Z(n,`clientId`,e.clientId),Z(n,`clientAccountId`,e.clientAccountId),Z(n,`title`,e.title),Z(n,`targetWorkingDirectory`,e.targetWorkingDirectory),Z(n,`createdAt`,e.createdAt),Z(n,`lastActivityAt`,e.lastActivityAt),Z(n,`machineId`,e.machineId),Cr(n,`executionTargetId`,e.executionTargetId),Cr(n,`approvalPolicyOverride`,e.approvalPolicyOverride),Cr(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=B`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=Sr(e.lastClientIdentityObservation)),n}function Tr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,q);return t.on(w.get,async e=>{let[t]=await n.select().from(r).where(L(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(L(i.sessionId,e.payload.sessionId));e.setResult({session:Y(t,a)})})}function Er(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=Se.parse(e.payload),s=xr(a);if(o){U(null,a);let o=M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&W(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(L(r.sessionId,i)).limit(1),c=o?Y(o,[]):null;if(U(c,a),M(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:s,setWhere:Ln(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),W(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function Dr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.delete,async e=>{await n.delete(r).where(L(r.sessionId,e.payload.sessionId)),e.setResult({success:!0})})}function Or(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.update,async e=>{let i=Ce.request.parse(e.payload),{sessionId:a}=i,o=wr(i,r),s=tr(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}if(!s){let t=await n.update(r).set(o).where(L(r.sessionId,a));e.setResult({success:M(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(L(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let c=Y(s,[]),l=er(c,i);if(U(c,l),M(await n.update(r).set(o).where(P(L(r.sessionId,a),Ln(s,r))))){e.setResult({success:!0,clientAccountChanged:(c.clientAccountId??null)!==(l.clientAccountId??null)}),W(t,c,l);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function kr(e,t){let n=[];return e.status!==`all`&&n.push(L(t.status,e.status)),e.executionTargetId!==void 0&&n.push(L(t.executionTargetId,e.executionTargetId)),P(...n)}function Ar(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=N(n,q);return t.on(w.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=kr({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(I(r.lastActivityAt)):await u.orderBy(I(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:F()}).from(r).where(l):n.select({count:F()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Qn(await n.select().from(i).where(R(i.sessionId,m))),{previewBySession:g,countBySession:_}=await $n(n,m,s),v=d.map(e=>{let t=Y(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 jr(e){let{bus:t,db:n}=e,{sessions:r}=N(n,q);return t.on(w.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:F()}).from(r).groupBy(r.status),i=0,a=0,o=0,s=0;for(let e of t)e.status===`active`?i=e.count:e.status===`closed`?a=e.count:e.status===`archived`?o=e.count:e.status===`discovered`&&(s=e.count);let c=i+a+o+s;e.setResult({all:c,active:i,closed:a,archived:o,discovered:s})})}function Mr(e,t){let n={bus:e,db:t},r=[Tr(n),Er(n),Dr(n),Or(n),Ar(n),rr(n),nr(n),jr(n),...yr(e,t)];return()=>r.forEach(e=>e())}function Nr(e,t){let{adapterId:n,adapterSessionId:r,cwd:i,model:a,allowedDirectories:o,providerConfigId:s}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.adapterSessionId=r),i!==void 0&&(e.cwd=i),a!==void 0&&(e.model=a),o!==void 0&&(e.allowedDirectories=o),s!==void 0&&(e.providerConfigId=s),!0)}function Pr(e){let t=new Map,n=[];return n.push(e.on(l.get,e=>{let n=t.get(e.payload.agentId)??null;e.setResult({agent:n})})),n.push(e.on(l.set,e=>{t.set(e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),n.push(e.on(l.delete,e=>{let n=t.delete(e.payload.agentId);e.setResult({success:n})})),n.push(e.on(l.listByAdapter,e=>{let{adapterName:n,status:r}=e.payload,i=Array.from(t.values()).filter(e=>e.adapterName===n);r&&r!==`all`&&(i=i.filter(e=>e.status===r)),e.setResult({agents:i})})),n.push(e.on(l.listBySession,e=>{let n=Array.from(t.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:n})})),n.push(e.on(l.updateStatus,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.status=e.payload.status,n.lastActivityAt=Date.now(),e.setResult({success:!0})})),n.push(e.on(l.updateActivity,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.lastActivityAt=e.payload.lastActivityAt,e.setResult({success:!0})})),n.push(e.on(l.updateRuntime,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}let{adapterId:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=e.payload;if(!Nr(n,{adapterId:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c})){e.setResult({success:!1});return}n.lastActivityAt=Date.now(),e.setResult({success:!0})})),()=>n.forEach(e=>e())}async function Fr(e,t){if(t.length===0)return new Map;let{agents:n}=N(e,q),r=[...new Set(t)],i=await e.select().from(n).where(R(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 Ir(e,t){return Ue(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Lr(e,t){if(t.length===0)return new Map;let{messages:n}=N(e,o),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:F()}).from(n).where(R(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Rr(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function zr(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=xe.safeParse(t);return n.success?n.data:void 0}catch{return}}function Br(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:Rr(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:zr(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 Vr(e,t){let n=Ue(t).fts,r=[];return r.push(e.on(w.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 Fr(t,d),p=await Ir(t,d),m=await Lr(t,d),h=l.map(e=>Br(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Hr(e,t){return(await Ve(e).all(B`
56
- WITH RECURSIVE ancestors AS (
57
- SELECT session_id, parent_session_id
58
- FROM sessions
59
- WHERE session_id = ${t}
60
-
61
- UNION ALL
62
-
63
- SELECT s.session_id, s.parent_session_id
64
- FROM sessions s
65
- JOIN ancestors a ON s.session_id = a.parent_session_id
66
- )
67
- SELECT session_id FROM ancestors
68
- `)).map(e=>e.session_id)}const Ur=new Map;function Wr(e,t){let n=(Ur.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return Ur.set(e,r),r.then(()=>{Ur.get(e)===r&&Ur.delete(e)}),n}function Gr(e,t){return`${e}:${t}`}async function Kr(e,t,n){let r=await e.requestOptional(a.getByIds,{sessionId:t,eventIds:[Gr(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function qr(e,t){return Wr(`${t.sessionId}${t.turnAnchorId}`,()=>Jr(e,t))}async function Jr(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(C.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(T.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await Kr(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 Yr(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function Yr(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:l}=t,d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:l},f={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:l};await u(e,{type:`turn.started`,sessionId:i,payload:d,eventId:Gr(`turn.started`,n.turnId)}),await u(e,{type:`turn.completed`,sessionId:i,payload:f,eventId:Gr(`turn.completed`,n.turnId)}),await e.emit(A.turn.started,d),await e.emit(A.turn.completed,f)}const Q=`observed-session-ingestion-policy`;function Xr(e,t){return e.emit(de.register,{capabilityId:Q,provider:t})}function Zr(e,t){return e.emit(de.unregister,{capabilityId:Q,providerId:t})}const Qr=se(`log-import`,{listImporters:{request:E.object({}),response:E.object({importers:E.array(E.object({adapterName:E.string(),clientId:E.string().optional()}))})},importFile:{request:E.object({filePath:E.string(),adapterName:E.string(),ingestionMarker:we.optional()}),response:E.discriminatedUnion(`status`,[E.object({status:E.literal(`imported`),sessionId:E.string(),messageCount:E.number(),turnCount:E.number()}),E.object({status:E.literal(`skipped`),reason:E.enum([`no-importer`,`file-missing`])})])},importSession:{request:E.object({adapterSessionId:E.string(),adapterName:E.string(),ingestionMarker:we.optional()}),response:E.object({sessionId:E.string(),messageCount:E.number()})}}).subjects;function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function $r(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 ei(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function ti(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var ni=class{bus;managedAdapterSessionIds=new Set;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=D){this.bus=e,this.cleanups.push(this.bus.on(fe.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(fe.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(fe.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(de.register,e=>{let{provider:t}=e.payload;$r(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Q}}),this.bus.on(de.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Q}}))}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(w.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!ti(i))return;let a=await this.bus.requestOptional(_e.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(w.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(Qr.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=ri(e.metadata),i=await this.decideImportStatus({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}),a=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,o=a===void 0?{kind:ve,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:me,parentAdapterSessionId:a,forkPointMessageId:null};if(!(await this.bus.requestOptional(w.importUpsert,{...o,externalSessionId:t,source:n.adapterName,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:i,activation:i===`tracking`?`live`:void 0,...r===void 0?{}:{metadata:r}})).handled){$(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t});return}this.managedAdapterSessionIds.has(t)&&await this.reconcileTrackingStub(e.clientId,t)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Qr.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(Qr.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(w.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if(ei(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function ri(e){if(e===void 0)return;let t=xe.safeParse(e);return t.success?t.data:void 0}const ii=Be(`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()})),ai=ii.sqlite,oi=ii.postgres,si=ze({importCursors:ai},{importCursors:oi});function ci(e,t){let{importCursors:n}=N(t,si),r=[];return r.push(e.on(Qe.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(L(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(Qe.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(Qe.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(L(n.filePath,r));e.setResult({success:M(i)})})),()=>{r.forEach(e=>e())}}Pe(`embeddings`,{id:Me(`id`).primaryKey({autoIncrement:!0}),entityType:Fe(`entity_type`).notNull(),entityId:Fe(`entity_id`).notNull(),model:Fe(`model`).notNull(),dimensions:Me(`dimensions`).notNull(),content:Fe(`content`),embedding:Ae(`embedding`,{mode:`buffer`}).notNull(),createdAt:Me(`created_at`).notNull()},e=>[je(`idx_embeddings_entity`).on(e.entityType,e.entityId),je(`idx_embeddings_model`).on(e.model),Ie(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function li(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 ui=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=Ve(e),this.engine=He(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=B.identifier(n),i=B.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(B`CREATE TABLE IF NOT EXISTS ${r} (
69
- entity_type TEXT NOT NULL,
70
- entity_id TEXT NOT NULL,
71
- embedding ${i} NOT NULL,
72
- PRIMARY KEY (entity_type, entity_id)
73
- )`),this.knownTables.add(n),n}async upsertIndexed(e,t,n,r,i){let a=await this.ensureIndexTable(e,t),o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s=B.identifier(a);await this.rawSql.run(B`INSERT INTO ${s} (entity_type, entity_id, embedding)
74
- VALUES (${n}, ${r}, ${o})
75
- ON CONFLICT(entity_type, entity_id) DO UPDATE SET
76
- embedding = excluded.embedding`)}async searchSimilar(e,t,n=10){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return[];this.knownTables.add(r)}let i=B.identifier(r),a=await this.rawSql.all(B`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=li(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=B.identifier(r);await this.rawSql.run(B`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)}},di=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 x({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await f(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 u(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(A.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function fi(e,t){let{sessions:n}=N(t,q);async function r(i,a,o,s=0){if(s>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let c=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(P(L(n.parentExternalSessionId,i),L(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(w.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(A.import.completed,async i=>{let{adapterSessionId:a,sessionId:o,source:s}=i.payload,c=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(P(L(n.parentExternalSessionId,a),L(n.source,s),z(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(w.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(w.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const pi=new Set([`Agent`,`spawn_subagent`]),mi=`[^A-Za-z0-9_-]`;function hi(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function gi(e,t){return t.test(e)}async function _i(e,t){let n=[],r,i=0;do{let a=await e.request(T.getBySession,{sessionId:t,order:`asc`,...r===void 0?{}:{after:r}});if(n.push(...a.messages),r=a.nextCursor??void 0,i+=1,r!==void 0&&i>=1e3)throw Error(`Exceeded 1000 message pages while loading session ${t}`)}while(r!==void 0);return n}function vi(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&pi.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function yi(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(gi(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 bi(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 xi(e){return[...e].map(e=>{let t=hi(e);return{id:e,pattern:RegExp(`(^|${mi})${t}($|${mi})`)}})}async function Si(e,t,n){let{children:r}=await e.request(w.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(w.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=xi(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await _i(e,t.sessionId),r=vi(n);if(r.length===0)return null;let i=yi(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(w.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function Ci(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(w.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(w.getChildren,{sessionId:s}),l=await wi(e,c);if(l.size===0)return;let u=await _i(e,a),d=vi(u);if(d.length===0)return;let f=yi(u,xi(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(w.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 wi(e,t){return bi(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(w.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function Ti(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(w.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await Si(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await Ci(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Ei(e){return[...e].map(e=>{let t=hi(e);return{id:e,pattern:RegExp(`(^|${mi})${t}($|${mi})`)}})}async function Di(e,t,n){return bi(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(w.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Oi(e){return e.on(A.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(w.getChildren,{sessionId:n}),a=await Di(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await _i(e,n),c=vi(s);if(c.length===0)return;let l=yi(s,Ei(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(w.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(w.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 ki(e){return e.on(O.session.discovered,async t=>{let n=be.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=ln({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(w.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 Ai=class{bus;agentStates=new Map;sessionStates=new Map;unsubscribe;staleThresholdMs;constructor(e,t){this.bus=e,this.staleThresholdMs=t?.staleThresholdMs??36e5}start(){this.unsubscribe||=this.bus.on(k.contextWindow.updated,e=>{let{agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s}=e.payload;if(!n)return;let c={agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s,updatedAt:Date.now()};this.agentStates.set(t,c),this.recomputeSessionState(n)})}stop(){this.unsubscribe?.(),this.unsubscribe=void 0,this.agentStates.clear(),this.sessionStates.clear()}getSessionState(e){return this.sessionStates.get(e)}clearSession(e){this.sessionStates.delete(e);for(let[t,n]of this.agentStates)n.sessionId===e&&this.agentStates.delete(t)}recomputeSessionState(e){let t=Date.now(),n;for(let[r,i]of this.agentStates){if(t-i.updatedAt>this.staleThresholdMs){this.agentStates.delete(r);continue}i.sessionId===e&&(!n||i.percentage>n.percentage)&&(n=i)}n&&this.sessionStates.set(e,{currentTokens:n.currentTokens,maxTokens:n.maxTokens,percentage:n.percentage,level:n.level,worstAgentId:n.agentId,lastUpdatedAt:n.updatedAt})}};export{_t as $,Y as A,en as B,Ir as C,Mr as D,Pr as E,an as F,Yt as G,$t as H,on as I,H as J,qt as K,rn as L,Nn as M,cn as N,$n as O,ln as P,Dt as Q,nn as R,Lr as S,Rr as T,Zt as U,Qt as V,Xt as W,Vt as X,Ht as Y,Mt as Z,Zr as _,fi as a,Vr as b,ci as c,Qr as d,ht as et,ni as f,Xr as g,Q as h,Ti as i,Yn as j,Qn as k,ai as l,ti as m,ki as n,di as o,ei as p,Ut as q,Oi as r,ui as s,Ai as t,nt as tt,ii as u,qr as v,Br as w,Fr as x,Hr as y,tn as z};
@@ -1 +0,0 @@
1
- import{B as e,x as t}from"./handlers-B74FvKlA.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{D as r,K as i,L as a,Q as o,W as s,a as c,b as l,c as u,et as d,f,i as ee,j as te,n as ne,r as re}from"./session-CX6QDhi2.mjs";import{n as p}from"./namespace-DBHwyhME.mjs";import{t as ie}from"./capability-service-XlymTzz1.mjs";import"./services/adapter-subsystem/index.mjs";import{i as ae,s as oe}from"./model-registry-rYICIwyR.mjs";import{t as se}from"./tool-approval-service-DEiMKTv9.mjs";import{t as ce}from"./tray-menu-service-B2AxiQqL.mjs";import{r as m,t as h}from"./handler-BFNvtv5t.mjs";import{n as le}from"./package-CF_Zm2v4.mjs";import{t as ue}from"./filesystem-service-Bmyqo6po.mjs";import{z as g}from"zod";import{createHash as de}from"node:crypto";import{MakaioError as fe,createMakaioContext as pe}from"@makaio/framework/core";import{MakaioBus as _}from"@makaio/framework/bus";import{AdapterSubjects as me,ArtifactSubjects as v,CanonicalModelSubjects as he,DEFAULT_HARNESSES as ge,HarnessDefinitionCreateSchema as _e,HarnessSubjects as y,JsonValueSchema as ve,ToolSubjects as b,TransitionRuleDefinitionSchema as ye,WorkflowBlocksSubjects as be,WorkflowSubjects as xe,dep as x,extensionToken as S,validateToolAdapterIdentity as Se,zodSchemaToJsonRecord as C}from"@makaio/framework/contracts";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Ce,ClientSessionAccountObserveSchema as we,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{MaterializationSubjects as k}from"@makaio/framework/contracts/materialization";import{FILE_ACCESS_RULES_KEY as Te,FILE_ACCESS_RULES_KEY as Ee,ToolErrorCodes as A,errorToToolResult as De,extractToolFilePath as Oe,toolError as j,toolSuccess as ke}from"@makaio/framework/tools";import{ConditionSchema as Ae,evaluate as je}from"@makaio/framework/rules";import{evaluateSync as Me}from"@makaio/framework/expression";import{GitService as Ne}from"@makaio/framework/git";const Pe=[{type:`supersedes`,symmetry:`asymmetric`},{type:`contradicts`,symmetry:`symmetric`},{type:`derives_from`,symmetry:`asymmetric`},{type:`responds_to`,symmetry:`asymmetric`},{type:`contains`,symmetry:`asymmetric`},{type:`refines`,symmetry:`asymmetric`},{type:`scopes`,symmetry:`asymmetric`},{type:`references`,symmetry:`asymmetric`},{type:`evidenced_by`,symmetry:`asymmetric`}],M={extension:0,"factory-repo":1,"target-repo":2},N={source:`extension`,ownerKey:`extension:bus`};function P(e){return`${e.source}:${e.ownerKey}`}function Fe(e,t){return e.source===t.source&&e.ownerKey===t.ownerKey}function F(e){return structuredClone(e)}function I(e,t){return`${e}@${t}`}var L=class extends w{kinds=new Map;kindContributions=new Map;nextKindContributionOrder=0;relationTypes=new Map;constructor(e){super(e)}async onInit(){for(let e of Pe)this.relationTypes.set(e.type,e);this.registerHandler(v.kind.register,e=>{this.registerKind(e.payload),e.setResult({registered:!0})}),this.registerHandler(v.kind.list,e=>{let{kind:t}=e.payload,n=[...this.kinds.values()].filter(e=>!t||e.kind===t).map(F);e.setResult({kinds:n})}),this.registerHandler(v[`relation-type`].register,e=>{this.storeRelationType(e.payload),e.setResult({registered:!0})}),this.registerHandler(v[`relation-type`].list,e=>{let{type:t}=e.payload,n=[...this.relationTypes.values()].filter(e=>!t||e.type===t).map(F);e.setResult({relationTypes:n})})}compareKindContributions(e,t){let n=M[e.owner.source]-M[t.owner.source];return n===0?e.owner.source===`extension`?t.order-e.order:e.order-t.order:n}findSameTierRepoConflict(e,t,n){return[...e.values()].find(e=>!Fe(e.owner,t)&&e.owner.source===t.source&&t.source!==`extension`&&e.order<=n)}recomputeKindWinner(e){let t=this.kindContributions.get(e),n=this.kinds.get(e);if(t===void 0||t.size===0){this.kindContributions.delete(e),this.kinds.delete(e),this.emitKindChangedFromKey(e,n);return}let r;for(let e of t.values())(r===void 0||this.compareKindContributions(e,r)<0)&&(r=e);let i=r;this.kinds.set(e,F(i.registration)),JSON.stringify(n)!==JSON.stringify(i.registration)&&this.bus.emit(v.kind.changed,{kind:i.registration.kind,schemaVersion:i.registration.schemaVersion})}emitKindChangedFromKey(e,t){t!==void 0&&this.bus.emit(v.kind.changed,{kind:t.kind,schemaVersion:t.schemaVersion})}registerKind(e,t=N){let n=I(e.kind,e.schemaVersion),r=this.kindContributions.get(n)??new Map,i=P(t),a=r.get(i),o=t.source===`extension`?this.nextKindContributionOrder:a?.order??this.nextKindContributionOrder,s=this.findSameTierRepoConflict(r,t,o);if(s!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${n}' is already registered by '${s.owner.ownerKey}' at the same priority; keeping the existing owner.`);return}r.set(i,{owner:t,registration:F(e),order:t.source===`extension`||a===void 0?this.nextKindContributionOrder++:a.order}),this.kindContributions.set(n,r),this.recomputeKindWinner(n)}deregisterKind(e,t,n=N){let r=I(e,t),i=this.kindContributions.get(r);i!==void 0&&(i.delete(P(n)),this.recomputeKindWinner(r))}replaceKindRegistrationsForOwner(e,t){let n=new Set,r=P(e),i=new Map;for(let[e,t]of this.kindContributions.entries()){let a=t.get(r);a!==void 0&&(i.set(e,a.order),t.delete(r),n.add(e))}for(let a of t){let t=I(a.kind,a.schemaVersion),o=this.kindContributions.get(t)??new Map,s=e.source===`extension`?void 0:i.get(t),c=s??this.nextKindContributionOrder,l=this.findSameTierRepoConflict(o,e,c);if(l!==void 0){console.warn(`[ArtifactSchemaRegistry] Artifact kind '${t}' is already registered by '${l.owner.ownerKey}' at the same priority; keeping the existing owner.`);continue}o.set(r,{owner:e,registration:F(a),order:s??this.nextKindContributionOrder++}),this.kindContributions.set(t,o),n.add(t)}for(let e of n)this.recomputeKindWinner(e)}storeRelationType(e){let t=this.relationTypes.get(e.type);if(t){if(t.symmetry!==e.symmetry)throw Error(`Relation type '${e.type}' is already registered with different symmetry (existing: '${t.symmetry}', new: '${e.symmetry}')`);return}this.relationTypes.set(e.type,F(e))}getKind(e,t){let n=this.kinds.get(I(e,t));return n?F(n):void 0}getRelationType(e){let t=this.relationTypes.get(e);return t?F(t):void 0}onDestroy(){this.kinds.clear(),this.kindContributions.clear(),this.relationTypes.clear(),this.nextKindContributionOrder=0}},R=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function z(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function B(e){return e.priority??0}function Ie(e,t,n){return e.filter(e=>e.event===t&&z(e.filter,n)).sort((e,t)=>B(t)-B(e))}function Le(e,t,n){return e.filter(e=>e.event===t&&z(e.filter,n)).sort((e,t)=>B(t)-B(e))}function Re(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function ze(e,t){let{confidence:n,representations:r,...i}=e;return{...i,data:t.data,relations:[...t.relations],...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var V=class extends w{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=Ie(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Re(s,e)}};if(await t.handler(a),n)throw new R(n.reason,t.id)}return{draft:ze(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,projectionPolicy:s,skipDefaultProjection:c,meta:l}=n,u=Le(this.allHooks(),e,r),d=this.bus,f=!1;for(let n of u){if(c&&(n.priority??0)<0||f&&(n.priority??0)<0)continue;let u={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,projectionPolicy:s,bus:d,meta:l,preventDefault(){f=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await d.request(v.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(u)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function H(e){return structuredClone(e)}var Be=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(H);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,H(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?H(t):void 0}onDestroy(){this.namespaces.clear()}};function U(e){return structuredClone(e)}var Ve=class extends w{bindings=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(k.surfaceBinding.register,e=>{this.registerBinding(e.payload),e.setResult({registered:!0})}),this.registerHandler(k.surfaceBinding.list,e=>{let{provider:t,namespace:n}=e.payload,r=[...this.bindings.values()].filter(e=>(!t||e.provider===t)&&(!n||e.namespace===n)).map(U);e.setResult({bindings:r})})}registerBinding(e){let t=this.bindings.get(e.id);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Surface binding '${e.id}' is already registered with a different definition`);return}this.bindings.set(e.id,U(e)),this.bus.emit(k.surfaceBinding.changed,{id:e.id,provider:e.provider})}deregisterBinding(e){let t=this.bindings.get(e);t&&(this.bindings.delete(e),this.bus.emit(k.surfaceBinding.changed,{id:e,provider:t.provider}))}getBinding(e){let t=this.bindings.get(e);return t?U(t):void 0}onDestroy(){this.bindings.clear()}},W=class extends fe{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},He=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new W(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new W(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new W(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new W(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new W(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new W(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new W(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new W(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new W(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new W(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},Ue=class e extends w{constructor(e=_){super(e)}async onInit(){await this.bus.request(p.ensureReady,{});let e=new He(this.createDeps());this.registerHandler(he.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(p.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(p.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(p.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(p.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(p.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(p.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(p.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(p.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(oe.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(p.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const G={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,critical:!1,create:e=>new Ue(e.bus)};function We(e){let t=Se({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?j(A.VALIDATION_FAILED,n.message):ke(t.effectiveIdentity)}function Ge(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function Ke(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function qe(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var Je=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??_,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(b.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(b.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(b.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(b.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return j(A.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=We(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=qe(),l=Date.now();await this.bus.emit(b.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=j(A.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(b.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=De(t);return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=Ge(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Te]:i}}let r=pe({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return j(A.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return j(A.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=g.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=g.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await Ke(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},Ye=class extends w{triggersByExtension=new Map;stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(be.list,e=>{e.setResult({triggers:this.listTriggers(),steps:this.listSteps()})})}async register(e,t){let n=[],r=[],i=this.snapshotExtensionState(e),a=new Set;for(let e of this.triggersByExtension.values())for(let t of e)a.add(t.metadata.name);for(let e of this.stepsByExtension.values())for(let t of e)a.add(t.metadata.name);if(t.triggers)for(let r of t.triggers)this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,a),a.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:C(r.configSchema),outputSchema:C(r.outputSchema)});if(t.steps)for(let n of t.steps)this.assertExtensionNamespace(e,n.metadata),this.assertNoCollision(n.metadata,a),a.add(n.metadata.name),r.push({metadata:{...n.metadata,extensionName:e},configSchema:C(n.configSchema),inputSchema:C(n.inputSchema),outputSchema:C(n.outputSchema),runs:structuredClone(n.runs)});if(n.length>0&&this.triggersByExtension.set(e,n),r.length>0&&this.stepsByExtension.set(e,r),n.length>0||r.length>0){this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,i),t}}}async deregister(e){let t=this.snapshotExtensionState(e),n=this.triggersByExtension.delete(e),r=this.stepsByExtension.delete(e);if(n||r){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listTriggers(){return this.getCache().triggers.map(Xe)}listSteps(){return this.getCache().steps.map(Ze)}async emitChanged(e,t){await this.bus.emit(be.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,triggers:[...this.triggersByExtension.values()].flat(),steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{triggers:this.triggersByExtension.get(e),steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.triggers?this.triggersByExtension.set(e,t.triggers):this.triggersByExtension.delete(e),t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function Xe(e){return{metadata:Qe(e.metadata),configSchema:structuredClone(e.configSchema),outputSchema:structuredClone(e.outputSchema)}}function Ze(e){return{metadata:Qe(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function Qe(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function $e(e){return()=>({async execute(t,n){let{input:r={},executionHints:i}=t,{workflowId:a}=r;if(typeof a!=`string`||a.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(xe.start,{workflowId:a,input:et(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType},executionHints:i})}})}function et(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=Me(n,tt(t)),i=ve.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function tt(e){let t={...e};return{...t,ctx:t}}var nt=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,$e(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},rt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=ye.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Ae.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},it=class extends w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new rt,this.actionRegistry=new nt(e)}onInit(){this.registerHandler(v.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(v.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(v.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=je(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function at(e){return async t=>{let n=await ot(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=st(t),o=await e.requestOptional(D.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await mt(e,r,i,s)}}}async function ot(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function st(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:ft(e.payload)};return{observation:t,accountObserveRequest:ct(t)}}function ct(e){let t=e.payload,n=lt(t),r=ut(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:dt(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function lt(e){return pt(e.accountInfo)??e}function ut(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return g.array(Ce).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function dt(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function ft(e){return structuredClone(e)}function pt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function mt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const ht=S(`session-storage`).name;var gt=class extends w{constructor(e=_){super(e)}onInit(){let e=at(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(we.request.parse(t.payload)))})}};const _t={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[x(ht),x(`makaio.clients-core`)],critical:!1,create:e=>new gt(e.bus)},vt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function yt(e){let{harnesses:t}=await e.request(m.list,{}),n=new Set(t.map(e=>e.id));for(let t of ge){if(n.has(t.id))continue;let r={...t};await e.request(m.set,{harness:r})}}function J(e,t,n){return e??t??n}var bt=class extends w{static storage={drizzle:h};constructor(e=_){super(e)}async onInit(){await yt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(y.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(y.list,async e=>{let{harnesses:t}=await this.bus.request(m.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(y.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(y.delete,async e=>{let{deleted:t}=await this.bus.request(m.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(y.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(y.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(y.getSchema,({setResult:e})=>{let{$schema:t,...n}=g.toJSONSchema(_e);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(m.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(m.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(m.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(m.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(m.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(m.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(me.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${de(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const xt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T(h)},create:e=>new bt(e.bus)},Y=S(`session-storage`),X=S(`session-bridge`),Z=S(`session`),St=S(`session-orchestrator`),Ct=S(`observed-session-ingestion`),Q=S(`tool-registry`),wt=S(`tool-approval`),Tt=S(`tray-menu`),Et=S(`capability`),Dt=S(`model-registry`),Ot=S(`workflow-block-registry`),kt=S(`transition-pipeline`),At=S(`filesystem`),jt=S(`git`),Mt=S(`artifact-schema-registry`),Nt=S(`artifact-lifecycle-hook-registry`),Pt=S(`facet-namespace-registry`),Ft=S(`surface-binding-registry`),It={name:Mt.name,displayName:`Artifact Schema Registry`,version:`0.1.0`,critical:!0,create:e=>new L(e.bus)},Lt={name:Nt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)},Rt={name:Pt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new Be(e.bus)},zt={name:Ft.name,displayName:`Surface Binding Registry`,version:`0.1.0`,critical:!0,create:e=>new Ve(e.bus)},Bt={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,a)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(r(n,a)),s.push(e(n,a)),s.push(o(n,a)),s.push(i(n,a)),s.push(t(n,a)),s.push(te(n,a)),s.push(u(n,a)),s.push(l(n,a)),s.push(c(n,a)),s.push(ee(n)),s.push(re(n)),s.push(ne(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},$={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[x(Y.name)],critical:!0,create:e=>new a(e.bus)},Vt={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[x(X.name)],critical:!0,create:e=>new d(e.bus)},Ht={name:St.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[x(Z.name),x(G.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Ut={name:Ct.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[x(X.name)],critical:!1,create:e=>new f(e.bus)},Wt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new Je({bus:e.bus})},Gt={name:wt.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[x(Q.name)],critical:!0,create:e=>new se(e.bus)},Kt={name:Tt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ce(e.bus)},qt={name:Et.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new ie(e.bus)},Jt={name:Ot.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new Ye(e.bus)},Yt={name:kt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new it(e.bus)},Xt={name:At.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new ue(e.bus,e.machineId)},Zt={name:jt.name,displayName:`Git`,version:`0.1.0`,dependencies:[x(At.name)],critical:!0,create:e=>new Ne(e.bus)};function Qt(e){return{name:Dt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new ae({bus:t.bus,fetcher:e})}}const $t=[It,Lt,Rt,zt,Bt,$,_t,Vt,Ht,Ut,le,Wt,Gt,Kt,qt,xt,G,vt,Jt,Yt,Zt,Xt];function en(){let e=new Map;return{filter:e=>!!e.tools?.createToolsets,async processActivated(t,n,r){let i=r.getService(Q);if(!i)throw Error(`ToolRegistry is not available. Ensure toolRegistryPackage is included in the composition root.`);let a=n.tools.createToolsets(r),o=[];try{for(let e of a)await i.register(e),o.push(()=>i.deregister(e.metadata.name))}catch(e){for(let e=o.length-1;e>=0;--e)try{await o[e]()}catch(e){console.error(`[ToolContributionProcessor] Rollback error for "${t}":`,e)}throw e}e.set(t,o)},async processStopped(t){let n=e.get(t);if(n){for(let e=n.length-1;e>=0;--e)try{await n[e]()}catch(e){console.error(`[ToolContributionProcessor] Deregister error for "${t}":`,e)}e.delete(t)}}}}export{Gt as A,Je as B,Rt as C,Vt as D,Ht as E,it as F,Ve as G,Ue as H,rt as I,R as J,Be as K,nt as L,Yt as M,Kt as N,Bt as O,Jt as P,K as R,Qt as S,$ as T,He as U,G as V,W,L as Y,Tt as _,Mt as a,It as b,Dt as c,Y as d,Z as f,kt as g,Q as h,Nt as i,Wt as j,zt as k,X as l,wt as m,Oe as n,Et as o,Ft as p,V as q,en as r,Pt as s,Ee as t,St as u,Ot as v,$t as w,qt as x,Lt as y,Ye as z};