@makaio/framework 1.0.0-dev-1784889676396 → 1.0.0-dev-1785344643235

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 (473) hide show
  1. package/dist/.makaio-build.json +3 -2
  2. package/dist/{account-identity-CP4DC0DL.mjs → account-identity-DFx8pwKL.mjs} +1 -1
  3. package/dist/{adapter-CYobxqN_.mjs → adapter-D5c5LrPN.mjs} +1 -1
  4. package/dist/adapters/claude/index.d.mts +204 -27
  5. package/dist/adapters/claude/index.mjs +3 -3
  6. package/dist/adapters/config/index.d.mts +2 -2
  7. package/dist/adapters/config/index.mjs +1 -1
  8. package/dist/adapters/index.d.mts +49 -4
  9. package/dist/adapters/index.mjs +3 -3
  10. package/dist/adapters/node.d.mts +1 -1
  11. package/dist/adapters/node.mjs +1 -1
  12. package/dist/{artifact-DCkizHkS.mjs → artifact-DGiXqb11.mjs} +1 -1
  13. package/dist/attempt-record-codec-CqO1_XnE.mjs +1 -0
  14. package/dist/{auth-C3NOWqTU.mjs → auth-DGEdiHF6.mjs} +1 -1
  15. package/dist/authority-state-bootstrap-GPL_tqaT.mjs +1 -0
  16. package/dist/bus/index.mjs +1 -1
  17. package/dist/{canonical-model-EMRYCVjX.mjs → canonical-model-BAytQ4NV.mjs} +1 -1
  18. package/dist/capabilities-BQEp34ir.mjs +1 -0
  19. package/dist/{client-OYk0Ttck.mjs → client-DbS847wW.mjs} +1 -1
  20. package/dist/clients/index.d.mts +5 -3
  21. package/dist/clients/index.mjs +1 -1
  22. package/dist/clients/managed-install.d.mts +1 -1
  23. package/dist/clients/managed-install.mjs +1 -1
  24. package/dist/{compression-CZ_6fYq8.mjs → compression-74fFeBha.mjs} +1 -1
  25. package/dist/{config-namespace-DTA6EQL8.mjs → config-namespace-TVX-hG4I.mjs} +1 -1
  26. package/dist/{context-resolution-B9ANWbG0.d.mts → context-resolution-BQBk4Ish.d.mts} +6 -4
  27. package/dist/contracts/adapter/index.d.mts +2 -2
  28. package/dist/contracts/adapter/index.mjs +1 -1
  29. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  30. package/dist/contracts/artifact/index.d.mts +2 -2
  31. package/dist/contracts/artifact/index.mjs +1 -1
  32. package/dist/contracts/auth/index.d.mts +2 -2
  33. package/dist/contracts/auth/index.mjs +1 -1
  34. package/dist/contracts/canonical-model/index.d.mts +1 -1
  35. package/dist/contracts/canonical-model/index.mjs +1 -1
  36. package/dist/contracts/capabilities/index.d.mts +2 -0
  37. package/dist/contracts/capabilities/index.mjs +1 -0
  38. package/dist/contracts/client/index.d.mts +2 -2
  39. package/dist/contracts/client/index.mjs +1 -1
  40. package/dist/contracts/common/index.d.mts +1 -1
  41. package/dist/contracts/config/index.d.mts +24 -2
  42. package/dist/contracts/config/index.mjs +1 -1
  43. package/dist/contracts/extension/index.d.mts +4 -4
  44. package/dist/contracts/extension/index.mjs +1 -1
  45. package/dist/contracts/facet/index.d.mts +1 -1
  46. package/dist/contracts/facet/index.mjs +1 -1
  47. package/dist/contracts/harness/index.d.mts +1 -1
  48. package/dist/contracts/harness/index.mjs +1 -1
  49. package/dist/contracts/host/index.d.mts +1 -1
  50. package/dist/contracts/host/index.mjs +1 -1
  51. package/dist/contracts/index.d.mts +1682 -9431
  52. package/dist/contracts/index.mjs +1 -1
  53. package/dist/contracts/materialization/index.d.mts +3 -3
  54. package/dist/contracts/materialization/index.mjs +1 -1
  55. package/dist/contracts/model-registry/index.d.mts +1 -1
  56. package/dist/contracts/model-registry/index.mjs +1 -1
  57. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  58. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  59. package/dist/contracts/platform/index.d.mts +1 -1
  60. package/dist/contracts/platform/index.mjs +1 -1
  61. package/dist/contracts/provider/index.d.mts +2 -2
  62. package/dist/contracts/provider/index.mjs +1 -1
  63. package/dist/contracts/session/index.d.mts +2 -2
  64. package/dist/contracts/session/index.mjs +1 -1
  65. package/dist/contracts/shared/index.d.mts +2 -2
  66. package/dist/contracts/shared/index.mjs +1 -1
  67. package/dist/contracts/skill/index.d.mts +1 -1
  68. package/dist/contracts/skill/index.mjs +1 -1
  69. package/dist/contracts/telemetry/index.d.mts +1 -1
  70. package/dist/contracts/telemetry/index.mjs +1 -1
  71. package/dist/contracts/timeout/index.d.mts +1 -1
  72. package/dist/contracts/timeout/index.mjs +1 -1
  73. package/dist/contracts/toast/index.mjs +1 -1
  74. package/dist/contracts/variant/index.d.mts +1 -1
  75. package/dist/contracts/variant/index.mjs +1 -1
  76. package/dist/contracts/worker-node/index.d.mts +2 -0
  77. package/dist/contracts/worker-node/index.mjs +1 -0
  78. package/dist/contracts/workflow/index.d.mts +3 -3
  79. package/dist/contracts/workflow/index.mjs +1 -1
  80. package/dist/{definition-K3m51lgO.mjs → definition-CJfiv8xm.mjs} +1 -1
  81. package/dist/{detached-extension-handle-BsywhHfk.mjs → detached-extension-handle-Ddfquy5_.mjs} +1 -1
  82. package/dist/drizzle/0030_remote-worker-execution.sql +6 -0
  83. package/dist/drizzle/meta/_journal.json +7 -0
  84. package/dist/execution-attempt-repository-DWXKY41_.d.mts +1056 -0
  85. package/dist/execution-target-Cf645pDj.mjs +1 -0
  86. package/dist/{extension-Cgg45Xk1.mjs → extension-DCA4pYrY.mjs} +1 -1
  87. package/dist/extension-hjOPs10e.mjs +1 -0
  88. package/dist/{filesystem-service-Cupz_Z7S.mjs → filesystem-service-DlP2HfDg.mjs} +1 -1
  89. package/dist/framework-packages-C3RWfJDk.mjs +1 -0
  90. package/dist/git/index.mjs +1 -1
  91. package/dist/{globby-DWp7V-P2.mjs → globby-1yCVCk8s.mjs} +1 -1
  92. package/dist/{handlers-cMBmexF4.mjs → handlers-CfnLyLfE.mjs} +1 -1
  93. package/dist/{harness-DflvHAGV.mjs → harness-DpwsFsE7.mjs} +1 -1
  94. package/dist/{index-BhXCCgJV2.d.mts → index-4fE_hUP02.d.mts} +1 -1
  95. package/dist/{index-BMx59xb7.d.mts → index-8gKx-OVP.d.mts} +13 -7
  96. package/dist/index-B0Kf_OWi.d.mts +267 -0
  97. package/dist/{index-DRiTICBU.d.mts → index-BAXkicoQ.d.mts} +1 -1
  98. package/dist/{index-CnXXq6sW.d.mts → index-BC79QrGC.d.mts} +10 -10
  99. package/dist/{index-CvmWRumB.d.mts → index-BQLUVXIB.d.mts} +1024 -888
  100. package/dist/{index-CKO9S6oo.d.mts → index-BXD3kEs_.d.mts} +28 -10
  101. package/dist/{index-DUf47Jn_.d.mts → index-BskPjMet.d.mts} +8 -8
  102. package/dist/{index-CjyfQ_vQ.d.mts → index-CL-0NeQW.d.mts} +8 -5
  103. package/dist/{index-Cw7_69gV.d.mts → index-CRvpVIqA.d.mts} +1 -1
  104. package/dist/{index-7FjcxGlK.d.mts → index-CUvNKYkV.d.mts} +1 -1
  105. package/dist/{index-CtUTCAJ6.d.mts → index-CVaRZoiu.d.mts} +4 -4
  106. package/dist/{index-Cw84_Dqi.d.mts → index-CnMu8BQl.d.mts} +4 -4
  107. package/dist/{index-DaMfTvfz.d.mts → index-DA9g2A5P.d.mts} +1 -1
  108. package/dist/{index-Bi5jFT9S.d.mts → index-DJAmSnuh.d.mts} +12 -12
  109. package/dist/{index-pjATMrvJ.d.mts → index-DkiTJM5p.d.mts} +693 -31
  110. package/dist/{index-jbgHR5J2.d.mts → index-GHASUiem.d.mts} +1 -1
  111. package/dist/{index-BDDbcWNI.d.mts → index-HsTxm-R3.d.mts} +3 -3
  112. package/dist/{index-Bs3CXR232.d.mts → index-I5YG-qrb2.d.mts} +6 -6
  113. package/dist/{index-0Ju2i8gV.d.mts → index-SsBHjUqA.d.mts} +204 -165
  114. package/dist/index-XZyMxxnU.d.mts +1602 -0
  115. package/dist/{index-dkvGHN10.d.mts → index-brqfk9JQ.d.mts} +6 -6
  116. package/dist/{index-D43lQCHs.d.mts → index-q0Tiqems.d.mts} +131 -131
  117. package/dist/index-w_FmghjT.d.mts +7295 -0
  118. package/dist/kernel/cli/index.d.mts +2 -2
  119. package/dist/kernel/cli/index.mjs +1 -1
  120. package/dist/kernel/cli/register.d.mts +1 -1
  121. package/dist/kernel/cli/register.mjs +1 -1
  122. package/dist/kernel/cli/schemas.mjs +1 -1
  123. package/dist/kernel/extension/index.d.mts +1 -1
  124. package/dist/kernel/extension/index.mjs +1 -1
  125. package/dist/kernel/index.d.mts +14 -8
  126. package/dist/kernel/index.mjs +1 -1
  127. package/dist/kernel/namespace/index.d.mts +1 -1
  128. package/dist/kernel/namespace/index.mjs +1 -1
  129. package/dist/kernel/observability/index.d.mts +1 -1
  130. package/dist/kernel/observability/index.mjs +1 -1
  131. package/dist/kernel/providers/index.d.mts +1 -1
  132. package/dist/kernel/providers/index.mjs +1 -1
  133. package/dist/kernel/window/index.d.mts +1 -1
  134. package/dist/kernel/window/index.mjs +1 -1
  135. package/dist/{lib-BeMM738r.mjs → lib-C7-s68uf.mjs} +1 -1
  136. package/dist/{lib-B7TpTzkG.mjs → lib-DErgth_E.mjs} +2 -2
  137. package/dist/{load-extensions-BLdG90Zi.d.mts → load-extensions-BxsDB87B.d.mts} +1 -1
  138. package/dist/{load-extensions-CUmFCcYi.mjs → load-extensions-D0DfjYLC.mjs} +1 -1
  139. package/dist/{materialization-s8eR1eQ4.mjs → materialization-Jd198K3y.mjs} +1 -1
  140. package/dist/mcp-http-server/index.d.mts +305 -79
  141. package/dist/mcp-http-server/index.mjs +4 -4
  142. package/dist/model-BGgVmRnN.mjs +1 -0
  143. package/dist/modes-BheyN7SS.mjs +1 -0
  144. package/dist/{namespace-DwQtzlY-.mjs → namespace-BqxtpNAn.mjs} +1 -1
  145. package/dist/{namespace-BHliaabz.d.mts → namespace-DBm9K23m.d.mts} +6 -6
  146. package/dist/{namespace-zOfq1Uhn.d.mts → namespace-DI4Yx_xu.d.mts} +27 -27
  147. package/dist/namespace-DJfUADSV.mjs +1 -0
  148. package/dist/{namespace-BphMM6S82.d.mts → namespace-DPgxPa8m2.d.mts} +1 -1
  149. package/dist/{namespace-Bd49QmzS.d.mts → namespace-DWCEo-9M.d.mts} +0 -60
  150. package/dist/{namespace-CriPb5wY.d.mts → namespace-jPUGV-b2.d.mts} +42 -42
  151. package/dist/{native-session-supervisor-Bgz-Q1WH.mjs → native-session-supervisor-DRx0MX-d.mjs} +1 -1
  152. package/dist/node/bus-server/index.d.mts +1 -1
  153. package/dist/node/bus-server/index.mjs +1 -1
  154. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  155. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  156. package/dist/node/transports/index.d.mts +81 -9
  157. package/dist/node/transports/index.mjs +2 -2
  158. package/dist/{orchestrator-shared-CY7Tu7kZ.mjs → orchestrator-shared-BxmHCPvx.mjs} +1 -1
  159. package/dist/package-CNUPPcU1.mjs +7 -0
  160. package/dist/package-DWMxGfzK.d.mts +827 -0
  161. package/dist/{package-DKnzOvoR.mjs → package-Dft_RItb.mjs} +1 -1
  162. package/dist/package.json +1 -1
  163. package/dist/{packages-zDnokBpl.mjs → packages-DtEEP0Vt.mjs} +1 -1
  164. package/dist/{profile-BRi6K6am.mjs → profile-BTAI31Nt.mjs} +1 -1
  165. package/dist/{provider-context-DOsjOjiR.mjs → provider-context-Dq53Cgzz.mjs} +1 -1
  166. package/dist/{provider-context-BYkMl--1.mjs → provider-context-PZIQWcqQ.mjs} +1 -1
  167. package/dist/provider-operation-Cxoe2SUr.d.mts +207 -0
  168. package/dist/providers/index.mjs +1 -1
  169. package/dist/{registry-Dw6l7k3e.mjs → registry-wfF2uTty.mjs} +29 -29
  170. package/dist/{resolved-O2XXjTeu.mjs → resolved-DZgqql2Z.mjs} +1 -1
  171. package/dist/rules/index.d.mts +1 -1
  172. package/dist/rules/index.mjs +1 -1
  173. package/dist/rules/schemas.d.mts +1 -1
  174. package/dist/runtime-bun/index.mjs +1 -1
  175. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  176. package/dist/runtime-node/extension-validation.d.mts +1 -1
  177. package/dist/runtime-node/extension-validation.mjs +1 -1
  178. package/dist/runtime-node/index.d.mts +4 -4
  179. package/dist/runtime-node/index.mjs +24 -24
  180. package/dist/runtime-node/makaio-config.d.mts +1 -1
  181. package/dist/runtime-node/makaio-config.mjs +1 -1
  182. package/dist/runtime-node/static/model-registry.yaml +348 -0
  183. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  184. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  185. package/dist/runtime-node/workflow-worker/worker-entry.d.mts +7 -4
  186. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  187. package/dist/{schema-BO9TgmOs.d.mts → schema-Bwr_NrOS.d.mts} +2 -2
  188. package/dist/{schema-BI0aCHvV.mjs → schema-Dd-e89MO.mjs} +1 -1
  189. package/dist/{schemas-B5tMYfhC.d.mts → schemas-C4yUXs4G.d.mts} +4 -4
  190. package/dist/schemas-CRB2O5zo.mjs +1 -0
  191. package/dist/{schemas-Dgj3WaOI.mjs → schemas-Cm09dXL4.mjs} +1 -1
  192. package/dist/{schemas-BJ8VMXhO.mjs → schemas-DaHQzpgm.mjs} +1 -1
  193. package/dist/{schemas-BDC2Nqj1.d.mts → schemas-ENwK6jmV.d.mts} +14 -14
  194. package/dist/{schemas-ChF2z4RB.d.mts → schemas-N6x2z7Lf.d.mts} +0 -45
  195. package/dist/schemas-tDf_WiC8.mjs +1 -0
  196. package/dist/selection-BNwTKEVT.mjs +1 -0
  197. package/dist/service-base/index.d.mts +47 -2
  198. package/dist/service-base/index.mjs +1 -1
  199. package/dist/services/adapter-runtime/index.d.mts +3 -3
  200. package/dist/services/adapter-runtime/index.mjs +1 -1
  201. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  202. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  203. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  204. package/dist/services/adapter-subsystem/index.mjs +1 -1
  205. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  206. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  207. package/dist/services/agent-runtime/index.d.mts +2 -2
  208. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  209. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  210. package/dist/services/capability/index.d.mts +1 -1
  211. package/dist/services/capability/index.mjs +1 -1
  212. package/dist/services/codebase/index.d.mts +2 -2
  213. package/dist/services/codebase/namespace.d.mts +1 -1
  214. package/dist/services/codebase/schemas.d.mts +1 -1
  215. package/dist/services/compression/index.d.mts +2 -2
  216. package/dist/services/compression/namespace.d.mts +1 -1
  217. package/dist/services/compression/schemas.d.mts +1 -1
  218. package/dist/services/context-rules/index.d.mts +7 -7
  219. package/dist/services/context-rules/index.mjs +1 -1
  220. package/dist/services/execution-target/index.d.mts +4 -4
  221. package/dist/services/execution-target/index.mjs +1 -1
  222. package/dist/services/execution-target/namespace.d.mts +1 -1
  223. package/dist/services/execution-target/namespace.mjs +1 -1
  224. package/dist/services/execution-target/schemas.d.mts +1 -1
  225. package/dist/services/execution-target/schemas.mjs +1 -1
  226. package/dist/services/filesystem/index.d.mts +1 -1
  227. package/dist/services/filesystem/index.mjs +1 -1
  228. package/dist/services/git/namespace.d.mts +2 -2
  229. package/dist/services/git/namespace.mjs +1 -1
  230. package/dist/services/git/schemas.d.mts +2 -2
  231. package/dist/services/git/schemas.mjs +1 -1
  232. package/dist/services/harness/index.d.mts +3 -3
  233. package/dist/services/harness/index.mjs +1 -1
  234. package/dist/services/index.d.mts +86 -371
  235. package/dist/services/index.mjs +1 -1
  236. package/dist/services/log-import/browser.d.mts +2 -2
  237. package/dist/services/log-import/index.d.mts +2 -2
  238. package/dist/services/log-import/log-import.d.mts +1 -1
  239. package/dist/services/log-import/log-import.mjs +1 -1
  240. package/dist/services/log-import/namespace.d.mts +2 -2
  241. package/dist/services/log-import/namespace.mjs +1 -1
  242. package/dist/services/log-import/schemas.d.mts +1 -1
  243. package/dist/services/log-import/schemas.mjs +1 -1
  244. package/dist/services/materialization/index.d.mts +1 -1
  245. package/dist/services/materialization/index.mjs +1 -1
  246. package/dist/services/model-registry/index.d.mts +1 -1
  247. package/dist/services/model-registry/index.mjs +1 -1
  248. package/dist/services/preferences/index.d.mts +2 -2
  249. package/dist/services/preferences/schemas.d.mts +1 -1
  250. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  251. package/dist/services/provider-context/index.d.mts +1 -1
  252. package/dist/services/provider-context/index.mjs +1 -1
  253. package/dist/services/provider-runtime/index.mjs +1 -1
  254. package/dist/services/session/handlers/index.d.mts +1 -1
  255. package/dist/services/session/handlers/index.mjs +1 -1
  256. package/dist/services/session/index.d.mts +9 -9
  257. package/dist/services/session/index.mjs +1 -1
  258. package/dist/services/session/messages/namespace.d.mts +1 -1
  259. package/dist/services/session/messages/namespace.mjs +1 -1
  260. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  261. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  262. package/dist/services/session/session-events/namespace.d.mts +1 -1
  263. package/dist/services/session/session-events/namespace.mjs +1 -1
  264. package/dist/services/session/storage/namespace.d.mts +1 -1
  265. package/dist/services/session/storage/schema.d.mts +1 -1
  266. package/dist/services/session/testing/index.mjs +1 -1
  267. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  268. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  269. package/dist/services/session/turns/namespace.d.mts +1 -1
  270. package/dist/services/session/turns/namespace.mjs +1 -1
  271. package/dist/services/session-editor/index.d.mts +1 -1
  272. package/dist/services/session-editor/index.mjs +1 -1
  273. package/dist/services/settings/index.d.mts +3 -3
  274. package/dist/services/settings/index.mjs +1 -1
  275. package/dist/services/settings/namespace.d.mts +14 -14
  276. package/dist/services/settings/namespace.mjs +1 -1
  277. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  278. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  279. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  280. package/dist/services/settings/storage/index.d.mts +3 -3
  281. package/dist/services/settings/storage/index.mjs +1 -1
  282. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  283. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  284. package/dist/services/subagent/index.d.mts +1 -1
  285. package/dist/services/subagent/index.mjs +1 -1
  286. package/dist/services/subagent-template/index.d.mts +2 -2
  287. package/dist/services/subagent-template/namespace.d.mts +1 -1
  288. package/dist/services/subagent-template/schemas.d.mts +1 -1
  289. package/dist/services/tool-approval/index.d.mts +1 -1
  290. package/dist/services/tool-approval/index.mjs +1 -1
  291. package/dist/services/tools/index.d.mts +1 -1
  292. package/dist/services/tools/index.mjs +1 -1
  293. package/dist/services/tray-menu/index.d.mts +3 -3
  294. package/dist/services/tray-menu/index.mjs +1 -1
  295. package/dist/services/tray-menu/namespace.d.mts +1 -1
  296. package/dist/services/tray-menu/schemas.d.mts +1 -1
  297. package/dist/services/turn/index.d.mts +1 -1
  298. package/dist/services/turn/namespace.d.mts +1 -1
  299. package/dist/services/workflow-transitions/index.d.mts +2 -0
  300. package/dist/services/workflow-transitions/index.mjs +1 -0
  301. package/dist/{session-Carng3Yk.mjs → session-BOGCd18q.mjs} +1 -1
  302. package/dist/{session-idI1jk5X.mjs → session-BTFiDoGz.mjs} +1 -1
  303. package/dist/{session-lineage-Cte63dGx.d.mts → session-lineage-B_JW5LpF.d.mts} +1 -1
  304. package/dist/{shared-RP_KARKF.mjs → shared-BQ0CHIVy.mjs} +1 -1
  305. package/dist/{skill-CpNjWFuE.mjs → skill-BR6rkfLe.mjs} +1 -1
  306. package/dist/{src-XihJcAQS.mjs → src-DD0v-nIj.mjs} +1 -1
  307. package/dist/storage/drizzle/client.d.mts +1 -1
  308. package/dist/storage/drizzle/client.mjs +1 -1
  309. package/dist/storage/drizzle/index.d.mts +50 -2
  310. package/dist/storage/drizzle/index.mjs +1 -1
  311. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  312. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  313. package/dist/storage/handlers/index.d.mts +1 -1
  314. package/dist/storage/handlers/index.mjs +1 -1
  315. package/dist/testing/drizzle-harness.d.mts +44 -3
  316. package/dist/testing/drizzle-harness.mjs +1 -1
  317. package/dist/{tool-approval-service-fIZ9x0kL.mjs → tool-approval-service-kBA0fRzm.mjs} +1 -1
  318. package/dist/tools-PdG9fO1M.mjs +1 -0
  319. package/dist/{transition-BodgGLZx.d.mts → transition-DuVzKt8-.d.mts} +3 -42
  320. package/dist/{types-LspCUW09.d.mts → types-B1MNcwgH.d.mts} +1 -1
  321. package/dist/{types-Bzxo7ATi.d.mts → types-BqVAOzJP.d.mts} +48 -48
  322. package/dist/{types-DBb5jY4Z.d.mts → types-CJ_QZ1yW.d.mts} +47 -3
  323. package/dist/ui-kernel/index.d.mts +1 -1
  324. package/dist/ui-kernel/index.mjs +1 -1
  325. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  326. package/dist/utils/index.d.mts +18 -4
  327. package/dist/utils/index.mjs +1 -1
  328. package/dist/{version-BbWrAPld.mjs → version-CoCeMxDT.mjs} +1 -1
  329. package/dist/{view-builder-tU7iaxrk.d.mts → view-builder-CvoSL2oL.d.mts} +2 -1
  330. package/dist/visibility-qhGWmpSJ.mjs +1 -0
  331. package/dist/worker-node-Bl9_vqYi.mjs +1 -0
  332. package/dist/worker-node-DZTuT1DS.mjs +1 -0
  333. package/dist/workflow-BfDbgtIQ.mjs +1 -0
  334. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -0
  335. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -0
  336. package/dist/workflow-engine/index.d.mts +619 -685
  337. package/dist/workflow-engine/index.mjs +1 -1
  338. package/dist/workflow-engine/package.d.mts +1 -1
  339. package/dist/workflow-engine/package.mjs +1 -1
  340. package/dist/workflow-engine/provider-operation.d.mts +2 -0
  341. package/dist/workflow-engine/provider-operation.mjs +1 -0
  342. package/dist/workflow-engine/testing/index.d.mts +146 -0
  343. package/dist/workflow-engine/testing/index.mjs +1 -0
  344. package/dist/workflow-engine/testing/sqlite.d.mts +22 -0
  345. package/dist/workflow-engine/testing/sqlite.mjs +130 -0
  346. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  347. package/dist/workflow-transitions-DSc45ixc.mjs +1 -0
  348. package/dist/workflow-worker-BN9XPxQO.mjs +1 -0
  349. package/package.json +20 -3
  350. package/dist/authority-state-bootstrap-C_-F_dtq.mjs +0 -1
  351. package/dist/execution-target-CsZXIvli.mjs +0 -1
  352. package/dist/extension-CjTu6mzW.mjs +0 -1
  353. package/dist/model-uE5IyUFJ.mjs +0 -1
  354. package/dist/namespace-C05pkLbN.mjs +0 -1
  355. package/dist/package-BSG1681x.d.mts +0 -427
  356. package/dist/package-DW1Upu8E.mjs +0 -7
  357. package/dist/schemas-BRxU_oqL.mjs +0 -1
  358. package/dist/schemas-C-J4W1ID.mjs +0 -1
  359. package/dist/selection-YRuVSdck.mjs +0 -1
  360. package/dist/tools-Cs2DwjCC.mjs +0 -1
  361. package/dist/visibility-Cb62p9bv.mjs +0 -1
  362. package/dist/workflow-BX-FxDb0.mjs +0 -1
  363. package/dist/workflow-worker-DR9qYOFc.mjs +0 -1
  364. /package/dist/{adapter-auth-runtime-DFBLXD5K.mjs → adapter-auth-runtime-DO-FVTXg.mjs} +0 -0
  365. /package/dist/{adapter-binding-Dfk_g-lP.d.mts → adapter-binding-DQchUtrK.d.mts} +0 -0
  366. /package/dist/{ajv-C8r45sFs.mjs → ajv-DD3SIL2i.mjs} +0 -0
  367. /package/dist/{attach-error-DCnzW-Yz.mjs → attach-error-C3tngg6J.mjs} +0 -0
  368. /package/dist/{await-trigger-UceeyCyi.mjs → await-trigger-I3lrepb8.mjs} +0 -0
  369. /package/dist/{base-orchestrator-5yH3l39s.d.mts → base-orchestrator-BilsQNW1.d.mts} +0 -0
  370. /package/dist/{capability-service-BzKBK0n2.mjs → capability-service-BqiLlRGA.mjs} +0 -0
  371. /package/dist/{client-DYEHDiJN.d.mts → client-B--e2qcU.d.mts} +0 -0
  372. /package/dist/{client-binary-version-verifier-C12PvQmz.d.mts → client-binary-version-verifier-CgjM_vGF.d.mts} +0 -0
  373. /package/dist/{client-binary-version-verifier-Dv7TGFxh.mjs → client-binary-version-verifier-taewmKTY.mjs} +0 -0
  374. /package/dist/{clients-namespace-DcFmhtLv.d.mts → clients-namespace-DfxjG2ZP.d.mts} +0 -0
  375. /package/dist/{config-namespace-DmP7NVju.d.mts → config-namespace-BCqvufbD.d.mts} +0 -0
  376. /package/dist/{create-static-mount-BLbqGmva.mjs → create-static-mount-bbQhTt6W.mjs} +0 -0
  377. /package/dist/{cross-spawn-BXxQUsPS.mjs → cross-spawn-B57KZuns.mjs} +0 -0
  378. /package/dist/{cursor-storage-DCj4uUxr.mjs → cursor-storage-DIFK_9hg.mjs} +0 -0
  379. /package/dist/{definition-BEvV7tbD.d.mts → definition-gnKgXU91.d.mts} +0 -0
  380. /package/dist/{definitions-C1pgx0Nq.mjs → definitions-xrrY0wgz.mjs} +0 -0
  381. /package/dist/{descriptor-to-package-VfB8lK5w.mjs → descriptor-to-package-DvF08krT.mjs} +0 -0
  382. /package/dist/{drizzle-oCH9H53q.mjs → drizzle-z_0SiGY8.mjs} +0 -0
  383. /package/dist/{esm-ClQELElL.mjs → esm-CltRnX8_.mjs} +0 -0
  384. /package/dist/{event-BOLVCfhH.mjs → event-CmVjR6Ib.mjs} +0 -0
  385. /package/dist/{extension-discovery-B6p3iZaV.d.mts → extension-discovery-CQRdbVQ6.d.mts} +0 -0
  386. /package/dist/{extension-namespace-vrh4ERXR.mjs → extension-namespace-Yu41YepM.mjs} +0 -0
  387. /package/dist/{facet-DqPBpqkl.mjs → facet-BCI00njh.mjs} +0 -0
  388. /package/dist/{filesystem-service-CGdboor3.d.mts → filesystem-service-CQ9yVkSz.d.mts} +0 -0
  389. /package/dist/{handler-GGOD_ofd.mjs → handler-Cbv9FqDO.mjs} +0 -0
  390. /package/dist/{hook-responses-Dg8wDvRo.d.mts → hook-responses-Dh1PWXqJ.d.mts} +0 -0
  391. /package/dist/{host-BfgdjlII.mjs → host-Caq6ZfSJ.mjs} +0 -0
  392. /package/dist/{identity-BmEHHoBw.mjs → identity-D6guMtmi.mjs} +0 -0
  393. /package/dist/{index-DEchpaya.d.mts → index-BIdsFcQs2.d.mts} +0 -0
  394. /package/dist/{index-DquI_1X5.d.mts → index-BVRQEpAg.d.mts} +0 -0
  395. /package/dist/{index-Brdc35b-.d.mts → index-BaZeoZoS.d.mts} +0 -0
  396. /package/dist/{index-BSmwpgkR.d.mts → index-ByKi34v5.d.mts} +0 -0
  397. /package/dist/{index-oYGf2zIe.d.mts → index-CGZQVTid.d.mts} +0 -0
  398. /package/dist/{index-Chy9aknK.d.mts → index-CMJZ2Z8m.d.mts} +0 -0
  399. /package/dist/{index-Bd1GC1kU2.d.mts → index-CjdRdsd0.d.mts} +0 -0
  400. /package/dist/{index-DYUxNOIX.d.mts → index-Cv-o5Krs.d.mts} +0 -0
  401. /package/dist/{index-DC0yVsYL.d.mts → index-DN4NOCqN2.d.mts} +0 -0
  402. /package/dist/{index-CcsJnJOD.d.mts → index-DR40QWlw.d.mts} +0 -0
  403. /package/dist/{index-BG9-vQHD.d.mts → index-DZunhZec.d.mts} +0 -0
  404. /package/dist/{index-BsBvs0aK.d.mts → index-DjgLchuQ.d.mts} +0 -0
  405. /package/dist/{index-pgYFJ5h6.d.mts → index-Dm1nUxCF.d.mts} +0 -0
  406. /package/dist/{index-C96LlS5m.d.mts → index-Ds5_rDEJ.d.mts} +0 -0
  407. /package/dist/{index-GYZs75UP.d.mts → index-dtsLKOID.d.mts} +0 -0
  408. /package/dist/{index-8fJ6dkzR.d.mts → index-gUhidukN.d.mts} +0 -0
  409. /package/dist/{index-BgpYhR2z.d.mts → index-jTaAHsul.d.mts} +0 -0
  410. /package/dist/{index-Ci3_i-WC2.d.mts → index-sS6KUlrx.d.mts} +0 -0
  411. /package/dist/{index-CFeY8lfU.d.mts → index-vA--0lOM.d.mts} +0 -0
  412. /package/dist/{index-BUYyZm5I.d.mts → index-vcSj12YQ.d.mts} +0 -0
  413. /package/dist/{index-CdEhEXlY.d.mts → index-ye0oklfU.d.mts} +0 -0
  414. /package/dist/{json-value-BwVdTylT.d.mts → json-value-Brslhqbm.d.mts} +0 -0
  415. /package/dist/{jsonl-transport-D8RBF0dK.mjs → jsonl-transport-bQl3JwIu.mjs} +0 -0
  416. /package/dist/{lib-3_xcE8J-.mjs → lib-DOBXZmYX.mjs} +0 -0
  417. /package/dist/{model-registry-CoegIvks.mjs → model-registry-CmgcPDH3.mjs} +0 -0
  418. /package/dist/{model-registry-BneK5SGo.mjs → model-registry-xyBKSye-.mjs} +0 -0
  419. /package/dist/{namespace-CDO4rY11.mjs → namespace-B8uKAzWJ.mjs} +0 -0
  420. /package/dist/{namespace-BsF9IxJ9.d.mts → namespace-BOkKoq34.d.mts} +0 -0
  421. /package/dist/{namespace-SQAGytmu.d.mts → namespace-Blp4c8GK.d.mts} +0 -0
  422. /package/dist/{namespace-BeED_Ojz.mjs → namespace-C-9si-fV.mjs} +0 -0
  423. /package/dist/{namespace-De9Mg3zv.d.mts → namespace-CErHuXtb.d.mts} +0 -0
  424. /package/dist/{namespace-BHj13hbA.mjs → namespace-CWGKCNZm.mjs} +0 -0
  425. /package/dist/{namespace-D7pE2QWv.mjs → namespace-CWUDFGOy.mjs} +0 -0
  426. /package/dist/{namespace-D9HNjIdc.d.mts → namespace-Cv1RFP7n.d.mts} +0 -0
  427. /package/dist/{namespace-CI313bRv.d.mts → namespace-Dkod-w11.d.mts} +0 -0
  428. /package/dist/{namespace-lWlqWTKu.d.mts → namespace-GPA7zots.d.mts} +0 -0
  429. /package/dist/{namespace-DWwWnLBu.mjs → namespace-HO2J9sO8.mjs} +0 -0
  430. /package/dist/{namespace-C238RqwB.mjs → namespace-YxU1xf-K.mjs} +0 -0
  431. /package/dist/{namespace-BetqZA7Z.d.mts → namespace-YytVKIgI.d.mts} +0 -0
  432. /package/dist/{namespace-B9CYb9Gh.d.mts → namespace-jDhZjw-i.d.mts} +0 -0
  433. /package/dist/{namespace-BSXHdCVh2.d.mts → namespace-tGRAod3o.d.mts} +0 -0
  434. /package/dist/{orchestrator-shared-BB6j8ezL.d.mts → orchestrator-shared-BHCv-l2O.d.mts} +0 -0
  435. /package/dist/{out-CFkI17mk.mjs → out-CvjtANXN.mjs} +0 -0
  436. /package/dist/{packages-DeIgn0Hn.d.mts → packages-BZ6pzFIq.d.mts} +0 -0
  437. /package/dist/{platform-CWhGFQFX.mjs → platform-Bv8llU9c.mjs} +0 -0
  438. /package/dist/{providers-CUnrif24.mjs → providers-Co5UszRH.mjs} +0 -0
  439. /package/dist/{providers-namespace-sPbGcZ6I.d.mts → providers-namespace-DjFkmvBR.d.mts} +0 -0
  440. /package/dist/{quick-lru-CTBjxfgD.mjs → quick-lru-CrOpWwrf.mjs} +0 -0
  441. /package/dist/{schema-cus0dJ81.mjs → schema-Db-y-09L.mjs} +0 -0
  442. /package/dist/{schema-introspection-BsWLmoFp.mjs → schema-introspection-DgWQCpwx.mjs} +0 -0
  443. /package/dist/{schemas-DYvvMd3c.d.mts → schemas-B1NWNASS.d.mts} +0 -0
  444. /package/dist/{schemas-CMyv7l7-.mjs → schemas-BGExwp3j.mjs} +0 -0
  445. /package/dist/{schemas-Dmij0PIc.d.mts → schemas-BO7uOum6.d.mts} +0 -0
  446. /package/dist/{schemas-BGS9RfqV.mjs → schemas-Bfxskx_2.mjs} +0 -0
  447. /package/dist/{schemas-BKKpQC4X2.d.mts → schemas-BtZqovRH.d.mts} +0 -0
  448. /package/dist/{schemas-BAvt2HDy.d.mts → schemas-CQyRBqD6.d.mts} +0 -0
  449. /package/dist/{schemas-D55eXBgl.d.mts → schemas-CR8hSqTy.d.mts} +0 -0
  450. /package/dist/{schemas-CWxf_Yut.mjs → schemas-CqRm0i9a.mjs} +0 -0
  451. /package/dist/{schemas-CiWCNQ9a2.d.mts → schemas-CwbYk_kZ.d.mts} +0 -0
  452. /package/dist/{schemas-CbMWN9-z.d.mts → schemas-DuIlOWR3.d.mts} +0 -0
  453. /package/dist/{schemas-B4FyOOJj.d.mts → schemas-miYxK_Z1.d.mts} +0 -0
  454. /package/dist/{semver-D3Y7uMEb.mjs → semver-DlM8znk4.mjs} +0 -0
  455. /package/dist/{server-lifecycle-C-3OgoKi.d.mts → server-lifecycle-Dsq56aqC.d.mts} +0 -0
  456. /package/dist/{server-lifecycle-DV6NMsgH.mjs → server-lifecycle-kmQ5PUDv.mjs} +0 -0
  457. /package/dist/{shared-schemas-BNCPgGYP.mjs → shared-schemas-DXwyMCwZ.mjs} +0 -0
  458. /package/dist/{src-ftBp6GpR.mjs → src-CCu8TwL6.mjs} +0 -0
  459. /package/dist/{storage-namespace-B1GI4elv.mjs → storage-namespace-BSrv0vXR.mjs} +0 -0
  460. /package/dist/{storage-namespace-definition-V8sc3drq.d.mts → storage-namespace-definition-BvlX0QV_.d.mts} +0 -0
  461. /package/dist/{storage-namespace-definition-4UYuij1r.mjs → storage-namespace-definition-CkMKt7-I.mjs} +0 -0
  462. /package/dist/{storage-namespace-9N9R61pI.d.mts → storage-namespace-dfywhXR3.d.mts} +0 -0
  463. /package/dist/{supports-color-DwW9N6YC.mjs → supports-color-DUugCQsK.mjs} +0 -0
  464. /package/dist/{telemetry-B42EMbZt.mjs → telemetry-Pr3oP2rk.mjs} +0 -0
  465. /package/dist/{timeout-CvONPl0l.mjs → timeout-DWDhddRJ.mjs} +0 -0
  466. /package/dist/{tray-menu-service-Dgedanv-.mjs → tray-menu-service-BBLa-Rcv.mjs} +0 -0
  467. /package/dist/{types-DkFvBdIY.d.mts → types-BrcjaNPZ.d.mts} +0 -0
  468. /package/dist/{types-DVLq657Y.d.mts → types-DHmPneIO.d.mts} +0 -0
  469. /package/dist/{types-Bju4dmAg.d.mts → types-b54n1o57.d.mts} +0 -0
  470. /package/dist/{ui-config-B2L3Xgqo.mjs → ui-config-CyCdlns_.mjs} +0 -0
  471. /package/dist/{variant-ByI-RZua.mjs → variant-krjlTdJt.mjs} +0 -0
  472. /package/dist/{window-registry-Qcnvlhp7.d.mts → window-registry-BDnZLPVx.d.mts} +0 -0
  473. /package/dist/{window-registry-DsWnCc8z.mjs → window-registry-I-imZHV_.mjs} +0 -0
