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

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 (549) hide show
  1. package/README.md +2 -0
  2. package/dist/.makaio-build.json +4 -3
  3. package/dist/{account-identity-DFx8pwKL.mjs → account-identity-B3vLwm9O.mjs} +1 -1
  4. package/dist/adapter-Dz1fX5Wa.mjs +1 -0
  5. package/dist/adapter-subsystem/index.d.mts +194 -20
  6. package/dist/adapter-subsystem/index.mjs +1 -1
  7. package/dist/adapters/acp-client/index.d.mts +105 -7
  8. package/dist/adapters/acp-client/index.mjs +2 -2
  9. package/dist/adapters/claude/index.d.mts +5 -5
  10. package/dist/adapters/config/index.d.mts +1 -1
  11. package/dist/adapters/config/index.mjs +1 -1
  12. package/dist/adapters/index.d.mts +405 -824
  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 +28 -7
  17. package/dist/adapters/stream-session/index.mjs +1 -1
  18. package/dist/{ajv-DD3SIL2i.mjs → ajv-krzJXh1X.mjs} +2 -2
  19. package/dist/artifact-Btbuib48.mjs +1 -0
  20. package/dist/attach-error-Cb3GbeKe.mjs +1 -0
  21. package/dist/{auth-DGEdiHF6.mjs → auth-C6tVtaOX.mjs} +1 -1
  22. package/dist/authority-state-bootstrap-CLYus369.mjs +1 -0
  23. package/dist/automation-trigger-ByjNlClm.mjs +1 -0
  24. package/dist/await-trigger-Bkg2BQfg.mjs +1 -0
  25. package/dist/bus/index.d.mts +41 -9
  26. package/dist/bus/index.mjs +1 -1
  27. package/dist/bus-D6NoBhIV.mjs +2 -0
  28. package/dist/bus-UgFdHybD.mjs +1 -0
  29. package/dist/caller-owned-adapter-stub-C1M7FKrv.mjs +1 -0
  30. package/dist/{canonical-model-BAytQ4NV.mjs → canonical-model-DXOvCaVg.mjs} +1 -1
  31. package/dist/capabilities-BUwuA7XX.mjs +1 -0
  32. package/dist/capability-j3NekkIu.mjs +1 -0
  33. package/dist/{client-DbS847wW.mjs → client-BkznbdsO.mjs} +1 -1
  34. package/dist/clients/index.d.mts +2 -2
  35. package/dist/clients/index.mjs +1 -1
  36. package/dist/clients/managed-install.d.mts +1 -1
  37. package/dist/clients/managed-install.mjs +1 -1
  38. package/dist/code-execution/worker-entry.d.mts +21 -0
  39. package/dist/code-execution/worker-entry.mjs +1 -0
  40. package/dist/code-execution-Ckmn8OZu.mjs +1 -0
  41. package/dist/code-execution-CweDSWco.mjs +1 -0
  42. package/dist/code-execution-DqkQjKa1.mjs +1 -0
  43. package/dist/{compression-74fFeBha.mjs → compression-CtgeVLpP.mjs} +1 -1
  44. package/dist/{config-namespace-TVX-hG4I.mjs → config-namespace-CjWvw8ij.mjs} +1 -1
  45. package/dist/{context-resolution-DdyhpH4L.d.mts → context-resolution-841T7jBI.d.mts} +11 -11
  46. package/dist/contracts/adapter/index.d.mts +3 -3
  47. package/dist/contracts/adapter/index.mjs +1 -1
  48. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  49. package/dist/contracts/artifact/index.d.mts +3 -3
  50. package/dist/contracts/artifact/index.mjs +1 -1
  51. package/dist/contracts/auth/index.d.mts +2 -2
  52. package/dist/contracts/auth/index.mjs +1 -1
  53. package/dist/contracts/automation-trigger/index.d.mts +4 -0
  54. package/dist/contracts/automation-trigger/index.mjs +1 -0
  55. package/dist/contracts/canonical-model/index.d.mts +1 -1
  56. package/dist/contracts/canonical-model/index.mjs +1 -1
  57. package/dist/contracts/capabilities/index.d.mts +1 -1
  58. package/dist/contracts/capabilities/index.mjs +1 -1
  59. package/dist/contracts/client/index.d.mts +2 -2
  60. package/dist/contracts/client/index.mjs +1 -1
  61. package/dist/contracts/code-execution/index.d.mts +2 -0
  62. package/dist/contracts/code-execution/index.mjs +1 -0
  63. package/dist/contracts/common/index.d.mts +1 -1
  64. package/dist/contracts/config/index.d.mts +1 -1
  65. package/dist/contracts/config/index.mjs +1 -1
  66. package/dist/contracts/extension/index.d.mts +6 -5
  67. package/dist/contracts/extension/index.mjs +1 -1
  68. package/dist/contracts/facet/index.d.mts +1 -1
  69. package/dist/contracts/facet/index.mjs +1 -1
  70. package/dist/contracts/harness/index.d.mts +1 -1
  71. package/dist/contracts/harness/index.mjs +1 -1
  72. package/dist/contracts/host/index.d.mts +1 -1
  73. package/dist/contracts/host/index.mjs +1 -1
  74. package/dist/contracts/index.d.mts +171 -100
  75. package/dist/contracts/index.mjs +1 -1
  76. package/dist/contracts/materialization/index.d.mts +3 -3
  77. package/dist/contracts/materialization/index.mjs +1 -1
  78. package/dist/contracts/model-registry/index.d.mts +1 -1
  79. package/dist/contracts/model-registry/index.mjs +1 -1
  80. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  81. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  82. package/dist/contracts/platform/index.d.mts +1 -1
  83. package/dist/contracts/platform/index.mjs +1 -1
  84. package/dist/contracts/provider/index.d.mts +2 -2
  85. package/dist/contracts/provider/index.mjs +1 -1
  86. package/dist/contracts/reaction/index.d.mts +2 -0
  87. package/dist/contracts/reaction/index.mjs +1 -0
  88. package/dist/contracts/session/index.d.mts +3 -3
  89. package/dist/contracts/session/index.mjs +1 -1
  90. package/dist/contracts/shared/index.d.mts +3 -3
  91. package/dist/contracts/shared/index.mjs +1 -1
  92. package/dist/contracts/skill/index.d.mts +1 -1
  93. package/dist/contracts/skill/index.mjs +1 -1
  94. package/dist/contracts/telemetry/index.d.mts +1 -1
  95. package/dist/contracts/telemetry/index.mjs +1 -1
  96. package/dist/contracts/timeout/index.d.mts +1 -1
  97. package/dist/contracts/timeout/index.mjs +1 -1
  98. package/dist/contracts/toast/index.mjs +1 -1
  99. package/dist/contracts/variant/index.d.mts +1 -1
  100. package/dist/contracts/variant/index.mjs +1 -1
  101. package/dist/contracts/worker-node/index.d.mts +1 -1
  102. package/dist/contracts/worker-node/index.mjs +1 -1
  103. package/dist/contracts/workflow/index.d.mts +3 -3
  104. package/dist/contracts/workflow/index.mjs +1 -1
  105. package/dist/contribution-CUHLVLsT.d.mts +35 -0
  106. package/dist/core/index.d.mts +84 -2
  107. package/dist/core/index.mjs +1 -1
  108. package/dist/{definition-CJfiv8xm.mjs → definition-BH4QLGLI.mjs} +1 -1
  109. package/dist/definition-DyGImhyi.d.mts +375 -0
  110. package/dist/{detached-extension-handle-Ddfquy5_.mjs → detached-extension-handle-D0aI0pJA.mjs} +1 -1
  111. package/dist/drizzle/0031_adapter_session_currency.sql +66 -0
  112. package/dist/drizzle/0032_native_session_ownership.sql +77 -0
  113. package/dist/drizzle/0033_m_msf3hu2s.sql +1 -0
  114. package/dist/drizzle/0034_m_msha1388.sql +41 -0
  115. package/dist/drizzle/0035_m_mshgj6x7.sql +40 -0
  116. package/dist/drizzle/0036_m_msivwbgm.sql +1 -0
  117. package/dist/drizzle/0037_runtime_instance_incarnation_counter.sql +6 -0
  118. package/dist/drizzle/meta/_journal.json +49 -0
  119. package/dist/event-B8ELuk6k.mjs +1 -0
  120. package/dist/{execution-attempt-repository-DWXKY41_.d.mts → execution-attempt-repository-BJ2W6wwx.d.mts} +1 -1
  121. package/dist/{execution-target-Cf645pDj.mjs → execution-target-H0RWV7Py.mjs} +1 -1
  122. package/dist/extension-Bfkr2DBs.mjs +1 -0
  123. package/dist/extension-Cz39YNXy.mjs +1 -0
  124. package/dist/extension-context-QmFuHdq5.d.mts +295 -0
  125. package/dist/{extension-discovery-CQRdbVQ6.d.mts → extension-discovery-Dhu3WplO.d.mts} +11 -1
  126. package/dist/{extension-namespace-Yu41YepM.mjs → extension-namespace-QoTTwKPt.mjs} +1 -1
  127. package/dist/extension-package-provenance-aYrZuS4W.mjs +1 -0
  128. package/dist/{filesystem-service-DlP2HfDg.mjs → filesystem-service-CiUw0YN5.mjs} +1 -1
  129. package/dist/framework-packages-BHgul8Kl.mjs +1 -0
  130. package/dist/git/index.mjs +2 -2
  131. package/dist/{globby-1yCVCk8s.mjs → globby-QBDqstzq.mjs} +1 -1
  132. package/dist/handlers-BsHAFtye.mjs +57 -0
  133. package/dist/{harness-DpwsFsE7.mjs → harness-YQ2ewID9.mjs} +1 -1
  134. package/dist/{hook-responses-Dh1PWXqJ.d.mts → hook-responses-9Ywsqzzq.d.mts} +2 -293
  135. package/dist/identity-OjRlG6dZ.mjs +1 -0
  136. package/dist/{index-CMgLxw14.d.mts → index-8NdPPzUh2.d.mts} +2 -2
  137. package/dist/{index-Ds5_rDEJ.d.mts → index-8y4hT9WL.d.mts} +1 -12
  138. package/dist/{index-BVlXneHH.d.mts → index-B-3I98nw.d.mts} +14 -10
  139. package/dist/index-B0VO0rAl.d.mts +302 -0
  140. package/dist/{index-gUhidukN.d.mts → index-B0yMCJW8.d.mts} +324 -2
  141. package/dist/index-BM56936c.d.mts +165 -0
  142. package/dist/{index-CLvQsL6s2.d.mts → index-BNzUyVwV.d.mts} +2105 -320
  143. package/dist/{index-BaZeoZoS.d.mts → index-BTEJfzjE.d.mts} +1 -1
  144. package/dist/{index-B0Kf_OWi.d.mts → index-BfV8U4XX.d.mts} +1 -1
  145. package/dist/{index-DCZ8BX9S.d.mts → index-BkbnC65b.d.mts} +487 -85
  146. package/dist/{index-GHASUiem.d.mts → index-BmevAPME2.d.mts} +1 -1
  147. package/dist/index-Bqk0pJBQ2.d.mts +138 -0
  148. package/dist/{index-B9UW_vPM.d.mts → index-C146Eq_J.d.mts} +2465 -273
  149. package/dist/{index-BAXkicoQ.d.mts → index-CIEycZrt.d.mts} +1 -1
  150. package/dist/{index-DkiTJM5p.d.mts → index-CMekqu_D.d.mts} +44 -10
  151. package/dist/{index-SsBHjUqA.d.mts → index-CPRQ4dWX.d.mts} +0 -23
  152. package/dist/{index-EjsSBQXy2.d.mts → index-CPi0UpRh.d.mts} +1 -1
  153. package/dist/{index-DSBT83c0.d.mts → index-CYjgoYeX.d.mts} +24 -3
  154. package/dist/{index-DnG-QFpG.d.mts → index-CmwAJ8-5.d.mts} +18 -1
  155. package/dist/index-Cny5RvjO.d.mts +800 -0
  156. package/dist/{index-BNMnIe-j.d.mts → index-D-4jv_66.d.mts} +434 -863
  157. package/dist/{index-brqfk9JQ.d.mts → index-D8D-yibS2.d.mts} +4 -4
  158. package/dist/index-DHnSLGP4.d.mts +268 -0
  159. package/dist/{index-D5Nb7IEP.d.mts → index-DI2lS7VT.d.mts} +79 -41
  160. package/dist/{index-D_ODXsBv.d.mts → index-DJ2KgJDJ2.d.mts} +51 -95
  161. package/dist/{index-cqLS1eFV.d.mts → index-DNI6UF9h.d.mts} +133 -134
  162. package/dist/index-DQ8o3JGi.d.mts +132 -0
  163. package/dist/index-DWBkiiXH.d.mts +18 -0
  164. package/dist/{index-DlsHL9Jg.d.mts → index-DXtQRehh.d.mts} +12 -12
  165. package/dist/{index-4VfqCjl2.d.mts → index-D_4K3Tf_.d.mts} +79 -194
  166. package/dist/index-Dg11JxKZ.d.mts +496 -0
  167. package/dist/json-value-BBZ6uGwc.mjs +1 -0
  168. package/dist/json-value-DPqb-SJ8.d.mts +177 -0
  169. package/dist/kernel/cli/index.d.mts +2 -2
  170. package/dist/kernel/cli/index.mjs +1 -1
  171. package/dist/kernel/cli/register.d.mts +1 -1
  172. package/dist/kernel/cli/register.mjs +1 -1
  173. package/dist/kernel/cli/schemas.mjs +1 -1
  174. package/dist/kernel/extension/index.d.mts +1 -1
  175. package/dist/kernel/extension/index.mjs +1 -1
  176. package/dist/kernel/index.d.mts +9 -9
  177. package/dist/kernel/index.mjs +1 -1
  178. package/dist/kernel/namespace/index.d.mts +2 -2
  179. package/dist/kernel/namespace/index.mjs +1 -1
  180. package/dist/kernel/observability/index.d.mts +1 -1
  181. package/dist/kernel/observability/index.mjs +1 -1
  182. package/dist/kernel/providers/index.d.mts +1 -1
  183. package/dist/kernel/providers/index.mjs +1 -1
  184. package/dist/kernel/window/index.d.mts +1 -1
  185. package/dist/kernel/window/index.mjs +1 -1
  186. package/dist/{lib-DErgth_E.mjs → lib-BpGvHZye.mjs} +2 -2
  187. package/dist/{lib-C7-s68uf.mjs → lib-Cm-uEoC1.mjs} +1 -1
  188. package/dist/{load-extensions-BxsDB87B.d.mts → load-extensions-BQoXaHhR.d.mts} +17 -13
  189. package/dist/load-extensions-DG5LvPyM.mjs +1 -0
  190. package/dist/{materialization-Jd198K3y.mjs → materialization-lVd9_-jr.mjs} +1 -1
  191. package/dist/mcp-http-server/index.mjs +1 -1
  192. package/dist/model-DrzPt3ou.mjs +1 -0
  193. package/dist/{namespace-BqxtpNAn.mjs → namespace-BL7lHlmg.mjs} +1 -1
  194. package/dist/{namespace-CjjFvrIA2.d.mts → namespace-BNp7n_gu.d.mts} +25 -25
  195. package/dist/{namespace-g_mbIZq_.d.mts → namespace-BRuHzhPo.d.mts} +564 -28
  196. package/dist/{namespace-DV-Hr9sZ.d.mts → namespace-C06lJSuj.d.mts} +17 -7
  197. package/dist/{namespace-TseEI3Pu.d.mts → namespace-DOezqDti.d.mts} +18 -10
  198. package/dist/{namespace-CErHuXtb.d.mts → namespace-DknCutQZ.d.mts} +50 -0
  199. package/dist/{namespace-B8uKAzWJ.mjs → namespace-Du0accdE.mjs} +1 -1
  200. package/dist/{namespace-CWUDFGOy.mjs → namespace-NXm_zvL1.mjs} +1 -1
  201. package/dist/{namespace-CupOzbRv.d.mts → namespace-l-HG1rLF.d.mts} +24 -20
  202. package/dist/namespace-sCPb79-7.mjs +1 -0
  203. package/dist/{native-session-supervisor-DRx0MX-d.mjs → native-session-supervisor-LKio8XZn.mjs} +1 -1
  204. package/dist/node/bus-server/index.d.mts +1 -1
  205. package/dist/node/bus-server/index.mjs +1 -1
  206. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  207. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  208. package/dist/npm-package-name-DuTYVICk.mjs +1 -0
  209. package/dist/orchestrator-shared-BGlN-m-V.mjs +1 -0
  210. package/dist/{orchestrator-shared-BHCv-l2O.d.mts → orchestrator-shared-CNHSImNY.d.mts} +10 -10
  211. package/dist/ownership-memory-handler-BpGdR_uG.mjs +1 -0
  212. package/dist/ownership-recovery-guard-DyW5vGBr.mjs +1 -0
  213. package/dist/package-B01gmu75.mjs +7 -0
  214. package/dist/{package-DWMxGfzK.d.mts → package-BNFTUFLB.d.mts} +234 -84
  215. package/dist/package-DttKA9wN.mjs +1 -0
  216. package/dist/package-EGTn-Ng1.mjs +1 -0
  217. package/dist/package-JtjbO-Oi.mjs +1 -0
  218. package/dist/package.json +1 -1
  219. package/dist/{profile-BTAI31Nt.mjs → profile-N5qGUpF0.mjs} +1 -1
  220. package/dist/{provider-context-PZIQWcqQ.mjs → provider-context-CG42JlP9.mjs} +1 -1
  221. package/dist/{provider-context-Dq53Cgzz.mjs → provider-context-zTDSH2x9.mjs} +1 -1
  222. package/dist/reaction-D3TNwPK8.mjs +1 -0
  223. package/dist/{registry-wfF2uTty.mjs → registry-Dk12tAfv.mjs} +2 -2
  224. package/dist/{resolved-DZgqql2Z.mjs → resolved-sq8RXNDf.mjs} +1 -1
  225. package/dist/rules/index.d.mts +1 -1
  226. package/dist/rules/index.mjs +1 -1
  227. package/dist/rules/schemas.d.mts +1 -1
  228. package/dist/rules/schemas.mjs +1 -1
  229. package/dist/runtime-bun/index.mjs +1 -1
  230. package/dist/runtime-node/code-execution/index.d.mts +3 -0
  231. package/dist/runtime-node/code-execution/index.mjs +1 -0
  232. package/dist/runtime-node/extension-discovery.d.mts +2 -2
  233. package/dist/runtime-node/extension-discovery.mjs +1 -1
  234. package/dist/runtime-node/extension-validation.d.mts +1 -1
  235. package/dist/runtime-node/extension-validation.mjs +1 -1
  236. package/dist/runtime-node/index.d.mts +7 -5
  237. package/dist/runtime-node/index.mjs +24 -24
  238. package/dist/runtime-node/makaio-config.d.mts +1 -1
  239. package/dist/runtime-node/makaio-config.mjs +1 -1
  240. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  241. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  242. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  243. package/dist/{schema-DKUb4rkr.d.mts → schema-B3Pf7JP7.d.mts} +778 -21
  244. package/dist/{schema-Dd-e89MO.mjs → schema-Dq-7si8u.mjs} +1 -1
  245. package/dist/{schemas-B1NWNASS.d.mts → schemas-BXc9qOpl.d.mts} +2 -0
  246. package/dist/schemas-BfO5jkrL.mjs +1 -0
  247. package/dist/{schemas-CR8hSqTy.d.mts → schemas-C1mxTfd7.d.mts} +60 -4
  248. package/dist/schemas-C3kyQWGf.mjs +1 -0
  249. package/dist/{schemas-DnYiAvfz.d.mts → schemas-D7ScxLrf.d.mts} +24 -20
  250. package/dist/{schemas-BsVYZviy.d.mts → schemas-OWvBn7AH.d.mts} +4 -4
  251. package/dist/{schemas-DaHQzpgm.mjs → schemas-QWDnauKX.mjs} +1 -1
  252. package/dist/schemas-TK29KWx-.mjs +1 -0
  253. package/dist/schemas-_2Syo_01.mjs +1 -0
  254. package/dist/scoped-bus-DoPmCJeM.mjs +1 -0
  255. package/dist/{selection-BNwTKEVT.mjs → selection-DL3ric7K.mjs} +1 -1
  256. package/dist/services/adapter-runtime/index.d.mts +4 -4
  257. package/dist/services/adapter-runtime/index.mjs +1 -1
  258. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  259. package/dist/services/adapter-runtime/schemas.d.mts +2 -2
  260. package/dist/services/adapter-runtime/schemas.mjs +1 -1
  261. package/dist/services/adapter-subsystem/index.d.mts +4 -4
  262. package/dist/services/adapter-subsystem/index.mjs +1 -1
  263. package/dist/services/adapter-subsystem/namespace.d.mts +2 -2
  264. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  265. package/dist/services/agent-runtime/index.d.mts +2 -2
  266. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  267. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  268. package/dist/services/automation-trigger/index.d.mts +943 -0
  269. package/dist/services/automation-trigger/index.mjs +1 -0
  270. package/dist/services/capability/index.d.mts +3 -2
  271. package/dist/services/capability/index.mjs +1 -1
  272. package/dist/services/code-execution/index.d.mts +2 -0
  273. package/dist/services/code-execution/index.mjs +1 -0
  274. package/dist/services/codebase/index.d.mts +2 -2
  275. package/dist/services/codebase/namespace.d.mts +1 -1
  276. package/dist/services/codebase/schemas.d.mts +1 -1
  277. package/dist/services/compression/index.d.mts +2 -2
  278. package/dist/services/compression/namespace.d.mts +1 -1
  279. package/dist/services/compression/schemas.d.mts +1 -1
  280. package/dist/services/context-rules/index.d.mts +1 -1
  281. package/dist/services/context-rules/index.mjs +1 -1
  282. package/dist/services/execution-target/index.d.mts +3 -3
  283. package/dist/services/execution-target/index.mjs +1 -1
  284. package/dist/services/execution-target/namespace.d.mts +1 -1
  285. package/dist/services/execution-target/namespace.mjs +1 -1
  286. package/dist/services/execution-target/schemas.d.mts +1 -1
  287. package/dist/services/execution-target/schemas.mjs +1 -1
  288. package/dist/services/filesystem/index.d.mts +1 -1
  289. package/dist/services/filesystem/index.mjs +1 -1
  290. package/dist/services/filesystem/namespace.d.mts +6 -6
  291. package/dist/services/filesystem/schemas.d.mts +3 -3
  292. package/dist/services/git/namespace.d.mts +18 -0
  293. package/dist/services/git/namespace.mjs +1 -1
  294. package/dist/services/git/schemas.d.mts +10 -1
  295. package/dist/services/git/schemas.mjs +1 -1
  296. package/dist/services/harness/index.mjs +1 -1
  297. package/dist/services/index.d.mts +567 -101
  298. package/dist/services/index.mjs +1 -1
  299. package/dist/services/log-import/browser.d.mts +2 -2
  300. package/dist/services/log-import/index.d.mts +3 -3
  301. package/dist/services/log-import/log-import.d.mts +1 -1
  302. package/dist/services/log-import/log-import.mjs +1 -1
  303. package/dist/services/log-import/namespace.mjs +1 -1
  304. package/dist/services/log-import/schemas.mjs +1 -1
  305. package/dist/services/materialization/index.d.mts +1 -1
  306. package/dist/services/materialization/index.mjs +1 -1
  307. package/dist/services/model-registry/index.d.mts +1 -1
  308. package/dist/services/model-registry/index.mjs +1 -1
  309. package/dist/services/preferences/index.d.mts +2 -2
  310. package/dist/services/preferences/schemas.d.mts +1 -1
  311. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  312. package/dist/services/provider-context/index.d.mts +1 -1
  313. package/dist/services/provider-context/index.mjs +1 -1
  314. package/dist/services/provider-runtime/index.mjs +1 -1
  315. package/dist/services/session/handlers/index.d.mts +2 -2
  316. package/dist/services/session/handlers/index.mjs +1 -1
  317. package/dist/services/session/index.d.mts +10 -10
  318. package/dist/services/session/index.mjs +1 -1
  319. package/dist/services/session/messages/namespace.d.mts +1 -1
  320. package/dist/services/session/messages/namespace.mjs +1 -1
  321. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  322. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  323. package/dist/services/session/session-events/namespace.d.mts +1 -1
  324. package/dist/services/session/session-events/namespace.mjs +1 -1
  325. package/dist/services/session/storage/namespace.d.mts +1 -1
  326. package/dist/services/session/storage/schema.d.mts +2 -2
  327. package/dist/services/session/storage/schema.mjs +1 -1
  328. package/dist/services/session/testing/index.d.mts +33 -4
  329. package/dist/services/session/testing/index.mjs +68 -12
  330. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  331. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  332. package/dist/services/session/turns/namespace.d.mts +1 -1
  333. package/dist/services/session/turns/namespace.mjs +1 -1
  334. package/dist/services/session-editor/index.d.mts +1 -1
  335. package/dist/services/session-editor/index.mjs +1 -1
  336. package/dist/services/settings/index.d.mts +3 -3
  337. package/dist/services/settings/index.mjs +1 -1
  338. package/dist/services/settings/namespace.mjs +1 -1
  339. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  340. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  341. package/dist/services/settings/storage/index.d.mts +3 -3
  342. package/dist/services/settings/storage/index.mjs +1 -1
  343. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  344. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  345. package/dist/services/subagent/index.d.mts +1 -1
  346. package/dist/services/subagent/index.mjs +1 -1
  347. package/dist/services/subagent-template/index.d.mts +2 -2
  348. package/dist/services/subagent-template/namespace.d.mts +1 -1
  349. package/dist/services/subagent-template/schemas.d.mts +1 -1
  350. package/dist/services/tool-approval/index.d.mts +1 -1
  351. package/dist/services/tool-approval/index.mjs +1 -1
  352. package/dist/services/tools/index.d.mts +1 -1
  353. package/dist/services/tools/index.mjs +1 -1
  354. package/dist/services/tray-menu/index.d.mts +3 -3
  355. package/dist/services/tray-menu/index.mjs +1 -1
  356. package/dist/services/tray-menu/namespace.d.mts +1 -1
  357. package/dist/services/tray-menu/schemas.d.mts +1 -1
  358. package/dist/services/turn/index.d.mts +1 -1
  359. package/dist/services/turn/namespace.d.mts +1 -1
  360. package/dist/services/workflow-transitions/index.d.mts +1 -1
  361. package/dist/services/workflow-transitions/index.mjs +1 -1
  362. package/dist/session-BOpTI79g.mjs +1 -0
  363. package/dist/session-CXOPk3yg.mjs +95 -0
  364. package/dist/shared-B9AWRm9A.mjs +1 -0
  365. package/dist/{skill-BR6rkfLe.mjs → skill-DGNtc_ww.mjs} +1 -1
  366. package/dist/{src-DD0v-nIj.mjs → src-BmSQ3rlz.mjs} +1 -1
  367. package/dist/storage/drizzle/client.d.mts +1 -1
  368. package/dist/storage/drizzle/client.mjs +1 -1
  369. package/dist/storage/drizzle/index.d.mts +81 -2
  370. package/dist/storage/drizzle/index.mjs +1 -1
  371. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  372. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  373. package/dist/storage/handlers/index.d.mts +1 -1
  374. package/dist/storage/handlers/index.mjs +1 -1
  375. package/dist/tool-approval-service-BFDOFUGC.mjs +1 -0
  376. package/dist/{tools-PdG9fO1M.mjs → tools-DWKWX3eV.mjs} +1 -1
  377. package/dist/{transition-Du3MQzJV.d.mts → transition-D3zUBTPc.d.mts} +11 -38
  378. package/dist/{types-D7_kevBK.d.mts → types-BlB23n4f.d.mts} +1 -1
  379. package/dist/{types-DMLDHFR9.d.mts → types-CtDGkyLx2.d.mts} +1 -1
  380. package/dist/types-Cwza95hS.mjs +1 -0
  381. package/dist/{types-Dzrwa1GY.d.mts → types-DcxBYlPA.d.mts} +5834 -1436
  382. package/dist/types-DnK6Wa_Y.d.mts +260 -0
  383. package/dist/types-OKJCOjme.d.mts +2937 -0
  384. package/dist/ui-hooks/index.d.mts +29 -2
  385. package/dist/ui-hooks/index.mjs +1 -1
  386. package/dist/ui-kernel/index.d.mts +2 -2
  387. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  388. package/dist/ui-views/index.d.mts +1 -1
  389. package/dist/utils/index.d.mts +98 -1
  390. package/dist/utils/index.mjs +2 -2
  391. package/dist/utils/project-manifest.mjs +1 -1
  392. package/dist/{version-CoCeMxDT.mjs → version-BYeVh1pI.mjs} +1 -1
  393. package/dist/{view-builder-DeFd-k7C.d.mts → view-builder-B0j9p5C0.d.mts} +4 -4
  394. package/dist/{visibility-qhGWmpSJ.mjs → visibility-DtDLRBdr.mjs} +1 -1
  395. package/dist/worker-node-CjuQb9hl.mjs +1 -0
  396. package/dist/{worker-node-DZTuT1DS.mjs → worker-node-Dtf9ilsR.mjs} +1 -1
  397. package/dist/workflow-C4mck_NW.mjs +1 -0
  398. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  399. package/dist/workflow-engine/index.d.mts +237 -518
  400. package/dist/workflow-engine/index.mjs +1 -1
  401. package/dist/workflow-engine/package.d.mts +1 -1
  402. package/dist/workflow-engine/package.mjs +1 -1
  403. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  404. package/dist/workflow-engine/testing/index.d.mts +2 -2
  405. package/dist/workflow-engine/testing/index.mjs +1 -1
  406. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  407. package/dist/workflow-engine/testing/sqlite.mjs +27 -27
  408. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  409. package/dist/workflow-engine/workflow-trigger-binding-consumer.d.mts +46 -0
  410. package/dist/workflow-engine/workflow-trigger-binding-consumer.mjs +1 -0
  411. package/dist/{workflow-transitions-DSc45ixc.mjs → workflow-transitions-c_VQbyV0.mjs} +1 -1
  412. package/dist/workflow-worker-aNbdgqml.mjs +1 -0
  413. package/dist/zod-json-schema-Dixc-B1T.mjs +1 -0
  414. package/package.json +46 -1
  415. package/dist/adapter-D5c5LrPN.mjs +0 -1
  416. package/dist/artifact-DGiXqb11.mjs +0 -1
  417. package/dist/attach-error-C3tngg6J.mjs +0 -1
  418. package/dist/authority-state-bootstrap-GPL_tqaT.mjs +0 -1
  419. package/dist/await-trigger-I3lrepb8.mjs +0 -1
  420. package/dist/bus-B6SAjgOC.mjs +0 -2
  421. package/dist/bus-C2l3K74u.mjs +0 -1
  422. package/dist/capabilities-BQEp34ir.mjs +0 -1
  423. package/dist/capability-service-BqiLlRGA.mjs +0 -1
  424. package/dist/event-CmVjR6Ib.mjs +0 -1
  425. package/dist/extension-DCA4pYrY.mjs +0 -1
  426. package/dist/extension-hjOPs10e.mjs +0 -1
  427. package/dist/framework-packages-C3RWfJDk.mjs +0 -1
  428. package/dist/handlers-CfnLyLfE.mjs +0 -57
  429. package/dist/identity-D6guMtmi.mjs +0 -1
  430. package/dist/index-CRvpVIqA.d.mts +0 -89
  431. package/dist/json-value-Brslhqbm.d.mts +0 -57
  432. package/dist/json-value-DmU8ibo_.mjs +0 -1
  433. package/dist/load-extensions-D0DfjYLC.mjs +0 -1
  434. package/dist/model-BGgVmRnN.mjs +0 -1
  435. package/dist/namespace-DJfUADSV.mjs +0 -1
  436. package/dist/orchestrator-shared-BxmHCPvx.mjs +0 -1
  437. package/dist/package-CNUPPcU1.mjs +0 -7
  438. package/dist/package-Dft_RItb.mjs +0 -1
  439. package/dist/schemas-CRB2O5zo.mjs +0 -1
  440. package/dist/schemas-Cm09dXL4.mjs +0 -1
  441. package/dist/schemas-tDf_WiC8.mjs +0 -1
  442. package/dist/scoped-bus-C9BdNwfM.mjs +0 -1
  443. package/dist/session-BOGCd18q.mjs +0 -1
  444. package/dist/session-BTFiDoGz.mjs +0 -76
  445. package/dist/shared-BQ0CHIVy.mjs +0 -1
  446. package/dist/tool-approval-service-kBA0fRzm.mjs +0 -1
  447. package/dist/types-CJ_QZ1yW.d.mts +0 -1487
  448. package/dist/worker-node-Bl9_vqYi.mjs +0 -1
  449. package/dist/workflow-BfDbgtIQ.mjs +0 -1
  450. package/dist/workflow-worker-BN9XPxQO.mjs +0 -1
  451. package/dist/{adapter-auth-runtime-DO-FVTXg.mjs → adapter-auth-runtime-DHHppU4f.mjs} +0 -0
  452. package/dist/{adapter-binding-DQchUtrK.d.mts → adapter-binding-CATvmGuz.d.mts} +0 -0
  453. package/dist/{attempt-record-codec-CqO1_XnE.mjs → attempt-record-codec-BYfYkj4M.mjs} +0 -0
  454. package/dist/{base-orchestrator-BilsQNW1.d.mts → base-orchestrator-B4YW6z_Q.d.mts} +0 -0
  455. package/dist/{index-DN4NOCqN2.d.mts → capability-service-BW1-teFU.d.mts} +0 -0
  456. package/dist/{client-B--e2qcU.d.mts → client-BG0WX5Vz.d.mts} +0 -0
  457. package/dist/{client-binary-version-verifier-taewmKTY.mjs → client-binary-version-verifier-0lCKZOTg.mjs} +0 -0
  458. package/dist/{client-binary-version-verifier-CgjM_vGF.d.mts → client-binary-version-verifier-lcv83Hq3.d.mts} +0 -0
  459. package/dist/{clients-namespace-DfxjG2ZP.d.mts → clients-namespace-DLAjOTTb.d.mts} +0 -0
  460. package/dist/{config-namespace-BCqvufbD.d.mts → config-namespace-CH7sJZ4f.d.mts} +0 -0
  461. package/dist/{create-static-mount-bbQhTt6W.mjs → create-static-mount-DxuixuLZ.mjs} +0 -0
  462. package/dist/{cross-spawn-B57KZuns.mjs → cross-spawn-CZygZJMH.mjs} +0 -0
  463. package/dist/{cursor-storage-DIFK_9hg.mjs → cursor-storage-bsc9lZKk.mjs} +0 -0
  464. package/dist/{definition-gnKgXU91.d.mts → definition-BrgzUuFk.d.mts} +0 -0
  465. package/dist/{definitions-xrrY0wgz.mjs → definitions-CRpdnHYM.mjs} +0 -0
  466. package/dist/{descriptor-to-package-DvF08krT.mjs → descriptor-to-package-CcjdoWP4.mjs} +0 -0
  467. package/dist/{drizzle-z_0SiGY8.mjs → drizzle-Bzc-OGVI.mjs} +0 -0
  468. package/dist/{esm-CltRnX8_.mjs → esm-i-S5TW72.mjs} +0 -0
  469. package/dist/{facet-BCI00njh.mjs → facet-BnMh7Jyc.mjs} +0 -0
  470. package/dist/{filesystem-service-CQ9yVkSz.d.mts → filesystem-service-ZJ43SbBi.d.mts} +0 -0
  471. package/dist/{handler-Cbv9FqDO.mjs → handler-DF1fVDpf.mjs} +0 -0
  472. package/dist/{host-Caq6ZfSJ.mjs → host-B-_ntOMH.mjs} +0 -0
  473. package/dist/{index-ye0oklfU.d.mts → index-B2Y1Wvbh.d.mts} +0 -0
  474. package/dist/{index-Cv-o5Krs.d.mts → index-B4svZC6L.d.mts} +0 -0
  475. package/dist/{index-DZunhZec.d.mts → index-B5dP8rj6.d.mts} +0 -0
  476. package/dist/{index-jTaAHsul.d.mts → index-BC-6qNeo.d.mts} +0 -0
  477. package/dist/{index-ByKi34v5.d.mts → index-BFWvT0NG.d.mts} +0 -0
  478. package/dist/{index-vA--0lOM.d.mts → index-BMRB9yhF.d.mts} +0 -0
  479. package/dist/{index-BskPjMet.d.mts → index-BuMsrli0.d.mts} +0 -0
  480. package/dist/{index-DR40QWlw.d.mts → index-C4V8Pmi4.d.mts} +0 -0
  481. package/dist/{index-BIdsFcQs2.d.mts → index-CL0Jo1b92.d.mts} +0 -0
  482. package/dist/{index-CjdRdsd0.d.mts → index-CVpaGijY.d.mts} +0 -0
  483. package/dist/{index-vcSj12YQ.d.mts → index-CmbkCxj-.d.mts} +0 -0
  484. package/dist/{index-sS6KUlrx.d.mts → index-CqdMbYmR.d.mts} +0 -0
  485. package/dist/{index-CnMu8BQl.d.mts → index-D037TVsm.d.mts} +0 -0
  486. package/dist/{index-CGZQVTid.d.mts → index-DgspOUa72.d.mts} +0 -0
  487. package/dist/{index-dtsLKOID.d.mts → index-Ek4y8M9J2.d.mts} +0 -0
  488. package/dist/{index-DjgLchuQ.d.mts → index-VzLAV0Yt.d.mts} +0 -0
  489. package/dist/{index-DXN_L5D6.d.mts → index-jxPncqWZ2.d.mts} +0 -0
  490. package/dist/{index-BVRQEpAg.d.mts → index-kzIjbrS02.d.mts} +6 -6
  491. /package/dist/{index-Dm1nUxCF.d.mts → index-l01zsChf.d.mts} +0 -0
  492. /package/dist/{index-CWHfOz6d.d.mts → index-pvX-BIpr2.d.mts} +0 -0
  493. /package/dist/{jsonl-transport-bQl3JwIu.mjs → jsonl-transport-Cyyh5Wje.mjs} +0 -0
  494. /package/dist/{lib-DOBXZmYX.mjs → lib-BqV8hYtk.mjs} +0 -0
  495. /package/dist/{model-registry-xyBKSye-.mjs → model-registry-C9rFu3kV.mjs} +0 -0
  496. /package/dist/{model-registry-CmgcPDH3.mjs → model-registry-Cixxx2jv.mjs} +0 -0
  497. /package/dist/{modes-BheyN7SS.mjs → modes-DwsJ3yVl.mjs} +0 -0
  498. /package/dist/{namespace-BOkKoq34.d.mts → namespace-B0ftHlK3.d.mts} +0 -0
  499. /package/dist/{namespace-YytVKIgI.d.mts → namespace-BGRHcrmp.d.mts} +0 -0
  500. /package/dist/{namespace-jDhZjw-i.d.mts → namespace-BUYDmd0r.d.mts} +0 -0
  501. /package/dist/{namespace-YxU1xf-K.mjs → namespace-BW3Bfu9h.mjs} +0 -0
  502. /package/dist/{namespace-DWCEo-9M.d.mts → namespace-BdAK0lD8.d.mts} +0 -0
  503. /package/dist/{namespace-Cv1RFP7n.d.mts → namespace-CPG6u60N.d.mts} +0 -0
  504. /package/dist/{namespace-GPA7zots.d.mts → namespace-CVFaZv8x.d.mts} +0 -0
  505. /package/dist/{namespace-Blp4c8GK.d.mts → namespace-DBO1OzYB.d.mts} +0 -0
  506. /package/dist/{namespace-C-9si-fV.mjs → namespace-DiwqpB-c.mjs} +0 -0
  507. /package/dist/{namespace-tGRAod3o.d.mts → namespace-DqZweTbX.d.mts} +0 -0
  508. /package/dist/{namespace-HO2J9sO8.mjs → namespace-jVTsuZHX.mjs} +0 -0
  509. /package/dist/{namespace-CWGKCNZm.mjs → namespace-tjoxekmf.mjs} +0 -0
  510. /package/dist/{out-CvjtANXN.mjs → out-8bOYN6EF.mjs} +0 -0
  511. /package/dist/{packages-DtEEP0Vt.mjs → packages-Bp124-gx.mjs} +0 -0
  512. /package/dist/{packages-BZ6pzFIq.d.mts → packages-CxPMEg8D.d.mts} +0 -0
  513. /package/dist/{platform-Bv8llU9c.mjs → platform-CxyYPrkf.mjs} +0 -0
  514. /package/dist/{provider-operation-Cxoe2SUr.d.mts → provider-operation-DbdyFwNm.d.mts} +0 -0
  515. /package/dist/{providers-Co5UszRH.mjs → providers-C-eekMxD.mjs} +0 -0
  516. /package/dist/{providers-namespace-DjFkmvBR.d.mts → providers-namespace-CfZKp-C0.d.mts} +0 -0
  517. /package/dist/{quick-lru-CrOpWwrf.mjs → quick-lru-CCEnf7y6.mjs} +0 -0
  518. /package/dist/{schema-Db-y-09L.mjs → schema-C0opCPww.mjs} +0 -0
  519. /package/dist/{schema-introspection-DgWQCpwx.mjs → schema-introspection-6-r_KEJQ.mjs} +0 -0
  520. /package/dist/{schemas-N6x2z7Lf.d.mts → schemas-B50oWBuj.d.mts} +0 -0
  521. /package/dist/{schemas-BO7uOum6.d.mts → schemas-B6Q-qdmn.d.mts} +0 -0
  522. /package/dist/{schemas-BGExwp3j.mjs → schemas-B8hKbBwI.mjs} +0 -0
  523. /package/dist/{schemas-miYxK_Z1.d.mts → schemas-BGvkTiCx.d.mts} +0 -0
  524. /package/dist/{schemas-CqRm0i9a.mjs → schemas-BivbWRkG.mjs} +0 -0
  525. /package/dist/{schemas-CwbYk_kZ.d.mts → schemas-ChmQldVH.d.mts} +0 -0
  526. /package/dist/{schemas-DrVg4aQQ.d.mts → schemas-Dd13TMgU.d.mts} +0 -0
  527. /package/dist/{schemas-BtZqovRH.d.mts → schemas-Pe892GgN.d.mts} +0 -0
  528. /package/dist/{schemas-CQyRBqD6.d.mts → schemas-bfZNpl0B.d.mts} +0 -0
  529. /package/dist/{schemas-Bfxskx_2.mjs → schemas-scyC2tFF.mjs} +0 -0
  530. /package/dist/{semver-DlM8znk4.mjs → semver-BI7kTNsY.mjs} +0 -0
  531. /package/dist/{server-lifecycle-kmQ5PUDv.mjs → server-lifecycle-B_OZnoe-.mjs} +0 -0
  532. /package/dist/{server-lifecycle-Dsq56aqC.d.mts → server-lifecycle-L8zja8t8.d.mts} +0 -0
  533. /package/dist/{session-lineage-B_JW5LpF.d.mts → session-lineage-bUkd3fqx.d.mts} +0 -0
  534. /package/dist/{shared-schemas-DXwyMCwZ.mjs → shared-schemas-CQ6blrEW.mjs} +0 -0
  535. /package/dist/{src-CCu8TwL6.mjs → src-BacfeiI4.mjs} +0 -0
  536. /package/dist/{storage-namespace-BSrv0vXR.mjs → storage-namespace-BZce8kkW.mjs} +0 -0
  537. /package/dist/{storage-namespace-dfywhXR3.d.mts → storage-namespace-YmE8XCCL.d.mts} +0 -0
  538. /package/dist/{storage-namespace-definition-BvlX0QV_.d.mts → storage-namespace-definition-BsnYAPot.d.mts} +0 -0
  539. /package/dist/{storage-namespace-definition-CkMKt7-I.mjs → storage-namespace-definition-Cca-zwXU.mjs} +0 -0
  540. /package/dist/{supports-color-DUugCQsK.mjs → supports-color-SV_FgSN2.mjs} +0 -0
  541. /package/dist/{telemetry-Pr3oP2rk.mjs → telemetry-BqoC87F-.mjs} +0 -0
  542. /package/dist/{timeout-DWDhddRJ.mjs → timeout-DVlN2Zhy.mjs} +0 -0
  543. /package/dist/{tray-menu-service-BBLa-Rcv.mjs → tray-menu-service-eVVxgPLc.mjs} +0 -0
  544. /package/dist/{types-BrcjaNPZ.d.mts → types-DdpSEmTO.d.mts} +0 -0
  545. /package/dist/{types-b54n1o57.d.mts → types-tyv0B605.d.mts} +0 -0
  546. /package/dist/{ui-config-CyCdlns_.mjs → ui-config-B35GloSX.mjs} +0 -0
  547. /package/dist/{variant-krjlTdJt.mjs → variant-Dwnge3J_.mjs} +0 -0
  548. /package/dist/{window-registry-I-imZHV_.mjs → window-registry-CKiMJjId.mjs} +0 -0
  549. /package/dist/{window-registry-BDnZLPVx.d.mts → window-registry-Pcf35cac.d.mts} +0 -0
