@makaio/framework 1.0.0-dev-1788909333961 → 1.0.0-dev-1788936831433

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 (273) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/artifact-DtmJR46g.mjs +1 -0
  3. package/dist/authority-state-bootstrap-DnwkMieA.mjs +1 -0
  4. package/dist/bus/index.d.mts +20 -20
  5. package/dist/bus/index.mjs +1 -1
  6. package/dist/clients/index.d.mts +1 -1
  7. package/dist/clients/managed-install.d.mts +1 -1
  8. package/dist/code-execution/worker-entry.d.mts +1 -1
  9. package/dist/code-execution-B9wr0b972.mjs +1 -0
  10. package/dist/contracts/adapter/index.d.mts +1 -1
  11. package/dist/contracts/artifact/index.d.mts +3 -3
  12. package/dist/contracts/artifact/index.mjs +1 -1
  13. package/dist/contracts/canonical-model/index.d.mts +1 -1
  14. package/dist/contracts/capabilities/index.d.mts +2 -2
  15. package/dist/contracts/client/index.d.mts +2 -2
  16. package/dist/contracts/code-execution/index.d.mts +1 -1
  17. package/dist/contracts/common/index.d.mts +1 -1
  18. package/dist/contracts/config/index.d.mts +1 -1
  19. package/dist/contracts/extension/index.d.mts +4 -4
  20. package/dist/contracts/extension/index.mjs +1 -1
  21. package/dist/contracts/facet/index.d.mts +1 -1
  22. package/dist/contracts/harness/index.d.mts +1 -1
  23. package/dist/contracts/host/index.d.mts +1 -1
  24. package/dist/contracts/index.d.mts +151 -150
  25. package/dist/contracts/index.mjs +1 -1
  26. package/dist/contracts/materialization/index.d.mts +2 -2
  27. package/dist/contracts/materialization/index.mjs +1 -1
  28. package/dist/contracts/model-registry/index.d.mts +1 -1
  29. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  30. package/dist/contracts/platform/index.d.mts +1 -1
  31. package/dist/contracts/provider/index.d.mts +2 -2
  32. package/dist/contracts/reaction/index.d.mts +1 -1
  33. package/dist/contracts/session/index.d.mts +2 -2
  34. package/dist/contracts/shared/index.d.mts +1 -1
  35. package/dist/contracts/skill/index.d.mts +1 -1
  36. package/dist/contracts/telemetry/index.d.mts +1 -1
  37. package/dist/contracts/timeout/index.d.mts +1 -1
  38. package/dist/contracts/variant/index.d.mts +1 -1
  39. package/dist/contracts/worker/index.d.mts +2 -1
  40. package/dist/contracts/worker/index.mjs +1 -1
  41. package/dist/contracts/workflow/index.d.mts +2 -2
  42. package/dist/contracts/workflow/index.mjs +1 -1
  43. package/dist/{execution-attempt-repository-CF3cWsPo.d.mts → execution-attempt-repository-CJVlPFMM.d.mts} +60 -6
  44. package/dist/{extension-BgUSK5rv.mjs → extension-C1CwxkCN.mjs} +1 -1
  45. package/dist/framework-packages-B3SQPHD7.mjs +1 -0
  46. package/dist/{index-tDCBp28C.d.mts → index-B6Lsx8QD2.d.mts} +346 -346
  47. package/dist/{index-BeplDh91.d.mts → index-BQoiFDct.d.mts} +2023 -468
  48. package/dist/{index-B7VO0gQV.d.mts → index-BV1Btpfc.d.mts} +3 -3
  49. package/dist/{index-BALk4zcu.d.mts → index-BwktKRHX.d.mts} +1 -1
  50. package/dist/{index-VAJBIJUb.d.mts → index-BypDPKtQ.d.mts} +62 -46
  51. package/dist/{index-CZuhTqsX2.d.mts → index-C83rKcaK2.d.mts} +12 -12
  52. package/dist/{index-DI-1HK7v2.d.mts → index-CKjFFP6W2.d.mts} +1 -1
  53. package/dist/{index-B4Wg4W7d.d.mts → index-C_R6ifn9.d.mts} +100 -100
  54. package/dist/{index-BtC1JP5D.d.mts → index-CcgI6r0K.d.mts} +1 -1
  55. package/dist/{index-DlKxbLC9.d.mts → index-CqSdF7rK.d.mts} +2 -2
  56. package/dist/{index-DFsJTTkS.d.mts → index-CuLDybz3.d.mts} +1 -1
  57. package/dist/{index-U0Fe0baO.d.mts → index-CzSoEyWu.d.mts} +10 -10
  58. package/dist/{index-D7j6v0-L.d.mts → index-D3RZEEE3.d.mts} +1 -1
  59. package/dist/{index-CpdRe5df.d.mts → index-DDUi5U4Q.d.mts} +778 -64
  60. package/dist/{index-b_LJnwCU2.d.mts → index-DOkenapA.d.mts} +8 -8
  61. package/dist/{index-BjcJH3I-.d.mts → index-DWU3yzQ-.d.mts} +1 -1
  62. package/dist/{index-OP6Aw5jN.d.mts → index-GNRWZONO.d.mts} +14 -16
  63. package/dist/{index-VCtdvtEk.d.mts → index-J7xYeLwB.d.mts} +337 -337
  64. package/dist/{index-BQv9mUzn.d.mts → index-SDXlgq07.d.mts} +36 -8
  65. package/dist/{index-uv_WSQtw2.d.mts → index-ZGtyv_3n2.d.mts} +161 -49
  66. package/dist/{index-BO_ikAR-.d.mts → index-glwUNat3.d.mts} +10 -10
  67. package/dist/kernel/cli/index.d.mts +2 -2
  68. package/dist/kernel/cli/register.d.mts +1 -1
  69. package/dist/kernel/extension/index.d.mts +1 -1
  70. package/dist/kernel/index.d.mts +5 -5
  71. package/dist/kernel/namespace/index.d.mts +1 -1
  72. package/dist/kernel/observability/index.d.mts +1 -1
  73. package/dist/kernel/providers/index.d.mts +1 -1
  74. package/dist/kernel/window/index.d.mts +1 -1
  75. package/dist/{lib-Ql8RWYOd.mjs → lib-0MqNtDuH.mjs} +4 -4
  76. package/dist/{lib-B8hEa65D.mjs → lib-dlyJT26K.mjs} +1 -1
  77. package/dist/{load-extensions-un9Md47Z.d.mts → load-extensions-DM1PgW4a.d.mts} +1 -1
  78. package/dist/{materialization-CqOHTt92.mjs → materialization-CDemi12q.mjs} +1 -1
  79. package/dist/{namespace-BVQ8Y2Yi.d.mts → namespace-Cjh_Ogen.d.mts} +2 -2
  80. package/dist/{namespace-DELzAyzb.d.mts → namespace-JqvomFSV.d.mts} +152 -152
  81. package/dist/node/bus-server/index.d.mts +1 -1
  82. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  83. package/dist/package-DKfzsJVl.mjs +7 -0
  84. package/dist/{package-DnlJ4I1i.d.mts → package-x2wRhcUt.d.mts} +71 -9
  85. package/dist/package.json +1 -1
  86. package/dist/rules/index.d.mts +1 -1
  87. package/dist/rules/schemas.d.mts +1 -1
  88. package/dist/runtime-inputs-CMjGjK7W.d.mts +23 -0
  89. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  90. package/dist/runtime-node/code-execution/index.mjs +1 -1
  91. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  92. package/dist/runtime-node/extension-validation.d.mts +1 -1
  93. package/dist/runtime-node/index.d.mts +5 -5
  94. package/dist/runtime-node/index.mjs +24 -24
  95. package/dist/runtime-node/makaio-config.d.mts +1 -1
  96. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  97. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  98. package/dist/{schemas-B9yLU2jM.d.mts → schemas-B4gxLiTq.d.mts} +211 -79
  99. package/dist/schemas-BahXrOYa.mjs +1 -0
  100. package/dist/{schemas-mGJIRIZ5.d.mts → schemas-DYeS-mtz.d.mts} +152 -152
  101. package/dist/{schemas-BBatvMde.d.mts → schemas-DfSirQM5.d.mts} +2 -2
  102. package/dist/services/adapter-runtime/index.d.mts +3 -3
  103. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  104. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  105. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  106. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  107. package/dist/services/agent-runtime/index.d.mts +2 -2
  108. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  109. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  110. package/dist/services/capability/index.d.mts +2 -2
  111. package/dist/services/code-execution/index.d.mts +1 -1
  112. package/dist/services/codebase/index.d.mts +2 -2
  113. package/dist/services/codebase/namespace.d.mts +1 -1
  114. package/dist/services/codebase/schemas.d.mts +1 -1
  115. package/dist/services/compression/index.d.mts +2 -2
  116. package/dist/services/compression/namespace.d.mts +1 -1
  117. package/dist/services/compression/schemas.d.mts +1 -1
  118. package/dist/services/context-rules/index.d.mts +1 -1
  119. package/dist/services/execution-target/index.d.mts +3 -3
  120. package/dist/services/execution-target/namespace.d.mts +1 -1
  121. package/dist/services/execution-target/schemas.d.mts +1 -1
  122. package/dist/services/filesystem/index.d.mts +1 -1
  123. package/dist/services/filesystem/namespace.d.mts +6 -6
  124. package/dist/services/filesystem/schemas.d.mts +3 -3
  125. package/dist/services/index.d.mts +118 -118
  126. package/dist/services/index.mjs +1 -1
  127. package/dist/services/log-import/browser.d.mts +2 -2
  128. package/dist/services/log-import/index.d.mts +2 -2
  129. package/dist/services/log-import/log-import.d.mts +1 -1
  130. package/dist/services/materialization/index.d.mts +1 -1
  131. package/dist/services/model-registry/index.d.mts +1 -1
  132. package/dist/services/preferences/index.d.mts +2 -2
  133. package/dist/services/preferences/schemas.d.mts +1 -1
  134. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  135. package/dist/services/provider-context/index.d.mts +1 -1
  136. package/dist/services/session/handlers/index.d.mts +1 -1
  137. package/dist/services/session/index.d.mts +9 -9
  138. package/dist/services/session/messages/namespace.d.mts +1 -1
  139. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  140. package/dist/services/session/session-events/namespace.d.mts +1 -1
  141. package/dist/services/session/storage/namespace.d.mts +1 -1
  142. package/dist/services/session/storage/schema.d.mts +1 -1
  143. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  144. package/dist/services/session/turns/namespace.d.mts +1 -1
  145. package/dist/services/session-editor/index.d.mts +1 -1
  146. package/dist/services/settings/index.d.mts +3 -3
  147. package/dist/services/settings/namespace.d.mts +2 -2
  148. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  149. package/dist/services/settings/storage/index.d.mts +3 -3
  150. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  151. package/dist/services/subagent/index.d.mts +1 -1
  152. package/dist/services/subagent-template/index.d.mts +2 -2
  153. package/dist/services/subagent-template/namespace.d.mts +1 -1
  154. package/dist/services/subagent-template/schemas.d.mts +1 -1
  155. package/dist/services/tool-approval/index.d.mts +1 -1
  156. package/dist/services/tools/index.d.mts +1 -1
  157. package/dist/services/tools/index.mjs +1 -1
  158. package/dist/services/tray-menu/index.d.mts +3 -3
  159. package/dist/services/tray-menu/namespace.d.mts +1 -1
  160. package/dist/services/tray-menu/schemas.d.mts +1 -1
  161. package/dist/services/turn/index.d.mts +1 -1
  162. package/dist/services/turn/namespace.d.mts +1 -1
  163. package/dist/services/workflow-transitions/index.d.mts +1 -1
  164. package/dist/services/workflow-transitions/index.mjs +1 -1
  165. package/dist/storage/drizzle/client.d.mts +1 -1
  166. package/dist/storage/drizzle/index.d.mts +1 -1
  167. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  168. package/dist/storage/handlers/index.d.mts +1 -1
  169. package/dist/testing/drizzle-harness.d.mts +8 -0
  170. package/dist/testing/drizzle-harness.mjs +1 -1
  171. package/dist/{tools-BkSFBqUz.mjs → tools-2INrWlnS.mjs} +1 -1
  172. package/dist/{transition-BbfxZ4U1.d.mts → transition-DXfTmVSx.d.mts} +1 -1
  173. package/dist/{types-CXwFtEIF.d.mts → types-B4u8kNdt.d.mts} +327 -327
  174. package/dist/{types-CR415CdC2.d.mts → types-FNVbwd7z2.d.mts} +1 -1
  175. package/dist/ui-kernel/index.d.mts +1 -1
  176. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  177. package/dist/{view-builder-CJtK5hgs.d.mts → view-builder-DU_WTiuk.d.mts} +1 -1
  178. package/dist/{worker-VBlgozIo.mjs → worker-Bn0x5MSH.mjs} +1 -1
  179. package/dist/workflow-B6C3Pf66.mjs +1 -0
  180. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  181. package/dist/workflow-engine/index.d.mts +44 -42
  182. package/dist/workflow-engine/index.mjs +1 -1
  183. package/dist/workflow-engine/package.d.mts +1 -1
  184. package/dist/workflow-engine/package.mjs +1 -1
  185. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  186. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  187. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  188. package/dist/workflow-engine/testing/index.d.mts +3 -1
  189. package/dist/workflow-engine/testing/index.mjs +1 -1
  190. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  191. package/dist/workflow-engine/testing/sqlite.mjs +13 -3
  192. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  193. package/dist/{workflow-transitions-Cuo6s9uv.mjs → workflow-transitions-BbhM_zPm.mjs} +1 -1
  194. package/dist/workflow-worker-Db7EBUgh.mjs +2 -0
  195. package/package.json +1 -1
  196. package/dist/artifact-BjqkK0KX.mjs +0 -1
  197. package/dist/authority-state-bootstrap-8VGt4vD2.mjs +0 -1
  198. package/dist/code-execution-BsiB7ZeZ2.mjs +0 -1
  199. package/dist/framework-packages-CxWecyPW.mjs +0 -1
  200. package/dist/package-BwIbyojG.mjs +0 -7
  201. package/dist/schemas-0eCrrru1.mjs +0 -1
  202. package/dist/workflow-svpU9Cig.mjs +0 -1
  203. package/dist/workflow-worker-7AA-u1uC.mjs +0 -2
  204. /package/dist/{capability-service-CsWaOwvH.d.mts → capability-service-23Ot2J9A.d.mts} +0 -0
  205. /package/dist/{client-DP4ksY9q.d.mts → client-BwFqO0cG.d.mts} +0 -0
  206. /package/dist/{client-binary-version-verifier-BoXRTyae.d.mts → client-binary-version-verifier-DySlUy9m.d.mts} +0 -0
  207. /package/dist/{clients-namespace-BVDmj8uV.d.mts → clients-namespace-Dh0SNZcQ.d.mts} +0 -0
  208. /package/dist/{config-namespace-BMOKEuyf.d.mts → config-namespace-CZqPIAWt.d.mts} +0 -0
  209. /package/dist/{definition-ByVJ3n6o.d.mts → definition-D3HjoK-4.d.mts} +0 -0
  210. /package/dist/{extension-discovery-C0Nj5EVZ.d.mts → extension-discovery-CZkaPQBo.d.mts} +0 -0
  211. /package/dist/{filesystem-service-C6D7oABi.d.mts → filesystem-service-UYYyRL2y.d.mts} +0 -0
  212. /package/dist/{hook-responses-Cs8A07ZP.d.mts → hook-responses-chgDiS8D.d.mts} +0 -0
  213. /package/dist/{index-CNOqYviR.d.mts → index-6wmqw_ng.d.mts} +0 -0
  214. /package/dist/{index-BrRCVo9r.d.mts → index-B5kqAW7h.d.mts} +0 -0
  215. /package/dist/{index-DxaQ-ceV.d.mts → index-B6Kq1BtL.d.mts} +0 -0
  216. /package/dist/{index-BR7IiCib.d.mts → index-BCKhrNLC.d.mts} +0 -0
  217. /package/dist/{index-HRn0Kun0.d.mts → index-BU8uFswE.d.mts} +0 -0
  218. /package/dist/{index-fzrPfhS0.d.mts → index-BjELPYLF2.d.mts} +0 -0
  219. /package/dist/{index-B_VcKELo.d.mts → index-BrelUXBT.d.mts} +0 -0
  220. /package/dist/{index-BgY_UzH82.d.mts → index-BtPZcp4M2.d.mts} +0 -0
  221. /package/dist/{index-BGWkmG9i.d.mts → index-Bxs-oIo4.d.mts} +0 -0
  222. /package/dist/{index-BpWoCe22.d.mts → index-C-6g2xzN.d.mts} +0 -0
  223. /package/dist/{index-BHZlMm_I.d.mts → index-C6eJrtTA.d.mts} +0 -0
  224. /package/dist/{index-DrwT45ci2.d.mts → index-CBnCXp1R2.d.mts} +0 -0
  225. /package/dist/{index-Bpv8EpBa.d.mts → index-CDeN0mdC.d.mts} +0 -0
  226. /package/dist/{index-_Ngf4KAa.d.mts → index-CU_HMaeC.d.mts} +0 -0
  227. /package/dist/{index-CIV2G6uX2.d.mts → index-CYUhTE552.d.mts} +0 -0
  228. /package/dist/{index-CKvOECeR.d.mts → index-CuPq_ap8.d.mts} +0 -0
  229. /package/dist/{index-D6qlh6Td.d.mts → index-DB4Xggtt.d.mts} +0 -0
  230. /package/dist/{index-DZv9yNKF2.d.mts → index-DGlSbpgS2.d.mts} +0 -0
  231. /package/dist/{index-BnLp-7qH.d.mts → index-DNp9DP6W.d.mts} +0 -0
  232. /package/dist/{index-BbjxBrcp2.d.mts → index-DQbcfjIb2.d.mts} +0 -0
  233. /package/dist/{index-DOKPbF-y2.d.mts → index-DX_2kGSg.d.mts} +0 -0
  234. /package/dist/{index-IkeLI7uY.d.mts → index-DbYjMWlj.d.mts} +0 -0
  235. /package/dist/{index-CHuB40EK.d.mts → index-DcG3r0VL.d.mts} +0 -0
  236. /package/dist/{index-ByJ2NESC.d.mts → index-DlOp5nH0.d.mts} +0 -0
  237. /package/dist/{index-DLlTuugR.d.mts → index-LsZNB_gb.d.mts} +0 -0
  238. /package/dist/{index-CSEhxhIc.d.mts → index-SIP-fI28.d.mts} +0 -0
  239. /package/dist/{index-B7g7e7_f.d.mts → index-zvoiT54b.d.mts} +0 -0
  240. /package/dist/{kind-registration-T--B1wiI.mjs → kind-registration-DggkrLkv.mjs} +0 -0
  241. /package/dist/{namespace-CcHA54E1.d.mts → namespace-69c5HXtL.d.mts} +0 -0
  242. /package/dist/{namespace-DdcRYk7b.d.mts → namespace-B7fMkHmy.d.mts} +0 -0
  243. /package/dist/{namespace-DyeMWQKf.d.mts → namespace-BQ7eiQwr.d.mts} +0 -0
  244. /package/dist/{namespace-thsiHTFH.d.mts → namespace-BXkDQ9nn.d.mts} +0 -0
  245. /package/dist/{namespace-CQaL10rI.d.mts → namespace-BoOLmi67.d.mts} +0 -0
  246. /package/dist/{namespace-Ct2DKREI.d.mts → namespace-CBf5xG_A.d.mts} +0 -0
  247. /package/dist/{namespace-sTMm1voF.d.mts → namespace-CIF_1OWi.d.mts} +0 -0
  248. /package/dist/{namespace-nE7vRctI.d.mts → namespace-CUXZS_Ia.d.mts} +0 -0
  249. /package/dist/{namespace-Ciyw6FxO.d.mts → namespace-DAW4OY3-.d.mts} +0 -0
  250. /package/dist/{namespace-BocL2nn7.d.mts → namespace-DAbT1F_n.d.mts} +0 -0
  251. /package/dist/{namespace-BlH5BeSq.d.mts → namespace-DCmkW_25.d.mts} +0 -0
  252. /package/dist/{namespace-DtXYm32M.d.mts → namespace-De25c2ds.d.mts} +0 -0
  253. /package/dist/{orchestrator-shared-CYnIz5Zd.d.mts → orchestrator-shared-BRNZ6it3.d.mts} +0 -0
  254. /package/dist/{packages-DtsjAYuf.d.mts → packages-BSVxszLf.d.mts} +0 -0
  255. /package/dist/{providers-namespace-BxknJ03z.d.mts → providers-namespace-DcPil5uz.d.mts} +0 -0
  256. /package/dist/{schema-CJfSEZ8X.d.mts → schema-DIgKUfuF.d.mts} +0 -0
  257. /package/dist/{schemas-DQ5iRisA.d.mts → schemas-Bg2fBMPN.d.mts} +0 -0
  258. /package/dist/{schemas-0VbIjfrW.d.mts → schemas-CM3Ejp-n.d.mts} +0 -0
  259. /package/dist/{schemas-BfMFZ6J5.d.mts → schemas-COnD70WD.d.mts} +0 -0
  260. /package/dist/{schemas-CsRcSlvA2.d.mts → schemas-DTyZjKQf2.d.mts} +0 -0
  261. /package/dist/{schemas-KDl7p-wr.d.mts → schemas-Ge_bamoP.d.mts} +0 -0
  262. /package/dist/{schemas-Yp3PvwsM.d.mts → schemas-NwKrrrPF.d.mts} +0 -0
  263. /package/dist/{schemas-CmUWeOkr.d.mts → schemas-Vv0GtBaZ.d.mts} +0 -0
  264. /package/dist/{schemas-Djt6hIjz.d.mts → schemas-eA76OYo2.d.mts} +0 -0
  265. /package/dist/{schemas-DzDVjYjt.d.mts → schemas-qbaSxHDL.d.mts} +0 -0
  266. /package/dist/{server-lifecycle-Ck6_8o8v.d.mts → server-lifecycle-BPAN-b0i.d.mts} +0 -0
  267. /package/dist/{storage-namespace-CRdQoXZ9.d.mts → storage-namespace-C9oFExfb.d.mts} +0 -0
  268. /package/dist/{storage-namespace-definition-NBw1Y8Pa.d.mts → storage-namespace-definition-D6soSjKE.d.mts} +0 -0
  269. /package/dist/{types-CXrp5ldz.d.mts → types-BOsf2SVm.d.mts} +0 -0
  270. /package/dist/{types-CUCFeisO.d.mts → types-BZnJ_4e2.d.mts} +0 -0
  271. /package/dist/{types-BFv-EK2G.d.mts → types-CWgYlxjU.d.mts} +0 -0
  272. /package/dist/{types-BcGXdeva.d.mts → types-DZvkUmHS.d.mts} +0 -0
  273. /package/dist/{window-registry-Chi2qJ5k.d.mts → window-registry-Bvjvpwhn.d.mts} +0 -0