@@ -1,7 +0,0 @@
1
- import{$ as e,A as t,B as n,D as r,E as i,F as a,G as o,H as s,I as c,J as l,K as u,L as d,M as f,N as p,O as m,P as ee,Q as te,R as ne,S as re,T as ie,U as ae,V as oe,W as se,X as ce,Y as le,Z as ue,_ as h,a as de,b as fe,c as pe,d as me,et as he,f as ge,g as _e,h as ve,i as ye,it as g,j as be,k as xe,m as Se,n as Ce,nt as we,p as Te,q as Ee,r as De,rt as Oe,s as ke,tt as Ae,u as je,v as Me,w as Ne,x as Pe,y as Fe,z as Ie}from"./authority-state-bootstrap-C_-F_dtq.mjs";import{matchesFilter as Le,matchesSubscription as Re}from"@makaio/framework/bus";import{ArtifactSubjects as ze,EXECUTION_LIST_DEFAULT_LIMIT as Be,EXECUTION_LIST_MAX_LIMIT as _,EXECUTION_LIST_MIN_LIMIT as v,EXTERNAL_EXECUTION_ID_PREFIX as Ve,ExecutionHintsSchema as He,ExecutionsByArtifactRefsQuerySchema as Ue,JsonPatchOperationSchema as We,JsonValueSchema as Ge,SessionSubjects as Ke,WORKFLOW_CANCELLED_REASON as qe,WorkLogFrameEntrySchema as Je,WorkflowError as y,WorkflowErrorCode as Ye,WorkflowNamespace as Xe,WorkflowStepTypeSchema as Ze,WorkflowSubjects as b,createWorkflowCancelSubject as Qe,createWorkflowFinalizerNamespace as $e,dep as et,extensionToken as tt,serializeArtifactRef as nt}from"@makaio/framework/contracts";import{BaseService as rt}from"@makaio/framework/service-base";import{defineDialectSchema as it,executeTransaction as x,getDatabaseDialect as at,registerDrizzleHandlers as ot,resolveSchema as S,serializeDatabaseOperation as C}from"@makaio/framework/storage/drizzle";import{and as w,asc as T,count as E,desc as D,eq as O,getTableColumns as st,gte as ct,isNotNull as lt,isNull as k,lt as ut,lte as dt,notInArray as ft,or as pt,sql as A,sum as j}from"drizzle-orm";import{compile as mt}from"@makaio/framework/expression";import*as ht from"node:os";import{SessionToken as gt}from"@makaio/framework/services";const _t=t.postgres,vt=n.postgres,yt=f.postgres,bt=s.postgres,xt=u.postgres,St=ee.postgres,Ct=se.postgres,wt=he.postgres,Tt=ce.postgres,Et=l.postgres,Dt=te.postgres,Ot=c.postgres,kt=ne.postgres,At=we.postgres,M=it({workflowDefinitions:xe,workflowExecutions:Ie,workflowExecutionFrames:be,workflowGateInstances:oe,workflowStepSpans:o,workflowExecutionLinks:p,workflowRunContexts:ae,worklogSummaries:e,worklogFrameEntries:le,worklogArtifactWrites:Ee,worklogGateEvents:ue,workflowExecutionState:a,workflowExecutionStateEvents:d,workflowFinalizations:Ae},{workflowDefinitions:_t,workflowExecutions:vt,workflowExecutionFrames:yt,workflowGateInstances:bt,workflowStepSpans:xt,workflowExecutionLinks:St,workflowRunContexts:Ct,worklogSummaries:wt,worklogFrameEntries:Tt,worklogArtifactWrites:Et,worklogGateEvents:Dt,workflowExecutionState:Ot,workflowExecutionStateEvents:kt,workflowFinalizations:At});function N(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 P(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 jt(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=N(t);return[O(e.scopeType,n),O(e.scopeKind,r),O(e.scopeId,i)]}function F(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:P(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,successFinalizerId:e.successFinalizerId??void 0,executionHints:e.executionHints??void 0}}function Mt(e,t){let n=N(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,successFinalizerId:e.successFinalizerId??null,executionHints:e.executionHints??null,createdAt:t,updatedAt:t,...n}}function Nt(e,t){let{workflowDefinitions:n}=S(t,M),r=st(n),i=e.on(m.get,async e=>{let r=await t.select().from(n).where(O(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?F(r[0]):null})}),a=e.on(m.set,async i=>{let a=i.payload.workflow,o=Date.now(),s=Mt(a,o),c=await C(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:A`COALESCE(${r.createdAt}, ${o})`,description:s.description===null?A`${r.description}`:s.description,inputSchema:s.inputSchema===null?A`${r.inputSchema}`:s.inputSchema,configSchema:s.configSchema===null?A`${r.configSchema}`:s.configSchema,outputSchema:s.outputSchema===null?A`${r.outputSchema}`:s.outputSchema,state:s.state,artifact:s.artifact===null?A`${r.artifact}`:s.artifact,triggers:s.triggers===null?A`${r.triggers}`:s.triggers,canvasLayout:s.canvasLayout===null?A`${r.canvasLayout}`:s.canvasLayout,source:s.source===null?A`${r.source}`:s.source,successFinalizerId:s.successFinalizerId,executionHints:s.executionHints===null?A`${r.executionHints}`:s.executionHints,...N(a.scope)}).where(O(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,F(c.row)),i.setResult({id:a.id})}),o=e.on(m.delete,async r=>{let i=(await C(t,()=>t.delete(n).where(O(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(m.list,async e=>{let r=e.payload,i=r.scope?jt(n,r.scope):[],a=i.length>0?await t.select().from(n).where(w(...i)):await t.select().from(n);e.setResult({workflows:a.map(F)})});return()=>{i(),a(),o(),s()}}function Pt(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 Ft(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 It(e,t){let{workflowExecutionFrames:n}=S(t,M),r=e.on(m.setFrame,async e=>{let{executionId:r,frame:i}=e.payload,a=Ft(r,i);await C(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(m.getFrame,async e=>{let r=await t.select().from(n).where(O(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?Pt(r[0]):null})}),a=e.on(m.listFrames,async e=>{let r=await t.select().from(n).where(O(n.executionId,e.payload.executionId)).orderBy(T(n.startedAt),T(n.frameId));e.setResult({frames:r.map(Pt)})});return()=>{r(),i(),a()}}function Lt(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function I(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 L(e){return{id:Lt(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 Rt(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??Be;if(!Number.isInteger(i)||i<v||i>_)throw Error(`Gate instance list limit must be an integer between ${v} and ${_}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[O(r.executionId,e)],...t===void 0?[]:[O(r.status,t)]]}}function zt(e,t){let{workflowExecutions:n,workflowGateInstances:r}=S(t,M),i=e.on(m.setGateInstance,async e=>{let n=e.payload.gate,i=L(n);await C(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=e.on(m.resolveWaitingGateInstance,async e=>{let n=e.payload.gate,i=L(n),a=await C(t,()=>t.update(r).set(i).where(w(O(r.id,i.id),O(r.status,`waiting`))).returning({id:r.id}));e.setResult({accepted:a.length===1})}),o=e.on(m.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload,o=[O(r.executionId,n),O(r.nodeId,i)];a!==void 0&&o.push(O(r.frameId,a));let s=await t.select().from(r).where(w(...o)).limit(1);e.setResult({gate:s[0]?I(s[0]):null})}),s=e.on(m.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=Rt(n,i,a,r),c=await t.select().from(r).where(w(...s)).orderBy(D(r.createdAt),D(r.id)).limit(o);e.setResult({gates:c.map(I)})}),c=e.on(m.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,O(r.executionId,n.id)).where(w(O(r.status,`waiting`),O(n.status,`paused`),lt(r.timeoutMs)));e.setResult({gates:i.map(e=>I(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function Bt(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 Vt(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function Ht(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=S(t,M),i=e.on(m.setSpan,async e=>{let{span:r}=e.payload;await C(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(m.listSpans,async e=>{let r=await t.select().from(n).where(O(n.executionId,e.payload.executionId)).orderBy(T(n.startedAt),T(n.stepId),T(n.frameId));e.setResult({spans:r.map(Bt)})}),o=e.on(m.setExecutionLink,async e=>{let{link:n}=e.payload;await C(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(m.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?[]:[O(r.sourceExecutionId,n)],...i===void 0?[]:[O(r.targetExecutionId,i)]],o=t.select().from(r).where(w(...a));e.setResult({links:(await o).map(Vt)})});return()=>{i(),a(),o(),s()}}function R(e,t){return t===null?at(e)===`postgres`?A`'null'::jsonb`:A`'null'`:t}function Ut(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 Wt(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 Gt(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:Wt(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:P(e),...e.executionHints===null?{}:{executionHints:e.executionHints},...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority}}}function Kt(e){let t=Ut(e.source),n=N(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,artifactRef:e.artifactRef??null,executionHints:e.executionHints??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,context:e.context,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null}}async function qt(e,t,n){let r=Kt(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Jt(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=S(t,M),a=e.on(m.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await x(t,async e=>{if(await qt(e,a,n),o===void 0)return;let s=Date.now(),c=R(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(m.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(O(n.executionId,r)),a=i[0]?Gt(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function Yt(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=S(e,M),a=Date.now(),o=R(e,n);await x(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 Xt(e,t){let{workflowExecutionState:n}=S(e,M),r=(await e.select().from(n).where(O(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Zt(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=S(e,M),a=Date.now(),o=R(e,t.nextValue);return x(e,async e=>{let s=(await e.select().from(n).where(O(n.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=i(s.value,t.nextValue);if((await e.update(n).set({sequence:c,value:o,updatedAt:a}).where(w(O(n.executionId,t.executionId),O(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(s.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:c,patch:l,value:o,createdAt:a}),{executionId:t.executionId,sequence:c,patch:l,value:t.nextValue}})}function Qt(e,t){let n=e.on(m.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Yt(t,n,r),e.setResult({})}),r=e.on(m.getState,async e=>{let{executionId:n}=e.payload,r=await Xt(t,n);e.setResult({state:r})}),i=e.on(m.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Zt(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function $t(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 en(e,t){let{worklogSummaries:n}=S(e,M);await e.insert(n).values(t).onConflictDoNothing()}async function tn(e,t){let{worklogSummaries:n}=S(e,M);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:nn(t),setWhere:ft(n.status,[`completed`,`failed`,`cancelled`])})}function nn(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 z(e,t){let{worklogSummaries:n}=S(e,M),r=await e.select().from(n).where(O(n.executionId,t)).limit(1);return r[0]?$t(r[0]):null}async function rn(e,t={}){let{worklogSummaries:n}=S(e,M),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[O(n.workflowId,r)],...i===void 0?[]:[O(n.status,i)]],c=s.length>0?w(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(D(n.startedAt)).limit(a).offset(o),e.select({count:E()}).from(n).where(c)]);return{items:l.map($t),total:u[0]?.count??0}}async function an(e,t){let{worklogFrameEntries:n}=S(e,M);await e.insert(n).values(t).onConflictDoNothing()}async function on(e,t){let{worklogFrameEntries:n}=S(e,M);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:ft(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function B(e,t){let{worklogFrameEntries:n}=S(e,M);return(await e.select().from(n).where(O(n.frameId,t)).limit(1))[0]??null}async function sn(e,t){let n=await B(e,t);return n===null?null:Je.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}=S(e,M);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function ln(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function V(e,t){let{worklogGateEvents:n}=S(e,M);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function un(e,t){let{worklogGateEvents:n}=S(e,M);return(await e.select().from(n).where(O(n.id,t)).limit(1))[0]??null}function dn(e,t,n){return`${e}:${t}:${n}`}async function fn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(O(t.executionId,n)).returning();return r}async function pn(e,t,n){let[r]=await e.select({totalInputTokens:j(t.inputTokens),totalOutputTokens:j(t.outputTokens),totalEstimatedCost:j(t.estimatedCost),measuredInputTokens:E(t.inputTokens),measuredOutputTokens:E(t.outputTokens),measuredCosts:E(t.estimatedCost)}).from(t).where(O(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 mn(e){return e.hasMeasurements}async function hn(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(O(t.executionId,n))}async function gn(e,t,n,r){let i=A`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=A`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=A`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=A`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(w(O(t.executionId,r),s))}async function _n(e,t){let{worklogSummaries:n,worklogFrameEntries:r}=S(e,M);if(at(e)===`sqlite`){await gn(e,n,r,t);return}await x(e,async e=>{if(await fn(e,n,t)===void 0)return;let i=await pn(e,r,t);mn(i)&&await hn(e,n,t,i)})}async function vn(e,t={}){let{worklogSummaries:n}=S(e,M),{workflowId:r,since:i,until:a}=t,o=[...r===void 0?[]:[O(n.workflowId,r)],...i===void 0?[]:[ct(n.startedAt,i)],...a===void 0?[]:[dt(n.startedAt,a)]],s=o.length>0?w(...o):void 0,[c,l]=await Promise.all([e.select({status:n.status,count:E()}).from(n).where(s).groupBy(n.status),e.select({totalDurationMs:j(n.durationMs),totalInputTokens:j(n.totalInputTokens),totalOutputTokens:j(n.totalOutputTokens),totalEstimatedCost:j(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 yn(e,t,n,r,i){let a=await B(t,n);if(a===null||i===void 0)return null;let o=await e.requestOptional(ze.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 H(e,t){try{await t()}catch(t){console.error(`[WorklogProjection] Write failed (${e}):`,t)}}async function U(e,t){try{await e.emit(g.worklog.changed,{executionId:t})}catch(e){console.error(`[WorklogProjection] worklog.changed emit failed for ${t}:`,e)}}const bn=new Set([`completed`,`failed`,`cancelled`]);function xn(e){return bn.has(e)}async function Sn(e,t){return await en(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 Cn(e,t){let n=t.completedAt??Date.now(),r=await z(e,t.executionId);return r!==null&&xn(r.status)?!1:(await tn(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 wn(e,t,n,r,i,a){let o=await z(e,t);if(o!==null&&xn(o.status))return!1;let s=o?.startedAt??a;return await tn(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 Tn(e,t){return[e.on(g.execution.started,async n=>{let{executionId:r}=n.payload;await H(`execution.started[${r}]`,async()=>{await C(t,()=>Sn(t,n.payload))&&await U(e,r)})}),e.on(g.execution.completed,async n=>{let{executionId:r}=n.payload;await H(`execution.completed[${r}]`,async()=>{await C(t,()=>Cn(t,n.payload))&&await U(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 H(`execution.failed[${r}]`,async()=>{await C(t,()=>wn(t,r,`failed`,i,a??null,o))&&await U(e,r)})}),e.on(g.execution.cancelled,async n=>{let{executionId:r}=n.payload,i=n.payload.completedAt??Date.now();await H(`execution.cancelled[${r}]`,async()=>{await C(t,()=>wn(t,r,`cancelled`,null,null,i))&&await U(e,r)})})]}const En=new Set([`completed`,`failed`,`skipped`,`cancelled`]);function Dn(e){return En.has(e)}function On(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 kn(e,t,n,r,i,a,o){let s=o??Date.now(),c=await B(t,r);c!==null&&Dn(c.status)||(await on(t,{frameId:r,executionId:n,...On(c,i,a===void 0?null:s-a),status:`completed`,completedAt:s,durationMs:a??null,error:null}),await _n(t,n),await U(e,n))}async function An(e,t,n,r,i,a,o,s){let c=s??Date.now(),l=await B(t,r);l!==null&&Dn(l.status)||(await on(t,{frameId:r,executionId:n,...On(l,i,o===void 0?null:c-o),status:`failed`,completedAt:c,durationMs:o??null,error:a}),await U(e,n))}function jn(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 H(`frame.started[${i}]`,async()=>{await an(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 U(e,r)})}),e.on(g.frame.completed,async n=>{let{executionId:r,frameId:i,nodeId:a,duration:o,completedAt:s}=n.payload;await H(`frame.completed[${i}]`,()=>kn(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 H(`frame.failed[${i}]`,()=>An(e,t,r,i,a,o,s,c))})]}const Mn={user:`rejected`,timeout:`timed-out`,cancelled:`cancelled`};function Nn(e,t){return[e.on(g.gate.suspended,async n=>{let{executionId:r,frameId:i,nodeId:a,prompt:o}=n.payload;await H(`gate.suspended[${i}]`,async()=>{await V(t,{id:dn(r,a,i),executionId:r,nodeId:a,frameId:i,status:`waiting`,prompt:o??null,openedAt:Date.now(),resolvedAt:null,resumeData:null}),await U(e,r)})}),e.on(g.gate.resumed,async n=>{let{executionId:r,frameId:i,nodeId:a,resumeData:o}=n.payload;await H(`gate.resumed[${i}]`,async()=>{let n=dn(r,a,i),s=await un(t,n),c=Date.now();await V(t,{id:n,executionId:r,nodeId:a,frameId:i,status:`resumed`,prompt:s?.prompt??null,openedAt:s?.openedAt??c,resolvedAt:c,resumeData:o}),await U(e,r)})}),e.on(g.gate.resolved,async n=>Pn(n.payload,e,t)),e.on(g.artifact.updated,async n=>{let{executionId:r,frameId:i,artifactRef:a,revision:o}=n.payload;await H(`artifact.updated[${r}:${i}]`,async()=>{let n=await yn(e,t,i,a,o);if(n===null)return;let s=Date.now();await cn(t,{id:ln(r,i,a.kind,a.id,s),executionId:r,frameId:i,nodeId:n.nodeId,artifact:n.artifact,revision:o??null,writtenAt:s}),await U(e,r)})})]}async function Pn(e,t,n){let{executionId:r,frameId:i,stepId:a,source:o}=e;o===`user`&&e.action===`approve`||await H(`gate.resolved[${i}]`,async()=>{let s=dn(r,a,i),c=await un(n,s),l=Date.now();await V(n,{id:s,executionId:r,nodeId:a,frameId:i,status:o!==`cancelled`&&e.action===`approve`?`resumed`:Mn[o],prompt:c?.prompt??null,openedAt:c?.openedAt??l,resolvedAt:l,resumeData:c?.resumeData??null}),await U(t,r)})}function Fn(e,t){let n=[...Tn(e,t),...jn(e,t),...Nn(e,t),e.on(g.worklog.get,async e=>{let{executionId:n}=e.payload,r=await z(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 rn(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 vn(t,{workflowId:n,since:r,until:i});e.setResult({stats:a})})];return()=>{for(let e of n)e()}}function W(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)=>W(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]&&W(n[e],r[e]))}function In(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 Ln(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 Rn(e,t,n){if(e!==t)throw Error(`settleExternalExecution: execution "${n}" conflicts with an existing terminal settlement fingerprint`)}async function zn(e,t,n,r,i){let a=Ln(r,i);if(n.externalSettlementFingerprint!==null){Rn(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(w(O(t.id,r.executionId),k(t.externalSettlementFingerprint),O(t.status,r.status),O(t.completedAt,i),o===null?k(t.error):O(t.error,o),s===null?k(t.reason):O(t.reason,s))).returning({fingerprint:t.externalSettlementFingerprint})).length>0)return;let[c]=await e.select().from(t).where(O(t.id,r.executionId)).limit(1);if(c===void 0)throw Error(`settleExternalExecution: execution "${r.executionId}" disappeared`);if(Vn(c,r,i),c.externalSettlementFingerprint===null)throw Error(`settleExternalExecution: failed to adopt terminal settlement fingerprint for execution "${r.executionId}"`);Rn(c.externalSettlementFingerprint,a,r.executionId)}function Bn(e,t){if(e.executionId!==t.executionId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!W(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 Vn(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 Hn(e,t,n){let r=await e.select().from(t).where(O(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(O(t.frameId,n.frame.frameId)).limit(1);if(a!==void 0)throw Error(`settleExternalExecution: frame "${n.frame.frameId}" belongs to another execution`)}function Un(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 Wn(e,t){return In({...e,inputTokens:e.inputTokens??t?.inputTokens??void 0,outputTokens:e.outputTokens??t?.outputTokens??void 0,estimatedCost:e.estimatedCost??t?.estimatedCost??void 0})}function Gn(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&&W(e.inputs,t.inputs)&&W(e.triggerPayload,t.triggerPayload)))throw Error(`setExternalExecutionStart: registration conflicts for execution "${t.id}"`)}function Kn(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 qn(e,t){if(e.executionId!==t.executionId||e.frameId!==t.frameId||e.nodeId!==t.nodeId||e.nodeType!==t.nodeType||!W(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 Jn(e,t,n,r){if(!t.id.startsWith(Ve))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}=S(e,M),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 x(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(O(i.id,t.id)).limit(1);if(n===void 0)throw Error(`setExternalExecutionStart: execution "${t.id}" disappeared`);Gn(n,s)}let[l]=await e.select().from(a).where(O(a.executionId,t.id)).limit(1);if(l===void 0?await e.insert(a).values(c):Kn(l,c),n!==void 0){let[i]=await e.select().from(o).where(O(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(In(n))}else qn(i,n)}})}async function Yn(e,t,n,r,i){if(r.frame!==void 0){let n=await Hn(e,t,r);return n!==void 0&&Bn(n,r.frame),{frame:r.frame,existing:n}}if(n.externalRegistrationFrameId===null)return;let[a]=await e.select().from(t).where(O(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=Ze.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 Xn(e,t,n,r,i){let{worklogSummaries:a,worklogFrameEntries:o}=t,s=await fn(e,a,n.id),c=await Yn(e,o,n,r,i),l=c===void 0?r:{...r,frame:c.frame};if(c!==void 0){let t=Wn(c.frame,c.existing);await e.insert(o).values(t).onConflictDoUpdate({target:o.frameId,set:t})}let u=await pn(e,o,n.id),d=mn(u),f={totalInputTokens:u.totalInputTokens,totalOutputTokens:u.totalOutputTokens,totalEstimatedCost:u.totalEstimatedCost},p={...Un(n,s,l,i),...d?f:{}};await e.insert(a).values(p).onConflictDoUpdate({target:a.executionId,set:nn(p)}),d&&await hn(e,a,n.id,u)}async function Zn(e,t){if(!t.executionId.startsWith(Ve))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}=S(e,M);return x(e,async e=>{let[a]=await e.select().from(n).where(O(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=Ln(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(w(O(n.id,t.executionId),O(n.status,`running`),k(n.externalSettlementFingerprint))).returning({id:n.id})).length===0){let[r]=await e.select().from(n).where(O(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),Vn(r,t,o),await zn(e,n,r,t,o)}}else Vn(a,t,o),await zn(e,n,a,t,o);return await Xn(e,{worklogSummaries:r,worklogFrameEntries:i},a,t,o),!0})}function Qn(e,t,n){let r=e.on(m.setExternalExecutionStart,async r=>{let i=r.payload.execution,a=r.payload.frame;await Jn(t,i,a,n),await U(e,i.id),r.setResult({executionId:i.id,...a===void 0?{}:{frameId:a.frameId}})}),i=e.on(m.settleExternalExecution,async n=>{let r=await Zn(t,n.payload);await U(e,n.payload.executionId),n.setResult({success:r})});return()=>{r(),i()}}function G(e){return{executionId:e.executionId,workflowId:e.workflowId,finalizerId:e.finalizerId,transitionKey:e.transitionKey,claimToken:e.claimToken,intent:e.intent,claimedAt:e.claimedAt}}function $n(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 er(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 tr(e,t){let{workflowExecutions:n,workflowFinalizations:r}=S(e,M);return x(e,async e=>{let i=await e.select().from(r).where(O(r.executionId,t.executionId)).limit(1);return i[0]?$n(i[0],t):(await e.update(n).set({status:`finalizing`}).where(w(O(n.id,t.executionId),O(n.workflowId,t.workflowId),O(n.status,`running`))).returning({id:n.id})).length===0?!1:(await e.insert(r).values({...t,state:`claimed`}),!0)})}function nr(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 rr(e,t,n,r){let{workflowExecutions:i,workflowFinalizations:a}=S(e,M);return x(e,async e=>{let o=(await e.select().from(a).where(O(a.executionId,t)).limit(1))[0];return!o||o.claimToken!==n||o.state===`failed`?!1:o.state===`acknowledged`?!0:(await e.update(i).set(nr(o.intent)).where(w(O(i.id,t),O(i.status,`finalizing`))).returning({id:i.id})).length===0?!1:(await e.update(a).set({state:`acknowledged`,settledAt:r}).where(w(O(a.executionId,t),O(a.claimToken,n),O(a.state,`claimed`))),!0)})}async function ir(e,t,n,r,i){let{workflowExecutions:a,workflowFinalizations:o}=S(e,M);return x(e,async e=>{let s=(await e.select().from(o).where(O(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(w(O(a.id,t),O(a.status,`finalizing`))).returning({id:a.id})).length===0?!1:(await e.update(o).set({state:`failed`,failure:r,settledAt:i}).where(w(O(o.executionId,t),O(o.claimToken,n),O(o.state,`claimed`))),!0)})}async function ar(e,t,n){let{workflowExecutions:r,workflowFinalizations:i}=S(t,M),a=(await t.select().from(i).where(O(i.executionId,n.executionId)).limit(1))[0];if(!a||(er(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(O(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 C(t,()=>t.update(i).set({publishedAt:Date.now()}).where(w(O(i.executionId,a.executionId),k(i.publishedAt))))}}function or(e,t){let n=new Map;return async r=>{let i=(n.get(r.executionId)??Promise.resolve()).catch(()=>void 0).then(()=>ar(e,t,r));n.set(r.executionId,i);try{await i}finally{n.get(r.executionId)===i&&n.delete(r.executionId)}}}function sr(e,t){let n=or(e,t),r=e.on(m.claimFinalization,async e=>{e.setResult({claimed:await tr(t,e.payload.claim)})}),i=e.on(m.listClaimedFinalizations,async e=>{let{workflowFinalizations:n}=S(t,M),r=await t.select().from(n).where(w(O(n.finalizerId,e.payload.finalizerId),O(n.state,`claimed`)));e.setResult({claims:r.map(G)})}),a=e.on(m.listUnpublishedFinalizations,async e=>{let{workflowFinalizations:n}=S(t,M),r=await t.select().from(n).where(w(pt(O(n.state,`acknowledged`),O(n.state,`failed`)),O(n.finalizerId,e.payload.finalizerId),k(n.publishedAt)));e.setResult({claims:r.map(G)})}),o=e.on(m.publishFinalization,async e=>{await n(e.payload.claim),e.setResult({})}),s=e.on(m.acknowledgeFinalization,async e=>{let{executionId:r,claimToken:i,settledAt:a}=e.payload,o=await rr(t,r,i,a);if(e.setResult({acknowledged:o}),!o)return;let{workflowFinalizations:s}=S(t,M),c=await t.select().from(s).where(O(s.executionId,r)).limit(1);c[0]&&await n(G(c[0]))}),c=e.on(m.failFinalization,async e=>{let{executionId:r,claimToken:i,error:a,settledAt:o}=e.payload,s=await ir(t,r,i,a,o);if(e.setResult({failed:s}),!s)return;let{workflowFinalizations:c}=S(t,M),l=await t.select().from(c).where(O(c.executionId,r)).limit(1);l[0]&&await n(G(l[0]))});return()=>{r(),i(),a(),o(),s(),c()}}function cr(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:P(e)}}function K(e){let t=N(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 lr(e,t,n,r,i,a){let o=[...e?[O(a.workflowId,e)]:[],...n?[O(a.status,n)]:[],...i===void 0?[]:[O(a.artifactKind,i.kind),O(a.artifactId,i.id)]];if(t&&o.push(...jt(a,t)),r){let e=pt(ut(a.startedAt,r.startedAt),w(O(a.startedAt,r.startedAt),ut(a.id,r.id)));e&&o.push(e)}return o}async function ur(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}=S(e,M),u=K(t);await x(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(O(o.executionId,n.executionId)).limit(1):[])[0]?.dispatchMetadata;if(await qt(d,n.dispatchMetadata===void 0&&f!=null?{...n,dispatchMetadata:f}:n,o),r!==void 0){let n=Date.now(),i=R(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 dr(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}=S(e,M),a=K(t),o=L(n);await x(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 fr(e,t,n,r){let{workflowExecutions:i,workflowGateInstances:a}=S(e,M);return x(e,async e=>{if((await e.select().from(i).where(O(i.id,t)).limit(1))[0]?.status!==`paused`)return{cancelled:!1,gates:[]};let o=(await e.select().from(a).where(w(O(a.executionId,t),O(a.status,`waiting`)))).map(e=>({...I(e),status:`cancelled`,resolvedAt:n}));await e.update(i).set({status:`cancelled`,completedAt:n,reason:r??null}).where(O(i.id,t));for(let t of o){let n=L(t);await e.update(a).set(n).where(O(a.id,n.id))}return{cancelled:!0,gates:o}})}async function pr(e,t,n,r,i,a){let{workflowExecutions:o}=S(e,M);return x(e,async e=>{if((await e.select({id:o.id}).from(o).where(O(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(O(o.id,t)),!0})}function mr(e,t){let{workflowExecutions:n}=S(t,M),r=e.on(m.getExecution,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(O(n.id,r));e.setResult({execution:i[0]?cr(i[0]):null})}),i=e.on(m.setExecution,async e=>{let r=e.payload.execution,i=K(r);await C(t,()=>t.insert(n).values(i).onConflictDoUpdate({target:n.id,set:i})),e.setResult({id:r.id})}),a=e.on(m.setExecutionStart,async e=>{let n=e.payload.execution,r=e.payload.runContext;await ur(t,n,r,e.payload.initialState,e.payload.executionLinks),e.setResult({id:n.id,executionId:n.id})}),o=e.on(m.restorePausedGateResumeState,async e=>{let n=e.payload.execution,r=e.payload.gate;await dr(t,n,r),e.setResult({executionId:n.id,gateId:r.nodeId})}),s=e.on(m.updateExecution,async e=>{let{executionId:n,status:r,error:i,reason:a,completedAt:o}=e.payload,s=await pr(t,n,r,i,a,o);e.setResult({success:s})}),c=e.on(m.pauseRunningExecution,async e=>{let{workflowExecutions:n}=S(t,M),r=await C(t,()=>t.update(n).set({status:`paused`}).where(w(O(n.id,e.payload.executionId),O(n.status,`running`))).returning({id:n.id}));e.setResult({paused:r.length===1})}),l=e.on(m.cancelPausedExecution,async e=>{let{executionId:n,completedAt:r,reason:i}=e.payload;e.setResult(await fr(t,n,r,i))});return()=>{r(),i(),a(),o(),s(),c(),l()}}function hr(e,t){let{workflowExecutions:n}=S(t,M),r=e.on(m.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=lr(r,i,a,s,c,n),u=o??Be;if(!Number.isInteger(u)||u<v||u>_)throw Error(`Execution list limit must be an integer between ${v} and ${_}.`);let d=await t.select().from(n).where(w(...l)).orderBy(D(n.startedAt),D(n.id)).limit(u);e.setResult({executions:d.map(cr)})}),i=e.on(m.listExecutionsByArtifactRefs,async e=>{let r=Ue.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(w(O(n.artifactKind,e.kind),O(n.artifactId,e.id))).orderBy(D(n.startedAt),D(n.id)).limit(a);r.length>0&&(o[nt(e)]=r.map(cr))}e.setResult({executionsByRef:o})});return()=>{r(),i()}}function gr(e,t){let n=Nt(e,t),r=mr(e,t),i=hr(e,t),a=It(e,t),o=zt(e,t),s=Ht(e,t),c=Jt(e,t),l=Qt(e,t),u=Fn(e,t),d=Qn(e,t,K),f=sr(e,t);return()=>{n(),r(),i(),a(),o(),s(),c(),l(),u(),d(),f()}}function _r(e){return e.startsWith(Ve)}function vr(e){let t={};return e.artifactRef!==void 0&&(t.artifactRef=e.artifactRef),e.triggerPayload!==void 0&&(t.triggerPayload=e.triggerPayload),t}function yr(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{}}function q(e,t){if(e.origin.local)return!0;let n=e.transport?.peer;return n?.authenticated!==!0||n.id!==t?!1:n.kind===`workflow-execution`?!0:n.kind===`e2e`&&n.encrypted===!0}async function br(e,t){let{runContext:n}=await e.request(m.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(m.get,{id:n.workflowId});return r??void 0}function xr(e){return[e.on(g.getDefinition,async t=>{let n=await e.request(m.get,{id:t.payload.id});t.setResult(n)}),e.on(g.setDefinition,async t=>{let n=await e.request(m.set,{workflow:t.payload.workflow});t.setResult(n)}),e.on(g.deleteDefinition,async t=>{let n=await e.request(m.delete,{id:t.payload.id});t.setResult(n)}),e.on(g.listDefinitions,async t=>{let n=await e.request(m.list,t.payload);t.setResult(n)}),e.on(g.getExecution,async t=>{let n=await e.request(m.getExecution,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listExecutions,async t=>{let n=await e.request(m.listExecutions,t.payload);t.setResult(n)}),e.on(g.listExecutionsByArtifactRefs,async t=>{let n=await e.request(m.listExecutionsByArtifactRefs,t.payload);t.setResult(n)}),e.on(g.listSpans,async t=>{let n=await e.request(m.listSpans,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listFrames,async t=>{let n=await e.request(m.listFrames,{executionId:t.payload.executionId});t.setResult(n)}),e.on(g.listGateInstances,async t=>{let n=await e.request(m.listGateInstances,t.payload);t.setResult(n)}),e.on(g.setExecutionLink,async t=>{let n=await e.request(m.setExecutionLink,{link:t.payload.link});t.setResult(n)}),e.on(g.listExecutionLinks,async t=>{let n=await e.request(m.listExecutionLinks,t.payload);t.setResult(n)}),e.on(g.getRunContext,async t=>{let{executionId:n}=t.payload;if(!q(t,n))throw Error(`Unauthorized: caller is not permitted to read run context for execution: ${n}`);let{runContext:r}=await e.request(m.getRunContext,{executionId:n});if(!r)throw Error(`Run context not found for execution: ${n}`);t.setResult(r)}),...Sr(e)]}function Sr(e){return[e.on(g.registerExternalExecution,async t=>{let n=Oe.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??re(`wfx-ext`);if(!_r(o))throw Error(`registerExternalExecution: executionId must use the wfx-ext- prefix`);let s=n.startedAt??Date.now(),c={id:o,workflowId:r,status:`running`,inputs:a===void 0?{}:a,startedAt:s,scope:i??{type:`global`},...vr(n)},l=Cr(o,s,n.frame),u=await e.request(m.setExternalExecutionStart,{execution:c,...l===void 0?{}:{frame:l}});t.setResult(u)}),e.on(g.completeExternalExecution,async t=>{let n=Oe.completeExternalExecution.request.parse(t.payload),{executionId:r,status:i}=n;if(!q(t,r))throw Error(`Unauthorized: caller is not permitted to settle execution: ${r}`);if(!_r(r))throw Error(`completeExternalExecution: execution "${r}" is engine-owned and must be completed through the engine finalizer, not this API`);let a=wr(n),o=await e.request(m.settleExternalExecution,{executionId:r,status:i,...yr(n),...n.completedAt===void 0?{}:{completedAt:n.completedAt},...a===void 0?{}:{frame:a}});t.setResult({success:o.success})})]}function Cr(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 wr(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 Tr(e){return[e.on(g.state.get,async t=>{let{executionId:n}=t.payload;if(!q(t,n))throw Error(`Unauthorized: caller is not permitted to read state for execution: ${n}`);let{state:r}=await e.request(m.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(!q(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 br(e,n);o!==void 0&&Ne(o,a,`next`),We.array().parse(i);let s=await e.request(m.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})})]}function Er(e,t){return[e.on(g.listTriggerTypes,e=>{let n=t()?.getAll()??[];e.setResult({triggerTypes:n})})]}async function Dr(e,t){let{runContext:n}=await e.bus.request(m.getRunContext,{executionId:t});if(n===null)throw new y(Ye.RUN_CONTEXT_NOT_FOUND,`Run context not found for workflow execution '${t}'.`);return n}function Or(e,t){return t===void 0?{mode:e}:{mode:e,reason:t}}async function kr(e,t){let n=await Dr(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.executionHints??(t.mode===`snapshot`?n.executionHints:void 0),c=t.scopeOverride??n.scope,l={input:r,config:i,parentSessionId:t.parentSessionId,triggerPayload:a,artifactRef:o,executionHints:s,scopeOverride:c,executionLinks:e=>[{sourceExecutionId:t.executionId,targetExecutionId:e,linkType:`rerun-of`,metadata:Or(t.mode,t.reason)}]};return t.mode===`snapshot`?await Nr(e,n,l):jr(n)?await Pr(e,n,l):await je(e,n.workflowId,l)}function Ar(e,t){return jr(e)?t.id:e.workflowId}function jr(e){return e.source.kind!==`definition`&&e.workflowId===e.executionId}function Mr(e){let t=e.definitionSnapshot;if(t===void 0)throw new y(Ye.SNAPSHOT_UNAVAILABLE,`Workflow execution '${e.executionId}' does not have a definition snapshot.`);return t}async function Nr(e,t,n){let r=Mr(t);return ge(e,Ar(t,r),{workflow:r,executionSource:t.source,definitionSnapshot:r,input:n.input,config:n.config,parentSessionId:n.parentSessionId,triggerPayload:n.triggerPayload,artifactRef:n.artifactRef,executionHints:n.executionHints,scopeOverride:n.scopeOverride,executionLinks:n.executionLinks})}async function Pr(e,t,n){if(t.definitionSnapshot===void 0&&t.source.kind===`path`)return me(e,t.source.path,n);let r=Mr(t);return ge(e,r.id,{workflow:r,executionSource:t.source,input:n.input,config:n.config,parentSessionId:n.parentSessionId,triggerPayload:n.triggerPayload,artifactRef:n.artifactRef,executionHints:n.executionHints,scopeOverride:n.scopeOverride,executionLinks:n.executionLinks})}var Fr=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(m.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(m.getExecution,{executionId:e.executionId});return n?.status===`running`?`retry`:n?.status===`paused`?(await this.resumePausedExecution(e.executionId),`resumed`):`settled`}};function Ir(e){if(e!==void 0)return Lr(e)?e:{}}function Lr(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Rr(e){if(e!==void 0)return Ge.parse(e)}function zr(e){if(e!==void 0)return He.parse(e)}function Br(e,t){return{repoPath:t,makaioHome:e.makaioHome??process.env.MAKAIO_HOME??`${ht.homedir()}/.makaio`,os:_e(process.platform),arch:process.arch}}function Vr(e,t){return{executionId:e.executionId,workflowId:e.workflowId,source:e.source,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},workerManifest:{packages:[]},inputs:e.inputs,config:e.config,scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},...e.executionHints===void 0?{}:{executionHints:e.executionHints},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:`workflow.${e.executionId}.cancel`,context:Br(t,e.workspaceRoot),env:t.platformDefaults.env??{},createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy??`wait-in-process`}}function Hr(e){return e?.status===`paused`}function Ur(e){return e?.status===`waiting`}async function Wr(e,t,n,r,i,a,o){t.delete(i.id),n.delete(i.id),r.delete(i.id);try{await e.request(m.restorePausedGateResumeState,{execution:i,gate:a})}catch(e){console.error(`[WorkflowExecutor] Failed to restore paused gate '${o}' after resume launch failure:`,e)}}async function Gr(e,t){if(t.suspensionStrategy===`wait-in-process`)return;let{frames:n}=await e.request(m.listFrames,{executionId:t.executionId});if(n.length===0)throw Error(`[WorkflowExecutor] Missing resume frames for paused execution: ${t.executionId}`)}function Kr(e){return{executionId:e.executionId,nodeId:e.nodeId,frameId:e.frameId,timeoutMs:e.timeoutMs,openedAt:e.createdAt}}async function qr(e,t){if(t.frameId!==void 0){let{gate:n}=await e.request(m.getGateInstance,t);return Ur(n)?n:null}let{gates:n}=await e.request(m.listGateInstances,{executionId:t.executionId}),r=n.filter(e=>e.nodeId===t.nodeId&&e.status===`waiting`);return r.length===1?r[0]:null}var Jr=class extends rt{static storage={drizzle:gr};config;activeExecutions=new Map;executionTasks=new Map;shellAbortControllers=new Map;activeRunnerSteps=new Map;gateTimeoutScheduler;resumeDispatches=new Set;workflowAbortControllers=new Map;successFinalizers=new Map;durableLifecycleTransitions=new Map;lifecyclePublications=new Map;publishingLifecycleExecutions=new Set;workflowRunner;triggerTypeRegistry;constructor(e,t,n){super(e),this.config={...ie,...t},this.workflowRunner=n,this.gateTimeoutScheduler=new Fr(e,e=>this.resumePausedExecution(e))}setTriggerTypeRegistry(e){this.triggerTypeRegistry=e}getTriggerTypeRegistry(){return this.triggerTypeRegistry}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}=$e(e);this.bus.registerNamespace(t);let r={finalizerId:e,finalizeSubject:n.finalize};this.successFinalizers.set(e,r);try{await Pe(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(m.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 ve({activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps()},t)}finally{l&&this.activeExecutions.delete(e),s?.()}let u=await this.bus.request(m.getExecution,{executionId:e});if(!u.execution||!fe(u.execution.status,t.status))throw Error(`Authority runner result did not settle compatibly with ${t.status}`);return{accepted:!0,status:u.execution.status}}async resolveAuthorityRunnerReplay(e,t){if(e.status===`finalizing`){if(t.status!==`completed`)throw Error(`authority runner result conflicts with terminal execution`);await Pe(this.buildFinalizerDeps());let n=await this.bus.request(m.getExecution,{executionId:e.id});if(!n.execution)throw Error(`Authority runner success finalization execution is missing`);if(!fe(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(!fe(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(m.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(m.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(Ce(this.bus,(e,t)=>{let n=this.activeExecutions.get(e);n!==void 0&&(n.workflow=t)}));for(let e of xr(this.bus))this.addCleanup(e);for(let e of Tr(this.bus))this.addCleanup(e);for(let e of Er(this.bus,()=>this.triggerTypeRegistry))this.addCleanup(e);await this.rehydratePausedGateTimeouts()}async onDestroy(){let e=this.buildFinalizerDeps();await Promise.allSettled([...this.activeExecutions.keys()].map(async t=>{await h(e,t,`Workflow engine shutdown`)&&(this.workflowAbortControllers.get(t)?.abort(),this.workflowAbortControllers.delete(t))}));for(let e of this.workflowAbortControllers.values())e.abort();this.workflowAbortControllers.clear(),await Promise.allSettled(this.executionTasks.values()),await Promise.allSettled(this.durableLifecycleTransitions.values()),await Promise.allSettled(this.lifecyclePublications.values());for(let e of this.shellAbortControllers.values())e.abort();this.shellAbortControllers.clear();for(let e of this.activeRunnerSteps.values())e.hardKillTimer&&clearTimeout(e.hardKillTimer);this.activeRunnerSteps.clear(),this.gateTimeoutScheduler.dispose(),await this.workflowRunner?.dispose?.(),this.activeExecutions.clear()}buildFinalizerDeps(){return{bus:this.bus,activeExecutions:this.activeExecutions,shellAbortControllers:this.shellAbortControllers,activeRunnerSteps:this.activeRunnerSteps,cancelTimeoutMs:this.config.cancelTimeoutMs,successFinalizers:this.successFinalizers,resolveSuccessFinalizerId:e=>this.activeExecutions.get(e)?.workflow.successFinalizerId,durableLifecycleTransitions:this.durableLifecycleTransitions,lifecyclePublications:this.lifecyclePublications,publishingLifecycleExecutions:this.publishingLifecycleExecutions}}buildRunnerTaskDeps(e){return{workflowRunner:e,workflowAbortControllers:this.workflowAbortControllers,executionTasks:this.executionTasks,activeExecutions:this.activeExecutions,buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveWorkflowContext:e=>Br(this.config,e),config:this.config}}async resolveExecutionWorkspaceRoot(e){if(!e)return this.config.platformDefaults.cwd;let{session:t}=await this.bus.request(Ke.get,{sessionId:e});if(t===null)throw Error(`[WorkflowExecutor] Parent session not found: ${e}`);return t.targetWorkingDirectory??this.config.platformDefaults.cwd}buildStartDeps(){return{bus:this.bus,config:this.config,activeExecutions:this.activeExecutions,executionTasks:this.executionTasks,workflowRunner:this.workflowRunner,buildRunContext:e=>Vr(e,this.config),buildRunnerTaskDeps:e=>this.buildRunnerTaskDeps(e),buildFinalizerDeps:()=>this.buildFinalizerDeps(),resolveExecutionWorkspaceRoot:e=>this.resolveExecutionWorkspaceRoot(e),runExecution:e=>this.runExecution(e)}}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,executionHints:c}=e.payload;try{let l=await je(this.buildStartDeps(),t,{input:Rr(n),config:Ir(r)??{},parentSessionId:i,triggerPayload:a,artifactRef:o,executionHints:zr(c),scopeOverride:s});e.setResult({executionId:l})}catch(e){if(e instanceof y)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,executionHints:l,reason:u}=e.payload;try{let d=await kr(this.buildStartDeps(),{executionId:t,mode:n,input:Rr(r),config:Ir(i),parentSessionId:a,triggerPayload:o,artifactRef:s,executionHints:zr(l),scopeOverride:c,reason:u});e.setResult({executionId:d})}catch(e){if(e instanceof y)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,triggerPayload:n,scope:r}=e.payload;try{let i=await me(this.buildStartDeps(),t,{triggerPayload:n,scopeOverride:r});e.setResult({executionId:i})}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;await this.bus.emit(Qe(`workflow.${t}.cancel`),{executionId:t,reason:n}).catch(e=>{console.error(`[WorkflowExecutor] Failed to emit workflow cancel for ${t}:`,e)});let r=this.workflowAbortControllers.get(t);if(r){r.abort(n??qe);let i=await h(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i});return}let i=await h(this.buildFinalizerDeps(),t,n);e.setResult({cancelled:i})}),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(m.listPausedGateTimeouts,{});for(let t of e)this.gateTimeoutScheduler.schedule(Kr(t))}async runExecution(e){let t=this.activeExecutions.get(e);if(!t)return;let n=new AbortController;this.workflowAbortControllers.set(e,n);try{let r;try{let i=await ke({definition:t.workflow,execution:t.execution,runContext:t.runContext,bus:this.bus}),a=new pe(e,t.workflow.id,t.workflow,t.execution,t.runtimeHandlers,this.bus,n.signal,void 0,i,{context:t.runContext.context,env:t.runContext.env},{runtimeLoopGates:t.runtimeLoopGates});De(t.workflow,t.runtimeLoopGates);let o=a.buildExpressionContext();r=await ye(t.workflow.root,a,o)}catch(r){if(n.signal.aborted||t.execution.status===`cancelled`){await h(this.buildFinalizerDeps(),e,qe);return}let i=r instanceof Error?r.message:String(r);await Me(this.buildFinalizerDeps(),t.execution,e,i);return}let i=this.buildFinalizerDeps();r.status===`cancelled`||n.signal.aborted||t.execution.status===`cancelled`?await h(i,e,qe):r.status===`failed`?await Me(i,t.execution,e,r.error):r.status===`paused`?(t.execution.status=`paused`,await this.bus.request(m.setExecution,{execution:t.execution}),this.activeExecutions.delete(e)):await Fe(i,t.execution,e,t.execution.startedAt)}finally{this.workflowAbortControllers.delete(e)}}async respondToPausedGate(e){let{executionId:t,gateId:n,frameId:r,resumeData:i,reason:a}=e,{execution:o}=await this.bus.request(m.getExecution,{executionId:t});if(!Hr(o))return!1;let s=await qr(this.bus,{executionId:t,nodeId:n,frameId:r});if(s===null||!de(n,s.schema,i).valid)return!1;let{runContext:c}=await this.bus.request(m.getRunContext,{executionId:t});if(c===null)throw Error(`[WorkflowExecutor] Run context not found for paused execution: ${t}`);await Gr(this.bus,c);let{accepted:l}=await this.bus.request(m.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 Wr(this.bus,this.activeExecutions,this.executionTasks,this.workflowAbortControllers,o,s,n),e}return this.gateTimeoutScheduler.clear(t,n,s.frameId),!0}async resumePausedExecution(e){if(!this.resumeDispatches.has(e)){this.resumeDispatches.add(e);try{await this.dispatchPausedExecutionResume(e)||this.resumeDispatches.delete(e)}catch(t){throw this.resumeDispatches.delete(e),t}}}async dispatchPausedExecutionResume(e){let{runContext:t}=await this.bus.request(m.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(m.get,{id:t.workflowId})).workflow??(()=>{throw Error(`[WorkflowExecutor] Workflow definition not found for paused execution: ${e}`)})(),{execution:r}=await this.bus.request(m.getExecution,{executionId:e});if(r===null)throw Error(`[WorkflowExecutor] Execution not found for paused execution: ${e}`);if(r.status!==`paused`)return!1;await Gr(this.bus,t),await this.bus.request(m.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=Se(t,n,{resume:!0}),a=Te(this.buildStartDeps(),i).finally(()=>{this.resumeDispatches.delete(e)});return this.executionTasks.set(e,a),!0}};function Yr(e,t){try{return mt(e)}catch(n){console.error(`[BusEventTriggerEvaluator] Invalid trigger.filterExpression for workflow "${t}": "${e}"`,n);return}}function Xr(e){let t=e.indexOf(`.`),n=e.indexOf(`:`),r=t===-1?n:n===-1?t:Math.min(t,n);return r===-1?e:e.slice(0,r)}function Zr(e){return{subject:`*`,$meta:{namespace:e,isRequest:!1}}}var Qr=class{bus;cleanupFns=[];initialized=!1;triggerIndex=new Map;subscribedNamespaces=new Set;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(b.definition.created,e=>{this.indexWorkflow(e.payload)}),this.bus.on(b.definition.updated,e=>{this.removeWorkflow(e.payload.id),this.indexWorkflow(e.payload)}),this.bus.on(b.definition.deleted,e=>{this.removeWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.triggerIndex.clear(),this.subscribedNamespaces.clear(),!1)}getTestState(){return{initialized:this.initialized,cleanupFns:[...this.cleanupFns],subscribedNamespaces:new Set(this.subscribedNamespaces)}}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(m.list,{});for(let t of e)this.indexWorkflow(t)}indexWorkflow(e){let t=e.triggers??[],n=[];for(let r of t){if(r.type!==`bus-event`)continue;let t=typeof r.filterExpression==`string`?Yr(r.filterExpression,e.id):void 0;typeof r.filterExpression==`string`&&t===void 0||(n.push({workflowId:e.id,subject:r.subject,filter:r.filter,compiledFilterExpr:t}),this.ensureNamespaceSubscribed(Xr(r.subject)))}n.length>0&&this.triggerIndex.set(e.id,n)}removeWorkflow(e){this.triggerIndex.delete(e)}ensureNamespaceSubscribed(e){if(this.subscribedNamespaces.has(e))return;let t=Zr(e),n=this.bus.on(t,e=>{if(e.isRequest)return;let t=typeof e.payload==`object`&&e.payload!==null?e.payload:{};this.handleBusEvent(e.subject,t)});this.cleanupFns.push(n),this.subscribedNamespaces.add(e)}handleBusEvent(e,t){for(let n of this.triggerIndex.values())for(let r of n)if(Re(e,r.subject)&&!(r.filter&&!Le(t,r.filter))){if(r.compiledFilterExpr){let n;try{n=r.compiledFilterExpr.evalSync({payload:t})}catch(n){console.error(`[BusEventTriggerEvaluator] filterExpression eval failed for workflow "${r.workflowId}" on subject "${e}" payload keys: [${Object.keys(t).join(`, `)}]`,n);continue}if(!n)continue}this.bus.request(b.start,{workflowId:r.workflowId,triggerPayload:t}).catch(t=>{console.error(`[BusEventTriggerEvaluator] Failed to start workflow "${r.workflowId}" triggered by "${e}":`,t)})}}};function J(e,t,n,r,i,a,o,s){return J.fromTZ(J.tp(e,t,n,r,i,a,o),s)}J.fromTZISO=(e,t,n)=>J.fromTZ(ei(e,t),n),J.fromTZ=function(e,t){let n=new Date(Date.UTC(e.y,e.m-1,e.d,e.h,e.i,e.s)),r=$r(e.tz,n),i=new Date(n.getTime()-r),a=$r(e.tz,i);if(a-r===0)return i;{let r=new Date(n.getTime()-a),o=$r(e.tz,r);if(o-a===0||!t&&o-a>0)return r;if(t)throw Error(`Invalid date passed to fromTZ()`);return i}},J.toTZ=function(e,t){let n=e.toLocaleString(`en-US`,{timeZone:t}).replace(/[\u202f]/,` `),r=new Date(n);return{y:r.getFullYear(),m:r.getMonth()+1,d:r.getDate(),h:r.getHours(),i:r.getMinutes(),s:r.getSeconds(),tz:t}},J.tp=(e,t,n,r,i,a,o)=>({y:e,m:t,d:n,h:r,i,s:a,tz:o});function $r(e,t=new Date){let n=t.toLocaleString(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).split(` `).slice(-1)[0],r=t.toLocaleString(`en-US`).replace(/[\u202f]/,` `);return Date.parse(`${r} GMT`)-Date.parse(`${r} ${n}`)}function ei(e,t){let n=new Date(Date.parse(e));if(isNaN(n))throw Error(`minitz: Invalid ISO8601 passed to parser.`);let r=e.substring(9);return e.includes(`Z`)||r.includes(`-`)||r.includes(`+`)?J.tp(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),n.getUTCHours(),n.getUTCMinutes(),n.getUTCSeconds(),`Etc/UTC`):J.tp(n.getFullYear(),n.getMonth()+1,n.getDate(),n.getHours(),n.getMinutes(),n.getSeconds(),t)}J.minitz=J;var ti=32,Y=31|ti,ni=[1,2,4,8,16],ri=class{pattern;timezone;second;minute;hour;day;month;dayOfWeek;lastDayOfMonth;starDOM;starDOW;constructor(e,t){this.pattern=e,this.timezone=t,this.second=Array(60).fill(0),this.minute=Array(60).fill(0),this.hour=Array(24).fill(0),this.day=Array(31).fill(0),this.month=Array(12).fill(0),this.dayOfWeek=Array(7).fill(0),this.lastDayOfMonth=!1,this.starDOM=!1,this.starDOW=!1,this.parse()}parse(){if(!(typeof this.pattern==`string`||this.pattern instanceof String))throw TypeError(`CronPattern: Pattern has to be of type string.`);this.pattern.indexOf(`@`)>=0&&(this.pattern=this.handleNicknames(this.pattern).trim());let e=this.pattern.replace(/\s+/g,` `).split(` `);if(e.length<5||e.length>6)throw TypeError(`CronPattern: invalid configuration format ('`+this.pattern+`'), exactly five or six space separated parts are required.`);if(e.length===5&&e.unshift(`0`),e[3].indexOf(`L`)>=0&&(e[3]=e[3].replace(`L`,``),this.lastDayOfMonth=!0),e[3]==`*`&&(this.starDOM=!0),e[4].length>=3&&(e[4]=this.replaceAlphaMonths(e[4])),e[5].length>=3&&(e[5]=this.replaceAlphaDays(e[5])),e[5]==`*`&&(this.starDOW=!0),this.pattern.indexOf(`?`)>=0){let t=new Z(new Date,this.timezone).getDate(!0);e[0]=e[0].replace(`?`,t.getSeconds().toString()),e[1]=e[1].replace(`?`,t.getMinutes().toString()),e[2]=e[2].replace(`?`,t.getHours().toString()),this.starDOM||(e[3]=e[3].replace(`?`,t.getDate().toString())),e[4]=e[4].replace(`?`,(t.getMonth()+1).toString()),this.starDOW||(e[5]=e[5].replace(`?`,t.getDay().toString()))}this.throwAtIllegalCharacters(e),this.partToArray(`second`,e[0],0,1),this.partToArray(`minute`,e[1],0,1),this.partToArray(`hour`,e[2],0,1),this.partToArray(`day`,e[3],-1,1),this.partToArray(`month`,e[4],-1,1),this.partToArray(`dayOfWeek`,e[5],0,Y),this.dayOfWeek[7]&&(this.dayOfWeek[0]=this.dayOfWeek[7])}partToArray(e,t,n,r){let i=this[e],a=e===`day`&&this.lastDayOfMonth;if(t===``&&!a)throw TypeError(`CronPattern: configuration entry `+e+` (`+t+`) is empty, check for trailing spaces.`);if(t===`*`)return i.fill(r);let o=t.split(`,`);if(o.length>1)for(let t=0;t<o.length;t++)this.partToArray(e,o[t],n,r);else t.indexOf(`-`)!==-1&&t.indexOf(`/`)!==-1?this.handleRangeWithStepping(t,e,n,r):t.indexOf(`-`)===-1?t.indexOf(`/`)===-1?t!==``&&this.handleNumber(t,e,n,r):this.handleStepping(t,e,n,r):this.handleRange(t,e,n,r)}throwAtIllegalCharacters(e){for(let t=0;t<e.length;t++)if((t===5?/[^/*0-9,\-#L]+/:/[^/*0-9,-]+/).test(e[t]))throw TypeError(`CronPattern: configuration entry `+t+` (`+e[t]+`) contains illegal characters.`)}handleNumber(e,t,n,r){let i=this.extractNth(e,t),a=parseInt(i[0],10)+n;if(isNaN(a))throw TypeError(`CronPattern: `+t+` is not a number: '`+e+`'`);this.setPart(t,a,i[1]||r)}setPart(e,t,n){if(!Object.prototype.hasOwnProperty.call(this,e))throw TypeError(`CronPattern: Invalid part specified: `+e);if(e===`dayOfWeek`){if(t===7&&(t=0),t<0||t>6)throw RangeError(`CronPattern: Invalid value for dayOfWeek: `+t);this.setNthWeekdayOfMonth(t,n);return}if(e===`second`||e===`minute`){if(t<0||t>=60)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`hour`){if(t<0||t>=24)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`day`){if(t<0||t>=31)throw RangeError(`CronPattern: Invalid value for `+e+`: `+t)}else if(e===`month`&&(t<0||t>=12))throw RangeError(`CronPattern: Invalid value for `+e+`: `+t);this[e][t]=n}handleRangeWithStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].match(/^(\d+)-(\d+)\/(\d+)$/);if(a===null)throw TypeError(`CronPattern: Syntax error, illegal range with stepping: '`+e+`'`);let[,o,s,c]=a,l=parseInt(o,10)+n,u=parseInt(s,10)+n,d=parseInt(c,10);if(isNaN(l))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(u))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(isNaN(d))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(d===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(d>this[t].length)throw TypeError(`CronPattern: Syntax error, steps cannot be greater than maximum value of part (`+this[t].length+`)`);if(l>u)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=l;e<=u;e+=d)this.setPart(t,e,i[1]||r)}extractNth(e,t){let n=e,r;if(n.includes(`#`)){if(t!==`dayOfWeek`)throw Error(`CronPattern: nth (#) only allowed in day-of-week field`);r=n.split(`#`)[1],n=n.split(`#`)[0]}return[n,r]}handleRange(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`-`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal range: '`+e+`'`);let o=parseInt(a[0],10)+n,s=parseInt(a[1],10)+n;if(isNaN(o))throw TypeError(`CronPattern: Syntax error, illegal lower range (NaN)`);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal upper range (NaN)`);if(o>s)throw TypeError(`CronPattern: From value is larger than to value: '`+e+`'`);for(let e=o;e<=s;e++)this.setPart(t,e,i[1]||r)}handleStepping(e,t,n,r){let i=this.extractNth(e,t),a=i[0].split(`/`);if(a.length!==2)throw TypeError(`CronPattern: Syntax error, illegal stepping: '`+e+`'`);a[0]===``&&(a[0]=`*`);let o=0;a[0]!==`*`&&(o=parseInt(a[0],10)+n);let s=parseInt(a[1],10);if(isNaN(s))throw TypeError(`CronPattern: Syntax error, illegal stepping: (NaN)`);if(s===0)throw TypeError(`CronPattern: Syntax error, illegal stepping: 0`);if(s>this[t].length)throw TypeError(`CronPattern: Syntax error, max steps for part is (`+this[t].length+`)`);for(let e=o;e<this[t].length;e+=s)this.setPart(t,e,i[1]||r)}replaceAlphaDays(e){return e.replace(/-sun/gi,`-7`).replace(/sun/gi,`0`).replace(/mon/gi,`1`).replace(/tue/gi,`2`).replace(/wed/gi,`3`).replace(/thu/gi,`4`).replace(/fri/gi,`5`).replace(/sat/gi,`6`)}replaceAlphaMonths(e){return e.replace(/jan/gi,`1`).replace(/feb/gi,`2`).replace(/mar/gi,`3`).replace(/apr/gi,`4`).replace(/may/gi,`5`).replace(/jun/gi,`6`).replace(/jul/gi,`7`).replace(/aug/gi,`8`).replace(/sep/gi,`9`).replace(/oct/gi,`10`).replace(/nov/gi,`11`).replace(/dec/gi,`12`)}handleNicknames(e){let t=e.trim().toLowerCase();return t===`@yearly`||t===`@annually`?`0 0 1 1 *`:t===`@monthly`?`0 0 1 * *`:t===`@weekly`?`0 0 * * 0`:t===`@daily`?`0 0 * * *`:t===`@hourly`?`0 * * * *`:e}setNthWeekdayOfMonth(e,t){if(typeof t!=`number`&&t===`L`)this.dayOfWeek[e]=this.dayOfWeek[e]|ti;else if(t===Y)this.dayOfWeek[e]=Y;else if(t<6&&t>0)this.dayOfWeek[e]=this.dayOfWeek[e]|ni[t-1];else throw TypeError(`CronPattern: nth weekday out of range, should be 1-5 or L. Value: ${t}, Type: ${typeof t}`)}},ii=[31,28,31,30,31,30,31,31,30,31,30,31],X=[[`month`,`year`,0],[`day`,`month`,-1],[`hour`,`day`,0],[`minute`,`hour`,0],[`second`,`minute`,0]],Z=class e{tz;ms;second;minute;hour;day;month;year;constructor(t,n){if(this.tz=n,t&&t instanceof Date)if(!isNaN(t))this.fromDate(t);else throw TypeError(`CronDate: Invalid date passed to CronDate constructor`);else if(t===void 0)this.fromDate(new Date);else if(t&&typeof t==`string`)this.fromString(t);else if(t instanceof e)this.fromCronDate(t);else throw TypeError(`CronDate: Invalid type (`+typeof t+`) passed to CronDate constructor`)}isNthWeekdayOfMonth(e,t,n,r){let i=new Date(Date.UTC(e,t,n)).getUTCDay(),a=0;for(let r=1;r<=n;r++)new Date(Date.UTC(e,t,r)).getUTCDay()===i&&a++;if(r&Y&&ni[a-1]&r)return!0;if(r&ti){let r=new Date(Date.UTC(e,t+1,0)).getUTCDate();for(let a=n+1;a<=r;a++)if(new Date(Date.UTC(e,t,a)).getUTCDay()===i)return!1;return!0}return!1}fromDate(e){if(this.tz!==void 0)if(typeof this.tz==`number`)this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes()+this.tz,this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),this.apply();else{let t=J.toTZ(e,this.tz);this.ms=e.getMilliseconds(),this.second=t.s,this.minute=t.i,this.hour=t.h,this.day=t.d,this.month=t.m-1,this.year=t.y}else this.ms=e.getMilliseconds(),this.second=e.getSeconds(),this.minute=e.getMinutes(),this.hour=e.getHours(),this.day=e.getDate(),this.month=e.getMonth(),this.year=e.getFullYear()}fromCronDate(e){this.tz=e.tz,this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.ms=e.ms}apply(){if(this.month>11||this.day>ii[this.month]||this.hour>59||this.minute>59||this.second>59||this.hour<0||this.minute<0||this.second<0){let e=new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms));return this.ms=e.getUTCMilliseconds(),this.second=e.getUTCSeconds(),this.minute=e.getUTCMinutes(),this.hour=e.getUTCHours(),this.day=e.getUTCDate(),this.month=e.getUTCMonth(),this.year=e.getUTCFullYear(),!0}else return!1}fromString(e){if(typeof this.tz==`number`){let t=J.fromTZISO(e);this.ms=t.getUTCMilliseconds(),this.second=t.getUTCSeconds(),this.minute=t.getUTCMinutes(),this.hour=t.getUTCHours(),this.day=t.getUTCDate(),this.month=t.getUTCMonth(),this.year=t.getUTCFullYear(),this.apply()}else return this.fromDate(J.fromTZISO(e,this.tz))}findNext(e,t,n,r){let i=this[t],a;n.lastDayOfMonth&&(a=this.month===1?new Date(Date.UTC(this.year,this.month+1,0,0,0,0,0)).getUTCDate():ii[this.month]);let o=!n.starDOW&&t==`day`?new Date(Date.UTC(this.year,this.month,1,0,0,0,0)).getUTCDay():void 0;for(let s=this[t]+r;s<n[t].length;s++){let c=n[t][s];if(t===`day`&&n.lastDayOfMonth&&s-r==a&&(c=1),t===`day`&&!n.starDOW){let t=n.dayOfWeek[(o+(s-r-1))%7];if(t&&t&Y)t=+!!this.isNthWeekdayOfMonth(this.year,this.month,s-r,t);else if(t)throw Error(`CronDate: Invalid value for dayOfWeek encountered. ${t}`);e.legacyMode&&!n.starDOM?c||=t:c&&=t}if(c)return this[t]=s-r,i===this[t]?1:2}return 3}recurse(e,t,n){let r=this.findNext(t,X[n][0],e,X[n][2]);if(r>1){let i=n+1;for(;i<X.length;)this[X[i][0]]=-X[i][2],i++;if(r===3)return this[X[n][1]]++,this[X[n][0]]=-X[n][2],this.apply(),this.recurse(e,t,0);if(this.apply())return this.recurse(e,t,n-1)}return n+=1,n>=X.length?this:this.year>=3e3?null:this.recurse(e,t,n)}increment(e,t,n){return this.second+=t.interval!==void 0&&t.interval>1&&n?t.interval:1,this.ms=0,this.apply(),this.recurse(e,t,0)}getDate(e){return e||this.tz===void 0?new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.ms):typeof this.tz==`number`?new Date(Date.UTC(this.year,this.month,this.day,this.hour,this.minute-this.tz,this.second,this.ms)):J.fromTZ(J.tp(this.year,this.month+1,this.day,this.hour,this.minute,this.second,this.tz),!1)}getTime(){return this.getDate(!1).getTime()}};function ai(e){if(e===void 0&&(e={}),delete e.name,e.legacyMode=e.legacyMode===void 0?!0:e.legacyMode,e.paused=e.paused===void 0?!1:e.paused,e.maxRuns=e.maxRuns===void 0?1/0:e.maxRuns,e.catch=e.catch===void 0?!1:e.catch,e.interval=e.interval===void 0?0:parseInt(e.interval.toString(),10),e.utcOffset=e.utcOffset===void 0?void 0:parseInt(e.utcOffset.toString(),10),e.unref=e.unref===void 0?!1:e.unref,e.startAt&&=new Z(e.startAt,e.timezone),e.stopAt&&=new Z(e.stopAt,e.timezone),e.interval!==null){if(isNaN(e.interval))throw Error(`CronOptions: Supplied value for interval is not a number`);if(e.interval<0)throw Error(`CronOptions: Supplied value for interval can not be negative`)}if(e.utcOffset!==void 0){if(isNaN(e.utcOffset))throw Error(`CronOptions: Invalid value passed for utcOffset, should be number representing minutes offset from UTC.`);if(e.utcOffset<-870||e.utcOffset>870)throw Error(`CronOptions: utcOffset out of bounds.`);if(e.utcOffset!==void 0&&e.timezone)throw Error(`CronOptions: Combining 'utcOffset' with 'timezone' is not allowed.`)}if(e.unref!==!0&&e.unref!==!1)throw Error(`CronOptions: Unref should be either true, false or undefined(false).`);return e}function Q(e){return Object.prototype.toString.call(e)===`[object Function]`||typeof e==`function`||e instanceof Function}function oi(e){return Q(e)}function si(e){typeof Deno<`u`&&typeof Deno.unrefTimer<`u`?Deno.unrefTimer(e):e&&typeof e.unref<`u`&&e.unref()}var ci=30*1e3,$=[],li=class{name;options;_states;fn;constructor(e,t,n){let r,i;if(Q(t))i=t;else if(typeof t==`object`)r=t;else if(t!==void 0)throw Error(`Cron: Invalid argument passed for optionsIn. Should be one of function, or object (options).`);if(Q(n))i=n;else if(typeof n==`object`)r=n;else if(n!==void 0)throw Error(`Cron: Invalid argument passed for funcIn. Should be one of function, or object (options).`);if(this.name=r?.name,this.options=ai(r),this._states={kill:!1,blocking:!1,previousRun:void 0,currentRun:void 0,once:void 0,currentTimeout:void 0,maxRuns:r?r.maxRuns:void 0,paused:r?r.paused:!1,pattern:new ri(`* * * * *`)},e&&(e instanceof Date||typeof e==`string`&&e.indexOf(`:`)>0)?this._states.once=new Z(e,this.options.timezone||this.options.utcOffset):this._states.pattern=new ri(e,this.options.timezone),this.name){if($.find(e=>e.name===this.name))throw Error(`Cron: Tried to initialize new named job '`+this.name+`', but name already taken.`);$.push(this)}return i!==void 0&&oi(i)&&(this.fn=i,this.schedule()),this}nextRun(e){let t=this._next(e);return t?t.getDate(!1):null}nextRuns(e,t){this._states.maxRuns!==void 0&&e>this._states.maxRuns&&(e=this._states.maxRuns);let n=[],r=t||this._states.currentRun||void 0;for(;e--&&(r=this.nextRun(r));)n.push(r);return n}getPattern(){return this._states.pattern?this._states.pattern.pattern:void 0}isRunning(){let e=this.nextRun(this._states.currentRun),t=!this._states.paused,n=this.fn!==void 0,r=!this._states.kill;return t&&n&&r&&e!==null}isStopped(){return this._states.kill}isBusy(){return this._states.blocking}currentRun(){return this._states.currentRun?this._states.currentRun.getDate():null}previousRun(){return this._states.previousRun?this._states.previousRun.getDate():null}msToNext(e){let t=this._next(e);return t?e instanceof Z||e instanceof Date?t.getTime()-e.getTime():t.getTime()-new Z(e).getTime():null}stop(){this._states.kill=!0,this._states.currentTimeout&&clearTimeout(this._states.currentTimeout);let e=$.indexOf(this);e>=0&&$.splice(e,1)}pause(){return this._states.paused=!0,!this._states.kill}resume(){return this._states.paused=!1,!this._states.kill}schedule(e){if(e&&this.fn)throw Error(`Cron: It is not allowed to schedule two functions using the same Croner instance.`);e&&(this.fn=e);let t=this.msToNext(),n=this.nextRun(this._states.currentRun);return t==null||isNaN(t)||n===null?this:(t>ci&&(t=ci),this._states.currentTimeout=setTimeout(()=>this._checkTrigger(n),t),this._states.currentTimeout&&this.options.unref&&si(this._states.currentTimeout),this)}async _trigger(e){if(this._states.blocking=!0,this._states.currentRun=new Z(void 0,this.options.timezone||this.options.utcOffset),this.options.catch)try{this.fn!==void 0&&await this.fn(this,this.options.context)}catch(e){Q(this.options.catch)&&this.options.catch(e,this)}else this.fn!==void 0&&await this.fn(this,this.options.context);this._states.previousRun=new Z(e,this.options.timezone||this.options.utcOffset),this._states.blocking=!1}async trigger(){await this._trigger()}runsLeft(){return this._states.maxRuns}_checkTrigger(e){let t=new Date,n=!this._states.paused&&t.getTime()>=e.getTime(),r=this._states.blocking&&this.options.protect;n&&!r?(this._states.maxRuns!==void 0&&this._states.maxRuns--,this._trigger()):n&&r&&Q(this.options.protect)&&setTimeout(()=>this.options.protect(this),0),this.schedule()}_next(e){let t=!!(e||this._states.currentRun),n=!1;!e&&this.options.startAt&&this.options.interval&&([e,t]=this._calculatePreviousRun(e,t),n=!e),e=new Z(e,this.options.timezone||this.options.utcOffset),this.options.startAt&&e&&e.getTime()<this.options.startAt.getTime()&&(e=this.options.startAt);let r=this._states.once||new Z(e,this.options.timezone||this.options.utcOffset);return!n&&r!==this._states.once&&(r=r.increment(this._states.pattern,this.options,t)),this._states.once&&this._states.once.getTime()<=e.getTime()||r===null||this._states.maxRuns!==void 0&&this._states.maxRuns<=0||this._states.kill||this.options.stopAt&&r.getTime()>=this.options.stopAt.getTime()?null:r}_calculatePreviousRun(e,t){let n=new Z(void 0,this.options.timezone||this.options.utcOffset),r=e;if(this.options.startAt.getTime()<=n.getTime()){r=this.options.startAt;let e=r.getTime()+this.options.interval*1e3;for(;e<=n.getTime();)r=new Z(r,this.options.timezone||this.options.utcOffset).increment(this._states.pattern,this.options,!0),e=r.getTime()+this.options.interval*1e3;t=!0}return r===null&&(r=void 0),[r,t]}};function ui(e,t){return`${e}:${t}`}function di(e){return e??`UTC`}var fi=class{bus;cleanupFns=[];initialized=!1;jobs=new Map;constructor(e){this.bus=e}async init(){if(!this.initialized)try{this.cleanupFns.push(this.bus.on(b.definition.created,e=>{this.scheduleWorkflow(e.payload)}),this.bus.on(b.definition.updated,e=>{this.unscheduleWorkflow(e.payload.id),this.scheduleWorkflow(e.payload)}),this.bus.on(b.definition.deleted,e=>{this.unscheduleWorkflow(e.payload.id)})),await this.loadExistingTriggers(),this.initialized=!0}catch(e){throw this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),e}}destroy(){this.initialized&&=(this.cleanupFns.forEach(e=>e()),this.cleanupFns.length=0,this.stopAllJobs(),!1)}activeJobCount(){return this.jobs.size}async loadExistingTriggers(){let{workflows:e}=await this.bus.request(m.list,{});for(let t of e)this.scheduleWorkflow(t)}scheduleWorkflow(e){if(e.scope.type===`global`)return;let t=e.triggers??[];for(let n=0;n<t.length;n++){let r=t[n];if(r.type!==`cron`)continue;let i=ui(e.id,n);this.stopJob(i);try{let t=di(r.timezone),a=new li(r.schedule,{timezone:t},()=>{this.fireTrigger(e.id,n)});this.jobs.set(i,{workflowId:e.id,triggerIndex:n,job:a})}catch(t){console.warn(`[CronTriggerEvaluator] Skipping invalid cron trigger key="${i}" workflowId="${e.id}" triggerIndex=${n} schedule="${r.schedule}" timezone="${r.timezone??`UTC`}"`,t)}}}unscheduleWorkflow(e){for(let[t,n]of this.jobs)n.workflowId===e&&(n.job.stop(),this.jobs.delete(t))}stopJob(e){let t=this.jobs.get(e);t&&(t.job.stop(),this.jobs.delete(e))}stopAllJobs(){for(let e of this.jobs.values())e.job.stop();this.jobs.clear()}fireTrigger(e,t){this.bus.request(b.start,{workflowId:e,triggerPayload:{firedAt:Date.now(),triggerIndex:t}}).catch(n=>{console.error(`[CronTriggerEvaluator] Failed to start workflow "${e}" for cron trigger index ${t}:`,n)})}},pi=class extends rt{workflowExecutor;busEventTriggerEvaluator;cronTriggerEvaluator;constructor(e,t){super(e),this.workflowExecutor=new Jr(e,t?.executorConfig,t?.workflowRunner),this.busEventTriggerEvaluator=new Qr(e),this.cronTriggerEvaluator=new fi(e)}get executor(){return this.workflowExecutor}registerSuccessFinalizer(e){return this.workflowExecutor.registerSuccessFinalizer(e)}acceptAuthorityRunnerResult(e,t){return this.workflowExecutor.acceptAuthorityRunnerResult(e,t)}get cronTriggers(){return this.cronTriggerEvaluator}setTriggerTypeRegistry(e){this.workflowExecutor.setTriggerTypeRegistry(e)}getTriggerTypeRegistry(){return this.workflowExecutor.getTriggerTypeRegistry()}async onInit(){this.addCleanup(()=>this.destroyOwnedServices()),await this.workflowExecutor.init(),await this.busEventTriggerEvaluator.init(),await this.cronTriggerEvaluator.init()}async destroyOwnedServices(){let e=[];for(let t of[()=>this.cronTriggerEvaluator.destroy(),()=>this.busEventTriggerEvaluator.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 mi=tt(`makaio.workflow-engine`);function hi(e){return{name:mi.name,displayName:`Workflow Engine`,version:`0.1.0`,dependencies:[et(gt.name)],critical:!0,namespaces:[Xe,r],storage:{registerHandlers:ot(gr)},create:t=>new pi(t.bus,e)}}const gi=hi();export{Jr as a,Yt as c,pi as i,Zt as l,hi as n,gr as o,gi as r,Xt as s,mi as t};
@@ -1 +0,0 @@
1
- import{i as e,t}from"./json-value-DmU8ibo_.mjs";import{z as n}from"zod";const r=[`inline`,`summary`,`link`,`omit`],i=n.string().min(1),a=n.object({kinds:n.array(n.string().min(1)).optional(),hint:i.optional(),depth:n.number().int().min(1).max(20).optional(),nested:n.lazy(()=>o).optional()}),o=n.record(n.string().min(1),a),s=n.enum([`link`,`summary`,`full`]),c=n.object({artifactId:n.string().min(1).optional(),url:n.string().min(1).optional(),label:n.string().min(1)}),l=n.object({id:n.string().min(1),kind:n.string().min(1),revision:n.string().min(1),status:n.string().min(1).optional()}),u=n.object({breadcrumbs:n.array(c),related:n.array(c)}),d=n.object({dashboard:n.string().min(1).optional(),materialized:n.string().min(1).optional()}),f=n.object({type:n.literal(`summary`),title:n.string().min(1),text:n.string().min(1)}),p=n.object({type:n.literal(`properties`),title:n.string().min(1),rows:n.array(n.object({label:n.string().min(1),value:n.string()}))}),m=n.object({type:n.literal(`table`),title:n.string().min(1),columns:n.array(n.string().min(1)),rows:n.array(n.object({cells:n.array(n.string()),link:c.optional()}))}),h=n.object({type:n.literal(`relations`),title:n.string().min(1),groups:n.array(n.object({type:n.string().min(1),items:n.array(c)}))}),g=n.object({type:n.literal(`evidence`),title:n.string().min(1),items:n.array(n.object({kind:n.string().min(1),id:n.string().min(1),locator:n.string().min(1).optional()}))}),_=n.object({type:n.literal(`raw`),title:n.string().min(1),json:e}),v=n.object({type:n.literal(`code`),title:n.string().min(1),language:n.string().min(1),content:n.string()}),y=n.object({type:n.literal(`diagram`),title:n.string().min(1),notation:n.literal(`mermaid`),source:n.string().min(1)}),b=n.discriminatedUnion(`type`,[f,p,m,h,g,_,v,y]),ee=n.object({title:n.string().min(1),artifact:l,navigation:u,sections:n.array(b),links:d}),x=t,S=n.object({level:s,params:x.optional()}),C=n.object({kind:n.literal(`entry`),via:n.string().min(1).optional(),collection:n.string().min(1).optional()});function w(e){return(t,r)=>{t.via!==void 0==(t.collection!==void 0)&&r.addIssue({code:n.ZodIssueCode.custom,message:`Entry ${e} must have exactly one of via or collection`})}}const T=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`own-view`)}),n.object({kind:n.literal(`inline`),hostRelation:n.string().min(1),as:s.optional()}),C.extend({title:n.string().min(1).optional()}).superRefine(w(`affordance`))]),E=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`own-view`)}),n.object({kind:n.literal(`inline`),hostRelation:n.string().min(1)}),C.superRefine(w(`request`))]);function D(e){return e}const O=n.enum([`title`,`summary`]),k=n.discriminatedUnion(`kind`,[n.object({kind:n.literal(`label`),prefix:n.string().min(1).optional()}),n.object({kind:n.literal(`field`),name:n.string().min(1),fieldId:n.string().min(1).optional()}),n.object({kind:n.literal(`issue-type`),name:n.string().min(1),typeId:n.string().min(1).optional()}),n.object({kind:n.literal(`body-fragment`),slot:n.string().min(1)}),n.object({kind:n.literal(`comment`),template:n.string().min(1)})]),A=n.object({id:n.string().min(1),provider:n.string().min(1),namespace:n.string().min(1),target:k,appliesTo:n.array(n.enum([`workpiece`,`artifact`,`surface`])).min(1),valueMapping:n.record(n.string(),n.string()).optional(),description:n.string().min(1).optional(),params:t.optional()}),j=n.enum([`status`,`workflow`,`priority`]),M=n.object({path:n.string().min(1),semantic:j.optional(),fromLevel:s.optional(),viewRole:O.optional()}),N=n.object({mode:n.enum([`none`,`surface`,`comment`]),defaultRole:n.enum([`workpiece`,`artifact`]).optional(),semanticEvents:n.array(n.enum([`created`,`revised`,`status-changed`,`observation-added`])).optional(),projectedFields:n.array(M).optional(),affordances:n.array(T).optional()}).superRefine((e,t)=>{if(!e.projectedFields)return;let r=0,i=0;for(let t of e.projectedFields)t.viewRole===`title`&&r++,t.viewRole===`summary`&&i++;r>1&&t.addIssue({code:n.ZodIssueCode.custom,path:[`projectedFields`],message:`At most one projected field may declare viewRole: title`}),i>1&&t.addIssue({code:n.ZodIssueCode.custom,path:[`projectedFields`],message:`At most one projected field may declare viewRole: summary`})}),P=n.object({artifactId:n.string().min(1),provider:n.string().min(1),externalId:n.string().min(1),externalUrl:n.string().optional(),surfaceRole:n.enum([`workpiece`,`artifact`]),lastSyncedRevision:n.string().optional(),metadata:n.record(n.string(),n.unknown()).optional()}),F=n.object({kind:n.string().min(1),id:n.string().min(1),displayName:n.string().optional()}),I=n.object({level:n.string().min(1),ids:n.record(n.string().min(1),n.string().min(1)).optional()}).superRefine((e,t)=>{e.level!==`global`&&(!e.ids||Object.keys(e.ids).length===0)&&t.addIssue({code:n.ZodIssueCode.custom,path:[`ids`],message:`ids is required when scope level is not 'global'`})}),L=n.object({level:n.string().min(1),ids:n.record(n.string().min(1),n.string().min(1)).optional()}),R=n.object({refClass:n.literal(`artifact`).default(`artifact`),kind:n.string().min(1),id:n.string().min(1),revision:n.string().min(1)}),z=n.object({refClass:n.literal(`local`).default(`local`),artifact:R,localId:n.string().min(1)}),B=n.object({refClass:n.literal(`evidence`).default(`evidence`),kind:n.string().min(1),id:n.string().min(1),revision:n.string().min(1).optional(),locator:n.string().min(1).optional()}),V=n.discriminatedUnion(`refClass`,[R,z,B]);function te(e){return!e||typeof e!=`object`||Array.isArray(e)||`refClass`in e?e:`artifact`in e&&`localId`in e?{...e,refClass:`local`}:`locator`in e||!(`revision`in e)?{...e,refClass:`evidence`}:{...e,refClass:`artifact`}}const H=n.preprocess(te,V),U=n.discriminatedUnion(`refClass`,[R.extend({revision:n.string().min(1).optional()}),z,B]);function W(e){return!e||typeof e!=`object`||Array.isArray(e)||`refClass`in e?e:`artifact`in e&&`localId`in e?{...e,refClass:`local`}:`locator`in e?{...e,refClass:`evidence`}:{...e,refClass:`artifact`}}const G=n.preprocess(W,U),K=n.object({type:n.string().min(1),target:H}),q=n.enum([`assumed`,`inferred`,`stated`,`confirmed`,`verified`]),J=n.object({kind:n.string().min(1),actor:F,timestamp:n.number().int().nonnegative(),detail:n.string().optional(),evidenceRef:H.optional()}),Y=n.object({level:q,basis:n.array(J)}),X=n.object({id:n.string().min(1),kind:n.string().min(1),summary:n.string().min(1),detail:n.string().optional(),severity:n.enum([`info`,`warning`,`blocker`]).optional(),tags:n.array(n.string().min(1)).optional(),regarding:n.union([R,z]).optional(),evidence:n.union([R,B]).optional(),actor:F,timestamp:n.number().int().nonnegative()}),Z=n.object({markdown:n.string().optional(),summary:n.string().optional(),plaintext:n.string().optional()}),Q=n.object({kind:n.string().min(1),id:n.string().min(1),revision:n.string().min(1),scope:I,schemaVersion:n.string().min(1),data:t,relations:n.array(K),confidence:Y.optional(),representations:Z.optional(),actor:F,timestamp:n.number().int().nonnegative(),createdAt:n.number().int().nonnegative().optional()}),$=n.enum([`supersedes`,`manual`,`coexist`]),ne=n.object({kind:n.string().min(1),description:n.string().trim().min(1),schemaVersion:n.string().min(1),dataSchema:t,scopeSchema:t.optional(),observationSchema:t.optional(),discriminator:n.union([n.string().min(1),n.array(n.string().min(1))]).optional(),conflictPolicy:$,status:n.object({path:n.string().min(1),values:n.array(n.string().min(1)).optional()}).optional(),lifecycle:n.object({defaultRelevance:n.enum([`active`,`fading`,`retired`,`archived`]).optional(),decayPolicy:n.string().min(1).optional()}).optional(),indexedFields:n.array(n.string().min(1)).optional(),searchableFields:n.array(n.string().min(1)).optional(),projection:N.optional(),defaultContext:o.optional()}),re=n.object({type:n.string().min(1),symmetry:n.enum([`asymmetric`,`symmetric`]),implication:n.string().min(1).optional(),sourceKinds:n.array(n.string().min(1)).optional(),targetKinds:n.array(n.string().min(1)).optional(),targetRefClasses:n.array(n.enum([`artifact`,`local`,`evidence`])).optional()}),ie=n.object({kind:n.string().min(1).optional(),scope:L.optional(),ids:n.array(n.string().min(1)).optional(),currentOnly:n.boolean().optional(),search:n.string().optional(),relation:n.object({type:n.string().min(1).optional(),target:G.optional()}).optional(),confidence:n.object({maxLevel:q.optional(),minLevel:q.optional()}).optional(),indexed:n.record(n.string(),e).optional(),limit:n.number().int().min(1).optional()}),ae=n.object({base:R,target:R}),oe=n.object({base:Q,target:Q,changedPaths:n.array(n.string())});export{E as A,ee as B,N as C,A as D,O as E,y as F,b as G,p as H,g as I,m as J,f as K,l as L,S as M,D as N,k as O,v as P,o as Q,s as R,P as S,j as T,_ as U,u as V,h as W,a as X,r as Y,i as Z,q as _,ne as a,z as b,L as c,K as d,H as f,J as g,I as h,$ as i,x as j,T as k,R as l,Q as m,ae as n,X as o,Z as p,d as q,oe as r,ie as s,F as t,G as u,Y as v,M as w,re as x,B as y,c as z};
@@ -1 +0,0 @@
1
- import{z as e}from"zod";import{AdapterAuthConstantSchema as t,AuthEnvironmentVariableNameSchema as n,AuthMethodRefSchema as r}from"@makaio/framework/contracts/auth";const i=[`MAKAIO_GIT_TOKEN`,`MAKAIO_BUS_AUTH_SECRET`],a=t,o=e.object({machineId:e.string().trim().min(1),packageNames:e.array(e.string().trim().min(1)).min(1).refine(e=>new Set(e).size===e.length,{message:`Session runtime package names must be unique.`}).readonly()}).strict().readonly(),s=e.object({sessionId:e.string().trim().min(1),adapterName:e.string().trim().min(1),providerConfigId:e.string().trim().min(1),definitionId:e.string().trim().min(1),runtime:o,auth:e.object({mode:e.enum([`explicit`,`none`]),method:r}).strict().readonly()}).strict().superRefine((t,n)=>{t.auth.method.owner===`provider`&&t.auth.method.providerDefinitionId!==t.definitionId&&n.addIssue({code:e.ZodIssueCode.custom,message:`Provider-owned auth method must belong to the selected provider definition.`,path:[`auth`,`method`,`providerDefinitionId`]})}).readonly(),c=e.object({target:e.string().trim().min(1),values:e.record(e.string().trim().min(1),a).readonly()}).strict().readonly(),l=e.object({selector:s,scrubEnvVars:e.array(n).readonly(),processEnv:e.record(n,e.string()).readonly(),connectorDeliveries:e.array(c).readonly()}).strict().superRefine((t,n)=>{let r=new Set;for(let[i,a]of t.scrubEnvVars.entries())r.has(a)&&n.addIssue({code:e.ZodIssueCode.custom,message:`Duplicate scrub environment variable "${a}".`,path:[`scrubEnvVars`,i]}),r.add(a);for(let i of Object.keys(t.processEnv))r.has(i)||n.addIssue({code:e.ZodIssueCode.custom,message:`Every process-environment auth delivery must also belong to the scrub set.`,path:[`processEnv`,i]});let i=new Set;for(let[r,a]of t.connectorDeliveries.entries())i.has(a.target)&&n.addIssue({code:e.ZodIssueCode.custom,message:`Duplicate connector auth target "${a.target}".`,path:[`connectorDeliveries`,r,`target`]}),i.add(a.target)}).readonly(),u=e.object({busAuthSecret:e.string().optional(),relayPeer:e.object({id:e.string().min(1),signingPublicKey:e.string().min(1)}).strict().optional(),relayIdentity:e.object({id:e.string().min(1),signingPublicKey:e.string().min(1),signingPrivateKeyPem:e.string().min(1)}).strict().optional(),gitToken:e.string().optional(),runtimeEnv:e.record(n,e.string()).optional(),sessionRuntime:o.optional(),adapterAuth:l.optional()}).strict(),d=e.enum([`simple`,`full`]),f=e.enum([`created`,`running`,`stopped`,`destroyed`]),p=e.object({sessionId:e.string(),executionId:e.string().optional(),adapter:e.string(),runtime:d.default(`simple`),image:e.string().optional()}).strict(),m=new Set([`git:`,`http:`,`https:`,`ssh:`]),h=new Set([`ws:`,`wss:`]),g=/^git@[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?:[^\s?#]+$/;function _(e,t,n){let r=e.indexOf(`://`);if(e.length===0||e.trim()!==e||r<=0||e.includes(`?`)||e.includes(`#`))return!1;try{let i=new URL(e);if(!t.has(i.protocol)||i.hostname.length===0||i.password.length>0||i.search.length>0||i.hash.length>0)return!1;let a=(e.slice(r+3).split(`/`,1)[0]??``).includes(`@`);return n?!a||i.username.length>0:!a&&i.username.length===0}catch{return!1}}function v(e){if(g.test(e))return!0;try{let t=new URL(e).protocol;return _(e,m,t===`ssh:`)}catch{return!1}}const y=e.string().refine(v,{message:`Repository remote must use a supported credential-free Git URL.`}),b=e.string().refine(e=>_(e,h,!1),{message:`Relay URL must use credential-free ws or wss transport.`}),x=p.extend({mode:e.literal(`container-local`),repoPath:e.string(),baseBranch:e.string(),worktreeBranch:e.string().optional()}).strict(),S=p.extend({mode:e.literal(`container-isolated`),repoUrl:y,branch:e.string().optional(),busMode:e.enum([`host`,`relay`]),relayUrl:b.optional()}).strict(),C=e.discriminatedUnion(`mode`,[x,S]),w=e.object({descriptor:C,bootstrapConfig:u}).strict().superRefine((t,n)=>{let r=t.bootstrapConfig.adapterAuth?.selector;if(r===void 0)return;r.sessionId!==t.descriptor.sessionId&&n.addIssue({code:e.ZodIssueCode.custom,message:`Container auth selector session must match the Docker descriptor.`,path:[`bootstrapConfig`,`adapterAuth`,`selector`,`sessionId`]}),r.adapterName!==t.descriptor.adapter&&n.addIssue({code:e.ZodIssueCode.custom,message:`Container auth selector adapter must match the Docker descriptor.`,path:[`bootstrapConfig`,`adapterAuth`,`selector`,`adapterName`]});let i=t.bootstrapConfig.sessionRuntime;if(i===void 0){n.addIssue({code:e.ZodIssueCode.custom,message:`Container auth selector requires a session runtime binding.`,path:[`bootstrapConfig`,`sessionRuntime`]});return}r.runtime.machineId!==i.machineId&&n.addIssue({code:e.ZodIssueCode.custom,message:`Container auth selector machine must match the session runtime.`,path:[`bootstrapConfig`,`adapterAuth`,`selector`,`runtime`,`machineId`]}),(r.runtime.packageNames.length!==i.packageNames.length||r.runtime.packageNames.some((e,t)=>e!==i.packageNames[t]))&&n.addIssue({code:e.ZodIssueCode.custom,message:`Container auth selector packages must exactly match the session runtime selection.`,path:[`bootstrapConfig`,`adapterAuth`,`selector`,`runtime`,`packageNames`]})}).readonly(),T=e.object({containerId:e.string(),worktreePath:e.string().optional(),worktreeBranch:e.string().optional()}),E=e.object({containerId:e.string(),deleteBranch:e.boolean().default(!1)}),D=e.object({success:e.boolean()}),O=e.object({containerId:e.string()}),k=e.object({state:f,sessionId:e.string(),worktreePath:e.string().optional()}),A=e.object({containerId:e.string(),sessionId:e.string(),worktreePath:e.string().optional()}),j=e.object({containerId:e.string(),sessionId:e.string(),worktreePath:e.string().optional()}),M=e.object({containerId:e.string(),sessionId:e.string(),exitCode:e.number()}),N=e.object({containerId:e.string(),sessionId:e.string()}),P=e.object({id:e.string(),name:e.string(),description:e.string().optional(),scope:e.string(),enabled:e.boolean(),createdAt:e.number(),updatedAt:e.number()}),F=P.extend({type:e.literal(`local`)}),I=P.extend({type:e.literal(`container-local`),image:e.string().optional(),env:e.record(e.string(),e.string()).optional(),busUrl:e.string().optional()}),L=P.extend({type:e.literal(`container-isolated`),image:e.string().optional(),env:e.record(e.string(),e.string()).optional(),busMode:e.enum([`host`,`relay`]),relayUrl:b.optional(),gitCredentialMode:e.enum([`token`,`ssh-agent`]).default(`token`),repoUrl:y.optional()}),R=e.discriminatedUnion(`type`,[F,I,L]),z=e.enum([`local`,`container-local`,`container-isolated`]),B=e.discriminatedUnion(`type`,[F.omit({createdAt:!0,updatedAt:!0}),I.omit({createdAt:!0,updatedAt:!0}),L.omit({createdAt:!0,updatedAt:!0})]),V=e.object({scope:e.string().optional(),type:z.optional()}),H=e.object({executionTargetId:e.string().optional()}),U={get:{request:e.object({id:e.string()}),response:e.object({executionTarget:R.nullable()})},set:{request:e.object({executionTarget:B}),response:e.object({id:e.string()})},delete:{request:e.object({id:e.string()}),response:e.object({deleted:e.boolean()})},list:{request:V,response:e.object({executionTargets:e.array(R)})},resolve:{request:H,response:e.object({executionTarget:R})},created:R,updated:R,deleted:e.object({id:e.string()})};export{O as A,j as C,b as D,y as E,E as M,D as N,C as O,o as S,M as T,A as _,H as a,x as b,z as c,l as d,s as f,a as g,c as h,V as i,k as j,T as k,F as l,w as m,I as n,R as o,u as p,B as r,U as s,L as t,i as u,N as v,f as w,d as x,S as y};
@@ -1 +0,0 @@
1
- import{i as e}from"./definitions-C1pgx0Nq.mjs";import{z as t}from"zod";const n=`stored:providerConfig:`;function r(e){if(!e.startsWith(n))return null;let t=e.slice(22),r=t.lastIndexOf(`:`);if(r===-1)return null;let i=t.slice(0,r),a=t.slice(r+1);return!i||!a||a.includes(`:`)?null:{configId:i,key:a}}function i(e,t){if(!e.startsWith(t))return!1;let n=e.slice(t.length),r=n.indexOf(`:`);return!(r<=0||r>=n.length-1)}function a(e){if(r(e))return!0;if(e.startsWith(`env:`)){let t=e.slice(4);return/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}return e.startsWith(`file:`)?e.length>5:!!i(e,`keychain:`)}const o=t.string().refine(a,{message:`Invalid credential reference format.`}).brand();function s(e,t){if(t.includes(`:`))throw Error(`Credential key must not contain colons: "${t}"`);return o.parse(`${n}${e}:${t}`)}function c(e){return r(e)}const l=o,u=t.object({owner:t.literal(`provider`),providerDefinitionId:t.string().trim().min(1),methodId:t.string().trim().min(1)}).strict(),d=t.object({owner:t.literal(`client`),clientId:t.string().trim().min(1),methodId:t.string().trim().min(1)}).strict(),f=t.discriminatedUnion(`owner`,[u,d]),p=t.object({managerId:t.string().trim().min(1),accountId:t.string().trim().min(1)}).strict(),m=t.object({kind:t.literal(`client`),clientId:t.string().trim().min(1)}).strict(),h=t.object({mode:t.literal(`explicit`),method:f,credentialRefs:t.record(e,l).refine(e=>Object.keys(e).length>0,{message:`Explicit authentication must contain at least one credential ref.`})}).strict(),g=t.object({mode:t.literal(`inferred`),method:d,account:p.optional()}).strict(),_=t.object({mode:t.literal(`none`),method:f}).strict(),v=t.discriminatedUnion(`mode`,[h,g,_]);export{u as a,o as c,p as i,s as l,f as n,v as o,d as r,m as s,l as t,c as u};
@@ -1 +0,0 @@
1
- import{B as e,b as t}from"./handlers-cMBmexF4.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{$ as r,D as i,L as a,W as o,a as s,b as c,c as l,f as u,i as d,j as f,n as ee,q as te,r as ne,tt as re}from"./session-idI1jk5X.mjs";import{n as p}from"./namespace-D7pE2QWv.mjs";import{a as ie,c as ae,o as oe,s as se,v as ce}from"./packages-zDnokBpl.mjs";import{t as le}from"./capability-service-BzKBK0n2.mjs";import"./services/adapter-subsystem/index.mjs";import{i as ue,s as de}from"./model-registry-CoegIvks.mjs";import{t as fe}from"./tool-approval-service-fIZ9x0kL.mjs";import{t as pe}from"./tray-menu-service-Dgedanv-.mjs";import{r as m,t as h}from"./handler-GGOD_ofd.mjs";import{r as me}from"./package-DKnzOvoR.mjs";import{t as he}from"./filesystem-service-Cupz_Z7S.mjs";import{z as g}from"zod";import{createHash as ge}from"node:crypto";import{MakaioError as _e,createMakaioContext as ve}from"@makaio/framework/core";import{MakaioBus as _}from"@makaio/framework/bus";import{AdapterSubjects as ye,ArtifactSubjects as v,CanonicalModelSubjects as be,DEFAULT_HARNESSES as xe,HarnessDefinitionCreateSchema as Se,HarnessSubjects as y,JsonValueSchema as Ce,ToolSubjects as b,TransitionRuleDefinitionSchema as we,WorkflowBlocksSubjects as x,WorkflowSubjects as Te,dep as S,extensionToken as C,validateToolAdapterIdentity as Ee,zodSchemaToJsonRecord as w}from"@makaio/framework/contracts";import{BaseService as T}from"@makaio/framework/service-base";import{registerDrizzleHandlers as E}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as D}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as De,ClientSessionAccountObserveSchema as Oe,ClientSubjects as O}from"@makaio/framework/contracts/client";import{FacetSubjects as k}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as ke,FILE_ACCESS_RULES_KEY as Ae,ToolErrorCodes as A,errorToToolResult as je,extractToolFilePath as Me,toolError as j,toolSuccess as Ne}from"@makaio/framework/tools";import{ConditionSchema as Pe,evaluate as Fe}from"@makaio/framework/rules";import{evaluateSync as Ie}from"@makaio/framework/expression";import{GitService as Le}from"@makaio/framework/git";var M=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function N(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function P(e){return e.priority??0}function Re(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function ze(e,t,n){return e.filter(e=>e.event===t&&N(e.filter,n)).sort((e,t)=>P(t)-P(e))}function Be(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function Ve(e,t){let{confidence:n,representations:r,...i}=e;return{...i,data:t.data,relations:[...t.relations],...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var F=class extends T{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=Re(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Be(s,e)}};if(await t.handler(a),n)throw new M(n.reason,t.id)}return{draft:Ve(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,projectionPolicy:s,skipDefaultProjection:c,meta:l}=n,u=ze(this.allHooks(),e,r),d=this.bus,f=!1;for(let n of u){if(c&&(n.priority??0)<0||f&&(n.priority??0)<0)continue;let u={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,projectionPolicy:s,bus:d,meta:l,preventDefault(){f=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await d.request(v.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(u)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function I(e){return structuredClone(e)}var L=class extends T{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(k.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(k.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(I);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,I(e)),this.bus.emit(k.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(k.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?I(t):void 0}onDestroy(){this.namespaces.clear()}},R=class extends _e{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},z=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new R(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new R(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new R(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new R(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new R(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new R(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new R(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new R(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new R(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new R(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},B=class e extends T{constructor(e=_){super(e)}async onInit(){await this.bus.request(p.ensureReady,{});let e=new z(this.createDeps());this.registerHandler(be.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(p.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(p.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(p.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(p.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(p.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(p.listProviderConfigs,{enabled:!0}),r=D(t);return n.find(e=>D(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(p.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(p.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(de.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(p.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const V={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,critical:!1,create:e=>new B(e.bus)};function He(e){let t=Ee({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?j(A.VALIDATION_FAILED,n.message):Ne(t.effectiveIdentity)}function Ue(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function We(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function Ge(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var H=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??_,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(b.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(b.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(b.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${b.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(b.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return j(A.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=He(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=Ge(),l=Date.now();await this.bus.emit(b.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=j(A.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(b.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=je(t);return await this.bus.emit(b.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=Ue(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[ke]:i}}let r=ve({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return j(A.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return j(A.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=g.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=g.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await We(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},U=class extends T{triggersByExtension=new Map;stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(x.list,e=>{e.setResult({triggers:this.listTriggers(),steps:this.listSteps()})})}async register(e,t){let n=[],r=[],i=this.snapshotExtensionState(e),a=new Set;for(let e of this.triggersByExtension.values())for(let t of e)a.add(t.metadata.name);for(let e of this.stepsByExtension.values())for(let t of e)a.add(t.metadata.name);if(t.triggers)for(let r of t.triggers)this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,a),a.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:w(r.configSchema),outputSchema:w(r.outputSchema)});if(t.steps)for(let n of t.steps)this.assertExtensionNamespace(e,n.metadata),this.assertNoCollision(n.metadata,a),a.add(n.metadata.name),r.push({metadata:{...n.metadata,extensionName:e},configSchema:w(n.configSchema),inputSchema:w(n.inputSchema),outputSchema:w(n.outputSchema),runs:structuredClone(n.runs)});if(n.length>0&&this.triggersByExtension.set(e,n),r.length>0&&this.stepsByExtension.set(e,r),n.length>0||r.length>0){this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,i),t}}}async deregister(e){let t=this.snapshotExtensionState(e),n=this.triggersByExtension.delete(e),r=this.stepsByExtension.delete(e);if(n||r){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listTriggers(){return this.getCache().triggers.map(Ke)}listSteps(){return this.getCache().steps.map(qe)}async emitChanged(e,t){await this.bus.emit(x.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,triggers:[...this.triggersByExtension.values()].flat(),steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{triggers:this.triggersByExtension.get(e),steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.triggers?this.triggersByExtension.set(e,t.triggers):this.triggersByExtension.delete(e),t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function Ke(e){return{metadata:W(e.metadata),configSchema:structuredClone(e.configSchema),outputSchema:structuredClone(e.outputSchema)}}function qe(e){return{metadata:W(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function W(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const G=`workflow.start`;function Je(e){return()=>({async execute(t,n){let{input:r={},executionHints:i}=t,{workflowId:a}=r;if(typeof a!=`string`||a.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Te.start,{workflowId:a,input:Ye(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType},executionHints:i})}})}function Ye(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=Ie(n,Xe(t)),i=Ce.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function Xe(e){let t={...e};return{...t,ctx:t}}var K=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(G,Je(e)),this.factoriesBySource.set(`__builtin__`,[G])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},Ze=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=we.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Pe.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},Qe=class extends T{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new Ze,this.actionRegistry=new K(e)}onInit(){this.registerHandler(v.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(v.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(v.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(v.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Fe(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function $e(e){return async t=>{let n=await et(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=tt(t),o=await e.requestOptional(O.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await ct(e,r,i,s)}}}async function et(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function tt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:ot(e.payload)};return{observation:t,accountObserveRequest:nt(t)}}function nt(e){let t=e.payload,n=rt(t),r=it(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:at(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function rt(e){return st(e.accountInfo)??e}function it(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return g.array(De).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function at(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function ot(e){return structuredClone(e)}function st(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function ct(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const lt=C(`session-storage`).name;var ut=class extends T{constructor(e=_){super(e)}onInit(){let e=$e(this.bus);this.registerHandler(O.session.account.observe,async t=>{t.setResult(await e(Oe.request.parse(t.payload)))})}};const dt={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[S(lt),S(`makaio.clients-core`)],critical:!1,create:e=>new ut(e.bus)},ft={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function pt(e){let{harnesses:t}=await e.request(m.list,{}),n=new Set(t.map(e=>e.id));for(let t of xe){if(n.has(t.id))continue;let r={...t};await e.request(m.set,{harness:r})}}function J(e,t,n){return e??t??n}var mt=class extends T{static storage={drizzle:h};constructor(e=_){super(e)}async onInit(){await pt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(y.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(y.list,async e=>{let{harnesses:t}=await this.bus.request(m.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(y.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(y.delete,async e=>{let{deleted:t}=await this.bus.request(m.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(y.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(y.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(y.getSchema,({setResult:e})=>{let{$schema:t,...n}=g.toJSONSchema(Se);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(m.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(m.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(m.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(m.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(m.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(m.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(ye.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${ge(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const ht={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E(h)},create:e=>new mt(e.bus)},Y=C(`session-storage`),X=C(`session-bridge`),Z=C(`session`),gt=C(`session-orchestrator`),_t=C(`observed-session-ingestion`),Q=C(`tool-registry`),vt=C(`tool-approval`),yt=C(`tray-menu`),bt=C(`capability`),xt=C(`model-registry`),St=C(`workflow-block-registry`),Ct=C(`transition-pipeline`),wt=C(`filesystem`),Tt=C(`git`),$=C(`artifact-lifecycle-hook-registry`),Et=C(`facet-namespace-registry`),Dt={name:$.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new F(e.bus)},Ot={name:Et.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new L(e.bus)},kt={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:E((n,a)=>{let o=[],u=e=>{for(let t=o.length-1;t>=0;--t)try{o[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}o.length=0};try{o.push(i(n,a)),o.push(e(n,a)),o.push(r(n,a)),o.push(te(n,a)),o.push(t(n,a)),o.push(f(n,a)),o.push(l(n,a)),o.push(c(n,a)),o.push(s(n,a)),o.push(d(n)),o.push(ne(n)),o.push(ee(n))}catch(e){throw u(`rollback`),e}return()=>{u(`shutdown`)}})}},At={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[S(Y.name)],critical:!0,create:e=>new a(e.bus)},jt={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[S(X.name)],critical:!0,create:e=>new re(e.bus)},Mt={name:gt.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[S(Z.name),S(V.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new o(e.bus,e.machineId)},Nt={name:_t.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[S(X.name)],critical:!1,create:e=>new u(e.bus)},Pt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new H({bus:e.bus})},Ft={name:vt.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[S(Q.name)],critical:!0,create:e=>new fe(e.bus)},It={name:yt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new pe(e.bus)},Lt={name:bt.name,displayName:`Capability`,version:`0.1.0`,critical:!0,create:e=>new le(e.bus)},Rt={name:St.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new U(e.bus)},zt={name:Ct.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new Qe(e.bus)},Bt={name:wt.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new he(e.bus,e.machineId)},Vt={name:Tt.name,displayName:`Git`,version:`0.1.0`,dependencies:[S(wt.name)],critical:!0,create:e=>new Le(e.bus)};function Ht(e){return{name:xt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new ue({bus:t.bus,fetcher:e})}}const Ut=[ce,Dt,Ot,ae,se,ie,oe,kt,At,dt,jt,Mt,Nt,me,Pt,Ft,It,Lt,ht,V,ft,Rt,zt,Vt,Bt];function Wt(){let e=new Map;return{filter:e=>!!e.tools?.createToolsets,async processActivated(t,n,r){let i=r.getService(Q);if(!i)throw Error(`ToolRegistry is not available. Ensure toolRegistryPackage is included in the composition root.`);let a=n.tools.createToolsets(r),o=[];try{for(let e of a)await i.register(e),o.push(()=>i.deregister(e.metadata.name))}catch(e){for(let e=o.length-1;e>=0;--e)try{await o[e]()}catch(e){console.error(`[ToolContributionProcessor] Rollback error for "${t}":`,e)}throw e}e.set(t,o)},async processStopped(t){let n=e.get(t);if(n){for(let e=n.length-1;e>=0;--e)try{await n[e]()}catch(e){console.error(`[ToolContributionProcessor] Deregister error for "${t}":`,e)}e.delete(t)}}}}export{Rt as A,R as B,Mt as C,Pt as D,Ft as E,U as F,F as H,H as I,V as L,Ze as M,K as N,zt as O,G as P,B as R,At as S,kt as T,M as U,L as V,Dt as _,bt as a,Ot as b,X as c,Z as d,vt as f,St as g,yt as h,$ as i,Qe as j,It as k,gt as l,Ct as m,Me as n,Et as o,Q as p,Wt as r,xt as s,Ae as t,Y as u,Lt as v,jt as w,Ut as x,Ht as y,z};
@@ -1 +0,0 @@
1
- import{z as e}from"zod";const t=[`batch`,`streaming`],n=[`buffered`,`streaming`],r=e.enum([`none`,`low`,`medium`,`high`,`extra-high`]),i=e.union([e.number(),e.string()]),a=e.object({none:i,low:i,medium:i,high:i,"extra-high":i}).partial(),o=e.object({modes:e.array(e.enum(t)).nonempty(),vocabularyBiasing:e.boolean().optional()}),s=e.object({modes:e.array(e.enum(n)).nonempty(),voiceSelection:e.boolean().optional(),voiceInstructions:e.boolean().optional(),outputFormats:e.array(e.string()).optional()}),c=e.object({vision:e.boolean().optional(),toolCalling:e.boolean().optional(),parallelToolCalls:e.boolean().optional(),structuredOutput:e.boolean().optional(),pdfUpload:e.boolean().optional(),speechToText:o.optional(),textToSpeech:s.optional()}),l=e.object({inputPerMillion:e.number(),inputCachedPerMillion:e.number().optional(),cacheWritePerMillion:e.number().optional(),outputPerMillion:e.number()}),u=e.object({multiplier:e.number()}),d=e.object({token:l.optional(),request:u.optional()}),f=e.object({maxOutputTokens:e.number().optional(),capabilities:c.optional(),pricing:d.optional(),includedInSubscription:e.boolean().optional(),description:e.string().optional()}),p=e.object({name:e.string(),friendlyName:e.string().optional(),family:e.string().optional(),contextWindowSize:e.number(),labId:e.string(),supportedReasoningLevels:a.optional(),metadata:f.optional()}),m=p,h=e.enum([`disabled`,`enabled`,`visible`]),g=e.enum([`allowlist`,`show-all`]);function _(e,t,n){return n?.[e]??(t===`allowlist`?`disabled`:`visible`)}export{r as a,t as c,p as i,n as l,h as n,m as o,_ as r,a as s,g as t};
@@ -1 +0,0 @@
1
- import{h as e,m as t,s as n}from"./schemas-BRxU_oqL.mjs";import{i as r,r as i,t as a}from"./json-value-DmU8ibo_.mjs";import"./artifact-DCkizHkS.mjs";import{a as o}from"./visibility-Cb62p9bv.mjs";import"./model-uE5IyUFJ.mjs";import{t as s}from"./provider-context-DOsjOjiR.mjs";import{a as c,o as l}from"./schemas-BJ8VMXhO.mjs";import{z as u}from"zod";import{createBusNamespace as d,getFullSubjectForSubjectDefinition as f,observability as p}from"@makaio/framework/core";const m=u.enum([`wait-in-process`,`exit-and-redispatch`,`exit-and-resume`]),ee=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`path`),path:u.string().min(1)}).strict(),u.object({kind:u.literal(`source`),filename:u.string().min(1),source:u.string()}).strict()]),h=u.object({source:ee.optional(),requirements:u.object({isolation:u.enum([`local`,`container`,`remote`]).optional(),capabilities:u.array(u.string()).optional()}).catchall(r).optional(),providers:u.record(u.string(),r).optional()}).catchall(r),g=u.object({kind:u.string().min(1),id:u.string().min(1)});function te(e){return`${re(e.kind)}:${re(e.id)}`}function ne(e){let t=ie(e);if(t<1)throw Error(`Invalid artifact ref key: ${e}`);let n=ae(e.slice(t+1));if(n.length===0)throw Error(`Invalid artifact ref key (empty id): ${e}`);return{kind:ae(e.slice(0,t)),id:n}}function re(e){return e.replace(/\\/g,`\\\\`).replace(/:/g,`\\:`)}function ie(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(t){t=!1;continue}if(r===`\\`){t=!0;continue}if(r===`:`)return n}return-1}function ae(e){let t=``,n=!1;for(let r of e){if(n){if(r!==`\\`&&r!==`:`)throw Error(`Invalid artifact ref key component: ${e}`);t+=r,n=!1;continue}if(r===`\\`){n=!0;continue}t+=r}if(n)throw Error(`Invalid artifact ref key component: ${e}`);return t}const oe=u.enum([`completed`,`failed`,`cancelled`]),se=u.object({status:oe,completedAt:u.number().int().nonnegative(),error:u.string().min(1).optional(),reason:u.string().min(1).optional()}).strict(),ce=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),finalizerId:u.string().min(1),transitionKey:u.string().min(1),claimToken:u.string().min(1),intent:se,claimedAt:u.number().int().nonnegative()}).strict(),le=u.object({accepted:u.boolean()}).strict(),ue=/^[a-z0-9]+(?:[._-][a-z0-9]+)*$/,_=u.string().regex(ue,`Workflow finalizer IDs must be lowercase dot, dash, or underscore separated names.`),v=u.string().regex(ue,`Workflow delegate result finalizer IDs must be lowercase dot, dash, or underscore separated names.`),de=u.object({toolName:u.string().min(1),outcome:u.enum([`success`,`failure`]).optional(),artifact:u.object({kind:u.string().min(1),id:u.string().min(1),revision:u.string().min(1)}).strict().optional()}).strict().superRefine((e,t)=>{e.artifact!==void 0&&e.outcome!==`success`&&t.addIssue({code:`custom`,path:[`artifact`],message:`requires an explicit successful outcome`})}),fe=u.object({durationMs:u.number().int().nonnegative(),inputTokens:u.number().int().nonnegative().optional(),outputTokens:u.number().int().nonnegative().optional(),cachedInputTokens:u.number().int().nonnegative().optional(),toolCallCount:u.number().int().nonnegative().optional(),binding:u.object({adapterName:u.string().min(1),providerConfigId:u.string().min(1).optional(),providerDefinitionId:u.string().min(1).optional(),model:u.string().min(1).optional(),auth:u.object({mode:u.enum([`explicit`,`inferred`,`none`]),owner:u.enum([`provider`,`client`]),methodId:u.string().min(1)}).strict().optional()}).strict()}).strict(),pe=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),nodeType:u.enum([`delegate-agent`,`delegate-role`]),rawResult:r,toolObservations:u.array(de),economics:fe.optional()}).strict(),me=u.object({output:r}).strict();function he(e){if(!_.safeParse(e).success)throw Error(`Invalid workflow finalizer ID: "${e}"`);let t=`workflow-finalizer:${e}`,n=d(t,{finalize:{request:ce,response:le}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}function ge(e){if(!v.safeParse(e).success)throw Error(`Invalid workflow delegate result finalizer ID: "${e}"`);let t=`workflow-delegate-finalizer:${e}`,n=d(t,{finalize:{request:pe,response:me}});return{namespaceDomain:t,namespace:n,subjects:n.subjects}}const y=u.union([u.string(),u.number(),u.boolean(),u.null()]),_e=u.union([y,u.object({$in:u.array(y)}).strict(),u.object({$ne:y}).strict(),u.object({$exists:u.boolean()}).strict(),u.object({$startsWith:u.string()}).strict(),u.object({$endsWith:u.string()}).strict()]),ve=u.record(u.string(),_e),ye=u.object({type:u.literal(`bus-event`),subject:u.string(),filter:ve.optional(),filterExpression:u.string().optional()}),be=u.object({type:u.literal(`extension`),extensionType:u.string().regex(/^[a-z0-9-]+:[a-z0-9._-]+$/),config:a.optional()}),xe=u.discriminatedUnion(`type`,[u.object({type:u.literal(`manual`)}),u.object({type:u.literal(`cron`),schedule:u.string(),timezone:u.string().optional()}),u.object({type:u.literal(`webhook`),event:u.string(),branch:u.string().optional(),repo:u.string().optional()}),be,ye]),b=u.discriminatedUnion(`type`,[u.object({type:u.literal(`global`)}).strict(),u.object({type:u.literal(`workspace`),id:u.string().min(1)}).strict(),u.object({type:u.literal(`session`),id:u.string().min(1)}).strict(),u.object({type:u.literal(`external`),kind:u.string().min(1),id:u.string().min(1)}).strict()]),x=u.string().min(1),S=u.object({kind:u.string().min(1),schemaVersion:u.string().min(1),scope:e,resolve:u.string().min(1).optional(),create:u.string().min(1).optional(),statusPath:u.string().min(1).optional()}),Se=u.object({kind:u.string().min(1),schemaVersion:u.string().min(1),scope:e,dataExpression:u.string().optional()}),Ce=u.object({file:u.string().min(1),line:u.number().int().positive().optional(),column:u.number().int().positive().optional()}),C=u.enum([`station`,`delegate-agent`,`delegate-role`,`parallel`,`gate`,`iterate`,`iterate-chain`,`loop`,`sequence`]),we=u.enum([`all-settled`,`fail-fast`]),w=u.object({id:u.string().min(1),when:x.optional(),skip:x.optional(),writes:u.array(Se).optional()}),T=u.lazy(()=>u.discriminatedUnion(`type`,[D,O,k,Te,Ee,De,Oe,Ae,E])),E=w.extend({type:u.literal(`sequence`),nodes:u.lazy(()=>u.array(T))}),D=w.extend({type:u.literal(`station`),prompt:u.string().min(1),role:u.string().min(1).optional(),outputSchema:i.optional(),timeoutMs:u.number().int().positive().optional(),completion:c.optional()}),O=w.extend({type:u.literal(`delegate-agent`),agentId:u.string().min(1),inputExpression:u.string().optional(),outputSchema:i.optional(),allowedTools:u.array(u.string()).optional(),completion:c.optional(),resultFinalizerId:v.optional()}),k=w.extend({type:u.literal(`delegate-role`),role:u.string().min(1),prompt:u.string().min(1),outputSchema:i.optional(),allowedTools:u.array(u.string()).optional(),resultFinalizerId:v.optional(),timeoutMs:u.number().int().positive().optional(),completion:c.optional()}),Te=w.extend({type:u.literal(`parallel`),mode:we.optional(),branches:u.record(u.string().min(1),u.lazy(()=>E))}),Ee=w.extend({type:u.literal(`gate`),prompt:u.string().min(1),title:u.string().optional(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().int().positive().nullable(),resumeSchema:i.optional()}),De=w.extend({type:u.literal(`iterate`),collection:u.string().min(1),body:u.lazy(()=>E),concurrency:u.number().int().nonnegative().optional()}),Oe=w.extend({type:u.literal(`iterate-chain`),collection:u.string().min(1),body:u.lazy(()=>E)}),ke=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`pass`)}).strict(),u.object({kind:u.literal(`loop`)}).strict(),u.object({kind:u.literal(`escalate`),reason:u.string().min(1)}).strict()]),Ae=w.extend({type:u.literal(`loop`),maxRounds:u.number().int().positive(),body:u.lazy(()=>E),gate:u.object({handler:u.string().min(1),input:u.string().min(1).optional(),config:r.optional(),escalation:u.object({title:u.string().optional(),prompt:u.string().min(1),resumeSchema:i.optional(),autoAction:u.enum([`approve`,`reject`]).default(`reject`),timeoutMs:u.number().int().positive().nullable().default(null)}).strict().optional()}).strict()}),je=u.object({factoryId:u.string().min(1),preview:u.array(u.lazy(()=>T)).optional(),sourceLocation:Ce.optional()}),Me=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`editor`)}).strict(),u.object({kind:u.literal(`extension`),extension:u.string().min(1),externalId:u.string().min(1).optional(),syncedAt:u.string().datetime().optional(),metadata:a.default({})}).strict()]),Ne=u.object({schema:i,initial:r.optional()}),A=u.object({id:u.string().min(1),name:u.string().optional(),description:u.string().optional(),inputSchema:i.optional(),configSchema:i.optional(),outputSchema:i.optional(),state:Ne.optional(),artifact:S.optional(),root:E,triggers:u.array(xe).optional(),scope:b.default({type:`global`}),canvasLayout:u.record(u.string(),r).optional(),source:Me.optional(),successFinalizerId:_.optional(),executionHints:h.optional()}),j=u.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),M=u.object({id:u.string(),workflowId:u.string(),coordinatorSessionId:u.string().optional(),status:j,inputs:r,config:a.optional(),startedAt:u.number(),completedAt:u.number().optional(),error:u.string().optional(),reason:u.string().optional(),triggerPayload:a.optional(),scope:b,artifactRef:g.optional()}),Pe=u.object({frameId:u.string(),nodeId:u.string(),nodeType:C,path:u.array(u.string()),parentFrameId:u.string().optional(),status:u.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().optional(),output:r.optional(),error:u.string().optional(),startedAt:u.number().optional(),completedAt:u.number().optional()}),N=u.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),Fe=u.object({executionId:u.string(),nodeId:u.string(),frameId:u.string(),schema:i,prompt:u.string().optional(),status:N,autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().int().positive().nullable(),resumeData:r.optional(),reason:u.string().optional(),createdAt:u.number(),resolvedAt:u.number().optional()}),P=u.object({adapterName:u.string().min(1),providerConfigId:u.string().min(1).optional(),model:u.string().optional(),reasoningEffort:o.optional(),harnessId:u.string().optional(),systemPrompt:u.string().optional(),contextMode:l.optional(),providerContext:s.optional(),adapterConfig:a.optional(),tools:u.array(u.string()).optional(),disallowedTools:u.array(u.string()).optional(),allowedDirectories:u.array(u.string()).optional(),completion:c.optional()}),Ie=P,Le=u.object({scope:b.optional()}),Re=u.object({startedAt:u.number(),id:u.string()}),ze=1,Be=500,Ve=50,He=u.object({workflowId:u.string().min(1).optional(),scope:b.optional(),status:j.optional(),artifactRef:g.optional(),limit:u.number().int().min(1).max(500).default(50),cursor:Re.optional()}).refine(e=>e.workflowId!==void 0||e.scope!==void 0||e.artifactRef!==void 0,{message:`Either workflowId, scope, or artifactRef is required.`}),Ue=200,We=100,Ge=10,Ke=u.object({refs:u.array(g).min(1).max(200),limitPerRef:u.number().int().min(1).max(100).default(10)}),qe=u.object({executionId:u.string().min(1).optional(),status:N.optional(),limit:u.number().int().min(1).max(500).default(50)}).refine(e=>e.executionId!==void 0||e.status!==void 0,{message:`Either executionId or status is required.`}),F=u.enum([`station`,`delegate-agent`,`delegate-role`,`gate`]),Je=u.enum([`station`]),Ye=u.object({input:u.number().int().nonnegative(),output:u.number().int().nonnegative(),cached:u.number().int().nonnegative().optional()}),Xe=u.object({duration:u.number().nonnegative(),tokenUsage:Ye.optional(),estimatedCost:u.number().nonnegative().optional(),toolCalls:u.number().int().nonnegative().optional()}),Ze=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`none`)}).strict(),u.object({kind:u.literal(`hmac`),secret:u.string().min(1)}).strict()]),Qe=u.object({cwd:u.string().min(1),env:u.record(u.string(),u.string()).optional()}),$e=u.object({executionId:u.string().min(1),stepId:u.string().min(1),reason:u.string().optional()});function et(e){let t=e.indexOf(`.`);if(t<=0||t===e.length-1)throw Error(`Invalid step cancel subject: ${e}`);return{subject:e.slice(t+1),$meta:{namespace:e.slice(0,t),isRequest:!1,payload:{},local:!1,channel:!1}}}const tt=u.object({executionId:u.string().min(1),reason:u.string().optional()});function nt(e){let t=e.indexOf(`.`);if(t<=0||t===e.length-1)throw Error(`Invalid workflow cancel subject: ${e}`);return{subject:e.slice(t+1),$meta:{namespace:e.slice(0,t),isRequest:!1,payload:{},local:!1,channel:!1}}}const rt=u.object({stepId:u.string().min(1),executionId:u.string().min(1),workflowId:u.string().min(1),coordinatorSessionId:u.string().min(1),stepType:Je,stepDefinition:D,resolvedInputs:a,busUrl:u.string().optional(),busAuth:Ze.default({kind:`none`}),platformDefaults:Qe,cancelSubject:u.string().min(1)}).superRefine((e,t)=>{e.stepType!==e.stepDefinition.type&&t.addIssue({code:`custom`,path:[`stepDefinition`,`type`],message:`stepDefinition.type must match stepType (${e.stepType})`})}),it=`Workflow cancelled`,at=u.object({status:u.enum([`completed`,`failed`]),output:r.optional(),error:u.string().optional(),telemetry:Xe}),ot=u.enum([`running`,`completed`,`failed`,`skipped`]),st=u.object({executionId:u.string().min(1),frameId:u.string().min(1),stepId:u.string().min(1),stepType:F,status:ot,startedAt:u.number().optional(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),inputTokens:u.number().int().nonnegative().optional(),outputTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative().optional(),toolCallCount:u.number().int().nonnegative().optional(),input:u.string().optional(),output:u.string().optional()}),ct=u.enum([`triggered-by`,`feedback-loop`,`rerun-of`]),I=u.object({sourceExecutionId:u.string().min(1),targetExecutionId:u.string().min(1),linkType:ct,metadata:u.record(u.string(),u.unknown()).optional()}),lt=u.object({sourceExecutionId:u.string().min(1).optional(),targetExecutionId:u.string().min(1).optional()}).refine(e=>e.sourceExecutionId!==void 0||e.targetExecutionId!==void 0,{message:`Either sourceExecutionId or targetExecutionId is required.`}),ut={RUN_CONTEXT_NOT_FOUND:`WORKFLOW_RUN_CONTEXT_NOT_FOUND`,SNAPSHOT_UNAVAILABLE:`WORKFLOW_SNAPSHOT_UNAVAILABLE`,SOURCE_MISMATCH:`WORKFLOW_SOURCE_MISMATCH`,NOT_EXECUTABLE:`WORKFLOW_NOT_EXECUTABLE`,HANDLER_UNAVAILABLE:`WORKFLOW_HANDLER_UNAVAILABLE`};var dt=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`WorkflowError`}};const L=u.string().refine(e=>e===``||e.startsWith(`/`),{message:`JSON Patch paths must be empty or start with "/".`}),ft=u.object({op:u.enum([`add`,`replace`,`test`]),path:L,value:r}).strict(),pt=u.object({op:u.literal(`remove`),path:L}).strict(),mt=u.object({op:u.enum([`move`,`copy`]),path:L,from:L}).strict(),R=u.discriminatedUnion(`op`,[ft,pt,mt]),ht=u.object({type:u.literal(`artifact-query`),query:n,select:u.enum([`latest`,`all`]),optional:u.boolean().optional()}),gt=u.object({type:u.literal(`bus-request`),subject:u.string().min(1),payload:u.record(u.string(),u.unknown()).optional(),optional:u.boolean().optional()}),_t=u.discriminatedUnion(`type`,[ht,gt]),vt=u.object({type:u.literal(`artifact`),kind:u.string().min(1),schemaVersion:u.string().min(1),scope:e,metadata:u.record(u.string(),u.unknown()).optional()}),yt=u.object({type:u.literal(`bus-event`),subject:u.string().min(1),payload:u.record(u.string(),u.unknown()).optional()}),bt=u.discriminatedUnion(`type`,[vt,yt]),xt=u.object({content:u.string(),metadata:u.record(u.string(),u.unknown()).optional()}),St=u.object({sources:u.record(u.string(),xt)}),Ct=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`none`)}).strict(),u.object({kind:u.literal(`hmac`),secret:u.string().min(1)}).strict()]),z=u.discriminatedUnion(`kind`,[u.object({kind:u.literal(`path`),path:u.string().min(1)}).strict(),u.object({kind:u.literal(`source`),filename:u.string().min(1),source:u.string()}).strict(),u.object({kind:u.literal(`definition`),workflowId:u.string().min(1)}).strict()]),wt=u.object({source:z,definition:A.optional(),executionId:u.string().min(1),workflowId:u.string().min(1),triggerPayload:a.default({}),inputs:r.default({}),config:a.optional(),artifactRef:g.optional(),scope:b.default({type:`global`}),busUrl:u.string().optional(),busAuth:Ct.default({kind:`none`}),context:u.object({repoPath:u.string().min(1),makaioHome:u.string().min(1),os:u.enum([`darwin`,`linux`,`win32`]),arch:u.string().min(1),worktree:u.string().optional()}),env:u.record(u.string(),u.string()).default({}),coordinatorSessionId:u.string().min(1),executionHints:h.optional(),cancelSubject:u.string().min(1),suspensionStrategy:m.default(`wait-in-process`),terminalAuthority:u.enum([`worker`,`authority`]).optional()}),B=u.object({executionId:u.string().min(1),workflowId:u.string().min(1)}),Tt=u.discriminatedUnion(`status`,[B.extend({status:u.literal(`completed`),artifact:t.optional()}).strict(),B.extend({status:u.literal(`failed`),error:u.string().min(1)}).strict(),B.extend({status:u.literal(`cancelled`),reason:u.string().min(1).optional()}).strict(),B.extend({status:u.literal(`paused`),pausedAtGateId:u.string().min(1),pausedAtFrameId:u.string().min(1)}).strict()]),Et=u.object({name:u.string().min(1),importPath:u.string().min(1)}),Dt=u.object({packages:u.array(Et).default([])}),Ot=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),source:z,definitionSnapshot:A.optional(),workerManifest:Dt.default({packages:[]}),inputs:r.default({}),config:a.optional(),scope:b.default({type:`global`}),triggerPayload:a.default({}),artifactRef:g.optional(),coordinatorSessionId:u.string().min(1),executionHints:h.optional(),dispatchMetadata:a.optional(),cancelSubject:u.string().min(1),context:u.object({repoPath:u.string().min(1),makaioHome:u.string().min(1),os:u.enum([`darwin`,`linux`,`win32`]),arch:u.string().min(1),worktree:u.string().optional()}),env:u.record(u.string(),u.string()).default({}),createdAt:u.number(),suspensionStrategy:m.default(`wait-in-process`),terminalAuthority:u.enum([`worker`,`authority`]).optional()}).superRefine((e,t)=>{e.source.kind===`definition`&&e.definitionSnapshot===void 0&&t.addIssue({code:u.ZodIssueCode.custom,path:[`definitionSnapshot`],message:`definitionSnapshot is required when source.kind is "definition"`})}),V=u.object({executionId:u.string().min(1),workflowId:u.string().min(1),workflowName:u.string().optional(),status:u.enum([`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]),startedAt:u.number(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),totalInputTokens:u.number().int().nonnegative().optional(),totalOutputTokens:u.number().int().nonnegative().optional(),totalEstimatedCost:u.number().nonnegative().optional(),error:u.string().optional(),failedNodeId:u.string().optional()}),kt=u.object({executionId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),nodeType:C,path:u.array(u.string()),status:u.enum([`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]),attempt:u.number().int().nonnegative(),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().optional(),startedAt:u.number().optional(),completedAt:u.number().optional(),durationMs:u.number().nonnegative().optional(),inputTokens:u.number().int().nonnegative().optional(),outputTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative().optional(),error:u.string().optional()}),At=u.object({executionId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),artifact:S,revision:u.string().min(1).optional(),writtenAt:u.number()}),jt=u.object({executionId:u.string().min(1),nodeId:u.string().min(1),frameId:u.string().min(1),status:u.enum([`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]),prompt:u.string().optional(),openedAt:u.number(),resolvedAt:u.number().optional(),resumeData:r.optional()}),Mt=u.object({executionId:u.string().min(1),inputTokens:u.number().int().nonnegative(),outputTokens:u.number().int().nonnegative(),cachedTokens:u.number().int().nonnegative().optional(),estimatedCost:u.number().nonnegative(),byModel:u.record(u.string(),u.object({inputTokens:u.number().int().nonnegative(),outputTokens:u.number().int().nonnegative(),estimatedCost:u.number().nonnegative()})).optional()}),Nt=u.object({total:u.number().int().nonnegative(),byStatus:u.object({pending:u.number().int().nonnegative(),running:u.number().int().nonnegative(),paused:u.number().int().nonnegative(),finalizing:u.number().int().nonnegative(),completed:u.number().int().nonnegative(),failed:u.number().int().nonnegative(),cancelled:u.number().int().nonnegative()}),totalDurationMs:u.number().nonnegative(),totalInputTokens:u.number().int().nonnegative(),totalOutputTokens:u.number().int().nonnegative(),totalEstimatedCost:u.number().nonnegative()}),Pt=u.object({executionId:u.string().min(1),frameId:u.string().min(1),factoryId:u.string().min(1),materializedNodeIds:u.array(u.string().min(1)),factoryInput:i.optional(),materializedAt:u.number()}),Ft=`wfx-ext-`,It=u.object({frameId:u.string().min(1).optional(),nodeId:u.string().min(1),nodeType:F,path:u.array(u.string().min(1)).optional(),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().min(1).optional(),startedAt:u.number().int().nonnegative().optional()}).strict(),Lt=u.object({frameId:u.string().min(1),nodeId:u.string().min(1),nodeType:F,path:u.array(u.string().min(1)),attempt:u.number().int().nonnegative().default(0),iteration:u.number().int().nonnegative().optional(),branchKey:u.string().min(1).optional(),startedAt:u.number().int().nonnegative(),durationMs:u.number().int().nonnegative().optional()}).strict(),Rt=u.object({executionId:u.string().startsWith(Ft,{message:`executionId must use the wfx-ext- prefix`}).optional(),name:u.string().min(1),startedAt:u.number().int().nonnegative().optional(),scope:b.optional(),artifactRef:g.optional(),input:r.optional(),triggerPayload:a.optional(),frame:It.optional()}).superRefine((e,t)=>{e.executionId!==void 0&&e.startedAt===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`startedAt is required when executionId is supplied`,path:[`startedAt`]})}),zt=u.object({executionId:u.string().min(1),status:u.enum([`completed`,`failed`,`cancelled`]),error:u.string().min(1).optional(),reason:u.string().min(1).optional(),completedAt:u.number().nonnegative().overwrite(e=>Math.trunc(e)).optional(),frame:Lt.optional()}).superRefine((e,t)=>{if(e.status===`failed`&&e.error===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'failed' requires a non-empty 'error' message`,path:[`error`]}),e.status===`cancelled`&&e.reason===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'cancelled' requires a non-empty 'reason' string`,path:[`reason`]}),e.status===`completed`&&e.error!==void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'completed' must not carry an 'error'`,path:[`error`]}),e.status===`completed`&&e.reason!==void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`status 'completed' must not carry a 'reason'`,path:[`reason`]}),e.frame!==void 0&&e.completedAt===void 0&&t.addIssue({code:u.ZodIssueCode.custom,message:`completedAt is required when frame metadata is supplied`,path:[`completedAt`]}),e.frame!==void 0&&e.completedAt!==void 0){let n=e.completedAt-e.frame.startedAt;n<0&&t.addIssue({code:u.ZodIssueCode.custom,message:`completedAt must not precede frame.startedAt`,path:[`completedAt`]}),e.frame.durationMs!==void 0&&e.frame.durationMs!==n&&t.addIssue({code:u.ZodIssueCode.custom,message:`frame.durationMs must equal completedAt - frame.startedAt`,path:[`frame`,`durationMs`]})}}),Bt=u.object({message:u.string().min(1),details:u.string().min(1).optional(),kind:u.string().min(1).optional(),metadata:r.optional()}).strict(),H=u.object({executionId:u.string(),stepId:u.string(),stepType:u.enum([`station`,`delegate-agent`,`delegate-role`,`gate`])}),U=H.extend({stepType:u.literal(`gate`)}),Vt=u.discriminatedUnion(`source`,[U.extend({frameId:u.string(),action:u.enum([`approve`,`reject`]),source:u.literal(`user`),reason:u.string().optional()}),U.extend({frameId:u.string(),action:u.enum([`approve`,`reject`]),source:u.literal(`timeout`)}),U.extend({frameId:u.string(),source:u.literal(`cancelled`)})]),Ht=U.extend({workflowId:u.string(),workflowName:u.string(),title:u.string(),message:u.string(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().nullable(),openedAt:u.number()}),Ut={getDefinition:{request:u.object({id:u.string()}),response:u.object({workflow:A.nullable()})},setDefinition:{request:u.object({workflow:A}),response:u.object({id:u.string()})},deleteDefinition:{request:u.object({id:u.string()}),response:u.object({deleted:u.boolean()})},listDefinitions:{request:Le,response:u.object({workflows:u.array(A)})},"definition.created":A,"definition.updated":A,"definition.deleted":u.object({id:u.string()}),start:{request:u.object({workflowId:u.string(),input:r.optional(),config:r.optional(),artifactRef:g.optional(),scope:b.optional(),executionHints:h.optional(),parentSessionId:u.string().optional(),triggerPayload:a.optional()}),response:u.object({executionId:u.string()})},rerun:{request:u.object({executionId:u.string().min(1),mode:u.enum([`snapshot`,`current`]),input:r.optional(),config:r.optional(),artifactRef:g.optional(),scope:b.optional(),executionHints:h.optional(),parentSessionId:u.string().optional(),triggerPayload:a.optional(),reason:u.string().min(1).optional()}),response:u.object({executionId:u.string()})},cancel:{request:u.object({executionId:u.string(),reason:u.string().optional()}),response:u.object({cancelled:u.boolean()})},bootstrapAuthorityState:{request:u.object({executionId:u.string().min(1),terminalAuthority:u.literal(`authority`),definition:A}).strict(),response:u.object({persisted:u.boolean()})},acceptAuthorityRunnerResult:{request:u.object({executionId:u.string().min(1),result:Tt.refine(e=>e.status!==`paused`,{message:`Authority runner results must be terminal`})}).strict().superRefine((e,t)=>{e.result.executionId!==e.executionId&&t.addIssue({code:u.ZodIssueCode.custom,path:[`result`,`executionId`],message:`result.executionId must match executionId`})}),response:u.object({accepted:u.boolean(),status:j})},getExecution:{request:u.object({executionId:u.string()}),response:u.object({execution:M.nullable()})},listExecutions:{request:He,response:u.object({executions:u.array(M)})},listExecutionsByArtifactRefs:{request:Ke,response:u.object({executionsByRef:u.record(u.string(),u.array(M))})},listSpans:{request:u.object({executionId:u.string()}),response:u.object({spans:u.array(st)})},listGateInstances:{request:qe,response:u.object({gates:u.array(Fe)})},setExecutionLink:{request:u.object({link:I}),response:u.object({id:u.string()})},listExecutionLinks:{request:lt,response:u.object({links:u.array(I)})},listFrames:{request:u.object({executionId:u.string().min(1)}),response:u.object({frames:u.array(Pe)})},listTriggerTypes:{request:u.object({}),response:u.object({triggerTypes:u.array(u.object({type:u.string(),displayName:u.string(),icon:u.string(),category:u.string(),description:u.string().optional(),configJsonSchema:i,outputJsonSchema:i,source:u.string()}))})},runFile:{request:u.object({filePath:u.string().min(1),triggerPayload:a.optional(),scope:b.optional()}),response:u.object({executionId:u.string()})},registerExternalExecution:{request:Rt,response:u.object({executionId:u.string(),frameId:u.string().optional()})},completeExternalExecution:{request:zt,response:u.object({success:u.boolean()})},resolveRole:{request:u.object({roleId:u.string().min(1)}),response:P},resolveAgent:{request:u.object({agentId:u.string().min(1)}),response:Ie},getRunContext:{request:u.object({executionId:u.string().min(1)}),response:Ot},"execution.started":u.object({executionId:u.string(),workflowId:u.string(),coordinatorSessionId:u.string().optional(),startedAt:u.number().nonnegative().optional(),artifactRef:g.optional()}),"execution.completed":u.object({executionId:u.string(),workflowId:u.string(),totalDuration:u.number(),completedAt:u.number().nonnegative().optional(),transitionKey:u.string().min(1).optional()}),"execution.failed":u.object({executionId:u.string(),workflowId:u.string(),error:u.string(),failedStepId:u.string().optional(),completedAt:u.number().nonnegative().optional(),transitionKey:u.string().min(1).optional()}),"execution.cancelled":u.object({executionId:u.string(),workflowId:u.string(),reason:u.string().optional(),completedAt:u.number().nonnegative().optional(),transitionKey:u.string().min(1).optional()}),"execution.progress":u.object({executionId:u.string().min(1),workflowId:u.string().min(1),frameId:u.string().min(1),nodeId:u.string().min(1),progress:Bt,emittedAt:u.number().int().nonnegative()}),"execution.paused":p.schema(u.object({executionId:u.string(),workflowId:u.string(),pausedAtGateId:u.string().min(1),pausedAtFrameId:u.string().min(1)}),{traceAll:!0}),"step.beforeStart":H,"step.started":H.extend({sessionId:u.string().optional(),subagentId:u.string().optional()}),"step.completed":H.extend({result:r.optional(),duration:u.number()}),"step.failed":H.extend({error:u.string()}),"step.skipped":H.extend({reason:u.string().optional(),condition:u.string().optional()}),"gate.requested":Ht,"gate.awaitApproval":{request:Ht,response:u.object({action:u.enum([`approve`,`reject`]),source:u.enum([`user`,`timeout`]),reason:u.string().optional()})},"gate.respond":{request:u.object({executionId:u.string(),gateId:u.string(),action:u.enum([`approve`,`reject`]),frameId:u.string().optional(),resumeData:r,reason:u.string().optional()}),response:u.object({accepted:u.boolean()})},"gate.resolved":Vt,"frame.started":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),nodeType:C,path:u.array(u.string()),parentFrameId:u.string().optional(),startedAt:u.number().nonnegative().optional()}),"frame.completed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),output:r.optional(),duration:u.number().nonnegative().optional(),completedAt:u.number().nonnegative().optional()}),"frame.failed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),error:u.string(),duration:u.number().nonnegative().optional(),completedAt:u.number().nonnegative().optional()}),"frame.sessionLinked":u.object({executionId:p.attribute(u.string(),`makaio.execution.id`),frameId:p.attribute(u.string(),`makaio.frame.id`),sessionId:p.attribute(u.string(),`makaio.session.id`)}).strict(),"gate.suspended":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),schema:i,prompt:u.string().optional(),title:u.string().optional(),autoAction:u.enum([`approve`,`reject`]),timeoutMs:u.number().nullable(),openedAt:u.number()}),"gate.resumed":u.object({executionId:u.string(),frameId:u.string(),nodeId:u.string(),resumeData:r}),"dynamic.materialized":u.object({executionId:u.string(),frameId:u.string(),factoryId:u.string().min(1),materializedNodes:u.number().int().nonnegative()}),"artifact.updated":u.object({executionId:u.string(),frameId:u.string(),artifactRef:u.object({kind:u.string().min(1),id:u.string().min(1)}),paths:u.array(u.string()),operation:u.string().min(1),revision:u.string().min(1).optional()}),"worklog.get":{request:u.object({executionId:u.string().min(1)}),response:u.object({summary:V.nullable()})},"worklog.frame.get":{request:u.object({frameId:u.string().min(1)}),response:u.object({frame:kt.nullable()})},"worklog.list":{request:u.object({workflowId:u.string().min(1).optional(),status:j.optional(),limit:u.number().int().positive().optional(),offset:u.number().int().nonnegative().optional()}),response:u.object({items:u.array(V),total:u.number().int().nonnegative()})},"worklog.stats":{request:u.object({workflowId:u.string().min(1).optional(),since:u.number().int().nonnegative().optional(),until:u.number().int().nonnegative().optional()}),response:u.object({stats:Nt})},"worklog.changed":u.object({executionId:u.string().min(1)}),"state.get":{request:u.object({executionId:u.string().min(1)}),response:u.object({executionId:u.string().min(1),sequence:u.number().int().nonnegative(),value:r})},"state.patch":{request:u.object({executionId:u.string().min(1),expectedSequence:u.number().int().nonnegative(),patch:u.array(R),nextValue:r}),response:u.object({executionId:u.string().min(1),sequence:u.number().int().positive(),value:r})},"state.updated":u.object({executionId:u.string().min(1),sequence:u.number().int().positive(),patch:u.array(R),value:r,updatedAt:u.number().int().positive()})},Wt=d(`workflow`,Ut),Gt=Wt.subjects;function Kt(e,t){W(e,t,void 0,0,[],`root`,void 0,void 0)}function W(e,t,n,r,i,a,o,s){let c={parent:n,depth:r,ancestors:i,relationship:a,...o!==void 0&&{index:o},...s!==void 0&&{branchKey:s}};if(t.enter?.(e,c)===!1)return;let l=[...i,e.id],u=r+1;switch(e.type){case`sequence`:{let n=e;for(let r=0;r<n.nodes.length;r++)W(n.nodes[r],t,e,u,l,`sequence-child`,r,void 0);break}case`parallel`:{let n=e;for(let[r,i]of Object.entries(n.branches))W(i,t,e,u,l,`parallel-branch`,void 0,r);break}case`iterate`:W(e.body,t,e,u,l,`iterate-body`,void 0,void 0);break;case`iterate-chain`:W(e.body,t,e,u,l,`iterate-chain-body`,void 0,void 0);break;case`loop`:W(e.body,t,e,u,l,`loop-body`,void 0,void 0);break}t.leave?.(e,c)}function qt(e){switch(e){case`station`:case`delegate-agent`:case`delegate-role`:case`gate`:return`leaf`;case`parallel`:case`iterate`:case`iterate-chain`:case`loop`:return`control`;case`sequence`:return`structural`}}function Jt(e,t,n){return e===`parallel-branch`&&t!==void 0?[{kind:`branch`,key:t}]:e===`sequence-child`&&n!==void 0?[{kind:`index`,value:n}]:e===`iterate-body`||e===`iterate-chain-body`||e===`loop-body`?[{kind:`body`}]:[]}function Yt(e){return e.replace(/\\/g,`\\\\`).replace(/\//g,`\\/`)}function Xt(e){return e.map(e=>{switch(e.kind){case`node`:return`n:${Yt(e.id)}`;case`branch`:return`b:${Yt(e.key)}`;case`index`:return`i:${e.value}`;case`body`:return`body`}}).join(`/`)}function Zt(e){let t=[],n=[],r=new Map,i=[],a=[],o=[];return Kt(e.root,{enter(e,s){let c=Jt(s.relationship,s.branchKey,s.index),l={kind:`node`,id:e.id};i.push(...c,l),o.push(c.length+1);let u=[...i],d=Xt(u),f=a.at(-1);if(t.push({key:d,nodeId:e.id,type:e.type,role:qt(e.type),path:u,parentKey:f,...s.branchKey!==void 0&&{branchKey:s.branchKey}}),f!==void 0&&s.parent!==void 0)switch(s.parent.type){case`sequence`:{n.push({sourceKey:f,targetKey:d,kind:`contains`});let e=r.get(f);e!==void 0&&n.push({sourceKey:e,targetKey:d,kind:`sequence`}),r.set(f,d);break}case`parallel`:n.push({sourceKey:f,targetKey:d,kind:`branch`});break;case`iterate`:case`iterate-chain`:case`loop`:n.push({sourceKey:f,targetKey:d,kind:`body`});break;default:n.push({sourceKey:f,targetKey:d,kind:`contains`});break}a.push(d)},leave(){let e=o.pop()??0;i.splice(i.length-e,e),a.pop()}}),{nodes:t,edges:n}}function Qt(e){return{type:`bus-event`,subject:f(e.subject),...e.filter!==void 0&&{filter:e.filter},...e.filterExpression!==void 0&&{filterExpression:e.filterExpression}}}function $t(){return{type:`manual`}}function en(e){return{type:`cron`,schedule:e.schedule,...e.timezone!==void 0&&{timezone:e.timezone}}}function tn(e){return{type:`webhook`,event:e.event,...e.branch!==void 0&&{branch:e.branch},...e.repo!==void 0&&{repo:e.repo}}}function nn(e){return{type:`extension`,extensionType:e.extensionType,...e.config!==void 0&&{config:e.config}}}function G(e){return K(e.body.nodes,e.id)}function K(e,t){for(let n of e){if(n.type===`loop`)return`Nested loop '${n.id}' found inside loop '${t}' — V1 does not support nested loops`;if(n.type===`sequence`){let e=K(n.nodes,t);if(e)return e}if(n.type===`parallel`)for(let e of Object.values(n.branches)){let n=K(e.nodes,t);if(n)return n}if(n.type===`iterate`||n.type===`iterate-chain`){let e=n.body,r=K(e.nodes,t);if(r)return r}}}const q=new WeakMap,rn=new WeakMap;function J(e){let{$schema:t,...n}=u.toJSONSchema(e);return n}function Y(e,t,n){let r=q.get(e);if(r!==void 0&&t.set(e.id,r),e.type===`sequence`)for(let r of e.nodes)Y(r,t,n);else if(e.type===`parallel`)for(let r of Object.values(e.branches))Y(r,t,n);else if(e.type===`iterate`)Y(e.body,t,n);else if(e.type===`iterate-chain`)Y(e.body,t,n);else if(e.type===`loop`){if(n!==void 0){let t=rn.get(e);t!==void 0&&n.set(e.gate.handler,t)}Y(e.body,t,n)}}function an(e,t,n){let r={id:e,type:`station`,prompt:e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}};return q.set(r,t),r}function on(e,t,n){return{id:e,type:`delegate-agent`,agentId:t.agentId,...t.inputExpression!==void 0&&{inputExpression:t.inputExpression},...t.outputSchema!==void 0&&{outputSchema:t.outputSchema},...t.allowedTools!==void 0&&{allowedTools:t.allowedTools},...t.completion!==void 0&&{completion:t.completion},...t.resultFinalizerId!==void 0&&{resultFinalizerId:t.resultFinalizerId},...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip}}}function sn(e,t,n){return{id:e,type:`delegate-role`,role:t,prompt:n?.prompt??e,...n?.when!==void 0&&{when:n.when},...n?.skip!==void 0&&{skip:n.skip},...n?.outputSchema!==void 0&&{outputSchema:n.outputSchema},...n?.timeoutMs!==void 0&&{timeoutMs:n.timeoutMs},...n?.completion!==void 0&&{completion:n.completion},...n?.allowedTools!==void 0&&{allowedTools:n.allowedTools},...n?.resultFinalizerId!==void 0&&{resultFinalizerId:n.resultFinalizerId}}}function cn(e,t){return{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:J(t.resume)}}}function ln(e,t,n){let r=`${e}__item`,i={id:r,type:`station`,prompt:r},a={id:e,type:`iterate`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:[i]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}};return q.set(i,t),a}function un(e,t,n){return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:`${e}__body`,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function dn(e,t,n){let r={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:`${e}__body`,type:`sequence`,nodes:t},gate:X(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},i=G(r);if(i!==void 0)throw Error(i);return rn.set(r,n.gate.evaluate),r}function X(e){let t=e.gate.escalation;return{handler:e.gate.handler,...e.gate.input!==void 0&&{input:e.gate.input},...e.gate.config!==void 0&&{config:e.gate.config},...t!==void 0&&{escalation:{prompt:t.prompt,autoAction:t.autoAction??`reject`,timeoutMs:t.timeoutMs??null,...t.title!==void 0&&{title:t.title},...t.resumeSchema!==void 0&&{resumeSchema:t.resumeSchema}}}}}function Z(e,t){if(e.has(t))throw Error(`Duplicate step ID: ${t}`);e.add(t)}function Q(e,t){if(Z(e,t.id),t.type===`sequence`)for(let n of t.nodes)Q(e,n);else if(t.type===`parallel`)for(let n of Object.values(t.branches))Q(e,n);else (t.type===`iterate`||t.type===`iterate-chain`||t.type===`loop`)&&Q(e,t.body)}function fn(e,t,n,r,i){let a={};return t.forEach((t,o)=>{if(t.id.length===0)throw Error(`parallel branch at index ${o} has an empty ID`);let s=t.id,c=`${e}__${s}`;Q(n,t),Z(n,c),Y(t,r,i),a[s]={id:c,type:`sequence`,nodes:[t]}}),a}function pn(e,t,n,r,i){let a=`${e}__body`,o=`${e}__item`;Z(r,a),Z(r,o),i.set(o,t);let s={id:o,type:`station`,prompt:o};return{id:e,type:`iterate`,collection:n.collection,body:{id:a,type:`sequence`,nodes:[s]},...n.concurrency!==void 0&&{concurrency:n.concurrency},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function mn(e,t,n){return t.resume!==void 0&&(n[e]=t.resume),{id:e,type:`gate`,prompt:t.prompt,autoAction:t.autoAction,timeoutMs:t.timeoutMs,...t.title!==void 0&&{title:t.title},...t.resume!==void 0&&{resumeSchema:J(t.resume)}}}function hn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),Y(e,i,a);return{id:e,type:`iterate-chain`,collection:n.collection,body:{id:o,type:`sequence`,nodes:t},...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}}}function gn(e,t,n,r,i,a){let o=`${e}__body`;Z(r,o);for(let e of t)Q(r,e),Y(e,i,a);let s={id:e,type:`loop`,maxRounds:n.maxRounds,body:{id:o,type:`sequence`,nodes:t},gate:X(n),...n.when!==void 0&&{when:n.when},...n.skip!==void 0&&{skip:n.skip}},c=G(s);if(c!==void 0)throw Error(c);return a.set(n.gate.handler,n.gate.evaluate),s}function _n(e,t){e.input=n=>(t.zodSchemas.input=n,t.definition.inputSchema=J(n),e),e.config=n=>(t.zodSchemas.config=n,t.definition.configSchema=J(n),e),e.output=n=>(t.zodSchemas.output=n,t.definition.outputSchema=J(n),e),e.artifact=n=>(n.schema!==void 0&&(t.zodSchemas.artifact=n.schema),t.definition.artifact={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,...n.resolve!==void 0&&{resolve:n.resolve},...n.create!==void 0&&{create:n.create},...n.statusPath!==void 0&&{statusPath:n.statusPath}},e),e.state=e=>(t.definition.state={schema:e.schema,...e.initial!==void 0&&{initial:e.initial}},$(t))}function vn(e,t){let{rootNodes:n,runtimeHandlers:r,runtimeLoopGates:i,registeredIds:a,zodGates:o}=t;e.station=(t,i,o)=>(Z(a,t),n.push({id:t,type:`station`,prompt:t,...o?.when!==void 0&&{when:o.when},...o?.skip!==void 0&&{skip:o.skip}}),r.set(t,i),e),e.delegateToAgent=(t,r,i)=>(Z(a,t),n.push(on(t,r,i)),e),e.delegateToRole=(t,r,i)=>(Z(a,t),n.push(sn(t,r,i)),e),e.parallel=(t,o,s)=>(Z(a,t),n.push({id:t,type:`parallel`,mode:o.mode??`all-settled`,branches:fn(t,s,a,r,i),...o.when!==void 0&&{when:o.when},...o.skip!==void 0&&{skip:o.skip}}),e),e.gate=(t,r)=>(Z(a,t),n.push(mn(t,r,o)),e),e.iterate=(t,i,o)=>(Z(a,t),n.push(pn(t,i,o,a,r)),e),e.iterateChain=(t,o,s)=>(Z(a,t),n.push(hn(t,o,s,a,r,i)),e),e.loop=(t,o,s)=>(Z(a,t),n.push(gn(t,o,s,a,r,i)),e),e.addNode=e=>yn(e,a,r,i,n)}function yn(e,t,n,r,i){Q(t,e),Y(e,n,r),i.push(e)}function $(e){let t={id:e.definition.id,definition:e.definition,runtimeHandlers:e.runtimeHandlers,runtimeFactories:e.runtimeFactories,runtimeLoopGates:e.runtimeLoopGates,source:void 0,get zodSchemas(){return e.zodSchemas},addTrigger(t){return e.triggers.push(t),$(e)}};return _n(t,e),vn(t,e),t}function bn(e,t){let n=[],r=new Map,i=new Map,a=new Set,o={},s={gates:o},c=new Map,l=t?.triggers?[...t.triggers]:[];return $({rootNodes:n,runtimeHandlers:r,runtimeFactories:c,runtimeLoopGates:i,registeredIds:a,zodGates:o,zodSchemas:s,definition:{id:e,...t?.name!==void 0&&{name:t.name},...t?.description!==void 0&&{description:t.description},...t?.successFinalizerId!==void 0&&{successFinalizerId:_.parse(t.successFinalizerId)},root:{id:`${e}__root`,type:`sequence`,nodes:n},triggers:l,scope:{type:`global`}},triggers:l})}function xn(e){if(e.workflows.length===0)throw Error(`defineWorkflowBundle: workflows must not be empty`);return{workflows:Object.freeze([...e.workflows])}}const Sn=u.enum([`artifact.created`,`artifact.revised`,`artifact.status.changed`]),Cn=u.record(u.string(),r),wn=u.object({type:u.string().min(1),input:u.record(u.string(),r).optional(),executionHints:h.optional()}),Tn=u.object({id:u.string().min(1),description:u.string().optional(),on:Sn,when:Cn.optional(),action:wn,enabled:u.boolean().default(!0)});export{xt as $,w as $t,It as A,j as At,Dt as B,O as Bt,Wt as C,g as Cn,We as Ct,zt as D,ee as Dn,ze as Dt,Gt as E,h as En,Be as Et,kt as F,S as Ft,z as G,Pe as Gt,Tt as H,je as Ht,jt as I,Se as It,yt as J,N as Jt,vt as K,Fe as Kt,Nt as L,x as Lt,At as M,be as Mt,Pt as N,qe as Nt,Ft as O,m as On,Re as Ot,V as P,ke as Pt,_t as Q,Ae as Qt,Mt as R,Me as Rt,Kt as S,he as Sn,Ge as St,Ut as T,te as Tn,Ve as Tt,Ct as U,M as Ut,Et as V,k as Vt,wt as W,b as Wt,St as X,De as Xt,gt as Y,Oe as Yt,bt as Z,Le as Zt,en as _,le as _n,Je as _t,xn as a,P as an,ct as at,tn as b,oe as bn,nt as bt,sn as c,Ne as cn,$e as ct,un as d,fe as dn,Ze as dt,T as en,R as et,dn as f,pe as fn,Qe as ft,Qt as g,ce as gn,tt as gt,G as h,de as hn,it as ht,Tn as i,Ie as in,I as it,Rt as j,Ke as jt,Lt as k,He as kt,cn as l,D as ln,rt as lt,J as m,v as mn,Ye as mt,Cn as n,we as nn,ut as nt,bn as o,E as on,st as ot,an as p,me as pn,Xe as pt,ht as q,Ee as qt,Sn as r,Te as rn,lt as rt,on as s,Ce as sn,ot as st,wn as t,C as tn,dt as tt,ln as u,xe as un,at as ut,nn as v,se as vn,F as vt,Bt as w,ne as wn,Ue as wt,Zt as x,ge as xn,ye as xt,$t as y,_ as yn,et as yt,Ot as z,A as zt};