@makaio/framework 1.0.0-dev-1788863979610 → 1.0.0-dev-1788897280508

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 (494) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/{account-identity-B3vLwm9O.mjs → account-identity-DCBpVurJ.mjs} +1 -1
  3. package/dist/{adapter-Dz1fX5Wa.mjs → adapter-D6IpEDIo.mjs} +1 -1
  4. package/dist/adapters/config/index.d.mts +1 -1
  5. package/dist/adapters/config/index.mjs +1 -1
  6. package/dist/adapters/index.d.mts +2 -2
  7. package/dist/adapters/index.mjs +1 -1
  8. package/dist/adapters/node.d.mts +1 -1
  9. package/dist/adapters/node.mjs +1 -1
  10. package/dist/artifact-OnwP6uaD.mjs +1 -0
  11. package/dist/{attempt-record-codec-BcAPEIW3.mjs → attempt-record-codec-CqKq0NIB.mjs} +1 -1
  12. package/dist/{auth-C6tVtaOX.mjs → auth-CeH3w2fi.mjs} +1 -1
  13. package/dist/authority-state-bootstrap-rnsTk0u7.mjs +1 -0
  14. package/dist/{automation-trigger-ByjNlClm.mjs → automation-trigger-D_xKqEoV.mjs} +1 -1
  15. package/dist/bus/index.mjs +1 -1
  16. package/dist/{caller-owned-adapter-stub-C1M7FKrv.mjs → caller-owned-adapter-stub-egWCuKcE.mjs} +1 -1
  17. package/dist/{canonical-model-DXOvCaVg.mjs → canonical-model-DwuFQ02A.mjs} +1 -1
  18. package/dist/{capabilities-DEvmD9VJ.mjs → capabilities-DGqMG9M3.mjs} +1 -1
  19. package/dist/{client-BkznbdsO.mjs → client-CTqzLpVx.mjs} +1 -1
  20. package/dist/clients/index.d.mts +1 -1
  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/code-execution/worker-entry.d.mts +1 -1
  25. package/dist/code-execution/worker-entry.mjs +1 -1
  26. package/dist/{code-execution-Ckmn8OZu.mjs → code-execution-BMmUATcc.mjs} +1 -1
  27. package/dist/{code-execution-CweDSWco.mjs → code-execution-C2PgBdmE.mjs} +1 -1
  28. package/dist/{code-execution-DqkQjKa1.mjs → code-execution-Mo1jztUH.mjs} +1 -1
  29. package/dist/{compression-CtgeVLpP.mjs → compression-3DauETKU.mjs} +1 -1
  30. package/dist/{config-namespace-CjWvw8ij.mjs → config-namespace-MjFuIPyL.mjs} +1 -1
  31. package/dist/contracts/adapter/index.d.mts +2 -2
  32. package/dist/contracts/adapter/index.mjs +1 -1
  33. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  34. package/dist/contracts/artifact/index.d.mts +3 -3
  35. package/dist/contracts/artifact/index.mjs +1 -1
  36. package/dist/contracts/auth/index.d.mts +2 -2
  37. package/dist/contracts/auth/index.mjs +1 -1
  38. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  39. package/dist/contracts/automation-trigger/index.mjs +1 -1
  40. package/dist/contracts/canonical-model/index.d.mts +1 -1
  41. package/dist/contracts/canonical-model/index.mjs +1 -1
  42. package/dist/contracts/capabilities/index.d.mts +1 -1
  43. package/dist/contracts/capabilities/index.mjs +1 -1
  44. package/dist/contracts/client/index.d.mts +2 -2
  45. package/dist/contracts/client/index.mjs +1 -1
  46. package/dist/contracts/code-execution/index.d.mts +1 -1
  47. package/dist/contracts/code-execution/index.mjs +1 -1
  48. package/dist/contracts/common/index.d.mts +1 -1
  49. package/dist/contracts/config/index.d.mts +1 -1
  50. package/dist/contracts/config/index.mjs +1 -1
  51. package/dist/contracts/extension/index.d.mts +5 -5
  52. package/dist/contracts/extension/index.mjs +1 -1
  53. package/dist/contracts/facet/index.d.mts +1 -1
  54. package/dist/contracts/facet/index.mjs +1 -1
  55. package/dist/contracts/harness/index.d.mts +1 -1
  56. package/dist/contracts/harness/index.mjs +1 -1
  57. package/dist/contracts/host/index.d.mts +1 -1
  58. package/dist/contracts/host/index.mjs +1 -1
  59. package/dist/contracts/index.d.mts +100 -100
  60. package/dist/contracts/index.mjs +1 -1
  61. package/dist/contracts/materialization/index.d.mts +2 -3
  62. package/dist/contracts/materialization/index.mjs +1 -1
  63. package/dist/contracts/model-registry/index.d.mts +1 -1
  64. package/dist/contracts/model-registry/index.mjs +1 -1
  65. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  66. package/dist/contracts/native-session-supervisor/index.mjs +1 -1
  67. package/dist/contracts/platform/index.d.mts +1 -1
  68. package/dist/contracts/platform/index.mjs +1 -1
  69. package/dist/contracts/provider/index.d.mts +2 -2
  70. package/dist/contracts/provider/index.mjs +1 -1
  71. package/dist/contracts/reaction/index.d.mts +1 -1
  72. package/dist/contracts/reaction/index.mjs +1 -1
  73. package/dist/contracts/session/index.d.mts +2 -2
  74. package/dist/contracts/session/index.mjs +1 -1
  75. package/dist/contracts/shared/index.d.mts +2 -2
  76. package/dist/contracts/shared/index.mjs +1 -1
  77. package/dist/contracts/skill/index.d.mts +1 -1
  78. package/dist/contracts/skill/index.mjs +1 -1
  79. package/dist/contracts/telemetry/index.d.mts +1 -1
  80. package/dist/contracts/telemetry/index.mjs +1 -1
  81. package/dist/contracts/timeout/index.d.mts +1 -1
  82. package/dist/contracts/timeout/index.mjs +1 -1
  83. package/dist/contracts/toast/index.mjs +1 -1
  84. package/dist/contracts/variant/index.d.mts +1 -1
  85. package/dist/contracts/variant/index.mjs +1 -1
  86. package/dist/contracts/worker/index.d.mts +1 -1
  87. package/dist/contracts/worker/index.mjs +1 -1
  88. package/dist/contracts/workflow/index.d.mts +2 -2
  89. package/dist/contracts/workflow/index.mjs +1 -1
  90. package/dist/{contribution-CQIpPQLl.d.mts → contribution-BoTMoHVB.d.mts} +2 -2
  91. package/dist/{definition-Cdpw5l9g.d.mts → definition-BgY763Q4.d.mts} +1 -1
  92. package/dist/{definition-BH4QLGLI.mjs → definition-YGj42UeO.mjs} +1 -1
  93. package/dist/{detached-extension-handle-2yUaviLu.mjs → detached-extension-handle-B9c_6Pcb.mjs} +1 -1
  94. package/dist/{execution-attempt-owner-recovery-BRjtmTGv.mjs → execution-attempt-owner-recovery-BNERIDH0.mjs} +1 -1
  95. package/dist/{execution-attempt-repository-CPk3F98N.d.mts → execution-attempt-repository-CtFZfBfp.d.mts} +1 -1
  96. package/dist/{execution-target-BcoF_oDB.mjs → execution-target-CqaBmnvX.mjs} +1 -1
  97. package/dist/{extension-Bfkr2DBs.mjs → extension-B51JzHJu.mjs} +1 -1
  98. package/dist/extension-C4lFc8-j.mjs +1 -0
  99. package/dist/{filesystem-service-CiUw0YN5.mjs → filesystem-service-DGqU-6x-.mjs} +1 -1
  100. package/dist/framework-packages-CZJDukan.mjs +1 -0
  101. package/dist/git/index.mjs +1 -1
  102. package/dist/{globby-QBDqstzq.mjs → globby-BT0rrriG.mjs} +1 -1
  103. package/dist/{handlers-BsHAFtye.mjs → handlers-CBbFzDHc.mjs} +1 -1
  104. package/dist/{harness-YQ2ewID9.mjs → harness-GNtHsoh4.mjs} +1 -1
  105. package/dist/{hook-responses-DK6uu35J.d.mts → hook-responses-BSCAdJ3i.d.mts} +1 -1
  106. package/dist/{index-B9vEfalH.d.mts → index-BVRQOZbm.d.mts} +1 -1
  107. package/dist/{index-C3uCMCHI.d.mts → index-BZlmWCcW.d.mts} +3 -3
  108. package/dist/{index-BlJbchHp.d.mts → index-BZtasAZP.d.mts} +1 -1
  109. package/dist/{index-Cjy1_Hc2.d.mts → index-BdbYIlDL.d.mts} +18 -18
  110. package/dist/{index-B8Tc0urp.d.mts → index-BkY6zO7p.d.mts} +138 -115
  111. package/dist/{index-DmTBlEzu.d.mts → index-CDLHgV7v.d.mts} +15 -15
  112. package/dist/{index-DQWEOn6i.d.mts → index-CQtttPGm.d.mts} +1 -1
  113. package/dist/{index-DvV7vEKt.d.mts → index-CYmQt2lF.d.mts} +37 -37
  114. package/dist/{index-COSxBdTp.d.mts → index-CYwbfa0_.d.mts} +2 -2
  115. package/dist/{index-CXZ8ODDT.d.mts → index-C_OLvAr_.d.mts} +1 -1
  116. package/dist/{index-1y-PUD3B.d.mts → index-Cau0jTTM.d.mts} +1 -1
  117. package/dist/{index-BDAPOKi3.d.mts → index-CoGo6HFE.d.mts} +8 -8
  118. package/dist/{index-CvWUgywU.d.mts → index-D0DfEO45.d.mts} +1 -1
  119. package/dist/{index-CU90gGDk2.d.mts → index-DIYgFhTZ2.d.mts} +4 -4
  120. package/dist/{index-BDs5tDcM.d.mts → index-DJ0Muy2s.d.mts} +8 -8
  121. package/dist/{index-jZXIrHlY.d.mts → index-F6hV4tWI.d.mts} +23 -23
  122. package/dist/{index-DwFnHNoq2.d.mts → index-LwOw7ZLk2.d.mts} +22 -22
  123. package/dist/{index-DXv51ZIb.d.mts → index-PTp68NH1.d.mts} +127 -127
  124. package/dist/{index-Dne0xNUI.d.mts → index-R2BZejEz.d.mts} +591 -726
  125. package/dist/{index-CsDj-DEW.d.mts → index-RpG4EP3u.d.mts} +1 -1
  126. package/dist/{index-DtHmaj-q.d.mts → index-dL0Oet1j.d.mts} +1 -1
  127. package/dist/{index-D9CdrFKz2.d.mts → index-mylsCg6V2.d.mts} +1 -1
  128. package/dist/{index-D5UpsCNq.d.mts → index-nPpqnP7P.d.mts} +1 -1
  129. package/dist/{index-zCstNu9J2.d.mts → index-oucWFlFP2.d.mts} +12 -12
  130. package/dist/kernel/cli/index.d.mts +2 -2
  131. package/dist/kernel/cli/index.mjs +1 -1
  132. package/dist/kernel/cli/register.d.mts +1 -1
  133. package/dist/kernel/cli/register.mjs +1 -1
  134. package/dist/kernel/cli/schemas.mjs +1 -1
  135. package/dist/kernel/extension/index.d.mts +1 -1
  136. package/dist/kernel/extension/index.mjs +1 -1
  137. package/dist/kernel/index.d.mts +5 -5
  138. package/dist/kernel/index.mjs +1 -1
  139. package/dist/kernel/namespace/index.d.mts +1 -1
  140. package/dist/kernel/namespace/index.mjs +1 -1
  141. package/dist/kernel/observability/index.d.mts +1 -1
  142. package/dist/kernel/observability/index.mjs +1 -1
  143. package/dist/kernel/providers/index.d.mts +1 -1
  144. package/dist/kernel/providers/index.mjs +1 -1
  145. package/dist/kernel/window/index.d.mts +1 -1
  146. package/dist/kernel/window/index.mjs +1 -1
  147. package/dist/kind-registration-BNhVCSaT.mjs +1 -0
  148. package/dist/{lib-BB0XjVs6.mjs → lib-B8Yv4IY-.mjs} +1 -1
  149. package/dist/{lib-DNGNIb-O.mjs → lib-hwdGyO-m.mjs} +1 -1
  150. package/dist/{load-extensions-CWlR-8BM.mjs → load-extensions-CNT2Nd9h.mjs} +1 -1
  151. package/dist/{load-extensions-C3Y3y9EW.d.mts → load-extensions-D0yT_Kta.d.mts} +1 -1
  152. package/dist/materialization-Dx1z_MDj.mjs +1 -0
  153. package/dist/mcp-http-server/index.mjs +1 -1
  154. package/dist/model-B6t_-_sp.mjs +1 -0
  155. package/dist/{namespace-Bz3qcZBD.d.mts → namespace-BY5-nA4j.d.mts} +6 -6
  156. package/dist/{namespace-C3Ch35nb.d.mts → namespace-C7wggVcn.d.mts} +18 -18
  157. package/dist/{namespace-agOiy4kr.d.mts → namespace-CPC1vbOu.d.mts} +1 -1
  158. package/dist/{namespace-B8i86gVL.d.mts → namespace-D1qK-Ed3.d.mts} +2 -2
  159. package/dist/namespace-D4zmxaC4.mjs +1 -0
  160. package/dist/{namespace-DeezOMb9.d.mts → namespace-Dh5fTXYt.d.mts} +2 -2
  161. package/dist/{namespace-BL7lHlmg.mjs → namespace-ZAIFBrIy.mjs} +1 -1
  162. package/dist/{native-session-supervisor-LKio8XZn.mjs → native-session-supervisor-BlGzmZrH.mjs} +1 -1
  163. package/dist/node/bus-server/index.d.mts +1 -1
  164. package/dist/node/bus-server/index.mjs +1 -1
  165. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  166. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  167. package/dist/{orchestrator-shared-BGlN-m-V.mjs → orchestrator-shared-BKMtjTE9.mjs} +1 -1
  168. package/dist/{ownership-memory-handler-BpGdR_uG.mjs → ownership-memory-handler-BCu1EjFO.mjs} +1 -1
  169. package/dist/{package-w4WZqO7J.d.mts → package-C9XYuN9J.d.mts} +3 -3
  170. package/dist/{package-BdOoo7XE.mjs → package-D7c2HC-S.mjs} +1 -1
  171. package/dist/{package-JtjbO-Oi.mjs → package-buHQFmTH.mjs} +1 -1
  172. package/dist/package.json +1 -1
  173. package/dist/packages-BhhBcPgz.mjs +1 -0
  174. package/dist/{packages-uNYWGMH1.d.mts → packages-DAqep89i.d.mts} +12 -39
  175. package/dist/{profile-N5qGUpF0.mjs → profile-DBDvy9uc.mjs} +1 -1
  176. package/dist/{provider-context-zTDSH2x9.mjs → provider-context-CSb0qX1c.mjs} +1 -1
  177. package/dist/{provider-context-CG42JlP9.mjs → provider-context-CTOrOW54.mjs} +1 -1
  178. package/dist/{reaction-D3TNwPK8.mjs → reaction-OQibmmDW.mjs} +1 -1
  179. package/dist/{resolved-sq8RXNDf.mjs → resolved-ONt3rOMh.mjs} +1 -1
  180. package/dist/rules/index.d.mts +1 -1
  181. package/dist/rules/index.mjs +1 -1
  182. package/dist/rules/schemas.d.mts +1 -1
  183. package/dist/runtime-bun/index.mjs +1 -1
  184. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  185. package/dist/runtime-node/code-execution/index.mjs +1 -1
  186. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  187. package/dist/runtime-node/extension-validation.d.mts +1 -1
  188. package/dist/runtime-node/extension-validation.mjs +1 -1
  189. package/dist/runtime-node/index.d.mts +6 -6
  190. package/dist/runtime-node/index.mjs +20 -20
  191. package/dist/runtime-node/makaio-config.d.mts +1 -1
  192. package/dist/runtime-node/makaio-config.mjs +1 -1
  193. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  194. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  195. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  196. package/dist/{schema-Dq-7si8u.mjs → schema-B8jinlbH.mjs} +1 -1
  197. package/dist/{schemas-B4MSOlcv.d.mts → schemas-BSBb1KFq.d.mts} +10 -10
  198. package/dist/{schemas-QWDnauKX.mjs → schemas-BUK9I-Oz.mjs} +1 -1
  199. package/dist/{schemas-uaQuIxm4.d.mts → schemas-BjNlwTDl.d.mts} +2 -2
  200. package/dist/{context-resolution-BZKEKzu4.d.mts → schemas-C5FreSE0.d.mts} +133 -539
  201. package/dist/{schemas-_2Syo_01.mjs → schemas-CSDiTBsU.mjs} +1 -1
  202. package/dist/{schemas-BfO5jkrL.mjs → schemas-CbhvgFQs.mjs} +1 -1
  203. package/dist/{schemas-Bw2-j1lm.d.mts → schemas-DmE-a0kN.d.mts} +4 -4
  204. package/dist/{schemas-Io717dOA.d.mts → schemas-gfrOgGau.d.mts} +1 -1
  205. package/dist/schemas-hzbKeyyt.mjs +1 -0
  206. package/dist/{selection-DL3ric7K.mjs → selection-7SkHsmWs.mjs} +1 -1
  207. package/dist/services/adapter-runtime/index.d.mts +3 -3
  208. package/dist/services/adapter-runtime/index.mjs +1 -1
  209. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  210. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  211. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  212. package/dist/services/adapter-subsystem/index.mjs +1 -1
  213. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  214. package/dist/services/adapter-subsystem/namespace.mjs +1 -1
  215. package/dist/services/agent-runtime/index.d.mts +2 -2
  216. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  217. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  218. package/dist/services/automation-trigger/index.mjs +1 -1
  219. package/dist/services/capability/index.d.mts +2 -2
  220. package/dist/services/capability/index.mjs +1 -1
  221. package/dist/services/code-execution/index.d.mts +1 -1
  222. package/dist/services/code-execution/index.mjs +1 -1
  223. package/dist/services/codebase/index.d.mts +2 -2
  224. package/dist/services/codebase/namespace.d.mts +1 -1
  225. package/dist/services/codebase/schemas.d.mts +1 -1
  226. package/dist/services/compression/index.d.mts +2 -2
  227. package/dist/services/compression/namespace.d.mts +1 -1
  228. package/dist/services/compression/schemas.d.mts +1 -1
  229. package/dist/services/context-rules/index.d.mts +4 -4
  230. package/dist/services/context-rules/index.mjs +1 -1
  231. package/dist/services/execution-target/index.d.mts +3 -3
  232. package/dist/services/execution-target/index.mjs +1 -1
  233. package/dist/services/execution-target/namespace.d.mts +1 -1
  234. package/dist/services/execution-target/namespace.mjs +1 -1
  235. package/dist/services/execution-target/schemas.d.mts +1 -1
  236. package/dist/services/execution-target/schemas.mjs +1 -1
  237. package/dist/services/filesystem/index.d.mts +1 -1
  238. package/dist/services/filesystem/index.mjs +1 -1
  239. package/dist/services/filesystem/namespace.d.mts +6 -6
  240. package/dist/services/filesystem/schemas.d.mts +3 -3
  241. package/dist/services/git/namespace.mjs +1 -1
  242. package/dist/services/git/schemas.mjs +1 -1
  243. package/dist/services/harness/index.mjs +1 -1
  244. package/dist/services/index.d.mts +61 -82
  245. package/dist/services/index.mjs +1 -1
  246. package/dist/services/log-import/browser.d.mts +2 -2
  247. package/dist/services/log-import/index.d.mts +2 -2
  248. package/dist/services/log-import/log-import.d.mts +1 -1
  249. package/dist/services/log-import/log-import.mjs +1 -1
  250. package/dist/services/log-import/namespace.mjs +1 -1
  251. package/dist/services/log-import/schemas.mjs +1 -1
  252. package/dist/services/materialization/index.d.mts +13 -34
  253. package/dist/services/materialization/index.mjs +1 -1
  254. package/dist/services/model-registry/index.d.mts +1 -1
  255. package/dist/services/model-registry/index.mjs +1 -1
  256. package/dist/services/preferences/index.d.mts +2 -2
  257. package/dist/services/preferences/schemas.d.mts +1 -1
  258. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  259. package/dist/services/provider-context/index.d.mts +1 -1
  260. package/dist/services/provider-context/index.mjs +1 -1
  261. package/dist/services/provider-runtime/index.mjs +1 -1
  262. package/dist/services/session/handlers/index.d.mts +1 -1
  263. package/dist/services/session/handlers/index.mjs +1 -1
  264. package/dist/services/session/index.d.mts +9 -9
  265. package/dist/services/session/index.mjs +1 -1
  266. package/dist/services/session/messages/namespace.d.mts +1 -1
  267. package/dist/services/session/messages/namespace.mjs +1 -1
  268. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  269. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  270. package/dist/services/session/session-events/namespace.d.mts +1 -1
  271. package/dist/services/session/session-events/namespace.mjs +1 -1
  272. package/dist/services/session/storage/namespace.d.mts +1 -1
  273. package/dist/services/session/storage/schema.d.mts +1 -1
  274. package/dist/services/session/testing/index.mjs +1 -1
  275. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  276. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  277. package/dist/services/session/turns/namespace.d.mts +1 -1
  278. package/dist/services/session/turns/namespace.mjs +1 -1
  279. package/dist/services/session-editor/index.d.mts +1 -1
  280. package/dist/services/session-editor/index.mjs +1 -1
  281. package/dist/services/settings/index.d.mts +3 -3
  282. package/dist/services/settings/index.mjs +1 -1
  283. package/dist/services/settings/namespace.d.mts +10 -10
  284. package/dist/services/settings/namespace.mjs +1 -1
  285. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  286. package/dist/services/settings/storage/clients-namespace.mjs +1 -1
  287. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  288. package/dist/services/settings/storage/index.d.mts +3 -3
  289. package/dist/services/settings/storage/index.mjs +1 -1
  290. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  291. package/dist/services/settings/storage/providers-namespace.mjs +1 -1
  292. package/dist/services/subagent/index.d.mts +1 -1
  293. package/dist/services/subagent/index.mjs +1 -1
  294. package/dist/services/subagent-template/index.d.mts +2 -2
  295. package/dist/services/subagent-template/namespace.d.mts +1 -1
  296. package/dist/services/subagent-template/schemas.d.mts +1 -1
  297. package/dist/services/tool-approval/index.d.mts +1 -1
  298. package/dist/services/tool-approval/index.mjs +1 -1
  299. package/dist/services/tools/index.d.mts +1 -1
  300. package/dist/services/tools/index.mjs +1 -1
  301. package/dist/services/tray-menu/index.d.mts +3 -3
  302. package/dist/services/tray-menu/index.mjs +1 -1
  303. package/dist/services/tray-menu/namespace.d.mts +1 -1
  304. package/dist/services/tray-menu/schemas.d.mts +1 -1
  305. package/dist/services/turn/index.d.mts +1 -1
  306. package/dist/services/turn/namespace.d.mts +1 -1
  307. package/dist/services/workflow-transitions/index.d.mts +1 -1
  308. package/dist/services/workflow-transitions/index.mjs +1 -1
  309. package/dist/{session-CXOPk3yg.mjs → session-BDFNAcuY.mjs} +1 -1
  310. package/dist/{session-BOpTI79g.mjs → session-CQAuApxe.mjs} +1 -1
  311. package/dist/{shared-B9AWRm9A.mjs → shared-BYP7z9xy.mjs} +1 -1
  312. package/dist/{skill-DGNtc_ww.mjs → skill-1gU2q1KT.mjs} +1 -1
  313. package/dist/{src-BWEtqWTw.mjs → src-D4Gx0QHf.mjs} +1 -1
  314. package/dist/storage/drizzle/client.d.mts +1 -1
  315. package/dist/storage/drizzle/client.mjs +1 -1
  316. package/dist/storage/drizzle/index.d.mts +1 -1
  317. package/dist/storage/drizzle/index.mjs +1 -1
  318. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  319. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  320. package/dist/storage/handlers/index.d.mts +1 -1
  321. package/dist/storage/handlers/index.mjs +1 -1
  322. package/dist/{tool-approval-service-BFDOFUGC.mjs → tool-approval-service-7mzJVMo_.mjs} +1 -1
  323. package/dist/{tools-DWKWX3eV.mjs → tools-Cyo6BuGM.mjs} +1 -1
  324. package/dist/{transition-CGnHfVIv.d.mts → transition-CwMPKBjz.d.mts} +2 -2
  325. package/dist/{types-B6V3HDRl2.d.mts → types-BOF825V52.d.mts} +1 -1
  326. package/dist/{types-FPmiU-3J.d.mts → types-Dg_acP9p.d.mts} +18 -18
  327. package/dist/ui-kernel/index.d.mts +1 -1
  328. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  329. package/dist/{version-BYeVh1pI.mjs → version-3xWJDCeF.mjs} +1 -1
  330. package/dist/{view-builder-CELaqM4Z.d.mts → view-builder-D76L0Db8.d.mts} +209 -15
  331. package/dist/{visibility-DtDLRBdr.mjs → visibility-C5sLzqyS.mjs} +1 -1
  332. package/dist/{worker-B4nD_Erm.mjs → worker-9X0QNB1k.mjs} +1 -1
  333. package/dist/{worker-CLsRbzpk.mjs → worker-BwUhRg7i.mjs} +1 -1
  334. package/dist/workflow-B3MWrYhG.mjs +1 -0
  335. package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
  336. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  337. package/dist/workflow-engine/index.d.mts +77 -77
  338. package/dist/workflow-engine/index.mjs +1 -1
  339. package/dist/workflow-engine/package.d.mts +1 -1
  340. package/dist/workflow-engine/package.mjs +1 -1
  341. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  342. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  343. package/dist/workflow-engine/testing/conformance.mjs +1 -1
  344. package/dist/workflow-engine/testing/index.d.mts +2 -2
  345. package/dist/workflow-engine/testing/index.mjs +1 -1
  346. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  347. package/dist/workflow-engine/testing/sqlite.mjs +1 -1
  348. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  349. package/dist/{workflow-transitions-c_VQbyV0.mjs → workflow-transitions-B7HtjuAn.mjs} +1 -1
  350. package/dist/workflow-worker-zYb2UguP.mjs +2 -0
  351. package/package.json +1 -1
  352. package/dist/artifact-ClvHqL3w.mjs +0 -1
  353. package/dist/authority-state-bootstrap-7Cgb9TR2.mjs +0 -1
  354. package/dist/extension-Cz39YNXy.mjs +0 -1
  355. package/dist/framework-packages-BHgul8Kl.mjs +0 -1
  356. package/dist/materialization-B_LA9pfy.mjs +0 -1
  357. package/dist/model-DrzPt3ou.mjs +0 -1
  358. package/dist/namespace-sCPb79-7.mjs +0 -1
  359. package/dist/packages-Bp124-gx.mjs +0 -1
  360. package/dist/schemas-CNkUEbIr.mjs +0 -1
  361. package/dist/workflow-H8hsEikC.mjs +0 -1
  362. package/dist/workflow-worker-CmIkKnpF.mjs +0 -2
  363. /package/dist/{adapter-auth-runtime-DHHppU4f.mjs → adapter-auth-runtime-DGY1CDxj.mjs} +0 -0
  364. /package/dist/{adapter-binding-C6jAAjGu.d.mts → adapter-binding-fGIz-ss3.d.mts} +0 -0
  365. /package/dist/{ajv-krzJXh1X.mjs → ajv-DWgn_plp.mjs} +0 -0
  366. /package/dist/{attach-error-Cb3GbeKe.mjs → attach-error-B-vXQFLQ.mjs} +0 -0
  367. /package/dist/{attempt-fixtures-gGhCA_WQ.mjs → attempt-fixtures-Dpfgqll0.mjs} +0 -0
  368. /package/dist/{base-orchestrator-B9OUXDR-.d.mts → base-orchestrator-BeLqYKJG.d.mts} +0 -0
  369. /package/dist/{bootstrap-start-client-DrvofWwi.mjs → bootstrap-start-client-BYoxrgMk.mjs} +0 -0
  370. /package/dist/{capability-j3NekkIu.mjs → capability-Bw4tsDQu.mjs} +0 -0
  371. /package/dist/{capability-service-DA9xdAyh.d.mts → capability-service-BlYnun2M.d.mts} +0 -0
  372. /package/dist/{client-BhRxxVig.d.mts → client-CtOWHpFB.d.mts} +0 -0
  373. /package/dist/{client-binary-version-verifier-DXu9mjRx.d.mts → client-binary-version-verifier-BwmToeS1.d.mts} +0 -0
  374. /package/dist/{client-binary-version-verifier-0lCKZOTg.mjs → client-binary-version-verifier-sv-Uv0lB.mjs} +0 -0
  375. /package/dist/{clients-namespace-2TIeXofb.d.mts → clients-namespace-Bf73bcZh.d.mts} +0 -0
  376. /package/dist/{config-namespace-Burux0cR.d.mts → config-namespace-BbLLd4V0.d.mts} +0 -0
  377. /package/dist/{create-static-mount-CuiFK6nC.mjs → create-static-mount-BQnyEUH1.mjs} +0 -0
  378. /package/dist/{cross-spawn-CZygZJMH.mjs → cross-spawn-DPrJR9Nq.mjs} +0 -0
  379. /package/dist/{cursor-storage-bsc9lZKk.mjs → cursor-storage-iJ6vBOWd.mjs} +0 -0
  380. /package/dist/{definition-011l3aQ8.d.mts → definition-aS9AM2ht.d.mts} +0 -0
  381. /package/dist/{definitions-CRpdnHYM.mjs → definitions-CYZTuMdL.mjs} +0 -0
  382. /package/dist/{descriptor-to-package-CcjdoWP4.mjs → descriptor-to-package-FBkLjHZo.mjs} +0 -0
  383. /package/dist/{drizzle-Bzc-OGVI.mjs → drizzle-CIf_jdYI.mjs} +0 -0
  384. /package/dist/{esm-i-S5TW72.mjs → esm-BH4Kmq3r.mjs} +0 -0
  385. /package/dist/{event-B8ELuk6k.mjs → event-m7_IdhOS.mjs} +0 -0
  386. /package/dist/{execution-attempt-repository-D0cCU7dI.mjs → execution-attempt-repository-D_qR7NyG.mjs} +0 -0
  387. /package/dist/{extension-context-CogUIfZb.d.mts → extension-context-41A1ZUus.d.mts} +0 -0
  388. /package/dist/{extension-discovery-CuC5Nd5d.d.mts → extension-discovery-DNB1VVsV.d.mts} +0 -0
  389. /package/dist/{extension-namespace-QoTTwKPt.mjs → extension-namespace-twXNwE4R.mjs} +0 -0
  390. /package/dist/{extension-package-provenance-aYrZuS4W.mjs → extension-package-provenance-CTYdo0yF.mjs} +0 -0
  391. /package/dist/{facet-BnMh7Jyc.mjs → facet-Cly0VpTI.mjs} +0 -0
  392. /package/dist/{filesystem-service-DYYL4fLd.d.mts → filesystem-service-DOrm4Llq.d.mts} +0 -0
  393. /package/dist/{handler-DF1fVDpf.mjs → handler-COkV00I9.mjs} +0 -0
  394. /package/dist/{host-B-_ntOMH.mjs → host-CiHn8Yog.mjs} +0 -0
  395. /package/dist/{identity-OjRlG6dZ.mjs → identity-BULrIHmo.mjs} +0 -0
  396. /package/dist/{index-B4MG7PBn.d.mts → index-BB4EWIf3.d.mts} +0 -0
  397. /package/dist/{index-CUxMqAoE2.d.mts → index-BBq5I7SB2.d.mts} +0 -0
  398. /package/dist/{index-Oejq5WGD2.d.mts → index-BJjdUzfw2.d.mts} +0 -0
  399. /package/dist/{index-luD7oSCA.d.mts → index-BKvzOrbF.d.mts} +0 -0
  400. /package/dist/{index-CKeNzHte.d.mts → index-BO8n7zAS.d.mts} +0 -0
  401. /package/dist/{index-DiHGEgh-.d.mts → index-BbAqoQmv.d.mts} +0 -0
  402. /package/dist/{index-BNF8osK42.d.mts → index-BcTwLu9C2.d.mts} +0 -0
  403. /package/dist/{index-DhCBbChV.d.mts → index-Bg5iXHk5.d.mts} +0 -0
  404. /package/dist/{index-BlkTzRHz.d.mts → index-BiXqOfhl.d.mts} +0 -0
  405. /package/dist/{index-CrA9tCMf.d.mts → index-BjaQsfAr.d.mts} +0 -0
  406. /package/dist/{index-BD1_BSMP.d.mts → index-Bk865qJX.d.mts} +0 -0
  407. /package/dist/{index-CrUijdhZ.d.mts → index-Bq4PHWe9.d.mts} +0 -0
  408. /package/dist/{index-DmjyHIEH.d.mts → index-CUHWylh4.d.mts} +0 -0
  409. /package/dist/{index-C0uHQitR2.d.mts → index-CavvxFdG2.d.mts} +0 -0
  410. /package/dist/{index-09JDqcgy2.d.mts → index-Cb3NfGSV2.d.mts} +0 -0
  411. /package/dist/{index-CbaOOgMX.d.mts → index-Ce_l029J.d.mts} +0 -0
  412. /package/dist/{index-DsIrU-pP.d.mts → index-CgVdz5IV.d.mts} +0 -0
  413. /package/dist/{index-BPX7lMRX.d.mts → index-Ck5amD5_.d.mts} +0 -0
  414. /package/dist/{index-DuoOsxow.d.mts → index-ClJjlOox.d.mts} +0 -0
  415. /package/dist/{index-C7ZdyYMT.d.mts → index-DR9-fFwc.d.mts} +0 -0
  416. /package/dist/{index-BRNRgfOm.d.mts → index-Q29tcu5N.d.mts} +0 -0
  417. /package/dist/{index-BKco9D6a.d.mts → index-VVJqONaI.d.mts} +0 -0
  418. /package/dist/{index-fQIrZBY0.d.mts → index-gK54T8Am.d.mts} +0 -0
  419. /package/dist/{index-CweK7QAS.d.mts → index-jW7MJ2_q.d.mts} +0 -0
  420. /package/dist/{index-XNbcZBEZ.d.mts → index-l5HeyxKn.d.mts} +0 -0
  421. /package/dist/{index-ikP83tJm.d.mts → index-z-YJG2cw.d.mts} +0 -0
  422. /package/dist/{index-CDJUiga3.d.mts → index-zvgQ8ErF.d.mts} +0 -0
  423. /package/dist/{json-value-DbwI1AMR.d.mts → json-value-C57MkQrB.d.mts} +0 -0
  424. /package/dist/{json-value-BBZ6uGwc.mjs → json-value-DM-EjTC1.mjs} +0 -0
  425. /package/dist/{jsonl-transport-W03tkPvB.mjs → jsonl-transport-QQuABrN7.mjs} +0 -0
  426. /package/dist/{lib-Wtk4Ef-T.mjs → lib-Sx8gBJvV.mjs} +0 -0
  427. /package/dist/{model-registry-C9rFu3kV.mjs → model-registry-B7ThN_s3.mjs} +0 -0
  428. /package/dist/{model-registry-Cixxx2jv.mjs → model-registry-DNHDnyvs.mjs} +0 -0
  429. /package/dist/{modes-DwsJ3yVl.mjs → modes-CyG4sgs_.mjs} +0 -0
  430. /package/dist/{namespace-NXm_zvL1.mjs → namespace-BFlSY040.mjs} +0 -0
  431. /package/dist/{namespace-DiwqpB-c.mjs → namespace-BGgY903U.mjs} +0 -0
  432. /package/dist/{namespace-D4RJjLv8.d.mts → namespace-Bn-ryJn5.d.mts} +0 -0
  433. /package/dist/{namespace-BW2rjW9-.d.mts → namespace-By3nEmBH.d.mts} +0 -0
  434. /package/dist/{namespace-Du0accdE.mjs → namespace-C9d0aoYT.mjs} +0 -0
  435. /package/dist/{namespace-D5nHBTPz.d.mts → namespace-Ca4sQ8X-.d.mts} +0 -0
  436. /package/dist/{namespace-Br7IQt88.d.mts → namespace-DE3oGhaN.d.mts} +0 -0
  437. /package/dist/{namespace-aUe_P5qN.d.mts → namespace-DENdNdK0.d.mts} +0 -0
  438. /package/dist/{namespace-jVTsuZHX.mjs → namespace-DHrItZyM.mjs} +0 -0
  439. /package/dist/{namespace-Df8uPrMr.d.mts → namespace-DInMixc8.d.mts} +0 -0
  440. /package/dist/{namespace-BGi71aDN.d.mts → namespace-DP0WWpTO.d.mts} +0 -0
  441. /package/dist/{namespace-C3l4AsWS.d.mts → namespace-DkAlBY9o.d.mts} +0 -0
  442. /package/dist/{namespace-BW3Bfu9h.mjs → namespace-QXCaZK3I.mjs} +0 -0
  443. /package/dist/{namespace-C9X7Qvn5.d.mts → namespace-WeSQXdAL.d.mts} +0 -0
  444. /package/dist/{namespace-tjoxekmf.mjs → namespace-ZN49zpqw.mjs} +0 -0
  445. /package/dist/{orchestrator-shared-B2Lb5Enk.d.mts → orchestrator-shared-2vuCvljs.d.mts} +0 -0
  446. /package/dist/{out-8bOYN6EF.mjs → out-Rz-t3WeC.mjs} +0 -0
  447. /package/dist/{ownership-recovery-guard-DyW5vGBr.mjs → ownership-recovery-guard-Ce9-C5Sa.mjs} +0 -0
  448. /package/dist/{package-DttKA9wN.mjs → package-DfjGt5oK.mjs} +0 -0
  449. /package/dist/{package-EGTn-Ng1.mjs → package-Tt2uoAFf.mjs} +0 -0
  450. /package/dist/{platform-CxyYPrkf.mjs → platform-C-fDsuEl.mjs} +0 -0
  451. /package/dist/{provider-operation-BwvTdAsv.d.mts → provider-operation-BwrIrOeY.d.mts} +0 -0
  452. /package/dist/{providers-C-eekMxD.mjs → providers-DVlsnJaY.mjs} +0 -0
  453. /package/dist/{providers-namespace-D-gdpu0p.d.mts → providers-namespace-C56pGeTO.d.mts} +0 -0
  454. /package/dist/{quick-lru-CCEnf7y6.mjs → quick-lru-uXa2PNb5.mjs} +0 -0
  455. /package/dist/{registry-Dk12tAfv.mjs → registry-CZf8VGBh.mjs} +0 -0
  456. /package/dist/{schema-C0opCPww.mjs → schema-DIHGEQx3.mjs} +0 -0
  457. /package/dist/{schema-introspection-6-r_KEJQ.mjs → schema-introspection-CSnLZJpC.mjs} +0 -0
  458. /package/dist/{schema-BwrsXKsP.d.mts → schema-wArHaxA9.d.mts} +0 -0
  459. /package/dist/{schemas-CMQ2PiO2.d.mts → schemas-B0zhTfet.d.mts} +0 -0
  460. /package/dist/{schemas-BaWB3EXP.d.mts → schemas-B2Q284-G.d.mts} +0 -0
  461. /package/dist/{schemas-v1W9Gj9m.d.mts → schemas-BJKx29Sp.d.mts} +0 -0
  462. /package/dist/{schemas-BivbWRkG.mjs → schemas-BKnJj2i-.mjs} +0 -0
  463. /package/dist/{schemas-CsOAG1rB.d.mts → schemas-BMGJLkdK2.d.mts} +0 -0
  464. /package/dist/{schemas-CeHU889f.mjs → schemas-BapfTRqp.mjs} +0 -0
  465. /package/dist/{schemas-DKJyKDpe.d.mts → schemas-BsZJHdvY.d.mts} +0 -0
  466. /package/dist/{schemas-Ds_YMFjX.d.mts → schemas-CITR9cWN.d.mts} +0 -0
  467. /package/dist/{schemas-B8hKbBwI.mjs → schemas-CnFVygzI.mjs} +0 -0
  468. /package/dist/{schemas-scyC2tFF.mjs → schemas-DDCAGKRi.mjs} +0 -0
  469. /package/dist/{schemas-BNf-WkKF.d.mts → schemas-wPB7RnHB.d.mts} +0 -0
  470. /package/dist/{semver-BI7kTNsY.mjs → semver-D_D2mA48.mjs} +0 -0
  471. /package/dist/{server-lifecycle-B_OZnoe-.mjs → server-lifecycle-AvBVeCFR.mjs} +0 -0
  472. /package/dist/{server-lifecycle-CmuBMs3O.d.mts → server-lifecycle-CREtXADx.d.mts} +0 -0
  473. /package/dist/{session-lineage-BRhnTWqq.d.mts → session-lineage-CRLvurB-.d.mts} +0 -0
  474. /package/dist/{shared-schemas-CQ6blrEW.mjs → shared-schemas-kUho6Kmw.mjs} +0 -0
  475. /package/dist/{src-BA_c2cXX.mjs → src-DnLncoLg.mjs} +0 -0
  476. /package/dist/{storage-namespace-BZce8kkW.mjs → storage-namespace-CH4j0_Zs.mjs} +0 -0
  477. /package/dist/{storage-namespace-CTXxds3h.d.mts → storage-namespace-JBh9nkKw.d.mts} +0 -0
  478. /package/dist/{storage-namespace-definition-Cca-zwXU.mjs → storage-namespace-definition-BJCbqVWz.mjs} +0 -0
  479. /package/dist/{storage-namespace-definition-Dkxl1FGw.d.mts → storage-namespace-definition-C0mnpnC_.d.mts} +0 -0
  480. /package/dist/{supports-color-SV_FgSN2.mjs → supports-color-BBMFnbC4.mjs} +0 -0
  481. /package/dist/{telemetry-BqoC87F-.mjs → telemetry-CUkZrhW6.mjs} +0 -0
  482. /package/dist/{timeout-DVlN2Zhy.mjs → timeout-DeBYTGBR.mjs} +0 -0
  483. /package/dist/{tray-menu-service-eVVxgPLc.mjs → tray-menu-service-thAhpcPA.mjs} +0 -0
  484. /package/dist/{types-BklZfFWo.d.mts → types-9ldZyQTb.d.mts} +0 -0
  485. /package/dist/{types-C4ayzk8k.d.mts → types-BMkn9jOe.d.mts} +0 -0
  486. /package/dist/{types-Cwza95hS.mjs → types-CjjNAiHa.mjs} +0 -0
  487. /package/dist/{types-BWfAz9Sh.d.mts → types-DJuxNrac.d.mts} +0 -0
  488. /package/dist/{types-DDfy8LgJ.d.mts → types-eCGV_g6P.d.mts} +0 -0
  489. /package/dist/{types--Sa8Ip8j.d.mts → types-xXv0lUeU.d.mts} +0 -0
  490. /package/dist/{ui-config-B35GloSX.mjs → ui-config-9hlZAJOS.mjs} +0 -0
  491. /package/dist/{variant-Dwnge3J_.mjs → variant-73kFgYBK.mjs} +0 -0
  492. /package/dist/{window-registry-CIlKN806.d.mts → window-registry-CGaYVD7l.d.mts} +0 -0
  493. /package/dist/{window-registry-CKiMJjId.mjs → window-registry-CzAwaPKL.mjs} +0 -0
  494. /package/dist/{zod-json-schema-Dixc-B1T.mjs → zod-json-schema-B9TYYq3e.mjs} +0 -0