@@ -0,0 +1,7 @@
1
+ import{$ as e,A as t,B as n,D as r,F as i,G as a,H as o,I as s,J as c,K as l,M as u,N as d,O as f,P as p,Q as ee,R as te,U as ne,V as m,W as h,X as re,Y as ie,Z as ae,_t as oe,a as se,at as ce,bt as g,c as le,ct as ue,dt as de,et as fe,f as pe,ft as me,g as he,gt as ge,h as _e,ht as ve,i as ye,it as be,j as xe,k as _,l as Se,lt as Ce,m as we,mt as Te,n as Ee,nt as De,o as Oe,ot as ke,p as Ae,pt as je,q as Me,r as Ne,rt as Pe,st as Fe,tt as Ie,u as Le,ut as Re,v as ze,vt as Be,yt as Ve,z as He}from"./authority-state-bootstrap-DnwkMieA.mjs";import{a as Ue}from"./execution-attempt-repository-DXyh1hgz.mjs";import{assertWorkflowTriggerPayload as We,compileWorkflowTriggerBindingFilter as Ge}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as Ke,r as qe}from"./execution-attempt-owner-recovery-CdH04iwP.mjs";import{SerialLane as Je}from"@makaio/framework/utils";import{ArtifactSubjects as Ye,AutomationTriggerSubjects as Xe,CRON_AUTOMATION_TRIGGER_KIND as Ze,EXECUTION_LIST_DEFAULT_LIMIT as Qe,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionAttemptSchemas as x,ExecutionAttemptSubjects as S,ExecutionsByArtifactRefsQuerySchema as $e,JsonPatchOperationSchema as et,JsonValueSchema as tt,SessionSubjects as nt,WORKFLOW_CANCELLED_REASON as rt,WorkLogFrameEntrySchema as it,WorkerSubjects as at,WorkflowAutomationTriggerBindingSchema as ot,WorkflowError as C,WorkflowErrorCode as st,WorkflowNamespace as ct,WorkflowRunContextSchema as lt,WorkflowRunResultSchema as ut,WorkflowStepTypeSchema as dt,WorkflowSubjects as w,createWorkflowCancelSubject as ft,createWorkflowDelegateResultFinalizerNamespace as pt,createWorkflowFinalizerNamespace as mt,dep as ht,extensionToken as gt,serializeArtifactRef as _t,walkWorkflowDefinition as vt}from"@makaio/framework/contracts";import{BaseService as yt}from"@makaio/framework/service-base";import{defineDialectSchema as bt,executeTransaction as T,getDatabaseDialect as xt,registerDrizzleHandlers as St,resolveSchema as E,serializeDatabaseOperation as D}from"@makaio/framework/storage/drizzle";import{and as O,asc as k,count as A,desc as j,eq as M,getTableColumns as Ct,gte as wt,isNotNull as Tt,isNull as N,lt as Et,lte as Dt,notInArray as Ot,or as kt,sql as P,sum as F}from"drizzle-orm";import{SessionToken as At}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as jt}from"@makaio/framework/services/automation-trigger";const Mt=l.postgres,Nt=De.postgres,Pt=c.postgres,Ft=be.postgres,It=ue.postgres,Lt=re.postgres,Rt=ke.postgres,zt=ge.postgres,Bt=me.postgres,Vt=Re.postgres,Ht=Te.postgres,Ut=ee.postgres,Wt=fe.postgres,Gt=Be.postgres,I=bt({workflowDefinitions:a,workflowExecutions:Ie,workflowExecutionFrames:Me,workflowGateInstances:Pe,workflowStepSpans:Fe,workflowExecutionLinks:ie,workflowRunContexts:ce,worklogSummaries:ve,worklogFrameEntries:de,worklogArtifactWrites:Ce,worklogGateEvents:je,workflowExecutionState:ae,workflowExecutionStateEvents:e,workflowFinalizations:oe},{workflowDefinitions:Mt,workflowExecutions:Nt,workflowExecutionFrames:Pt,workflowGateInstances:Ft,workflowStepSpans:It,workflowExecutionLinks:Lt,workflowRunContexts:Rt,worklogSummaries:zt,worklogFrameEntries:Bt,worklogArtifactWrites:Vt,worklogGateEvents:Ht,workflowExecutionState:Ut,workflowExecutionStateEvents:Wt,workflowFinalizations:Gt});function L(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 R(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 Kt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=L(t);return[M(e.scopeType,n),M(e.scopeKind,r),M(e.scopeId,i)]}function z(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:R(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 qt(e,t){let n=L(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 Jt(e,t){let{workflowDefinitions:n}=E(t,I),r=Ct(n),i=e.on(h.get,async e=>{let r=await t.select().from(n).where(M(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?z(r[0]):null})}),a=e.on(h.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=qt(a,o),c=await D(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:P`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?P`${r.description}`:s.description,inputSchema:s.inputSchema===null?P`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?P`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?P`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?P`${r.artifact}`:s.artifact,triggers:s.triggers===null?P`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?P`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?P`${r.source}`:s.source,executableSource:s.executableSource,requirements:s.requirements,successFinalizerId:s.successFinalizerId,...L(a.scope)}).where(M(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});c&&await e.emit(c.kind===`created`?g.definition.created:g.definition.updated,z(c.row)),i.setResult({id:a.id})}),o=e.on(h.delete,async r=>{let i=(await D(t,()=>t.delete(n).where(M(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(g.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),s=e.on(h.list,async e=>{let r=e.payload,i=r.scope?Kt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(O(...i)):await t.select().from(n);e.setResult({workflows:a.map(z)})});return()=>{i(),a(),o(),s()}}function Yt(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 Xt(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 Zt(e,t){let{workflowExecutionFrames:n}=E(t,I),r=e.on(h.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!m(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=Xt(r,i);await D(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(h.getFrame,async e=>{let r=await t.select().from(n).where(M(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Yt(r[0]):null})}),a=e.on(h.listFrames,async e=>{if(!m(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(M(n.executionId,e.payload.executionId)).orderBy(k(n.startedAt),k(n.frameId));e.setResult({frames:r.map(Yt)})});return()=>{r(),i(),a()}}function Qt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function B(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 V(e){return{id:Qt(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 $t(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??Qe;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?[]:[M(r.executionId,e)],...t===void 0?[]:[M(r.status,t)]]}}function en(e,t){let{workflowExecutions:n,workflowGateInstances:r}=E(t,I),i=e.on(h.setGateInstance,async e=>{let n=e.payload.gate;if(!m(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=V(n);await D(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=e.on(h.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=V(n),a=await D(t,()=>t.update(r).set(i).where(O(M(r.id,i.id),M(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),o=e.on(h.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!m(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[M(r.executionId,n),M(r.nodeId,i)];a!==void 0&&o.push(M(r.frameId,a));let s=await t.select().from(r).where(O(...o)).limit(1);e.setResult({gate:s[0]?B(s[0]):null})}),s=e.on(h.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=$t(n,i,a,r),c=await t.select().from(r).where(O(...s)).orderBy(j(r.createdAt),j(r.id)).limit(o);e.setResult({gates:c.map(B)})}),c=e.on(h.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,M(r.executionId,n.id)).where(O(M(r.status,`waiting`),M(n.status,`paused`),Tt(r.timeoutMs)));e.setResult({gates:i.map(e=>B(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function tn(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 nn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function rn(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=E(t,I),i=e.on(h.setSpan,async e=>{let{span:r}=e.payload;if(!m(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await D(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(h.listSpans,async e=>{let r=await t.select().from(n).where(M(n.executionId,e.payload.executionId)).orderBy(k(n.startedAt),k(n.stepId),k(n.frameId));e.setResult({spans:r.map(tn)})}),o=e.on(h.setExecutionLink,async e=>{let{link:n}=e.payload;await D(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(h.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?[]:[M(r.sourceExecutionId,n)],...i===void 0?[]:[M(r.targetExecutionId,i)]],o=t.select().from(r).where(O(...a));e.setResult({links:(await o).map(nn)})});return()=>{i(),a(),o(),s()}}function H(e,t){return t===null?xt(e)===`postgres`?P`'null'::jsonb`:P`'null'`:t}function an(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 on(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 sn(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:on(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:R(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 cn(e){let t=an(e.source),n=L(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 ln(e,t,n){let r=cn(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function un(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=E(t,I),a=e.on(h.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await T(t,async e=>{if(await ln(e,a,n),o===void 0)return;let s=Date.now(),c=H(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(h.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(M(n.executionId,r)),a=i[0]?sn(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function dn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=E(e,I),a=Date.now(),o=H(e,n);await T(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 fn(e,t){let{workflowExecutionState:n}=E(e,I),r=(await e.select().from(n).where(M(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function pn(e,t){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=E(e,I),a=Date.now(),o=H(e,t.nextValue);return T(e,async e=>{let s=(await e.select().from(r).where(M(r.executionId,t.executionId)).limit(1))[0];if(!s)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let c=s.sequence+1,l=n(s.value,t.nextValue);if((await e.update(r).set({sequence:c,value:o,updatedAt:a}).where(O(M(r.executionId,t.executionId),M(r.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(s.sequence)}`);return await e.insert(i).values({executionId:t.executionId,sequence:c,patch:l,value:o,createdAt:a}),{executionId:t.executionId,sequence:c,patch:l,value:t.nextValue}})}function mn(e,t){let n=e.on(h.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await dn(t,n,r),e.setResult({})}),r=e.on(h.getState,async e=>{let{executionId:n}=e.payload,r=await fn(t,n);e.setResult({state:r})}),i=e.on(h.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await pn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function hn(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 gn(e,t){let{worklogSummaries:n}=E(e,I);await e.insert(n).values(t).onConflictDoNothing()}async function _n(e,t){let{worklogSummaries:n}=E(e,I);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:vn(t),setWhere:Ot(n.status,[`completed`,`failed`,`cancelled`])})}function vn(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 U(e,t){let{worklogSummaries:n}=E(e,I),r=await e.select().from(n).where(M(n.executionId,t)).limit(1);return r[0]?hn(r[0]):null}async function yn(e,t={}){let{worklogSummaries:n}=E(e,I),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[M(n.workflowId,r)],...i===void 0?[]:[M(n.status,i)]],c=s.length>0?O(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(j(n.startedAt)).limit(a).offset(o),e.select({count:A()}).from(n).where(c)]);return{items:l.map(hn),total:u[0]?.count??0}}async function bn(e,t){let{worklogFrameEntries:n}=E(e,I);await e.insert(n).values(t).onConflictDoNothing()}async function xn(e,t){let{worklogFrameEntries:n}=E(e,I);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Ot(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function W(e,t){let{worklogFrameEntries:n}=E(e,I);return(await e.select().from(n).where(M(n.frameId,t)).limit(1))[0]??null}async function Sn(e,t){let n=await W(e,t);return n===null?null:it.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 Cn(e,t){let{worklogArtifactWrites:n}=E(e,I);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function wn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function G(e,t){let{worklogGateEvents:n}=E(e,I);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Tn(e,t){let{worklogGateEvents:n}=E(e,I);return(await e.select().from(n).where(M(n.id,t)).limit(1))[0]??null}function K(e,t,n){return`${e}:${t}:${n}`}async function En(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(M(t.executionId,n)).returning();return r}async function Dn(e,t,n){let[r]=await e.select({totalInputTokens:F(t.inputTokens),totalOutputTokens:F(t.outputTokens),totalEstimatedCost:F(t.estimatedCost),measuredInputTokens:A(t.inputTokens),measuredOutputTokens:A(t.outputTokens),measuredCosts:A(t.estimatedCost)}).from(t).where(M(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 On(e){return e.hasMeasurements}async function kn(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(M(t.executionId,n))}async function An(e,t,n,r){let i=P`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=P`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=P`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=P`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(O(M(t.executionId,r),s))}async function jn(e,t){let{worklogSummaries:n,worklogFrameEntries:r}=E(e,I);if(xt(e)===`sqlite`){await An(e,n,r,t);return}await T(e,async e=>{if(await En(e,n,t)===void 0)return;let i=await Dn(e,r,t);On(i)&&await kn(e,n,t,i)})}async function Mn(e,t={}){let{worklogSummaries:n}=E(e,I),{workflowId:r,since:i,until:a}=t,o=[...r===void 0?[]:[M(n.workflowId,r)],...i===void 0?[]:[wt(n.startedAt,i)],...a===void 0?[]:[Dt(n.startedAt,a)]],s=o.length>0?O(...o):void 0,[c,l]=await Promise.all([e.select({status:n.status,count:A()}).from(n).where(s).groupBy(n.status),e.select({totalDurationMs:F(n.durationMs),totalInputTokens:F(n.totalInputTokens),totalOutputTokens:F(n.totalOutputTokens),totalEstimatedCost:F(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 Nn(e,t,n,r,i){let a=await W(t,n);if(a===null||i===void 0)return null;let o=await e.requestOptional(Ye.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 q(e,t){try{await t()}catch(t){console.error(`[WorklogProjection] Write failed (${e}):`,t)}}async function J(e,t){try{await e.emit(g.worklog.changed,{executionId:t})}catch(e){console.error(`[WorklogProjection] worklog.changed emit failed for ${t}:`,e)}}const Pn=new Set([`completed`,`failed`,`cancelled`]);function Fn(e){return Pn.has(e)}async function In(e,t){return await gn(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 Ln(e,t){let n=t.completedAt??Date.now(),r=await U(e,t.executionId);return r!==null&&Fn(r.status)?!1:(await _n(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 Rn(e,t,n,r,i,a){let o=await U(e,t);if(o!==null&&Fn(o.status))return!1;let s=o?.startedAt??a;return await _n(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 zn(e,t){return[e.on(g.execution.started,async n=>{let{executionId:r}=n.payload;await q(`execution.started[${r}]`,async()=>{await D(t,()=>In(t,n.payload))&&await J(e,r)})}),e.on(g.execution.completed,async n=>{let{executionId:r}=n.payload;await q(`execution.completed[${r}]`,async()=>{await D(t,()=>Ln(t,n.payload))&&await J(e,r)})}),e.on(g.execution.failed,async n=>{let{executionId:r,error:i,failedStepId:a}=n.payload,o=n.payload.completedAt??Date.now();await q(`execution.failed[${r}]`,async()=>{await D(t,()=>Rn(t,r,`failed`,i,a??null,o))&&await J(e,r)})}),e.on(g.execution.cancelled,async n=>{let{executionId:r}=n.payload,i=n.payload.completedAt??Date.now();await q(`execution.cancelled[${r}]`,async()=>{await D(t,()=>Rn(t,r,`cancelled`,null,null,i))&&await J(e,r)})})]}const Bn=new Set([`completed`,`failed`,`skipped`,`cancelled`]);function Vn(e){return Bn.has(e)}function Hn(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 Un(e,t,n,r,i,a,o){let s=o??Date.now(),c=await W(t,r);c!==null&&Vn(c.status)||(await xn(t,{frameId:r,executionId:n,...Hn(c,i,a===void 0?null:s-a),status:`completed`,completedAt:s,durationMs:a??null,error:null}),await jn(t,n),await J(e,n))}async function Wn(e,t,n,r,i,a,o,s){let c=s??Date.now(),l=await W(t,r);l!==null&&Vn(l.status)||(await xn(t,{frameId:r,executionId:n,...Hn(l,i,o===void 0?null:c-o),status:`failed`,completedAt:c,durationMs:o??null,error:a}),await J(e,n))}function Gn(e,t){return[e.on(g.frame.started,async n=>{let{executionId:r,frameId:i,nodeId:a,nodeType:o,path:s,startedAt:c}=n.payload;await q(`frame.started[${i}]`,async()=>{await bn(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 J(e,r)})}),e.on(g.frame.completed,async n=>{let{executionId:r,frameId:i,nodeId:a,duration:o,completedAt:s}=n.payload;await q(`frame.completed[${i}]`,()=>Un(e,t,r,i,a,o,s))}),e.on(g.frame.failed,async n=>{let{executionId:r,frameId:i,nodeId:a,error:o,duration:s,completedAt:c}=n.payload;await q(`frame.failed[${i}]`,()=>Wn(e,t,r,i,a,o,s,c))})]}const Kn={user:`rejected`,timeout:`timed-out`,cancelled:`cancelled`};function qn(e,t){return[e.on(g.gate.suspended,async n=>{let{executionId:r,frameId:i,nodeId:a,prompt:o}=n.payload;await q(`gate.suspended[${i}]`,async()=>{await G(t,{id:K(r,a,i),executionId:r,nodeId:a,frameId:i,status:`waiting`,prompt:o??null,openedAt:Date.now(),resolvedAt:null,resumeData:null}),await J(e,r)})}),e.on(g.gate.resumed,async n=>{let{executionId:r,frameId:i,nodeId:a,resumeData:o}=n.payload;await q(`gate.resumed[${i}]`,async()=>{let n=K(r,a,i),s=await Tn(t,n),c=Date.now();await G(t,{id:n,executionId:r,nodeId:a,frameId:i,status:`resumed`,prompt:s?.prompt??null,openedAt:s?.openedAt??c,resolvedAt:c,resumeData:o}),await J(e,r)})}),e.on(g.gate.resolved,async n=>Jn(n.payload,e,t)),e.on(g.artifact.updated,async n=>{let{executionId:r,frameId:i,artifactRef:a,revision:o}=n.payload;await q(`artifact.updated[${r}:${i}]`,async()=>{let n=await Nn(e,t,i,a,o);if(n===null)return;let s=Date.now();await Cn(t,{id:wn(r,i,a.kind,a.id,s),executionId:r,frameId:i,nodeId:n.nodeId,artifact:n.artifact,revision:o??null,writtenAt:s}),await J(e,r)})})]}async function Jn(e,t,n){let{executionId:r,frameId:i,stepId:a,source:o}=e;o===`user`&&e.action===`approve`||await q(`gate.resolved[${i}]`,async()=>{let s=K(r,a,i),c=await Tn(n,s),l=Date.now();await G(n,{id:s,executionId:r,nodeId:a,frameId:i,status:o!==`cancelled`&&e.action===`approve`?`resumed`:Kn[o],prompt:c?.prompt??null,openedAt:c?.openedAt??l,resolvedAt:l,resumeData:c?.resumeData??null}),await J(t,r)})}function Yn(e,t){let n=[...zn(e,t),...Gn(e,t),...qn(e,t),e.on(g.worklog.get,async e=>{let{executionId:n}=e.payload,r=await U(t,n);e.setResult({summary:r})}),e.on(g.worklog.frame.get,async e=>{let{frameId:n}=e.payload,r=await Sn(t,n);e.setResult({frame:r})}),e.on(g.worklog.list,async e=>{let{workflowId:n,status:r,limit:i,offset:a}=e.payload,o=await yn(t,{workflowId:n,status:r,limit:i,offset:a});e.setResult(o)}),e.on(g.worklog.stats,async e=>{let{workflowId:n,since:r,until:i}=e.payload,a=await Mn(t,{workflowId:n,since:r,until:i});e.setResult({stats:a})})];return()=>{for(let e of n)e()}}function Y(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)=>Y(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]&&Y(n[e],r[e]))}function Xn(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 Zn(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 Qn(e,t,n){if(e!==t)throw Error(`settleExternalExecution: execution "${n}" conflicts with an existing terminal settlement fingerprint`)}async function $n(e,t,n,r,i){let a=Zn(r,i);if(n.externalSettlementFingerprint!==null){Qn(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(O(M(t.id,r.executionId),N(t.externalSettlementFingerprint),M(t.status,r.status),M(t.completedAt,i),o===null?N(t.error):M(t.error,o),s===null?N(t.reason):M(t.reason,s))).returning({fingerprint:t.externalSettlementFingerprint})).length>0)return;let[c]=await e.select().from(t).where(M(t.id,r.executionId)).limit(1);if(c===void 0)throw Error(`settleExternalExecution: execution "${r.executionId}" disappeared`);if(tr(c,r,i),c.externalSettlementFingerprint===null)throw Error(`settleExternalExecution: failed to adopt terminal settlement fingerprint for execution "${r.executionId}"`);Qn(c.externalSettlementFingerprint,a,r.executionId)}function er(e,t){if(e.executionId!==t.executionId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!Y(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 tr(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 nr(e,t,n){let r=await e.select().from(t).where(M(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(M(t.frameId,n.frame.frameId)).limit(1);if(a!==void 0)throw Error(`settleExternalExecution: frame "${n.frame.frameId}" belongs to another execution`)}function rr(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 ir(e,t){return Xn({...e,inputTokens:e.inputTokens??t?.inputTokens??void 0,outputTokens:e.outputTokens??t?.outputTokens??void 0,estimatedCost:e.estimatedCost??t?.estimatedCost??void 0})}function ar(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&&Y(e.inputs,t.inputs)&&Y(e.triggerPayload,t.triggerPayload)))throw Error(`setExternalExecutionStart: registration conflicts for execution "${t.id}"`)}function or(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 sr(e,t){if(e.executionId!==t.executionId||e.frameId!==t.frameId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!Y(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 cr(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}=E(e,I),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 T(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(M(i.id,t.id)).limit(1);if(n===void 0)throw Error(`setExternalExecutionStart: execution "${t.id}" disappeared`);ar(n,s)}let[l]=await e.select().from(a).where(M(a.executionId,t.id)).limit(1);if(l===void 0?await e.insert(a).values(c):or(l,c),n!==void 0){let[i]=await e.select().from(o).where(M(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(Xn(n))}else sr(i,n)}})}async function lr(e,t,n,r,i){if(r.frame!==void 0){let n=await nr(e,t,r);return n!==void 0&&er(n,r.frame),{frame:r.frame,existing:n}}if(n.externalRegistrationFrameId===null)return;let[a]=await e.select().from(t).where(M(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=dt.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 ur(e,t,n,r,i){let{worklogSummaries:a,worklogFrameEntries:o}=t,s=await En(e,a,n.id),c=await lr(e,o,n,r,i),l=c===void 0?r:{...r,frame:c.frame};if(c!==void 0){let t=ir(c.frame,c.existing);await e.insert(o).values(t).onConflictDoUpdate({target:o.frameId,set:t})}let u=await Dn(e,o,n.id),d=On(u),f={totalInputTokens:u.totalInputTokens,totalOutputTokens:u.totalOutputTokens,totalEstimatedCost:u.totalEstimatedCost},p={...rr(n,s,l,i),...d?f:{}};await e.insert(a).values(p).onConflictDoUpdate({target:a.executionId,set:vn(p)}),d&&await kn(e,a,n.id,u)}async function dr(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}=E(e,I);return T(e,async e=>{let[a]=await e.select().from(n).where(M(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=Zn(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(O(M(n.id,t.executionId),M(n.status,`running`),N(n.externalSettlementFingerprint))).returning({id:n.id})).length===0){let[r]=await e.select().from(n).where(M(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),tr(r,t,o),await $n(e,n,r,t,o)}}else tr(a,t,o),await $n(e,n,a,t,o);return await ur(e,{worklogSummaries:r,worklogFrameEntries:i},a,t,o),!0})}function fr(e,t,n){let r=e.on(h.setExternalExecutionStart,async r=>{let i=r.payload.execution,a=r.payload.frame;await cr(t,i,a,n),await J(e,i.id),r.setResult({executionId:i.id,...a===void 0?{}:{frameId:a.frameId}})}),i=e.on(h.settleExternalExecution,async n=>{let r=await dr(t,n.payload);await J(e,n.payload.executionId),n.setResult({success:r})});return()=>{r(),i()}}function X(e){return{executionId:e.executionId,workflowId:e.workflowId,finalizerId:e.finalizerId,transitionKey:e.transitionKey,claimToken:e.claimToken,intent:e.intent,claimedAt:e.claimedAt}}function pr(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 mr(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 hr(e,t){let{workflowExecutions:n,workflowFinalizations:r}=E(e,I);return T(e,async e=>{let i=await e.select().from(r).where(M(r.executionId,t.executionId)).limit(1);return i[0]?pr(i[0],t):(await e.update(n).set({status:`finalizing`}).where(O(M(n.id,t.executionId),M(n.workflowId,t.workflowId),M(n.status,`running`))).returning({id:n.id})).length===0?!1:(await e.insert(r).values({...t,state:`claimed`}),!0)})}function gr(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 _r(e,t,n,r){let{workflowExecutions:i,workflowFinalizations:a}=E(e,I);return T(e,async e=>{let o=(await e.select().from(a).where(M(a.executionId,t)).limit(1))[0];return!o||o.claimToken!==n||o.state===`failed`?!1:o.state===`acknowledged`?!0:(await e.update(i).set(gr(o.intent)).where(O(M(i.id,t),M(i.status,`finalizing`))).returning({id:i.id})).length===0?!1:(await e.update(a).set({state:`acknowledged`,settledAt:r}).where(O(M(a.executionId,t),M(a.claimToken,n),M(a.state,`claimed`))),!0)})}async function vr(e,t,n,r,i){let{workflowExecutions:a,workflowFinalizations:o}=E(e,I);return T(e,async e=>{let s=(await e.select().from(o).where(M(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(O(M(a.id,t),M(a.status,`finalizing`))).returning({id:a.id})).length===0?!1:(await e.update(o).set({state:`failed`,failure:r,settledAt:i}).where(O(M(o.executionId,t),M(o.claimToken,n),M(o.state,`claimed`))),!0)})}async function yr(e,t,n){let{workflowExecutions:r,workflowFinalizations:i}=E(t,I),a=(await t.select().from(i).where(M(i.executionId,n.executionId)).limit(1))[0];if(!a||(mr(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(M(r.id,a.executionId)).limit(1))[0];if(!(!o||o.completedAt==null)){if(o.status===`completed`)await e.emit(g.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(g.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(g.execution.cancelled,{executionId:a.executionId,workflowId:a.workflowId,reason:o.reason??void 0,completedAt:o.completedAt,transitionKey:a.transitionKey});else return;await D(t,()=>t.update(i).set({publishedAt:Date.now()}).where(O(M(i.executionId,a.executionId),N(i.publishedAt))))}}function br(e,t){let n=new Map;return async r=>{let i=(n.get(r.executionId)??Promise.resolve()).catch(()=>void 0).then(()=>yr(e,t,r));n.set(r.executionId,i);try{await i}finally{n.get(r.executionId)===i&&n.delete(r.executionId)}}}function xr(e,t){let n=br(e,t),r=e.on(h.claimFinalization,async e=>{e.setResult({claimed:await hr(t,e.payload.claim)})}),i=e.on(h.listClaimedFinalizations,async e=>{let{workflowFinalizations:n}=E(t,I),r=await t.select().from(n).where(O(M(n.finalizerId,e.payload.finalizerId),M(n.state,`claimed`)));e.setResult({claims:r.map(X)})}),a=e.on(h.listUnpublishedFinalizations,async e=>{let{workflowFinalizations:n}=E(t,I),r=await t.select().from(n).where(O(kt(M(n.state,`acknowledged`),M(n.state,`failed`)),M(n.finalizerId,e.payload.finalizerId),N(n.publishedAt)));e.setResult({claims:r.map(X)})}),o=e.on(h.publishFinalization,async e=>{await n(e.payload.claim),e.setResult({})}),s=e.on(h.acknowledgeFinalization,async e=>{let{executionId:r,claimToken:i,settledAt:a}=e.payload,o=await _r(t,r,i,a);if(e.setResult({acknowledged:o}),!o)return;let{workflowFinalizations:s}=E(t,I),c=await t.select().from(s).where(M(s.executionId,r)).limit(1);c[0]&&await n(X(c[0]))}),c=e.on(h.failFinalization,async e=>{let{executionId:r,claimToken:i,error:a,settledAt:o}=e.payload,s=await vr(t,r,i,a,o);if(e.setResult({failed:s}),!s)return;let{workflowFinalizations:c}=E(t,I),l=await t.select().from(c).where(M(c.executionId,r)).limit(1);l[0]&&await n(X(l[0]))});return()=>{r(),i(),a(),o(),s(),c()}}function Sr(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:R(e)}}function Z(e){let t=L(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 Cr(e,t,n,r,i,a){let o=[...e?[M(a.workflowId,e)]:[],...n?[M(a.status,n)]:[],...i===void 0?[]:[M(a.artifactKind,i.kind),M(a.artifactId,i.id)]];if(t&&o.push(...Kt(a,t)),r){let e=kt(Et(a.startedAt,r.startedAt),O(M(a.startedAt,r.startedAt),Et(a.id,r.id)));e&&o.push(e)}return o}async function wr(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}=E(e,I),u=Z(t);await T(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(M(o.executionId,n.executionId)).limit(1):[])[0]?.dispatchMetadata;if(await ln(d,n.dispatchMetadata===void 0&&f!=null?{...n,dispatchMetadata:f}:n,o),r!==void 0){let n=Date.now(),i=H(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 Tr(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}=E(e,I),a=Z(t),o=V(n);await T(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 Er(e,t,n,r){let{workflowExecutions:i,workflowGateInstances:a}=E(e,I);return T(e,async e=>{if((await e.select().from(i).where(M(i.id,t)).limit(1))[0]?.status!==`paused`)return{cancelled:!1,gates:[]};let o=(await e.select().from(a).where(O(M(a.executionId,t),M(a.status,`waiting`)))).map(e=>({...B(e),status:`cancelled`,resolvedAt:n}));await e.update(i).set({status:`cancelled`,completedAt:n,reason:r??null}).where(M(i.id,t));for(let t of o){let n=V(t);await e.update(a).set(n).where(M(a.id,n.id))}return{cancelled:!0,gates:o}})}async function Dr(e,t,n,r,i,a){let{workflowExecutions:o}=E(e,I);return T(e,async e=>{if((await e.select({id:o.id}).from(o).where(M(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(M(o.id,t)),!0})}function Or(e,t){let{workflowExecutions:n}=E(t,I),r=e.on(h.getExecution,async e=>{let{executionId:r}=e.payload;if(!m(e,r))throw Error(`Unauthorized execution read: ${r}`);let i=await t.select().from(n).where(M(n.id,r));e.setResult({execution:i[0]?Sr(i[0]):null})}),i=e.on(h.setExecution,async e=>{let r=e.payload.execution,i=Z(r);await D(t,()=>t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:i})),e.setResult({id:r.id})}),a=e.on(h.setExecutionStart,async e=>{let n=e.payload.execution,r=e.payload.runContext;await wr(t,n,r,e.payload.initialState,e.payload.executionLinks),e.setResult({id:n.id,executionId:n.id})}),o=e.on(h.restorePausedGateResumeState,async e=>{let n=e.payload.execution,r=e.payload.gate;await Tr(t,n,r),e.setResult({executionId:n.id,gateId:r.nodeId})}),s=e.on(h.updateExecution,async e=>{let{executionId:n,status:r,error:i,reason:a,completedAt:o}=e.payload,s=await Dr(t,n,r,i,a,o);e.setResult({success:s})}),c=e.on(h.pauseRunningExecution,async e=>{let{workflowExecutions:n}=E(t,I),r=await D(t,()=>t.update(n).set({status:`paused`}).where(O(M(n.id,e.payload.executionId),M(n.status,`running`))).returning({id:n.id}));e.setResult({paused:r.length===1})}),l=e.on(h.cancelPausedExecution,async e=>{let{executionId:n,completedAt:r,reason:i}=e.payload;e.setResult(await Er(t,n,r,i))});return()=>{r(),i(),a(),o(),s(),c(),l()}}function kr(e,t){let{workflowExecutions:n}=E(t,I),r=e.on(h.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=Cr(r,i,a,s,c,n),u=o??Qe;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(O(...l)).orderBy(j(n.startedAt),j(n.id)).limit(u);e.setResult({executions:d.map(Sr)})}),i=e.on(h.listExecutionsByArtifactRefs,async e=>{let r=$e.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(O(M(n.artifactKind,e.kind),M(n.artifactId,e.id))).orderBy(j(n.startedAt),j(n.id)).limit(a);r.length>0&&(o[_t(e)]=r.map(Sr))}e.setResult({executionsByRef:o})});return()=>{r(),i()}}function Ar(e,t){let n=Jt(e,t),r=Or(e,t),i=kr(e,t),a=Zt(e,t),o=en(e,t),s=rn(e,t),c=un(e,t),l=mn(e,t),u=Yn(e,t),d=fr(e,t,Z),f=xr(e,t);return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u(),d(),f()}}function jr(e){return e.startsWith(b)}function Mr(e){let t={};return e.artifactRef!==void 0&&(t.artifactRef=e.artifactRef),e.triggerPayload!==void 0&&(t.triggerPayload=e.triggerPayload),t}function Nr(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 Pr(e,t){let{runContext:n}=await e.request(h.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(h.get,{id:n.workflowId});return r??void 0}function Fr(e){return[e.on(g.getDefinition,async t=>{let n=await e.request(h.get,{id:t.payload.id});t.setResult(n)}),e.on(g.setDefinition,async t=>{let n=await e.request(h.set,{workflow:t.payload.workflow});t.setResult(n)}),e.on(g.deleteDefinition,async t=>{let n=await e.request(h.delete,{id:t.payload.id});t.setResult(n)}),e.on(g.listDefinitions,async t=>{let n=await e.request(h.list,t.payload);t.setResult(n)}),e.on(g.getExecution,async t=>{let n=await e.request(h.getExecution,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listExecutions,async t=>{let n=await e.request(h.listExecutions,t.payload);t.setResult(n)}),e.on(g.listExecutionsByArtifactRefs,async t=>{let n=await e.request(h.listExecutionsByArtifactRefs,t.payload);t.setResult(n)}),e.on(g.listSpans,async t=>{let n=await e.request(h.listSpans,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listFrames,async t=>{let n=await e.request(h.listFrames,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listGateInstances,async t=>{let n=await e.request(h.listGateInstances,t.payload);t.setResult(n)}),e.on(g.setExecutionLink,async t=>{let n=await e.request(h.setExecutionLink,{link:t.payload.link});t.setResult(n)}),e.on(g.listExecutionLinks,async t=>{let n=await e.request(h.listExecutionLinks,t.payload);t.setResult(n)}),e.on(g.getRunContext,async t=>{let{executionId:n}=t.payload;if(!m(t,n))throw Error(`Unauthorized: caller is not permitted to read run context for execution: ${n}`);let{runContext:r}=await e.request(h.getRunContext,{executionId:n});if(!r)throw Error(`Run context not found for execution: ${n}`);t.setResult(r)}),...Ir(e)]}function Ir(e){return[e.on(g.registerExternalExecution,async t=>{let n=Ve.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??s(`wfx-ext`);if(!jr(o))throw Error(`registerExternalExecution: executionId must use the wfx-ext- prefix`);let c=n.startedAt??Date.now(),l={id:o,workflowId:r,status:`running`,inputs:a===void 0?{}:a,startedAt:c,scope:i??{type:`global`},...Mr(n)},u=Lr(o,c,n.frame),d=await e.request(h.setExternalExecutionStart,{execution:l,...u===void 0?{}:{frame:u}});t.setResult(d)}),e.on(g.completeExternalExecution,async t=>{let n=Ve.completeExternalExecution.request.parse(t.payload),{executionId:r,status:i}=n;if(!m(t,r))throw Error(`Unauthorized: caller is not permitted to settle execution: ${r}`);if(!jr(r))throw Error(`completeExternalExecution: execution "${r}" is engine-owned and must be completed through the engine finalizer, not this API`);let a=Rr(n),o=await e.request(h.settleExternalExecution,{executionId:r,status:i,...Nr(n),...n.completedAt===void 0?{}:{completedAt:n.completedAt},...a===void 0?{}:{frame:a}});t.setResult({success:o.success})})]}function Lr(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 Rr(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 zr(e){return[e.on(g.state.get,async t=>{let{executionId:n}=t.payload;if(!m(t,n))throw Error(`Unauthorized: caller is not permitted to read state for execution: ${n}`);let{state:r}=await e.request(h.getState,{executionId:n});if(r===null)throw Error(`no workflow state for execution ${n}`);t.setResult(r)}),e.on(g.state.patch,async t=>{let{executionId:n,expectedSequence:r,patch:i,nextValue:a}=t.payload;if(!m(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 o=await Pr(e,n);o!==void 0&&te(o,a,`next`),et.array().parse(i);let s=await e.request(h.patchState,{executionId:n,expectedSequence:r,nextValue:a});e.emit(g.state.updated,{executionId:s.executionId,sequence:s.sequence,patch:s.patch,value:s.value,updatedAt:Date.now()}).catch(()=>{}),t.setResult({executionId:s.executionId,sequence:s.sequence,value:s.value})})]}async function Br(e,t){let{runContext:n}=await e.bus.request(h.getRunContext,{executionId:t});if(n===null)throw new C(st.RUN_CONTEXT_NOT_FOUND,`Run context not found for workflow execution '${t}'.`);return n}function Vr(e,t){return t===void 0?{mode:e}:{mode:e,reason:t}}async function Hr(e,t){let n=await Br(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:Vr(t.mode,t.reason)}]};return t.mode===`snapshot`?await Kr(e,n,c):Wr(n)?await qr(e,n,c):await pe(e,n.workflowId,c)}function Ur(e,t){return Wr(e)?t.id:e.workflowId}function Wr(e){return e.source.kind!==`definition`&&e.workflowId===e.executionId}function Gr(e){let t=e.definitionSnapshot;if(t===void 0)throw new C(st.SNAPSHOT_UNAVAILABLE,`Workflow execution '${e.executionId}' does not have a definition snapshot.`);return t}async function Kr(e,t,n){let r=Gr(t);return we(e,Ur(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 qr(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 Ae(e,t.source.path,{...n,materializationSpec:r})}let r=Gr(t);return we(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 Jr=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(h.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(h.getExecution,{executionId:e.executionId});return n?.status===`running`?`retry`:n?.status===`paused`?(await this.resumePausedExecution(e.executionId),`resumed`):`settled`}};function Yr(e){if(e!==void 0)return Xr(e)?e:{}}function Xr(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Zr(e){if(e!==void 0)return tt.parse(e)}function Qr(e,t){return lt.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.terminalAuthority===void 0?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}function $r(e){return e?.status===`paused`}function ei(e){return e?.status===`waiting`}async function ti(e,t,n,r,a,o,s){try{await i(e,a.id,async()=>{let i=await e.bus.request(h.getExecution,{executionId:a.id});i.execution?.status!==`paused`&&i.execution?.status!==`running`||(t.delete(a.id),n.delete(a.id),r.delete(a.id),await e.bus.request(h.restorePausedGateResumeState,{execution:a,gate:o}))})}catch(e){console.error(`[WorkflowExecutor] Failed to restore paused gate '${s}' after resume launch failure:`,e)}}async function ni(e,t){if(t.suspensionStrategy===`wait-in-process`)return;let{frames:n}=await e.request(h.listFrames,{executionId:t.executionId});if(n.length===0)throw Error(`[WorkflowExecutor] Missing resume frames for paused execution: ${t.executionId}`)}function ri(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,timeoutMs:e.timeoutMs,openedAt:e.createdAt}}async function ii(e,t){if(t.frameId!==void 0){let{gate:n}=await e.request(h.getGateInstance,t);return ei(n)?n:null}let{gates:n}=await e.request(h.listGateInstances,{executionId:t.executionId}),r=n.filter(e=>e.nodeId===t.nodeId&&e.status===`waiting`);return r.length===1?r[0]:null}async function ai(e,t){let n=e.authority.canonicalizeOutcome(t.outcome),r=t.runtimeFence===void 0?void 0:{...t.runtimeFence};await e.validation?.validate(t.executionId,n.outcome);let i=await e.authority.commitOutcome(t.executionAttemptId,t.executionId,n,r);return(i.kind===`accepted`||i.kind===`duplicate`)&&(await e.convergence.converge({executionId:t.executionId,executionAttemptId:t.executionAttemptId,outcome:i.outcome,decision:i.kind}),e.authority.settleOutcome(t.executionAttemptId,{kind:i.kind,outcome:e.authority.decodeOutcome(i.text),text:i.text})),i.kind}function oi(e,t){let n=o(e);if(n===null)throw Error(`Attempt requests require an authenticated workflow-execution-attempt peer`);if(n.executionAttemptId!==t)throw Error(`Request executionAttemptId does not match authenticated peer identity`);return n}function si(e,t){if(e===null||e.runtimeGeneration!==t.runtimeGeneration)return!1;if(t.outcome.kind===`cancelled`&&t.operationId===void 0)return e.activeOperationId===null;let n=t.outcome.kind===`technical-failure`?t.outcome.stage:t.outcome.kind===`cancelled`?e.activeOperationKind:`workload-invocation`;return n===`startup`?t.operationId===void 0&&e.activeOperationId===null:!(e.activeOperationId!==t.operationId||e.activeOperationGeneration!==t.runtimeGeneration||e.activeOperationKind!==n||n!==`workspace-preparation`&&n!==`workload-invocation`)}function ci(e,t){return e.on(S.instruction.get,async e=>{let n=x[`instruction.get`].request.parse(e.payload),r=oi(e,n.executionAttemptId),i=await t.getInstruction(r);if(i===null){e.setResult({decision:`refused`,refusalReason:`not-found`});return}if((await t.getAttemptControlState(r.executionAttemptId))?.runtimeGeneration!==n.runtimeGeneration){e.setResult({decision:`refused`,refusalReason:`stale-generation`});return}e.setResult({decision:`found`,instruction:i})})}function li(e,t){let n=[ci(e,t.authority),e.on(S.operation.report,async e=>{let n=x[`operation.report`].request.parse(e.payload),r=oi(e,n.executionAttemptId),i=await t.authority.reportOperation({...n,executionId:r.executionId});i.kind===`accepted`||i.kind===`duplicate`?e.setResult({decision:i.kind,binding:i.binding}):e.setResult({decision:`refused`,refusalReason:i.kind})}),e.on(S.outcome.submit,async e=>{let n=x[`outcome.submit`].request.parse(e.payload),r=oi(e,n.executionAttemptId),i=await t.authority.getInstruction(r);if(i===null)throw Error(`No instruction belongs to this authenticated Attempt`);if(!si(await t.authority.getAttemptControlState(r.executionAttemptId),n)){e.setResult({decision:`fenced`});return}let a={runtimeGeneration:n.runtimeGeneration,operationId:n.operationId??null},o=await t.decodeOutcome({instruction:i,outcome:n.outcome});try{let n=await ai(t,{...r,outcome:o,runtimeFence:a});e.setResult({decision:n})}catch(t){if(!(t instanceof Ue))throw t;e.setResult({decision:`fenced`})}})];return()=>{for(let e of n)e()}}function ui(e,t){return e.origin.local?{executionAttemptId:t.executionAttemptId,executionId:t.executionId}:o(e)}async function di(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(h.pauseRunningExecution,{executionId:t});if(!r){let{execution:n}=await e.request(h.getExecution,{executionId:t});if(n?.status!==`paused`)throw Error(`Failed to park execution '${t}': status is '${n?.status??`missing`}'`);return}await e.emit(g.execution.paused,{executionId:t,workflowId:n.workflowId,pausedAtGateId:n.pausedAtGateId,pausedAtFrameId:n.pausedAtFrameId})}var fi=class{bus;acceptTerminalResult;acceptTechnicalFailure;acceptCancellation;constructor(e,t,n,r){this.bus=e,this.acceptTerminalResult=t,this.acceptTechnicalFailure=n,this.acceptCancellation=r}async converge(e){if(`kind`in e.outcome){if(e.outcome.kind===`cancelled`){let t=await this.acceptCancellation(e.executionId,e.outcome);if(!t.accepted||t.status!==`cancelled`)throw Error(`Cancellation did not converge workflow execution '${e.executionId}'`);return}let t=await this.acceptTechnicalFailure(e.executionId,e.outcome);if(!t.accepted||t.status!==`failed`&&t.status!==`cancelled`)throw Error(`Technical failure did not converge workflow execution '${e.executionId}'`);return}if(e.outcome.status===`paused`){await di(this.bus,e.executionId,e.outcome);return}let t=await this.acceptTerminalResult(e.executionId,e.outcome);if(!t.accepted||!u(t.status,e.outcome.status))throw Error(`Workflow result did not converge execution '${e.executionId}'`)}};function pi(e,t){return{authority:t.authority,decodeOutcome:ze,convergence:new fi(e,t.acceptTerminalResult,t.acceptTechnicalFailure,t.acceptCancellation)}}function mi(e,t){let n=pi(e,t),r=li(e,n),i=e.on(at.control.outcome.submit,async e=>{let r=ui(e,e.payload);if(r===null)throw Error(`Outcome submission requires an authenticated workflow-execution-attempt peer`);let{result:i}=e.payload;if(!e.origin.local){if(e.payload.executionId!==r.executionId)throw Error(`Outcome payload executionId '${e.payload.executionId}' does not match authenticated peer claim '${r.executionId}'`);if(e.payload.executionAttemptId!==r.executionAttemptId)throw Error(`Outcome payload executionAttemptId '${e.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=ut.parse(i),o=await t.authority.getInstruction(r);if(o===null)throw Error(`No instruction belongs to this workflow Attempt`);let s=await n.decodeOutcome({instruction:o,outcome:{kind:`workload-result`,result:a}}),c=await ai(n,{executionId:r.executionId,executionAttemptId:r.executionAttemptId,outcome:s});e.setResult({decision:hi(c)})});return()=>{i(),r()}}function hi(e){return e}function gi(e,t){return e.on(S.operation.admit,async e=>{let n=o(e);if(n===null)throw Error(`Operation admission requires an authenticated workflow-execution-attempt peer`);let{executionAttemptId:r,operationKind:i,admissionKey:a,runtimeGeneration:s}=x[`operation.admit`].request.parse(e.payload);if(r!==n.executionAttemptId)throw Error(`Admission payload executionAttemptId '${r}' does not match authenticated peer identity '${n.executionAttemptId}'`);if(i===`runtime-probe`)throw Error(`Operation admission does not accept 'runtime-probe' (executionAttemptId='${r}'): the bounded probe is admitted only by runtime registration`);let c=await t.authority.admitOperation({executionAttemptId:r,executionId:n.executionId,operationKind:i,admissionKey:a,runtimeGeneration:s});if(c.kind===`admitted`||c.kind===`duplicate`){await t.bus.emit(S.operation.admitted,{executionAttemptId:r,operationId:c.operationId,operationKind:i,runtimeGeneration:c.runtimeGeneration,admittedAt:c.admittedAt}),e.setResult({decision:c.kind,operationId:c.operationId});return}e.setResult({decision:`refused`,refusalReason:c.kind})})}const _i=1e4;function vi(e,t){let n=t.probeDeliveryTimeoutMs??1e4;return e.on(S.runtime.register,async e=>{let r=o(e);if(r===null)throw Error(`Runtime registration requires an authenticated workflow-execution-attempt peer`);let{executionAttemptId:i,runtimeIncarnationId:a}=x[`runtime.register`].request.parse(e.payload);if(i!==r.executionAttemptId)throw Error(`Registration payload executionAttemptId '${i}' does not match authenticated peer identity '${r.executionAttemptId}'`);let s=await t.authority.registerRuntime({executionAttemptId:i,executionId:r.executionId,runtimeIncarnationId:a});if(s.kind===`duplicate`&&s.runtimeReadyAt!==null){await yi(t,i,s.runtimeGeneration),e.setResult({decision:`duplicate`,runtimeGeneration:s.runtimeGeneration});return}if(s.kind!==`registered`&&s.kind!==`duplicate`){e.setResult(Si(s.kind));return}let c=s.runtimeGeneration;if(await bi(t,n,{executionAttemptId:i,executionId:r.executionId,runtimeIncarnationId:a,runtimeGeneration:c})===null){e.setResult(Si(`probe-failed`));return}await yi(t,i,c),e.setResult({decision:`ready`,runtimeGeneration:c})})}async function yi(e,t,n){let r=await e.authority.getAttemptControlState(t);r===null||r.runtimeGeneration!==n||r.runtimeReadyAt===null||await e.bus.emit(S.runtime.ready,{executionAttemptId:t,runtimeGeneration:n,acceptedAt:r.runtimeReadyAt})}async function bi(e,t,n){let{executionAttemptId:r,executionId:i,runtimeIncarnationId:a,runtimeGeneration:o}=n,s=await e.authority.admitOperation({executionAttemptId:r,executionId:i,operationKind:`runtime-probe`,admissionKey:`probe:${a}`,runtimeGeneration:o});if(s.kind!==`admitted`&&s.kind!==`duplicate`)return null;let c=s.operationId,l=()=>xi(e,{executionAttemptId:r,operationId:c,runtimeGeneration:o}),u;try{u=(await e.bus.request(S.operation.deliver,{executionAttemptId:r,runtimeIncarnationId:a,operationId:c,operationKind:`runtime-probe`,runtimeGeneration:o},{timeout:t})).receipt}catch{return await l(),null}if(u!==`completed`&&u!==`duplicate`)return await l(),null;let d=await e.authority.completeOperation({executionAttemptId:r,operationId:c,runtimeGeneration:o});if(d.kind!==`completed`&&d.kind!==`duplicate`)return null;let f=await e.authority.markRuntimeReady({executionAttemptId:r,executionId:i,runtimeGeneration:o,readyAt:new Date().toISOString()});return f.kind!==`ready`&&f.kind!==`duplicate`?null:{kind:f.kind,acceptedAt:f.acceptedAt}}async function xi(e,t){try{await e.authority.completeOperation(t)}catch{}}function Si(e){return{decision:`refused`,runtimeGeneration:0,refusalReason:e}}function Ci(e,t,n){n(vi(e,{bus:e,authority:t})),n(gi(e,{bus:e,authority:t}))}function wi(e,t){let n=new AbortController,r=e.on(S.bootstrap.awaitStart,async e=>{let r=o(e);if(r===null)throw Error(`Bootstrap start requires an authenticated workflow-execution-attempt peer`);let{executionAttemptId:i}=x[`bootstrap.awaitStart`].request.parse(e.payload);if(i!==r.executionAttemptId)throw Error(`Bootstrap start executionAttemptId does not match authenticated peer identity`);let a=e.signal?AbortSignal.any([e.signal,n.signal]):n.signal;e.setResult(await t.awaitBootstrapStart({executionAttemptId:i,executionId:r.executionId},{signal:a,deadline:e.deadline??Date.now()+31e3}))});return()=>{n.signal.aborted||(n.abort(Error(`Bootstrap start handler shut down`)),r())}}function Ti(e){return e.on(g.finalizeDelegateResult,async t=>{let n=t.payload;Ei(t,n.executionId);let{execution:r}=await e.request(h.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(h.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`);Di(i.definitionSnapshot,n.nodeId,n.nodeType,n.finalizerId);let{subjects:a}=pt(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 Ei(e,t){if(!m(e,t))throw Error(`delegate result finalization requires its authenticated workflow-execution-attempt peer`)}function Di(e,t,n,r){let i=!1;if(vt(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`)}async function Oi(e,n,r){let[{execution:i},{runContext:a}]=await Promise.all([e.bus.request(h.getExecution,{executionId:n}),e.bus.request(h.getRunContext,{executionId:n})]);if(!i)throw Error(`Authority execution not found: ${n}`);if(a?.executionId!==n||a.workflowId!==i.workflowId)throw Error(`authority technical failure run context identity mismatch`);if(a.terminalAuthority!==`authority`)throw Error(`authority technical failure requires terminalAuthority=authority`);if(i.status===`failed`||i.status===`cancelled`)return{accepted:!0,status:i.status};if(i.status!==`running`)throw Error(`Authority technical failure conflicts with execution status: ${i.status}`);await t(e,i,n,`${r.stage}: ${r.message}`);let o=await e.bus.request(h.getExecution,{executionId:n});if(o.execution?.status!==`failed`&&o.execution?.status!==`cancelled`)throw Error(`Authority technical failure did not settle as failed or cancelled`);return{accepted:!0,status:o.execution.status}}async function ki(e,t,n){let[{execution:r},{runContext:i}]=await Promise.all([e.bus.request(h.getExecution,{executionId:t}),e.bus.request(h.getRunContext,{executionId:t})]);if(!r)throw Error(`Authority execution not found: ${t}`);if(i?.executionId!==t||i.workflowId!==r.workflowId)throw Error(`authority cancellation run context identity mismatch`);if(i.terminalAuthority!==`authority`)throw Error(`authority cancellation requires terminalAuthority=authority`);if(r.status===`cancelled`)return{accepted:!0,status:`cancelled`};if(r.status!==`running`)throw Error(`Authority cancellation conflicts with execution status: ${r.status}`);if(await _(e,t,n.reason),(await e.bus.request(h.getExecution,{executionId:t})).execution?.status!==`cancelled`)throw Error(`Authority cancellation did not settle as cancelled`);return{accepted:!0,status:`cancelled`}}var Ai=class extends yt{workflowRunner;executionAttemptAuthority;static storage={drizzle:Ar};config;stopBootstrapWaits;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;materializationSpecResolvers=new Set;constructor(e,t,n,r){super(e),this.workflowRunner=n,this.executionAttemptAuthority=r,this.config={...He,...t},this.gateTimeoutScheduler=new Jr(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}=mt(e);this.bus.registerNamespace(t);let r={finalizerId:e,finalizeSubject:n.finalize};this.successFinalizers.set(e,r);try{await d(this.buildFinalizerDeps())}catch(t){throw this.successFinalizers.get(e)===r&&this.successFinalizers.delete(e),t}let i=!1;return()=>{i||(i=!0,this.successFinalizers.get(e)===r&&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(h.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 f({activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps()},t)}finally{l&&this.activeExecutions.delete(e),s?.()}let d=await this.bus.request(h.getExecution,{executionId:e});if(!d.execution||!u(d.execution.status,t.status))throw Error(`Authority runner result did not settle compatibly with ${t.status}`);return{accepted:!0,status:d.execution.status}}acceptAuthorityTechnicalFailure=(e,t)=>Oi(this.buildFinalizerDeps(),e,t);acceptAuthorityCancellation=(e,t)=>ki(this.buildFinalizerDeps(),e,t);async resolveAuthorityRunnerReplay(e,t){if(e.status===`finalizing`){if(t.status!==`completed`)throw Error(`authority runner result conflicts with terminal execution`);await d(this.buildFinalizerDeps());let n=await this.bus.request(h.getExecution,{executionId:e.id});if(!n.execution)throw Error(`Authority runner success finalization execution is missing`);if(!u(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(!u(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(h.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(h.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(Ee(this.bus,(e,t)=>{let n=this.activeExecutions.get(e);n!==void 0&&(n.workflow=t)})),this.addCleanup(Ti(this.bus)),this.executionAttemptAuthority!==void 0&&(this.stopBootstrapWaits=wi(this.bus,this.executionAttemptAuthority),this.addCleanup(this.stopBootstrapWaits),this.addCleanup(mi(this.bus,{bus:this.bus,authority:this.executionAttemptAuthority,acceptTerminalResult:(e,t)=>this.acceptAuthorityRunnerResult(e,t),acceptTechnicalFailure:this.acceptAuthorityTechnicalFailure,acceptCancellation:this.acceptAuthorityCancellation})),Ci(this.bus,this.executionAttemptAuthority,e=>this.addCleanup(e))),Fr(this.bus).forEach(e=>this.addCleanup(e)),zr(this.bus).forEach(e=>this.addCleanup(e)),await this.rehydratePausedGateTimeouts()}async onDestroy(){this.stopBootstrapWaits?.();let e=this.buildFinalizerDeps();await Promise.allSettled([...this.activeExecutions.keys()].map(async t=>{await p(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(){let e=this.executionAttemptAuthority;return{bus:this.bus,activeExecutions:this.activeExecutions,shellAbortControllers:this.shellAbortControllers,activeRunnerSteps:this.activeRunnerSteps,cancelTimeoutMs:this.config.cancelTimeoutMs,requestAttemptCancellation:e===void 0?void 0:(t,n)=>e.requestCancellation({executionId:t,reason:n}),notifyAttemptCancellation:(e,t)=>this.notifyAttemptCancellation(e,t),successFinalizers:this.successFinalizers,resolveSuccessFinalizerId:e=>this.activeExecutions.get(e)?.workflow.successFinalizerId,durableLifecycleTransitions:this.durableLifecycleTransitions,lifecyclePublications:this.lifecyclePublications,publishingLifecycleExecutions:this.publishingLifecycleExecutions}}async notifyAttemptCancellation(e,t){this.workflowAbortControllers.get(e)?.abort(t??rt),await this.bus.emit(ft(`workflow.${e}.cancel`),{executionId:e,reason:t}).catch(t=>{console.error(`[WorkflowExecutor] Failed to emit workflow cancel for ${e}:`,t)})}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(nt.get,{sessionId:e});if(t===null)throw Error(`[WorkflowExecutor] Parent session not found: ${e}`);return t.targetWorkingDirectory??this.config.platformDefaults.cwd}resolveEphemeralPlatformFields(){return Le(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=>Qr(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(g.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(g.start,async e=>{let{workflowId:t,input:n,config:r,parentSessionId:i,triggerPayload:a,artifactRef:o,scope:s}=e.payload;try{let c=await pe(this.buildStartDeps(),t,{input:Zr(n),config:Yr(r)??{},parentSessionId:i,triggerPayload:a,artifactRef:o,scopeOverride:s});e.setResult({executionId:c})}catch(e){if(e instanceof C)throw e;let t=e instanceof Error?e.message:String(e);throw Error(`Failed to start workflow: ${t}`)}}),this.registerHandler(g.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 Hr(this.buildStartDeps(),{executionId:t,mode:n,input:Zr(r),config:Yr(i),parentSessionId:a,triggerPayload:o,artifactRef:s,scopeOverride:c,reason:l});e.setResult({executionId:u})}catch(e){if(e instanceof C)throw e;let t=e instanceof Error?e.message:String(e);throw Error(`Failed to rerun workflow: ${t}`)}}),this.registerHandler(g.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 Ae(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(g.cancel,async e=>{let{executionId:t,reason:n}=e.payload,r=await p(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:r})}),this.registerGateTimeoutHandlers(),this.addCleanup(this.bus.on(g.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(g.gate.suspended,e=>{this.gateTimeoutScheduler.schedule(e.payload)})),this.addCleanup(this.bus.on(g.gate.resolved,e=>{this.gateTimeoutScheduler.clear(e.payload.executionId,e.payload.stepId,e.payload.frameId)}))}async rehydratePausedGateTimeouts(){let{gates:e}=await this.bus.request(h.listPausedGateTimeouts,{});for(let t of e)this.gateTimeoutScheduler.schedule(ri(t))}async runExecution(e){let n=this.activeExecutions.get(e);if(!n)return;let r=new AbortController;this.workflowAbortControllers.set(e,r);try{let i;try{let t=await le({definition:n.workflow,execution:n.execution,runContext:n.runContext,bus:this.bus}),a=new Se(e,n.workflow.id,n.workflow,n.execution,n.runtimeHandlers,this.bus,r.signal,void 0,t,{context:this.resolveEphemeralPlatformFields(),env:n.runContext.env},{runtimeLoopGates:n.runtimeLoopGates});Ne(n.workflow,n.runtimeLoopGates);let o=a.buildExpressionContext();i=await ye(n.workflow.root,a,o)}catch(i){if(r.signal.aborted||n.execution.status===`cancelled`){await _(this.buildFinalizerDeps(),e,rt);return}let a=i instanceof Error?i.message:String(i);await t(this.buildFinalizerDeps(),n.execution,e,a);return}let a=this.buildFinalizerDeps();i.status===`cancelled`||r.signal.aborted||n.execution.status===`cancelled`?await _(a,e,rt):i.status===`failed`?await t(a,n.execution,e,i.error):i.status===`paused`?(n.execution.status=`paused`,await this.bus.request(h.setExecution,{execution:n.execution}),this.activeExecutions.delete(e)):await xe(a,n.execution,e,n.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(h.getExecution,{executionId:t});if(!$r(o))return!1;let s=await ii(this.bus,{executionId:t,nodeId:n,frameId:r});if(s===null||!Oe(n,s.schema,i).valid)return!1;let{runContext:c}=await this.bus.request(h.getRunContext,{executionId:t});if(c===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${t}`);await ni(this.bus,c);let{accepted:l}=await this.bus.request(h.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 ti(this.buildFinalizerDeps(),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(h.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(h.get,{id:t.workflowId})).workflow??(()=>{throw Error(`[WorkflowExecutor] Workflow definition not found for paused execution: ${e}`)})();await ni(this.bus,t);let a=r(t,n,{resume:!0}),o=he(this.buildStartDeps(),a);return i(this.buildFinalizerDeps(),e,async()=>{let{execution:r}=await this.bus.request(h.getExecution,{executionId:e});if(r===null)throw Error(`[WorkflowExecutor] Execution not found for paused execution: ${e}`);if(r.status!==`paused`)return!1;await this.bus.request(h.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=_e(this.buildStartDeps(),a,o).finally(()=>this.resumeDispatches.delete(e));return this.executionTasks.set(e,i),!0})}};const Q=`[WorkflowTriggerReconciler]`;function ji(e){return e.map(Mi)}function Mi(e){let t=ot.parse(e);return{binding:t,matches:Ge(t),subscription:void 0}}function Ni(e,t,n){let r=e.triggers??[];try{return n===void 0?ji(r):r.map(e=>n.has(e.kind)?Mi(e):void 0)}catch(i){if(t){console.error(`${Q} 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 Mi(t)}catch(t){console.error(`${Q} leaving invalid trigger ${r} of workflow "${e.id}" inactive`,t);return}})}}function Pi(e,t){return e.scope.type!==`global`||t.kind!==Ze}async function Fi(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&&Pi(e,s.binding)||(r.delete(i),await $(a.subscription))}}async function $(e){if(e!==void 0)try{await e.detach()}catch(t){console.error(`${Q} detach failed for '${e.bindingKey}':`,t)}}var Ii=class{bus;resolveRuntime;consumers=new Map;cleanupFns=[];initialized=!1;initialization;lane=new Je;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(w.definition.created,e),this.bus.on(w.definition.updated,e),this.bus.on(w.definition.deleted,e),this.bus.on(Xe.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(`${Q} ${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(h.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(h.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=Ni(e,(this.consumers.get(e.id)?.size??0)>0,n);if(r===void 0)return;let i=this.consumers.get(e.id);if(await Fi(e,r,n,i),i?.size===0&&this.consumers.delete(e.id),!r.some(t=>t!==void 0&&Pi(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(`${Q} 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&&Pi(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(`${Q} keeping last-good trigger ${n} of workflow "${t}": binding '${r.binding.kind}' could not be activated`,e);return}console.warn(`${Q} 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(`${Q} filter evaluation failed for ${r}:`,e);return}if(a)try{await this.bus.request(w.start,{workflowId:e,triggerPayload:We(i.payload)})}catch(t){console.error(`${Q} 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)})}};const Li=1e3;function Ri(e){if(e===null)return{status:`refused`,reason:`not-found`};if(e.settled)return{status:`refused`,reason:`resolved`};if(!e.active)return{status:`refused`,reason:`fenced`};if(e.allocationTerminated)return{status:`refused`,reason:`allocation-terminated`};if(e.operationStartGate===`closed`)return{status:`refused`,reason:`gate-closed`};let t=e.bootstrapDeadlineAt===null?NaN:Date.parse(e.bootstrapDeadlineAt);return!Number.isFinite(t)||t<=Date.now()?{status:`refused`,reason:`bootstrap-expired`}:{status:e.allocated?`permitted`:`pending`}}function zi(e,t){return new Promise((n,r)=>{let i=()=>{t.removeEventListener(`abort`,i),r(t.reason)};t.addEventListener(`abort`,i,{once:!0}),t.aborted&&i(),e.then(n,r).finally(()=>t.removeEventListener(`abort`,i))})}function Bi(e,t){return new Promise((n,r)=>{let i=()=>{clearTimeout(o),t.removeEventListener(`abort`,a),n()},a=()=>{clearTimeout(o),t.removeEventListener(`abort`,a),r(t.reason)},o=setTimeout(i,e);t.addEventListener(`abort`,a,{once:!0}),t.aborted&&a()})}function Vi(e,t){return setTimeout(()=>e.abort(Error(`Bootstrap start observation timed out`)),Math.max(0,t-Date.now()))}async function Hi(e,t,n){if(n.signal.throwIfAborted(),!Number.isFinite(n.deadline))throw Error(`Bootstrap start request requires a finite deadline`);let r=Math.min(Date.now()+3e4,n.deadline-Li),i=new AbortController,a=AbortSignal.any([n.signal,i.signal]),o=Math.min(n.deadline,r+Li),s=Vi(i,o);try{for(;;){a.throwIfAborted();let n=await zi(e.readBootstrapStartState(t),a);a.throwIfAborted();let c=Ri(n);if(c.status!==`pending`)return c;let l=Date.parse(n?.bootstrapDeadlineAt??``);clearTimeout(s),s=Vi(i,Math.min(o,l+Li));let u=Math.min(r,l)-Date.now();if(u<=0)return c;await Bi(Math.min(100,u),a)}}finally{clearTimeout(s)}}var Ui=class{repository;bootstrapTimeoutMs;waiters=new Map;constructor(e,t){if(!Number.isSafeInteger(t?.bootstrapTimeoutMs)||t.bootstrapTimeoutMs<=0)throw Error(`ExecutionAttemptAuthority requires an explicit positive safe-integer bootstrapTimeoutMs`);this.repository=e,this.bootstrapTimeoutMs=t.bootstrapTimeoutMs}awaitBootstrapStart(e,t){return Hi(this.repository,e,t)}async createAttempt(e,t){let n=crypto.randomUUID(),r=await this.repository.createAttempt({executionAttemptId:n,executionId:e,instruction:t,bootstrapTimeoutMs:this.bootstrapTimeoutMs});return this.installWaiter(n),r}async ensureAttempt(e){let t=qe(e);return this.repository.ensureAttempt({...t,executionAttemptId:crypto.randomUUID(),bootstrapTimeoutMs:this.bootstrapTimeoutMs})}async readAttemptSettlement(e){return this.repository.readAttemptSettlement(Ke(e))}async getInstruction(e){return this.repository.getInstruction(e)}async requestCancellation(e){return this.repository.requestCancellation({...e})}async readCancellation(e){return this.repository.readCancellation(e)}async reportOperation(e){return this.repository.reportOperation(e)}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 completeProviderOperation(e){return this.repository.completeProviderOperation(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 registerRuntime(e){return this.repository.registerRuntime(e)}async admitOperation(e){return this.repository.admitOperation(e)}async completeOperation(e){return this.repository.completeOperation(e)}async markRuntimeReady(e){return this.repository.markRuntimeReady(e)}async getAttemptControlState(e){return this.repository.getAttemptControlState(e)}async getActiveAttempt(e,t){return this.repository.getActiveAttempt(e,t)}canonicalizeOutcome(e){return this.repository.canonicalizeOutcome(e)}decodeOutcome(e){return this.repository.decodeOutcome(e)}async commitOutcome(e,t,n,r){let i=await this.repository.commitOutcome({executionAttemptId:e,executionId:t,result:n,...r===void 0?{}:{runtimeFence:r}});return(i.kind===`conflict`||i.kind===`fenced`)&&this.settleWaiterInternal(e,i),i}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 listOpenProviderOperations(e){return this.requireRecovery(`listOpenProviderOperations`).listOpenProviderOperations(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,se())}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)}}},Wi=class extends yt{workflowExecutor;triggerReconcilerInstance;attemptAuthority;workspaceRootResolvers=new Set;constructor(e,t){super(e);let n=t?.executionAttemptAuthority;if(!n&&t?.executionAttemptRepository){let e=t.executionAttemptBootstrapTimeoutMs;if(e===void 0)throw Error(`An ExecutionAttemptRepository requires executionAttemptBootstrapTimeoutMs`);n=new Ui(t.executionAttemptRepository,{bootstrapTimeoutMs:e})}this.attemptAuthority=n,this.workflowExecutor=new Ai(e,t?.executorConfig,t?.workflowRunner,this.attemptAuthority);for(let e of t?.workflowMaterializationSpecResolvers??[])this.workflowExecutor.registerWorkflowMaterializationSpecResolver(e);let r=t?.automationTriggerBindingRuntime;this.triggerReconcilerInstance=new Ii(e,()=>r?.())}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 Gi=gt(`makaio.workflow-engine`);function Ki(e){return{name:Gi.name,displayName:`Workflow Engine`,version:`0.1.0`,dependencies:[ht(At.name),ht(jt.name,void 0,!0)],critical:!0,namespaces:[ct,ne],storage:{registerHandlers:St(Ar)},create:t=>new Wi(t.bus,{...e,automationTriggerBindingRuntime:()=>t.getService(jt)})}}const qi=Ki();export{pn as _,Ui as a,wi as c,gi as d,li as f,dn as g,fn as h,Wi as i,_i as l,Ar as m,Ki as n,Ii as o,ai as p,qi as r,Ai as s,Gi as t,vi as u};
@@ -1,4 +1,4 @@
1
- import { A as OperationAdmissionDecision, At as AttemptSettlementRead, B as RecordInfrastructureFailureInput, C as ExecutionAttemptRepository, Ct as ProviderOperationOwnershipRecord, D as GetInstructionInput, Dt as RenewProviderOperationClaimInput, E as ExecutionOwnerId, Et as RecordProviderOperationUncertaintyInput, Ft as ReadAttemptSettlementInput, G as ReportOperationInput, H as RecordProvisioningAbsentInput, I as ProvisioningClaimDecision, J as RuntimeReadinessDecision, K as RuntimeOutcomeFence, L as ReadBootstrapStartStateInput, M as OperationReportDecision, Mt as EnsureExecutionAttemptDecision, N as OutcomeCodec, Nt as EnsureExecutionAttemptInput, O as InfrastructureFailureDecision, Ot as TakeOverProviderOperationInput, P as PendingAttemptAbandonmentDecision, R as RecordAllocationInput, Tt as ProvisioningAbsenceDecision, U as RecoverableAttemptRecord, V as RecordProvisionerIncarnationLostInput, W as RegisterRuntimeInput, Y as RuntimeRegistrationDecision, a as AllocationRefEvolutionDecision, b as ExecutionAttemptOutcomeDecision, bt as ProviderOperationCompletionDecision, dt as HandoffProviderOperationInput, f as CompleteOperationInput, h as DurableOutcome, ht as OpenProviderOperationRecord, i as AllocationRefEvolution, j as OperationCompletionDecision, k as MarkRuntimeReadyInput, mt as ListOpenProviderOperationsInput, n as AdmitOperationInput, o as AllocationTerminationDecision, p as DiscoveredAllocationDecision, r as AllocationRecordingDecision, s as AttemptControlState, u as BeginProvisioningInput, ut as CompleteProviderOperationInput, wt as ProvisionerIncarnationLossDecision, x as ExecutionAttemptRecord, xt as ProviderOperationMutationDecision, yt as ProviderOperationClaimDecision, z as RecordAllocationTerminatedInput } from "./execution-attempt-repository-CF3cWsPo.mjs";
1
+ import { A as MarkRuntimeReadyInput, At as RecordProviderOperationUncertaintyInput, B as RecordAllocationTerminatedInput, D as ExecutionOwnerId, Dt as ProviderOperationOwnershipRecord, F as PendingAttemptAbandonmentDecision, G as RegisterRuntimeInput, H as RecordProvisionerIncarnationLostInput, It as EnsureExecutionAttemptDecision, J as RuntimeOutcomeFence, K as ReportOperationInput, L as ProvisioningClaimDecision, Lt as EnsureExecutionAttemptInput, M as OperationCompletionDecision, Mt as TakeOverProviderOperationInput, N as OperationReportDecision, O as GetInstructionInput, Ot as ProvisionerIncarnationLossDecision, P as OutcomeCodec, Pt as AttemptSettlementRead, R as ReadBootstrapStartStateInput, S as ExecutionAttemptRecord, St as ProviderOperationCompletionDecision, Tt as ProviderOperationMutationDecision, U as RecordProvisioningAbsentInput, V as RecordInfrastructureFailureInput, W as RecoverableAttemptRecord, X as RuntimeReadinessDecision, Z as RuntimeRegistrationDecision, _t as OpenProviderOperationRecord, a as AllocationRefEvolutionDecision, f as CompleteOperationInput, ft as CompleteProviderOperationInput, gt as ListOpenProviderOperationsInput, h as DurableOutcome, i as AllocationRefEvolution, j as OperationAdmissionDecision, jt as RenewProviderOperationClaimInput, k as InfrastructureFailureDecision, kt as ProvisioningAbsenceDecision, n as AdmitOperationInput, o as AllocationTerminationDecision, p as DiscoveredAllocationDecision, pt as HandoffProviderOperationInput, q as RequestExecutionCancellationInput, r as AllocationRecordingDecision, s as AttemptControlState, u as BeginProvisioningInput, v as ExecutionAttemptCancellationIntent, w as ExecutionAttemptRepository, x as ExecutionAttemptOutcomeDecision, xt as ProviderOperationClaimDecision, z as RecordAllocationInput, zt as ReadAttemptSettlementInput } from "./execution-attempt-repository-CJVlPFMM.mjs";
2
2
  import { z } from "zod";
3
3
  import { IMakaioBus } from "@makaio/framework/bus";
4
4
  import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
@@ -186,6 +186,18 @@ declare class ExecutionAttemptAuthority<TOutcome> implements BootstrapStartAutho
186
186
  * @returns The stored assignment, or null for an owner mismatch or missing attempt.
187
187
  */
188
188
  getInstruction(input: GetInstructionInput): Promise<ExecutionAttemptInstruction | null>;
189
+ /**
190
+ * Commit cancellation intent before any best-effort control notification.
191
+ * @param input - Owner of existing attempts and optional cancellation reason.
192
+ * @returns Completion of the durable cancellation request write.
193
+ */
194
+ requestCancellation(input: RequestExecutionCancellationInput): Promise<void>;
195
+ /**
196
+ * Read cancellation intent for a controller adopting or retaining an allocation.
197
+ * @param executionAttemptId - Exact attempt whose control is held.
198
+ * @returns Durable request, which is not confirmation that cancellation completed.
199
+ */
200
+ readCancellation(executionAttemptId: string): Promise<ExecutionAttemptCancellationIntent | null>;
189
201
  /**
190
202
  * Accept successful Preparation without settling the attempt's outcome waiter.
191
203
  * @param input - Preparation result, operation correlation and trusted owner identity.
@@ -752,18 +764,18 @@ declare const WorkflowAttemptOutcomeSchema: z.ZodUnion<readonly [z.ZodDiscrimina
752
764
  relations: z.ZodArray<z.ZodObject<{
753
765
  type: z.ZodString;
754
766
  target: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
755
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
767
+ refClass: z.ZodLiteral<"artifact">;
756
768
  kind: z.ZodString;
757
769
  id: z.ZodString;
758
770
  revision: z.ZodString;
759
- }, z.core.$strip>, z.ZodObject<{
771
+ }, z.core.$strict>, z.ZodObject<{
760
772
  refClass: z.ZodDefault<z.ZodLiteral<"local">>;
761
773
  artifact: z.ZodObject<{
762
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
774
+ refClass: z.ZodLiteral<"artifact">;
763
775
  kind: z.ZodString;
764
776
  id: z.ZodString;
765
777
  revision: z.ZodString;
766
- }, z.core.$strip>;
778
+ }, z.core.$strict>;
767
779
  localId: z.ZodString;
768
780
  }, z.core.$strip>, z.ZodObject<{
769
781
  refClass: z.ZodDefault<z.ZodLiteral<"evidence">>;
@@ -777,6 +789,50 @@ declare const WorkflowAttemptOutcomeSchema: z.ZodUnion<readonly [z.ZodDiscrimina
777
789
  id: z.ZodString;
778
790
  }, z.core.$strict>], "refClass">>;
779
791
  }, z.core.$strip>>;
792
+ evidence: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
793
+ source: z.ZodObject<{
794
+ kind: z.ZodLiteral<"git-file">;
795
+ repository: z.ZodString;
796
+ path: z.ZodString;
797
+ commit: z.ZodString;
798
+ }, z.core.$strict>;
799
+ location: z.ZodUnion<readonly [z.ZodObject<{
800
+ kind: z.ZodLiteral<"whole-source">;
801
+ }, z.core.$strict>, z.ZodObject<{
802
+ kind: z.ZodLiteral<"lines">;
803
+ startLine: z.ZodNumber;
804
+ lineCount: z.ZodNumber;
805
+ }, z.core.$strict>]>;
806
+ excerpt: z.ZodOptional<z.ZodString>;
807
+ }, z.core.$strict>, z.ZodObject<{
808
+ source: z.ZodObject<{
809
+ kind: z.ZodLiteral<"confluence-page">;
810
+ site: z.ZodString;
811
+ pageId: z.ZodString;
812
+ version: z.ZodNumber;
813
+ }, z.core.$strict>;
814
+ location: z.ZodObject<{
815
+ kind: z.ZodLiteral<"whole-source">;
816
+ }, z.core.$strict>;
817
+ excerpt: z.ZodOptional<z.ZodString>;
818
+ }, z.core.$strict>, z.ZodObject<{
819
+ source: z.ZodObject<{
820
+ kind: z.ZodLiteral<"artifact">;
821
+ reference: z.ZodObject<{
822
+ refClass: z.ZodLiteral<"artifact">;
823
+ kind: z.ZodString;
824
+ id: z.ZodString;
825
+ revision: z.ZodString;
826
+ }, z.core.$strict>;
827
+ }, z.core.$strict>;
828
+ location: z.ZodUnion<readonly [z.ZodObject<{
829
+ kind: z.ZodLiteral<"whole-source">;
830
+ }, z.core.$strict>, z.ZodObject<{
831
+ kind: z.ZodLiteral<"data-path">;
832
+ path: z.ZodString;
833
+ }, z.core.$strict>]>;
834
+ excerpt: z.ZodOptional<z.ZodString>;
835
+ }, z.core.$strict>]>>>;
780
836
  confidence: z.ZodOptional<z.ZodObject<{
781
837
  level: z.ZodEnum<{
782
838
  inferred: "inferred";
@@ -795,18 +851,18 @@ declare const WorkflowAttemptOutcomeSchema: z.ZodUnion<readonly [z.ZodDiscrimina
795
851
  timestamp: z.ZodNumber;
796
852
  detail: z.ZodOptional<z.ZodString>;
797
853
  evidenceRef: z.ZodOptional<z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.ZodObject<{
798
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
854
+ refClass: z.ZodLiteral<"artifact">;
799
855
  kind: z.ZodString;
800
856
  id: z.ZodString;
801
857
  revision: z.ZodString;
802
- }, z.core.$strip>, z.ZodObject<{
858
+ }, z.core.$strict>, z.ZodObject<{
803
859
  refClass: z.ZodDefault<z.ZodLiteral<"local">>;
804
860
  artifact: z.ZodObject<{
805
- refClass: z.ZodDefault<z.ZodLiteral<"artifact">>;
861
+ refClass: z.ZodLiteral<"artifact">;
806
862
  kind: z.ZodString;
807
863
  id: z.ZodString;
808
864
  revision: z.ZodString;
809
- }, z.core.$strip>;
865
+ }, z.core.$strict>;
810
866
  localId: z.ZodString;
811
867
  }, z.core.$strip>, z.ZodObject<{
812
868
  refClass: z.ZodDefault<z.ZodLiteral<"evidence">>;
@@ -1030,6 +1086,12 @@ declare class WorkflowExecutor extends BaseService {
1030
1086
  * @returns Finalizer dependency bundle.
1031
1087
  */
1032
1088
  private buildFinalizerDeps;
1089
+ /**
1090
+ * Deliver best-effort worker control only after owner-authorized intent commits.
1091
+ * @param executionId - Owner whose cancellation request was accepted.
1092
+ * @param reason - Optional cancellation explanation.
1093
+ */
1094
+ private notifyAttemptCancellation;
1033
1095
  /**
1034
1096
  * Build a {@link RunnerTaskDeps} bundle for delegating to
1035
1097
  * {@link buildExecutionTask} or {@link buildFileExecutionTask}.
package/dist/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1788909333961",
3
+ "version": "1.0.0-dev-1788936831433",
4
4
  "type": "module"
5
5
  }
@@ -1,4 +1,4 @@
1
- import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-0VbIjfrW.mjs";
1
+ import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-CM3Ejp-n.mjs";
2
2
 
3
3
  //#region packages/rules/src/evaluator.d.ts
4
4
  /**
@@ -1,2 +1,2 @@
1
- import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-0VbIjfrW.mjs";
1
+ import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-CM3Ejp-n.mjs";
2
2
  export { ConditionSchema, ExpressionConditionSchema, FieldConditionSchema, FieldOperatorSchema, JsonObjectSchema, JsonValueSchema, RuleSchema, RuleSetOptionsSchema, ScalarValueSchema };
@@ -0,0 +1,23 @@
1
+ import { z } from "zod";
2
+
3
+ //#region core/contracts/src/worker/runtime-inputs.d.ts
4
+ /** Non-secret realization inputs selected for an allocated Worker's Runtime. */
5
+ declare const WorkerRuntimeInputsSchema: z.ZodObject<{
6
+ workerManifest: z.ZodObject<{
7
+ contributionRefs: z.ZodArray<z.ZodObject<{
8
+ packageName: z.ZodString;
9
+ version: z.ZodString;
10
+ entrypoint: z.ZodString;
11
+ integrity: z.ZodString;
12
+ }, z.core.$strict>>;
13
+ }, z.core.$strict>;
14
+ suspensionStrategy: z.ZodEnum<{
15
+ "wait-in-process": "wait-in-process";
16
+ "exit-and-redispatch": "exit-and-redispatch";
17
+ "exit-and-resume": "exit-and-resume";
18
+ }>;
19
+ }, z.core.$strict>;
20
+ /** Selected Runtime composition and suspension behavior, separate from the owner's instruction. */
21
+ type WorkerRuntimeInputs = z.infer<typeof WorkerRuntimeInputsSchema>;
22
+ //#endregion
23
+ export { WorkerRuntimeInputsSchema as n, WorkerRuntimeInputs as t };
@@ -1,3 +1,3 @@
1
- import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../../types-CUCFeisO.mjs";
2
- import { t as PiscinaCodeExecutionProvider } from "../../index-OP6Aw5jN.mjs";
1
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../../types-BZnJ_4e2.mjs";
2
+ import { t as PiscinaCodeExecutionProvider } from "../../index-GNRWZONO.mjs";
3
3
  export { CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS, CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, PiscinaCodeExecutionProvider, PiscinaCodeExecutionProviderOptions };
@@ -1 +1 @@
1
- import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../../types-D9GJ7FyQ.mjs";import{t as c}from"../../code-execution-BsiB7ZeZ2.mjs";export{s as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS,r as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES,a as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY,n as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER,e as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES,i as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS,o as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES,t as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES,c as PiscinaCodeExecutionProvider};
1
+ import{a as e,c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"../../types-D9GJ7FyQ.mjs";import{t as c}from"../../code-execution-B9wr0b972.mjs";export{s as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS,r as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES,a as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY,n as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER,e as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES,i as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS,o as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES,t as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES,c as PiscinaCodeExecutionProvider};
@@ -1,2 +1,2 @@
1
- import { a as FilesystemDescriptorDiscovery, c as enumerateDescriptorPaths, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-C0Nj5EVZ.mjs";
1
+ import { a as FilesystemDescriptorDiscovery, c as enumerateDescriptorPaths, i as ExtensionEntrypointModule, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-CZkaPQBo.mjs";
2
2
  export { DiscoveredExtension, ExplicitDescriptorDiscovery, ExtensionDiscovery, ExtensionEntrypointModule, FilesystemDescriptorDiscovery, FilesystemDescriptorDiscoveryOptions, MergedDescriptorDiscovery, enumerateDescriptorPaths };
@@ -1,2 +1,2 @@
1
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-un9Md47Z.mjs";
1
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, o as isWithinDirectory, r as entrypointStem } from "../load-extensions-DM1PgW4a.mjs";
2
2
  export { entrypointStem, isCliContributionLike, isMakaioExtensionLike, isWithinDirectory, resolveConventionEntrypoint };
@@ -1,10 +1,10 @@
1
1
  import { RuntimeSubjects } from "./bus/runtime/namespace.mjs";
2
2
  import { NodeClientBinaryStrategyDependencyOptions, createNodeClientBinaryStrategyDependencies } from "./client-binary-strategy-dependencies.mjs";
3
- import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../types-CUCFeisO.mjs";
4
- import { t as PiscinaCodeExecutionProvider } from "../index-OP6Aw5jN.mjs";
5
- import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-C0Nj5EVZ.mjs";
6
- import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-un9Md47Z.mjs";
7
- import { $ as AttemptOutcomeDeliveryError, $t as HostCapabilityDeclaration, A as HeadlessWorkerExecutor, At as ServerTransportProvider, B as WorkloadInvocationPreparation, D as HeadlessWorkerBootstrapCredentials, Dt as BootMakaioRuntimeOptions, E as HeadlessWorkerBootstrap, Et as BootCoordinatorSetupContext, G as IsolatedWorkflowRuntimeContext, H as runWorkloadInvocation, I as runHeadlessWorkflowWorker, J as createIsolatedWorkflowRuntime, Jt as resolveWorkflowWorkerEntry, K as WorkflowRuntimeAuthorityConnector, Kt as WorkflowWorkerEntryMode, L as InstalledWorkloadAdapter, M as HeadlessWorkerPostCommitObserver, Mt as UpstreamTelemetryBootOptions, N as HeadlessWorkflowWorkerDeps, Nt as WorkflowRunnerBootOptions, O as HeadlessWorkerBusConnector, Ot as CoreBootOptions, P as HeadlessWorkflowWorkerResult, Qt as initializeNodeDatabase, R as RunWorkloadInvocationOptions, St as IWorkflowRunner, T as LocalGitSourceOptions, Tt as WorkflowRunResult, U as CreateIsolatedWorkflowRuntimeOptions, V as WorkloadInvocationResult, W as IsolatedWorkflowRuntime, X as InProcessWorkflowRunnerOptions, Xt as InitializeNodeDatabaseOptions, Y as InProcessWorkflowRunner, Yt as DatabaseBootOptions, Zt as InitializeNodeDatabaseResult, _ as admitWorkflowRunOperation, _n as PrepareAdapterRuntimeInput, a as bootstrapWorkerRuntime, an as NodeFrameworkModuleResolver, b as registerWorkerRuntime, bn as prepareAdapterRuntime, c as DeliverableOperationKind, cn as HttpRouteGraphBuilder, d as OperationDeliveryEndpointIdentity, dn as HttpRouteContribution, en as normalizeNodeHostCapabilities, f as OperationDeliveryHandler, fn as HonoRouteGraph, g as RuntimeRegistrationRefusedError, gn as ActivatedAdapterRuntimeIdentity, h as RegisterWorkerRuntimeOptions, hn as ActivateAdapterRuntimeIdentityInput, i as StartedWorkerRuntime, in as FrameworkModuleResolver, j as HeadlessWorkerMaterializer, jt as TransportReadyInfo, k as HeadlessWorkerContributionLoader, kt as MakaioRuntime, l as OperationAdmissionRefusedError, ln as createHttpRouteGraphBuilder, m as RegisterAndAdmitWorkflowRunOptions, mn as createHonoRouteGraph, n as BootstrapStartRefusedError, nn as ShutdownStep, o as AdmitWorkflowRunOperationOptions, on as NoopFrameworkModuleResolver, p as OperationDeliveryHandlers, pn as HonoRouteGraphOptions, q as WorkflowRuntimeContributionLoader, qt as WorkflowWorkerEntryResolverOptions, r as BootstrapWorkerRuntimeOptions, rn as BridgeBrowserOptions, rt as OutcomeDeliveryError, s as AdmittedWorkflowRun, sn as resolveFrameworkSpecifier, st as submitAttemptOutcomeWithAck, t as BootstrapRuntimeConnection, tn as selectFrameworkCorePackages, tt as AuthorityRequestDeliveryError, u as OperationDeliveryEndpoint, un as HttpContributionPhase, v as installOperationDeliveryEndpoint, vn as PreparedAdapterRuntime, w as createLocalGitWorkspacePreparation, wt as ThinWorkflowPiscinaRunnerOptions, xt as ThinWorkflowPiscinaRunner, y as registerAndAdmitWorkflowRun, yn as activateAdapterRuntimeIdentity, z as WorkloadControlBinding } from "../index-BQv9mUzn.mjs";
3
+ import { a as CODE_EXECUTION_DEFAULT_MAX_PROGRAM_FILES, c as CODE_EXECUTION_DEFAULT_MAX_SOURCE_BYTES, d as PiscinaCodeExecutionProviderOptions, i as CODE_EXECUTION_DEFAULT_MAX_INVOCATIONS_PER_WORKER, n as CODE_EXECUTION_DEFAULT_MAX_ARGUMENT_BYTES, o as CODE_EXECUTION_DEFAULT_MAX_QUEUED_INVOCATIONS, r as CODE_EXECUTION_DEFAULT_MAX_CONCURRENCY, s as CODE_EXECUTION_DEFAULT_MAX_RESULT_BYTES, t as CODE_EXECUTION_DEFAULT_IDLE_TIMEOUT_MS } from "../types-BZnJ_4e2.mjs";
4
+ import { t as PiscinaCodeExecutionProvider } from "../index-GNRWZONO.mjs";
5
+ import { a as FilesystemDescriptorDiscovery, n as ExplicitDescriptorDiscovery, o as FilesystemDescriptorDiscoveryOptions, r as ExtensionDiscovery, s as MergedDescriptorDiscovery, t as DiscoveredExtension } from "../extension-discovery-CZkaPQBo.mjs";
6
+ import { a as isMakaioExtensionLike, c as resolveConventionEntrypoint, i as isCliContributionLike, n as LoadExtensionsOptions, o as isWithinDirectory, r as entrypointStem, s as loadExtensions, t as DescriptorSourcePackageGroup } from "../load-extensions-DM1PgW4a.mjs";
7
+ import { $t as InitializeNodeDatabaseOptions, A as HeadlessWorkerExecutor, At as BootMakaioRuntimeOptions, B as WorkloadInvocationPreparation, Cn as prepareAdapterRuntime, D as HeadlessWorkerBootstrapCredentials, Dt as ThinWorkflowPiscinaRunnerOptions, E as HeadlessWorkerBootstrap, Ft as UpstreamTelemetryBootOptions, G as IsolatedWorkflowRuntimeContext, H as runWorkloadInvocation, I as runHeadlessWorkflowWorker, It as WorkflowRunnerBootOptions, J as createIsolatedWorkflowRuntime, K as WorkflowRuntimeAuthorityConnector, L as InstalledWorkloadAdapter, M as HeadlessWorkerPostCommitObserver, Mt as MakaioRuntime, N as HeadlessWorkflowWorkerDeps, Nt as ServerTransportProvider, O as HeadlessWorkerBusConnector, Ot as WorkflowRunResult, P as HeadlessWorkflowWorkerResult, Pt as TransportReadyInfo, Qt as DatabaseBootOptions, R as RunWorkloadInvocationOptions, Sn as activateAdapterRuntimeIdentity, T as LocalGitSourceOptions, Tt as IWorkflowRunner, U as CreateIsolatedWorkflowRuntimeOptions, V as WorkloadInvocationResult, W as IsolatedWorkflowRuntime, X as InProcessWorkflowRunnerOptions, Xt as WorkflowWorkerEntryResolverOptions, Y as InProcessWorkflowRunner, Yt as WorkflowWorkerEntryMode, Zt as resolveWorkflowWorkerEntry, _ as admitWorkflowRunOperation, _n as createHonoRouteGraph, a as bootstrapWorkerRuntime, an as ShutdownStep, b as registerWorkerRuntime, bn as PrepareAdapterRuntimeInput, c as DeliverableOperationKind, cn as NodeFrameworkModuleResolver, d as OperationDeliveryEndpointIdentity, dn as HttpRouteGraphBuilder, en as InitializeNodeDatabaseResult, f as OperationDeliveryHandler, fn as createHttpRouteGraphBuilder, g as RuntimeRegistrationRefusedError, gn as HonoRouteGraphOptions, h as RegisterWorkerRuntimeOptions, hn as HonoRouteGraph, i as StartedWorkerRuntime, in as selectFrameworkCorePackages, it as AuthorityRequestDeliveryError, j as HeadlessWorkerMaterializer, jt as CoreBootOptions, k as HeadlessWorkerContributionLoader, kt as BootCoordinatorSetupContext, l as OperationAdmissionRefusedError, ln as NoopFrameworkModuleResolver, m as RegisterAndAdmitWorkflowRunOptions, mn as HttpRouteContribution, n as BootstrapStartRefusedError, nn as HostCapabilityDeclaration, nt as AttemptOutcomeDeliveryError, o as AdmitWorkflowRunOperationOptions, on as BridgeBrowserOptions, ot as OutcomeDeliveryError, p as OperationDeliveryHandlers, pn as HttpContributionPhase, q as WorkflowRuntimeContributionLoader, r as BootstrapWorkerRuntimeOptions, rn as normalizeNodeHostCapabilities, s as AdmittedWorkflowRun, sn as FrameworkModuleResolver, t as BootstrapRuntimeConnection, tn as initializeNodeDatabase, u as OperationDeliveryEndpoint, un as resolveFrameworkSpecifier, ut as submitAttemptOutcomeWithAck, v as installOperationDeliveryEndpoint, vn as ActivateAdapterRuntimeIdentityInput, w as createLocalGitWorkspacePreparation, wt as ThinWorkflowPiscinaRunner, xn as PreparedAdapterRuntime, y as registerAndAdmitWorkflowRun, yn as ActivatedAdapterRuntimeIdentity, z as WorkloadControlBinding } from "../index-SDXlgq07.mjs";
8
8
  import { ConfiguredRuntimeOptions, LoadMakaioConfigOptions, LoadedMakaioConfig, MAKAIO_CONFIG_FILE_ENV, MAKAIO_HOME_ENV, MakaioConfig, ParseMakaioConfigOptions, ParsedMakaioConfig, WorkflowRunnerConfig, buildConfiguredRuntimeOptions, createMakaioConfigDiscovery, defineMakaioConfig, loadMakaioConfig, parseMakaioConfig, resolveMakaioConfigPath, resolveMakaioHome, shouldIncludeExtension } from "./makaio-config.mjs";
9
9
  import { RotateWorkflowExecutionBusSecretParams, captureWorkflowExecutionBusSecretCleanup } from "./workflow-execution-bus-access.mjs";
10
10
  import { z } from "zod";