@@ -1,3 +1,4 @@
1
+ import { IMakaioBus } from "@makaio/framework/bus";
1
2
  import { IMakaioSession, MakaioSessionAgent, MakaioSessionEvent, MessageInput, MessageOutcome, ResponseSchemaDescriptor, TurnIngestionMarker, TurnInitiator } from "@makaio/framework/contracts";
2
3
 
3
4
  //#region services/core/src/session/__tests__/shared.d.ts
@@ -12,13 +13,6 @@ declare function resetBusHandlers(): void;
12
13
  * @param ms - Milliseconds to wait (default 10ms)
13
14
  */
14
15
  declare function waitForAsync(ms?: number): Promise<void>;
15
- /**
16
- * Creates a test agent with sensible defaults.
17
- * @param agentId - The agent identifier
18
- * @param overrides - Optional overrides for agent properties
19
- * @returns A MakaioSessionAgent for testing
20
- */
21
- declare function createTestAgent(agentId: string, overrides?: Partial<MakaioSessionAgent>): MakaioSessionAgent;
22
16
  /**
23
17
  * Emit `adapter.initialized` for tests that intentionally exercise the
24
18
  * AdapterRegistry event cache or reverse adapter-name lookup.
@@ -28,8 +22,9 @@ declare function createTestAgent(agentId: string, overrides?: Partial<MakaioSess
28
22
  * runtime identity handlers unless they specifically need the event cache.
29
23
  * @param adapterName - Adapter type name (e.g., `'test-adapter'`)
30
24
  * @param adapterId - Adapter instance ID. Defaults to `adapterName` for test simplicity.
25
+ * @param machineId - Machine that announced the adapter instance.
31
26
  */