@@ -1 +1 @@
1
- import{_ as e,c as t,d as n,f as r,g as i,h as a,l as o,m as s,n as c,o as l,p as u,s as d,u as f}from"../../execution-attempt-repository-D0cCU7dI.mjs";import{a as p,i as m,n as h,o as g,t as _}from"../../execution-attempt-owner-recovery-BRjtmTGv.mjs";import{a as v,c as y,d as b,f as x,i as S,l as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A}from"../../attempt-record-codec-BcAPEIW3.mjs";import{a as j,c as M,d as N,f as P,i as F,l as I,m as L,n as R,o as z,p as B,r as V,s as H,t as U,u as W}from"../../attempt-fixtures-gGhCA_WQ.mjs";import{BoundedRecoveryEvidenceSchema as G}from"@makaio/framework/contracts";function K(e,t){return{...e,status:`settled`,settlementKind:t,claimable:!1,operationStartGate:`closed`}}function q(j,M={}){let N=M.attempts??new Map,P=M.operations??new Map,F=e=>P.get(e)?.obligation===`terminal-convergence`,I=M.committedOutcomes??new Map,L=M.activeAttempts??new Map,R=M.requestBindings??new Map,z=e=>{let t=e.settlementKind!=null,r=!t&&L.get(e.executionId)===e.executionAttemptId;return n({matchesExecution:!0,settled:t,active:r,allocated:r&&e.allocationRef!==null&&!F(e.executionAttemptId)})},B=e=>{let t=N.get(e.executionAttemptId),n=P.get(e.executionAttemptId);return!t||!n?{kind:`not-found`}:t.settlementKind==null?n.token===null||n.token!==e.token||n.generation!==e.generation||n.ownerId!==e.ownerId?{kind:`stale`,attempt:t}:{kind:`authorized`,attempt:t,operation:n}:{kind:`resolved`,attempt:t}},V=(e,t)=>{P.set(e.executionAttemptId,{...e,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t})},H=(e,t)=>{let n=O(e.allocationRef),r=B(e.claim);if(r.kind!==`not-found`&&b(r.attempt,n),r.kind===`resolved`)return{kind:`resolved`,allocationRef:r.attempt.allocationRef};if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i,operation:a}=r;if(i.allocationRef!==null)return o(i.allocationRef,n)?{kind:`duplicate`,allocationRef:i.allocationRef}:{kind:`conflict`,allocationRef:i.allocationRef};let s=L.get(i.executionId)===i.executionAttemptId;return N.set(i.executionAttemptId,{...i,status:`allocated`,allocationRef:n,claimable:t&&s}),P.set(a.executionAttemptId,{...a,obligation:`allocation-control`}),{kind:`recorded`}},U={async getAttemptWithAllocation(e){return N.get(e)??null},async recordDiscoveredAllocation(e){return H(e,!1)},async evolveAllocationRef(e){let{currentRef:t,nextRef:n}=y(e),r=B(e.claim);if(r.kind===`stale`)return{kind:`stale`,storedRef:r.attempt.allocationRef};if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r;return i.executionId===e.executionId?i.allocationRef===null?{kind:`not-allocated`}:o(i.allocationRef,t)?(N.set(i.executionAttemptId,{...i,allocationRef:n}),{kind:`evolved`}):{kind:`stale`,storedRef:i.allocationRef}:{kind:`not-found`}},async getRecoverableAttempts(e){let t=S(new Date().toISOString()),n=[];for(let r of N.values())r.executionId===e&&r.status===`allocated`&&r.allocationRef!==null&&r.claimable===!0&&r.settlementKind==null&&(r.claimExpiresAt!=null&&S(r.claimExpiresAt)<t||n.push(E(r)));return n.sort(w)}},W=e=>{let t=D(e.bootstrapTimeoutMs);if(N.has(e.executionAttemptId))throw new c(e.executionAttemptId);let n={executionAttemptId:e.executionAttemptId,executionId:e.executionId,instruction:e.instruction,preparationReceipts:Object.freeze([]),status:`pending`,allocationRef:null,...t,providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null,...k},r=L.get(e.executionId),i=r===void 0?void 0:N.get(r);return i!==void 0&&N.set(i.executionAttemptId,{...i,claimable:i.status===`allocated`?!1:i.claimable,operationStartGate:`closed`}),N.set(e.executionAttemptId,n),L.set(e.executionId,e.executionAttemptId),n};return{async createAttempt(e){return W({...e,instruction:g(e.instruction)})},async ensureAttempt(e){let t=m(e),n=R.get(t.executionId),r=n?.get(t.requestKey);if(r!==void 0)return h(t,N.get(r)??null);let i=W(t),a=n??new Map;return a.set(t.requestKey,i.executionAttemptId),R.set(t.executionId,a),{kind:`created`,attempt:structuredClone(i)}},async readAttemptSettlement(e){let t=p(e);return _(t,{attempt:N.get(t.executionAttemptId)??null,activeAttemptId:L.get(t.executionId)??null,outcomeText:I.get(t.executionAttemptId)??null},j)},async readBootstrapStartState(e){let t=N.get(e.executionAttemptId);return!t||t.executionId!==e.executionId?null:{settled:t.settlementKind!=null,active:L.get(e.executionId)===e.executionAttemptId,allocated:t.allocationRef!==null,allocationTerminated:F(e.executionAttemptId),operationStartGate:t.operationStartGate,bootstrapDeadlineAt:t.bootstrapDeadlineAt??null}},async beginProvisioning(e){let t=T(e.allocationLifetime),n=N.get(e.executionAttemptId);if(!n||n.executionId!==e.executionId)return{kind:`not-found`};if(L.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};if(n.settlementKind!=null)return{kind:`resolved`,allocationRef:n.allocationRef};if(n.allocationRef!==null)return{kind:`allocated`,allocationRef:n.allocationRef};if(n.status!==`pending`)return{kind:`already-provisioning`};N.set(e.executionAttemptId,{...n,status:`provisioning`,providerId:e.providerId,allocationLifetime:t,provisionerIncarnationId:e.provisionerIncarnationId});let r={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:v(e.leaseExpiresAt)};return P.set(e.executionAttemptId,{executionAttemptId:e.executionAttemptId,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt,obligation:`provisioning-resolution`,failureCount:0,lastFailure:null}),{kind:`started`,claim:r}},async getProviderOperation(e){return P.get(e)??null},async renewProviderOperationClaim(e){let t=B(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let n=v(e.leaseExpiresAt);return P.set(e.claim.executionAttemptId,{...t.operation,leaseExpiresAt:n}),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:n}}},async takeOverProviderOperation(e){let t=N.get(e.executionAttemptId),n=P.get(e.executionAttemptId);if(!t||!n)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};if(n.ownerId!==null&&n.leaseExpiresAt!==null&&S(n.leaseExpiresAt)>S(e.observedAt))return{kind:`stale`};let r={executionAttemptId:e.executionAttemptId,generation:n.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:v(e.leaseExpiresAt)};return P.set(e.executionAttemptId,{...n,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt}),{kind:`claimed`,claim:r}},async handoffProviderOperation(e){let t=e.evidence===void 0?void 0:G.parse(e.evidence),n=B(e.claim);return n.kind===`authorized`?(P.set(e.claim.executionAttemptId,{...n.operation,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t??n.operation.lastFailure}),{kind:`recorded`}):{kind:n.kind}},async recordProviderOperationUncertainty(e){let t=G.parse(e.evidence),n=B(e.claim);return n.kind===`authorized`?(P.set(e.claim.executionAttemptId,{...n.operation,failureCount:n.operation.failureCount+1,lastFailure:t}),{kind:`recorded`}):{kind:n.kind}},async recordAllocation(e){return H(e,!0)},async recordProvisioningAbsent(e){let t=G.parse(e.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?(N.set(r.executionAttemptId,K(r,`abandoned`)),V(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-found`}},async recordProvisionerIncarnationLost(e){let t=G.parse(e.proof.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n,o=a(r,e);return o===null?(N.set(r.executionAttemptId,K(r,`abandoned`)),V(i,t),{kind:`recorded`}):o},async recordAllocationTerminated(e){let t=G.parse(e.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.allocationRef===null?{kind:`not-allocated`}:(P.set(i.executionAttemptId,{...i,obligation:`terminal-convergence`,lastFailure:t}),{kind:`recorded`})},async recordInfrastructureFailure(e){let t=B(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let{attempt:n,operation:r}=t;return n.executionId===e.executionId?n.allocationRef===null?{kind:`not-allocated`}:r.obligation===`terminal-convergence`?(N.set(n.executionAttemptId,K(n,`infrastructure-failure`)),V(r,r.lastFailure),{kind:`recorded`}):{kind:`not-terminated`}:{kind:`not-found`}},async registerRuntime(t){let n=N.get(t.executionAttemptId);if(n===void 0||n.executionId!==t.executionId)return{kind:`not-found`};let r=z(n)??e(n,t);if(r!==null)return r;let i=n.runtimeGeneration+1;return N.set(n.executionAttemptId,{...n,runtimeGeneration:i,runtimeIncarnationId:t.runtimeIncarnationId,runtimeReadyAt:null,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null}),{kind:`registered`,runtimeGeneration:i}},async admitOperation(e){let t=N.get(e.executionAttemptId);if(t===void 0||t.executionId!==e.executionId)return{kind:`not-found`};let n=z(t);if(n!==null)return n;let i=r(t,e,t.activeOperationId!==null&&t.activeOperationKey===e.admissionKey&&t.activeOperationAdmittedAt===null?v(new Date().toISOString()):``,t);if(i!==null)return i;let a=crypto.randomUUID(),o=v(new Date().toISOString());return N.set(t.executionAttemptId,{...t,activeOperationId:a,activeOperationKind:e.operationKind,activeOperationKey:e.admissionKey,activeOperationGeneration:t.runtimeGeneration,activeOperationAdmittedAt:o}),{kind:`admitted`,operationId:a,runtimeGeneration:t.runtimeGeneration,admittedAt:o}},async getInstruction(e){let t=N.get(e.executionAttemptId);return t?.executionId===e.executionId?t.instruction:null},async reportOperation(e){let t=A(e.result),n=N.get(e.executionAttemptId);if(n===void 0||n.executionId!==e.executionId)return{kind:`not-found`};let r=s({matchesExecution:!0,settled:n.settlementKind!=null,active:L.get(e.executionId)===e.executionAttemptId,allocated:n.allocationRef!==null&&!F(e.executionAttemptId)},n,n,{...e,result:t});if(r!==null)return r;let i=C([...n.preparationReceipts,{operationId:e.operationId,runtimeGeneration:e.runtimeGeneration,result:t}]);return N.set(e.executionAttemptId,{...n,preparationReceipts:i,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:e.operationId}),{kind:`accepted`,binding:t.binding}},async completeOperation(e){let t=N.get(e.executionAttemptId);if(t===void 0)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};let n=u(t,e);return n===null?(N.set(t.executionAttemptId,{...t,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:e.operationId}),{kind:`completed`}):n},async markRuntimeReady(e){let t=v(e.readyAt),n=N.get(e.executionAttemptId);if(n===void 0||n.executionId!==e.executionId)return{kind:`not-found`};let r=z(n)??i(n,e);return r===null?(N.set(n.executionAttemptId,{...n,runtimeReadyAt:t}),{kind:`ready`,acceptedAt:t}):r},async getAttemptControlState(e){let t=N.get(e);return t===void 0?null:x(t)},async getActiveAttempt(e,t){return L.get(e)===t?N.get(t)??null:null},canonicalizeOutcome(e){return t(j,e)},decodeOutcome(e){return d(j,e)},async commitOutcome(e){let t=e.result;if(L.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let n=N.get(e.executionAttemptId);if(n===void 0)return{kind:`fenced`};let r=I.get(e.executionAttemptId);if(r!==void 0){let e=d(j,r);return f(r,t.text)?{kind:`duplicate`,outcome:e,text:r}:{kind:`conflict`}}if(n.settlementKind!=null)return{kind:`conflict`};l(n,e.runtimeFence),I.set(e.executionAttemptId,t.text),N.set(e.executionAttemptId,K(n,`outcome`));let i=P.get(e.executionAttemptId);return i&&V(i,i.lastFailure),{kind:`accepted`,outcome:d(j,t.text),text:t.text}},async abandonPendingAttempt(e,t){if(L.get(t)!==e)return{kind:`fenced`};let n=N.get(e);return n?n.status===`allocated`?{kind:`allocated`}:n.status===`provisioning`?{kind:`provisioning`}:n.status===`settled`?{kind:n.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:(N.set(e,K(n,`abandoned`)),{kind:`abandoned`}):{kind:`fenced`}},recovery:U,attempts:N,operations:P,committedOutcomes:I,activeAttempts:L,requestBindings:R}}export{k as INITIAL_ATTEMPT_CONTROL_STATE,U as TEST_OWNER_ID,R as TEST_PROVIDER_ID,V as TEST_PROVISIONER_INCARNATION_ID,F as allocateTestAttempt,j as beginTestProvisioning,q as createInMemoryAttemptRepository,z as driveTestAttemptToAllocated,H as leaseAt,M as makeBeginProvisioningInput,I as makeEvidence,W as makeProcessLossProof,N as makeTestAllocationRef,P as makeTestInstruction,B as makeTestWorkflowResult,L as workflowRunResultOutcomeCodec};
1
+ import{_ as e,c as t,d as n,f as r,g as i,h as a,l as o,m as s,n as c,o as l,p as u,s as d,u as f}from"../../execution-attempt-repository-D_qR7NyG.mjs";import{a as p,i as m,n as h,o as g,t as _}from"../../execution-attempt-owner-recovery-BNERIDH0.mjs";import{a as v,c as y,d as b,f as x,i as S,l as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A}from"../../attempt-record-codec-CqKq0NIB.mjs";import{a as j,c as M,d as N,f as P,i as F,l as I,m as L,n as R,o as z,p as B,r as V,s as H,t as U,u as W}from"../../attempt-fixtures-Dpfgqll0.mjs";import{BoundedRecoveryEvidenceSchema as G}from"@makaio/framework/contracts";function K(e,t){return{...e,status:`settled`,settlementKind:t,claimable:!1,operationStartGate:`closed`}}function q(j,M={}){let N=M.attempts??new Map,P=M.operations??new Map,F=e=>P.get(e)?.obligation===`terminal-convergence`,I=M.committedOutcomes??new Map,L=M.activeAttempts??new Map,R=M.requestBindings??new Map,z=e=>{let t=e.settlementKind!=null,r=!t&&L.get(e.executionId)===e.executionAttemptId;return n({matchesExecution:!0,settled:t,active:r,allocated:r&&e.allocationRef!==null&&!F(e.executionAttemptId)})},B=e=>{let t=N.get(e.executionAttemptId),n=P.get(e.executionAttemptId);return!t||!n?{kind:`not-found`}:t.settlementKind==null?n.token===null||n.token!==e.token||n.generation!==e.generation||n.ownerId!==e.ownerId?{kind:`stale`,attempt:t}:{kind:`authorized`,attempt:t,operation:n}:{kind:`resolved`,attempt:t}},V=(e,t)=>{P.set(e.executionAttemptId,{...e,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t})},H=(e,t)=>{let n=O(e.allocationRef),r=B(e.claim);if(r.kind!==`not-found`&&b(r.attempt,n),r.kind===`resolved`)return{kind:`resolved`,allocationRef:r.attempt.allocationRef};if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i,operation:a}=r;if(i.allocationRef!==null)return o(i.allocationRef,n)?{kind:`duplicate`,allocationRef:i.allocationRef}:{kind:`conflict`,allocationRef:i.allocationRef};let s=L.get(i.executionId)===i.executionAttemptId;return N.set(i.executionAttemptId,{...i,status:`allocated`,allocationRef:n,claimable:t&&s}),P.set(a.executionAttemptId,{...a,obligation:`allocation-control`}),{kind:`recorded`}},U={async getAttemptWithAllocation(e){return N.get(e)??null},async recordDiscoveredAllocation(e){return H(e,!1)},async evolveAllocationRef(e){let{currentRef:t,nextRef:n}=y(e),r=B(e.claim);if(r.kind===`stale`)return{kind:`stale`,storedRef:r.attempt.allocationRef};if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r;return i.executionId===e.executionId?i.allocationRef===null?{kind:`not-allocated`}:o(i.allocationRef,t)?(N.set(i.executionAttemptId,{...i,allocationRef:n}),{kind:`evolved`}):{kind:`stale`,storedRef:i.allocationRef}:{kind:`not-found`}},async getRecoverableAttempts(e){let t=S(new Date().toISOString()),n=[];for(let r of N.values())r.executionId===e&&r.status===`allocated`&&r.allocationRef!==null&&r.claimable===!0&&r.settlementKind==null&&(r.claimExpiresAt!=null&&S(r.claimExpiresAt)<t||n.push(E(r)));return n.sort(w)}},W=e=>{let t=D(e.bootstrapTimeoutMs);if(N.has(e.executionAttemptId))throw new c(e.executionAttemptId);let n={executionAttemptId:e.executionAttemptId,executionId:e.executionId,instruction:e.instruction,preparationReceipts:Object.freeze([]),status:`pending`,allocationRef:null,...t,providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null,...k},r=L.get(e.executionId),i=r===void 0?void 0:N.get(r);return i!==void 0&&N.set(i.executionAttemptId,{...i,claimable:i.status===`allocated`?!1:i.claimable,operationStartGate:`closed`}),N.set(e.executionAttemptId,n),L.set(e.executionId,e.executionAttemptId),n};return{async createAttempt(e){return W({...e,instruction:g(e.instruction)})},async ensureAttempt(e){let t=m(e),n=R.get(t.executionId),r=n?.get(t.requestKey);if(r!==void 0)return h(t,N.get(r)??null);let i=W(t),a=n??new Map;return a.set(t.requestKey,i.executionAttemptId),R.set(t.executionId,a),{kind:`created`,attempt:structuredClone(i)}},async readAttemptSettlement(e){let t=p(e);return _(t,{attempt:N.get(t.executionAttemptId)??null,activeAttemptId:L.get(t.executionId)??null,outcomeText:I.get(t.executionAttemptId)??null},j)},async readBootstrapStartState(e){let t=N.get(e.executionAttemptId);return!t||t.executionId!==e.executionId?null:{settled:t.settlementKind!=null,active:L.get(e.executionId)===e.executionAttemptId,allocated:t.allocationRef!==null,allocationTerminated:F(e.executionAttemptId),operationStartGate:t.operationStartGate,bootstrapDeadlineAt:t.bootstrapDeadlineAt??null}},async beginProvisioning(e){let t=T(e.allocationLifetime),n=N.get(e.executionAttemptId);if(!n||n.executionId!==e.executionId)return{kind:`not-found`};if(L.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};if(n.settlementKind!=null)return{kind:`resolved`,allocationRef:n.allocationRef};if(n.allocationRef!==null)return{kind:`allocated`,allocationRef:n.allocationRef};if(n.status!==`pending`)return{kind:`already-provisioning`};N.set(e.executionAttemptId,{...n,status:`provisioning`,providerId:e.providerId,allocationLifetime:t,provisionerIncarnationId:e.provisionerIncarnationId});let r={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:v(e.leaseExpiresAt)};return P.set(e.executionAttemptId,{executionAttemptId:e.executionAttemptId,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt,obligation:`provisioning-resolution`,failureCount:0,lastFailure:null}),{kind:`started`,claim:r}},async getProviderOperation(e){return P.get(e)??null},async renewProviderOperationClaim(e){let t=B(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let n=v(e.leaseExpiresAt);return P.set(e.claim.executionAttemptId,{...t.operation,leaseExpiresAt:n}),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:n}}},async takeOverProviderOperation(e){let t=N.get(e.executionAttemptId),n=P.get(e.executionAttemptId);if(!t||!n)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};if(n.ownerId!==null&&n.leaseExpiresAt!==null&&S(n.leaseExpiresAt)>S(e.observedAt))return{kind:`stale`};let r={executionAttemptId:e.executionAttemptId,generation:n.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:v(e.leaseExpiresAt)};return P.set(e.executionAttemptId,{...n,generation:r.generation,ownerId:r.ownerId,token:r.token,leaseExpiresAt:r.leaseExpiresAt}),{kind:`claimed`,claim:r}},async handoffProviderOperation(e){let t=e.evidence===void 0?void 0:G.parse(e.evidence),n=B(e.claim);return n.kind===`authorized`?(P.set(e.claim.executionAttemptId,{...n.operation,ownerId:null,token:null,leaseExpiresAt:null,lastFailure:t??n.operation.lastFailure}),{kind:`recorded`}):{kind:n.kind}},async recordProviderOperationUncertainty(e){let t=G.parse(e.evidence),n=B(e.claim);return n.kind===`authorized`?(P.set(e.claim.executionAttemptId,{...n.operation,failureCount:n.operation.failureCount+1,lastFailure:t}),{kind:`recorded`}):{kind:n.kind}},async recordAllocation(e){return H(e,!0)},async recordProvisioningAbsent(e){let t=G.parse(e.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?(N.set(r.executionAttemptId,K(r,`abandoned`)),V(i,t),{kind:`recorded`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-found`}},async recordProvisionerIncarnationLost(e){let t=G.parse(e.proof.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n,o=a(r,e);return o===null?(N.set(r.executionAttemptId,K(r,`abandoned`)),V(i,t),{kind:`recorded`}):o},async recordAllocationTerminated(e){let t=G.parse(e.evidence),n=B(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.allocationRef===null?{kind:`not-allocated`}:(P.set(i.executionAttemptId,{...i,obligation:`terminal-convergence`,lastFailure:t}),{kind:`recorded`})},async recordInfrastructureFailure(e){let t=B(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let{attempt:n,operation:r}=t;return n.executionId===e.executionId?n.allocationRef===null?{kind:`not-allocated`}:r.obligation===`terminal-convergence`?(N.set(n.executionAttemptId,K(n,`infrastructure-failure`)),V(r,r.lastFailure),{kind:`recorded`}):{kind:`not-terminated`}:{kind:`not-found`}},async registerRuntime(t){let n=N.get(t.executionAttemptId);if(n===void 0||n.executionId!==t.executionId)return{kind:`not-found`};let r=z(n)??e(n,t);if(r!==null)return r;let i=n.runtimeGeneration+1;return N.set(n.executionAttemptId,{...n,runtimeGeneration:i,runtimeIncarnationId:t.runtimeIncarnationId,runtimeReadyAt:null,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null}),{kind:`registered`,runtimeGeneration:i}},async admitOperation(e){let t=N.get(e.executionAttemptId);if(t===void 0||t.executionId!==e.executionId)return{kind:`not-found`};let n=z(t);if(n!==null)return n;let i=r(t,e,t.activeOperationId!==null&&t.activeOperationKey===e.admissionKey&&t.activeOperationAdmittedAt===null?v(new Date().toISOString()):``,t);if(i!==null)return i;let a=crypto.randomUUID(),o=v(new Date().toISOString());return N.set(t.executionAttemptId,{...t,activeOperationId:a,activeOperationKind:e.operationKind,activeOperationKey:e.admissionKey,activeOperationGeneration:t.runtimeGeneration,activeOperationAdmittedAt:o}),{kind:`admitted`,operationId:a,runtimeGeneration:t.runtimeGeneration,admittedAt:o}},async getInstruction(e){let t=N.get(e.executionAttemptId);return t?.executionId===e.executionId?t.instruction:null},async reportOperation(e){let t=A(e.result),n=N.get(e.executionAttemptId);if(n===void 0||n.executionId!==e.executionId)return{kind:`not-found`};let r=s({matchesExecution:!0,settled:n.settlementKind!=null,active:L.get(e.executionId)===e.executionAttemptId,allocated:n.allocationRef!==null&&!F(e.executionAttemptId)},n,n,{...e,result:t});if(r!==null)return r;let i=C([...n.preparationReceipts,{operationId:e.operationId,runtimeGeneration:e.runtimeGeneration,result:t}]);return N.set(e.executionAttemptId,{...n,preparationReceipts:i,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:e.operationId}),{kind:`accepted`,binding:t.binding}},async completeOperation(e){let t=N.get(e.executionAttemptId);if(t===void 0)return{kind:`not-found`};if(t.settlementKind!=null)return{kind:`resolved`};let n=u(t,e);return n===null?(N.set(t.executionAttemptId,{...t,activeOperationId:null,activeOperationKind:null,activeOperationKey:null,activeOperationGeneration:null,activeOperationAdmittedAt:null,lastCompletedOperationId:e.operationId}),{kind:`completed`}):n},async markRuntimeReady(e){let t=v(e.readyAt),n=N.get(e.executionAttemptId);if(n===void 0||n.executionId!==e.executionId)return{kind:`not-found`};let r=z(n)??i(n,e);return r===null?(N.set(n.executionAttemptId,{...n,runtimeReadyAt:t}),{kind:`ready`,acceptedAt:t}):r},async getAttemptControlState(e){let t=N.get(e);return t===void 0?null:x(t)},async getActiveAttempt(e,t){return L.get(e)===t?N.get(t)??null:null},canonicalizeOutcome(e){return t(j,e)},decodeOutcome(e){return d(j,e)},async commitOutcome(e){let t=e.result;if(L.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let n=N.get(e.executionAttemptId);if(n===void 0)return{kind:`fenced`};let r=I.get(e.executionAttemptId);if(r!==void 0){let e=d(j,r);return f(r,t.text)?{kind:`duplicate`,outcome:e,text:r}:{kind:`conflict`}}if(n.settlementKind!=null)return{kind:`conflict`};l(n,e.runtimeFence),I.set(e.executionAttemptId,t.text),N.set(e.executionAttemptId,K(n,`outcome`));let i=P.get(e.executionAttemptId);return i&&V(i,i.lastFailure),{kind:`accepted`,outcome:d(j,t.text),text:t.text}},async abandonPendingAttempt(e,t){if(L.get(t)!==e)return{kind:`fenced`};let n=N.get(e);return n?n.status===`allocated`?{kind:`allocated`}:n.status===`provisioning`?{kind:`provisioning`}:n.status===`settled`?{kind:n.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:(N.set(e,K(n,`abandoned`)),{kind:`abandoned`}):{kind:`fenced`}},recovery:U,attempts:N,operations:P,committedOutcomes:I,activeAttempts:L,requestBindings:R}}export{k as INITIAL_ATTEMPT_CONTROL_STATE,U as TEST_OWNER_ID,R as TEST_PROVIDER_ID,V as TEST_PROVISIONER_INCARNATION_ID,F as allocateTestAttempt,j as beginTestProvisioning,q as createInMemoryAttemptRepository,z as driveTestAttemptToAllocated,H as leaseAt,M as makeBeginProvisioningInput,I as makeEvidence,W as makeProcessLossProof,N as makeTestAllocationRef,P as makeTestInstruction,B as makeTestWorkflowResult,L as workflowRunResultOutcomeCodec};
@@ -1,4 +1,4 @@
1
- import { C as ExecutionAttemptRepository, P as OutcomeCodec } from "../../execution-attempt-repository-CPk3F98N.mjs";
1
+ import { C as ExecutionAttemptRepository, P as OutcomeCodec } from "../../execution-attempt-repository-CtFZfBfp.mjs";
2
2
  import { MakaioDatabase } from "@makaio/framework/storage/drizzle";
3
3
 
4
4
  //#region subsystems/workflow-engine/src/testing/sqlite-attempt-repository.d.ts
@@ -1,4 +1,4 @@
1
- import{_ as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as ee,o as te,p as ne,r as l,s as u,t as d,u as f}from"../../execution-attempt-repository-D0cCU7dI.mjs";import{a as re,i as ie,n as ae,o as p,t as oe}from"../../execution-attempt-owner-recovery-BRjtmTGv.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as m}from"../provider-operation.mjs";import{a as h,c as g,d as se,i as _,l as v,o as y,p as b,r as x,s as ce,t as le,u as ue}from"../../attempt-record-codec-BcAPEIW3.mjs";import{BoundedRecoveryEvidenceSchema as S,ExecutionAttemptOperationKindSchema as C,ProviderAllocationRefSchema as w,WorkerAllocationLifetimeSchema as T}from"@makaio/framework/contracts";import{getRawSqlExecutor as de,isSqliteUniqueViolationError as E,serializeByKey as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{sql as k}from"drizzle-orm";const A=[`CREATE TABLE IF NOT EXISTS test_execution_attempt (
1
+ import{_ as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as ee,o as te,p as ne,r as l,s as u,t as d,u as f}from"../../execution-attempt-repository-D_qR7NyG.mjs";import{a as re,i as ie,n as ae,o as p,t as oe}from"../../execution-attempt-owner-recovery-BNERIDH0.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as m}from"../provider-operation.mjs";import{a as h,c as g,d as se,i as _,l as v,o as y,p as b,r as x,s as ce,t as le,u as ue}from"../../attempt-record-codec-CqKq0NIB.mjs";import{BoundedRecoveryEvidenceSchema as S,ExecutionAttemptOperationKindSchema as C,ProviderAllocationRefSchema as w,WorkerAllocationLifetimeSchema as T}from"@makaio/framework/contracts";import{getRawSqlExecutor as de,isSqliteUniqueViolationError as E,serializeByKey as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{sql as k}from"drizzle-orm";const A=[`CREATE TABLE IF NOT EXISTS test_execution_attempt (
2
2
  execution_attempt_id TEXT PRIMARY KEY,
3
3
  execution_id TEXT NOT NULL,
4
4
  instruction TEXT NOT NULL,
@@ -1 +1 @@
1
- import{H as e,L as t,c as n,d as r,i,k as a,l as o,r as s,s as c,t as l,vt as u}from"../authority-state-bootstrap-7Cgb9TR2.mjs";import{WORKFLOW_CANCELLED_REASON as d,WorkflowRunContextSchema as f}from"@makaio/framework/contracts";import*as p from"node:os";async function m(t,n,r,i){let a=await y(t,n,r);return await t.request(e.setExecution,{execution:a}),r===`completed`?await t.emit(u.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:a.completedAt}):await t.emit(u.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:i,completedAt:a.completedAt}),r===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...i===void 0?{}:{reason:i}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function h(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function g(e){let n,r=()=>{n=a({bus:e.bus,activeExecutions:e.activeExecutions,shellAbortControllers:e.shellAbortControllers,activeRunnerSteps:e.activeRunnerSteps,durableLifecycleTransitions:e.durableLifecycleTransitions,lifecyclePublications:e.lifecyclePublications,publishingLifecycleExecutions:e.publishingLifecycleExecutions,cancelTimeoutMs:t.cancelTimeoutMs},e.executionId,d).catch(t=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${e.executionId}:`,t),!1))};return e.signal.addEventListener(`abort`,r,{once:!0}),e.signal.aborted&&r(),async()=>(e.signal.removeEventListener(`abort`,r),n??!1)}async function _(t,n){let r=await t.requestOptional(e.getExecution,{executionId:n});return r.handled?r.data.execution?.startedAt??void 0:void 0}async function v(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function y(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function b(e,t,r,a,s,c,l,u,f){let m=e.suspensionStrategy===`wait-in-process`?void 0:await x(e.executionId,l,{required:!0}),h=await n({definition:t,execution:r,runContext:a,zodSchema:f?.artifact,bus:l}),g=new o(e.executionId,e.workflowId,t,r,s,l,u,void 0,h,{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${p.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:m,runtimeLoopGates:c}),_=g.buildExpressionContext(),v=await i(t.root,g,_);return v.status===`failed`?{status:`failed`,error:v.error}:v.status===`paused`?{status:`paused`,pausedAtGateId:v.pausedAtGateId,pausedAtFrameId:v.pausedAtFrameId}:v.status===`cancelled`||u.aborted?{status:`cancelled`,reason:d}:{status:`completed`,artifact:h?.current}}async function x(t,n,r={}){try{let i=await n.requestOptional(e.listFrames,{executionId:t});if(!i.handled){if(r.required===!0)throw Error(`Frame storage handler is required to resume execution '${t}'.`);return}return i.data.frames.length===0?void 0:c(i.data.frames)}catch(e){if(r.required===!0)throw e;return}}function S(e,t){return f.parse({executionId:e.executionId,workflowId:e.workflowId,source:e.source.kind===`path`?{kind:`path`,path:e.materializationSpec?.sourcePath??``}:e.source,definitionSnapshot:e.source.kind===`definition`?e.definition??t:t,workerManifest:{contributionRefs:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy,...e.terminalAuthority===void 0?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}async function C(t,n,r,i,a){r.status=`paused`,await t.request(e.setExecution,{execution:r}),await t.emit(u.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:i,pausedAtFrameId:a})}async function w(e,t,n,r,i,a){n===`completed`?await e.emit(u.execution.completed,{executionId:t.executionId,workflowId:t.workflowId,totalDuration:i-r.startedAt,completedAt:i}):n===`cancelled`?await e.emit(u.execution.cancelled,{executionId:t.executionId,workflowId:t.workflowId,reason:d,completedAt:i}):await e.emit(u.execution.failed,{executionId:t.executionId,workflowId:t.workflowId,error:a??`Workflow execution failed`,completedAt:i})}async function T(t){let{config:n,loaded:i,bus:a,signal:o}=t,{definition:c}=i;if(o.aborted)return n.terminalAuthority===`authority`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,reason:d}:m(a,n,`cancelled`,d);let u=await v(a,n),f=S(n,c);n.terminalAuthority===`authority`?await l(a,f,c):await r(a,u,f,c);let p=new Map(i.runtimeHandlers),_=i.runtimeLoopGates??new Map,y=new Map,x=new Map,T=new Map,E=new Map,D=new Map,O=new Set;y.set(n.executionId,{execution:u,workflow:c,runContext:f,runtimeHandlers:p,runtimeLoopGates:new Map(_)});let k=n.terminalAuthority===`authority`?async()=>!1:g({signal:o,executionId:n.executionId,bus:a,activeExecutions:y,shellAbortControllers:x,activeRunnerSteps:T,durableLifecycleTransitions:E,lifecyclePublications:D,publishingLifecycleExecutions:O}),A={status:`completed`},j=!1;try{c.root.nodes.length>0&&(s(c,_),A=await b(n,c,u,f,p,_,a,o,i.zodSchemas))}catch(e){A={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{j=await k(),y.clear()}if(j)return h(n,{status:`cancelled`,reason:d});if((o.aborted||u.status===`cancelled`)&&(A={status:`cancelled`,reason:d}),A.status===`paused`)return n.terminalAuthority!==`authority`&&await C(a,n,u,A.pausedAtGateId,A.pausedAtFrameId),h(n,A);if(n.terminalAuthority===`authority`)return h(n,A);let M=Date.now(),N=A.status===`failed`?A.error:void 0;return u.status=A.status,u.completedAt=M,u.error=N,await a.request(e.setExecution,{execution:u}),await w(a,n,A.status,u,M,N),h(n,A)}export{T as runWorkflowOrchestrator};
1
+ import{H as e,L as t,c as n,d as r,i,k as a,l as o,r as s,s as c,t as l,vt as u}from"../authority-state-bootstrap-rnsTk0u7.mjs";import{WORKFLOW_CANCELLED_REASON as d,WorkflowRunContextSchema as f}from"@makaio/framework/contracts";import*as p from"node:os";async function m(t,n,r,i){let a=await y(t,n,r);return await t.request(e.setExecution,{execution:a}),r===`completed`?await t.emit(u.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:0,completedAt:a.completedAt}):await t.emit(u.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:i,completedAt:a.completedAt}),r===`cancelled`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,...i===void 0?{}:{reason:i}}:{executionId:n.executionId,workflowId:n.workflowId,status:`completed`}}function h(e,t){return t.status===`completed`?{executionId:e.executionId,workflowId:e.workflowId,status:`completed`,...t.artifact===void 0?{}:{artifact:t.artifact}}:t.status===`cancelled`?{executionId:e.executionId,workflowId:e.workflowId,status:`cancelled`,...t.reason===void 0?{}:{reason:t.reason}}:t.status===`paused`?{executionId:e.executionId,workflowId:e.workflowId,status:`paused`,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId}:{executionId:e.executionId,workflowId:e.workflowId,status:`failed`,error:t.error}}function g(e){let n,r=()=>{n=a({bus:e.bus,activeExecutions:e.activeExecutions,shellAbortControllers:e.shellAbortControllers,activeRunnerSteps:e.activeRunnerSteps,durableLifecycleTransitions:e.durableLifecycleTransitions,lifecyclePublications:e.lifecyclePublications,publishingLifecycleExecutions:e.publishingLifecycleExecutions,cancelTimeoutMs:t.cancelTimeoutMs},e.executionId,d).catch(t=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${e.executionId}:`,t),!1))};return e.signal.addEventListener(`abort`,r,{once:!0}),e.signal.aborted&&r(),async()=>(e.signal.removeEventListener(`abort`,r),n??!1)}async function _(t,n){let r=await t.requestOptional(e.getExecution,{executionId:n});return r.handled?r.data.execution?.startedAt??void 0:void 0}async function v(e,t){return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:`running`,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??Date.now(),triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function y(e,t,n){let r=Date.now();return{id:t.executionId,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,status:n,inputs:t.inputs,config:t.config??{},startedAt:await _(e,t.executionId)??r,completedAt:r,triggerPayload:t.triggerPayload,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope}}async function b(e,t,r,a,s,c,l,u,f){let m=e.suspensionStrategy===`wait-in-process`?void 0:await x(e.executionId,l,{required:!0}),h=await n({definition:t,execution:r,runContext:a,zodSchema:f?.artifact,bus:l}),g=new o(e.executionId,e.workflowId,t,r,s,l,u,void 0,h,{context:{repoPath:process.cwd(),makaioHome:process.env.MAKAIO_HOME??`${p.homedir()}/.makaio`,os:process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`,arch:process.arch},env:e.env},{suspensionStrategy:e.suspensionStrategy,resumeFrames:m,runtimeLoopGates:c}),_=g.buildExpressionContext(),v=await i(t.root,g,_);return v.status===`failed`?{status:`failed`,error:v.error}:v.status===`paused`?{status:`paused`,pausedAtGateId:v.pausedAtGateId,pausedAtFrameId:v.pausedAtFrameId}:v.status===`cancelled`||u.aborted?{status:`cancelled`,reason:d}:{status:`completed`,artifact:h?.current}}async function x(t,n,r={}){try{let i=await n.requestOptional(e.listFrames,{executionId:t});if(!i.handled){if(r.required===!0)throw Error(`Frame storage handler is required to resume execution '${t}'.`);return}return i.data.frames.length===0?void 0:c(i.data.frames)}catch(e){if(r.required===!0)throw e;return}}function S(e,t){return f.parse({executionId:e.executionId,workflowId:e.workflowId,source:e.source.kind===`path`?{kind:`path`,path:e.materializationSpec?.sourcePath??``}:e.source,definitionSnapshot:e.source.kind===`definition`?e.definition??t:t,workerManifest:{contributionRefs:[]},inputs:e.inputs,config:e.config??{},scope:e.scope,triggerPayload:e.triggerPayload,...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},coordinatorSessionId:e.coordinatorSessionId,cancelSubject:e.cancelSubject,env:e.env,createdAt:Date.now(),suspensionStrategy:e.suspensionStrategy,...e.terminalAuthority===void 0?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec}})}async function C(t,n,r,i,a){r.status=`paused`,await t.request(e.setExecution,{execution:r}),await t.emit(u.execution.paused,{executionId:n.executionId,workflowId:n.workflowId,pausedAtGateId:i,pausedAtFrameId:a})}async function w(e,t,n,r,i,a){n===`completed`?await e.emit(u.execution.completed,{executionId:t.executionId,workflowId:t.workflowId,totalDuration:i-r.startedAt,completedAt:i}):n===`cancelled`?await e.emit(u.execution.cancelled,{executionId:t.executionId,workflowId:t.workflowId,reason:d,completedAt:i}):await e.emit(u.execution.failed,{executionId:t.executionId,workflowId:t.workflowId,error:a??`Workflow execution failed`,completedAt:i})}async function T(t){let{config:n,loaded:i,bus:a,signal:o}=t,{definition:c}=i;if(o.aborted)return n.terminalAuthority===`authority`?{executionId:n.executionId,workflowId:n.workflowId,status:`cancelled`,reason:d}:m(a,n,`cancelled`,d);let u=await v(a,n),f=S(n,c);n.terminalAuthority===`authority`?await l(a,f,c):await r(a,u,f,c);let p=new Map(i.runtimeHandlers),_=i.runtimeLoopGates??new Map,y=new Map,x=new Map,T=new Map,E=new Map,D=new Map,O=new Set;y.set(n.executionId,{execution:u,workflow:c,runContext:f,runtimeHandlers:p,runtimeLoopGates:new Map(_)});let k=n.terminalAuthority===`authority`?async()=>!1:g({signal:o,executionId:n.executionId,bus:a,activeExecutions:y,shellAbortControllers:x,activeRunnerSteps:T,durableLifecycleTransitions:E,lifecyclePublications:D,publishingLifecycleExecutions:O}),A={status:`completed`},j=!1;try{c.root.nodes.length>0&&(s(c,_),A=await b(n,c,u,f,p,_,a,o,i.zodSchemas))}catch(e){A={status:`failed`,error:e instanceof Error?e.message:String(e)}}finally{j=await k(),y.clear()}if(j)return h(n,{status:`cancelled`,reason:d});if((o.aborted||u.status===`cancelled`)&&(A={status:`cancelled`,reason:d}),A.status===`paused`)return n.terminalAuthority!==`authority`&&await C(a,n,u,A.pausedAtGateId,A.pausedAtFrameId),h(n,A);if(n.terminalAuthority===`authority`)return h(n,A);let M=Date.now(),N=A.status===`failed`?A.error:void 0;return u.status=A.status,u.completedAt=M,u.error=N,await a.request(e.setExecution,{execution:u}),await w(a,n,A.status,u,M,N),h(n,A)}export{T as runWorkflowOrchestrator};
@@ -1 +1 @@
1
- import{u as e}from"./framework-packages-BHgul8Kl.mjs";function t(){let t=new Map;return{filter:e=>!!(e.transitionRules?.rules?.length||e.transitionActions?.actions),async processActivated(i,a,o){let s=o.getService(e);if(!s)throw Error(`TransitionContributionProcessor: TransitionPipelineService is not available — ensure '${e.name}' is started before extensions with transitionRules or transitionActions.`);let c=a.transitionRules?.rules??[],l=a.transitionActions?.actions,u=c.length>0,d=l!==void 0;u&&n(i,c),d&&r(i,l);let f=!1,p=!1;try{u&&(s.ruleRegistry.register(i,c),f=!0),d&&(s.actionRegistry.register(i,l),p=!0)}catch(e){throw f&&s.ruleRegistry.deregister(i),p&&s.actionRegistry.deregister(i),e}t.set(i,()=>{u&&s.ruleRegistry.deregister(i),d&&s.actionRegistry.deregister(i)})},async processStopped(e){let n=t.get(e);if(n){try{n()}catch(t){console.error(`[TransitionContributionProcessor] Deregister error for "${e}":`,t)}t.delete(e)}}}}function n(e,t){let n=`${e}.`;for(let e of t)if(!e.id.startsWith(n))throw Error(`TransitionContributionProcessor: rule '${e.id}' must be namespaced by extension '${n}'`)}function r(e,t){let n=`${e}.`;for(let e of Object.keys(t))if(!e.startsWith(n))throw Error(`TransitionContributionProcessor: action type '${e}' must be namespaced by extension '${n}'`)}export{t};
1
+ import{u as e}from"./framework-packages-CZJDukan.mjs";function t(){let t=new Map;return{filter:e=>!!(e.transitionRules?.rules?.length||e.transitionActions?.actions),async processActivated(i,a,o){let s=o.getService(e);if(!s)throw Error(`TransitionContributionProcessor: TransitionPipelineService is not available — ensure '${e.name}' is started before extensions with transitionRules or transitionActions.`);let c=a.transitionRules?.rules??[],l=a.transitionActions?.actions,u=c.length>0,d=l!==void 0;u&&n(i,c),d&&r(i,l);let f=!1,p=!1;try{u&&(s.ruleRegistry.register(i,c),f=!0),d&&(s.actionRegistry.register(i,l),p=!0)}catch(e){throw f&&s.ruleRegistry.deregister(i),p&&s.actionRegistry.deregister(i),e}t.set(i,()=>{u&&s.ruleRegistry.deregister(i),d&&s.actionRegistry.deregister(i)})},async processStopped(e){let n=t.get(e);if(n){try{n()}catch(t){console.error(`[TransitionContributionProcessor] Deregister error for "${e}":`,t)}t.delete(e)}}}}function n(e,t){let n=`${e}.`;for(let e of t)if(!e.id.startsWith(n))throw Error(`TransitionContributionProcessor: rule '${e.id}' must be namespaced by extension '${n}'`)}function r(e,t){let n=`${e}.`;for(let e of Object.keys(t))if(!e.startsWith(n))throw Error(`TransitionContributionProcessor: action type '${e}' must be namespaced by extension '${n}'`)}export{t};
@@ -0,0 +1,2 @@
1
+ import{resolveMakaioHome as e}from"./runtime-node/makaio-config.mjs";import{t}from"./extension-package-provenance-CTYdo0yF.mjs";import{b as n,c as r,g as i,l as a,n as o,u as s,v as c}from"./bootstrap-start-client-BYoxrgMk.mjs";import{mintOrRotateWorkflowExecutionBusSecret as l}from"./runtime-node/workflow-execution-bus-access.mjs";import{z as u}from"zod";import{execFile as d,spawn as f}from"node:child_process";import{promisify as p}from"node:util";import*as m from"node:fs/promises";import{access as ee}from"node:fs/promises";import*as h from"node:path";import{basename as te,isAbsolute as ne,join as g,relative as re}from"node:path";import*as _ from"node:crypto";import{randomUUID as v}from"node:crypto";import{constants as ie}from"node:fs";import{BusAbortError as ae,createBusInstance as y,isRequestCancellation as oe,waitForSubscriptionPropagation as se}from"@makaio/framework/bus";import{AdapterSubjects as ce,BoundedRecoveryEvidenceSchema as le,ExecutionAttemptSchemas as b,ExecutionAttemptSubjects as x,FrameworkContractNamespaces as ue,FrameworkStorageNamespaces as de,JsonValueSchema as fe,PROVIDER_ALLOCATION_REF_VERSION as pe,ProviderAllocationRefSchema as me,RECOVERY_EVIDENCE_LIMITS as S,WorkerCapabilitiesSchema as he,WorkerSchemas as ge,WorkerSubjects as C,WorkflowRunContextSchema as _e,WorkflowRunResultSchema as ve,WorkflowWorkerConfigSchema as ye,createWorkflowCancelSubject as be}from"@makaio/framework/contracts";import{ExtensionCoordinator as xe,KernelSubjects as Se,coalesceExtensionOverrides as Ce,filterEligibleExtensions as we}from"@makaio/framework/kernel";import{BaseService as Te}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as Ee,registerAdapterRuntimeIdentityHandlers as De}from"@makaio/framework/services/adapter-runtime";import{devNull as w}from"node:os";import{CLIDetectionNamespace as Oe,CLIDetectionSubjects as ke}from"@makaio/framework/services/cli-detection/namespace";import{SessionOrchestratorToken as Ae,ToolRegistryToken as je,canonicalModelPackage as Me,createSubagentServicePackage as Ne,createToolContributionProcessor as Pe,frameworkCorePackages as T,sessionBridgePackage as Fe,sessionOrchestratorPackage as Ie,sessionPackage as Le,sessionStoragePackage as Re,toolRegistryPackage as ze}from"@makaio/framework/services";import{AdapterSubsystemSubjects as Be}from"@makaio/framework/services/adapter-subsystem";import{createClientsCorePackage as Ve}from"@makaio/framework/clients";import{AdapterSubsystemToken as E,createAdapterSubsystemContributionProcessor as He,createAdapterSubsystemPackage as Ue,orderAfterAdapterSubsystem as We}from"@makaio/framework/adapter-subsystem";import{execa as Ge}from"execa";import Ke from"piscina";import{ExecutionAttemptAuthority as qe,WORKFLOW_WORKLOAD_KIND as Je,WORKFLOW_WORKLOAD_VERSION as Ye,WorkflowStorageSubjects as Xe,buildWorkflowAttemptInstruction as Ze,parseWorkflowAttemptInstruction as D,runAuthorityDispatchedAttempt as Qe,toCommittedWorkflowRunnerResult as $e}from"@makaio/framework/workflow-engine";import{runWorkflowOrchestrator as et}from"@makaio/framework/workflow-engine/workflow-orchestrator";import{setTimeout as tt}from"node:timers/promises";function O(e){return e.on(ce.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(Ee.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function k(e){let{coordinator:t,configRepository:n,platformDefaults:r,prepareAuthRuntime:i,runtimeSnapshotHandlerPriority:a,runtimeDefinitionHandlerPriority:o}=e,s=Ue({configRepository:n,coordinator:t,platformDefaults:r,...i!==void 0&&{prepareAuthRuntime:i},...a!==void 0&&{runtimeSnapshotHandlerPriority:a},...o!==void 0&&{runtimeDefinitionHandlerPriority:o}});return t.registerContributionProcessor(He({getAdapterSubsystemService:()=>t.getExtensionService(E)})),{adapterSubsystemPackage:s}}function A(e){let{bus:t,currentMachineId:n}=e,r=De(t,{currentMachineId:n,listKnownAdapterNames:e.listKnownAdapterNames??(async()=>{let{configs:e}=await t.request(Be.listAdapterConfigs,{});return e.map(e=>e.name)}),...e.resolveLiveAdapterId!==void 0&&{resolveLiveAdapterId:e.resolveLiveAdapterId},...e.resolveLiveAdapterIdentity!==void 0&&{resolveLiveAdapterIdentity:e.resolveLiveAdapterIdentity},...e.listLiveAdapterIdentities!==void 0&&{listLiveAdapterIdentities:e.listLiveAdapterIdentities}}),i=O(t);return{cleanup:()=>{r.cleanup(),i()}}}function j(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=nt(t),i=(r===void 0?[t]:[t,n]).flatMap(e=>[`Cannot find package '${e}'`,`Cannot find module '${e}'`,`Cannot find package "${e}"`,`Cannot find module "${e}"`]),a=e;return(a.code===`ERR_MODULE_NOT_FOUND`||a.code===`MODULE_NOT_FOUND`)&&i.some(t=>e.message.includes(t))||a.code===`ERR_PACKAGE_PATH_NOT_EXPORTED`&&r!==void 0&&e.message.includes(`Package subpath '${r}' is not defined by "exports"`)&&rt(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function M(e){try{return await import(e)}catch(t){if(j(t,e))return null;throw t}}function nt(e){let t=e.split(`/`);return e.startsWith(`@`)?{rootPackageName:t.slice(0,2).join(`/`),subpath:t.length>2?`./${t.slice(2).join(`/`)}`:void 0}:{rootPackageName:t[0]??e,subpath:t.length>1?`./${t.slice(1).join(`/`)}`:void 0}}function rt(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}async function N(e,t=process.env,n=process.platform){let r=t[Object.keys(t).find(e=>e.toUpperCase()===`PATH`)??`PATH`]??``,i=(t.PATHEXT??`.EXE;.CMD;.BAT;.COM`).split(`;`).filter(Boolean),a=n===`win32`?h.extname(e)===``?i:[``,...i]:[``];for(let t of r.split(h.delimiter)){let n=t.replace(/^"|"$/gu,``),r=h.resolve(n||process.cwd());for(let t of a){let n=h.join(r,`${e}${t}`);try{return await ee(n,ie.X_OK),n}catch{}}}}async function P(e,t=5e3,n=1e3){let{stdout:r}=await Ge(e,[`--version`],{forceKillAfterDelay:n,timeout:t});return r}function it(e){return e.match(/(\d+\.\d+\.\d+)/u)?.[1]??`unknown`}async function at(e,t=N,n=P){try{let r=await t(e);if(r===void 0)return{binary:e,found:!1};let i=await n(r);return i.length===0?{binary:e,found:!1}:{binary:e,found:!0,path:r,version:it(i)}}catch{return{binary:e,found:!1}}}async function ot(e,t=N,n=P){return Promise.all(e.map(e=>at(e,t,n)))}var st=class extends Te{constructor(e){super(e)}onInit(){this.registerHandler(ke.scan,async e=>{let t=await ot(e.payload.binaries);e.setResult({results:t})})}};const F={name:`makaio.cli-detection`,displayName:`CLI Detection`,version:`0.1.0`,critical:!0,surface:`any`,namespaces:[Oe],create:e=>new st(e.bus)};function I(e,t){e.push(...ct(t))}function ct(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function lt(e,t=[]){let n=new Set([e]),r=new Set,i=new Map;for(let e of t)typeof e==`string`?n.add(e):(r.add(e.id),e.version!==void 0&&i.set(e.id,e.version));return{hosts:n,capabilities:r,...i.size>0?{capabilityVersions:i}:{}}}function ut(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function L(e){return Ce(we(ft(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function dt(e,n){let r=L(n),i=new Set(r.map(t));return e.filter(({ownerPackage:e})=>i.has(e)).map(({package:e})=>e)}function ft(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function R(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function pt(e,t){let n=R(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function z(e){return pt(e,`sessionOrchestrator`),R(e,`sessionOrchestrator`).length===0}function mt(e){return e===!0||z(e)?T:T.filter(e=>e.name!==Ae.name)}function B(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&I(r,e.configure({bus:t,registerContributionProcessor:e=>{r.push(n.registerContributionProcessor(e))},forEachActiveExtension:e=>{n.forEachActiveExtension(e)}}))}}catch(e){let t=[];for(let e of[...r].reverse())try{e()}catch(e){t.push(e)}throw t.length>0?AggregateError([e,...t],`Extension boot contribution failed and rollback cleanup reported additional errors`,{cause:e}):e}return r}function ht(){let e=process.env.MAKAIO_SKIP_EXTENSIONS;if(!e)return new Set;let t=e.split(`,`).map(e=>e.trim()).filter(Boolean);return new Set(t)}var V=class{pool;constructor(e){this.pool=new Ke({filename:e.workerEntry,maxThreads:e.maxConcurrency??4,idleTimeout:e.idleTimeoutMs??3e4})}async run(e,t,n){return this.pool.run(e,{signal:t,transferList:n})}onMessage(e){return this.pool.on(`message`,e),()=>this.pool.off(`message`,e)}async dispose(){await this.pool.destroy()}},H=class extends Error{code;constructor(e,t){super(e),this.code=t,this.name=`MaterializationError`}};function U(e,t,n){let r=h.resolve(t)+h.sep,i=h.resolve(e);if(i!==h.resolve(t)&&!i.startsWith(r))throw new H(`${n} escapes allowed root: ${e} is not within ${t}`,`containment-violation`)}async function W(e,t,n,r){let i=r??await m.realpath(t),a;try{a=await m.realpath(e)}catch{return e}let o=i+h.sep;if(a!==i&&!a.startsWith(o))throw new H(`${n} escapes allowed root via symlink: real path ${a} is not within ${i}`,`symlink-escape`);return a}function gt(e){let t=e.indexOf(`-`);if(t===-1)throw new H(`Invalid SRI integrity format: ${e}`,`contribution-integrity-mismatch`);return{algorithm:e.slice(0,t),digest:e.slice(t+1)}}async function _t(e,t){let n=await m.readFile(e);return _.createHash(t).update(n).digest(`base64`)}const G=new Set([`.git`,`node_modules`]);function vt(e){return G.has(e.toLowerCase())}async function yt(e,t){let n=t.toLowerCase();if(!G.has(n))return!1;if(t===n)return!0;try{let[r,i]=await Promise.all([m.lstat(h.join(e,t)),m.lstat(h.join(e,n))]);return r.dev===i.dev&&r.ino===i.ino}catch(e){if(e.code===`ENOENT`)return!1;throw e}}const bt=G,xt=new Set([`.DS_Store`]);async function St(e,t){let n=_.createHash(t),r=[];async function i(t){let n=await m.readdir(t,{withFileTypes:!0});for(let a of n){let n=h.join(t,a.name);if(a.isSymbolicLink())throw new H(`Contribution package contains a symbolic link: ${h.relative(e,n)}`,`symlink-escape`);if(a.isDirectory()){bt.has(a.name)||await i(n);continue}if(a.isFile()){xt.has(a.name)||r.push(h.relative(e,n));continue}throw new H(`Contribution package contains an unsupported filesystem entry: ${h.relative(e,n)}`,`contribution-integrity-mismatch`)}}await i(e),r.sort();for(let t of r)n.update(t.split(h.sep).join(`/`)),n.update(`\0`),n.update(await m.readFile(h.join(e,t))),n.update(`\0`);return`${t}-${n.digest(`base64`)}`}async function Ct(e,t=`sha256`){let n=_.createHash(t),r=[];async function i(t){let n=await m.readdir(t,{withFileTypes:!0});for(let a of n){let n=h.join(t,a.name);if(!await yt(t,a.name)){if(a.isDirectory()){await i(n);continue}if(a.isFile()){r.push(h.relative(e,n));continue}throw a.isSymbolicLink()?new H(`Workspace root contains a symbolic link: ${h.relative(e,n)}`,`symlink-escape`):new H(`Workspace root contains an unsupported filesystem entry: ${h.relative(e,n)}`,`unsupported-filesystem-entry`)}}}await i(e),r.sort();for(let t of r){n.update(t),n.update(`\0`);let r=await m.readFile(h.join(e,t));n.update(r),n.update(`\0`)}return`${t}-${n.digest(`base64`)}`}async function wt(e,t,n){let r=h.join(t,`node_modules`,e.packageName);U(r,t,`Contribution package directory`),await W(r,t,`Contribution package directory`,n);let i=h.join(r,`package.json`),a;try{a=await m.readFile(i,`utf-8`)}catch{throw new H(`Contribution package not found: ${e.packageName} (expected at ${r})`,`contribution-missing`)}let o=JSON.parse(a);if(o.name!==e.packageName)throw new H(`Contribution identity mismatch: expected ${e.packageName}, found ${o.name??`<none>`}`,`contribution-missing`);if(o.version!==e.version)throw new H(`Contribution version mismatch for ${e.packageName}: expected ${e.version}, found ${o.version??`<none>`}`,`contribution-version-mismatch`);let s=h.join(r,e.entrypoint);U(s,r,`Contribution entrypoint`),await W(s,t,`Contribution entrypoint`,n);try{await m.access(s)}catch{throw new H(`Contribution entrypoint not found for ${e.packageName}: ${e.entrypoint}`,`contribution-entrypoint-mismatch`)}let{algorithm:c}=gt(e.integrity),l;try{l=await St(r,c)}catch(t){if(t instanceof H)throw t;let n=typeof t==`object`&&t&&`code`in t&&typeof t.code==`string`?t.code:void 0;throw n!==void 0&&!n.startsWith(`ERR_`)?new H(`Contribution package cannot be read for ${e.packageName}`,`contribution-entrypoint-mismatch`):t}if(l!==e.integrity)throw new H(`Contribution integrity mismatch for ${e.packageName}: expected ${e.integrity}, computed ${l}`,`contribution-integrity-mismatch`);return s}async function Tt(e,t,n){let r=await n.resolveWorkspaceRoot(e.workspaceId);if(r===void 0)throw new H(`Unknown workspace ID: ${e.workspaceId}`,`unknown-workspace`);try{if(!(await m.stat(r)).isDirectory())throw new H(`Workspace root is not a directory: ${r}`,`containment-violation`)}catch(e){throw e instanceof H?e:new H(`Workspace root does not exist: ${r}`,`containment-violation`)}let i=await m.realpath(r),a=h.resolve(r,e.sourcePath);if(U(a,r,`Source path`),h.relative(r,a).split(h.sep).some(vt))throw new H(`Workflow source path selects excluded workspace content: ${e.sourcePath}`,`source-path-mismatch`);await W(a,r,`Source path`,i);let o=await Ct(r);if(o!==e.rootDigest)throw new H(`Workspace root digest mismatch: expected ${e.rootDigest}, computed ${o}`,`digest-mismatch`);try{await m.access(a)}catch{throw new H(`Workflow source file not found: ${a}`,`source-missing`)}return{workspaceRoot:r,sourcePath:a,contributionEntrypoints:await Promise.all(t.map(e=>wt(e,r,i))),platform:process.platform,arch:process.arch}}var Et=class{options;manifest;pool;constructor(e){this.options=e,this.manifest=e.manifest}async run(e,t,n){this.pool??=new V(this.options);let r=n??this.manifest,i=await this.materializeTask(e,r,t);return{state:`uncommitted`,result:await this.pool.run(i,t)}}runWithReadiness(e,t,r,a){this.pool??=new V(this.options);let o=this.pool,s,c=!1,l,u=new Promise((t,r)=>{l=r,s=o.onMessage(r=>{n(r)&&r.executionAttemptId===a.executionAttemptId&&(r.executionId!==e.executionId||r.cancelSubject!==e.cancelSubject||(c=!0,s?.(),t(r)))})}),d=r??this.manifest,f=i(a.bootstrapDeadlineAt,t,async(t,n)=>{let r=await this.materializeTask(e,d,n);return o.run({...r,kind:`attempt-bound`,executionAttemptId:a.executionAttemptId,bootstrapDeadlineAt:a.bootstrapDeadlineAt,bootstrapPort:t},n,[t])});return f.then(()=>{c||(c=!0,s?.(),l(Error(`Workflow worker completed before ready signal: ${e.executionId}`)))},e=>{c||(c=!0,s?.(),l(e instanceof Error?e:Error(String(e))))}),{result:f,ready:u}}async dispose(){await this.pool?.dispose()}async materializeTask(e,t,n){if(n.throwIfAborted(),!(e.source.kind===`path`||t.contributionRefs.length>0))return{kind:`unbound`,config:e,manifest:t,contributionEntrypoints:[]};let r=e.materializationSpec;if(r?.kind!==`local-directory`)throw Error(`ThinWorkflowPiscinaRunner requires a local-directory materialization spec for path-backed workflows or declared contributions.`);if(this.options.resolveWorkspaceRoot===void 0)throw Error(`ThinWorkflowPiscinaRunner requires a host workspace-root resolver for local-directory materialization.`);let i=await Tt(r,t.contributionRefs,{resolveWorkspaceRoot:this.options.resolveWorkspaceRoot});if(n.throwIfAborted(),e.source.kind!==`path`)throw Error(`local-directory materialization requires a path-backed workflow source.`);return{kind:`unbound`,config:{...e,source:{kind:`path`,path:i.sourcePath}},manifest:t,contributionEntrypoints:i.contributionEntrypoints}}};function Dt(e){return e.mode===`source`?g(e.moduleDir,`workflow-worker`,`worker-entry.ts`):g(e.moduleDir,`workflow-worker`,`worker-entry.mjs`)}var Ot=class{options;terminalAuthority=`authority`;constructor(e){this.options=e}async run(e,t,n,r){let i={...e,terminalAuthority:`authority`},a=n??this.options.manifest,o=this.options.requirements,s=r?.dispatchMetadata;t.throwIfAborted();let c=e.source.kind===`path`?await this.options.readRunContext?.(e.executionId,t):void 0;t.throwIfAborted();let l=Ze({id:v(),revision:`1`,config:e,...c==null?{}:{runContext:c},preservation:{required:[]}});return{state:`authority-committed`,result:$e(await Qe({authority:this.options.authority,executionId:e.executionId,instruction:l,dispatch:e=>this.options.dispatch({executionAttemptId:e,config:i,...a!==void 0&&{manifest:a},...o!==void 0&&{requirements:o},...s!==void 0&&{metadata:s}},t)}),e)}}},kt=class{#e;constructor(e){this.#e=e.bus}async run(e,t,n){let r=ye.parse(e),i=await s(r);return{state:`uncommitted`,result:await et({config:await a(r,i,this.#e,t),loaded:i,bus:this.#e,signal:t})}}};function At(){return{contributionRefs:[]}}function jt(e){if(e.workflowRunner?.mode===`worker`&&!e.executionAttemptRepository)throw Error(`Worker dispatch mode requires an ExecutionAttemptRepository. Pass 'executionAttemptRepository' to createNodeWorkflowRunnerPackageOptions when workflowRunner.mode is 'worker'.`);let t;if(e.executionAttemptRepository){let n=e.executionAttemptBootstrapTimeoutMs;if(n===void 0)throw Error(`An ExecutionAttemptRepository requires executionAttemptBootstrapTimeoutMs`);t=new qe(e.executionAttemptRepository,{bootstrapTimeoutMs:n})}let n=te(e.runtimeModuleDir)===`src`?`source`:`dist`,r=Mt({moduleDir:e.runtimeModuleDir,defaultWorkerEntryMode:n,runner:e.workflowRunner,bus:e.bus,authority:t});return{...r!==void 0&&{workflowRunner:r},executorConfig:{busUrl:e.busUrl,busAuth:{kind:`none`},platformDefaults:e.platformDefaults,makaioHome:e.makaioHome},...e.executionAttemptRepository!==void 0&&{executionAttemptRepository:e.executionAttemptRepository},...t!==void 0&&{executionAttemptAuthority:t},...e.workflowMaterializationSpecResolvers!==void 0&&{workflowMaterializationSpecResolvers:e.workflowMaterializationSpecResolvers}}}function Mt(e){let{runner:t}=e;if(t)switch(t.mode){case void 0:case`in-process`:if(e.bus===void 0)throw Error(`InProcessWorkflowRunner requires a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'in-process'.`);return new kt({bus:e.bus});case`worker`:{if(e.authority===void 0)throw Error(`WorkerRunner requires an ExecutionAttemptAuthority. Pass 'authority' to createNodeWorkflowRunner when runner.mode is 'worker'.`);let n=e.bus,r=t.dispatch??(n===void 0?void 0:(e,t)=>n.request(C.dispatch,{executionAttemptId:e.executionAttemptId,config:e.config,manifest:e.manifest,requirements:e.requirements,metadata:e.metadata},{signal:t}));if(r===void 0)throw Error(`WorkerRunner requires either a dispatch function or a bus instance. Pass 'bus' to createNodeWorkflowRunner when runner.mode is 'worker'.`);return new Ot({dispatch:r,authority:e.authority,...n!==void 0&&{readRunContext:async(e,t)=>(await n.request(Xe.getRunContext,{executionId:e},{signal:t})).runContext},...t.manifest!==void 0&&{manifest:t.manifest},...t.requirements!==void 0&&{requirements:t.requirements}})}case`piscina`:return new Et({workerEntry:t.workerEntry??Dt({moduleDir:e.moduleDir,mode:t.workerEntryMode??e.defaultWorkerEntryMode}),manifest:t.manifest??At(),...t.resolveWorkspaceRoot!==void 0&&{resolveWorkspaceRoot:t.resolveWorkspaceRoot},maxConcurrency:t.maxConcurrency,idleTimeoutMs:t.idleTimeoutMs})}}const Nt=new Set([`accepted`,`duplicate`]);var K=class extends Error{decision;result;reason;constructor(e,t,n=`authority-rejected`){super(`Outcome delivery ${n===`deadline-exceeded`?`deadline exceeded`:`rejected by Authority`} (decision=${e}, executionId=${t.executionId}, status=${t.status})`),this.decision=e,this.result=t,this.reason=n,this.name=`OutcomeDeliveryError`}},q=class extends Error{decision;payload;reason;constructor(e,t,n=`authority-rejected`){super(`Attempt outcome delivery ${n===`deadline-exceeded`?`deadline exceeded`:`rejected by Authority`} (decision=${e}, executionAttemptId=${t.executionAttemptId}, outcome=${t.outcome.kind})`),this.decision=e,this.payload=t,this.reason=n,this.name=`AttemptOutcomeDeliveryError`}},Pt=class extends Error{reason;constructor(e=`deadline-exceeded`){super(`Authority request delivery deadline exceeded`),this.reason=e,this.name=`AuthorityRequestDeliveryError`}};function Ft(e){let t={maxRetries:e?.maxRetries??7,baseDelayMs:e?.baseDelayMs??1e3,maxDelayMs:e?.maxDelayMs??3e4,deadlineMs:e?.deadlineMs??12e4};if(!Number.isSafeInteger(t.maxRetries)||t.maxRetries<0)throw TypeError(`Outcome submission maxRetries must be a non-negative safe integer, got ${t.maxRetries}`);for(let[e,n]of Object.entries({baseDelayMs:t.baseDelayMs,maxDelayMs:t.maxDelayMs,deadlineMs:t.deadlineMs}))if(!Number.isFinite(n)||n<=0)throw TypeError(`Outcome submission ${e} must be a positive finite number, got ${n}`);return t}async function It(e,t,n,r){let i=t.baseDelayMs*2**(e-1),a=n-Date.now(),o=Math.min(i,t.maxDelayMs,a);await new Promise(e=>setTimeout(e,o));let s=n-Date.now();if(s<=0)return!1;if(r!==void 0){let e;try{await Promise.race([r(),new Promise(t=>{e=setTimeout(t,s)})])}catch{}finally{e!==void 0&&clearTimeout(e)}}return Date.now()<n}async function Lt(e,t,n,r){let i=Ft(n?.retry),a=n?.reconnect,o=Date.now()+i.deadlineMs,s;for(let n=0;n<=i.maxRetries;n++){if(o-Date.now()<=0||n>0&&!await It(n,i,o,a))throw t();try{let n=o-Date.now();if(n<=0)throw t();return await e(n)}catch(e){if(r(e))throw e;if(s=e,Date.now()>=o)throw t()}}throw s??t()}async function Rt(e,t){return await Lt(e,()=>new Pt,t,()=>!1)}async function zt(e,t,n){return await Lt(async n=>{let r=await e(n);if(Nt.has(r))return r;throw t(r)},()=>t(`deadline-exceeded`,`deadline-exceeded`),n,e=>e instanceof K||e instanceof q)}async function Bt(e,t,n){return await zt(async n=>(await e.request(C.control.outcome.submit,{executionAttemptId:t.executionAttemptId,executionId:t.executionId,result:t.result},{timeout:n})).decision,(e,n)=>n===void 0?new K(e,t.result):new K(e,t.result,n),n)}async function Vt(e,t,n){return await zt(async n=>(await e.request(x.outcome.submit,t,{timeout:n})).decision,(e,n)=>n===void 0?new q(e,t):new q(e,t,n),n)}const Ht={maxRetries:3,baseDelayMs:200,maxDelayMs:2e3,deadlineMs:1e4},Ut={persistentStorage:!0,customCapabilities:[`workflow.local-runtime`,`workflow.thin-runner`],suspensionStrategy:`wait-in-process`,supportsRecovery:!1,materializationModes:[`local-directory`]};function Wt(e){let t=new Set,n;return{conclude:r=>{if(n!==void 0)return;n={evidence:le.parse({source:e.slice(0,S.source),summary:r.slice(0,S.summary),observedAt:new Date().toISOString()})};let i=[...t];t.clear();for(let e of i)try{e(n)}catch(e){console.error(`[PiscinaThinWorkflowProvider] Infrastructure-conclusion observer failed:`,e)}},observe:e=>n===void 0?(t.add(e),()=>t.delete(e)):(e(n),()=>void 0)}}var Gt=class{executionAttemptId;controller;detachCallerAbort;infrastructure;revokeBusIdentity;constructor(e,t,n,r,i){this.executionAttemptId=e,this.controller=t,this.detachCallerAbort=n,this.infrastructure=r,this.revokeBusIdentity=i}cancel(e){return this.controller.abort(e??`Worker cancelled`),this.detachCallerAbort(),Promise.resolve()}terminate(){return this.controller.abort(`Worker terminated`),this.detachCallerAbort(),this.revokeBusIdentity(),Promise.resolve()}release(){return this.detachCallerAbort(),this.revokeBusIdentity(),Promise.resolve()}observeInfrastructureConclusion(e){return this.infrastructure.observe(e)}},Kt=class{options;environment=`piscina`;allocationLifetime=`provisioner-process-bound`;baseCapabilities;constructor(e){this.options=e,this.baseCapabilities=he.parse({...Ut,...e.baseCapabilities,suspensionStrategy:e.baseCapabilities?.suspensionStrategy??Ut.suspensionStrategy,supportsRecovery:!1})}get id(){return this.options.id}get displayName(){return this.options.displayName}async provision(e,t){t.throwIfAborted();let n=new AbortController,r=Wt(this.id),i=()=>{n.abort(t.reason)};t.addEventListener(`abort`,i,{once:!0});let a=()=>t.removeEventListener(`abort`,i),o;try{let{executionAttemptId:i,executionId:s,workerConfig:c}=e;if(!c.busUrl)throw Error(`PiscinaThinWorkflowProvider requires a bus URL to provision an execution attempt (executionAttemptId=${i}, executionId=${s})`);let u=this.buildAllocationRef(i),d=l({executionAttemptId:i,executionId:s});o=d.cleanup;let f=new Gt(i,n,a,r,d.cleanup);t.throwIfAborted();let p=this.options.runner.runWithReadiness({...c,busAuth:{kind:`hmac`,secret:d.secret}},n.signal,e.workerManifest,{executionAttemptId:i,bootstrapDeadlineAt:e.bootstrapDeadlineAt});return p.ready.then(()=>this.submitOutcomeOnSettlement(p.result,s,i,c.workflowId,r.conclude),e=>{n.abort(e),p.result.catch(()=>void 0),r.conclude(`Piscina worker for attempt '${i}' was refused before its workflow run was admitted: `+(e instanceof Error?e.message:String(e)))}),{kind:`allocated`,allocationRef:u,handle:f}}catch(e){throw n.abort(e),a(),o?.(),e}}async submitOutcomeOnSettlement(e,t,n,r,i){let a;try{a=await e}catch(e){a={executionId:t,workflowId:r,status:`failed`,error:e instanceof Error?e.message:String(e)}}try{let e={...Ht,...this.options.outcomeRetry};await Bt(this.options.bus,{executionAttemptId:n,executionId:t,result:a},{retry:e})}catch(e){e instanceof K?console.error(`[PiscinaThinWorkflowProvider] Outcome rejected for execution '${t}' attempt '${n}' (decision=${e.decision}):`,e):console.error(`[PiscinaThinWorkflowProvider] Failed to submit outcome for execution '${t}' attempt '${n}':`,e),i(`Piscina worker for attempt '${n}' ended without an acknowledged outcome because outcome submission could not be completed`)}}buildAllocationRef(e){let t={version:pe,providerId:this.id,providerData:{executionAttemptId:e,allocatedAt:Date.now()}};return me.parse(t)}};const qt=[Re,Fe,Le];function Jt(e){let t;return()=>(t??=(async()=>{let t=[];for(let n of[...e].reverse())try{await n()}catch(e){t.push(e)}if(t.length===1)throw t[0];if(t.length>1)throw AggregateError(t,`Isolated workflow runtime shutdown reported errors`)})(),t)}function Yt(e,t,n){return A({bus:e,currentMachineId:n,resolveLiveAdapterId:e=>t.getExtensionService(E)?.resolveLiveAdapterId(e),resolveLiveAdapterIdentity:e=>t.getExtensionService(E)?.resolveLiveAdapterIdentity(e),listLiveAdapterIdentities:()=>t.getExtensionService(E)?.getLiveAdapterIdentities()??[]})}async function Xt(e){let t=y();t.registerNamespaces([...ue,...de]);let{context:n}=e,r=new xe(t,{surface:`headless`,extensionContextBase:{cwd:n.cwd,platform:n.platform,homedir:n.homedir,makaioHome:n.makaioHome,username:n.username,machineId:n.machineId,tryImport:M}}),i,a=[()=>t.disconnect()],o=Jt(a);try{await e.connectAuthority(t);let s=[...e.contributedPackages,...await e.loadContributedPackages?.(t)??[]],{adapterSubsystemPackage:c}=k({coordinator:r,configRepository:e.configRepository,platformDefaults:{cwd:n.cwd},runtimeSnapshotHandlerPriority:1,runtimeDefinitionHandlerPriority:1,...e.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:e.prepareAuthRuntime}}),l=Ve({definitions:s.flatMap(e=>e.clients??[]),binaryResolutionPolicy:`global-only`});r.registerContributionProcessor(Pe());let u=[...qt,c,Me,...z(s)?[Ie]:[],Ne(1),ze,F,l,...We(s)];r.load(u),a.push(...B(u,t,r)),a.push(()=>r.shutdown()),await r.startAll(),i=Yt(t,r,n.machineId),a.push(()=>{i?.cleanup(),i=void 0});let d=r.getExtensionService(je);if(d===void 0)throw Error(`Isolated workflow tool registry did not start.`);for(let t of e.toolsets)await d.register(t);return await t.emit(Se.ready,{machineId:n.machineId}),{bus:t,coordinator:r,machineId:n.machineId,shutdown:o}}catch(e){throw await o().catch(()=>void 0),e}}function Zt(e){return Number.isInteger(e)&&e>=1&&e<=2147483647}function J(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function Qt(e,t){try{process.kill(-e,0)}catch(e){if(e.code===`ESRCH`)return!1;if(e.code!==`EPERM`)throw e}let n;try{n=await $t(t)}catch{return!0}let r=!1;for(let t of n.trim().split(`
2
+ `)){let[n,i,a]=t.trim().split(/\s+/);if(n===``||i===void 0||a!==void 0||!/^\d+$/.test(n)||i===``||Number(n)===e&&(r=!0,!i.startsWith(`Z`)))return!0}return!r}function $t(e){return new Promise((t,n)=>{d(`ps`,[`-A`,`-o`,`pgid=,stat=`],{timeout:e,maxBuffer:1024*1024},(e,r)=>{if(e!==null){n(e);return}t(r)})})}async function en(e){if(e===void 0)return!0;try{try{J(e,`SIGKILL`)}catch(e){if(e.code!==`EPERM`)throw e}let t=Date.now()+2e3;for(;Date.now()<t;){let n=t-Date.now();if(n<=0)break;if(!await Qt(e,Math.min(1e3,n)))return!0;await tt(20)}}catch{}return!1}async function tn(e){if(e.signal?.aborted)return{status:`cancelled`,exitCode:null};if(!Zt(e.recipe.timeoutMs))return{status:`spawn-failed`,exitCode:null,message:`Setup timeout must be an integer between 1 and 2147483647 milliseconds`};if(process.platform===`win32`)return{status:`spawn-failed`,exitCode:null,message:`Setup process groups require a POSIX host`};try{return await nn(e)}catch{return{status:`spawn-failed`,exitCode:null,message:`Could not start the setup command`}}}function nn(e){return new Promise(t=>{let n=f(e.recipe.command,e.recipe.args,{cwd:e.workspaceRoot,env:{...process.env,...e.recipe.env,...e.env},shell:!1,detached:!0,stdio:`ignore`}),r,i,a=e=>{if(r===void 0&&(r=e,n.pid!==void 0)){try{J(n.pid,`SIGTERM`)}catch(e){if(e.code!==`EPERM`){r=`stop-failed`;return}}i=setTimeout(()=>{try{n.pid!==void 0&&J(n.pid,`SIGKILL`)}catch(e){e.code!==`EPERM`&&(r=`stop-failed`)}},200)}},o=()=>a(`cancelled`),s=setTimeout(()=>a(`timed-out`),e.recipe.timeoutMs);e.signal?.addEventListener(`abort`,o,{once:!0}),e.signal?.aborted&&o(),n.once(`error`,()=>{r=`spawn-failed`}),n.once(`close`,a=>{clearTimeout(s),clearTimeout(i),e.signal?.removeEventListener(`abort`,o),en(n.pid).then(e=>{t({status:e?r??(a===0?`completed`:`failed`):`stop-failed`,exitCode:a})})})})}async function rn(e,t,n){if(h.isAbsolute(t)||t.includes(`\\`)||t.split(`/`).includes(`..`))throw Error(`Source root must be workspace-relative`);let r=e;for(let i of t.split(`/`).filter(e=>e!==``&&e!==`.`))if(r=h.join(r,i),U(r,e,`Source root`),await W(r,e,`Source root`,e),n&&await m.mkdir(r).catch(e=>{if(e.code!==`EEXIST`)throw e}),!(await m.stat(r)).isDirectory())throw Error(`Source root must be a directory`);return W(r,e,`Source root`,e)}async function Y(e){e.signal?.throwIfAborted();let{requirement:t}=e,n=h.resolve(e.workspaceRoot);if(!h.isAbsolute(e.workspaceRoot)||n===h.parse(n).root)throw Error(`Workspace root must be an absolute, non-filesystem-root directory`);if(t.sourceRoots.length>1)throw Error(`Multiple source roots are not implemented`);if(t.sourceRoots.some(e=>e.source!==void 0)){if(e.realizeSource===void 0)throw Error(`Source acquisition requires an installed strategy`);if(t.provisioning!==`create`||t.custody!==`disposable`)throw Error(`Source acquisition currently requires a created disposable workspace`)}if(t.provisioning===`create`&&await m.mkdir(n),!(await m.lstat(n)).isDirectory())throw Error(`Workspace root must be a directory, not a symlink`);let r=await m.realpath(n),i=[];for(let n of t.sourceRoots){let a=await rn(r,n.path,t.provisioning===`create`);n.source!==void 0&&(await e.realizeSource({source:n.source,destination:a,signal:e.signal}),e.signal?.throwIfAborted()),i.push({id:n.id,path:a})}return an(t,{workspaceRoot:r,sourceRoots:i})}function an(e,t){let n=t.workspaceRoot,r=e.custody,i=!1,a=!0,o;return{binding:t,async runSetup(t={}){if(o!==void 0||i||!a)throw Error(`Workspace setup is unavailable`);if(t.signal?.aborted)return{status:`cancelled`,exitCode:null};i=!0;try{for(let[r,i]of e.setup.entries()){let e=await tn({...t,recipe:i,workspaceRoot:n});if(a=e.status!==`stop-failed`,e.status!==`completed`)return{...e,commandIndex:r}}return{status:`completed`,exitCode:0}}finally{i=!1}},release(){return i||!a?Promise.reject(Error(`Workspace commands have not stopped`)):(o??=r===`external`?Promise.resolve():m.rm(n,{recursive:!0,force:!0}),o)}}}function X(e,t){return e instanceof ae?oe(e,t):t?.aborted===!0?e===t.reason||e instanceof DOMException&&e.name===`AbortError`?!0:e instanceof Error&&e.name===`AbortError`&&`code`in e&&e.code===`ABORT_ERR`&&Object.is(e.cause,t.reason):!1}async function on(e,t,n,r){let i=b[`instruction.get`].response.parse(await e.request(x.instruction.get,{executionAttemptId:t,runtimeGeneration:n},{signal:r}));if(i.decision===`found`)return i.instruction;throw Error(`Attempt instruction read refused: ${i.refusalReason}`)}async function sn(e,t,n,r){let{executionAttemptId:i,runtimeGeneration:a}=t,o=b[`operation.admit`].response.parse(await Rt(async t=>await e.request(x.operation.admit,{executionAttemptId:i,runtimeGeneration:a,operationKind:n,admissionKey:r},{timeout:t}),{retry:t.retry,reconnect:t.reconnect}));if(o.decision===`refused`||o.operationId===void 0)throw Error(`Attempt ${n} admission refused: ${o.refusalReason??`missing-operation-id`}`);return o.operationId}function Z(e){return(e instanceof Error?e.message:String(e)).slice(0,8192)||`Local execution failed without a diagnostic message`}function cn(e,t){return e.find(e=>e.kind===t.workload.kind&&e.version===t.workload.version)}function ln(e){return{signal:e??new AbortController().signal,release:()=>{}}}async function Q(e,t,n,r,i,a){let o=await Vt(e,{executionAttemptId:t.executionAttemptId,runtimeGeneration:t.runtimeGeneration,...i===void 0?{}:{operationId:i},outcome:r},{retry:t.retry,reconnect:t.reconnect});if(a!==void 0&&n!==void 0&&r.kind===`workload-result`&&n.preservation.required.length===0)try{await a.release()}catch{console.warn(`[makaio-worker] Acknowledged workspace cleanup failed.`)}return{outcome:r,decision:o}}async function un(e,t,n,r){let i=b[`operation.report`].response.parse(await Rt(async i=>await e.request(x.operation.report,{executionAttemptId:t.executionAttemptId,runtimeGeneration:t.runtimeGeneration,operationId:n,result:{kind:`workspace-prepared`,binding:r.binding}},{timeout:i}),{retry:t.retry,reconnect:t.reconnect}));return i.decision===`refused`?void 0:i.binding}function dn(e){if(e.status!==`completed`)return e.status===`cancelled`?{kind:`cancelled`}:e.status===`stop-failed`?{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace setup stop-failed`}:{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace setup ${e.status}`}}async function fn(e,t,n,r){if(r.aborted)return await Q(e,t,n,{kind:`cancelled`},void 0,void 0);let i=await sn(e,t,`workspace-preparation`,`workspace-preparation:${n.id}:${t.runtimeGeneration}`);if(r.aborted)return await Q(e,t,n,{kind:`cancelled`},i,void 0);let a,o;try{if(t.workspaceRoot===void 0)throw Error(`Workspace preparation requires an explicit local root`);let e=await(t.preparation??{prepare:Y}).prepare({requirement:n.workspace,workspaceRoot:t.workspaceRoot,signal:r});a=e,o=await e.runSetup({signal:r,env:t.setupEnv})}catch(o){return await Q(e,t,n,X(o,r)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`workspace-preparation`,message:Z(o)},i,a)}let s=dn(o);if(s!==void 0)return await Q(e,t,n,s,i,a);if(r.aborted)return await Q(e,t,n,{kind:`cancelled`},i,a);let c=await un(e,t,i,a);return c===void 0?await Q(e,t,n,{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace preparation report refused by the Authority`},i,a):r.aborted?await Q(e,t,n,{kind:`cancelled`},void 0,a):{handle:a,binding:c}}async function pn(e,t,n,r,i){if(i.signal.aborted)return await Q(e,t,n,{kind:`cancelled`},void 0,void 0);let a,o;if(n.workspace!==void 0){let r=await fn(e,t,n,i.signal);if(`outcome`in r)return r;a=r.handle,o=r.binding}if(i.signal.aborted)return await Q(e,t,n,{kind:`cancelled`},void 0,a);let s=await sn(e,t,`workload-invocation`,`workload-invocation:${n.id}:${t.runtimeGeneration}`);if(i.signal.aborted)return await Q(e,t,n,{kind:`cancelled`},s,a);let c;try{c={kind:`workload-result`,result:fe.parse(await r.invoke({instruction:n,...o===void 0?{}:{workspace:o},signal:i.signal}))}}catch(e){c=X(e,i.signal)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`workload-invocation`,message:Z(e)}}return await Q(e,t,n,c,s,a)}async function mn(e,t){let n;try{n=await on(e,t.executionAttemptId,t.runtimeGeneration,t.signal)}catch(n){if(oe(n,t.signal))return await Q(e,t,void 0,{kind:`cancelled`},void 0,void 0);throw n}let r=cn(t.adapters,n);if(r===void 0)return await Q(e,t,n,{kind:`technical-failure`,stage:`startup`,message:`Required adapter '${n.workload.kind}' version '${n.workload.version}' is unavailable`},void 0,void 0);let i;try{i=await(r.bindControl?.({instruction:n,signal:t.signal})??ln(t.signal))}catch(r){let i=X(r,t.signal)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`startup`,message:Z(r)};return await Q(e,t,n,i,void 0,void 0)}try{return await pn(e,t,n,r,i)}finally{try{i.release()}catch{console.warn(`[makaio-worker] Workload control release failed.`)}}}async function hn(e,t,n,r,i){let a=ge[`runtime.inputs.get`].response.parse(await e.request(C.runtime.inputs.get,{executionAttemptId:t},{signal:i}));if(a.runtimeInputs===null)throw Error(`Selected Worker Runtime inputs are unavailable`);return _e.parse({...n,...a.runtimeInputs,createdAt:0,env:r})}function gn(e,t){let n=(e,t)=>{let n=re(e,t);return n===``||!ne(n)&&n!==`..`&&!n.startsWith(`../`)&&!n.startsWith(`..\\`)};return n(e,t)||n(t,e)}async function _n(t,n,r,i){let a=await t.loadContributions(r,i);i.throwIfAborted();let o=e();return await Xt({connectAuthority:e=>t.connectBus(e,n,i),contributedPackages:[...a],configRepository:t.configRepository,context:{cwd:r.workspaceRoot,platform:r.platform,homedir:o,makaioHome:o,username:`workflow-worker`,machineId:`headless-worker-${t.executionAttemptId}`},toolsets:[...t.toolsets],...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime}})}function vn(e,t,n){let r={...e.workflowEnv},i,a=!0;return{adapter:{kind:Je,version:Ye,async bindControl({instruction:t,signal:r}){let i=D(t);if(i.executionId!==e.executionId)throw Error(`Workflow instruction execution identity mismatch`);let a=new AbortController,o=n.on(be(i.cancelSubject),()=>a.abort());try{return await se(o),{signal:AbortSignal.any([...r===void 0?[]:[r],a.signal]),release:o}}catch(e){throw o(),e}},async invoke({instruction:o,workspace:s,signal:c}){let l=D(o);a=o.preservation.required.length!==0;let u=c??new AbortController().signal,d;try{u.throwIfAborted();let a=await hn(n,e.executionAttemptId,l,r,u),o=await e.materialize(a,u);(s===void 0||!gn(o.context.workspaceRoot,s.workspaceRoot))&&(i=o.cleanup);let c=yn(o.context,s);return u.throwIfAborted(),d=await _n(e,t,c,u),u.throwIfAborted(),await e.execute(d.bus,a,c,u)}finally{await d?.shutdown()}}},async releaseExecutable(e){e===void 0||a||e.outcome.kind===`workload-result`&&(e.decision!==`accepted`&&e.decision!==`duplicate`||await i?.().catch(()=>void 0))}}}function yn(e,t){return t===void 0?e:{...e,workspaceRoot:t.workspaceRoot}}async function bn(e,t){if(!(t.outcome.kind!==`workload-result`||e.onPostCommit===void 0))try{let n=ve.parse(t.outcome.result);await e.onPostCommit(n,t.decision)}catch{}}async function xn(e,t){t.throwIfAborted();let n={...e.workflowEnv},i=v(),a=await c(e.bootstrapDeadlineAt,t,t=>e.bootstrap(t)),{connection:s,endpoint:l}=await o({executionAttemptId:e.executionAttemptId,runtimeIncarnationId:i,bootstrapDeadlineAt:e.bootstrapDeadlineAt,signal:t,createConnection:()=>Sn(e,a)}),u=s.bus,d=vn({...e,workflowEnv:n},a,u),f;try{let n=await r(u,{executionAttemptId:e.executionAttemptId,runtimeIncarnationId:i,signal:t});return l.bindGeneration(n),f=await mn(u,{executionAttemptId:e.executionAttemptId,runtimeGeneration:n,workspaceRoot:e.workspaceRoot,setupEnv:e.setupEnv,preparation:e.preparation,adapters:[d.adapter],signal:t,retry:e.outcomeRetry,reconnect:()=>u.reconnect()}),await bn(e,f),f}finally{try{await d.releaseExecutable(f)}finally{l.cleanup(),await s.close()}}}function Sn(e,t){let n=y();return n.registerNamespaces([...ue,...de]),{bus:n,async connect(r){try{await e.connectBus(n,t,r),r.throwIfAborted()}catch(e){throw n.disconnect(),e}},close:()=>n.disconnect()}}const Cn=p(d),$=[`-c`,`core.attributesFile=${w}`],wn=u.object({repositoryId:u.string().min(1),revision:u.string().regex(/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/i,`Git source revision must be a full commit object ID`)}).strict();async function Tn(e,t,n){try{let r=await e.resolveRepository(t,n);if(!h.isAbsolute(r))throw Error(`Repository access did not return an absolute path`);return await m.realpath(r)}catch(e){throw X(e,n)?e:Error(`Git source access failed`)}}async function En(e,t,n,r,i){let a;try{a=(await Cn(`git`,[...$,`cat-file`,`-t`,t],{cwd:e,env:{...process.env,...n},signal:i,timeout:r,maxBuffer:1024,shell:!1,killSignal:`SIGKILL`,encoding:`utf8`})).stdout.trim()}catch(e){throw X(e,i)?e:Error(`Git source object inspection failed`)}if(a!==`commit`)throw Error(`Git source revision must identify a commit object`)}function Dn(e){if(!Zt(e.timeoutMs))throw Error(`Git command timeout must be an integer between 1 and 2147483647 milliseconds`);if(process.platform===`win32`)throw Error(`Local Git source preparation requires a POSIX host`);return async({source:t,destination:n,signal:r})=>{if(r?.throwIfAborted(),t.kind!==`git`)throw Error(`Unsupported local Git source kind`);let i=wn.parse(t.input),a=await Tn(e,i.repositoryId,r);r?.throwIfAborted();let o={...Object.fromEntries(Object.keys(process.env).filter(e=>/^git_/i.test(e)).map(e=>[e,void 0])),GIT_CONFIG_GLOBAL:w,GIT_CONFIG_SYSTEM:w,GIT_ATTR_NOSYSTEM:`1`},s=[[`init`,`--object-format=${i.revision.length===64?`sha256`:`sha1`}`],[`fetch`,`--no-tags`,`--no-write-fetch-head`,`--update-shallow`,`--`,a,i.revision],[`checkout`,`--detach`,i.revision,`--`]];for(let t of s){t[0]===`checkout`&&await En(n,i.revision,o,e.timeoutMs,r);let a=await tn({workspaceRoot:n,signal:r,env:o,recipe:{command:`git`,args:[...$,...t],env:{},timeoutMs:e.timeoutMs}});if(a.status===`cancelled`&&r?.throwIfAborted(),a.status!==`completed`)throw Error(`Git source ${t[0]} ${a.status}`)}}}function On(e){let t=Dn(e);return{prepare:e=>Y({...e,realizeSource:t})}}export{ht as A,O as B,_t as C,lt as D,wt as E,F,j as I,M as L,L as M,dt as N,I as O,mt as P,A as R,Ct as S,gt as T,Et as _,Kt as a,W as b,Nt as c,Bt as d,Mt as f,Dt as g,Ot as h,Xt as i,B as j,ut as k,K as l,kt as m,xn as n,q as o,jt as p,mn as r,Pt as s,On as t,Vt as u,H as v,Tt as w,St as x,U as y,k as z};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1788863979610",
3
+ "version": "1.0.0-dev-1788897280508",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",
@@ -1 +0,0 @@
1
- import{$ as e,Q as t,S as n,a as r,d as i,f as a,l as o,m as s,n as c,o as l,r as u,s as d}from"./schemas-CNkUEbIr.mjs";import{t as f}from"./zod-json-schema-Dixc-B1T.mjs";import{z as p}from"zod";import{createBusNamespace as m}from"@makaio/framework/core";function h(e){return{...e,toRegistration:()=>({kind:e.kind,description:e.description,schemaVersion:e.schemaVersion,dataSchema:f(e.dataSchema),...e.scopeSchema?{scopeSchema:f(e.scopeSchema)}:{},...e.observationSchema?{observationSchema:f(e.observationSchema)}:{},...e.discriminator===void 0?{}:{discriminator:typeof e.discriminator==`string`?e.discriminator:Array.from(e.discriminator)},conflictPolicy:e.conflictPolicy,...e.status?{status:{...e.status,...e.status.values?{values:[...e.status.values]}:{}}}:{},...e.lifecycle?{lifecycle:e.lifecycle}:{},...e.indexedFields?{indexedFields:[...e.indexedFields]}:{},...e.searchableFields?{searchableFields:[...e.searchableFields]}:{},...e.projection?{projection:{...e.projection,...e.projection.semanticEvents?{semanticEvents:[...e.projection.semanticEvents]}:{},...e.projection.projectedFields?{projectedFields:e.projection.projectedFields.map(e=>({...e}))}:{},...e.projection.affordances?{affordances:e.projection.affordances.map(e=>structuredClone(e))}:{}}}:{},...e.defaultContext?{defaultContext:structuredClone(e.defaultContext)}:{}})}}function g(e){return{hooks:[...e.hooks]}}function _(e){return JSON.stringify([e.kind,e.id,e.revision])}const v=p.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),y=p.object({target:a,sourceRef:o,relationType:p.string().min(1),hint:t,status:p.enum([`resolved`,`unresolved`]),reason:v.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:p.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:p.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:p.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),b=p.object({rootRef:o,refs:p.array(y),resolved:p.array(s)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(_));n.has(_(e.rootRef))||t.addIssue({code:p.ZodIssueCode.custom,path:[`resolved`],message:`resolved artifact context wire payloads must include the root artifact revision`}),e.refs.forEach((e,r)=>{n.has(_(e.sourceRef))||t.addIssue({code:p.ZodIssueCode.custom,path:[`refs`,r,`sourceRef`],message:`artifact context ref sources must have a matching revision in resolved`}),!(e.status!==`resolved`||e.target.refClass!==`artifact`)&&(n.has(_(e.target))||t.addIssue({code:p.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function x(e){let t=b.parse(e),n=new Map(t.resolved.map(e=>[E(e),e])),r=new Map;for(let e of t.refs){let t=E(e.sourceRef),n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let i=n.get(E(t.rootRef));if(!i)throw Error(`Resolved artifact context is missing root artifact '${E(t.rootRef)}'`);let a=S(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return T(a,e),e}}}function S(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:w(e,r,i,new Set([E(e)]))}}function C(e,t,n,r,i,a,o){let s=E(e),c=new Set(o);return c.add(s),{status:`resolved`,ref:e,artifact:t,relation:n,hint:r,children:w(e,i,a,c)}}function w(e,t,n,r){return(t.get(E(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:e.reason};if(e.target.refClass!==`artifact`)throw Error(`Resolved artifact context refs must target an artifact revision`);let i=E(e.target),a=n.get(i);if(!a)throw Error(`Resolved artifact context is missing target artifact '${i}'`);return r.has(i)?{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:`cycle-detected`}:C(e.target,a,e.relationType,e.hint,t,n,r)})}function T(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)T(n,t)}}function E(e){return JSON.stringify([e.kind,e.id,e.revision])}const D={"kind.register":{request:r,response:p.object({registered:p.boolean()})},"kind.list":{request:p.object({kind:p.string().min(1).optional()}),response:p.object({kinds:p.array(r)})},"relation-type.register":{request:n,response:p.object({registered:p.boolean()})},"relation-type.list":{request:p.object({type:p.string().min(1).optional()}),response:p.object({relationTypes:p.array(n)})},create:{request:s.omit({id:!0,revision:!0,timestamp:!0}),response:p.object({artifact:s})},revise:{request:p.object({previous:o,revision:s.omit({id:!0,revision:!0,timestamp:!0})}),response:p.object({artifact:s})},resolve:{request:p.object({ref:o}),response:p.object({artifact:s.nullable()})},query:{request:d,response:p.object({artifacts:p.array(s)})},compare:{request:c,response:u},resolveContext:{request:p.object({ref:o,selectors:e.optional(),maxDepth:p.number().int().min(1).max(20).default(5)}),response:p.object({context:b})},created:p.object({artifact:s}),revised:p.object({previous:o,artifact:s}),"relation.added":p.object({artifact:o,relation:i}),"observation.added":p.object({artifact:o,observation:l}),"status.changed":p.object({artifact:o,path:p.string().min(1),previous:p.unknown().optional(),current:p.unknown().optional()}),"kind.changed":p.object({kind:p.string().min(1),schemaVersion:p.string().min(1)})},O=m(`artifact`,D),k=O.subjects;export{y as a,g as c,x as i,h as l,D as n,v as o,k as r,b as s,O as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-krzJXh1X.mjs";import{z as n}from"zod";import{execFile as r}from"node:child_process";import{isDeepStrictEqual as i}from"node:util";import{isAbsolute as a,relative as o,resolve as s}from"node:path";import{randomUUID as c}from"node:crypto";import{realpathSync as l}from"node:fs";import{localSubject as u}from"@makaio/framework/core";import{NoHandlerError as d}from"@makaio/framework/bus";import{ArtifactSubjects as f,ExecutionAttemptInstructionSchema as p,ExecutionAttemptOutcomeSchema as m,ExecutionLinkListQuerySchema as h,ExecutionLinkSchema as g,ExecutionListQuerySchema as _,ExecutionStatusSchema as v,ExecutionsByArtifactRefsQuerySchema as y,GateInstanceListQuerySchema as b,JsonPatchOperationSchema as x,JsonValueSchema as S,SessionSubjects as C,SpanRecordSchema as ee,SubagentSubjects as te,WORKFLOW_CANCELLED_REASON as ne,WorkLogFrameEntrySchema as re,WorkerSubjects as ie,WorkflowDefinitionSchema as ae,WorkflowError as oe,WorkflowErrorCode as se,WorkflowExecutionSchema as w,WorkflowFinalizationClaimSchema as ce,WorkflowFinalizerIdSchema as le,WorkflowFrameStateSchema as ue,WorkflowGateInstanceSchema as T,WorkflowListQuerySchema as de,WorkflowRunContextSchema as E,WorkflowRunResultSchema as fe,WorkflowSchemas as pe,WorkflowSubjects as me,WorkflowSubjects as D,createStepCancelSubject as he,createWorkflowDelegateResultFinalizerNamespace as ge,walkWorkflowDefinition as _e}from"@makaio/framework/contracts";import{index as O,primaryKey as ve,uniqueIndex as ye}from"drizzle-orm/sqlite-core";import{index as k,primaryKey as be,uniqueIndex as xe}from"drizzle-orm/pg-core";import{defineDualTable as A}from"@makaio/framework/storage/drizzle";import{sql as Se}from"drizzle-orm";import{createStorageNamespaceDefinition as Ce}from"@makaio/framework/storage";import{evaluateSync as j,resolveTemplate as M}from"@makaio/framework/expression";import*as we from"node:os";const Te=A(`workflow_finalizations`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),finalizerId:e.text(`finalizer_id`).notNull(),transitionKey:e.text(`transition_key`).notNull(),claimToken:e.text(`claim_token`).notNull(),intent:e.jsonCol(`intent`).notNull(),state:e.textEnum(`state`,{enum:[`claimed`,`acknowledged`,`failed`]}).notNull(),claimedAt:e.epochMs(`claimed_at`).notNull(),settledAt:e.epochMs(`settled_at`),failure:e.text(`failure`),publishedAt:e.epochMs(`published_at`)}),{sqlite:e=>[ye(`uniq_workflow_finalizations_transition`).on(e.transitionKey),O(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)],postgres:e=>[xe(`uniq_workflow_finalizations_transition`).on(e.transitionKey),k(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)]}),Ee=Te.sqlite;Te.postgres;function De(e){return{scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``)}}const Oe=A(`workflow_definitions`,e=>({id:e.text(`id`).primaryKey(),name:e.text(`name`).notNull(),description:e.text(`description`),root:e.jsonCol(`root`).notNull(),inputSchema:e.jsonCol(`input_schema`),configSchema:e.jsonCol(`config_schema`),outputSchema:e.jsonCol(`output_schema`),state:e.jsonCol(`state`),artifact:e.jsonCol(`artifact`),triggers:e.jsonCol(`triggers`),...De(e),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull(),canvasLayout:e.jsonCol(`canvas_layout`),source:e.jsonCol(`source`),executableSource:e.jsonCol(`executable_source`),requirements:e.jsonCol(`requirements`),successFinalizerId:e.text(`success_finalizer_id`)}),{sqlite:e=>[ye(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),O(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)],postgres:e=>[xe(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),k(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)]}),ke=Oe.sqlite,N=A(`workflow_executions`,e=>({id:e.text(`id`).primaryKey(),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),inputs:e.jsonCol(`inputs`),error:e.text(`error`),reason:e.text(`reason`),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),externalSettlementFingerprint:e.text(`external_settlement_fingerprint`),externalRegistrationFrameId:e.text(`external_registration_frame_id`),triggerPayload:e.jsonCol(`trigger_payload`),artifactKind:e.text(`artifact_kind`),artifactId:e.text(`artifact_id`),...De(e)}),{sqlite:e=>[O(`idx_workflow_executions_status`).on(e.status),O(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),O(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),O(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)],postgres:e=>[k(`idx_workflow_executions_status`).on(e.status),k(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),k(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),k(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)]}),Ae=N.sqlite,je=A(`workflow_execution_frames`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),parentFrameId:e.text(`parent_frame_id`),status:e.text(`status`).notNull().default(`pending`).$type(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),output:e.jsonCol(`output`),outputPresent:e.bool(`output_present`).notNull().default(!1),error:e.text(`error`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`)}),{sqlite:e=>[O(`idx_workflow_execution_frames_execution`).on(e.executionId),O(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)],postgres:e=>[k(`idx_workflow_execution_frames_execution`).on(e.executionId),k(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)]}),Me=je.sqlite,Ne=A(`workflow_gate_instances`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),schema:e.jsonCol(`schema`).notNull(),prompt:e.text(`prompt`),status:e.text(`status`).notNull().default(`waiting`).$type(),autoAction:e.textEnum(`auto_action`,{enum:[`approve`,`reject`]}).notNull().default(`reject`),timeoutMs:e.int4(`timeout_ms`),resumeData:e.jsonCol(`resume_data`),reason:e.text(`reason`),resumeDataPresent:e.bool(`resume_data_present`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`)}),{sqlite:e=>[O(`idx_workflow_gate_instances_execution`).on(e.executionId),O(`idx_workflow_gate_instances_frame`).on(e.frameId)],postgres:e=>[k(`idx_workflow_gate_instances_execution`).on(e.executionId),k(`idx_workflow_gate_instances_frame`).on(e.frameId)]}),Pe=Ne.sqlite,Fe=A(`workflow_step_spans`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),stepId:e.text(`step_id`).notNull(),stepType:e.text(`step_type`).notNull(),status:e.text(`status`).$type().notNull(),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),toolCallCount:e.int4(`tool_call_count`),input:e.text(`input`),output:e.text(`output`)}),{sqlite:e=>[ve({columns:[e.executionId,e.frameId]}),O(`idx_workflow_step_spans_status`).on(e.status)],postgres:e=>[be({columns:[e.executionId,e.frameId]}),k(`idx_workflow_step_spans_status`).on(e.status)]}),Ie=Fe.sqlite,Le=A(`workflow_execution_links`,e=>({sourceExecutionId:e.text(`source_execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),targetExecutionId:e.text(`target_execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),linkType:e.text(`link_type`).$type().notNull(),metadata:e.jsonCol(`metadata`)}),{sqlite:e=>[ve({columns:[e.sourceExecutionId,e.targetExecutionId]}),O(`idx_workflow_execution_links_target`).on(e.targetExecutionId)],postgres:e=>[be({columns:[e.sourceExecutionId,e.targetExecutionId]}),k(`idx_workflow_execution_links_target`).on(e.targetExecutionId)]}),Re=Le.sqlite,ze=A(`workflow_run_contexts`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`).notNull(),sourceKind:e.text(`source_kind`).notNull(),sourcePath:e.text(`source_path`),sourceFilename:e.text(`source_filename`),sourceCode:e.text(`source_code`),definitionSnapshot:e.jsonCol(`definition_snapshot`),workerManifest:e.jsonCol(`worker_manifest`).notNull(),inputs:e.jsonCol(`inputs`),config:e.jsonCol(`config`).notNull().default(Se`'{}'`),triggerPayload:e.jsonCol(`trigger_payload`).notNull(),triggerMode:e.textEnum(`trigger_mode`,{enum:[`immediate`,`await-trigger`]}).notNull().default(`immediate`).$type(),artifactRef:e.jsonCol(`artifact_ref`),dispatchMetadata:e.jsonCol(`dispatch_metadata`),scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().default(`global`).$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``),cancelSubject:e.text(`cancel_subject`).notNull(),env:e.jsonCol(`env`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),suspensionStrategy:e.text(`suspension_strategy`).$type(),terminalAuthority:e.text(`terminal_authority`).$type(),materializationSpec:e.jsonCol(`materialization_spec`)}),{sqlite:e=>[O(`idx_run_contexts_workflow`).on(e.workflowId)],postgres:e=>[k(`idx_run_contexts_workflow`).on(e.workflowId)]}),Be=ze.sqlite,Ve=A(`worklog_summaries`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),workflowName:e.text(`workflow_name`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),totalInputTokens:e.int4(`total_input_tokens`),totalOutputTokens:e.int4(`total_output_tokens`),totalEstimatedCost:e.float8(`total_estimated_cost`),error:e.text(`error`),failedNodeId:e.text(`failed_node_id`)}),{sqlite:e=>[O(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),O(`idx_worklog_summaries_status`).on(e.status)],postgres:e=>[k(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),k(`idx_worklog_summaries_status`).on(e.status)]}),He=Ve.sqlite,Ue=A(`worklog_frame_entries`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),status:e.textEnum(`status`,{enum:[`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]}).notNull(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),error:e.text(`error`)}),{sqlite:e=>[O(`idx_worklog_frame_entries_execution`).on(e.executionId)],postgres:e=>[k(`idx_worklog_frame_entries_execution`).on(e.executionId)]}),We=Ue.sqlite,Ge=A(`worklog_artifact_writes`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),nodeId:e.text(`node_id`).notNull(),artifact:e.jsonCol(`artifact`).notNull(),revision:e.text(`revision`),writtenAt:e.epochMs(`written_at`).notNull()}),{sqlite:e=>[O(`idx_worklog_artifact_writes_execution`).on(e.executionId)],postgres:e=>[k(`idx_worklog_artifact_writes_execution`).on(e.executionId)]}),Ke=Ge.sqlite,qe=A(`worklog_gate_events`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),status:e.textEnum(`status`,{enum:[`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]}).notNull().$type(),prompt:e.text(`prompt`),openedAt:e.epochMs(`opened_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`),resumeData:e.jsonCol(`resume_data`)}),{sqlite:e=>[O(`idx_worklog_gate_events_execution`).on(e.executionId),O(`idx_worklog_gate_events_status`).on(e.status)],postgres:e=>[k(`idx_worklog_gate_events_execution`).on(e.executionId),k(`idx_worklog_gate_events_status`).on(e.status)]}),Je=qe.sqlite,Ye=A(`workflow_execution_state`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull().default(0),value:e.jsonCol(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Xe=Ye.sqlite,Ze=A(`workflow_execution_state_events`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>N.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull(),patch:e.jsonCol(`patch`).notNull(),value:e.jsonCol(`value`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[ve({columns:[e.executionId,e.sequence]})],postgres:e=>[be({columns:[e.executionId,e.sequence]})]}),Qe=Ze.sqlite,$e=n.object({executionId:n.string().min(1),status:v.optional(),error:n.string().nullable().optional(),reason:n.string().nullable().optional(),completedAt:n.number().nullable().optional()}),et=n.enum([`completed`,`failed`,`cancelled`]),tt=re.extend({status:n.literal(`running`),startedAt:n.number().int().nonnegative()}),nt=re.extend({status:et,startedAt:n.number().int().nonnegative(),completedAt:n.number().int().nonnegative(),durationMs:n.number().int().nonnegative()}),rt=Ce(`workflow`,{schemas:{get:{request:n.object({id:n.string()}),response:n.object({workflow:ae.nullable()})},set:{request:n.object({workflow:ae}),response:n.object({id:n.string()})},delete:{request:n.object({id:n.string()}),response:n.object({deleted:n.boolean()})},list:{request:de,response:n.object({workflows:n.array(ae)})},getExecution:{request:n.object({executionId:n.string()}),response:n.object({execution:w.nullable()})},setExecution:{request:n.object({execution:w}),response:n.object({id:n.string()})},setExecutionStart:{request:n.object({execution:w,runContext:E,initialState:S.optional(),executionLinks:n.array(g).optional()}),response:n.object({id:n.string(),executionId:n.string()})},setExternalExecutionStart:u({request:n.object({execution:w.extend({status:n.literal(`running`)}),frame:tt.optional()}),response:n.object({executionId:n.string(),frameId:n.string().optional()})}),settleExternalExecution:u({request:n.object({executionId:n.string().min(1),status:et,error:n.string().min(1).optional(),reason:n.string().min(1).optional(),completedAt:n.number().int().nonnegative().optional(),frame:nt.optional()}),response:n.object({success:n.boolean()})}),updateExecution:{request:$e,response:n.object({success:n.boolean()})},pauseRunningExecution:u({request:n.object({executionId:n.string().min(1)}),response:n.object({paused:n.boolean()})}),claimFinalization:u({request:n.object({claim:ce}),response:n.object({claimed:n.boolean()})}),listClaimedFinalizations:u({request:n.object({finalizerId:le}),response:n.object({claims:n.array(ce)})}),listUnpublishedFinalizations:u({request:n.object({finalizerId:le}),response:n.object({claims:n.array(ce)})}),publishFinalization:u({request:n.object({claim:ce}),response:n.object({})}),acknowledgeFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({acknowledged:n.boolean()})}),failFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),error:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({failed:n.boolean()})}),cancelPausedExecution:{request:n.object({executionId:n.string().min(1),completedAt:n.number(),reason:n.string().optional()}),response:n.object({cancelled:n.boolean(),gates:n.array(T.extend({status:n.literal(`cancelled`)}))})},listExecutions:{request:_,response:n.object({executions:n.array(w)})},listExecutionsByArtifactRefs:{request:y,response:n.object({executionsByRef:n.record(n.string(),n.array(w))})},setFrame:{request:n.object({executionId:n.string().min(1),frame:ue}),response:n.object({frameId:n.string()})},getFrame:{request:n.object({frameId:n.string().min(1)}),response:n.object({frame:ue.nullable()})},listFrames:{request:n.object({executionId:n.string().min(1)}),response:n.object({frames:n.array(ue)})},setGateInstance:{request:n.object({gate:T}),response:n.object({id:n.string()})},resolveWaitingGateInstance:{request:n.object({gate:T.extend({status:n.enum([`resumed`,`rejected`])})}),response:n.object({accepted:n.boolean()})},restorePausedGateResumeState:{request:n.object({execution:w.extend({status:n.literal(`paused`)}),gate:T.extend({status:n.literal(`waiting`)})}),response:n.object({executionId:n.string(),gateId:n.string()})},getGateInstance:{request:n.object({executionId:n.string().min(1),nodeId:n.string().min(1),frameId:n.string().min(1).optional()}),response:n.object({gate:T.nullable()})},listGateInstances:{request:b,response:n.object({gates:n.array(T)})},listPausedGateTimeouts:u({request:n.object({}),response:n.object({gates:n.array(T)})}),setSpan:{request:n.object({span:ee}),response:n.object({id:n.string()})},listSpans:{request:n.object({executionId:n.string()}),response:n.object({spans:n.array(ee)})},setExecutionLink:{request:n.object({link:g}),response:n.object({id:n.string()})},listExecutionLinks:{request:h,response:n.object({links:n.array(g)})},setRunContext:u({request:n.object({runContext:E,initialState:S.optional()}),response:n.object({executionId:n.string()})}),getRunContext:u({request:n.object({executionId:n.string().min(1)}),response:n.object({runContext:E.nullable()})}),initializeState:u({request:n.object({executionId:n.string().min(1),initialValue:S}),response:n.object({})}),getState:u({request:n.object({executionId:n.string().min(1)}),response:n.object({state:n.object({executionId:n.string().min(1),sequence:n.number().int().nonnegative(),value:S}).nullable()})}),patchState:u({request:n.object({executionId:n.string().min(1),expectedSequence:n.number().int().nonnegative(),nextValue:S}),response:n.object({executionId:n.string().min(1),sequence:n.number().int().positive(),patch:n.array(x),value:S})})},extensions:{drizzle:{workflowDefinitions:ke,workflowExecutions:Ae,workflowExecutionFrames:Me,workflowGateInstances:Pe,workflowStepSpans:Ie,workflowExecutionLinks:Re,workflowRunContexts:Be,worklogSummaries:He,worklogFrameEntries:We,worklogArtifactWrites:Ke,worklogGateEvents:Je,workflowExecutionState:Xe,workflowExecutionStateEvents:Qe,workflowFinalizations:Ee}}}),P=rt.subjects;var it=e(t(),1);function at(e){let t=e.transport?.peer;if(t?.authenticated!==!0||t.kind!==`workflow-execution-attempt`)return null;let n=t.id,r=t.claims?.executionId;return typeof n!=`string`||n.length===0||typeof r!=`string`||r.length===0?null:{executionAttemptId:n,executionId:r}}function ot(e,t){return e.origin.local?!0:at(e)?.executionId===t}function st(e,t){let n=[];return ct(n,``,e,t),n}function ct(e,t,n,r){if(Array.isArray(n)&&Array.isArray(r)){ut(e,t,n,r);return}if(dt(n)&&dt(r)){lt(e,t,n,r);return}mt(n,r)||e.push({op:`replace`,path:t,value:r})}function lt(e,t,n,r){let i=Array.from(new Set([...Object.keys(n),...Object.keys(r)])).sort();for(let a of i){let i=ft(n,a),o=ft(r,a),s=`${t}/${pt(a)}`;if(!i&&o){e.push({op:`add`,path:s,value:r[a]});continue}if(i&&!o){e.push({op:`remove`,path:s});continue}ct(e,s,n[a],r[a])}}function ut(e,t,n,r){let i=Math.min(n.length,r.length);for(let a=0;a<i;a++)ct(e,`${t}/${String(a)}`,n[a],r[a]);for(let i=n.length-1;i>=r.length;i--)e.push({op:`remove`,path:`${t}/${String(i)}`});for(let i=n.length;i<r.length;i++)e.push({op:`add`,path:`${t}/${String(i)}`,value:r[i]})}function dt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ft(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function pt(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function mt(e,t){return Object.is(e,t)}const ht={stepTimeoutMs:300*1e3,stepCooldownMs:500,busAuth:{kind:`none`},platformDefaults:{cwd:process.cwd()},cancelTimeoutMs:1e4},gt=new it.default({allErrors:!0,strict:!1}),_t=new Map,vt=new Map;function yt(e){let t=e.$id;return typeof t==`string`?t:void 0}function bt(e,t,n){let r=yt(t);return r===void 0?`workflow:${e}:${n}`:`schema-id:${r}`}function xt(e,t){try{return JSON.stringify(St(t))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function St(e){if(Array.isArray(e))return e.map(St);if(typeof e!=`object`||!e)return e;let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,St(t[e])]))}function Ct(e,t,n){let r=vt.get(t);if(r!==void 0&&r!==n)throw Error(`Workflow '${e}' state schema reuses JSON Schema $id '${t}' with different content`);return gt.getSchema(t)}function wt(e){return e==null||e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`<root>`} ${e.message??`is invalid`}`).join(`; `)}function Tt(e,t){let n=xt(e,t),r=bt(e,t,n),i=_t.get(r);if(i!==void 0)return i;let a=yt(t);if(a!==void 0){let t=Ct(e,a,n);if(t!==void 0)return _t.set(r,t),t}try{let e=gt.compile(t);return _t.set(r,e),a!==void 0&&vt.set(a,n),e}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function Et(e,t,n){if(e.state===void 0)return;let r=Tt(e.id,e.state.schema);if(r(t))return;let i=n===`initial`?`initial state`:`next state`;throw Error(`Workflow '${e.id}' ${i} does not match workflow state schema: ${wt(r.errors)}`)}function Dt(e){if(e.state===void 0)return;let t=e.state.initial===void 0?{}:e.state.initial;return Et(e,t,`initial`),t}function Ot(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function kt(e,t,n){let r=e?M(e,n):t,i=s(t),c=s(a(r)?r:s(t,r)),u,d;try{u=l(i),d=l(c)}catch{return null}let f=o(process.platform===`win32`?u.toLowerCase():u,process.platform===`win32`?d.toLowerCase():d);return f===``||!f.startsWith(`..`)&&!a(f)?d:null}function At(e){return e instanceof Error&&(`code`in e||`killed`in e)}function jt(e){let t=e[0];return t===void 0||t.trim()===``?null:t}function Mt(e){let{command:t,cwd:n,env:i,timeoutMs:a,signal:o}=e,s=jt(t);if(s===null)return Promise.reject(Error(`Shell step command is empty`));let c=t.slice(1);return new Promise((e,t)=>{let l=null,u=!1,d=r(s,c,{cwd:n,env:{...process.env,...i},timeout:0,maxBuffer:10*1024*1024,shell:!1},(n,r,i)=>{n?t(Object.assign(n,{stdout:r,stderr:i,aborted:u})):e({stdout:r,stderr:i})}),f=()=>{d.exitCode===null&&(d.kill(`SIGTERM`),l=setTimeout(()=>{d.exitCode===null&&d.kill(`SIGKILL`)},5e3))},p=setTimeout(()=>{f()},a);if(d.on(`close`,()=>{clearTimeout(p),l!==null&&clearTimeout(l)}),o){let e=()=>{u=!0,f()};o.aborted?e():(o.addEventListener(`abort`,e,{once:!0}),d.on(`close`,()=>o.removeEventListener(`abort`,e)))}})}async function Nt(e){let{step:t,workspaceRoot:n,expressionContext:r,signal:i}=e,a=kt(t.cwd,n,r);if(a===null)return{status:`failed`,error:`Shell step cwd '${t.cwd}' is outside workspace root '${n}'`};let o=t.command.map(e=>M(e,r));if(jt(o)===null)return{status:`failed`,error:`Shell step command is empty`};let s=Object.fromEntries(Object.entries(t.env??{}).map(([e,t])=>[e,M(t,r)])),c=t.timeoutMs??3e5;try{let{stdout:e}=await Mt({command:o,cwd:a,env:s,timeoutMs:c,signal:i});return{status:`completed`,stdout:e}}catch(e){if(!At(e))return{status:`failed`,error:String(e)};let t=e.aborted===!0,n=!t&&(e.killed===!0||e.signal!=null);return{status:`failed`,error:t?`Command cancelled`:n?`Command timed out after ${c}ms`:e.stderr?.trim()||e.stdout?.trim()||e.message}}}async function Pt(e,t,n){if(!(await e.request(P.updateExecution,{executionId:t.id,status:n.status,error:n.error,reason:n.reason,completedAt:n.completedAt})).success)throw Error(`Workflow execution not found: ${t.id}`)}function Ft(e,t){return e===t||t===`completed`&&e===`finalizing`}async function It(e,t,n){let r=e.durableLifecycleTransitions.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.durableLifecycleTransitions.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.durableLifecycleTransitions.get(t)===a&&e.durableLifecycleTransitions.delete(t)}}async function F(e,t,n,r){let i,a,o=!0,s=await It(e,t,async()=>{let s=await n(),c=Promise.withResolvers(),l=e.lifecyclePublications.get(t)??Promise.resolve();return o=!e.publishingLifecycleExecutions.has(t),a=l.catch(()=>void 0).then(async()=>{await c.promise,e.publishingLifecycleExecutions.add(t);try{await r(s)}finally{e.publishingLifecycleExecutions.delete(t)}}),e.lifecyclePublications.set(t,a),i=c.resolve,s});if(i?.(),a!==void 0){let n=a;n.then(()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)},()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)}),o&&await n}return s}async function Lt(e,t,n){if(!(await e.bus.request(t.finalizeSubject,n)).accepted){let r=`Workflow success finalizer "${t.finalizerId}" rejected transition ${n.transitionKey}`,i=Date.now(),{failed:a}=await e.bus.request(P.failFinalization,{executionId:n.executionId,claimToken:n.claimToken,error:r,settledAt:i});return}}async function Rt(e){for(let t of e.successFinalizers?.values()??[]){let{claims:n}=await e.bus.request(P.listClaimedFinalizations,{finalizerId:t.finalizerId});for(let r of n)await Lt(e,t,r);let{claims:r}=await e.bus.request(P.listUnpublishedFinalizations,{finalizerId:t.finalizerId});for(let t of r)await e.bus.request(P.publishFinalization,{claim:t})}}async function zt(e,t,n,r){let i=e.resolveSuccessFinalizerId?.(n),a=i===void 0?void 0:e.successFinalizers?.get(i);if(i!==void 0&&a===void 0){await I(e,t,n,`Workflow success finalizer "${i}" is unavailable`);return}if(a!==void 0){let r=Date.now(),i={executionId:n,workflowId:t.workflowId,finalizerId:a.finalizerId,transitionKey:`${n}:terminal`,claimToken:crypto.randomUUID(),intent:{status:`completed`,completedAt:r},claimedAt:r};await F(e,n,async()=>(await e.bus.request(P.getExecution,{executionId:n})).execution?.status!==`running`||!(await e.bus.request(P.claimFinalization,{claim:i})).claimed?!1:(t.status=`finalizing`,e.activeExecutions.delete(n),!0),async t=>{t&&await Lt(e,a,i)});return}let o=Date.now();await F(e,n,async()=>(await e.bus.request(P.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`completed`,t.completedAt=o,await Pt(e.bus,t,{status:t.status,completedAt:o}),e.activeExecutions.delete(n),!0):!1,async i=>{i&&await e.bus.emit(D.execution.completed,{executionId:n,workflowId:t.workflowId,totalDuration:o-r,completedAt:o})})}async function I(e,t,n,r,i){let a=Date.now();await F(e,n,async()=>(await e.bus.request(P.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`failed`,t.error=r,t.completedAt=a,await Pt(e.bus,t,{status:t.status,error:r,completedAt:a}),e.activeExecutions.delete(n),!0):!1,async o=>{if(o){try{await i?.()}catch(e){console.error(`[WorkflowFinalizer] Failed to run failure pre-emit hook:`,e)}await e.bus.emit(D.execution.failed,{executionId:n,workflowId:t.workflowId,error:r,completedAt:a})}})}function Bt(e,t,n){let{activeRunnerSteps:r,bus:i}=e,a=`${t}:`;for(let[e,o]of r){if(!e.startsWith(a))continue;let r=e.slice(a.length);o.controller.abort(),i.emit(he(o.cancelSubject),{executionId:t,stepId:r,reason:n}).catch(t=>{console.error(`[WorkflowFinalizer] Failed to emit cancellation for ${e}:`,t)})}}async function Vt(e,t,n){let r=await e.bus.request(P.getExecution,{executionId:t});if(r.execution==null)return;let i=r.execution.workflowId;if(i===void 0)throw Error(`Paused execution ${t} is missing stored workflowId`);let a=Date.now(),{cancelled:o,gates:s}=await e.bus.request(P.cancelPausedExecution,{executionId:t,completedAt:a,reason:n});if(o)return e.activeExecutions.delete(t),{workflowId:i,completedAt:a,gates:s}}async function Ht(e,t,n){let{execution:r}=await e.bus.request(P.getExecution,{executionId:t});if(r?.status!==`running`)return Vt(e,t,n);r.status=`cancelled`,r.reason=n,r.completedAt=Date.now();let i=e.activeExecutions.get(t);i!==void 0&&Object.assign(i.execution,r);try{for(let[n,r]of e.shellAbortControllers)n.startsWith(`${t}:`)&&(r.abort(),e.shellAbortControllers.delete(n));Bt(e,t,n),await Pt(e.bus,r,{status:r.status,reason:n,completedAt:r.completedAt})}finally{e.activeExecutions.delete(t)}return{workflowId:r.workflowId,completedAt:r.completedAt,gates:[]}}async function Ut(e,t,n){return await F(e,t,()=>Ht(e,t,n),async r=>{if(r!==void 0){for(let n of r.gates)await e.bus.emit(D.gate.resolved,{executionId:t,stepId:n.nodeId,stepType:`gate`,frameId:n.frameId,source:`cancelled`}).catch(e=>{console.error(`[WorkflowFinalizer] Failed to emit cancelled gate resolution for ${n.frameId}:`,e)});await e.bus.emit(D.execution.cancelled,{executionId:t,workflowId:r.workflowId,reason:n,completedAt:r.completedAt})}})!==void 0}function Wt(e,t){return t}function Gt(e,t){return{...t}}function Kt(e){return e.reason instanceof Error?e.reason.message:typeof e.reason==`string`&&e.reason.length>0?e.reason:ne}async function qt(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return;let i=e.buildFinalizerDeps(),{execution:a}=await i.bus.request(P.getExecution,{executionId:t});a?.status===`running`&&(r.execution=a,await Ut(i,t,Kt(n))||console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${t}: execution not active`))}async function Jt(e,t){if(t.pausedAtGateId===void 0||t.pausedAtFrameId===void 0)throw Error(`Paused runner result for '${t.executionId}' is missing gate identity`);let n=e.buildFinalizerDeps();await F(n,t.executionId,async()=>{let{paused:r}=await n.bus.request(P.pauseRunningExecution,{executionId:t.executionId});if(!r){let{execution:e}=await n.bus.request(P.getExecution,{executionId:t.executionId});if(e?.status!==`paused`)return!1}let i=e.activeExecutions.get(t.executionId);return i!==void 0&&(i.execution.status=`paused`),e.activeExecutions.delete(t.executionId),r},async e=>{e&&await n.bus.emit(D.execution.paused,{executionId:t.executionId,workflowId:t.workflowId,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId})})}async function Yt(e,t){let n=e.activeExecutions.get(t.executionId);if(!n||n.execution.status!==`running`)return;let r=e.buildFinalizerDeps(),{execution:i}=await r.bus.request(P.getExecution,{executionId:t.executionId});if(i?.status===`running`){if(n.execution=i,t.status===`completed`){await zt(r,n.execution,t.executionId,n.execution.startedAt);return}if(t.status===`cancelled`){await Ut(r,t.executionId,t.reason??ne);return}if(t.status===`failed`){await I(r,n.execution,t.executionId,t.error);return}}}async function Xt(e,t){let{result:n}=t;if(t.state===`authority-committed`){let{execution:t}=await e.buildFinalizerDeps().bus.request(P.getExecution,{executionId:n.executionId}),r=t?.status===`cancelled`&&n.status===`failed`&&e.workflowAbortControllers.get(n.executionId)?.signal.aborted===!0;if(!t||t.workflowId!==n.workflowId||!Ft(t.status,n.status)&&!r)throw Error(`Authority-committed runner result was not durably converged for '${n.executionId}'`);e.activeExecutions.delete(n.executionId);return}if(n.status===`paused`){await Jt(e,n);return}await Yt(e,n)}function Zt(e,t){return{source:{kind:`path`,path:t.filePath},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,triggerMode:t.triggerMode,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:e.config.busUrl,busAuth:e.config.busAuth,env:e.config.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:`wait-in-process`,materializationSpec:t.materializationSpec}}function Qt(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Zt(e,t);return Promise.resolve().then(()=>r.run(c,s.signal)).then(async t=>{await Xt(e,t)}).catch(async t=>{if(s.signal.aborted){await qt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await I(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function $t(e,t){let{config:n}=e,r=t.definitionSnapshot??(t.source.kind===`definition`?t.workflow:void 0);return{source:t.source,...r===void 0?{}:{definition:r},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:n.busUrl,busAuth:n.busAuth,env:n.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:t.suspensionStrategy??`wait-in-process`,...t.terminalAuthority!==void 0&&{terminalAuthority:t.terminalAuthority},...t.materializationSpec===void 0?{}:{materializationSpec:t.materializationSpec}}}function en(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=$t(e,t),l=t.dispatchMetadata===void 0?void 0:{dispatchMetadata:t.dispatchMetadata};return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{await Xt(e,t)}).catch(async t=>{if(s.signal.aborted){await qt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await I(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function tn(e,t,n={}){let r=nn(e,n);return{executionId:e.executionId,workflowId:e.workflowId,workflow:t,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},source:e.source,coordinatorSessionId:e.coordinatorSessionId,sanitizedTriggerPayload:e.triggerPayload,boundInputs:e.inputs,boundConfig:e.config??{},...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},scope:e.scope,...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec},suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??`worker`,...r===void 0?{}:{dispatchMetadata:r}}}function nn(e,t){return t.resume===!0?{...e.dispatchMetadata,resume:!0}:e.dispatchMetadata}const rn=/(?:^|[_-])(authorization|token|cookie|password|set[_-]?cookie|api[_-]?key|secret|credential|private[_-]?key|api[_-]?secret)(?:$|[_-])/i;function an(e){if(!e)return;let t={remainingBytes:65536},n={},r=Object.entries(e).slice(0,100);for(let[e,i]of r){if(t.remainingBytes<=0)break;let r=on(e,i,0,t);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function on(e,t,n,r){if(!(r.remainingBytes<=0||n>6)&&(r.remainingBytes-=e.length,!(r.remainingBytes<=0))){if(rn.test(e))return r.remainingBytes-=10,`[REDACTED]`;if(t===null)return r.remainingBytes-=4,null;if(typeof t==`string`){let e=t.slice(0,2e3);return r.remainingBytes-=e.length,e}if(typeof t==`number`||typeof t==`boolean`)return r.remainingBytes-=String(t).length,t;if(Array.isArray(t)){let i=[];for(let a of t.slice(0,100)){if(r.remainingBytes<=0)break;let t=on(e,a,n+1,r);t!==void 0&&i.push(t)}return i}if(typeof t==`object`){let e={},i=Object.entries(t).slice(0,100);for(let[t,a]of i){if(r.remainingBytes<=0)break;let i=on(t,a,n+1,r);i!==void 0&&(e[t]=i)}return e}}}async function sn(e){let{authority:t,executionId:n,instruction:r,dispatch:i}=e,a=await t.createAttempt(n,r),o=t.waitForOutcome(a.executionAttemptId);if(o===void 0)throw Error(`No outcome waiter for attempt '${a.executionAttemptId}': waiter was not installed during attempt creation`);o.catch(()=>void 0);try{await i(a.executionAttemptId)}catch(e){return cn({authority:t,executionId:n,executionAttemptId:a.executionAttemptId,outcomePromise:o,dispatchError:e})}return o}async function cn(e){let{authority:t,executionId:n,executionAttemptId:r,outcomePromise:i,dispatchError:a}=e,o;try{o=await t.abandonPendingAttempt(r,n)}catch(e){throw t.discardWaiter(r),AggregateError([a,e],`Dispatch acknowledgement failed and pending attempt '${r}' could not be abandoned`,{cause:a})}switch(o.kind){case`abandoned`:case`already-abandoned`:throw t.discardWaiter(r),a;case`allocated`:case`provisioning`:case`already-settled`:return i;case`fenced`:t.settleOutcome(r,{kind:`fenced`});try{return await i}catch(e){throw AggregateError([a,e],`Dispatch acknowledgement failed after attempt '${r}' was fenced`,{cause:a})}}}const ln=`workflow`,un=`1`,L=E.shape,dn=n.object({executionId:L.executionId,workflowId:L.workflowId,source:L.source,definitionSnapshot:L.definitionSnapshot,inputs:L.inputs,config:L.config,scope:L.scope,triggerPayload:L.triggerPayload,triggerMode:L.triggerMode,artifactRef:L.artifactRef,coordinatorSessionId:L.coordinatorSessionId,cancelSubject:L.cancelSubject,materializationSpec:L.materializationSpec,terminalAuthority:n.literal(`authority`)}).strict().superRefine((e,t)=>{let n=E.safeParse({...e,createdAt:0});if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message});e.source.kind===`path`&&(e.source.path.includes(`\\`)||/^[A-Za-z]:/.test(e.source.path)||e.source.path.split(`/`).includes(`..`))&&t.addIssue({code:`custom`,path:[`source`,`path`],message:`Workflow source must stay within its executable root`}),e.source.kind===`definition`&&e.source.workflowId!==e.workflowId&&t.addIssue({code:`custom`,path:[`source`],message:`Workflow source identity does not match the invocation`}),e.definitionSnapshot!==void 0&&e.definitionSnapshot.id!==e.workflowId&&t.addIssue({code:`custom`,path:[`definitionSnapshot`],message:`Workflow definition identity does not match the invocation`})});function fn(e,t){if(t===void 0&&e.source.kind===`path`)throw Error(`Path-backed workflow instructions require a portable run context`);if(t!==void 0&&(t.executionId!==e.executionId||t.workflowId!==e.workflowId))throw Error(`Workflow run context does not belong to the dispatched execution`);let n=t??e,r=t===void 0?e.definition:t.definitionSnapshot;return dn.parse({executionId:n.executionId,workflowId:n.workflowId,source:n.source,...r===void 0?{}:{definitionSnapshot:r},inputs:n.inputs,...n.config===void 0?{}:{config:n.config},scope:n.scope,triggerPayload:n.triggerPayload,...n.triggerMode===void 0?{}:{triggerMode:n.triggerMode},...n.artifactRef===void 0?{}:{artifactRef:n.artifactRef},coordinatorSessionId:n.coordinatorSessionId,cancelSubject:n.cancelSubject,...n.materializationSpec===void 0?{}:{materializationSpec:n.materializationSpec},terminalAuthority:`authority`})}function pn(e){let t=fn(e.config,e.runContext),n=JSON.parse(JSON.stringify(t));return p.parse({id:e.id,revision:e.revision,workload:{kind:ln,version:`1`,input:n},...e.workspace===void 0?{}:{workspace:e.workspace},preservation:e.preservation})}function mn(e){if(e.workload.kind!==`workflow`||e.workload.version!==`1`)throw Error(`Instruction does not target the supported workflow workload adapter`);return dn.parse(e.workload.input)}const hn=m.transform((e,t)=>e.kind===`technical-failure`||e.kind===`cancelled`?e:(t.addIssue({code:`custom`,message:`Expected a runtime outcome, not an opaque workload result`}),n.NEVER)),gn=n.union([fe,hn]),_n={parse:e=>gn.parse(e),serialize:e=>JSON.stringify(e)};function vn(e){let t=m.parse(e.outcome);if(t.kind===`technical-failure`||t.kind===`cancelled`)return t;let n=mn(e.instruction),r=fe.parse(t.result);if(r.executionId!==n.executionId||r.workflowId!==n.workflowId)throw Error(`Workflow result identity does not match the frozen instruction`);return r}function yn(e,t){if(`kind`in e)return e.kind===`cancelled`?{executionId:t.executionId,workflowId:t.workflowId,status:`cancelled`,...e.reason===void 0?{}:{reason:e.reason}}:{executionId:t.executionId,workflowId:t.workflowId,status:`failed`,error:`${e.stage}: ${e.message}`};if(e.executionId!==t.executionId||e.workflowId!==t.workflowId)throw Error(`Committed workflow result does not match its owner identity`);return fe.parse(e)}function bn(e){return e===void 0?!1:(e.customCapabilities??[]).length>0||e.persistentStorage!==void 0||e.maxRuntimeMs!==void 0||e.recoverableAllocation!==void 0||e.materializationModes!==void 0&&e.materializationModes.length>0}function xn(e){let{bus:t,requirements:n,dispatchMetadata:r,authority:i}=e;if(bn(n))return{terminalAuthority:`authority`,run:async(e,a,o,s)=>{a.throwIfAborted();let l=e.source.kind===`path`?(await t.request(P.getRunContext,{executionId:e.executionId},{signal:a})).runContext:void 0;a.throwIfAborted();let u=pn({id:c(),revision:`1`,config:e,...l==null?{}:{runContext:l},preservation:{required:[]}});return{state:`authority-committed`,result:yn(await sn({authority:i,executionId:e.executionId,instruction:u,dispatch:i=>t.request(ie.dispatch,{executionAttemptId:i,config:{...e,terminalAuthority:`authority`},requirements:n,...o===void 0?{}:{manifest:o},...r!==void 0||s?.dispatchMetadata!==void 0?{metadata:{...r,...s?.dispatchMetadata}}:{}},{signal:a})}),e)}}}}function Sn(e,t){let n=(e.executionAttemptAuthority===void 0?void 0:xn({bus:e.bus,requirements:t.workflow.requirements,dispatchMetadata:t.dispatchMetadata,authority:e.executionAttemptAuthority}))??e.workflowRunner;if(t.terminalAuthority!==void 0&&t.terminalAuthority!==(n?.terminalAuthority??`worker`))throw Error(`Selected workflow runner is incompatible with the persisted terminal authority`);return{runner:n}}function Cn(e,t,n=Sn(e,t)){return n.runner===void 0?e.runExecution(t.executionId).finally(()=>{e.executionTasks.delete(t.executionId)}):en(e.buildRunnerTaskDeps(n.runner),{...t,terminalAuthority:t.terminalAuthority??n.runner.terminalAuthority})}async function wn(e,t,n,r){let i=Dt(r);await e.request(P.setExecutionStart,{execution:t,runContext:n,initialState:i})}async function Tn(e,t){try{await e.emit(D.execution.started,{executionId:t.id,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,startedAt:t.startedAt,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef}})}catch(e){console.error(`[WorkflowExecutor] execution.started listener failed:`,e)}}async function En(e,t){await e.request(C.close,{sessionId:t}).catch(e=>{console.error(`[WorkflowExecutor] Failed to close coordinator session "${t}" after launch failure:`,e)})}function Dn(e,t,n,r,i,a,o,s,c){let l={id:t,workflowId:n.id,coordinatorSessionId:r,status:`running`,inputs:i,config:a,startedAt:Date.now(),triggerPayload:o,...c.artifactRef===void 0?{}:{artifactRef:c.artifactRef},scope:s};return e.set(t,{execution:l,workflow:n,runContext:c,runtimeHandlers:new Map,runtimeLoopGates:new Map}),l}async function On(e,t,n,r,i){await e.request(P.setExecutionStart,{execution:t,runContext:n,...r===void 0?{}:{initialState:r},...i!==void 0&&i.length>0?{executionLinks:[...i]}:{}})}function kn(e,t){return e.executableSource??{kind:`definition`,workflowId:t}}function An(e,t){return e.kind===`definition`||t!==void 0}function jn(e,t,n){if(!(t.kind===`definition`||e!==void 0))throw new oe(se.NOT_EXECUTABLE,`Workflow source execution '${n}' requires a workflow runner.`)}async function Mn(e,t,n){if(t.source.kind===`path`){if(n!==void 0)return n;for(let n of e.materializationSpecResolvers){let e=await n.resolve({executionId:t.executionId,workflowId:t.workflowId,sourcePath:t.source.path,workspaceRoot:t.workspaceRoot});if(e!==void 0)return e}throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`)}}async function Nn(e,t,n){let r=await Mn(e,t,n);return{source:t.source.kind===`path`&&r!==void 0?{kind:`path`,path:r.sourcePath}:t.source,materializationSpec:r}}async function Pn(e,t,n,r){return e.set(t,n),await r,t}async function Fn(e,t){let{workflow:n}=await e.request(P.get,{id:t});if(!n)throw Error(`Workflow not found: ${t}`);return n}async function In(e,t,n,r){let{sessionId:i}=await e.request(C.create,{parentSessionId:t,branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function Ln(e,t,n={}){let r=await Fn(e.bus,t);return Rn(e,t,{...n,workflow:r})}async function Rn(e,t,n){let{bus:r,activeExecutions:i,executionTasks:a}=e,{workflow:o,parentSessionId:s,triggerPayload:c,artifactRef:l,scopeOverride:u}=n,d=Ot(`wfx`),f=an(c),p=Wt(o,n.input===void 0?{}:n.input),m=Gt(o,n.config??{}),h=u??o.scope,g=await e.resolveExecutionWorkspaceRoot(s),_=n.executionSource??kn(o,t),v=n.definitionSnapshot??o,y=Sn(e,{workflow:o});jn(y.runner,_,t);let{source:b,materializationSpec:x}=await Nn(e,{executionId:d,workflowId:t,source:_,workspaceRoot:g},n.materializationSpec),S=await In(r,s,o.name,g),C=!1;try{let s=e.buildRunContext({executionId:d,workflowId:t,coordinatorSessionId:S,source:b,...v===void 0?{}:{definitionSnapshot:v},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:`immediate`,terminalAuthority:y.runner?.terminalAuthority,...l===void 0?{}:{artifactRef:l},...x===void 0?{}:{materializationSpec:x}}),c=Dn(i,d,o,S,p,m,f,h,s);await On(r,c,s,_.kind===`definition`?Dt(o):void 0,n.executionLinks?.(d));let u=Tn(r,c),g=Cn(e,{executionId:d,workflowId:t,workflow:o,...An(_,n.definitionSnapshot)?{definitionSnapshot:v}:{},source:_,coordinatorSessionId:S,sanitizedTriggerPayload:f??{},boundInputs:p,boundConfig:m,scope:h,...l===void 0?{}:{artifactRef:l},suspensionStrategy:s.suspensionStrategy,...x===void 0?{}:{materializationSpec:x}},y);return C=!0,Pn(a,d,g,u)}catch(e){throw C||(i.delete(d),a.delete(d),await En(r,S)),e}}function zn(e,t,n,r,i){e.set(t.id,{execution:t,workflow:{id:t.workflowId,name:n,scope:r,root:{id:`${t.workflowId}-root`,type:`sequence`,nodes:[]}},runContext:i,runtimeHandlers:new Map,runtimeLoopGates:new Map})}async function Bn(e,t,n,r){let{sessionId:i}=await e.request(C.create,{...t===void 0?{}:{parentSessionId:t},branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}function Vn(e){if(e===void 0)throw Error(`[WorkflowExecutor] startFileExecution called without a workflow runner`);return e}function Hn(e){if(e===void 0)throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`);return e}async function Un(e,t,n={}){let{bus:r,activeExecutions:i,executionTasks:a}=e,{artifactRef:o,parentSessionId:s,triggerPayload:c,scopeOverride:l}=n,u=n.triggerMode??`immediate`,d=Ot(`wfx`),f=an(c),p=n.input===void 0?{}:n.input,m=n.config??{},h=l??{type:`global`},g=await e.resolveExecutionWorkspaceRoot(s),_=Vn(e.workflowRunner),v=d,y=Hn(await Mn(e,{executionId:d,workflowId:v,source:{kind:`path`,path:t},workspaceRoot:g},n.materializationSpec)),b=await Bn(r,s,t,g),x={id:d,workflowId:v,coordinatorSessionId:b,status:`running`,inputs:p,config:m,startedAt:Date.now(),triggerPayload:f,...o===void 0?{}:{artifactRef:o},scope:h},S=!1;try{let s=e.buildRunContext({executionId:d,workflowId:v,coordinatorSessionId:b,source:{kind:`path`,path:y.sourcePath},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:u,terminalAuthority:_.terminalAuthority,...o===void 0?{}:{artifactRef:o},materializationSpec:y});await On(r,x,s,void 0,n.executionLinks?.(d)),zn(i,x,t,h,s);let c=Tn(r,x),l=Qt(e.buildRunnerTaskDeps(_),{executionId:d,workflowId:v,filePath:t,coordinatorSessionId:b,sanitizedTriggerPayload:f??{},triggerMode:u,boundInputs:p,boundConfig:m,...o===void 0?{}:{artifactRef:o},scope:h,materializationSpec:y});return S=!0,Pn(a,d,l,c)}catch(e){throw S||(i.delete(d),a.delete(d),await En(r,b)),e}}function Wn(e){let t={};for(let[n,r]of Object.entries(e))r.status===`completed`?t[n]={status:`completed`,output:r.output}:r.status===`skipped`&&(t[n]={status:`skipped`});return t}function R(e){let t={...e,input:e.inputs,steps:e.frames};return{...t,ctx:t}}function Gn(e,t){let n=process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`;return{repoPath:e??process.cwd(),makaioHome:t??process.env.MAKAIO_HOME??`${we.homedir()}/.makaio`,os:n,arch:process.arch}}function Kn(){return{context:Gn(),env:{}}}function qn(e){return{...e,path:[...e.path]}}function Jn(e){if(e===`station`||e===`delegate-agent`||e===`delegate-role`||e===`gate`)return e}function Yn(e,t){let n=Jn(t.nodeType);if(n===void 0||t.status!==`running`&&t.status!==`completed`&&t.status!==`failed`&&t.status!==`skipped`)return;let r=t.startedAt!==void 0&&t.completedAt!==void 0?Math.max(0,t.completedAt-t.startedAt):void 0;return{executionId:e,frameId:t.frameId,stepId:t.nodeId,stepType:n,status:t.status,...t.startedAt===void 0?{}:{startedAt:t.startedAt},...t.completedAt===void 0?{}:{completedAt:t.completedAt},...r===void 0?{}:{durationMs:r},...t.output===void 0?{}:{output:JSON.stringify(t.output)}}}var Xn=class e{executionId;workflowId;definition;execution;runtimeHandlers;bus;signal;frameRegistry;framePersistenceTasks=new Map;artifactBinding;constructor(e,t,n,r,i,a,o,s,c,l=Kn(),u={}){this.executionId=e,this.workflowId=t,this.definition=n,this.execution=r,this.runtimeHandlers=i,this.bus=a,this.signal=o,this.frameRegistry=s??new Map,this.artifactBinding=c,this.platformContext=l.context,this.env=l.env,this.suspensionStrategy=u.suspensionStrategy??`wait-in-process`,this.resumeFrames=u.resumeFrames,this.runtimeLoopGates=u.runtimeLoopGates??new Map}platformContext;env;suspensionStrategy;resumeFrames;runtimeLoopGates;withSignal(t){return new e(this.executionId,this.workflowId,this.definition,this.execution,this.runtimeHandlers,this.bus,t,this.frameRegistry,this.artifactBinding,{context:this.platformContext,env:this.env},{suspensionStrategy:this.suspensionStrategy,resumeFrames:this.resumeFrames,runtimeLoopGates:this.runtimeLoopGates})}buildExpressionContext(){return{inputs:this.execution.inputs,config:this.execution.config??{},trigger:this.execution.triggerPayload??{},frames:{},previousSteps:{}}}createFrame(e){let t=Ot(`frm`),n=[...e.path,t],r={frameId:t,nodeId:e.nodeId,nodeType:e.nodeType,path:n,parentFrameId:e.parentFrameId,status:`pending`,attempt:0,iteration:e.iteration,branchKey:e.branchKey};return this.frameRegistry.set(t,r),this.persistFrame(r).catch(()=>void 0),r}async persistFrame(e,t={}){let n=t.requireFrameStorage===!0||this.suspensionStrategy!==`wait-in-process`,r=qn(e),i=Yn(this.executionId,r),a=(this.framePersistenceTasks.get(e.frameId)??Promise.resolve()).catch(()=>void 0).then(async()=>{n?await this.bus.request(P.setFrame,{executionId:this.executionId,frame:r}):await this.bus.requestOptional(P.setFrame,{executionId:this.executionId,frame:r}),i!==void 0&&await this.bus.requestOptional(P.setSpan,{span:i})}).catch(t=>{if(n)throw t;console.warn(`[RuntimeContext] Failed to persist frame ${e.frameId}:`,t)});this.framePersistenceTasks.set(e.frameId,a);try{await a}finally{this.framePersistenceTasks.get(e.frameId)===a&&this.framePersistenceTasks.delete(e.frameId)}}async updateFrame(e,t,n={}){let r=this.frameRegistry.get(e);if(!r)throw Error(`Frame not found: ${e}`);Object.assign(r,t),await this.persistFrame(r,n)}getFrame(e){return this.frameRegistry.get(e)}getFramesByNodeId(e){let t=[];for(let n of this.frameRegistry.values())n.nodeId===e&&t.push(n);return t.sort((e,t)=>(e.startedAt??0)-(t.startedAt??0))}async emitFrameStarted(e){try{await this.bus.emit(D.frame.started,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId,startedAt:e.startedAt})}catch(t){console.error(`[RuntimeContext] frame.started observer failed for ${e.frameId}:`,t)}}async emitFrameCompleted(e,t){try{await this.bus.emit(D.frame.completed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,output:e.output,duration:t,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.completed observer failed for ${e.frameId}:`,t)}}async emitFrameFailed(e,t,n){try{await this.bus.emit(D.frame.failed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,error:t,duration:n,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.failed observer failed for ${e.frameId}:`,t)}}};function Zn(e){return{kind:`workflow-execution`,id:e,displayName:`Workflow Engine`}}function Qn(e,t,n){return{inputs:n.inputs,config:n.config??{},trigger:n.triggerPayload,scope:n.scope,env:n.env,execution:{id:t.id,workflowId:t.workflowId,scope:t.scope},workflow:{id:e.id,name:e.name,scope:e.scope}}}function $n(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function er(e){if(e!=null){if($n(e)&&typeof e.kind==`string`&&typeof e.id==`string`)return{kind:e.kind,id:e.id};throw Error(`Artifact resolve expression must return an object with string kind and id fields.`)}}function tr(e){if(e!==void 0){if($n(e))return e;throw Error(`Artifact create expression must return an object.`)}}async function nr(e){let{bindingOptions:t,binding:n,existingArtifactRef:r,executionId:i,scope:a,initialData:o,bus:s}=e,c=null;if(r!==void 0){let e=await s.request(f.query,{kind:r.kind,ids:[r.id],currentOnly:!0});if(e.artifacts.length>0)c=e.artifacts[0];else return}else c=(await s.request(f.create,{kind:n.kind,schemaVersion:n.schemaVersion,scope:a??n.scope,data:o??{},relations:[],actor:Zn(i)})).artifact;return{current:c,schemaVersion:n.schemaVersion,statusPath:t.statusPath,zodSchema:t.schema}}async function rr(e){let{definition:t,execution:n,runContext:r,zodSchema:i,bus:a}=e,o=t.artifact;if(o===void 0)return;let s=Qn(t,n,r),c=r.artifactRef??(o.resolve===void 0?void 0:er(j(o.resolve,s))),l=c===void 0&&o.create!==void 0?tr(j(o.create,s)):void 0,u=await nr({bindingOptions:{kind:o.kind,schemaVersion:o.schemaVersion,scope:o.scope,...o.resolve===void 0?{}:{resolve:o.resolve},...o.create===void 0?{}:{create:o.create},...o.statusPath===void 0?{}:{statusPath:o.statusPath},...i===void 0?{}:{schema:i}},binding:o,existingArtifactRef:c,executionId:n.id,scope:o.scope,initialData:l,bus:a});if(u===void 0)throw Error(`Workflow artifact binding could not be resolved for the configured artifact reference.`);return u}const ir=new WeakMap;function ar(e,t){let n=(ir.get(e)??Promise.resolve()).catch(()=>void 0).then(t);return ir.set(e,n.then(()=>void 0,()=>void 0)),n}function or(e,t){switch(t.operation){case`set`:return t.data;case`merge`:return{...e,...t.data};case`append`:{let n={...e};for(let[r,i]of Object.entries(t.data)){let t=e[r];Array.isArray(t)&&Array.isArray(i)?n[r]=[...t,...i]:n[r]=i}return n}}}function sr(e,t,n){let[r,...i]=t;if(i.length===0)return{...e,[r]:n};let a=e[r]!==null&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{};return{...e,[r]:sr(a,i,n)}}function cr(e,t,n){return sr(e,t.startsWith(`/`)?t.slice(1).split(`/`):t.split(`.`),n)}function lr(e,t,n){if(n===`set`||n===`functional`)return[];let r=[];for(let n of Object.keys(t))e[n]!==t[n]&&r.push(`/${n}`);return r}async function ur(e,t){if(typeof t==`function`)return{nextData:await t(Object.freeze({...e})),operationLabel:`functional`,changedPaths:[]};let n=or(e,t),r=lr(e,n,t.operation);return{nextData:n,operationLabel:t.operation,changedPaths:r}}function dr(e){let{executionId:t,frameId:n,bindingState:r,bus:i}=e,a=Object.freeze({...r.current.data}),o=async e=>ar(r,async()=>{let a=r.current,{nextData:o,operationLabel:s,changedPaths:c}=await ur(a.data,e);if(r.zodSchema!==void 0){let e=r.zodSchema.safeParse(o);if(!e.success)throw Error(`Artifact data validation failed: ${e.error.message}`)}let l=await i.request(f.revise,{previous:{refClass:`artifact`,kind:a.kind,id:a.id,revision:a.revision},revision:{kind:a.kind,schemaVersion:r.schemaVersion,scope:a.scope,data:o,relations:a.relations,actor:Zn(t)}});r.current=l.artifact;let u=l.artifact.revision;return i.emit(me.artifact.updated,{executionId:t,frameId:n,artifactRef:{kind:l.artifact.kind,id:l.artifact.id},paths:c,operation:s,revision:u}).catch(e=>{console.error(`[ArtifactContext] Failed to emit artifact.updated event:`,e)}),u});return{data:a,updateArtifact:o,updateStatus:async e=>{if(r.statusPath===void 0)throw Error(`updateStatus() called but no statusPath is configured on the artifact binding. Set statusPath in the .artifact() builder call to use updateStatus().`);let t=r.statusPath;return o(n=>cr(n,t,e))}}}function fr(e,t){return{async get(){return(await t.request(D.state.get,{executionId:e})).value},async update(n){let r=await t.request(D.state.get,{executionId:e}),i=structuredClone(r.value),a=await n(i),o=a===void 0?i:a,s=st(r.value,o);return(await t.request(D.state.patch,{executionId:e,expectedSequence:r.sequence,patch:s,nextValue:o})).value}}}function pr(e,t,n){let r=e.providerContext?.state===`resolved`?e.providerContext:void 0,i=e.providerConfigId??r?.providerConfigId;return{durationMs:t,...n===void 0?{}:{...n.inputTokens===void 0?{}:{inputTokens:n.inputTokens},...n.cachedInputTokens===void 0?{}:{cachedInputTokens:n.cachedInputTokens},...n.outputTokens===void 0?{}:{outputTokens:n.outputTokens},toolCallCount:n.toolCallCount},binding:{adapterName:e.adapterName,...i===void 0?{}:{providerConfigId:i},...r===void 0?{}:{providerDefinitionId:r.definitionId},...e.model===void 0?{}:{model:e.model},...r===void 0?{}:{auth:{mode:r.auth.mode,owner:r.auth.method.owner,methodId:r.auth.method.methodId}}}}}async function mr(e,t,n){if(t.signal.aborted)return{status:`cancelled`};let r=await t.bus.requestOptional(D.resolveRole,{roleId:e.roleId});if(!r.handled)return{status:`failed`,error:e.unresolvedRoleError};let i=M(e.prompt,R(n)),a=e.completion===void 0?r.data:{...r.data,completion:e.completion};return hr({...e,task:i,resolvedConfig:a},t)}async function hr(e,t){if(t.signal.aborted)return{status:`cancelled`};let n=performance.now(),r=await t.bus.requestOptional(te.spawn,{parentSessionId:t.execution.coordinatorSessionId??t.executionId,depth:1,config:Sr(e.task,e.resolvedConfig,e.outputSchema)});if(!r.handled)return{status:`failed`,error:e.unavailableRuntimeError};let i=await vr(e,t,r.data.subagentId,{attempts:5}),a=await Cr(e,t,r.data.subagentId);if(a===`aborted`)return{status:`cancelled`};if(i||await vr(e,t,r.data.subagentId,{attempts:1}),!a.handled)return await z(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' could not await ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:e.unavailableAwaitError};if(t.signal.aborted||a.data.status===`cancelled`)return{status:`cancelled`};if(a.data.status===`completed`){let r=a.data.result??null;try{return{status:`completed`,output:await gr({...e,toolObservations:a.data.toolObservations,usage:a.data.usage},t,r,_r(n))}}catch(e){if(t.signal.aborted)return{status:`cancelled`};throw e}}return(a.data.status===`timeout`||a.data.status===`waiting_input`)&&await z(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' abandoned non-terminal ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:`${e.nodeLabel} '${e.nodeId}' subagent ${a.data.status}: ${a.data.error??`no result`}`}}async function gr(e,t,n,r=0){if(e.resultFinalizerId===void 0)return n;if(e.frameId===void 0||e.delegateNodeType===void 0)throw Error(`Delegate result finalizer '${e.resultFinalizerId}' requires frame and delegate node identity`);let i={finalizerId:e.resultFinalizerId,executionId:t.executionId,workflowId:t.workflowId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.delegateNodeType,rawResult:n,toolObservations:[...e.toolObservations??[]],...e.resolvedConfig===void 0?{}:{economics:pr(e.resolvedConfig,r,e.usage)}},a=await t.bus.requestOptional(D.finalizeDelegateResult,i,{signal:t.signal});if(a.handled)return a.data.output;let{subjects:o}=ge(e.resultFinalizerId),{finalizerId:s,...c}=i;return(await t.bus.request(o.finalize,c,{signal:t.signal})).output}function _r(e){let t=performance.now()-e;return!Number.isFinite(t)||t<=0?0:Math.min(2**53-1,Math.round(t))}async function vr(e,t,n,r){if(e.frameId===void 0)return!0;try{let i=await yr(t,n,r.attempts);return i===void 0?!1:(await t.bus.emit(D.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:i}),!0)}catch(t){return console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and subagent '${n}'`,t),!1}}async function yr(e,t,n){for(let r=0;r<n;r+=1){if(e.signal?.aborted)return;let i=await br(e,t);if(i===void 0||!i.handled)return;if(i.data.childSessionId!==void 0)return i.data.childSessionId;if(r<n-1&&!await xr(e.signal,20))return}}async function br(e,t){try{return await e.bus.requestOptional(te.getStatus,{subagentId:t},{timeout:25,signal:e.signal})}catch{return}}function xr(e,t){return e.aborted?Promise.resolve(!1):new Promise(n=>{let r,i=t=>{r!==void 0&&(clearTimeout(r),r=void 0),e.removeEventListener(`abort`,a),n(t)},a=()=>i(!1);r=setTimeout(()=>i(!0),t),e.addEventListener(`abort`,a,{once:!0}),e.aborted&&i(!1)})}function Sr(e,t,n){return{task:e,adapterName:t.adapterName,...t.providerConfigId===void 0?{}:{providerConfigId:t.providerConfigId},...t.model===void 0?{}:{model:t.model},...t.reasoningEffort===void 0?{}:{reasoningEffort:t.reasoningEffort},...t.harnessId===void 0?{}:{harnessId:t.harnessId},...t.systemPrompt===void 0?{}:{systemPrompt:t.systemPrompt},...t.contextMode===void 0?{}:{contextMode:t.contextMode},...t.providerContext===void 0?{}:{providerContext:t.providerContext},...t.adapterConfig===void 0?{}:{adapterConfig:t.adapterConfig},...t.tools===void 0?{}:{tools:t.tools},...t.disallowedTools===void 0?{}:{disallowedTools:t.disallowedTools},...t.allowedDirectories===void 0?{}:{allowedDirectories:t.allowedDirectories},...t.completion===void 0?{}:{completion:t.completion},...n===void 0?{}:{responseSchema:n}}}async function Cr(e,t,n){if(t.signal.aborted)return await z(e,t,n),`aborted`;let r=t.bus.requestOptional(te.await,{subagentId:n,...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}},{timeout:0});if(t.signal.aborted)return await z(e,t,n),`aborted`;let i,a=new Promise(e=>{i=()=>e(`aborted`),t.signal.addEventListener(`abort`,i,{once:!0})});try{let i=await Promise.race([r,a]);return i===`aborted`&&await z(e,t,n),i}catch(r){throw await z(e,t,n,`Workflow execution '${t.executionId}' failed awaiting ${e.cancellationLabel} '${e.nodeId}'`),r}finally{i!==void 0&&t.signal.removeEventListener(`abort`,i)}}async function z(e,t,n,r){try{await t.bus.requestOptional(te.kill,{subagentId:n,reason:r??`Workflow execution '${t.executionId}' cancelled ${e.cancellationLabel} '${e.nodeId}'`})}catch(t){console.warn(`[workflow-engine] Best-effort subagent kill failed for '${n}' (${e.cancellationLabel} '${e.nodeId}')`,t)}}async function wr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=Wn(n.frames),a=t.runtimeHandlers.get(e.id);if(a===void 0)return Tr(e,t,n,r);let o=t.artifactBinding!==void 0&&r!==void 0?dr({executionId:t.executionId,frameId:r,bindingState:t.artifactBinding,bus:t.bus}):void 0,s=t.definition.state===void 0?void 0:fr(t.executionId,t.bus);async function c(n){if(r===void 0){console.warn(`[station-node] updateProgress called without frameId for node '${e.id}'; skipping emit`);return}let i=pe[`execution.progress`].parse({executionId:t.executionId,workflowId:t.workflowId,frameId:r,nodeId:e.id,progress:n,emittedAt:Date.now()});try{await t.bus.emit(D.execution.progress,i)}catch(t){console.error(`[station-node] execution.progress observer failed for ${e.id}:`,t)}}let l;try{l=await a({...t.platformContext,env:t.env,executionId:t.executionId,workflowId:t.workflowId,inputs:t.execution.inputs,config:t.execution.config??{},trigger:t.execution.triggerPayload??{},previousSteps:i,...n.item!==void 0&&{item:n.item},...n.index!==void 0&&{index:n.index},...n.previous!==void 0&&{previous:n.previous},signal:t.signal,...o!==void 0&&{artifact:o},...s!==void 0&&{state:s},bus:t.bus,updateProgress:c})}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}return{status:`completed`,output:l}}async function Tr(e,t,n,r){if(e.role===void 0)return{status:`failed`,error:`No handler registered for station node '${e.id}'`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return mr({nodeId:e.id,nodeLabel:`Station node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},...e.completion===void 0?{}:{completion:e.completion},unresolvedRoleError:`No runtime handler registered for station node '${e.id}', and role '${e.role}' could not be resolved`,unavailableRuntimeError:`Subagent runtime is not available for station node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await station node '${e.id}'`,cancellationLabel:`station`,...r===void 0?{}:{frameId:r}},t,n)}function Er(e,t){return t===void 0?e:{...e,tools:[...t],disallowedTools:void 0}}function Dr(e,t){let n=Er({...t,...e.completion===void 0?{}:{completion:e.completion}},e.allowedTools);return kr(n)?{...n,contextMode:`fresh`}:n}function Or(e,t){return Er({...t,completion:e.completion??t.completion??`tool`},e.allowedTools)}function kr(e){return e.completion===`turn`&&[e.harnessId,e.contextMode,e.adapterConfig,e.tools,e.disallowedTools,e.allowedDirectories].every(e=>e===void 0)}async function Ar(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(D.resolveAgent,{agentId:e.agentId});if(!i.handled)return{status:`failed`,error:`Agent '${e.agentId}' could not be resolved for delegate-agent node '${e.id}'`};if(t.signal.aborted)return{status:`cancelled`};let a=Mr(e,n);if(a.status===`failed`)return a;let o=e.outputSchema===void 0?void 0:{schema:e.outputSchema},s=Or(e,i.data);return hr({nodeId:e.id,nodeLabel:`Delegate-agent node`,task:a.task,resolvedConfig:s,...o===void 0?{}:{outputSchema:o},unavailableRuntimeError:`Subagent runtime is not available for delegate-agent node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-agent node '${e.id}'`,cancellationLabel:`delegate-agent`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-agent`},t)}async function jr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(D.resolveRole,{roleId:e.role});if(!i.handled)return{status:`failed`,error:`Role '${e.role}' could not be resolved for delegate-role node '${e.id}'`};let a=e.outputSchema===void 0?void 0:{schema:e.outputSchema},o=M(e.prompt,R(n)),s=Dr(e,i.data);return hr({nodeId:e.id,nodeLabel:`Delegate-role node`,task:o,resolvedConfig:s,...a===void 0?{}:{outputSchema:a},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unavailableRuntimeError:`Subagent runtime is not available for delegate-role node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-role node '${e.id}'`,cancellationLabel:`delegate-role`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-role`},t)}function Mr(e,t){try{let n=R(t);return{status:`completed`,task:Nr(e.inputExpression===void 0?n:j(e.inputExpression,n))}}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`delegate-agent node '${e.id}': input expression evaluation failed: ${n}`}}}function Nr(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function Pr(e,t,n,r){try{let i=j(n,R(r));return Array.isArray(i)?i:{status:`failed`,error:`${t} node '${e}': collection expression did not resolve to an array (got ${typeof i})`}}catch(n){return{status:`failed`,error:`${t} node '${e}': collection expression evaluation failed: ${n instanceof Error?n.message:String(n)}`}}}function Fr(e,t,n){for(let r of[...e.nodes].reverse()){let e=n.getFramesByNodeId(r.id);for(let n of e)if(n.parentFrameId===t&&n.status===`completed`)return n.output}}function Ir(e,t,n){return Fr(e.body,t,n)}function Lr(e){if(e.length===0)return;let t=new Map,n=new Map;for(let r of e){n.set(r.frameId,r);let e=t.get(r.nodeId)??[];e.push(r),t.set(r.nodeId,e)}return{byNodeId:t,byFrameId:n}}const Rr=new Set([`completed`,`skipped`,`waiting`]);function B(e,t,n){let r=e?.byNodeId.get(t)??[],i=n.statuses??Rr;return r.find(e=>e.parentFrameId===n.parentFrameId&&e.branchKey===n.branchKey&&e.iteration===n.iteration&&i.has(e.status))}function V(e,t,n){let r={...e.frames,[t]:n};return{...e,frames:r,previousSteps:Wn(r),output:n.status===`completed`?n.output:e.output}}function zr(e,t){if(typeof AbortSignal.any==`function`)return AbortSignal.any([e,t]);let n=new AbortController,r=()=>n.abort();return e.addEventListener(`abort`,r,{once:!0}),t.addEventListener(`abort`,r,{once:!0}),n.signal}const Br=new Set([`completed`,`running`]);function Vr(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function Hr(e,t,n,r,i,a,o=`all-settled`){if(t.signal.aborted)return{status:`cancelled`};let s=Object.entries(e.branches);if(s.length===0)return{status:`completed`,output:Gr({},o)};let c=new AbortController,l=new AbortController,u=t.suspensionStrategy!==`wait-in-process`,d=o===`fail-fast`?zr(c.signal,l.signal):u?l.signal:void 0,f=d===void 0?t.signal:zr(t.signal,d),p=f===t.signal?t:t.withSignal(f),m=s.map(([s,c])=>Ur(s,c,e,p,n,r,i,a,{outerSignal:t.signal,pauseSignal:o===`fail-fast`||u?l.signal:void 0}));if(o===`all-settled`){let e=await Promise.all(u?m.map(e=>e.then(e=>(e.status===`paused`&&l.abort(),e))):m),t=e.find(e=>e.status===`paused`);return t===void 0?{status:`completed`,output:Gr(Kr(s,e),o)}:t}let h=await Wr(s,m,c,l);return h.type===`cancelled`?{status:`cancelled`}:h.type===`paused`?h.outcome:h.type===`failed`?{status:`failed`,error:h.error}:{status:`completed`,output:Gr(Kr(s,h.outcomes),o)}}async function Ur(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l=B(r.resumeFrames,n.id,{parentFrameId:o,branchKey:e,statuses:Br});if(l?.status===`completed`)return{status:`completed`,...l.output===void 0?{}:{output:l.output}};let u=l??r.createFrame({nodeId:n.id,nodeType:`parallel`,path:s,parentFrameId:o,branchKey:e});if(r.signal.aborted)return Vr(u,c)||await $(u,r),{status:`cancelled`};l===void 0&&await X(u,r);let d;try{d=await a(t,r,i,u.frameId,u.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(u,r,t),{status:`failed`,error:t}}switch(d.status){case`completed`:{let e=Fr(t,u.frameId,r);return await Z(u,r,e),{status:`completed`,output:e}}case`skipped`:return await Z(u,r),{status:`completed`};case`cancelled`:return Vr(u,c)||await $(u,r),{status:`cancelled`};case`paused`:return d;case`failed`:return await Q(u,r,d.error),{status:`failed`,error:d.error}}}async function Wr(e,t,n,r){let i,a,o=t.map(e=>e.then(e=>(e.status===`failed`&&i===void 0?(i=e.error,n.abort()):e.status===`paused`&&a===void 0&&(a=e,r.abort()),e),e=>{let t=e instanceof Error?e.message:String(e);return i===void 0&&(i=t,n.abort()),{status:`failed`,error:t}})),s=await Promise.all(o);return a===void 0?s.some(e=>e.status===`cancelled`)&&i===void 0?{type:`cancelled`}:i===void 0?{type:`completed`,outcomes:s}:{type:`failed`,error:i}:{type:`paused`,outcome:a}}function Gr(e,t){return{mode:t,branches:e}}function Kr(e,t){let n={};for(let r=0;r<e.length;r++){let[i]=e[r],a=t[r];n[i]=qr(a)}return n}function qr(e){switch(e.status){case`completed`:return{status:`fulfilled`,...e.output===void 0?{}:{value:e.output}};case`skipped`:return{status:`fulfilled`,value:null};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:e.pausedAtGateId,pausedAtFrameId:e.pausedAtFrameId};case`failed`:return{status:`rejected`,reason:e.error}}}const Jr=new it.default({allErrors:!0,strict:!1});function H(e,t){if(t===void 0)return{status:`ok`};try{return{status:`ok`,validator:Jr.compile(t)}}catch(t){return{status:`failed`,error:`Gate '${e}' has an invalid resumeSchema: ${t instanceof Error?t.message:String(t)}`}}}function U(e,t){return e===void 0||e(t)?{valid:!0}:{valid:!1,error:Xr(e.errors??[])}}function Yr(e,t,n){let r=H(e,t);return r.status===`failed`?{valid:!1,error:r.error}:U(r.validator,n)}function Xr(e){return e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`/`} ${e.message??`is invalid`}`).join(`; `)}function Zr(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const Qr={action:`approve`,source:`timeout`};function $r(e){return e===void 0?{}:{reason:e}}async function ei(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=Zr();o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),e.reject(`timed-out`))},r),a.push(e.promise)}try{let e=await Promise.race(a);return n.removeEventListener(`abort`,i),o!==void 0&&clearTimeout(o),{action:e.action,resumeData:e.resumeData,timedOut:!1,wasCancelled:!1,reason:e.reason}}catch(e){return o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i),e===`timed-out`?{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1}:{action:`reject`,resumeData:null,timedOut:!1,wasCancelled:!0}}}async function ti(e,t,n,r,i,a){let o={required:e.suspensionStrategy!==`wait-in-process`};if(a.timedOut){let a=Date.now();if(r.autoAction===`approve`){let s=U(i,Qr);return s.valid?(await W(e,{...r,status:`resumed`,resumeData:Qr,resolvedAt:a},o),await G(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:{resumeData:Qr}}):(await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' auto-approve timeout resume data does not match resumeSchema: ${s.error}`})}return await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}if(a.wasCancelled||e.signal.aborted)return await W(e,{...r,status:`cancelled`,resolvedAt:Date.now()},o),await G(e,t.id,n,{source:`cancelled`}),{status:`cancelled`};let s=Date.now();await W(e,{...r,status:a.action===`reject`?`rejected`:`resumed`,resumeData:a.resumeData,...$r(a.reason),resolvedAt:s},o);try{await e.bus.emit(D.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:a.resumeData}),await G(e,t.id,n,{action:a.action,source:`user`,...$r(a.reason)})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return{status:`completed`,output:{resumeData:a.resumeData}}}async function ni(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.resumeSchema??{};if(t.suspensionStrategy!==`wait-in-process`){let n=await oi(t,e,r);if(n!==void 0)return n}let a=H(e.id,e.resumeSchema);return a.status===`failed`?{status:`failed`,error:a.error}:ri(t,e,n,r,i,a.validator)}async function ri(e,t,n,r,i,a){let o=M(t.prompt,R(n)),s={executionId:e.executionId,nodeId:t.id,frameId:r,schema:i,prompt:o,status:`waiting`,autoAction:t.autoAction,timeoutMs:t.timeoutMs,createdAt:Date.now()},c=e.suspensionStrategy!==`wait-in-process`;if(await W(e,s,{required:c}),await e.updateFrame(r,{status:`waiting`},{requireFrameStorage:c}),c)return await ii(e,t,r,i,o,s.createdAt),{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:r};let l={value:!0},u=Zr(),f=e.bus.on(D.gate.respond,async n=>{let{executionId:i,gateId:o,frameId:s,action:c,resumeData:f,reason:p}=n.payload;if(i!==e.executionId||o!==t.id||s!==void 0&&s!==r){try{await n.next()}catch(e){if(e instanceof d)n.setResult({accepted:!1});else throw e}return}if(!l.value){n.setResult({accepted:!1});return}if(!U(a,f).valid){n.setResult({accepted:!1});return}l.value=!1,n.setResult({accepted:!0}),u.resolve({action:c,resumeData:f,reason:p})});await ii(e,t,r,i,o,s.createdAt);let p=await ei(u,l,e.signal,t.timeoutMs);return f(),ti(e,t,r,s,a,p)}async function ii(e,t,n,r,i,a){try{await e.bus.emit(D.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.title!==void 0&&{title:t.title},autoAction:t.autoAction,timeoutMs:t.timeoutMs,openedAt:a})}catch(e){console.error(`[GateNode] gate.suspended emit failed for '${t.id}':`,e)}}async function ai(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(P.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(P.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function oi(e,t,n){let r=await ai(e,t.id,n);if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData!==void 0){let i=Yr(t.id,r.schema,r.resumeData);if(!i.valid)return{status:`failed`,error:`Gate '${t.id}' persisted resumeData is invalid: ${i.error}`};try{await e.bus.emit(D.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:r.resumeData})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return await G(e,t.id,n,{action:r.status===`rejected`?`reject`:`approve`,source:`user`,...$r(r.reason)}),{status:`completed`,output:{resumeData:r.resumeData}}}if(r?.status===`waiting`){if(r.timeoutMs!==null&&Date.now()>=r.createdAt+r.timeoutMs){let i=H(t.id,r.schema);return i.status===`failed`?{status:`failed`,error:i.error}:ti(e,t,n,r,i.validator,{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1})}return{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}}if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData===void 0)return{status:`failed`,error:`Gate '${t.id}' has status '${r.status}' but resumeData is missing — cannot reconstruct output`};if(r!==null)return{status:`failed`,error:`Gate '${t.id}' cannot resume from status '${r.status}'`}}async function W(e,t,n={}){try{n.required===!0?await e.bus.request(P.setGateInstance,{gate:t}):await e.bus.requestOptional(P.setGateInstance,{gate:t})}catch(e){if(n.required===!0)throw e;console.warn(`[GateNode] Failed to upsert gate instance for '${t.nodeId}':`,e)}}async function G(e,t,n,r){try{await e.bus.emit(D.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[GateNode] gate.resolved emit failed for '${t}':`,e)}}function K(e){return{status:`fulfilled`,...e===void 0?{}:{value:e}}}const si=new Set([`completed`,`running`]);function ci(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function li(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Pr(e.id,`iterate`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:pi([])};let c=await ui(s,e,t,n,r,i,a,e.concurrency!==void 0&&e.concurrency>0?e.concurrency:0);if(t.signal.aborted&&c.every(e=>e.status===`cancelled`))return{status:`cancelled`};let l=c.find(e=>e.status===`paused`);return l===void 0?{status:`completed`,output:pi(c)}:{status:`paused`,pausedAtGateId:l.pausedAtGateId,pausedAtFrameId:l.pausedAtFrameId}}async function ui(e,t,n,r,i,a,o,s){let c=new AbortController,l=n.suspensionStrategy!==`wait-in-process`,u=l?zr(n.signal,c.signal):n.signal,d=u===n.signal?n:n.withSignal(u),f={outerSignal:n.signal,...l?{pauseSignal:c.signal}:{}};if(s===0){let n=e.map((e,n)=>fi(e,n,t,d,r,i,a,o,f));return Promise.all(l?n.map(e=>di(e,c)):n)}let p=Array(e.length);for(let n=0;n<e.length;n+=s){if(d.signal.aborted){for(let t=n;t<e.length;t++)p[t]={status:`cancelled`};break}let u=Math.min(n+s,e.length),m=[];for(let s=n;s<u;s++)m.push(fi(e[s],s,t,d,r,i,a,o,f));let h=await Promise.all(l?m.map(e=>di(e,c)):m);for(let e=0;e<h.length;e++)p[n+e]=h[e];if(h.some(e=>e.status===`paused`)){for(let t=u;t<e.length;t++)p[t]={status:`cancelled`};break}}return p}function di(e,t){return e.then(e=>(e.status===`paused`&&t.abort(),e))}async function fi(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l={...i,item:e,index:t},u=B(r.resumeFrames,n.id,{parentFrameId:o,iteration:t,statuses:si});if(u?.status===`completed`)return K(u.output);let d=u??r.createFrame({nodeId:n.id,nodeType:`iterate`,path:s,parentFrameId:o,iteration:t});if(r.signal.aborted)return ci(d,c)||await $(d,r),{status:`cancelled`};u===void 0&&await X(d,r);let f;try{f=await a(n.body,r,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,r,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=Ir(n,d.frameId,r);return await Z(d,r,e),K(e)}case`skipped`:return await Z(d,r),K();case`cancelled`:return ci(d,c)||await $(d,r),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,r,f.error),{status:`rejected`,reason:f.error}}}function pi(e){return{items:e}}const mi=new Set([`completed`,`running`]);async function hi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Pr(e.id,`iterate-chain`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:_i([])};let c=[],l;for(let o=0;o<s.length;o++){if(t.signal.aborted)return{status:`cancelled`};let u=s[o],d=await gi(u,o,l,e,t,n,r,i,a);switch(c.push(d),d.status){case`fulfilled`:l=d.value;break;case`rejected`:return{status:`failed`,error:d.reason};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:d.pausedAtGateId,pausedAtFrameId:d.pausedAtFrameId}}}return{status:`completed`,output:_i(c)}}async function gi(e,t,n,r,i,a,o,s,c){if(i.signal.aborted)return{status:`cancelled`};let l={...a,item:e,index:t,...n!==void 0&&{previous:n}},u=B(i.resumeFrames,r.id,{parentFrameId:s,iteration:t,statuses:mi});if(u?.status===`completed`)return K(u.output);let d=u??i.createFrame({nodeId:r.id,nodeType:`iterate-chain`,path:c,parentFrameId:s,iteration:t});if(i.signal.aborted)return await $(d,i),{status:`cancelled`};u===void 0&&await X(d,i);let f;try{f=await o(r.body,i,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,i,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=Ir(r,d.frameId,i);return await Z(d,i,e),K(e)}case`skipped`:return await Z(d,i),K();case`cancelled`:return await $(d,i),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,i,f.error),{status:`rejected`,reason:f.error}}}function _i(e){return{items:e}}async function vi(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=new Promise((e,a)=>{o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),a(`timed-out`))},r)});a.push(e)}try{return{status:`resolved`,value:await Promise.race(a)}}catch(e){if(e===`timed-out`)return{status:`timed-out`};if(e===`cancelled`)return{status:`cancelled`};throw e}finally{o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i)}}const yi={action:`approve`,source:`timeout`};async function q(e,t,n){try{n?await e.bus.request(P.setGateInstance,{gate:t}):await e.bus.requestOptional(P.setGateInstance,{gate:t})}catch(e){if(n)throw e;console.warn(`[LoopNode] Failed to upsert escalation gate for '${t.nodeId}':`,e)}}async function bi(e,t,n,r,i,a){try{await e.bus.emit(D.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.gate.escalation?.title!==void 0&&{title:t.gate.escalation.title},autoAction:t.gate.escalation?.autoAction??`reject`,timeoutMs:t.gate.escalation?.timeoutMs??null,openedAt:a})}catch(e){console.error(`[LoopNode] gate.suspended emit failed for '${t.id}':`,e)}}async function J(e,t,n,r){try{await e.bus.emit(D.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[LoopNode] gate.resolved emit failed for '${t}':`,e)}}function xi(e){let{node:t,ctx:n,parentFrameId:r,validator:i,pending:a,deferred:o}=e;return n.bus.on(D.gate.respond,async e=>{let{executionId:s,gateId:c,frameId:l,action:u,resumeData:f,reason:p}=e.payload;if(s!==n.executionId||c!==t.id||l!==void 0&&l!==r){try{await e.next()}catch(t){if(t instanceof d)e.setResult({accepted:!1});else throw t}return}if(!a.value){e.setResult({accepted:!1});return}if(!U(i,f).valid){e.setResult({accepted:!1});return}a.value=!1,e.setResult({accepted:!0}),o.resolve({action:u,resumeData:f,reason:p})})}async function Si(e,t,n,r,i,a,o){let s=H(e.id,e.gate.escalation?.resumeSchema);if(s.status===`failed`)return{status:`failed`,error:s.error};let c={value:!0},l=Zr(),u=xi({node:e,ctx:t,parentFrameId:n,validator:s.validator,pending:c,deferred:l});await bi(t,e,n,r.schema,r.prompt??``,r.createdAt);try{let s=await vi(l,c,t.signal,r.timeoutMs);return s.status===`timed-out`?Ti(t,e,n,r,i,a,o,!1):s.status===`resolved`?Ci(t,e.id,n,r,s.value,i,a,o):(await q(t,{...r,status:`cancelled`,resolvedAt:Date.now()},!1),await J(t,e.id,n,{source:`cancelled`}),{status:`cancelled`})}finally{u()}}async function Ci(e,t,n,r,i,a,o,s){let c=Date.now(),l=i.action===`reject`?`rejected`:`resumed`;await q(e,{...r,status:l,resumeData:i.resumeData,...i.reason===void 0?{}:{reason:i.reason},resolvedAt:c},!1);try{await e.bus.emit(D.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t,resumeData:i.resumeData}),await J(e,t,n,{action:i.action,source:`user`,...i.reason===void 0?{}:{reason:i.reason}})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t}':`,e)}return{status:`completed`,output:Y(`escalate`,o,a,s,i.resumeData)}}async function wi(e,t,n,r,i,a,o){let s=e.gate.escalation;if(s===void 0)return{status:`completed`,output:Y(`escalate`,a,i,o)};let c=M(s.prompt,R(n)),l=s.resumeSchema??{},u={executionId:t.executionId,nodeId:e.id,frameId:r,schema:l,prompt:c,status:`waiting`,autoAction:s.autoAction??`reject`,timeoutMs:s.timeoutMs??null,createdAt:Date.now()},d=t.suspensionStrategy!==`wait-in-process`;return await q(t,u,d),await t.updateFrame(r,{status:`waiting`},{requireFrameStorage:d}),d?(await bi(t,e,r,l,c,u.createdAt),{status:`paused`,pausedAtGateId:e.id,pausedAtFrameId:r}):Si(e,t,r,u,i,a,o)}async function Ti(e,t,n,r,i,a,o,s=!0){let c=Date.now();if(r.autoAction===`approve`){let l=Yr(t.id,r.schema,yi);return l.valid?(await q(e,{...r,status:`resumed`,resumeData:yi,resolvedAt:c},s),await J(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:Y(`escalate`,a,i,o,yi)}):(await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate auto-approve timeout resume data does not match resumeSchema: ${l.error}`})}return await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}async function Ei(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(P.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(P.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function Di(e,t,n,r,i,a){let o=await Ei(e,t.id,n);if(o!==null){if((o.status===`resumed`||o.status===`rejected`)&&o.resumeData!==void 0){let s=Yr(t.id,o.schema,o.resumeData);if(!s.valid)return{status:`failed`,error:`Loop '${t.id}' escalation gate resumeData is invalid: ${s.error}`};try{await e.bus.emit(D.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:o.resumeData})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t.id}':`,e)}return await J(e,t.id,n,{action:o.status===`rejected`?`reject`:`approve`,source:`user`,...o.reason===void 0?{}:{reason:o.reason}}),{status:`completed`,output:Y(`escalate`,i,r,a,o.resumeData)}}return o.status===`waiting`?o.timeoutMs!==null&&Date.now()>=o.createdAt+o.timeoutMs?Ti(e,t,n,o,r,i,a):{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}:(o.status===`resumed`||o.status===`rejected`)&&o.resumeData===void 0?{status:`failed`,error:`Loop '${t.id}' escalation gate has status '${o.status}' but resumeData is missing`}:{status:`failed`,error:`Loop '${t.id}' escalation gate cannot resume from status '${o.status}'`}}}const Oi=new Set([`completed`,`running`]);async function ki(e,t,n,r,i,a,o){let s=B(n.resumeFrames,e.id,{parentFrameId:a,iteration:t,statuses:Oi});if(s?.status===`completed`)return{terminal:!1,output:s.output??null,replayed:!0,gateExpressionCtx:ji(e,n,r,s.frameId)};let c=s??n.createFrame({nodeId:e.id,nodeType:`loop`,path:o,parentFrameId:a,iteration:t});if(n.signal.aborted)return await $(c,n),{terminal:!0,outcome:{status:`cancelled`}};s===void 0&&await X(c,n);let l=await Mi(e,c,n,r,i);if(l!==void 0)return{terminal:!0,outcome:l};let u=Fr(e.body,c.frameId,n)??null;return await Z(c,n,u),{terminal:!1,output:u,replayed:!1,gateExpressionCtx:ji(e,n,r,c.frameId)}}function Ai(e,t,n,r){return B(n.resumeFrames,e.id,{parentFrameId:r,iteration:t,statuses:Oi})!==void 0}function ji(e,t,n,r){let i=n;for(let n of e.body.nodes){let e=t.getFramesByNodeId(n.id).find(e=>e.parentFrameId===r&&e.status===`completed`);e!==void 0&&(i=V(i,n.id,{status:`completed`,...e.output===void 0?{}:{output:e.output}}))}return i}async function Mi(e,t,n,r,i){let a;try{a=await i(e.body,n,r,t.frameId,t.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(t,n,r),{status:`failed`,error:r}}switch(a.status){case`failed`:return await Q(t,n,a.error),{status:`failed`,error:a.error};case`cancelled`:return await $(t,n),{status:`cancelled`};case`paused`:return a;case`skipped`:case`completed`:return}}function Ni(e,t,n,r,i){let a=null;if(e.gate.input!==void 0)try{let t=R(r);a=j(e.gate.input,t)}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`Loop node '${e.id}': gate input expression evaluation failed: ${n}`}}let o=e.gate.config??null,s=i(a,o,{executionId:n.executionId,nodeId:e.id,round:t+1,maxRounds:e.maxRounds});return s.kind===`loop`&&t+1>=e.maxRounds?{kind:`escalate`,reason:`max_rounds_reached`}:s}async function Pi(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=t.runtimeLoopGates.get(e.gate.handler);if(o===void 0)return{status:`failed`,error:`Loop node '${e.id}': no gate handler registered for '${e.gate.handler}'`};let s=[],c=0;for(;;){if(t.signal.aborted)return{status:`cancelled`};let l=await ki(e,c,t,n,r,i,a);if(l.terminal)return l.outcome;if(s.push(l.output),l.replayed){if(c++,Ai(e,c,t,i))continue;if(e.gate.escalation!==void 0&&t.suspensionStrategy!==`wait-in-process`){let n=await Di(t,e,i,{kind:`escalate`,reason:`resumed_from_gate`},c,s);if(n!==void 0)return n}continue}let u=Ni(e,c,t,l.gateExpressionCtx,o);if(`status`in u)return u;if(u.kind===`pass`)return{status:`completed`,output:Y(`pass`,c+1,u,s)};if(u.kind===`escalate`)return e.gate.escalation===void 0?{status:`completed`,output:Y(`escalate`,c+1,u,s)}:wi(e,t,n,i,u,c+1,s);c++}}function Y(e,t,n,r,i){return{outcome:e,rounds:t,lastGateOutcome:n,bodyOutputs:r,...i===void 0?{}:{resumeData:i}}}async function X(e,t){e.status=`running`,e.startedAt=Date.now(),await t.persistFrame(e),await t.emitFrameStarted(e)}async function Z(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`completed`,e.output=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameCompleted(e,i)}async function Q(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`failed`,e.error=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameFailed(e,n,i)}async function Fi(e,t){e.status=`skipped`,e.completedAt=Date.now(),await t.persistFrame(e)}async function $(e,t){e.status=`cancelled`,e.completedAt=Date.now(),await t.persistFrame(e)}function Ii(e,t){return!!j(e,R(t))}async function Li(e,t,n,r,i,a=[]){if(t.signal.aborted)return{status:`cancelled`};switch(e.type){case`sequence`:return r(e,t,n,i,a);case`station`:return wr(e,t,n,i);case`delegate-agent`:return Ar(e,t,n,i);case`delegate-role`:return jr(e,t,n,i);case`parallel`:return Hr(e,t,n,r,i??``,a,e.mode??`all-settled`);case`gate`:return ni(e,t,n,i??``);case`iterate`:return li(e,t,n,r,i??``,a);case`iterate-chain`:return hi(e,t,n,r,i??``,a);case`loop`:return Pi(e,t,n,r,i??``,a);default:return{status:`failed`,error:`Unknown node type: ${String(e.type)}`}}}const Ri=new Set([`completed`,`skipped`,`waiting`,`running`]);function zi(e){return e.type===`parallel`||e.type===`iterate`||e.type===`iterate-chain`||e.type===`loop`}function Bi(e,t,n){return B(e.resumeFrames,t.id,{parentFrameId:n,...zi(t)?{statuses:Ri}:{}})}function Vi(e,t,n){if(n?.status===`completed`)return V(e,t.id,{status:`completed`,...n.output===void 0?{}:{output:n.output}});if(n?.status===`skipped`)return V(e,t.id,{status:`skipped`})}async function Hi(e,t,n,r,i,a,o){try{return{result:Ii(e,i)}}catch(e){let i=e instanceof Error?e.message:String(e);return await Q(r.createFrame({nodeId:n.id,nodeType:n.type,path:a,parentFrameId:o}),r,`'${t}' condition evaluation failed: ${i}`),{status:`failed`,error:`'${t}' condition evaluation failed for '${n.id}': ${i}`}}}async function Ui(e,t,n,r,i,a){let o=a??t.createFrame({nodeId:e.id,nodeType:e.type,path:r,parentFrameId:i});if(t.signal.aborted)return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};a===void 0&&await X(o,t);let s;try{s=await Li(e,t,n,Wi,o.frameId,o.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(o,t,r),{updatedCtx:n,outcome:{status:`failed`,error:r}}}switch(s.status){case`completed`:return await Z(o,t,s.output),{updatedCtx:V(n,e.id,{status:`completed`,output:s.output})};case`skipped`:return await Fi(o,t),{updatedCtx:V(n,e.id,{status:`skipped`})};case`cancelled`:return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};case`paused`:return{updatedCtx:n,outcome:s};case`failed`:return await Q(o,t,s.error),{updatedCtx:n,outcome:{status:`failed`,error:s.error}}}}async function Wi(e,t,n,r,i=[]){let a=n;for(let n of e.nodes){if(t.signal.aborted)return{status:`cancelled`};let e=Bi(t,n,r),o=Vi(a,n,e);if(o!==void 0){a=o;continue}if(n.when!==void 0){let e=await Hi(n.when,`when`,n,t,a,i,r);if(`status`in e)return e;if(!e.result){await Fi(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=V(a,n.id,{status:`skipped`});continue}}if(n.skip!==void 0){let e=await Hi(n.skip,`skip`,n,t,a,i,r);if(`status`in e)return e;if(e.result){await Fi(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=V(a,n.id,{status:`skipped`});continue}}let s=e?.status===`waiting`&&n.type===`gate`||(e?.status===`running`||e?.status===`waiting`)&&zi(n)?e:void 0,{updatedCtx:c,outcome:l}=await Ui(n,t,a,i,r,s);if(a=c,l!==void 0)return l}return{status:`completed`}}function Gi(e,t){let n=new Set;if(_e(e.root,{enter(e){if(e.type!==`loop`)return;let r=e;t.has(r.gate.handler)||n.add(r.gate.handler)}}),n.size>0)throw Error(`Workflow '${e.id}' is missing loop gate handler(s): ${[...n].join(`, `)}`)}const Ki=new Set;async function qi(e,t,n){if((await e.requestOptional(P.getRunContext,{executionId:t.executionId})).handled){await Ji(e,t.executionId,n);return}await e.request(D.bootstrapAuthorityState,{executionId:t.executionId,terminalAuthority:`authority`,definition:n})}async function Ji(e,t,n){return await Yi(e,t,n)!==void 0}async function Yi(e,t,n){let r=await e.request(P.getRunContext,{executionId:t});if(r.runContext===null)return;if(r.runContext.executionId!==t)throw Error(`Authority bootstrap identity mismatch for '${t}'`);let i=r.runContext.definitionSnapshot;if(i===void 0){await e.request(P.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`}});return}if(!Xi(i,n))throw Error(`Authority bootstrap definition mismatch for '${t}'`);let a=i;return await e.request(P.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`,definitionSnapshot:a},initialState:Dt(a)}),a}function Xi(e,t){return i(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t)))}function Zi(e,t){return e.on(D.bootstrapAuthorityState,async n=>{if(!ot(n,n.payload.executionId))throw Error(`authority state bootstrap is execution-bound`);let r=await Yi(e,n.payload.executionId,n.payload.definition);if(r!==void 0){t?.(n.payload.executionId,r);for(let t of Ki)await t({bus:e,executionId:n.payload.executionId,definition:r,transport:n.transport})}n.setResult({persisted:r!==void 0})})}export{Ae as $,I as A,at as B,dn as C,tn as D,sn as E,Nt as F,Me as G,P as H,Et as I,Le as J,je as K,ht as L,Ft as M,Rt as N,Yt as O,Ot as P,Ze as Q,st as R,un as S,mn as T,ke as U,rt as V,Oe as W,Ye as X,Xe as Y,Qe as Z,gn as _,pe as _t,Zr as a,Ie as at,_n as b,rr as c,Ge as ct,wn as d,Je as dt,N as et,Ln as f,qe as ft,Sn as g,Te as gt,Cn as h,Ee as ht,Wi as i,ze as it,zt as j,Ut as k,Xn as l,We as lt,Rn as m,Ve as mt,Zi as n,Ne as nt,Yr as o,Fe as ot,Un as p,He as pt,Re as q,Gi as r,Be as rt,Lr as s,Ke as st,qi as t,Pe as tt,Gn as u,Ue as ut,vn as v,D as vt,pn as w,ln as x,yn as y,ot as z};
@@ -1 +0,0 @@
1
- import{n as e}from"./definition-BH4QLGLI.mjs";import{n as t,t as n}from"./version-BYeVh1pI.mjs";import{z as r}from"zod";const i=r.object({entrypoint:r.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),a=r.object({endpoint:r.string().url().optional()}),o=r.union([e,r.object({anthropic:a.optional(),openai:a.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),s=r.object({id:r.string().min(1),version:t,binaryVersion:t.optional()}),c=r.object({name:r.string().min(1),displayName:r.string().min(1).optional(),description:r.string().optional(),clients:r.array(s).readonly().optional(),protocols:r.array(o).readonly(),defaultProvider:r.string().min(1).optional()}),l=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional(),binary:r.object({name:r.string().min(1),managed:r.boolean().optional(),version:n.optional()}).strict().refine(e=>e.managed!==!0||e.version!==void 0,{message:`binary.version is required when binary.managed is true`,path:[`version`]}).refine(e=>e.version===void 0||e.managed===!0,{message:`binary.managed must be true when binary.version is provided`,path:[`managed`]}).optional()}).strict(),u=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional()}),d=r.object({prefix:r.string().min(1),description:r.string().optional(),stage:r.enum([`gather`,`transform`,`action`]).optional()}),f=r.object({adapterName:r.string().min(1),displayName:r.string().min(1),logFilePattern:r.string().min(1).optional()}),p=r.object({id:r.string().min(1),label:r.string().min(1),description:r.string().optional(),icon:r.string().min(1).optional(),selectionMode:r.enum([`single`,`multi`]),messageRoles:r.array(r.enum([`user`,`assistant`])).readonly().optional()}),m=r.enum([`beforeCreate`,`beforeRevise`,`afterCreate`,`afterRevise`,`afterStatusChanged`,`afterObservationAdded`]),h=r.object({id:r.string().min(1),event:m,kind:r.string().min(1).optional(),schemaVersion:r.string().min(1).optional()}),g=r.object({tiles:r.boolean().optional(),widgets:r.boolean().optional(),pages:r.boolean().optional(),routes:r.boolean().optional()}),_={adapters:`adapter`,clients:`client`,providers:`provider`,hashTriggers:`hash trigger`,logImporters:`log importer`,sessionEventActions:`session event action`,artifactLifecycleHooks:`artifact lifecycle hook`};function v(e,t,n){e.addIssue({code:r.ZodIssueCode.custom,path:[t],message:`Duplicate ${_[t]} contribution identifier "${n}"`})}function y(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const b=r.object({adapters:r.array(c).readonly().optional(),clients:r.array(l).readonly().optional(),providers:r.array(u).readonly().optional(),hashTriggers:r.array(d).readonly().optional(),logImporters:r.array(f).readonly().optional(),sessionEventActions:r.array(p).readonly().optional(),artifactLifecycleHooks:r.array(h).readonly().optional(),create:r.boolean().optional(),tools:r.boolean().optional(),bootstrap:r.boolean().optional(),namespace:r.boolean().optional(),configSchema:r.boolean().optional(),uiConfig:r.boolean().optional(),ui:g.optional()}).strict().superRefine((e,t)=>{for(let n of y(e.adapters,e=>e.name))v(t,`adapters`,n);for(let n of y(e.clients,e=>e.id))v(t,`clients`,n);for(let n of y(e.providers,e=>e.id))v(t,`providers`,n);for(let n of y(e.hashTriggers,e=>e.prefix))v(t,`hashTriggers`,n);for(let n of y(e.logImporters,e=>e.adapterName))v(t,`logImporters`,n);for(let n of y(e.sessionEventActions,e=>e.id))v(t,`sessionEventActions`,n);for(let n of y(e.artifactLifecycleHooks,e=>e.id))v(t,`artifactLifecycleHooks`,n)}),x=r.string().trim().min(1).transform(e=>e),S=r.object({name:r.string().min(1),required:r.boolean().optional()}),C=r.object({id:r.string(),style:r.enum([`tray-popover`,`utility`,`panel`]),width:r.number().optional(),height:r.number().optional(),singleton:r.boolean().optional(),params:r.array(S).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[i,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:r.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,i,`name`]})}}),w=r.object({label:r.string(),section:r.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:r.string().optional(),action:r.string().optional()}),T=r.object({name:r.string().min(1),description:r.string(),required:r.boolean().optional(),positional:r.boolean().optional(),short:r.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:r.enum([`string`,`boolean`,`number`]).optional()}),E=r.object({name:r.string().min(1),description:r.string(),args:r.array(T).readonly().optional()}),D=r.object({name:r.string().min(1),description:r.string(),subcommands:r.array(E).readonly().optional(),hasInteractive:r.boolean().optional(),canProvideBus:r.boolean().optional()}),O=[`sqlite`,`postgres`];function k(e){if(e!==void 0)return typeof e==`string`?e:e.sqlite??Object.values(e).find(e=>e!==void 0)}function A(e){if(e===void 0)return[];if(typeof e==`string`)return[e];let t=new Set;for(let n of Object.values(e))n!==void 0&&t.add(n);return[...t]}const j=r.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),M=r.object({migrations:r.union([j,r.object({sqlite:j.optional(),postgres:j.optional()}).strict().refine(e=>Object.values(e).some(e=>e!==void 0),`Per-dialect storage.migrations must declare at least one chain`)]).optional(),migrationSourceId:r.string().min(1).optional()}),N=r.object({type:r.literal(`extension`),name:r.string().min(1),version:t,optional:r.boolean().optional()});function P(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const F=r.discriminatedUnion(`type`,[r.object({type:r.literal(`host`),id:r.string().min(1)}),r.object({type:r.literal(`capability`),id:r.string().min(1),version:t.optional()})]),I=r.object({name:r.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:r.string().min(1),version:n,surface:r.enum([`interactive`,`headless`,`any`]).optional(),dependencies:r.array(N).readonly().optional(),requires:r.array(F).readonly().optional(),provides:r.array(x).readonly().optional(),windows:r.array(C).readonly().optional(),tray:w.optional(),cli:D.optional(),storage:M.optional(),browser:i.optional(),contributions:b.optional()});function L(e){return Object.freeze({name:e})}const R=r.object({command:r.string().min(1),args:r.array(r.string()).optional(),env:r.record(r.string(),r.string()).optional(),healthTimeoutMs:r.number().int().positive().optional(),shutdownTimeoutMs:r.number().int().positive().optional()}),z=r.enum([`none`,`on-crash`,`always`]),B=R.extend({restartPolicy:z.optional()}),V=r.discriminatedUnion(`type`,[B.extend({type:r.literal(`bus-stdio`)}),B.extend({type:r.literal(`bus-websocket`)}),R.extend({type:r.literal(`mcp-stdio`)})]);function H(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const U=r.union([r.literal(!0),r.string().min(1).refine(H,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),W=r.object({server:U.optional(),browser:U.optional(),cli:U.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function G(e){return e.execution===`detached`}const K=I.extend({version:n,makaio:r.object({framework:t}).strict().readonly(),entrypoints:W.optional(),execution:r.enum([`embedded`,`detached`]).optional(),transport:V.optional(),prebundleDependencies:r.array(r.string().regex(/\S/,`prebundleDependencies entries must not be blank`)).readonly().optional(),config:r.object({defaults:r.record(r.string(),r.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.prebundleDependencies!==void 0&&e.entrypoints?.browser===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`prebundleDependencies requires a browser entrypoint`,path:[`prebundleDependencies`]}),e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function q(e){return e}function J(e){return q(K.parse(e))}function Y(e){let t=K.safeParse(e);return t.success?{success:!0,data:q(t.data)}:t}const X=r.discriminatedUnion(`kind`,[r.object({kind:r.literal(`configure-integration`),clientId:r.string().min(1),bundle:r.string().min(1)}),r.object({kind:r.literal(`install-extension`),extensionName:r.string().min(1)}),r.object({kind:r.literal(`open-url`),url:r.string().url()}),r.object({kind:r.literal(`run-command`),command:r.string().min(1)})]),Z=r.enum([`info`,`recommended`,`degraded`]),Q=r.object({severity:Z,title:r.string().min(1),message:r.string().min(1),action:X.optional()});function $(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const ee=r.object({extensionName:r.string().min(1),warnings:r.array(Q)});function te(e,t){return e.parse(t??{})}function ne(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{s as A,u as B,w as C,P as D,A as E,b as F,g as H,d as I,f as L,m as M,h as N,k as O,l as P,a as R,M as S,S as T,i as U,p as V,E as _,Q as a,F as b,V as c,G as d,J as f,D as g,T as h,ee as i,c as j,x as k,K as l,L as m,te as n,Z as o,Y as p,X as r,$ as s,ne as t,W as u,N as v,C as w,O as x,I as y,o as z};