32
- declare function emitAdapterInitialized(adapterName: string, adapterId?: string): Promise<void>;
27
+ declare function emitAdapterInitialized(adapterName: string, adapterId?: string, machineId?: string): Promise<void>;
33
28
  /**
34
29
  * Query stored session events.
35
30
  * @param sessionId - Session ID to query
@@ -120,8 +115,13 @@ declare function collectUserMessageAcknowledgedEvents(unsubs: UnsubscribeFunctio
120
115
  declare function collectUserMessageCompletedEvents(unsubs: UnsubscribeFunction[]): EventCollector<UserMessageCompletedPayload>;
121
116
  //#endregion
122
117
  //#region services/core/src/session/testing/orchestrator-shared.d.ts
123
- /** Alias for {@link createTestAgent} - kept for orchestrator test naming consistency. */
124
- declare const createMockAgent: typeof createTestAgent;
118
+ /**
119
+ * Create an agent row owned by the mock runtime unless a test explicitly models a legacy row.
120
+ * @param agentId - The agent identifier.
121
+ * @param overrides - Optional persisted-agent fields to override.
122
+ * @returns A test agent with the mock runtime owner.
123
+ */
124
+ declare function createMockAgent(agentId: string, overrides?: Partial<MakaioSessionAgent>): MakaioSessionAgent;
125
125
  /** Configuration for creating mock sessions. */
126
126
  interface MockSessionConfig {
127
127
  sessionId: string;
@@ -0,0 +1 @@
1
+ import{a as e,t}from"./ownership-recovery-guard-DyW5vGBr.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(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 m(e,t,n){let r=ee(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(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function te(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 g(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function _(e){return e.activation===`live`?`active`:`discovered`}const ne=g();function re(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function v(e,t,n){n!==void 0&&(e[t]=n)}function ie(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function ae(e,t,n){if(!ie(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function oe(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:_(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 se(e,t,n){let r=re(e.importStatus,t.importStatus);ae(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 y(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=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),v(e,`adapterId`,t.adapterId),v(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),v(e,`isSidechain`,t.isSidechain),v(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function ce(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 le(e,t,n){let r=e.discoveredAt;se(e,t,n),y(e,t),ce(e,t,r)}function b(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 ue(e,t,n){if(n){e.emit(s.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(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function de(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 x(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function fe(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),n}function pe(e,t,n){e.emit(s.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(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function me(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=x(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=fe(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function he(e){let{bus:t,store:r,cloneSession:i,populateAgents:a}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=x(r,n.source,n.externalSessionId),a=ne(),o=i===void 0,s=i??oe(n,crypto.randomUUID(),a);i?(le(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&b(r,i)):(r.set(s.sessionId,s),b(r,s)),ue(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),me(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let o=await a(t,n.sessionId);e.setResult({session:{...i(n),agents:o}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:o}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...i(e),agents:await a(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(de(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),pe(t,n,i)})]}function S(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function C(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function w(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function T(e){return structuredClone(e)}function E(e,t,n){n!==void 0&&(e[t]=n)}function D(e,t,n){n!==void 0&&(e[t]=n??void 0)}function O(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 k(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId)}function A(e,t){E(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),E(e,`contextInheritance`,t.contextInheritance),E(e,`rootSessionId`,t.rootSessionId),E(e,`forkPointMessageId`,t.forkPointMessageId),E(e,`branchKind`,t.branchKind),E(e,`isOrchestrated`,t.isOrchestrated),E(e,`clientId`,t.clientId),E(e,`clientAccountId`,t.clientAccountId),E(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),E(e,`title`,t.title),E(e,`targetWorkingDirectory`,t.targetWorkingDirectory),E(e,`createdAt`,t.createdAt),E(e,`lastActivityAt`,t.lastActivityAt),E(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,E(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),D(e,`executionTargetId`,t.executionTargetId),D(e,`approvalPolicyOverride`,t.approvalPolicyOverride),D(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function j(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=O(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=>({...T(t),agents:await w(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function M(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(S(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(C(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=T(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),A(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,T(i))})}function N(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await w(e,t.payload.sessionId);t.setResult({session:{...T(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?T(c):null;k(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,T(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(j(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.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})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(M(e,r)),i.push(P(e,r)),i.push(...he({bus:e,store:r,populateAgents:w,cloneSession:T})),()=>i.forEach(e=>e())}function P(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...T(c),agents:u}})})}function F(e){return structuredClone(e)}function I(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function L(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function R(e,t,n){let r=e.get(t),i=r===void 0?void 0:L(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ge(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function _e(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function ve(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:F(t)})})),i.push(t.on(e.set,e=>{R(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:_e(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(F)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(F)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ge(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>I(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function ye(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,ye(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function be(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function xe(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Se(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ce(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function we(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Te(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=xe(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ce(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Se(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function Ee(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=we(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function De(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?Ee(e,r,a):Te(e,r,i,a,o)}function Oe(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=Oe(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;be(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function ke(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ae(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function je(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Me(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ae(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();ke(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ne(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Pe(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Fe(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function Ie(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ne(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Me(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=je(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Le(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Re(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function ze(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Be(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function Ve(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function He(e,t=d()){let n=[Pe(e,t),Fe(e,t),e.on(i.claim,e=>{e.setResult(De(t,e.payload))}),$(e,t),Ie(e,t),Re(e,t),Le(e,t),ze(e,t),Be(e,t),Ve(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{S as a,h as c,m as d,d as f,C as i,te as l,ve as n,_ as o,N as r,g as s,He as t,p as u};
@@ -0,0 +1 @@
1
+ import{agents as e}from"./services/session/storage/schema.mjs";import{z as t}from"zod";import{AgentStatusSchema as n,MakaioSessionAgentSchema as r}from"@makaio/framework/contracts";import{createStorageNamespaceDefinition as i}from"@makaio/framework/storage";const a=i(`agent`,{schemas:{get:{request:t.object({agentId:t.string()}),response:t.object({agent:r.nullable()})},set:{request:t.object({agentId:t.string(),agent:r}),response:t.object({success:t.boolean()})},delete:{request:t.object({agentId:t.string()}),response:t.object({success:t.boolean()})},listByAdapter:{request:t.object({adapterName:t.string(),status:t.enum([...n.options,`all`]).optional()}),response:t.object({agents:t.array(r)})},listBySession:{request:t.object({sessionId:t.string()}),response:t.object({agents:t.array(r)})},updateStatus:{request:t.object({agentId:t.string(),status:n,expectedStatus:t.array(n).nonempty().optional()}),response:t.object({success:t.boolean(),transitioned:t.boolean()})},updateActivity:{request:t.object({agentId:t.string(),lastActivityAt:t.number()}),response:t.object({success:t.boolean()})},updateRuntime:{request:t.object({agentId:t.string(),adapterId:t.string().optional(),runtimeOwner:t.object({machineId:t.string(),instanceId:t.string()}).optional(),adapterSessionId:t.string().optional(),cwd:t.string().optional(),model:t.string().optional(),allowedDirectories:t.array(t.string()).optional(),providerConfigId:t.string().nullable().optional()}).refine(e=>e.adapterId!==void 0||e.runtimeOwner!==void 0||e.adapterSessionId!==void 0||e.cwd!==void 0||e.model!==void 0||e.allowedDirectories!==void 0||e.providerConfigId!==void 0,{message:`At least one runtime field (adapterId, runtimeOwner, adapterSessionId, cwd, model, allowedDirectories, or providerConfigId) must be provided`}),response:t.object({success:t.boolean()})}},extensions:{drizzle:{agents:e}}}),o=a.subjects;function s(e){return e===null?null:{claimId:e.claimId,claimToken:e.claimToken,fence:e.fence,ownerInstanceId:e.ownerInstanceId,status:e.status}}function c(e,t){return e?.claimId===t?.claimId&&e?.claimToken===t?.claimToken&&e?.fence===t?.fence&&e?.ownerInstanceId===t?.ownerInstanceId&&e?.status===t?.status}function l(e,t,n){let r=e.recoveryGuard;if(r===void 0)return;if(t.revision!==r.expectedRevision||t.currencyFence!==r.expectedCurrencyFence||t.currency.adapterSessionId!==r.expectedCurrency.adapterSessionId||t.currency.currentAdapterSessionId!==r.expectedCurrency.currentAdapterSessionId||t.currency.currentAdapterSessionIdState!==r.expectedCurrency.currentAdapterSessionIdState)return{outcome:`currency-changed`,revision:t.revision,currencyFence:t.currencyFence,currency:t.currency};let i=r.expectedPreimage;if(t.status!==i.status||t.adapterId!==i.adapterId||t.runtimeOwner?.machineId!==i.binding?.ownerMachineId||t.runtimeOwner?.instanceId!==i.binding?.ownerInstanceId||t.recoveryAttemptId!==i.recoveryAttemptId)return{outcome:`recovery-conflict`,status:t.status,ownerGeneration:s(n)};let a=s(n),o=r.ownerGeneration;if(t.status!==r.expectedStatus||!c(a,o))return{outcome:`recovery-conflict`,status:t.status,ownerGeneration:a}}export{o as a,a as i,s as n,c as r,l as t};
@@ -0,0 +1,7 @@
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as ee,O as te,P as ne,Q as re,R as ie,S as m,U as ae,V as oe,W as se,X as ce,Y as le,Z as ue,_ as de,a as fe,at as pe,b as me,c as he,ct as h,et as ge,f as _e,h as ve,i as ye,it as be,j as xe,k as g,l as Se,m as Ce,n as we,nt as Te,o as Ee,ot as De,p as Oe,q as ke,r as Ae,rt as je,st as Me,tt as Ne,u as Pe,v as Fe,w as Ie,x as Le,y as _,z as Re}from"./authority-state-bootstrap-CLYus369.mjs";import{assertWorkflowTriggerPayload as ze,compileWorkflowTriggerBindingFilter as Be}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{SerialLane as Ve}from"@makaio/framework/utils";import{ArtifactSubjects as He,AutomationTriggerSubjects as Ue,CRON_AUTOMATION_TRIGGER_KIND as We,EXECUTION_LIST_DEFAULT_LIMIT as Ge,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionsByArtifactRefsQuerySchema as Ke,JsonPatchOperationSchema as qe,JsonValueSchema as Je,SessionSubjects as Ye,WORKFLOW_CANCELLED_REASON as x,WorkLogFrameEntrySchema as Xe,WorkerNodeSubjects as Ze,WorkflowAutomationTriggerBindingSchema as Qe,WorkflowError as S,WorkflowErrorCode as $e,WorkflowNamespace as et,WorkflowRunContextSchema as tt,WorkflowRunResultSchema as nt,WorkflowStepTypeSchema as rt,WorkflowSubjects as C,createWorkflowCancelSubject as it,createWorkflowDelegateResultFinalizerNamespace as at,createWorkflowFinalizerNamespace as ot,dep as st,extensionToken as ct,serializeArtifactRef as lt,walkWorkflowDefinition as ut}from"@makaio/framework/contracts";import{BaseService as dt}from"@makaio/framework/service-base";import{defineDialectSchema as ft,executeTransaction as w,getDatabaseDialect as pt,registerDrizzleHandlers as mt,resolveSchema as T,serializeDatabaseOperation as E}from"@makaio/framework/storage/drizzle";import{and as D,asc as O,count as k,desc as A,eq as j,getTableColumns as ht,gte as gt,isNotNull as _t,isNull as M,lt as vt,lte as yt,notInArray as bt,or as xt,sql as N,sum as P}from"drizzle-orm";import{SessionToken as St}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Ct}from"@makaio/framework/services/automation-trigger";const wt=ne.postgres,Tt=se.postgres,Et=l.postgres,Dt=d.postgres,Ot=ce.postgres,kt=ie.postgres,At=u.postgres,jt=be.postgres,Mt=ge.postgres,Nt=re.postgres,Pt=Te.postgres,Ft=n.postgres,It=c.postgres,Lt=De.postgres,F=ft({workflowDefinitions:ee,workflowExecutions:ae,workflowExecutionFrames:o,workflowGateInstances:s,workflowStepSpans:le,workflowExecutionLinks:f,workflowRunContexts:ke,worklogSummaries:je,worklogFrameEntries:e,worklogArtifactWrites:ue,worklogGateEvents:Ne,workflowExecutionState:Re,workflowExecutionStateEvents:oe,workflowFinalizations:pe},{workflowDefinitions:wt,workflowExecutions:Tt,workflowExecutionFrames:Et,workflowGateInstances:Dt,workflowStepSpans:Ot,workflowExecutionLinks:kt,workflowRunContexts:At,worklogSummaries:jt,worklogFrameEntries:Mt,worklogArtifactWrites:Nt,worklogGateEvents:Pt,workflowExecutionState:Ft,workflowExecutionStateEvents:It,workflowFinalizations:Lt});function I(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function L(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function Rt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=I(t);return[j(e.scopeType,n),j(e.scopeKind,r),j(e.scopeId,i)]}function R(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:L(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function zt(e,t){let n=I(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function Bt(e,t){let{workflowDefinitions:n}=T(t,F),r=ht(n),i=e.on(p.get,async e=>{let r=await t.select().from(n).where(j(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?R(r[0]):null})}),a=e.on(p.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=zt(a,o),c=await E(t,async()=>{let e=await t.insert(n).values(s).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:s.name,root:s.root,updatedAt:o,createdAt:N`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?N`${r.description}`:s.description,inputSchema:s.inputSchema===null?N`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?N`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?N`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?N`${r.artifact}`:s.artifact,triggers:s.triggers===null?N`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?N`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?N`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...I(a.scope)}).where(j(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?h.definition.created:h.definition.updated,R(c.row)),i.setResult({id:a.id})}),o=e.on(p.delete,async r=>{let i=(await E(t,()=>t.delete(n).where(j(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(h.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(p.list,async e=>{let r=e.payload,i=r.scope?Rt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(D(...i)):await t.select().from(n);e.setResult({workflows:a.map(R)})});return()=>{i(),a(),o(),s()}}function Vt(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function Ht(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function Ut(e,t){let{workflowExecutionFrames:n}=T(t,F),r=e.on(p.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Ht(r,i);await E(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(p.getFrame,async e=>{let r=await t.select().from(n).where(j(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Vt(r[0]):null})}),a=e.on(p.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.frameId));e.setResult({frames:r.map(Vt)})});return()=>{r(),i(),a()}}function Wt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function z(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function B(e){return{id:Wt(e),executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function Gt(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??Ge;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[j(r.executionId,e)],...t===void 0?[]:[j(r.status,t)]]}}function Kt(e,t){let{workflowExecutions:n,workflowGateInstances:r}=T(t,F),i=e.on(p.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=B(n);await E(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=e.on(p.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=B(n),a=await E(t,()=>t.update(r).set(i).where(D(j(r.id,i.id),j(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),o=e.on(p.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[j(r.executionId,n),j(r.nodeId,i)];a!==void 0&&o.push(j(r.frameId,a));let s=await t.select().from(r).where(D(...o)).limit(1);e.setResult({gate:s[0]?z(s[0]):null})}),s=e.on(p.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Gt(n,i,a,r),c=await t.select().from(r).where(D(...s)).orderBy(A(r.createdAt),A(r.id)).limit(o);e.setResult({gates:c.map(z)})}),c=e.on(p.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,j(r.executionId,n.id)).where(D(j(r.status,`waiting`),j(n.status,`paused`),_t(r.timeoutMs)));e.setResult({gates:i.map(e=>z(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function qt(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Jt(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Yt(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=T(t,F),i=e.on(p.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await E(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(p.listSpans,async e=>{let r=await t.select().from(n).where(j(n.executionId,e.payload.executionId)).orderBy(O(n.startedAt),O(n.stepId),O(n.frameId));e.setResult({spans:r.map(qt)})}),o=e.on(p.setExecutionLink,async e=>{let{link:n}=e.payload;await E(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(p.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[j(r.sourceExecutionId,n)],...i===void 0?[]:[j(r.targetExecutionId,i)]],o=t.select().from(r).where(D(...a));e.setResult({links:(await o).map(Jt)})});return()=>{i(),a(),o(),s()}}function V(e,t){return t===null?pt(e)===`postgres`?N`'null'::jsonb`:N`'null'`:t}function Xt(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function Zt(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function Qt(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Zt(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:L(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function $t(e){let t=Xt(e.source),n=I(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function en(e,t,n){let r=$t(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function tn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=T(t,F),a=e.on(p.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await w(t,async e=>{if(await en(e,a,n),o===void 0)return;let s=Date.now(),c=V(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(p.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(j(n.executionId,r)),a=i[0]?Qt(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=T(e,F),a=Date.now(),o=V(e,n);await w(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function rn(e,t){let{workflowExecutionState:n}=T(e,F),r=(await e.select().from(n).where(j(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function an(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=T(e,F),i=Date.now(),a=V(e,t.nextValue);return w(e,async e=>{let o=(await e.select().from(n).where(j(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=te(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(D(j(n.executionId,t.executionId),j(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function on(e,t){let n=e.on(p.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await nn(t,n,r),e.setResult({})}),r=e.on(p.getState,async e=>{let{executionId:n}=e.payload,r=await rn(t,n);e.setResult({state:r})}),i=e.on(p.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await an(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function sn(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function cn(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function ln(e,t){let{worklogSummaries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:un(t),setWhere:bt(n.status,[`completed`,`failed`,`cancelled`])})}function un(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function H(e,t){let{worklogSummaries:n}=T(e,F),r=await e.select().from(n).where(j(n.executionId,t)).limit(1);return r[0]?sn(r[0]):null}async function dn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[j(n.status,i)]],c=s.length>0?D(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(A(n.startedAt)).limit(a).offset(o),e.select({count:k()}).from(n).where(c)]);return{items:l.map(sn),total:u[0]?.count??0}}async function fn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoNothing()}async function pn(e,t){let{worklogFrameEntries:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:bt(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function U(e,t){let{worklogFrameEntries:n}=T(e,F);return(await e.select().from(n).where(j(n.frameId,t)).limit(1))[0]??null}async function mn(e,t){let n=await U(e,t);return n===null?null:Xe.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function hn(e,t){let{worklogArtifactWrites:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function gn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function W(e,t){let{worklogGateEvents:n}=T(e,F);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function _n(e,t){let{worklogGateEvents:n}=T(e,F);return(await e.select().from(n).where(j(n.id,t)).limit(1))[0]??null}function G(e,t,n){return`${e}:${t}:${n}`}async function vn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(j(t.executionId,n)).returning();return r}async function yn(e,t,n){let[r]=await e.select({totalInputTokens:P(t.inputTokens),totalOutputTokens:P(t.outputTokens),totalEstimatedCost:P(t.estimatedCost),measuredInputTokens:k(t.inputTokens),measuredOutputTokens:k(t.outputTokens),measuredCosts:k(t.estimatedCost)}).from(t).where(j(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function bn(e){return e.hasMeasurements}async function xn(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(j(t.executionId,n))}async function Sn(e,t,n,r){let i=N`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=N`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=N`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=N`exists(
2
+ select 1 from ${n}
3
+ where ${n.executionId} = ${r}
4
+ and (${n.inputTokens} is not null
5
+ or ${n.outputTokens} is not null
6
+ or ${n.estimatedCost} is not null)
7
+ )`;await e.update(t).set({totalInputTokens:i,totalOutputTokens:a,totalEstimatedCost:o}).where(D(j(t.executionId,r),s))}async function Cn(e,t){let{worklogSummaries:n,worklogFrameEntries:r}=T(e,F);if(pt(e)===`sqlite`){await Sn(e,n,r,t);return}await w(e,async e=>{if(await vn(e,n,t)===void 0)return;let i=await yn(e,r,t);bn(i)&&await xn(e,n,t,i)})}async function wn(e,t={}){let{worklogSummaries:n}=T(e,F),{workflowId:r,since:i,until:a}=t,o=[...r===void 0?[]:[j(n.workflowId,r)],...i===void 0?[]:[gt(n.startedAt,i)],...a===void 0?[]:[yt(n.startedAt,a)]],s=o.length>0?D(...o):void 0,[c,l]=await Promise.all([e.select({status:n.status,count:k()}).from(n).where(s).groupBy(n.status),e.select({totalDurationMs:P(n.durationMs),totalInputTokens:P(n.totalInputTokens),totalOutputTokens:P(n.totalOutputTokens),totalEstimatedCost:P(n.totalEstimatedCost)}).from(n).where(s)]),u={pending:0,running:0,paused:0,finalizing:0,completed:0,failed:0,cancelled:0},d=0;for(let e of c)u[e.status]=e.count,d+=e.count;let f=l[0];return{total:d,byStatus:u,totalDurationMs:Number(f?.totalDurationMs??0),totalInputTokens:Number(f?.totalInputTokens??0),totalOutputTokens:Number(f?.totalOutputTokens??0),totalEstimatedCost:Number(f?.totalEstimatedCost??0)}}async function Tn(e,t,n,r,i){let a=await U(t,n);if(a===null||i===void 0)return null;let o=await e.requestOptional(He.resolve,{ref:{refClass:`artifact`,kind:r.kind,id:r.id,revision:i}}).catch(()=>void 0);if(o===void 0||!o.handled||o.data.artifact===null)return null;let{kind:s,schemaVersion:c,scope:l}=o.data.artifact;return{nodeId:a.nodeId,artifact:{kind:s,schemaVersion:c,scope:l}}}async function K(e,t){try{await t()}catch(t){console.error(`[WorklogProjection] Write failed (${e}):`,t)}}async function q(e,t){try{await e.emit(h.worklog.changed,{executionId:t})}catch(e){console.error(`[WorklogProjection] worklog.changed emit failed for ${t}:`,e)}}const En=new Set([`completed`,`failed`,`cancelled`]);function Dn(e){return En.has(e)}async function On(e,t){return await cn(e,{executionId:t.executionId,workflowId:t.workflowId,workflowName:null,status:`running`,startedAt:t.startedAt??Date.now(),completedAt:null,durationMs:null,totalInputTokens:null,totalOutputTokens:null,totalEstimatedCost:null,error:null,failedNodeId:null}),!0}async function kn(e,t){let n=t.completedAt??Date.now(),r=await H(e,t.executionId);return r!==null&&Dn(r.status)?!1:(await ln(e,{executionId:t.executionId,workflowId:r?.workflowId??t.executionId,workflowName:r?.workflowName??null,status:`completed`,startedAt:r?.startedAt??n-t.totalDuration,completedAt:n,durationMs:t.totalDuration,totalInputTokens:r?.totalInputTokens??null,totalOutputTokens:r?.totalOutputTokens??null,totalEstimatedCost:r?.totalEstimatedCost??null,error:null,failedNodeId:null}),!0)}async function An(e,t,n,r,i,a){let o=await H(e,t);if(o!==null&&Dn(o.status))return!1;let s=o?.startedAt??a;return await ln(e,{executionId:t,workflowId:o?.workflowId??t,workflowName:o?.workflowName??null,status:n,startedAt:s,completedAt:a,durationMs:a-s,totalInputTokens:o?.totalInputTokens??null,totalOutputTokens:o?.totalOutputTokens??null,totalEstimatedCost:o?.totalEstimatedCost??null,error:r,failedNodeId:i}),!0}function jn(e,t){return[e.on(h.execution.started,async n=>{let{executionId:r}=n.payload;await K(`execution.started[${r}]`,async()=>{await E(t,()=>On(t,n.payload))&&await q(e,r)})}),e.on(h.execution.completed,async n=>{let{executionId:r}=n.payload;await K(`execution.completed[${r}]`,async()=>{await E(t,()=>kn(t,n.payload))&&await q(e,r)})}),e.on(h.execution.failed,async n=>{let{executionId:r,error:i,failedStepId:a}=n.payload,o=n.payload.completedAt??Date.now();await K(`execution.failed[${r}]`,async()=>{await E(t,()=>An(t,r,`failed`,i,a??null,o))&&await q(e,r)})}),e.on(h.execution.cancelled,async n=>{let{executionId:r}=n.payload,i=n.payload.completedAt??Date.now();await K(`execution.cancelled[${r}]`,async()=>{await E(t,()=>An(t,r,`cancelled`,null,null,i))&&await q(e,r)})})]}const Mn=new Set([`completed`,`failed`,`skipped`,`cancelled`]);function Nn(e){return Mn.has(e)}function Pn(e,t,n){return e===null?{nodeId:t,nodeType:`station`,path:[],attempt:0,iteration:null,branchKey:null,startedAt:n,inputTokens:null,outputTokens:null,estimatedCost:null}:{nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,attempt:e.attempt,iteration:e.iteration,branchKey:e.branchKey,startedAt:e.startedAt,inputTokens:e.inputTokens,outputTokens:e.outputTokens,estimatedCost:e.estimatedCost}}async function Fn(e,t,n,r,i,a,o){let s=o??Date.now(),c=await U(t,r);c!==null&&Nn(c.status)||(await pn(t,{frameId:r,executionId:n,...Pn(c,i,a===void 0?null:s-a),status:`completed`,completedAt:s,durationMs:a??null,error:null}),await Cn(t,n),await q(e,n))}async function In(e,t,n,r,i,a,o,s){let c=s??Date.now(),l=await U(t,r);l!==null&&Nn(l.status)||(await pn(t,{frameId:r,executionId:n,...Pn(l,i,o===void 0?null:c-o),status:`failed`,completedAt:c,durationMs:o??null,error:a}),await q(e,n))}function Ln(e,t){return[e.on(h.frame.started,async n=>{let{executionId:r,frameId:i,nodeId:a,nodeType:o,path:s,startedAt:c}=n.payload;await K(`frame.started[${i}]`,async()=>{await fn(t,{frameId:i,executionId:r,nodeId:a,nodeType:o,path:s,status:`running`,attempt:0,iteration:null,branchKey:null,startedAt:c??Date.now(),completedAt:null,durationMs:null,inputTokens:null,outputTokens:null,estimatedCost:null,error:null}),await q(e,r)})}),e.on(h.frame.completed,async n=>{let{executionId:r,frameId:i,nodeId:a,duration:o,completedAt:s}=n.payload;await K(`frame.completed[${i}]`,()=>Fn(e,t,r,i,a,o,s))}),e.on(h.frame.failed,async n=>{let{executionId:r,frameId:i,nodeId:a,error:o,duration:s,completedAt:c}=n.payload;await K(`frame.failed[${i}]`,()=>In(e,t,r,i,a,o,s,c))})]}const Rn={user:`rejected`,timeout:`timed-out`,cancelled:`cancelled`};function zn(e,t){return[e.on(h.gate.suspended,async n=>{let{executionId:r,frameId:i,nodeId:a,prompt:o}=n.payload;await K(`gate.suspended[${i}]`,async()=>{await W(t,{id:G(r,a,i),executionId:r,nodeId:a,frameId:i,status:`waiting`,prompt:o??null,openedAt:Date.now(),resolvedAt:null,resumeData:null}),await q(e,r)})}),e.on(h.gate.resumed,async n=>{let{executionId:r,frameId:i,nodeId:a,resumeData:o}=n.payload;await K(`gate.resumed[${i}]`,async()=>{let n=G(r,a,i),s=await _n(t,n),c=Date.now();await W(t,{id:n,executionId:r,nodeId:a,frameId:i,status:`resumed`,prompt:s?.prompt??null,openedAt:s?.openedAt??c,resolvedAt:c,resumeData:o}),await q(e,r)})}),e.on(h.gate.resolved,async n=>Bn(n.payload,e,t)),e.on(h.artifact.updated,async n=>{let{executionId:r,frameId:i,artifactRef:a,revision:o}=n.payload;await K(`artifact.updated[${r}:${i}]`,async()=>{let n=await Tn(e,t,i,a,o);if(n===null)return;let s=Date.now();await hn(t,{id:gn(r,i,a.kind,a.id,s),executionId:r,frameId:i,nodeId:n.nodeId,artifact:n.artifact,revision:o??null,writtenAt:s}),await q(e,r)})})]}async function Bn(e,t,n){let{executionId:r,frameId:i,stepId:a,source:o}=e;o===`user`&&e.action===`approve`||await K(`gate.resolved[${i}]`,async()=>{let s=G(r,a,i),c=await _n(n,s),l=Date.now();await W(n,{id:s,executionId:r,nodeId:a,frameId:i,status:o!==`cancelled`&&e.action===`approve`?`resumed`:Rn[o],prompt:c?.prompt??null,openedAt:c?.openedAt??l,resolvedAt:l,resumeData:c?.resumeData??null}),await q(t,r)})}function Vn(e,t){let n=[...jn(e,t),...Ln(e,t),...zn(e,t),e.on(h.worklog.get,async e=>{let{executionId:n}=e.payload,r=await H(t,n);e.setResult({summary:r})}),e.on(h.worklog.frame.get,async e=>{let{frameId:n}=e.payload,r=await mn(t,n);e.setResult({frame:r})}),e.on(h.worklog.list,async e=>{let{workflowId:n,status:r,limit:i,offset:a}=e.payload,o=await dn(t,{workflowId:n,status:r,limit:i,offset:a});e.setResult(o)}),e.on(h.worklog.stats,async e=>{let{workflowId:n,since:r,until:i}=e.payload,a=await wn(t,{workflowId:n,since:r,until:i});e.setResult({stats:a})})];return()=>{for(let e of n)e()}}function J(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(e===null||t===null||typeof e!=`object`||typeof t!=`object`)return!1;let n=e,r=t,i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length&&i.every((e,t)=>e===a[t]&&J(n[e],r[e]))}function Hn(e){return{executionId:e.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,status:e.status,attempt:e.attempt,iteration:e.iteration??null,branchKey:e.branchKey??null,startedAt:e.startedAt??null,completedAt:e.completedAt??null,durationMs:e.durationMs??null,inputTokens:e.inputTokens??null,outputTokens:e.outputTokens??null,estimatedCost:e.estimatedCost??null,error:e.error??null}}function Un(e,t){let n=e.frame;if(n!==void 0){let r=e.status===`failed`?e.error??null:null;if(n.executionId!==e.executionId)throw Error(`settleExternalExecution requires frame.executionId to match executionId`);if(n.status!==e.status)throw Error(`settleExternalExecution requires frame.status to match status`);if(n.completedAt!==t)throw Error(`settleExternalExecution requires frame.completedAt to match completedAt`);if(n.durationMs!==t-n.startedAt)throw Error(`settleExternalExecution requires frame.durationMs to match its timestamps`);if((n.error??null)!==r)throw Error(`settleExternalExecution requires frame.error to match terminal error metadata`)}return JSON.stringify({version:1,status:e.status,completedAt:t,error:e.status===`failed`?e.error??null:null,reason:e.status===`cancelled`?e.reason??null:null,frame:n===void 0?null:{executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??null,branchKey:n.branchKey??null,startedAt:n.startedAt,completedAt:n.completedAt,durationMs:n.durationMs,error:n.status===`failed`?n.error??null:null}})}function Wn(e,t,n){if(e!==t)throw Error(`settleExternalExecution: execution "${n}" conflicts with an existing terminal settlement fingerprint`)}async function Gn(e,t,n,r,i){let a=Un(r,i);if(n.externalSettlementFingerprint!==null){Wn(n.externalSettlementFingerprint,a,r.executionId);return}if(r.frame!==void 0)throw Error(`settleExternalExecution: frame presence conflicts with the legacy frame-less settlement for execution "${r.executionId}"`);let o=r.status===`failed`?r.error??null:null,s=r.status===`cancelled`?r.reason??null:null;if((await e.update(t).set({externalSettlementFingerprint:a}).where(D(j(t.id,r.executionId),M(t.externalSettlementFingerprint),j(t.status,r.status),j(t.completedAt,i),o===null?M(t.error):j(t.error,o),s===null?M(t.reason):j(t.reason,s))).returning({fingerprint:t.externalSettlementFingerprint})).length>0)return;let[c]=await e.select().from(t).where(j(t.id,r.executionId)).limit(1);if(c===void 0)throw Error(`settleExternalExecution: execution "${r.executionId}" disappeared`);if(qn(c,r,i),c.externalSettlementFingerprint===null)throw Error(`settleExternalExecution: failed to adopt terminal settlement fingerprint for execution "${r.executionId}"`);Wn(c.externalSettlementFingerprint,a,r.executionId)}function Kn(e,t){if(e.executionId!==t.executionId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!J(e.path,t.path)||e.attempt!==t.attempt||e.iteration!==(t.iteration??null)||e.branchKey!==(t.branchKey??null)||e.startedAt!==t.startedAt)throw Error(`settleExternalExecution: frame "${t.frameId}" conflicts with its registered metadata`)}function qn(e,t,n){let r=t.status===`failed`?t.error??null:null,i=t.status===`cancelled`?t.reason??null:null;if(e.status!==t.status||e.completedAt!==n||e.error!==r||e.reason!==i)throw e.status===t.status?Error(`settleExternalExecution: execution "${t.executionId}" conflicts with an existing terminal settlement`):Error(`settleExternalExecution: execution "${t.executionId}" cannot transition from status "${e.status}"`)}async function Jn(e,t,n){let r=await e.select().from(t).where(j(t.executionId,n.executionId)),i=r.find(e=>e.frameId===n.frame.frameId);if(i!==void 0)return i;if(r.length>0)throw Error(`settleExternalExecution: frame "${n.frame.frameId}" conflicts with the registered frame identity`);let[a]=await e.select().from(t).where(j(t.frameId,n.frame.frameId)).limit(1);if(a!==void 0)throw Error(`settleExternalExecution: frame "${n.frame.frameId}" belongs to another execution`)}function Yn(e,t,n,r){let i=Math.min(e.startedAt,r);return{executionId:e.id,workflowId:e.workflowId,workflowName:t?.workflowName??null,status:n.status,startedAt:i,completedAt:r,durationMs:r-i,totalInputTokens:t?.totalInputTokens??null,totalOutputTokens:t?.totalOutputTokens??null,totalEstimatedCost:t?.totalEstimatedCost??null,error:n.status===`failed`?n.error??null:null,failedNodeId:n.status===`failed`?n.frame?.nodeId??t?.failedNodeId??null:null}}function Xn(e,t){return Hn({...e,inputTokens:e.inputTokens??t?.inputTokens??void 0,outputTokens:e.outputTokens??t?.outputTokens??void 0,estimatedCost:e.estimatedCost??t?.estimatedCost??void 0})}function Zn(e,t){if(e.externalRegistrationFrameId!==(t.externalRegistrationFrameId??null))throw Error(`setExternalExecutionStart: frame metadata conflicts for execution "${t.id}"`);if(!(e.id===t.id&&e.workflowId===t.workflowId&&e.coordinatorSessionId===t.coordinatorSessionId&&e.startedAt===t.startedAt&&e.scopeType===t.scopeType&&e.scopeKind===t.scopeKind&&e.scopeId===t.scopeId&&e.artifactKind===t.artifactKind&&e.artifactId===t.artifactId&&J(e.inputs,t.inputs)&&J(e.triggerPayload,t.triggerPayload)))throw Error(`setExternalExecutionStart: registration conflicts for execution "${t.id}"`)}function Qn(e,t){if(e.workflowId!==t.workflowId||e.startedAt!==t.startedAt||e.executionId!==t.executionId)throw Error(`setExternalExecutionStart: WorkLog summary conflicts for execution "${t.executionId}"`)}function $n(e,t){if(e.executionId!==t.executionId||e.frameId!==t.frameId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!J(e.path,t.path)||e.attempt!==t.attempt||e.iteration!==(t.iteration??null)||e.branchKey!==(t.branchKey??null)||e.startedAt!==t.startedAt)throw Error(`setExternalExecutionStart: WorkLog frame conflicts for frame "${t.frameId}"`)}async function er(e,t,n,r){if(!t.id.startsWith(b))throw Error(`setExternalExecutionStart: execution "${t.id}" is not an external execution ID`);if(n!==void 0&&n.executionId!==t.id)throw Error(`setExternalExecutionStart requires frame.executionId to match execution.id`);let{workflowExecutions:i,worklogSummaries:a,worklogFrameEntries:o}=T(e,F),s={...r(t),externalRegistrationFrameId:n?.frameId??null},c={executionId:t.id,workflowId:t.workflowId,workflowName:null,status:`running`,startedAt:t.startedAt,completedAt:null,durationMs:null,totalInputTokens:null,totalOutputTokens:null,totalEstimatedCost:null,error:null,failedNodeId:null};await w(e,async e=>{let r=(await e.insert(i).values(s).onConflictDoNothing().returning({id:i.id})).length===0;if(r){let[n]=await e.select().from(i).where(j(i.id,t.id)).limit(1);if(n===void 0)throw Error(`setExternalExecutionStart: execution "${t.id}" disappeared`);Zn(n,s)}let[l]=await e.select().from(a).where(j(a.executionId,t.id)).limit(1);if(l===void 0?await e.insert(a).values(c):Qn(l,c),n!==void 0){let[i]=await e.select().from(o).where(j(o.frameId,n.frameId)).limit(1);if(i===void 0){if(r)throw Error(`setExternalExecutionStart: frame metadata conflicts for execution "${t.id}"`);await e.insert(o).values(Hn(n))}else $n(i,n)}})}async function tr(e,t,n,r,i){if(r.frame!==void 0){let n=await Jn(e,t,r);return n!==void 0&&Kn(n,r.frame),{frame:r.frame,existing:n}}if(n.externalRegistrationFrameId===null)return;let[a]=await e.select().from(t).where(j(t.frameId,n.externalRegistrationFrameId)).limit(1);if(a===void 0||a.executionId!==n.id)throw Error(`settleExternalExecution: registered frame "${n.externalRegistrationFrameId}" is unavailable for execution "${n.id}"`);if(a.startedAt===null)throw Error(`settleExternalExecution: registered frame "${a.frameId}" has no start timestamp`);if(i<a.startedAt)throw Error(`settleExternalExecution: completedAt must not precede the registered frame start timestamp`);let o=rt.parse(a.nodeType);return{frame:{executionId:a.executionId,frameId:a.frameId,nodeId:a.nodeId,nodeType:o,path:a.path,status:r.status,attempt:a.attempt,...a.iteration===null?{}:{iteration:a.iteration},...a.branchKey===null?{}:{branchKey:a.branchKey},startedAt:a.startedAt,completedAt:i,durationMs:i-a.startedAt,...r.status===`failed`&&r.error!==void 0?{error:r.error}:{}},existing:a}}async function nr(e,t,n,r,i){let{worklogSummaries:a,worklogFrameEntries:o}=t,s=await vn(e,a,n.id),c=await tr(e,o,n,r,i),l=c===void 0?r:{...r,frame:c.frame};if(c!==void 0){let t=Xn(c.frame,c.existing);await e.insert(o).values(t).onConflictDoUpdate({target:o.frameId,set:t})}let u=await yn(e,o,n.id),d=bn(u),f={totalInputTokens:u.totalInputTokens,totalOutputTokens:u.totalOutputTokens,totalEstimatedCost:u.totalEstimatedCost},p={...Yn(n,s,l,i),...d?f:{}};await e.insert(a).values(p).onConflictDoUpdate({target:a.executionId,set:un(p)}),d&&await xn(e,a,n.id,u)}async function rr(e,t){if(!t.executionId.startsWith(b))throw Error(`settleExternalExecution: execution "${t.executionId}" is engine-owned and must use the engine finalizer`);if(t.frame!==void 0&&t.frame.executionId!==t.executionId)throw Error(`settleExternalExecution requires frame.executionId to match executionId`);let{workflowExecutions:n,worklogSummaries:r,worklogFrameEntries:i}=T(e,F);return w(e,async e=>{let[a]=await e.select().from(n).where(j(n.id,t.executionId)).limit(1);if(a===void 0)throw Error(`settleExternalExecution: execution "${t.executionId}" was not registered`);let o=t.completedAt??a.completedAt??Date.now();if(a.status===`running`){let r=Un(t,o);if((await e.update(n).set({status:t.status,completedAt:o,error:t.status===`failed`?t.error??null:null,reason:t.status===`cancelled`?t.reason??null:null,externalSettlementFingerprint:r}).where(D(j(n.id,t.executionId),j(n.status,`running`),M(n.externalSettlementFingerprint))).returning({id:n.id})).length===0){let[r]=await e.select().from(n).where(j(n.id,t.executionId)).limit(1);if(r===void 0)throw Error(`settleExternalExecution: execution "${t.executionId}" disappeared`);t.completedAt===void 0&&r.completedAt!==null&&(o=r.completedAt),qn(r,t,o),await Gn(e,n,r,t,o)}}else qn(a,t,o),await Gn(e,n,a,t,o);return await nr(e,{worklogSummaries:r,worklogFrameEntries:i},a,t,o),!0})}function ir(e,t,n){let r=e.on(p.setExternalExecutionStart,async r=>{let i=r.payload.execution,a=r.payload.frame;await er(t,i,a,n),await q(e,i.id),r.setResult({executionId:i.id,...a===void 0?{}:{frameId:a.frameId}})}),i=e.on(p.settleExternalExecution,async n=>{let r=await rr(t,n.payload);await q(e,n.payload.executionId),n.setResult({success:r})});return()=>{r(),i()}}function Y(e){return{executionId:e.executionId,workflowId:e.workflowId,finalizerId:e.finalizerId,transitionKey:e.transitionKey,claimToken:e.claimToken,intent:e.intent,claimedAt:e.claimedAt}}function ar(e,t){return e.state===`claimed`&&e.executionId===t.executionId&&e.workflowId===t.workflowId&&e.finalizerId===t.finalizerId&&e.transitionKey===t.transitionKey&&e.claimToken===t.claimToken&&e.intent.status===t.intent.status&&e.intent.completedAt===t.intent.completedAt&&e.intent.error===t.intent.error&&e.intent.reason===t.intent.reason}function or(e,t){if(e.executionId!==t.executionId||e.workflowId!==t.workflowId||e.finalizerId!==t.finalizerId||e.transitionKey!==t.transitionKey||e.claimToken!==t.claimToken)throw Error(`workflow finalization publication claim does not match durable transition ${t.executionId}`)}async function sr(e,t){let{workflowExecutions:n,workflowFinalizations:r}=T(e,F);return w(e,async e=>{let i=await e.select().from(r).where(j(r.executionId,t.executionId)).limit(1);return i[0]?ar(i[0],t):(await e.update(n).set({status:`finalizing`}).where(D(j(n.id,t.executionId),j(n.workflowId,t.workflowId),j(n.status,`running`))).returning({id:n.id})).length===0?!1:(await e.insert(r).values({...t,state:`claimed`}),!0)})}function cr(e){return{status:e.status,completedAt:e.completedAt,error:e.status===`failed`?e.error??`Workflow finalization failed`:null,reason:e.status===`cancelled`?e.reason??null:null}}async function lr(e,t,n,r){let{workflowExecutions:i,workflowFinalizations:a}=T(e,F);return w(e,async e=>{let o=(await e.select().from(a).where(j(a.executionId,t)).limit(1))[0];return!o||o.claimToken!==n||o.state===`failed`?!1:o.state===`acknowledged`?!0:(await e.update(i).set(cr(o.intent)).where(D(j(i.id,t),j(i.status,`finalizing`))).returning({id:i.id})).length===0?!1:(await e.update(a).set({state:`acknowledged`,settledAt:r}).where(D(j(a.executionId,t),j(a.claimToken,n),j(a.state,`claimed`))),!0)})}async function ur(e,t,n,r,i){let{workflowExecutions:a,workflowFinalizations:o}=T(e,F);return w(e,async e=>{let s=(await e.select().from(o).where(j(o.executionId,t)).limit(1))[0];return!s||s.claimToken!==n||s.state===`acknowledged`?!1:s.state===`failed`?!0:(await e.update(a).set({status:`failed`,error:r,reason:null,completedAt:i}).where(D(j(a.id,t),j(a.status,`finalizing`))).returning({id:a.id})).length===0?!1:(await e.update(o).set({state:`failed`,failure:r,settledAt:i}).where(D(j(o.executionId,t),j(o.claimToken,n),j(o.state,`claimed`))),!0)})}async function dr(e,t,n){let{workflowExecutions:r,workflowFinalizations:i}=T(t,F),a=(await t.select().from(i).where(j(i.executionId,n.executionId)).limit(1))[0];if(!a||(or(a,n),a.state===`claimed`||a.publishedAt!==null))return;let o=(await t.select({startedAt:r.startedAt,status:r.status,error:r.error,reason:r.reason,completedAt:r.completedAt}).from(r).where(j(r.id,a.executionId)).limit(1))[0];if(!(!o||o.completedAt==null)){if(o.status===`completed`)await e.emit(h.execution.completed,{executionId:a.executionId,workflowId:a.workflowId,totalDuration:o.completedAt-o.startedAt,completedAt:o.completedAt,transitionKey:a.transitionKey});else if(o.status===`failed`)await e.emit(h.execution.failed,{executionId:a.executionId,workflowId:a.workflowId,error:o.error??`Workflow finalization failed`,completedAt:o.completedAt,transitionKey:a.transitionKey});else if(o.status===`cancelled`)await e.emit(h.execution.cancelled,{executionId:a.executionId,workflowId:a.workflowId,reason:o.reason??void 0,completedAt:o.completedAt,transitionKey:a.transitionKey});else return;await E(t,()=>t.update(i).set({publishedAt:Date.now()}).where(D(j(i.executionId,a.executionId),M(i.publishedAt))))}}function fr(e,t){let n=new Map;return async r=>{let i=(n.get(r.executionId)??Promise.resolve()).catch(()=>void 0).then(()=>dr(e,t,r));n.set(r.executionId,i);try{await i}finally{n.get(r.executionId)===i&&n.delete(r.executionId)}}}function pr(e,t){let n=fr(e,t),r=e.on(p.claimFinalization,async e=>{e.setResult({claimed:await sr(t,e.payload.claim)})}),i=e.on(p.listClaimedFinalizations,async e=>{let{workflowFinalizations:n}=T(t,F),r=await t.select().from(n).where(D(j(n.finalizerId,e.payload.finalizerId),j(n.state,`claimed`)));e.setResult({claims:r.map(Y)})}),a=e.on(p.listUnpublishedFinalizations,async e=>{let{workflowFinalizations:n}=T(t,F),r=await t.select().from(n).where(D(xt(j(n.state,`acknowledged`),j(n.state,`failed`)),j(n.finalizerId,e.payload.finalizerId),M(n.publishedAt)));e.setResult({claims:r.map(Y)})}),o=e.on(p.publishFinalization,async e=>{await n(e.payload.claim),e.setResult({})}),s=e.on(p.acknowledgeFinalization,async e=>{let{executionId:r,claimToken:i,settledAt:a}=e.payload,o=await lr(t,r,i,a);if(e.setResult({acknowledged:o}),!o)return;let{workflowFinalizations:s}=T(t,F),c=await t.select().from(s).where(j(s.executionId,r)).limit(1);c[0]&&await n(Y(c[0]))}),c=e.on(p.failFinalization,async e=>{let{executionId:r,claimToken:i,error:a,settledAt:o}=e.payload,s=await ur(t,r,i,a,o);if(e.setResult({failed:s}),!s)return;let{workflowFinalizations:c}=T(t,F),l=await t.select().from(c).where(j(c.executionId,r)).limit(1);l[0]&&await n(Y(l[0]))});return()=>{r(),i(),a(),o(),s(),c()}}function mr(e){return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??void 0,status:e.status,inputs:e.inputs,config:{},error:e.error??void 0,reason:e.reason??void 0,startedAt:e.startedAt,completedAt:e.completedAt??void 0,triggerPayload:e.triggerPayload??void 0,...e.artifactKind!==null&&e.artifactId!==null?{artifactRef:{kind:e.artifactKind,id:e.artifactId}}:{},scope:L(e)}}function X(e){let t=I(e.scope);return{id:e.id,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId??null,status:e.status,inputs:e.inputs,error:e.error??null,reason:e.reason??null,startedAt:e.startedAt,completedAt:e.completedAt??null,triggerPayload:e.triggerPayload??null,artifactKind:e.artifactRef?.kind??null,artifactId:e.artifactRef?.id??null,...t}}function hr(e,t,n,r,i,a){let o=[...e?[j(a.workflowId,e)]:[],...n?[j(a.status,n)]:[],...i===void 0?[]:[j(a.artifactKind,i.kind),j(a.artifactId,i.id)]];if(t&&o.push(...Rt(a,t)),r){let e=xt(vt(a.startedAt,r.startedAt),D(j(a.startedAt,r.startedAt),vt(a.id,r.id)));e&&o.push(e)}return o}async function gr(e,t,n,r,i){if(n.executionId!==t.id)throw Error(`setExecutionStart requires execution.id to match runContext.executionId`);for(let e of i??[])if(e.targetExecutionId!==t.id)throw Error(`setExecutionStart requires executionLinks.targetExecutionId to match execution.id`);let{workflowExecutions:a,workflowRunContexts:o,workflowExecutionState:s,workflowExecutionStateEvents:c,workflowExecutionLinks:l}=T(e,F),u=X(t);await w(e,async d=>{await d.insert(a).values(u).onConflictDoUpdate({target:a.id,set:u});let f=(n.dispatchMetadata===void 0?await d.select({dispatchMetadata:o.dispatchMetadata}).from(o).where(j(o.executionId,n.executionId)).limit(1):[])[0]?.dispatchMetadata;if(await en(d,n.dispatchMetadata===void 0&&f!=null?{...n,dispatchMetadata:f}:n,o),r!==void 0){let n=Date.now(),i=V(e,r);await d.insert(s).values({executionId:t.id,sequence:0,value:i,updatedAt:n}).onConflictDoNothing(),await d.insert(c).values({executionId:t.id,sequence:0,patch:[],value:i,createdAt:n}).onConflictDoNothing()}for(let e of i??[])await d.insert(l).values(e).onConflictDoUpdate({target:[l.sourceExecutionId,l.targetExecutionId],set:e})})}async function _r(e,t,n){if(n.executionId!==t.id)throw Error(`restorePausedGateResumeState requires execution.id to match gate.executionId`);if(t.status!==`paused`||n.status!==`waiting`)throw Error(`restorePausedGateResumeState requires a paused execution and waiting gate`);let{workflowExecutions:r,workflowGateInstances:i}=T(e,F),a=X(t),o=B(n);await w(e,async e=>{await e.insert(r).values(a).onConflictDoUpdate({target:r.id,set:a}),await e.insert(i).values(o).onConflictDoUpdate({target:i.id,set:o})})}async function vr(e,t,n,r){let{workflowExecutions:i,workflowGateInstances:a}=T(e,F);return w(e,async e=>{if((await e.select().from(i).where(j(i.id,t)).limit(1))[0]?.status!==`paused`)return{cancelled:!1,gates:[]};let o=(await e.select().from(a).where(D(j(a.executionId,t),j(a.status,`waiting`)))).map(e=>({...z(e),status:`cancelled`,resolvedAt:n}));await e.update(i).set({status:`cancelled`,completedAt:n,reason:r??null}).where(j(i.id,t));for(let t of o){let n=B(t);await e.update(a).set(n).where(j(a.id,n.id))}return{cancelled:!0,gates:o}})}async function yr(e,t,n,r,i,a){let{workflowExecutions:o}=T(e,F);return w(e,async e=>{if((await e.select({id:o.id}).from(o).where(j(o.id,t)).limit(1))[0]===void 0)return!1;let s={};return n!==void 0&&(s.status=n),r!==void 0&&(s.error=r),i!==void 0&&(s.reason=i),a!==void 0&&(s.completedAt=a),Object.keys(s).length>0&&await e.update(o).set(s).where(j(o.id,t)),!0})}function br(e,t){let{workflowExecutions:n}=T(t,F),r=e.on(p.getExecution,async e=>{let{executionId:r}=e.payload;if(!g(e,r))throw Error(`Unauthorized execution read: ${r}`);let i=await t.select().from(n).where(j(n.id,r));e.setResult({execution:i[0]?mr(i[0]):null})}),i=e.on(p.setExecution,async e=>{let r=e.payload.execution,i=X(r);await E(t,()=>t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:i})),e.setResult({id:r.id})}),a=e.on(p.setExecutionStart,async e=>{let n=e.payload.execution,r=e.payload.runContext;await gr(t,n,r,e.payload.initialState,e.payload.executionLinks),e.setResult({id:n.id,executionId:n.id})}),o=e.on(p.restorePausedGateResumeState,async e=>{let n=e.payload.execution,r=e.payload.gate;await _r(t,n,r),e.setResult({executionId:n.id,gateId:r.nodeId})}),s=e.on(p.updateExecution,async e=>{let{executionId:n,status:r,error:i,reason:a,completedAt:o}=e.payload,s=await yr(t,n,r,i,a,o);e.setResult({success:s})}),c=e.on(p.pauseRunningExecution,async e=>{let{workflowExecutions:n}=T(t,F),r=await E(t,()=>t.update(n).set({status:`paused`}).where(D(j(n.id,e.payload.executionId),j(n.status,`running`))).returning({id:n.id}));e.setResult({paused:r.length===1})}),l=e.on(p.cancelPausedExecution,async e=>{let{executionId:n,completedAt:r,reason:i}=e.payload;e.setResult(await vr(t,n,r,i))});return()=>{r(),i(),a(),o(),s(),c(),l()}}function xr(e,t){let{workflowExecutions:n}=T(t,F),r=e.on(p.listExecutions,async e=>{let{workflowId:r,scope:i,status:a,limit:o,cursor:s,artifactRef:c}=e.payload;if(r===void 0&&i===void 0&&c===void 0)throw Error(`Either workflowId, scope, or artifactRef is required to list executions.`);let l=hr(r,i,a,s,c,n),u=o??Ge;if(!Number.isInteger(u)||u<y||u>v)throw Error(`Execution list limit must be an integer between ${y} and ${v}.`);let d=await t.select().from(n).where(D(...l)).orderBy(A(n.startedAt),A(n.id)).limit(u);e.setResult({executions:d.map(mr)})}),i=e.on(p.listExecutionsByArtifactRefs,async e=>{let r=Ke.safeParse(e.payload);if(!r.success)throw Error(`Invalid listExecutionsByArtifactRefs query: ${r.error.message}`);let{refs:i,limitPerRef:a}=r.data,o={};for(let e of i){let r=await t.select().from(n).where(D(j(n.artifactKind,e.kind),j(n.artifactId,e.id))).orderBy(A(n.startedAt),A(n.id)).limit(a);r.length>0&&(o[lt(e)]=r.map(mr))}e.setResult({executionsByRef:o})});return()=>{r(),i()}}function Sr(e,t){let n=Bt(e,t),r=br(e,t),i=xr(e,t),a=Ut(e,t),o=Kt(e,t),s=Yt(e,t),c=tn(e,t),l=on(e,t),u=Vn(e,t),d=ir(e,t,X),f=pr(e,t);return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u(),d(),f()}}function Cr(e){return e.startsWith(b)}function wr(e){let t={};return e.artifactRef!==void 0&&(t.artifactRef=e.artifactRef),e.triggerPayload!==void 0&&(t.triggerPayload=e.triggerPayload),t}function Tr(e){if(e.status===`failed`){if(e.error===void 0)throw Error(`status 'failed' requires a non-empty 'error' message`);return{error:e.error}}if(e.status===`cancelled`){if(e.reason===void 0)throw Error(`status 'cancelled' requires a non-empty 'reason' string`);return{reason:e.reason}}return{}}async function Er(e,t){let{runContext:n}=await e.request(p.getRunContext,{executionId:t});if(n===null)throw Error(`Run context not found for execution: ${t}`);if(n.definitionSnapshot!==void 0)return n.definitionSnapshot;let{workflow:r}=await e.request(p.get,{id:n.workflowId});return r??void 0}function Dr(e){return[e.on(h.getDefinition,async t=>{let n=await e.request(p.get,{id:t.payload.id});t.setResult(n)}),e.on(h.setDefinition,async t=>{let n=await e.request(p.set,{workflow:t.payload.workflow});t.setResult(n)}),e.on(h.deleteDefinition,async t=>{let n=await e.request(p.delete,{id:t.payload.id});t.setResult(n)}),e.on(h.listDefinitions,async t=>{let n=await e.request(p.list,t.payload);t.setResult(n)}),e.on(h.getExecution,async t=>{let n=await e.request(p.getExecution,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listExecutions,async t=>{let n=await e.request(p.listExecutions,t.payload);t.setResult(n)}),e.on(h.listExecutionsByArtifactRefs,async t=>{let n=await e.request(p.listExecutionsByArtifactRefs,t.payload);t.setResult(n)}),e.on(h.listSpans,async t=>{let n=await e.request(p.listSpans,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listFrames,async t=>{let n=await e.request(p.listFrames,{executionId:t.payload.executionId});t.setResult(n)}),e.on(h.listGateInstances,async t=>{let n=await e.request(p.listGateInstances,t.payload);t.setResult(n)}),e.on(h.setExecutionLink,async t=>{let n=await e.request(p.setExecutionLink,{link:t.payload.link});t.setResult(n)}),e.on(h.listExecutionLinks,async t=>{let n=await e.request(p.listExecutionLinks,t.payload);t.setResult(n)}),e.on(h.getRunContext,async t=>{let{executionId:n}=t.payload;if(!g(t,n))throw Error(`Unauthorized: caller is not permitted to read run context for execution: ${n}`);let{runContext:r}=await e.request(p.getRunContext,{executionId:n});if(!r)throw Error(`Run context not found for execution: ${n}`);t.setResult(r)}),...Or(e)]}function Or(e){return[e.on(h.registerExternalExecution,async t=>{let n=Me.registerExternalExecution.request.parse(t.payload),{name:r,scope:i,input:a}=n;if(n.executionId!==void 0&&!t.origin.local)throw Error(`registerExternalExecution: caller-supplied executionId is restricted to local callers`);let o=n.executionId??Ie(`wfx-ext`);if(!Cr(o))throw Error(`registerExternalExecution: executionId must use the wfx-ext- prefix`);let s=n.startedAt??Date.now(),c={id:o,workflowId:r,status:`running`,inputs:a===void 0?{}:a,startedAt:s,scope:i??{type:`global`},...wr(n)},l=kr(o,s,n.frame),u=await e.request(p.setExternalExecutionStart,{execution:c,...l===void 0?{}:{frame:l}});t.setResult(u)}),e.on(h.completeExternalExecution,async t=>{let n=Me.completeExternalExecution.request.parse(t.payload),{executionId:r,status:i}=n;if(!g(t,r))throw Error(`Unauthorized: caller is not permitted to settle execution: ${r}`);if(!Cr(r))throw Error(`completeExternalExecution: execution "${r}" is engine-owned and must be completed through the engine finalizer, not this API`);let a=Ar(n),o=await e.request(p.settleExternalExecution,{executionId:r,status:i,...Tr(n),...n.completedAt===void 0?{}:{completedAt:n.completedAt},...a===void 0?{}:{frame:a}});t.setResult({success:o.success})})]}function kr(e,t,n){if(n===void 0)return;let r=n.frameId??`${e}:${n.nodeId}`;return{executionId:e,frameId:r,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path??[r],status:`running`,attempt:n.attempt,...n.iteration===void 0?{}:{iteration:n.iteration},...n.branchKey===void 0?{}:{branchKey:n.branchKey},startedAt:n.startedAt??t}}function Ar(e){if(e.frame===void 0)return;if(e.completedAt===void 0)throw Error(`completedAt is required when frame metadata is supplied`);let t=e.completedAt-e.frame.startedAt;if(t<0)throw Error(`completedAt must not precede frame.startedAt`);if(e.frame.durationMs!==void 0&&e.frame.durationMs!==t)throw Error(`frame.durationMs must equal completedAt - frame.startedAt`);return{executionId:e.executionId,frameId:e.frame.frameId,nodeId:e.frame.nodeId,nodeType:e.frame.nodeType,path:e.frame.path,status:e.status,attempt:e.frame.attempt,...e.frame.iteration===void 0?{}:{iteration:e.frame.iteration},...e.frame.branchKey===void 0?{}:{branchKey:e.frame.branchKey},startedAt:e.frame.startedAt,completedAt:e.completedAt,durationMs:t,...e.status===`failed`&&e.error!==void 0?{error:e.error}:{}}}function jr(e){return[e.on(h.state.get,async t=>{let{executionId:n}=t.payload;if(!g(t,n))throw Error(`Unauthorized: caller is not permitted to read state for execution: ${n}`);let{state:r}=await e.request(p.getState,{executionId:n});if(r===null)throw Error(`no workflow state for execution ${n}`);t.setResult(r)}),e.on(h.state.patch,async t=>{let{executionId:n,expectedSequence:r,patch:i,nextValue:o}=t.payload;if(!g(t,n))throw Error(`Unauthorized: caller is not permitted to patch state for execution: ${n}`);if(r===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=await Er(e,n);s!==void 0&&a(s,o,`next`),qe.array().parse(i);let c=await e.request(p.patchState,{executionId:n,expectedSequence:r,nextValue:o});e.emit(h.state.updated,{executionId:c.executionId,sequence:c.sequence,patch:c.patch,value:c.value,updatedAt:Date.now()}).catch(()=>{}),t.setResult({executionId:c.executionId,sequence:c.sequence,value:c.value})})]}async function Mr(e,t){let{runContext:n}=await e.bus.request(p.getRunContext,{executionId:t});if(n===null)throw new S($e.RUN_CONTEXT_NOT_FOUND,`Run context not found for workflow execution '${t}'.`);return n}function Nr(e,t){return t===void 0?{mode:e}:{mode:e,reason:t}}async function Pr(e,t){let n=await Mr(e,t.executionId),r=t.input===void 0?n.inputs:t.input,i=t.config??n.config??{},a=t.triggerPayload??n.triggerPayload,o=t.artifactRef??n.artifactRef,s=t.scopeOverride??n.scope,c={input:r,config:i,parentSessionId:t.parentSessionId,triggerPayload:a,artifactRef:o,scopeOverride:s,executionLinks:e=>[{sourceExecutionId:t.executionId,targetExecutionId:e,linkType:`rerun-of`,metadata:Nr(t.mode,t.reason)}]};return t.mode===`snapshot`?await Rr(e,n,c):Ir(n)?await zr(e,n,c):await _e(e,n.workflowId,c)}function Fr(e,t){return Ir(e)?t.id:e.workflowId}function Ir(e){return e.source.kind!==`definition`&&e.workflowId===e.executionId}function Lr(e){let t=e.definitionSnapshot;if(t===void 0)throw new S($e.SNAPSHOT_UNAVAILABLE,`Workflow execution '${e.executionId}' does not have a definition snapshot.`);return t}async function Rr(e,t,n){let r=Lr(t);return Ce(e,Fr(t,r),{workflow:r,executionSource:t.source,definitionSnapshot:r,input:n.input,config:n.config,parentSessionId:n.parentSessionId,triggerPayload:n.triggerPayload,artifactRef:n.artifactRef,scopeOverride:n.scopeOverride,executionLinks:n.executionLinks,...t.materializationSpec===void 0?{}:{materializationSpec:t.materializationSpec}})}async function zr(e,t,n){if(t.definitionSnapshot===void 0&&t.source.kind===`path`){let{materializationSpec:r}=t;if(r===void 0)throw Error(`Invalid persisted path-backed run context: materializationSpec is required`);return Oe(e,t.source.path,{...n,materializationSpec:r})}let r=Lr(t);return Ce(e,r.id,{workflow:r,executionSource:t.source,input:n.input,config:n.config,parentSessionId:n.parentSessionId,triggerPayload:n.triggerPayload,artifactRef:n.artifactRef,scopeOverride:n.scopeOverride,executionLinks:n.executionLinks,...t.materializationSpec===void 0?{}:{materializationSpec:t.materializationSpec}})}var Br=class{bus;resumePausedExecution;handles=new Map;constructor(e,t){this.bus=e,this.resumePausedExecution=t}dispose(){for(let e of this.handles.values())clearTimeout(e);this.handles.clear()}clear(e,t,n){let r=this.makeKey(e,t,n),i=this.handles.get(r);i!==void 0&&(clearTimeout(i),this.handles.delete(r))}schedule(e){e.timeoutMs!==null&&(this.clear(e.executionId,e.nodeId,e.frameId),this.scheduleNextWakeup({...e,timeoutMs:e.timeoutMs}))}scheduleNextWakeup(e){let t=this.makeKey(e.executionId,e.nodeId,e.frameId),n=Math.max(0,e.openedAt+e.timeoutMs-Date.now()),r=setTimeout(()=>{if(this.handles.delete(t),Date.now()<e.openedAt+e.timeoutMs){this.scheduleNextWakeup(e);return}this.handleExpiredWakeup(e)},Math.min(n,2147483647));this.handles.set(t,r)}scheduleNextWakeupAfterDelay(e,t){let n=this.makeKey(e.executionId,e.nodeId,e.frameId),r=setTimeout(()=>{this.handles.delete(n),this.handleExpiredWakeup(e)},t);this.handles.set(n,r)}async handleExpiredWakeup(e){try{await this.resumeTimedOutPausedGate(e)===`retry`&&this.scheduleNextWakeupAfterDelay(e,25)}catch(t){this.scheduleFailedWakeupRetry(e,t)}}scheduleFailedWakeupRetry(e,t){let n=(e.failedWakeupAttempts??0)+1;if(n>4){console.error(`[WorkflowExecutor] Giving up on timed-out gate '${e.nodeId}' after 4 failed wakeup retries:`,t);return}let r=Math.min(250*2**(n-1),2e3);console.error(`[WorkflowExecutor] Failed to resume timed-out gate '${e.nodeId}', retrying in ${r} ms:`,t),this.scheduleNextWakeupAfterDelay({...e,failedWakeupAttempts:n},r)}makeKey(e,t,n){return`${e}:${t}:${n}`}async resumeTimedOutPausedGate(e){this.clear(e.executionId,e.nodeId,e.frameId);let{gate:t}=await this.bus.request(p.getGateInstance,{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId});if(t===null||t.status!==`waiting`)return`settled`;let{execution:n}=await this.bus.request(p.getExecution,{executionId:e.executionId});return n?.status===`running`?`retry`:n?.status===`paused`?(await this.resumePausedExecution(e.executionId),`resumed`):`settled`}};function Vr(e){if(e!==void 0)return Hr(e)?e:{}}function Hr(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ur(e){if(e!==void 0)return Je.parse(e)}function Wr(e,t){return tt.parse({executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},workerManifest:{contributionRefs:[]},inputs:e.inputs,config:e.config,scope:e.scope,triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:`workflow.${e.executionId}.cancel`,env:t.platformDefaults.env??{},createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}function Gr(e){return e?.status===`paused`}function Kr(e){return e?.status===`waiting`}async function qr(e,t,n,r,i,a,o){t.delete(i.id),n.delete(i.id),r.delete(i.id);try{await e.request(p.restorePausedGateResumeState,{execution:i,gate:a})}catch(e){console.error(`[WorkflowExecutor] Failed to restore paused gate '${o}' after resume launch failure:`,e)}}async function Jr(e,t){if(t.suspensionStrategy===`wait-in-process`)return;let{frames:n}=await e.request(p.listFrames,{executionId:t.executionId});if(n.length===0)throw Error(`[WorkflowExecutor] Missing resume frames for paused execution: ${t.executionId}`)}function Yr(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,timeoutMs:e.timeoutMs,openedAt:e.createdAt}}async function Xr(e,t){if(t.frameId!==void 0){let{gate:n}=await e.request(p.getGateInstance,t);return Kr(n)?n:null}let{gates:n}=await e.request(p.listGateInstances,{executionId:t.executionId}),r=n.filter(e=>e.nodeId===t.nodeId&&e.status===`waiting`);return r.length===1?r[0]:null}function Zr(e,n){return e.origin.local?{executionAttemptId:n.executionAttemptId,executionId:n.executionId}:t(e)}async function Qr(e,t,n){let[{execution:r},{runContext:i}]=await Promise.all([e.request(p.getExecution,{executionId:t}),e.request(p.getRunContext,{executionId:t})]);if(!r)throw Error(`Outcome execution not found: ${t}`);if(r.id!==t||r.workflowId!==n.workflowId)throw Error(`Outcome workflow identity mismatch for execution '${t}'`);if(!i)throw Error(`Outcome run context not found: ${t}`);if(i.executionId!==t||i.workflowId!==n.workflowId)throw Error(`Outcome run context identity mismatch for execution '${t}'`);if(i.terminalAuthority===`worker`)throw Error(`Outcome submission requires authority terminal ownership for execution '${t}'`)}async function $r(e,t,n){if(n.pausedAtGateId===void 0||n.pausedAtFrameId===void 0)throw Error(`Paused outcome for '${t}' is missing gate identity`);let{paused:r}=await e.request(p.pauseRunningExecution,{executionId:t});if(!r){let{execution:n}=await e.request(p.getExecution,{executionId:t});if(n?.status!==`paused`)throw Error(`Failed to park execution '${t}': status is '${n?.status??`missing`}'`);return}await e.emit(h.execution.paused,{executionId:t,workflowId:n.workflowId,pausedAtGateId:n.pausedAtGateId,pausedAtFrameId:n.pausedAtFrameId})}function ei(e,t){return e.on(Ze.control.outcome.submit,async n=>{let r=Zr(n,n.payload);if(r===null)throw Error(`Outcome submission requires an authenticated workflow-execution-attempt peer`);let{result:i}=n.payload;if(!n.origin.local){if(n.payload.executionId!==r.executionId)throw Error(`Outcome payload executionId '${n.payload.executionId}' does not match authenticated peer claim '${r.executionId}'`);if(n.payload.executionAttemptId!==r.executionAttemptId)throw Error(`Outcome payload executionAttemptId '${n.payload.executionAttemptId}' does not match authenticated peer identity '${r.executionAttemptId}'`)}if(i.executionId!==r.executionId)throw Error(`Nested result.executionId '${i.executionId}' does not match trusted identity '${r.executionId}'`);let a=nt.parse(i);await Qr(e,r.executionId,a);let o=a.status===`paused`,s=await t.authority.commitOutcome(r.executionAttemptId,r.executionId,a),c=ti(s.kind);(s.kind===`accepted`||s.kind===`duplicate`)&&(o?await $r(e,r.executionId,a):await t.acceptTerminalResult(r.executionId,s.outcome),t.authority.settleOutcome(r.executionAttemptId,s)),n.setResult({decision:c})})}function ti(e){return e}function ni(e){return e.on(h.finalizeDelegateResult,async t=>{let n=t.payload;ri(t,n.executionId);let{execution:r}=await e.request(p.getExecution,{executionId:n.executionId});if(r===null||r.workflowId!==n.workflowId)throw Error(`delegate result finalization execution does not own the requested workflow`);let{runContext:i}=await e.request(p.getRunContext,{executionId:n.executionId});if(i===null||i.executionId!==n.executionId||i.workflowId!==n.workflowId)throw Error(`delegate result finalization run context does not own the requested workflow execution`);if(i.definitionSnapshot===void 0)throw Error(`delegate result finalization requires an Authority-owned definition snapshot`);ii(i.definitionSnapshot,n.nodeId,n.nodeType,n.finalizerId);let{subjects:a}=at(n.finalizerId),o=await e.request(a.finalize,{executionId:n.executionId,workflowId:n.workflowId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,rawResult:n.rawResult,toolObservations:n.toolObservations,...n.economics===void 0?{}:{economics:n.economics}});t.setResult(o)})}function ri(e,t){if(!g(e,t))throw Error(`delegate result finalization requires its authenticated workflow-execution-attempt peer`)}function ii(e,t,n,r){let i=!1;if(ut(e.root,{enter(e){if(!(e.type!==`delegate-agent`&&e.type!==`delegate-role`||e.id!==t||e.type!==n))return e.resultFinalizerId===r&&(i=!0),!1}}),!i)throw Error(`delegate result finalizer is not selected by the requested durable delegate node`)}var ai=class extends dt{static storage={drizzle:Sr};config;activeExecutions=new Map;executionTasks=new Map;shellAbortControllers=new Map;activeRunnerSteps=new Map;gateTimeoutScheduler;resumeDispatches=new Set;workflowAbortControllers=new Map;successFinalizers=new Map;durableLifecycleTransitions=new Map;lifecyclePublications=new Map;publishingLifecycleExecutions=new Set;workflowRunner;executionAttemptAuthority;materializationSpecResolvers=new Set;constructor(e,t,n,r){super(e),this.config={...i,...t},this.workflowRunner=n,this.executionAttemptAuthority=r,this.gateTimeoutScheduler=new Br(e,e=>this.resumePausedExecution(e))}registerWorkflowMaterializationSpecResolver(e){return this.materializationSpecResolvers.add(e),()=>this.materializationSpecResolvers.delete(e)}async registerSuccessFinalizer(e){if(!this.initialized)throw Error(`[WorkflowExecutor] Initialize the executor before registering success finalizers`);if(this.successFinalizers.has(e))throw Error(`[WorkflowExecutor] Success finalizer already registered: ${e}`);let{namespace:t,subjects:n}=ot(e);this.bus.registerNamespace(t);let i={finalizerId:e,finalizeSubject:n.finalize};this.successFinalizers.set(e,i);try{await r(this.buildFinalizerDeps())}catch(t){throw this.successFinalizers.get(e)===i&&this.successFinalizers.delete(e),t}let a=!1;return()=>{a||(a=!0,this.successFinalizers.get(e)===i&&this.successFinalizers.delete(e))}}async acceptAuthorityRunnerResult(e,t){if(t.status===`paused`)throw Error(`authority runner result must be terminal`);if(t.executionId!==e)throw Error(`authority runner result execution identity mismatch`);let{execution:n}=await this.bus.request(p.getExecution,{executionId:e});if(!n)throw Error(`Authority runner execution not found: ${e}`);if(n.workflowId!==t.workflowId)throw Error(`authority runner result workflow identity mismatch`);let r;if(n.status===`finalizing`){let{workflow:n}=await this.loadAuthorityRunnerContext(e,t.workflowId);r=await this.registerAuthorityResultFinalizer(n)}let i=await this.resolveAuthorityRunnerReplay(n,t).finally(()=>r?.());if(i!==void 0)return{accepted:!0,status:i};if(n.status!==`running`)throw Error(`Authority runner execution is ${n.status}`);let{runContext:a,workflow:o}=await this.loadAuthorityRunnerContext(e,t.workflowId),s=await this.registerAuthorityResultFinalizer(o),c=this.activeExecutions.get(e),l=!1;if(!c)this.activeExecutions.set(e,{execution:n,workflow:o,runContext:a,runtimeHandlers:new Map,runtimeLoopGates:new Map}),l=!0;else if(c.execution.workflowId!==t.workflowId)throw Error(`authority runner active execution identity mismatch`);try{await Fe({activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps()},t)}finally{l&&this.activeExecutions.delete(e),s?.()}let u=await this.bus.request(p.getExecution,{executionId:e});if(!u.execution||!m(u.execution.status,t.status))throw Error(`Authority runner result did not settle compatibly with ${t.status}`);return{accepted:!0,status:u.execution.status}}async resolveAuthorityRunnerReplay(e,t){if(e.status===`finalizing`){if(t.status!==`completed`)throw Error(`authority runner result conflicts with terminal execution`);await r(this.buildFinalizerDeps());let n=await this.bus.request(p.getExecution,{executionId:e.id});if(!n.execution)throw Error(`Authority runner success finalization execution is missing`);if(!m(n.execution.status,t.status))throw Error(`authority runner result conflicts with terminal execution`);return n.execution.status}if(!(e.status!==`completed`&&e.status!==`failed`&&e.status!==`cancelled`)){if(!m(e.status,t.status))throw Error(`authority runner result conflicts with terminal execution`);return e.status}}async loadAuthorityRunnerContext(e,t){let{runContext:n}=await this.bus.request(p.getRunContext,{executionId:e});if(!n)throw Error(`Authority runner run context not found: ${e}`);if(n.executionId!==e||n.workflowId!==t)throw Error(`authority runner run context identity mismatch`);if(n.terminalAuthority!==`authority`)throw Error(`authority runner result requires terminalAuthority=authority`);let r=n.definitionSnapshot??(await this.bus.request(p.get,{id:n.workflowId})).workflow;if(!r||r.id!==t)throw Error(`authority runner workflow definition is unavailable or mismatched`);return{runContext:n,workflow:r}}registerAuthorityResultFinalizer(e){return!e.successFinalizerId||this.successFinalizers.has(e.successFinalizerId)?Promise.resolve(void 0):this.registerSuccessFinalizer(e.successFinalizerId)}async onInit(){this.registerExecutionHandlers(),this.addCleanup(we(this.bus,(e,t)=>{let n=this.activeExecutions.get(e);n!==void 0&&(n.workflow=t)})),this.addCleanup(ni(this.bus)),this.executionAttemptAuthority!==void 0&&this.addCleanup(ei(this.bus,{bus:this.bus,authority:this.executionAttemptAuthority,acceptTerminalResult:(e,t)=>this.acceptAuthorityRunnerResult(e,t)}));for(let e of Dr(this.bus))this.addCleanup(e);for(let e of jr(this.bus))this.addCleanup(e);await this.rehydratePausedGateTimeouts()}async onDestroy(){let e=this.buildFinalizerDeps();await Promise.allSettled([...this.activeExecutions.keys()].map(async t=>{await _(e,t,`Workflow engine shutdown`)&&(this.workflowAbortControllers.get(t)?.abort(),this.workflowAbortControllers.delete(t))}));for(let e of this.workflowAbortControllers.values())e.abort();this.workflowAbortControllers.clear(),await Promise.allSettled(this.executionTasks.values()),await Promise.allSettled(this.durableLifecycleTransitions.values()),await Promise.allSettled(this.lifecyclePublications.values());for(let e of this.shellAbortControllers.values())e.abort();this.shellAbortControllers.clear();for(let e of this.activeRunnerSteps.values())e.hardKillTimer&&clearTimeout(e.hardKillTimer);this.activeRunnerSteps.clear(),this.gateTimeoutScheduler.dispose(),await this.workflowRunner?.dispose?.(),this.activeExecutions.clear()}buildFinalizerDeps(){return{bus:this.bus,activeExecutions:this.activeExecutions,shellAbortControllers:this.shellAbortControllers,activeRunnerSteps:this.activeRunnerSteps,cancelTimeoutMs:this.config.cancelTimeoutMs,successFinalizers:this.successFinalizers,resolveSuccessFinalizerId:e=>this.activeExecutions.get(e)?.workflow.successFinalizerId,durableLifecycleTransitions:this.durableLifecycleTransitions,lifecyclePublications:this.lifecyclePublications,publishingLifecycleExecutions:this.publishingLifecycleExecutions}}buildRunnerTaskDeps(e){return{workflowRunner:e,workflowAbortControllers:this.workflowAbortControllers,executionTasks:this.executionTasks,activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps(),config:this.config}}async resolveExecutionWorkspaceRoot(e){if(!e)return this.config.platformDefaults.cwd;let{session:t}=await this.bus.request(Ye.get,{sessionId:e});if(t===null)throw Error(`[WorkflowExecutor] Parent session not found: ${e}`);return t.targetWorkingDirectory??this.config.platformDefaults.cwd}resolveEphemeralPlatformFields(){return Pe(this.config.platformDefaults.cwd,this.config.makaioHome)}buildStartDeps(){return{bus:this.bus,config:this.config,activeExecutions:this.activeExecutions,executionTasks:this.executionTasks,workflowRunner:this.workflowRunner,buildRunContext:e=>Wr(e,this.config),buildRunnerTaskDeps:e=>this.buildRunnerTaskDeps(e),buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveExecutionWorkspaceRoot:e=>this.resolveExecutionWorkspaceRoot(e),runExecution:e=>this.runExecution(e),executionAttemptAuthority:this.executionAttemptAuthority,materializationSpecResolvers:this.materializationSpecResolvers}}registerExecutionHandlers(){this.registerHandler(h.acceptAuthorityRunnerResult,async e=>{if(!e.origin.local)throw Error(`authority runner result acceptance is local-authority only`);let{executionId:t,result:n}=e.payload;e.setResult(await this.acceptAuthorityRunnerResult(t,n))}),this.registerHandler(h.start,async e=>{let{workflowId:t,input:n,config:r,parentSessionId:i,triggerPayload:a,artifactRef:o,scope:s}=e.payload;try{let c=await _e(this.buildStartDeps(),t,{input:Ur(n),config:Vr(r)??{},parentSessionId:i,triggerPayload:a,artifactRef:o,scopeOverride:s});e.setResult({executionId:c})}catch(e){if(e instanceof S)throw e;let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow: ${t}`)}}),this.registerHandler(h.rerun,async e=>{let{executionId:t,mode:n,input:r,config:i,parentSessionId:a,triggerPayload:o,artifactRef:s,scope:c,reason:l}=e.payload;try{let u=await Pr(this.buildStartDeps(),{executionId:t,mode:n,input:Ur(r),config:Vr(i),parentSessionId:a,triggerPayload:o,artifactRef:s,scopeOverride:c,reason:l});e.setResult({executionId:u})}catch(e){if(e instanceof S)throw e;let t=e instanceof Error?e.message:String(e);throw Error(`Failed to rerun workflow: ${t}`)}}),this.registerHandler(h.runFile,async e=>{if(this.workflowRunner===void 0)throw Error(`workflow.runFile requires a workflow runner — configure a ThinWorkflowPiscinaRunner or equivalent.`);let{filePath:t,materializationSpec:n,triggerPayload:r,triggerMode:i,scope:a}=e.payload;try{let o=await Oe(this.buildStartDeps(),t,{...n===void 0?{}:{materializationSpec:n},triggerPayload:r,triggerMode:i,scopeOverride:a});e.setResult({executionId:o})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow file: ${t}`)}}),this.registerHandler(h.cancel,async e=>{let{executionId:t,reason:n}=e.payload;await this.bus.emit(it(`workflow.${t}.cancel`),{executionId:t,reason:n}).catch(e=>{console.error(`[WorkflowExecutor] Failed to emit workflow cancel for ${t}:`,e)});let r=this.workflowAbortControllers.get(t);if(r){r.abort(n??x);let i=await _(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i});return}let i=await _(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i})}),this.registerGateTimeoutHandlers(),this.addCleanup(this.bus.on(h.gate.respond,async e=>{let{executionId:t,gateId:n,frameId:r,action:i,resumeData:a,reason:o}=e.payload,s=await this.respondToPausedGate({executionId:t,gateId:n,frameId:r,action:i,resumeData:a,reason:o});e.setResult({accepted:s})},{priority:-100}))}registerGateTimeoutHandlers(){this.addCleanup(this.bus.on(h.gate.suspended,e=>{this.gateTimeoutScheduler.schedule(e.payload)})),this.addCleanup(this.bus.on(h.gate.resolved,e=>{this.gateTimeoutScheduler.clear(e.payload.executionId,e.payload.stepId,e.payload.frameId)}))}async rehydratePausedGateTimeouts(){let{gates:e}=await this.bus.request(p.listPausedGateTimeouts,{});for(let t of e)this.gateTimeoutScheduler.schedule(Yr(t))}async runExecution(e){let t=this.activeExecutions.get(e);if(!t)return;let n=new AbortController;this.workflowAbortControllers.set(e,n);try{let r;try{let i=await he({definition:t.workflow,execution:t.execution,runContext:t.runContext,bus:this.bus}),a=new Se(e,t.workflow.id,t.workflow,t.execution,t.runtimeHandlers,this.bus,n.signal,void 0,i,{context:this.resolveEphemeralPlatformFields(),env:t.runContext.env},{runtimeLoopGates:t.runtimeLoopGates});Ae(t.workflow,t.runtimeLoopGates);let o=a.buildExpressionContext();r=await ye(t.workflow.root,a,o)}catch(r){if(n.signal.aborted||t.execution.status===`cancelled`){await _(this.buildFinalizerDeps(),e,x);return}let i=r instanceof Error?r.message:String(r);await me(this.buildFinalizerDeps(),t.execution,e,i);return}let i=this.buildFinalizerDeps();r.status===`cancelled`||n.signal.aborted||t.execution.status===`cancelled`?await _(i,e,x):r.status===`failed`?await me(i,t.execution,e,r.error):r.status===`paused`?(t.execution.status=`paused`,await this.bus.request(p.setExecution,{execution:t.execution}),this.activeExecutions.delete(e)):await Le(i,t.execution,e,t.execution.startedAt)}finally{this.workflowAbortControllers.delete(e)}}async respondToPausedGate(e){let{executionId:t,gateId:n,frameId:r,resumeData:i,reason:a}=e,{execution:o}=await this.bus.request(p.getExecution,{executionId:t});if(!Gr(o))return!1;let s=await Xr(this.bus,{executionId:t,nodeId:n,frameId:r});if(s===null||!Ee(n,s.schema,i).valid)return!1;let{runContext:c}=await this.bus.request(p.getRunContext,{executionId:t});if(c===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${t}`);await Jr(this.bus,c);let{accepted:l}=await this.bus.request(p.resolveWaitingGateInstance,{gate:{...s,status:e.action===`reject`?`rejected`:`resumed`,resumeData:i,...a===void 0?{}:{reason:a},resolvedAt:Date.now()}});if(!l)return!1;try{await this.resumePausedExecution(o.id)}catch(e){throw await qr(this.bus,this.activeExecutions,this.executionTasks,this.workflowAbortControllers,o,s,n),e}return this.gateTimeoutScheduler.clear(t,n,s.frameId),!0}async resumePausedExecution(e){if(!this.resumeDispatches.has(e)){this.resumeDispatches.add(e);try{await this.dispatchPausedExecutionResume(e)||this.resumeDispatches.delete(e)}catch(t){throw this.resumeDispatches.delete(e),t}}}async dispatchPausedExecutionResume(e){let{runContext:t}=await this.bus.request(p.getRunContext,{executionId:e});if(t===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${e}`);let n=t.definitionSnapshot??(await this.bus.request(p.get,{id:t.workflowId})).workflow??(()=>{throw Error(`[WorkflowExecutor] Workflow definition not found for paused execution: ${e}`)})(),{execution:r}=await this.bus.request(p.getExecution,{executionId:e});if(r===null)throw Error(`[WorkflowExecutor] Execution not found for paused execution: ${e}`);if(r.status!==`paused`)return!1;await Jr(this.bus,t),await this.bus.request(p.setExecution,{execution:{...r,status:`running`}}),this.activeExecutions.set(e,{execution:{...r,status:`running`},workflow:n,runContext:t,runtimeHandlers:new Map,runtimeLoopGates:new Map});let i=de(t,n,{resume:!0}),a=ve(this.buildStartDeps(),i).finally(()=>{this.resumeDispatches.delete(e)});return this.executionTasks.set(e,a),!0}};const Z=`[WorkflowTriggerReconciler]`;function oi(e){return e.map(si)}function si(e){let t=Qe.parse(e);return{binding:t,matches:Be(t),subscription:void 0}}function ci(e,t,n){let r=e.triggers??[];try{return n===void 0?oi(r):r.map(e=>n.has(e.kind)?si(e):void 0)}catch(i){if(t){console.error(`${Z} keeping last-good triggers for workflow "${e.id}": its trigger bindings are invalid`,i);return}return r.map((t,r)=>{if(!(n!==void 0&&!n.has(t.kind)))try{return si(t)}catch(t){console.error(`${Z} leaving invalid trigger ${r} of workflow "${e.id}" inactive`,t);return}})}}function Q(e,t){return e.scope.type!==`global`||t.kind!==We}async function li(e,t,n,r){if(r!==void 0)for(let[i,a]of Array.from(r)){let o=e.triggers?.[i];if(o!==void 0&&n!==void 0&&!n.has(o.kind))continue;let s=t[i];s!==void 0&&Q(e,s.binding)||(r.delete(i),await $(a.subscription))}}async function $(e){if(e!==void 0)try{await e.detach()}catch(t){console.error(`${Z} detach failed for '${e.bindingKey}':`,t)}}var ui=class{bus;resolveRuntime;consumers=new Map;cleanupFns=[];initialized=!1;initialization;lane=new Ve;pendingChanges=[];constructor(e,t){this.bus=e,this.resolveRuntime=t}async init(){if(this.initialized)return;if(this.initialization!==void 0)return this.initialization;let e=this.initialize();return this.initialization=e,e.then(()=>this.clearInitialization(e),()=>this.clearInitialization(e)),e}clearInitialization(e){this.initialization===e&&(this.initialization=void 0)}async initialize(){try{let e=({payload:e})=>{this.onSignal(`refresh of workflow "${e.id}"`,()=>this.refreshDefinition(e.id))};this.cleanupFns.push(this.bus.on(C.definition.created,e),this.bus.on(C.definition.updated,e),this.bus.on(C.definition.deleted,e),this.bus.on(Ue.changed,e=>{this.scheduleRegistryReconcile(e.payload)})),await this.reconcileStored(`keep-last-good`),this.initialized=!0}catch(e){throw await this.teardown(),e}}async destroy(){await this.teardown(),this.initialized=!1}activeConsumerCount(){let e=0;for(let t of this.consumers.values())e+=t.size;return e}onSignal(e,t){t().catch(t=>{console.error(`${Z} ${e} failed:`,t)})}scheduleRegistryReconcile(e){let t=this.pendingChanges.length>0;this.pendingChanges.push(e),!t&&queueMicrotask(()=>{if(this.pendingChanges.length===0)return;let e=this.pendingChanges.splice(0),t=new Set(e.flatMap(({kinds:e})=>e)),n=e.map(({owner:e,revision:t})=>`${e}@${t}`).join(`, `);this.onSignal(`reconciliation after trigger registry changes (${n})`,()=>this.reconcileStored(`drop-unavailable`,t))})}async reconcileStored(e,t){await this.lane.run(async()=>{let{workflows:n}=await this.bus.request(p.list,{}),r=new Set(n.map(e=>e.id));for(let r of n){let n=r.triggers??[];t!==void 0&&!n.some(e=>t.has(e.kind))||await this.applyDefinitionWithinLane(r,e,t)}for(let e of Array.from(this.consumers.keys()))r.has(e)||await this.forgetWorkflowWithinLane(e)})}async refreshDefinition(e){await this.lane.run(async()=>{let{workflow:t}=await this.bus.request(p.get,{id:e});if(t===null){await this.forgetWorkflowWithinLane(e);return}await this.applyDefinitionWithinLane(t,`keep-last-good`)})}async applyDefinitionWithinLane(e,t,n){let r=ci(e,(this.consumers.get(e.id)?.size??0)>0,n);if(r===void 0)return;let i=this.consumers.get(e.id);if(await li(e,r,n,i),i?.size===0&&this.consumers.delete(e.id),!r.some(t=>t!==void 0&&Q(e,t.binding)&&(n===void 0||n.has(t.binding.kind))))return;let a=this.resolveRuntime();if(a===void 0){r.length>0&&console.warn(`${Z} no automation trigger binding runtime is available; declarative triggers of workflow "${e.id}" stay inactive`);return}let o=this.consumers.get(e.id);o===void 0&&(o=new Map,this.consumers.set(e.id,o));for(let[i,s]of r.entries())s!==void 0&&Q(e,s.binding)&&(n!==void 0&&!n.has(s.binding.kind)||await this.refreshConsumerWithinLane(a,e.id,i,s,o,t));o.size===0&&this.consumers.delete(e.id)}async refreshConsumerWithinLane(e,t,n,r,i,a){let o=i.get(n),s=this.createListener(t,n,r);try{let t=o?.subscription?.bindingKey,a=e.prepareBinding(r.binding);if(a===void 0)throw Error(`Automation trigger kind '${r.binding.kind}' is not registered`);if(!a.workflowCompatible)throw Error(`Automation trigger kind '${r.binding.kind}' does not emit an object-root payload`);(t===void 0||t!==a.bindingKey)&&i.set(n,r),r.subscription=await a.subscribe(s),i.set(n,r),await $(o?.subscription);return}catch(e){if(o===void 0?i.delete(n):i.set(n,o),a===`keep-last-good`){console.error(`${Z} keeping last-good trigger ${n} of workflow "${t}": binding '${r.binding.kind}' could not be activated`,e);return}console.warn(`${Z} dropping trigger ${n} of workflow "${t}": binding '${r.binding.kind}' is no longer available`,e),i.delete(n),await $(o?.subscription)}}async forgetWorkflowWithinLane(e){let t=this.consumers.get(e);if(t!==void 0){this.consumers.delete(e);for(let e of t.values())await $(e.subscription)}}createListener(e,t,n){let r=`trigger ${t} ('${n.binding.kind}') of workflow "${e}"`;return async i=>{if(this.consumers.get(e)?.get(t)!==n)return;let a;try{a=n.matches(i.payload)}catch(e){console.error(`${Z} filter evaluation failed for ${r}:`,e);return}if(a)try{await this.bus.request(C.start,{workflowId:e,triggerPayload:ze(i.payload)})}catch(t){console.error(`${Z} failed to start workflow "${e}" from ${r}:`,t)}}}async teardown(){this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.pendingChanges.length=0,await this.lane.run(async()=>{for(let e of Array.from(this.consumers.keys()))await this.forgetWorkflowWithinLane(e)})}},di=class{repository;waiters=new Map;constructor(e){this.repository=e}async createAttempt(e){let t=crypto.randomUUID(),n=await this.repository.createAttempt({executionAttemptId:t,executionId:e});return this.installWaiter(t),n}async beginProvisioning(e){return this.repository.beginProvisioning(e)}async getProviderOperation(e){return this.repository.getProviderOperation(e)}async renewProviderOperationClaim(e){return this.repository.renewProviderOperationClaim(e)}async takeOverProviderOperation(e){return this.repository.takeOverProviderOperation(e)}async handoffProviderOperation(e){return this.repository.handoffProviderOperation(e)}async recordProviderOperationUncertainty(e){return this.repository.recordProviderOperationUncertainty(e)}async recordAllocation(e){return this.repository.recordAllocation(e)}async recordProvisioningAbsent(e){let t=await this.repository.recordProvisioningAbsent(e);return t.kind===`recorded`&&this.rejectWaiterWith(e.claim.executionAttemptId,()=>Error(`Attempt '${e.claim.executionAttemptId}' provisioning produced no allocation: ${e.evidence.source} reported '${e.evidence.summary}'`)),t}async recordProvisionerIncarnationLost(e){let t=await this.repository.recordProvisionerIncarnationLost(e);if(t.kind===`recorded`){let{evidence:t,provisionerIncarnationId:n}=e.proof;this.rejectWaiterWith(e.claim.executionAttemptId,()=>Error(`Attempt '${e.claim.executionAttemptId}' lost the provisioner incarnation '${n}' its allocation was bound to: ${t.source} reported '${t.summary}'`))}return t}async recordAllocationTerminated(e){return this.repository.recordAllocationTerminated(e)}async getActiveAttempt(e,t){return this.repository.getActiveAttempt(e,t)}async commitOutcome(e,t,n){let r=await this.repository.commitOutcome({executionAttemptId:e,executionId:t,result:n});return(r.kind===`conflict`||r.kind===`fenced`)&&this.settleWaiterInternal(e,r),r}waitForOutcome(e){return this.waiters.get(e)?.promise}settleOutcome(e,t){this.settleWaiterInternal(e,t)}discardWaiter(e){this.waiters.delete(e)}rejectAndDiscardWaiter(e,t){this.rejectWaiterWith(e,()=>t)}rejectWaiterWith(e,t){let n=this.waiters.get(e);n!==void 0&&(n.promise.catch(()=>void 0),n.reject(t()),this.waiters.delete(e))}get supportsRecovery(){return this.repository.recovery!==void 0}async getAttemptWithAllocation(e){return this.requireRecovery(`getAttemptWithAllocation`).getAttemptWithAllocation(e)}async recordDiscoveredAllocation(e){return this.requireRecovery(`recordDiscoveredAllocation`).recordDiscoveredAllocation(e)}async evolveAllocationRef(e){let t=this.requireRecovery(`evolveAllocationRef`);if(e.currentRef.providerId!==e.nextRef.providerId)throw Error(`Provider identity mismatch in allocation ref evolution: currentRef.providerId '${e.currentRef.providerId}' !== nextRef.providerId '${e.nextRef.providerId}'. Provider identity must not change during correlation.`);return t.evolveAllocationRef(e)}async getRecoverableAttempts(e){return this.requireRecovery(`getRecoverableAttempts`).getRecoverableAttempts(e)}async recordInfrastructureFailure(e){let t=await this.repository.recordInfrastructureFailure(e);return t.kind===`recorded`&&this.rejectWaiterWith(e.claim.executionAttemptId,()=>Error(`Attempt '${e.claim.executionAttemptId}' suffered infrastructure failure: the provider allocation terminated without an acknowledged outcome`)),t}async abandonPendingAttempt(e,t){let n=await this.repository.abandonPendingAttempt(e,t);return(n.kind===`abandoned`||n.kind===`already-abandoned`)&&this.waiters.delete(e),n}requireRecovery(e){let{recovery:t}=this.repository;if(t===void 0)throw Error(`Recovery operation '${e}' requires a repository that exposes recovery operations. The injected repository does not support recovery.`);return t}installWaiter(e){this.waiters.set(e,fe())}settleWaiterInternal(e,t){let n=this.waiters.get(e);if(n){switch(t.kind){case`accepted`:case`duplicate`:n.resolve(t.outcome);break;case`conflict`:n.reject(Error(`Outcome conflict for attempt '${e}': a different outcome was already committed`));break;case`fenced`:n.reject(Error(`Attempt '${e}' has been fenced: it is no longer the active attempt for this execution`));break}this.waiters.delete(e)}}},fi=class extends dt{workflowExecutor;triggerReconcilerInstance;attemptAuthority;workspaceRootResolvers=new Set;constructor(e,t){super(e),this.attemptAuthority=t?.executionAttemptAuthority??(t?.executionAttemptRepository?new di(t.executionAttemptRepository):void 0),this.workflowExecutor=new ai(e,t?.executorConfig,t?.workflowRunner,this.attemptAuthority);for(let e of t?.workflowMaterializationSpecResolvers??[])this.workflowExecutor.registerWorkflowMaterializationSpecResolver(e);let n=t?.automationTriggerBindingRuntime;this.triggerReconcilerInstance=new ui(e,()=>n?.())}get executor(){return this.workflowExecutor}get executionAttemptAuthority(){return this.attemptAuthority}registerSuccessFinalizer(e){return this.workflowExecutor.registerSuccessFinalizer(e)}acceptAuthorityRunnerResult(e,t){return this.workflowExecutor.acceptAuthorityRunnerResult(e,t)}get triggerReconciler(){return this.triggerReconcilerInstance}registerWorkflowMaterializationSpecResolver(e){return this.workflowExecutor.registerWorkflowMaterializationSpecResolver(e)}registerWorkspaceRootResolver(e){return this.workspaceRootResolvers.add(e),()=>{this.workspaceRootResolvers.delete(e)}}async resolveWorkspaceRoot(e){for(let t of this.workspaceRootResolvers){let n=await t(e);if(n!==void 0)return n}}async onInit(){this.addCleanup(()=>this.destroyOwnedServices()),await this.workflowExecutor.init(),await this.triggerReconcilerInstance.init()}async destroyOwnedServices(){let e=[];for(let t of[()=>this.triggerReconcilerInstance.destroy(),()=>this.workflowExecutor.destroy()])try{await t()}catch(t){e.push(t)}if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Workflow engine service teardown failed`)}};const pi=ct(`makaio.workflow-engine`);function mi(e){return{name:pi.name,displayName:`Workflow Engine`,version:`0.1.0`,dependencies:[st(St.name),st(Ct.name,void 0,!0)],critical:!0,namespaces:[et,xe],storage:{registerHandlers:mt(Sr)},create:t=>new fi(t.bus,{...e,automationTriggerBindingRuntime:()=>t.getService(Ct)})}}const hi=mi();export{di as a,Sr as c,an as d,fi as i,rn as l,mi as n,ui as o,hi as r,ai as s,pi as t,nn as u};