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

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 (391) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/2020-Bl3Yx3In.mjs +1 -0
  3. package/dist/adapters/config/index.d.mts +1 -1
  4. package/dist/adapters/config/index.mjs +1 -1
  5. package/dist/adapters/index.d.mts +2 -2
  6. package/dist/adapters/index.mjs +6 -6
  7. package/dist/adapters/node.d.mts +1 -1
  8. package/dist/adapters/node.mjs +1 -1
  9. package/dist/artifact-DtmJR46g.mjs +1 -0
  10. package/dist/{attempt-record-codec-CqKq0NIB.mjs → attempt-record-codec-6jpayBMY.mjs} +1 -1
  11. package/dist/authority-state-bootstrap-DnwkMieA.mjs +1 -0
  12. package/dist/bus/index.mjs +1 -1
  13. package/dist/{capabilities-DGqMG9M3.mjs → capabilities-BhJ3wzI8.mjs} +1 -1
  14. package/dist/clients/index.d.mts +1 -1
  15. package/dist/clients/index.mjs +1 -1
  16. package/dist/clients/managed-install.d.mts +1 -1
  17. package/dist/clients/managed-install.mjs +1 -1
  18. package/dist/code-execution/worker-entry.d.mts +1 -1
  19. package/dist/code-execution/worker-entry.mjs +1 -1
  20. package/dist/code-execution-B9wr0b972.mjs +1 -0
  21. package/dist/{code-execution-Mo1jztUH.mjs → code-execution-DRCzkGzO.mjs} +1 -1
  22. package/dist/contracts/adapter/index.d.mts +2 -2
  23. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  24. package/dist/contracts/artifact/index.d.mts +3 -3
  25. package/dist/contracts/artifact/index.mjs +1 -1
  26. package/dist/contracts/auth/index.d.mts +2 -2
  27. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  28. package/dist/contracts/canonical-model/index.d.mts +1 -1
  29. package/dist/contracts/capabilities/index.d.mts +1 -1
  30. package/dist/contracts/capabilities/index.mjs +1 -1
  31. package/dist/contracts/client/index.d.mts +2 -2
  32. package/dist/contracts/code-execution/index.d.mts +1 -1
  33. package/dist/contracts/common/index.d.mts +1 -1
  34. package/dist/contracts/config/index.d.mts +1 -1
  35. package/dist/contracts/extension/index.d.mts +5 -5
  36. package/dist/contracts/extension/index.mjs +1 -1
  37. package/dist/contracts/facet/index.d.mts +1 -1
  38. package/dist/contracts/harness/index.d.mts +1 -1
  39. package/dist/contracts/host/index.d.mts +1 -1
  40. package/dist/contracts/index.d.mts +104 -104
  41. package/dist/contracts/index.mjs +1 -1
  42. package/dist/contracts/materialization/index.d.mts +2 -2
  43. package/dist/contracts/materialization/index.mjs +1 -1
  44. package/dist/contracts/model-registry/index.d.mts +1 -1
  45. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  46. package/dist/contracts/platform/index.d.mts +1 -1
  47. package/dist/contracts/provider/index.d.mts +2 -2
  48. package/dist/contracts/reaction/index.d.mts +1 -1
  49. package/dist/contracts/session/index.d.mts +2 -2
  50. package/dist/contracts/shared/index.d.mts +2 -2
  51. package/dist/contracts/skill/index.d.mts +1 -1
  52. package/dist/contracts/telemetry/index.d.mts +1 -1
  53. package/dist/contracts/timeout/index.d.mts +1 -1
  54. package/dist/contracts/variant/index.d.mts +1 -1
  55. package/dist/contracts/worker/index.d.mts +1 -1
  56. package/dist/contracts/worker/index.mjs +1 -1
  57. package/dist/contracts/workflow/index.d.mts +2 -2
  58. package/dist/contracts/workflow/index.mjs +1 -1
  59. package/dist/{contribution-BoTMoHVB.d.mts → contribution-B4t0OXKs.d.mts} +2 -2
  60. package/dist/{definition-BgY763Q4.d.mts → definition-Bs5hzhsT.d.mts} +1 -1
  61. package/dist/{detached-extension-handle-B9c_6Pcb.mjs → detached-extension-handle-CgJiXaqv.mjs} +1 -1
  62. package/dist/dist-CfANkKSb.mjs +1 -0
  63. package/dist/{execution-attempt-owner-recovery-BNERIDH0.mjs → execution-attempt-owner-recovery-CdH04iwP.mjs} +1 -1
  64. package/dist/{execution-attempt-repository-CtFZfBfp.d.mts → execution-attempt-repository-dE889kHj.d.mts} +553 -155
  65. package/dist/{extension-C4lFc8-j.mjs → extension-C1CwxkCN.mjs} +1 -1
  66. package/dist/{filesystem-service-DGqU-6x-.mjs → filesystem-service-yB8KhUGz.mjs} +1 -1
  67. package/dist/framework-packages-B3SQPHD7.mjs +1 -0
  68. package/dist/git/index.mjs +1 -1
  69. package/dist/{globby-BT0rrriG.mjs → globby-z2SR0jRo.mjs} +1 -1
  70. package/dist/{hook-responses-BSCAdJ3i.d.mts → hook-responses-Cs8A07ZP.d.mts} +1 -1
  71. package/dist/{index-LwOw7ZLk2.d.mts → index-Aomg_qFA2.d.mts} +164 -32
  72. package/dist/{index-RpG4EP3u.d.mts → index-B6aoVzdA.d.mts} +1 -1
  73. package/dist/{index-BVRQOZbm.d.mts → index-BHZlMm_I.d.mts} +1 -1
  74. package/dist/{index-BkY6zO7p.d.mts → index-BQv9mUzn.d.mts} +2 -1
  75. package/dist/{index-oucWFlFP2.d.mts → index-B_rFtKIO2.d.mts} +12 -12
  76. package/dist/{index-D0DfEO45.d.mts → index-BfXf_CcM.d.mts} +14 -16
  77. package/dist/{index-DIYgFhTZ2.d.mts → index-BgY_UzH82.d.mts} +4 -4
  78. package/dist/{index-BZtasAZP.d.mts → index-BjcJH3I-.d.mts} +1 -1
  79. package/dist/{index-nPpqnP7P.d.mts → index-BtC1JP5D.d.mts} +1 -1
  80. package/dist/{index-PTp68NH1.d.mts → index-C50sVXO7.d.mts} +780 -66
  81. package/dist/{index-CYwbfa0_.d.mts → index-CKvOECeR.d.mts} +2 -2
  82. package/dist/{index-DJ0Muy2s.d.mts → index-CRQ2U0jE.d.mts} +9 -9
  83. package/dist/{index-BZlmWCcW.d.mts → index-CmAJx-cX.d.mts} +3 -3
  84. package/dist/{index-F6hV4tWI.d.mts → index-CtlurrJF.d.mts} +98 -44
  85. package/dist/{index-Cau0jTTM.d.mts → index-D3-21gUP.d.mts} +1 -1
  86. package/dist/{index-CQtttPGm.d.mts → index-D7j6v0-L.d.mts} +1 -1
  87. package/dist/{index-mylsCg6V2.d.mts → index-DI-1HK7v2.d.mts} +1 -1
  88. package/dist/{index-BdbYIlDL.d.mts → index-DRryNq7D.d.mts} +13 -13
  89. package/dist/{index-R2BZejEz.d.mts → index-DfYMmJDZ.d.mts} +1963 -408
  90. package/dist/{index-CoGo6HFE.d.mts → index-DzeUtJtE.d.mts} +8 -8
  91. package/dist/{index-CYmQt2lF.d.mts → index-KZ4YllPp.d.mts} +81 -81
  92. package/dist/{index-C_OLvAr_.d.mts → index-ZEQDAT9K.d.mts} +1 -1
  93. package/dist/{index-dL0Oet1j.d.mts → index-fzrPfhS0.d.mts} +1 -1
  94. package/dist/{index-CDLHgV7v.d.mts → index-jXU4dntl.d.mts} +16 -16
  95. package/dist/{index-BcTwLu9C2.d.mts → index-ksNVQHeY2.d.mts} +8 -8
  96. package/dist/kernel/cli/index.d.mts +2 -2
  97. package/dist/kernel/cli/register.d.mts +1 -1
  98. package/dist/kernel/extension/index.d.mts +1 -1
  99. package/dist/kernel/index.d.mts +5 -5
  100. package/dist/kernel/namespace/index.d.mts +1 -1
  101. package/dist/kernel/observability/index.d.mts +1 -1
  102. package/dist/kernel/providers/index.d.mts +1 -1
  103. package/dist/kernel/window/index.d.mts +1 -1
  104. package/dist/kind-registration-DggkrLkv.mjs +1 -0
  105. package/dist/{lib-hwdGyO-m.mjs → lib-0MqNtDuH.mjs} +5 -5
  106. package/dist/{lib-B8Yv4IY-.mjs → lib-dlyJT26K.mjs} +1 -1
  107. package/dist/{load-extensions-CNT2Nd9h.mjs → load-extensions-BHTj3d_P.mjs} +1 -1
  108. package/dist/{load-extensions-D0yT_Kta.d.mts → load-extensions-un9Md47Z.d.mts} +1 -1
  109. package/dist/{materialization-Dx1z_MDj.mjs → materialization-CDemi12q.mjs} +1 -1
  110. package/dist/mcp-http-server/index.mjs +4 -4
  111. package/dist/{namespace-D1qK-Ed3.d.mts → namespace-CePc0U4N.d.mts} +2 -2
  112. package/dist/{namespace-C7wggVcn.d.mts → namespace-Ciyw6FxO.d.mts} +18 -18
  113. package/dist/{namespace-BY5-nA4j.d.mts → namespace-CizM5GXh.d.mts} +6 -6
  114. package/dist/{namespace-WeSQXdAL.d.mts → namespace-D9ToNQPp.d.mts} +25 -25
  115. package/dist/{namespace-CPC1vbOu.d.mts → namespace-DF9m7PLi.d.mts} +5 -5
  116. package/dist/{namespace-Dh5fTXYt.d.mts → namespace-thsiHTFH.d.mts} +2 -2
  117. package/dist/node/bus-server/index.d.mts +1 -1
  118. package/dist/node/bus-server/index.mjs +1 -1
  119. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  120. package/dist/node/bus-server/server-lifecycle.mjs +1 -1
  121. package/dist/node/transports/index.d.mts +12 -1
  122. package/dist/node/transports/index.mjs +2 -2
  123. package/dist/{orchestrator-shared-BKMtjTE9.mjs → orchestrator-shared-5vhs4wvU.mjs} +1 -1
  124. package/dist/{package-C9XYuN9J.d.mts → package-BR0pO5BI.d.mts} +101 -17
  125. package/dist/package-DKfzsJVl.mjs +7 -0
  126. package/dist/package.json +1 -1
  127. package/dist/packages-7CsXP86g.mjs +1 -0
  128. package/dist/rules/index.d.mts +1 -1
  129. package/dist/rules/index.mjs +1 -1
  130. package/dist/rules/schemas.d.mts +1 -1
  131. package/dist/runtime-bun/index.mjs +1 -1
  132. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  133. package/dist/runtime-node/code-execution/index.mjs +1 -1
  134. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  135. package/dist/runtime-node/extension-validation.d.mts +1 -1
  136. package/dist/runtime-node/extension-validation.mjs +1 -1
  137. package/dist/runtime-node/index.d.mts +7 -6
  138. package/dist/runtime-node/index.mjs +24 -24
  139. package/dist/runtime-node/makaio-config.d.mts +1 -1
  140. package/dist/runtime-node/makaio-config.mjs +1 -1
  141. package/dist/runtime-node/workflow-execution-bus-access.d.mts +16 -1
  142. package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
  143. package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
  144. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  145. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  146. package/dist/{schema-wArHaxA9.d.mts → schema-7GukLoee.d.mts} +1 -1
  147. package/dist/{schemas-C5FreSE0.d.mts → schemas-6FlRULSc.d.mts} +211 -79
  148. package/dist/schemas-BahXrOYa.mjs +1 -0
  149. package/dist/{schemas-gfrOgGau.d.mts → schemas-CKGHlsMd.d.mts} +1 -1
  150. package/dist/{schemas-DmE-a0kN.d.mts → schemas-CkOVC3ip.d.mts} +4 -4
  151. package/dist/{schemas-BjNlwTDl.d.mts → schemas-DQ5iRisA.d.mts} +2 -2
  152. package/dist/{schemas-BSBb1KFq.d.mts → schemas-Df52igU4.d.mts} +8 -8
  153. package/dist/services/adapter-runtime/index.d.mts +3 -3
  154. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  155. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  156. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  157. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  158. package/dist/services/agent-runtime/index.d.mts +2 -2
  159. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  160. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  161. package/dist/services/automation-trigger/index.mjs +1 -1
  162. package/dist/services/capability/index.d.mts +2 -2
  163. package/dist/services/capability/index.mjs +1 -1
  164. package/dist/services/code-execution/index.d.mts +1 -1
  165. package/dist/services/code-execution/index.mjs +1 -1
  166. package/dist/services/codebase/index.d.mts +2 -2
  167. package/dist/services/codebase/namespace.d.mts +1 -1
  168. package/dist/services/codebase/schemas.d.mts +1 -1
  169. package/dist/services/compression/index.d.mts +2 -2
  170. package/dist/services/compression/namespace.d.mts +1 -1
  171. package/dist/services/compression/schemas.d.mts +1 -1
  172. package/dist/services/context-rules/index.d.mts +4 -4
  173. package/dist/services/context-rules/index.mjs +1 -1
  174. package/dist/services/execution-target/index.d.mts +3 -3
  175. package/dist/services/execution-target/index.mjs +1 -1
  176. package/dist/services/execution-target/namespace.d.mts +1 -1
  177. package/dist/services/execution-target/schemas.d.mts +1 -1
  178. package/dist/services/filesystem/index.d.mts +1 -1
  179. package/dist/services/filesystem/index.mjs +1 -1
  180. package/dist/services/filesystem/namespace.d.mts +6 -6
  181. package/dist/services/filesystem/schemas.d.mts +3 -3
  182. package/dist/services/git/namespace.d.mts +2 -2
  183. package/dist/services/git/namespace.mjs +1 -1
  184. package/dist/services/git/schemas.d.mts +2 -2
  185. package/dist/services/git/schemas.mjs +1 -1
  186. package/dist/services/harness/index.mjs +1 -1
  187. package/dist/services/index.d.mts +55 -55
  188. package/dist/services/index.mjs +1 -1
  189. package/dist/services/log-import/browser.d.mts +2 -2
  190. package/dist/services/log-import/index.d.mts +2 -2
  191. package/dist/services/log-import/log-import.d.mts +1 -1
  192. package/dist/services/log-import/log-import.mjs +1 -1
  193. package/dist/services/log-import/namespace.mjs +1 -1
  194. package/dist/services/log-import/schemas.mjs +1 -1
  195. package/dist/services/materialization/index.d.mts +1 -1
  196. package/dist/services/materialization/index.mjs +1 -1
  197. package/dist/services/model-registry/index.d.mts +1 -1
  198. package/dist/services/model-registry/index.mjs +1 -1
  199. package/dist/services/preferences/index.d.mts +2 -2
  200. package/dist/services/preferences/schemas.d.mts +1 -1
  201. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  202. package/dist/services/provider-context/index.d.mts +1 -1
  203. package/dist/services/provider-runtime/index.mjs +1 -1
  204. package/dist/services/session/handlers/index.d.mts +1 -1
  205. package/dist/services/session/index.d.mts +9 -9
  206. package/dist/services/session/messages/namespace.d.mts +1 -1
  207. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  208. package/dist/services/session/orchestrator-testing/index.mjs +1 -1
  209. package/dist/services/session/session-events/namespace.d.mts +1 -1
  210. package/dist/services/session/storage/namespace.d.mts +1 -1
  211. package/dist/services/session/storage/schema.d.mts +1 -1
  212. package/dist/services/session/testing/index.mjs +1 -1
  213. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  214. package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
  215. package/dist/services/session/turns/namespace.d.mts +1 -1
  216. package/dist/services/session-editor/index.d.mts +1 -1
  217. package/dist/services/settings/index.d.mts +3 -3
  218. package/dist/services/settings/namespace.d.mts +8 -8
  219. package/dist/services/settings/namespace.mjs +1 -1
  220. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  221. package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
  222. package/dist/services/settings/storage/index.d.mts +3 -3
  223. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  224. package/dist/services/subagent/index.d.mts +1 -1
  225. package/dist/services/subagent/index.mjs +1 -1
  226. package/dist/services/subagent-template/index.d.mts +2 -2
  227. package/dist/services/subagent-template/namespace.d.mts +1 -1
  228. package/dist/services/subagent-template/schemas.d.mts +1 -1
  229. package/dist/services/tool-approval/index.d.mts +1 -1
  230. package/dist/services/tool-approval/index.mjs +1 -1
  231. package/dist/services/tools/index.d.mts +1 -1
  232. package/dist/services/tools/index.mjs +1 -1
  233. package/dist/services/tray-menu/index.d.mts +3 -3
  234. package/dist/services/tray-menu/index.mjs +1 -1
  235. package/dist/services/tray-menu/namespace.d.mts +1 -1
  236. package/dist/services/tray-menu/schemas.d.mts +1 -1
  237. package/dist/services/turn/index.d.mts +1 -1
  238. package/dist/services/turn/namespace.d.mts +1 -1
  239. package/dist/services/workflow-transitions/index.d.mts +1 -1
  240. package/dist/services/workflow-transitions/index.mjs +1 -1
  241. package/dist/{src-D4Gx0QHf.mjs → src-Dlpw-Gh5.mjs} +1 -1
  242. package/dist/storage/drizzle/client.d.mts +1 -1
  243. package/dist/storage/drizzle/client.mjs +1 -1
  244. package/dist/storage/drizzle/index.d.mts +1 -1
  245. package/dist/storage/drizzle/index.mjs +1 -1
  246. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  247. package/dist/storage/handlers/drizzle/index.mjs +1 -1
  248. package/dist/storage/handlers/index.d.mts +1 -1
  249. package/dist/storage/handlers/index.mjs +1 -1
  250. package/dist/{tools-Cyo6BuGM.mjs → tools-2INrWlnS.mjs} +1 -1
  251. package/dist/{transition-CwMPKBjz.d.mts → transition-C1rMI1ue.d.mts} +2 -2
  252. package/dist/{types-BOF825V52.d.mts → types-CR415CdC2.d.mts} +1 -1
  253. package/dist/{types-Dg_acP9p.d.mts → types-DIHb_m2K.d.mts} +29 -29
  254. package/dist/ui-kernel/index.d.mts +1 -1
  255. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  256. package/dist/{view-builder-D76L0Db8.d.mts → view-builder-Dt9UEsPc.d.mts} +1 -1
  257. package/dist/{worker-9X0QNB1k.mjs → worker-Bn0x5MSH.mjs} +1 -1
  258. package/dist/worker-qgJToDTN.mjs +1 -0
  259. package/dist/workflow-B6C3Pf66.mjs +1 -0
  260. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  261. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  262. package/dist/workflow-engine/index.d.mts +21 -20
  263. package/dist/workflow-engine/index.mjs +1 -1
  264. package/dist/workflow-engine/package.d.mts +1 -1
  265. package/dist/workflow-engine/package.mjs +1 -1
  266. package/dist/workflow-engine/provider-operation.d.mts +2 -2
  267. package/dist/workflow-engine/provider-operation.mjs +1 -1
  268. package/dist/workflow-engine/testing/conformance.d.mts +1 -1
  269. package/dist/workflow-engine/testing/conformance.mjs +2 -2
  270. package/dist/workflow-engine/testing/index.d.mts +3 -2
  271. package/dist/workflow-engine/testing/index.mjs +1 -1
  272. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  273. package/dist/workflow-engine/testing/sqlite.mjs +86 -48
  274. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  275. package/dist/{workflow-transitions-B7HtjuAn.mjs → workflow-transitions-BbhM_zPm.mjs} +1 -1
  276. package/dist/workflow-worker-BSJ6F4P0.mjs +2 -0
  277. package/package.json +1 -1
  278. package/dist/artifact-OnwP6uaD.mjs +0 -1
  279. package/dist/authority-state-bootstrap-rnsTk0u7.mjs +0 -1
  280. package/dist/code-execution-C2PgBdmE.mjs +0 -1
  281. package/dist/framework-packages-CZJDukan.mjs +0 -1
  282. package/dist/kind-registration-BNhVCSaT.mjs +0 -1
  283. package/dist/package-D7c2HC-S.mjs +0 -7
  284. package/dist/packages-BhhBcPgz.mjs +0 -1
  285. package/dist/provider-operation-BwrIrOeY.d.mts +0 -207
  286. package/dist/schemas-hzbKeyyt.mjs +0 -1
  287. package/dist/worker-BwUhRg7i.mjs +0 -1
  288. package/dist/workflow-B3MWrYhG.mjs +0 -1
  289. package/dist/workflow-worker-zYb2UguP.mjs +0 -2
  290. /package/dist/{adapter-auth-runtime-DGY1CDxj.mjs → adapter-auth-runtime-BnPqQChk.mjs} +0 -0
  291. /package/dist/{adapter-binding-fGIz-ss3.d.mts → adapter-binding-BU7STlfd.d.mts} +0 -0
  292. /package/dist/{ajv-DWgn_plp.mjs → ajv-Dtk5hCZS.mjs} +0 -0
  293. /package/dist/{attempt-fixtures-Dpfgqll0.mjs → attempt-fixtures-C-jQE_7B.mjs} +0 -0
  294. /package/dist/{base-orchestrator-BeLqYKJG.d.mts → base-orchestrator-DXiejwQ3.d.mts} +0 -0
  295. /package/dist/{bootstrap-start-client-BYoxrgMk.mjs → bootstrap-start-client-Bdv-_2Q9.mjs} +0 -0
  296. /package/dist/{caller-owned-adapter-stub-egWCuKcE.mjs → caller-owned-adapter-stub-B-Sq7ZvF.mjs} +0 -0
  297. /package/dist/{capability-service-BlYnun2M.d.mts → capability-service-CsWaOwvH.d.mts} +0 -0
  298. /package/dist/{client-CtOWHpFB.d.mts → client-DP4ksY9q.d.mts} +0 -0
  299. /package/dist/{client-binary-version-verifier-BwmToeS1.d.mts → client-binary-version-verifier-BoXRTyae.d.mts} +0 -0
  300. /package/dist/{client-binary-version-verifier-sv-Uv0lB.mjs → client-binary-version-verifier-DHBAzg3-.mjs} +0 -0
  301. /package/dist/{clients-namespace-Bf73bcZh.d.mts → clients-namespace-BVDmj8uV.d.mts} +0 -0
  302. /package/dist/{config-namespace-BbLLd4V0.d.mts → config-namespace-BMOKEuyf.d.mts} +0 -0
  303. /package/dist/{create-static-mount-BQnyEUH1.mjs → create-static-mount-GSdckRQx.mjs} +0 -0
  304. /package/dist/{cross-spawn-DPrJR9Nq.mjs → cross-spawn-Bx_VEdpd.mjs} +0 -0
  305. /package/dist/{cursor-storage-iJ6vBOWd.mjs → cursor-storage-Co4itf44.mjs} +0 -0
  306. /package/dist/{definition-aS9AM2ht.d.mts → definition-ByVJ3n6o.d.mts} +0 -0
  307. /package/dist/{descriptor-to-package-FBkLjHZo.mjs → descriptor-to-package-CZLujoiv.mjs} +0 -0
  308. /package/dist/{drizzle-CIf_jdYI.mjs → drizzle-me-95ICP.mjs} +0 -0
  309. /package/dist/{esm-BH4Kmq3r.mjs → esm-DILYVXmW.mjs} +0 -0
  310. /package/dist/{event-m7_IdhOS.mjs → event-DmQPb5MB.mjs} +0 -0
  311. /package/dist/{execution-attempt-repository-D_qR7NyG.mjs → execution-attempt-repository-DXyh1hgz.mjs} +0 -0
  312. /package/dist/{execution-target-CqaBmnvX.mjs → execution-target-B9jZgDQz.mjs} +0 -0
  313. /package/dist/{extension-context-41A1ZUus.d.mts → extension-context-Cx8CetW3.d.mts} +0 -0
  314. /package/dist/{extension-discovery-DNB1VVsV.d.mts → extension-discovery-C0Nj5EVZ.d.mts} +0 -0
  315. /package/dist/{extension-package-provenance-CTYdo0yF.mjs → extension-package-provenance-BzvG6rDO.mjs} +0 -0
  316. /package/dist/{filesystem-service-DOrm4Llq.d.mts → filesystem-service-C6D7oABi.d.mts} +0 -0
  317. /package/dist/{handler-COkV00I9.mjs → handler-BYQPNm8O.mjs} +0 -0
  318. /package/dist/{index-Cb3NfGSV2.d.mts → index-B04VAxlm2.d.mts} +0 -0
  319. /package/dist/{index-jW7MJ2_q.d.mts → index-B7g7e7_f.d.mts} +0 -0
  320. /package/dist/{index-BKvzOrbF.d.mts → index-B9-1l1oh.d.mts} +0 -0
  321. /package/dist/{index-ClJjlOox.d.mts → index-BGWkmG9i.d.mts} +0 -0
  322. /package/dist/{index-BbAqoQmv.d.mts → index-BR7IiCib.d.mts} +0 -0
  323. /package/dist/{index-BiXqOfhl.d.mts → index-B_VcKELo.d.mts} +0 -0
  324. /package/dist/{index-BBq5I7SB2.d.mts → index-BbjxBrcp2.d.mts} +0 -0
  325. /package/dist/{index-Bq4PHWe9.d.mts → index-BnLp-7qH.d.mts} +0 -0
  326. /package/dist/{index-Bg5iXHk5.d.mts → index-BpWoCe22.d.mts} +0 -0
  327. /package/dist/{index-BO8n7zAS.d.mts → index-Bpv8EpBa.d.mts} +0 -0
  328. /package/dist/{index-Ce_l029J.d.mts → index-BrRCVo9r.d.mts} +0 -0
  329. /package/dist/{index-z-YJG2cw.d.mts → index-CHuB40EK.d.mts} +0 -0
  330. /package/dist/{index-CavvxFdG2.d.mts → index-CIV2G6uX2.d.mts} +0 -0
  331. /package/dist/{index-CgVdz5IV.d.mts → index-CNOqYviR.d.mts} +0 -0
  332. /package/dist/{index-Bk865qJX.d.mts → index-CSEhxhIc.d.mts} +0 -0
  333. /package/dist/{index-gK54T8Am.d.mts → index-C_R6ifn9.d.mts} +0 -0
  334. /package/dist/{index-CUHWylh4.d.mts → index-D3_QOfke.d.mts} +0 -0
  335. /package/dist/{index-BB4EWIf3.d.mts → index-D6qlh6Td.d.mts} +0 -0
  336. /package/dist/{index-BjaQsfAr.d.mts → index-DLlTuugR.d.mts} +0 -0
  337. /package/dist/{index-VVJqONaI.d.mts → index-DOKPbF-y2.d.mts} +0 -0
  338. /package/dist/{index-BJjdUzfw2.d.mts → index-DZv9yNKF2.d.mts} +0 -0
  339. /package/dist/{index-DR9-fFwc.d.mts → index-DxaQ-ceV.d.mts} +0 -0
  340. /package/dist/{index-zvgQ8ErF.d.mts → index-HRn0Kun0.d.mts} +0 -0
  341. /package/dist/{index-Ck5amD5_.d.mts → index-IkeLI7uY.d.mts} +0 -0
  342. /package/dist/{index-Q29tcu5N.d.mts → index-_Ngf4KAa.d.mts} +0 -0
  343. /package/dist/{index-l5HeyxKn.d.mts → index-l9WK9El6.d.mts} +0 -0
  344. /package/dist/{json-value-C57MkQrB.d.mts → json-value-DyMQrwGz.d.mts} +0 -0
  345. /package/dist/{jsonl-transport-QQuABrN7.mjs → jsonl-transport-Dfv3RLzi.mjs} +0 -0
  346. /package/dist/{lib-Sx8gBJvV.mjs → lib-BdfAJKDj.mjs} +0 -0
  347. /package/dist/{model-registry-DNHDnyvs.mjs → model-registry-DlUErRRt.mjs} +0 -0
  348. /package/dist/{namespace-BGgY903U.mjs → namespace-B8kUQpwo.mjs} +0 -0
  349. /package/dist/{namespace-By3nEmBH.d.mts → namespace-B_Gw6BMX.d.mts} +0 -0
  350. /package/dist/{namespace-DInMixc8.d.mts → namespace-CQaL10rI.d.mts} +0 -0
  351. /package/dist/{namespace-DE3oGhaN.d.mts → namespace-CcHA54E1.d.mts} +0 -0
  352. /package/dist/{namespace-DHrItZyM.mjs → namespace-ChjzkJIl.mjs} +0 -0
  353. /package/dist/{namespace-DkAlBY9o.d.mts → namespace-Ct2DKREI.d.mts} +0 -0
  354. /package/dist/{namespace-DENdNdK0.d.mts → namespace-DdcRYk7b.d.mts} +0 -0
  355. /package/dist/{namespace-Ca4sQ8X-.d.mts → namespace-DtXYm32M.d.mts} +0 -0
  356. /package/dist/{namespace-Bn-ryJn5.d.mts → namespace-nE7vRctI.d.mts} +0 -0
  357. /package/dist/{namespace-DP0WWpTO.d.mts → namespace-sTMm1voF.d.mts} +0 -0
  358. /package/dist/{orchestrator-shared-2vuCvljs.d.mts → orchestrator-shared-CYnIz5Zd.d.mts} +0 -0
  359. /package/dist/{out-Rz-t3WeC.mjs → out-Cn6vBxlH.mjs} +0 -0
  360. /package/dist/{package-Tt2uoAFf.mjs → package-BUSXHPOT.mjs} +0 -0
  361. /package/dist/{package-buHQFmTH.mjs → package-BiZ6ehWk.mjs} +0 -0
  362. /package/dist/{package-DfjGt5oK.mjs → package-D4eLGGv4.mjs} +0 -0
  363. /package/dist/{packages-DAqep89i.d.mts → packages-DtsjAYuf.d.mts} +0 -0
  364. /package/dist/{providers-namespace-C56pGeTO.d.mts → providers-namespace-BxknJ03z.d.mts} +0 -0
  365. /package/dist/{quick-lru-uXa2PNb5.mjs → quick-lru-CVryNCTx.mjs} +0 -0
  366. /package/dist/{registry-CZf8VGBh.mjs → registry-Q9gCZtxz.mjs} +0 -0
  367. /package/dist/{schemas-BsZJHdvY.d.mts → schemas-0VbIjfrW.d.mts} +0 -0
  368. /package/dist/{schemas-DDCAGKRi.mjs → schemas-BFgsIiSb.mjs} +0 -0
  369. /package/dist/{schemas-B2Q284-G.d.mts → schemas-Cg2gAars.d.mts} +0 -0
  370. /package/dist/{schemas-CITR9cWN.d.mts → schemas-CmUWeOkr.d.mts} +0 -0
  371. /package/dist/{schemas-BMGJLkdK2.d.mts → schemas-CsRcSlvA2.d.mts} +0 -0
  372. /package/dist/{schemas-wPB7RnHB.d.mts → schemas-DzDVjYjt.d.mts} +0 -0
  373. /package/dist/{schemas-B0zhTfet.d.mts → schemas-KDl7p-wr.d.mts} +0 -0
  374. /package/dist/{schemas-BJKx29Sp.d.mts → schemas-Yp3PvwsM.d.mts} +0 -0
  375. /package/dist/{server-lifecycle-CREtXADx.d.mts → server-lifecycle-Ck6_8o8v.d.mts} +0 -0
  376. /package/dist/{server-lifecycle-AvBVeCFR.mjs → server-lifecycle-hNz8U-QJ.mjs} +0 -0
  377. /package/dist/{session-lineage-CRLvurB-.d.mts → session-lineage-BtvnGkoC.d.mts} +0 -0
  378. /package/dist/{src-DnLncoLg.mjs → src-Du_285FN.mjs} +0 -0
  379. /package/dist/{storage-namespace-JBh9nkKw.d.mts → storage-namespace-CRdQoXZ9.d.mts} +0 -0
  380. /package/dist/{storage-namespace-CH4j0_Zs.mjs → storage-namespace-Dtz2G1if.mjs} +0 -0
  381. /package/dist/{storage-namespace-definition-C0mnpnC_.d.mts → storage-namespace-definition-NBw1Y8Pa.d.mts} +0 -0
  382. /package/dist/{supports-color-BBMFnbC4.mjs → supports-color-BNmyqLq0.mjs} +0 -0
  383. /package/dist/{tool-approval-service-7mzJVMo_.mjs → tool-approval-service-rpV94znP.mjs} +0 -0
  384. /package/dist/{tray-menu-service-thAhpcPA.mjs → tray-menu-service-TWrmvXSo.mjs} +0 -0
  385. /package/dist/{types-9ldZyQTb.d.mts → types-BFv-EK2G.d.mts} +0 -0
  386. /package/dist/{types-DJuxNrac.d.mts → types-BcGXdeva.d.mts} +0 -0
  387. /package/dist/{types-eCGV_g6P.d.mts → types-CUCFeisO.d.mts} +0 -0
  388. /package/dist/{types-xXv0lUeU.d.mts → types-CXrp5ldz.d.mts} +0 -0
  389. /package/dist/{types-BMkn9jOe.d.mts → types-D4N56a4O.d.mts} +0 -0
  390. /package/dist/{types-CjjNAiHa.mjs → types-D9GJ7FyQ.mjs} +0 -0
  391. /package/dist/{window-registry-CGaYVD7l.d.mts → window-registry-Chi2qJ5k.d.mts} +0 -0
@@ -1,5 +1,4 @@
1
- import { C as ExecutionAttemptRepository, E as ExecutionOwnerId, P as OutcomeCodec, V as RecordAllocationInput, r as AllocationRecordingDecision, s as AttemptControlState, u as BeginProvisioningInput, x as ExecutionAttemptRecord, z as ProvisioningClaimDecision } from "../../execution-attempt-repository-CtFZfBfp.mjs";
2
- import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord } from "../../provider-operation-BwrIrOeY.mjs";
1
+ import { D as ExecutionOwnerId, Dt as ProviderOperationOwnershipRecord, L as ProvisioningClaimDecision, P as OutcomeCodec, S as ExecutionAttemptRecord, bt as ProviderOperationClaim, r as AllocationRecordingDecision, s as AttemptControlState, u as BeginProvisioningInput, v as ExecutionAttemptCancellationIntent, w as ExecutionAttemptRepository, yt as ProcessBoundProvisionerLossProof, z as RecordAllocationInput } from "../../execution-attempt-repository-dE889kHj.mjs";
3
2
  import { BoundedRecoveryEvidence, ExecutionAttemptInstruction, ExecutionAttemptPreparationResult, ProviderAllocationRef, WorkerAllocationLifetime, WorkflowRunResult } from "@makaio/framework/contracts";
4
3
 
5
4
  //#region subsystems/workflow-engine/src/testing/attempt-record-codec.d.ts
@@ -48,6 +47,8 @@ interface InMemoryAttemptRepositoryState {
48
47
  readonly activeAttempts: Map<string, string>;
49
48
  /** Request-to-attempt bindings, nested by owner and then opaque request key. */
50
49
  readonly requestBindings: Map<string, Map<string, string>>;
50
+ /** First owner cancellation request for each attempt, surviving controller replacement. */
51
+ readonly cancellations: Map<string, ExecutionAttemptCancellationIntent>;
51
52
  }
52
53
  /**
53
54
  * The in-memory realization together with the state backing it.
@@ -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-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
+ 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-DXyh1hgz.mjs";import{a as p,i as m,n as h,o as g,t as _}from"../../execution-attempt-owner-recovery-CdH04iwP.mjs";import{isProviderOperationResolved as v}from"../provider-operation.mjs";import{a as y,c as b,d as x,f as S,i as C,l as w,n as T,o as E,p as D,r as O,s as k,t as A,u as j}from"../../attempt-record-codec-6jpayBMY.mjs";import{a as M,c as N,d as P,f as F,i as I,l as L,m as R,n as z,o as B,p as V,r as H,s as U,t as W,u as G}from"../../attempt-fixtures-C-jQE_7B.mjs";import{BoundedRecoveryEvidenceSchema as K}from"@makaio/framework/contracts";function q(e,t){return{...e,status:`settled`,settlementKind:t,claimable:!1,operationStartGate:`closed`}}function J(M,N={}){let P=N.attempts??new Map,F=N.operations??new Map,I=e=>F.get(e)?.obligation===`terminal-convergence`,L=N.committedOutcomes??new Map,R=N.activeAttempts??new Map,z=N.requestBindings??new Map,B=N.cancellations??new Map,V=e=>{let t=e.settlementKind!=null,r=!t&&R.get(e.executionId)===e.executionAttemptId;return n({matchesExecution:!0,settled:t,active:r,allocated:r&&e.allocationRef!==null&&!I(e.executionAttemptId)})},H=e=>{let t=P.get(e.executionAttemptId),n=F.get(e.executionAttemptId);return!t||!n?{kind:`not-found`}:v(t,n)?{kind:`resolved`,attempt:t}: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}},U=(e,t)=>{e.completionEvidence===null&&F.set(e.executionAttemptId,{...e,completionEvidence:t})},W=(e,t)=>{let n=k(e.allocationRef),r=H(e.claim);if(r.kind!==`not-found`&&x(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=R.get(i.executionId)===i.executionAttemptId;return P.set(i.executionAttemptId,{...i,status:i.settlementKind===null?`allocated`:i.status,allocationRef:n,claimable:i.settlementKind===null&&t&&s}),F.set(a.executionAttemptId,{...a,obligation:`allocation-control`}),{kind:`recorded`}},G={async getAttemptWithAllocation(e){return P.get(e)??null},async recordDiscoveredAllocation(e){return W(e,!1)},async evolveAllocationRef(e){let{currentRef:t,nextRef:n}=b(e),r=H(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)?(P.set(i.executionAttemptId,{...i,allocationRef:n}),{kind:`evolved`}):{kind:`stale`,storedRef:i.allocationRef}:{kind:`not-found`}},async getRecoverableAttempts(e){let t=C(new Date().toISOString()),n=[];for(let r of P.values())r.executionId===e&&r.status===`allocated`&&r.allocationRef!==null&&r.claimable===!0&&r.settlementKind==null&&(r.claimExpiresAt!=null&&C(r.claimExpiresAt)<t||n.push(D(r)));return n.sort(T)},async listOpenProviderOperations(e){if(!Number.isSafeInteger(e.limit)||e.limit<=0)throw RangeError(`limit must be a positive safe integer`);let t=C(e.observedAt),n=[];for(let e of F.values()){let r=P.get(e.executionAttemptId);!r||v(r,e)||e.ownerId!==null&&e.leaseExpiresAt!==null&&C(e.leaseExpiresAt)>t||n.push({attempt:r,operation:e})}return n.sort((e,t)=>T(e.attempt,t.attempt)).slice(0,e.limit)}},J=e=>{let t=O(e.bootstrapTimeoutMs);if(P.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,...A},r=R.get(e.executionId),i=r===void 0?void 0:P.get(r);return i!==void 0&&P.set(i.executionAttemptId,{...i,claimable:i.status===`allocated`?!1:i.claimable,operationStartGate:`closed`}),P.set(e.executionAttemptId,n),R.set(e.executionId,e.executionAttemptId),n};return{async createAttempt(e){return J({...e,instruction:g(e.instruction)})},async ensureAttempt(e){let t=m(e),n=z.get(t.executionId),r=n?.get(t.requestKey);if(r!==void 0)return h(t,P.get(r)??null);let i=J(t),a=n??new Map;return a.set(t.requestKey,i.executionAttemptId),z.set(t.executionId,a),{kind:`created`,attempt:structuredClone(i)}},async readAttemptSettlement(e){let t=p(e);return _(t,{attempt:P.get(t.executionAttemptId)??null,activeAttemptId:R.get(t.executionId)??null,outcomeText:L.get(t.executionAttemptId)??null},M)},async readBootstrapStartState(e){let t=P.get(e.executionAttemptId);return!t||t.executionId!==e.executionId?null:{settled:t.settlementKind!=null,active:R.get(e.executionId)===e.executionAttemptId,allocated:t.allocationRef!==null,allocationTerminated:I(e.executionAttemptId),operationStartGate:t.operationStartGate,bootstrapDeadlineAt:t.bootstrapDeadlineAt??null}},async beginProvisioning(e){let t=E(e.allocationLifetime),n=P.get(e.executionAttemptId);if(!n||n.executionId!==e.executionId)return{kind:`not-found`};if(R.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.operationStartGate===`closed`)return{kind:`fenced`};if(n.status!==`pending`)return{kind:`already-provisioning`};P.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:y(e.leaseExpiresAt)};return F.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,completionEvidence:null}),{kind:`started`,claim:r}},async getProviderOperation(e){return F.get(e)??null},async renewProviderOperationClaim(e){let t=H(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let n=y(e.leaseExpiresAt);return F.set(e.claim.executionAttemptId,{...t.operation,leaseExpiresAt:n}),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:n}}},async takeOverProviderOperation(e){let t=P.get(e.executionAttemptId),n=F.get(e.executionAttemptId);if(!t||!n)return{kind:`not-found`};if(v(t,n))return{kind:`resolved`};if(n.ownerId!==null&&n.leaseExpiresAt!==null&&C(n.leaseExpiresAt)>C(e.observedAt))return{kind:`stale`};let r={executionAttemptId:e.executionAttemptId,generation:n.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:y(e.leaseExpiresAt)};return F.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:K.parse(e.evidence),n=H(e.claim);return n.kind===`authorized`?(F.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=K.parse(e.evidence),n=H(e.claim);return n.kind===`authorized`?(F.set(e.claim.executionAttemptId,{...n.operation,failureCount:n.operation.failureCount+1,lastFailure:t}),{kind:`recorded`}):{kind:n.kind}},async completeProviderOperation(e){let t=K.parse(e.evidence),n=P.get(e.claim.executionAttemptId),r=F.get(e.claim.executionAttemptId);return!n||!r?{kind:`not-found`}:r.token!==e.claim.token||r.generation!==e.claim.generation||r.ownerId!==e.claim.ownerId?{kind:`stale`}:v(n,r)?{kind:`already-completed`}:r.completionEvidence===null?(U(r,t),n.settlementKind===null?{kind:`evidence-recorded`}:{kind:`completed`}):{kind:`evidence-recorded`}},async recordAllocation(e){return W(e,!0)},async recordProvisioningAbsent(e){let t=K.parse(e.evidence),n=H(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?r.settlementKind===null?(P.set(r.executionAttemptId,q(r,`abandoned`)),U(i,t),{kind:`recorded`}):(U(i,t),{kind:`completed`}):{kind:`allocated`,allocationRef:r.allocationRef}:{kind:`not-found`}},async recordProvisionerIncarnationLost(e){let t=K.parse(e.proof.evidence),n=H(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n,o=a(r,e);return o===null?r.settlementKind===null?(P.set(r.executionAttemptId,q(r,`abandoned`)),U(i,t),{kind:`recorded`}):(U(i,t),{kind:`completed`}):o},async recordAllocationTerminated(e){let t=K.parse(e.evidence),n=H(e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.allocationRef===null?{kind:`not-allocated`}:(F.set(i.executionAttemptId,{...i,obligation:`terminal-convergence`,lastFailure:t}),{kind:`recorded`})},async recordInfrastructureFailure(e){let t=H(e.claim);if(t.kind!==`authorized`)return{kind:t.kind};let{attempt:n,operation:r}=t;return n.executionId===e.executionId?n.settlementKind===null?n.allocationRef===null?{kind:`not-allocated`}:r.obligation===`terminal-convergence`?(P.set(n.executionAttemptId,q(n,`infrastructure-failure`)),{kind:`recorded`}):{kind:`not-terminated`}:{kind:`resolved`}:{kind:`not-found`}},async registerRuntime(t){let n=P.get(t.executionAttemptId);if(n===void 0||n.executionId!==t.executionId)return{kind:`not-found`};let r=V(n)??e(n,t);if(r!==null)return r;let i=n.runtimeGeneration+1;return P.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=P.get(e.executionAttemptId);if(t===void 0||t.executionId!==e.executionId)return{kind:`not-found`};let n=V(t);if(n!==null)return n;let i=r(t,e,t.activeOperationId!==null&&t.activeOperationKey===e.admissionKey&&t.activeOperationAdmittedAt===null?y(new Date().toISOString()):``,t);if(i!==null)return i;let a=crypto.randomUUID(),o=y(new Date().toISOString());return P.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=P.get(e.executionAttemptId);return t?.executionId===e.executionId?t.instruction:null},async reportOperation(e){let t=j(e.result),n=P.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:R.get(e.executionId)===e.executionAttemptId,allocated:n.allocationRef!==null&&!I(e.executionAttemptId)},n,n,{...e,result:t});if(r!==null)return r;let i=w([...n.preparationReceipts,{operationId:e.operationId,runtimeGeneration:e.runtimeGeneration,result:t}]);return P.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=P.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?(P.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=y(e.readyAt),n=P.get(e.executionAttemptId);if(n===void 0||n.executionId!==e.executionId)return{kind:`not-found`};let r=V(n)??i(n,e);return r===null?(P.set(n.executionAttemptId,{...n,runtimeReadyAt:t}),{kind:`ready`,acceptedAt:t}):r},async getAttemptControlState(e){let t=P.get(e);return t===void 0?null:S(t)},async requestCancellation(e){let t={requestedAt:new Date().toISOString(),...e.reason===void 0?{}:{reason:e.reason}};for(let[n,r]of P)r.executionId===e.executionId&&(B.has(n)||B.set(n,t),P.set(n,{...r,operationStartGate:`closed`}))},async readCancellation(e){let t=B.get(e);return t===void 0?null:{...t}},async getActiveAttempt(e,t){return R.get(e)===t?P.get(t)??null:null},canonicalizeOutcome(e){return t(M,e)},decodeOutcome(e){return d(M,e)},async commitOutcome(e){let t=e.result;if(R.get(e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let n=P.get(e.executionAttemptId);if(n===void 0)return{kind:`fenced`};let r=L.get(e.executionAttemptId);if(r!==void 0){let e=d(M,r);return f(r,t.text)?{kind:`duplicate`,outcome:e,text:r}:{kind:`conflict`}}return n.settlementKind==null?(l(n,e.runtimeFence),L.set(e.executionAttemptId,t.text),P.set(e.executionAttemptId,q(n,`outcome`)),{kind:`accepted`,outcome:d(M,t.text),text:t.text}):{kind:`conflict`}},async abandonPendingAttempt(e,t){if(R.get(t)!==e)return{kind:`fenced`};let n=P.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`}:(P.set(e,q(n,`abandoned`)),{kind:`abandoned`}):{kind:`fenced`}},recovery:G,attempts:P,operations:F,committedOutcomes:L,activeAttempts:R,requestBindings:z,cancellations:B}}export{A as INITIAL_ATTEMPT_CONTROL_STATE,W as TEST_OWNER_ID,z as TEST_PROVIDER_ID,H as TEST_PROVISIONER_INCARNATION_ID,I as allocateTestAttempt,M as beginTestProvisioning,J as createInMemoryAttemptRepository,B as driveTestAttemptToAllocated,U as leaseAt,N as makeBeginProvisioningInput,L as makeEvidence,G as makeProcessLossProof,P as makeTestAllocationRef,F as makeTestInstruction,V as makeTestWorkflowResult,R as workflowRunResultOutcomeCodec};
@@ -1,4 +1,4 @@
1
- import { C as ExecutionAttemptRepository, P as OutcomeCodec } from "../../execution-attempt-repository-CtFZfBfp.mjs";
1
+ import { P as OutcomeCodec, w as ExecutionAttemptRepository } from "../../execution-attempt-repository-dE889kHj.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,8 @@
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 (
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 l,r as u,s as d,t as f,u as p}from"../../execution-attempt-repository-DXyh1hgz.mjs";import{a as ne,i as re,n as ie,o as m,t as ae}from"../../execution-attempt-owner-recovery-CdH04iwP.mjs";import{PROVIDER_OPERATION_OBLIGATIONS as h,isProviderOperationResolved as g}from"../provider-operation.mjs";import{a as _,c as oe,d as se,i as v,l as y,o as ce,p as le,r as b,s as x,t as ue,u as S}from"../../attempt-record-codec-6jpayBMY.mjs";import{BoundedRecoveryEvidenceSchema as C,ExecutionAttemptOperationKindSchema as w,ProviderAllocationRefSchema as T,WorkerAllocationLifetimeSchema as E}from"@makaio/framework/contracts";import{getRawSqlExecutor as de,isSqliteUniqueViolationError as fe,serializeByKey as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{sql as k}from"drizzle-orm";const pe=[`CREATE TABLE IF NOT EXISTS test_execution_attempt_cancellation (
2
+ execution_attempt_id TEXT PRIMARY KEY,
3
+ requested_at TEXT NOT NULL,
4
+ reason TEXT
5
+ )`,`CREATE TABLE IF NOT EXISTS test_execution_attempt (
2
6
  execution_attempt_id TEXT PRIMARY KEY,
3
7
  execution_id TEXT NOT NULL,
4
8
  instruction TEXT NOT NULL,
@@ -43,46 +47,70 @@ 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
43
47
  lease_expires_at TEXT,
44
48
  obligation TEXT NOT NULL,
45
49
  failure_count INTEGER NOT NULL DEFAULT 0,
46
- last_failure TEXT
47
- )`];function j(e,t,n){let r=e.find(e=>e===t);if(r===void 0)throw Error(`Stored '${n}' value '${t}' is not part of the port's vocabulary`);return r}function M(e,t){return e===null?null:t(JSON.parse(e))}function N(e){return{runtimeGeneration:e.runtime_generation,runtimeIncarnationId:e.runtime_incarnation_id,runtimeReadyAt:e.runtime_ready_at,operationStartGate:j(d,e.operation_start_gate,`operation_start_gate`),activeOperationId:e.active_operation_id,activeOperationKind:e.active_operation_kind===null?null:C.parse(e.active_operation_kind),activeOperationKey:e.active_operation_key,activeOperationGeneration:e.active_operation_generation,activeOperationAdmittedAt:e.active_operation_admitted_at,lastCompletedOperationId:e.last_completed_operation_id}}function P(e){return{...N(e),executionAttemptId:e.execution_attempt_id,executionId:e.execution_id,instruction:p(JSON.parse(e.instruction)),preparationReceipts:v(JSON.parse(e.preparation_receipts)),status:j(o,e.status,`status`),allocationRef:M(e.allocation_ref,e=>w.parse(e)),createdAt:e.created_at,bootstrapDeadlineAt:e.bootstrap_deadline_at,providerId:e.provider_id,allocationLifetime:e.allocation_lifetime===null?null:T.parse(e.allocation_lifetime),provisionerIncarnationId:e.provisioner_incarnation_id,settlementKind:e.settlement_kind===null?null:j(l,e.settlement_kind,`settlement_kind`),claimable:e.claimable!==0,claimExpiresAt:e.claim_expires_at}}function fe(e){return{executionAttemptId:e.execution_attempt_id,generation:e.generation,ownerId:e.owner_id,token:e.token,leaseExpiresAt:e.lease_expires_at,obligation:j(m,e.obligation,`obligation`),failureCount:e.failure_count,lastFailure:M(e.last_failure,e=>S.parse(e))}}const F=new Map,I=new Map;function L(e){if(typeof e!=`object`||!e)return!1;let t=e,n=typeof t.message==`string`?t.message:``;return n.includes(`SQLITE_BUSY`)||n.startsWith(`Failed query: BEGIN IMMEDIATE`)||n.startsWith(`Failed query: COMMIT`)||L(t.cause)}function R(e){if(typeof e!=`object`||!e)return!1;let t=e;return(typeof t.message==`string`?t.message:``).includes(`no transaction is active`)||R(t.cause)}async function z(){await new Promise(e=>setImmediate(e))}async function B(e){for(let t=0;;t+=1)try{await e.run(k.raw(`COMMIT`));return}catch(e){if(!L(e)||t===100)throw e;await z()}}async function pe(e,t){return D(F,e,t)}async function me(e,t){return D(I,e,t)}const V=new WeakMap;async function he(e,t){let n=(await t.all(k.raw(`PRAGMA database_list`))).find(e=>e.name===`main`)?.file??null;if(n!==null&&n!==``)return`file:${n}`;let r=V.get(e);if(r!==void 0)return r;let i=`connection:${crypto.randomUUID()}`;return V.set(e,i),i}async function H(e,t){let n=await e();if(typeof n!=`function`)return n;if((await n()).rowsAffected>0)return t;let r=await e();if(typeof r!=`function`)return r;throw Error(`A guarded transition affected no rows while durable state still permitted it`)}function U(e){return k`EXISTS (SELECT 1 FROM test_provider_operation
50
+ last_failure TEXT,
51
+ completion_evidence TEXT
52
+ )`];function A(e,t,n){let r=e.find(e=>e===t);if(r===void 0)throw Error(`Stored '${n}' value '${t}' is not part of the port's vocabulary`);return r}function j(e,t){return e===null?null:t(JSON.parse(e))}function M(e){return{runtimeGeneration:e.runtime_generation,runtimeIncarnationId:e.runtime_incarnation_id,runtimeReadyAt:e.runtime_ready_at,operationStartGate:A(f,e.operation_start_gate,`operation_start_gate`),activeOperationId:e.active_operation_id,activeOperationKind:e.active_operation_kind===null?null:w.parse(e.active_operation_kind),activeOperationKey:e.active_operation_key,activeOperationGeneration:e.active_operation_generation,activeOperationAdmittedAt:e.active_operation_admitted_at,lastCompletedOperationId:e.last_completed_operation_id}}function N(e){return{...M(e),executionAttemptId:e.execution_attempt_id,executionId:e.execution_id,instruction:m(JSON.parse(e.instruction)),preparationReceipts:y(JSON.parse(e.preparation_receipts)),status:A(o,e.status,`status`),allocationRef:j(e.allocation_ref,e=>T.parse(e)),createdAt:e.created_at,bootstrapDeadlineAt:e.bootstrap_deadline_at,providerId:e.provider_id,allocationLifetime:e.allocation_lifetime===null?null:E.parse(e.allocation_lifetime),provisionerIncarnationId:e.provisioner_incarnation_id,settlementKind:e.settlement_kind===null?null:A(u,e.settlement_kind,`settlement_kind`),claimable:e.claimable!==0,claimExpiresAt:e.claim_expires_at}}function P(e){return{executionAttemptId:e.execution_attempt_id,generation:e.generation,ownerId:e.owner_id,token:e.token,leaseExpiresAt:e.lease_expires_at,obligation:A(h,e.obligation,`obligation`),failureCount:e.failure_count,lastFailure:j(e.last_failure,e=>C.parse(e)),completionEvidence:j(e.completion_evidence,e=>C.parse(e))}}const F=new Map,I=new Map;function L(e){if(typeof e!=`object`||!e)return!1;let t=e,n=typeof t.message==`string`?t.message:``;return n.includes(`SQLITE_BUSY`)||n.startsWith(`Failed query: BEGIN IMMEDIATE`)||n.startsWith(`Failed query: COMMIT`)||L(t.cause)}function R(e){if(typeof e!=`object`||!e)return!1;let t=e;return(typeof t.message==`string`?t.message:``).includes(`no transaction is active`)||R(t.cause)}async function z(){await new Promise(e=>setImmediate(e))}async function me(e){for(let t=0;;t+=1)try{await e.run(k.raw(`COMMIT`));return}catch(e){if(!L(e)||t===100)throw e;await z()}}async function he(e,t){return D(F,e,t)}async function ge(e,t){return D(I,e,t)}const B=new WeakMap;async function _e(e,t){let n=(await t.all(k.raw(`PRAGMA database_list`))).find(e=>e.name===`main`)?.file??null;if(n!==null&&n!==``)return`file:${n}`;let r=B.get(e);if(r!==void 0)return r;let i=`connection:${crypto.randomUUID()}`;return B.set(e,i),i}async function V(e,t){let n=await e();if(typeof n!=`function`)return n;if((await n()).rowsAffected>0)return typeof t==`function`?t():t;let r=await e();if(typeof r!=`function`)return r;throw Error(`A guarded transition affected no rows while durable state still permitted it`)}function H(e){return k`EXISTS (SELECT 1 FROM test_provider_operation
53
+ WHERE execution_attempt_id = ${e.executionAttemptId}
54
+ AND generation = ${e.generation}
55
+ AND owner_id = ${e.ownerId}
56
+ AND token = ${e.token})`}function U(e){return k`(completion_evidence IS NULL
57
+ OR NOT EXISTS (SELECT 1 FROM test_execution_attempt
58
+ WHERE execution_attempt_id = ${e}
59
+ AND settlement_kind IS NOT NULL))`}function W(e){return k`EXISTS (SELECT 1 FROM test_provider_operation
48
60
  WHERE execution_attempt_id = ${e.executionAttemptId}
49
61
  AND generation = ${e.generation}
50
62
  AND owner_id = ${e.ownerId}
51
- AND token = ${e.token})`}function W(e){return k`EXISTS (SELECT 1 FROM test_execution_attempt
52
- WHERE execution_attempt_id = ${e} AND settlement_kind IS NULL)`}function G(e){return k`${U(e)} AND ${W(e.executionAttemptId)}`}function K(e){return k`EXISTS (SELECT 1 FROM test_provider_operation
63
+ AND token = ${e.token}
64
+ AND ${U(e.executionAttemptId)})`}function G(e){return k`EXISTS (SELECT 1 FROM test_provider_operation
53
65
  WHERE execution_attempt_id = ${e}
54
- AND obligation = ${`terminal-convergence`})`}function q(){return k`EXISTS (SELECT 1 FROM test_active_execution_attempt
66
+ AND obligation = ${`terminal-convergence`})`}function K(){return k`EXISTS (SELECT 1 FROM test_active_execution_attempt
55
67
  WHERE execution_id = test_execution_attempt.execution_id
56
- AND execution_attempt_id = test_execution_attempt.execution_attempt_id)`}async function J(o,l){let C=de(o);await C.run(k.raw(`PRAGMA busy_timeout = 0`));let w=await he(o,C);await pe(w,async()=>{for(let e of A)await C.run(k.raw(e));(await C.all(k.raw(`PRAGMA table_info(test_execution_attempt)`))).some(e=>e.name===`bootstrap_deadline_at`)||await C.run(k.raw(`ALTER TABLE test_execution_attempt ADD COLUMN bootstrap_deadline_at TEXT`))});let T,D=async e=>O(o,()=>me(w,async()=>{if(T!==void 0)throw Error(`This repository was retired by a failed transaction rollback`,{cause:T});for(let t=0;;t+=1)try{return await C.withSession(async t=>{let n=!1;try{await t.run(k.raw(`BEGIN IMMEDIATE`)),n=!0;let r=await e(t);return await B(t),r}catch(e){try{await t.run(k.raw(`ROLLBACK`))}catch(t){throw!n&&R(t)?e:(T=AggregateError([e,t],`Transaction rollback failed`),T)}throw e}})}catch(e){if(!L(e)||t===100)throw e;await z()}})),M=async(e,t)=>(await e.all(k`SELECT * FROM test_execution_attempt WHERE execution_attempt_id = ${t}`))[0],F=async(e,t)=>(await e.all(k`SELECT * FROM test_provider_operation WHERE execution_attempt_id = ${t}`))[0],I=async(e,t)=>(await F(e,t))?.obligation===`terminal-convergence`,V=async(e,t)=>(await e.all(k`SELECT execution_attempt_id FROM test_active_execution_attempt WHERE execution_id = ${t}`))[0]?.execution_attempt_id??null,J=async(e,t)=>{let r=t.settlement_kind!==null,i=!r&&await V(e,t.execution_id)===t.execution_attempt_id;return n({matchesExecution:!0,settled:r,active:i,allocated:i&&t.allocation_ref!==null&&!await I(e,t.execution_attempt_id)})},Y=async(e,t)=>{let n=await M(e,t.executionAttemptId),r=await F(e,t.executionAttemptId);if(n===void 0||r===void 0)return{kind:`not-found`};let i=P(n);return i.settlementKind==null?r.token===null||r.token!==t.token||r.generation!==t.generation||r.owner_id!==t.ownerId?{kind:`stale`,attempt:i}:{kind:`authorized`,attempt:i,attemptRow:n,operation:r}:{kind:`resolved`,attempt:i}},X=async(e,t)=>{let n=await Y(e,t);return n.kind===`authorized`?void 0:{kind:n.kind}},Z=async(e,t,n,r,i)=>{let a=await e.run(k`UPDATE test_execution_attempt
68
+ AND execution_attempt_id = test_execution_attempt.execution_attempt_id)`}async function q(o,u){let w=de(o);await w.run(k.raw(`PRAGMA busy_timeout = 0`));let T=await _e(o,w);await he(T,async()=>{for(let e of pe)await w.run(k.raw(e));(await w.all(k.raw(`PRAGMA table_info(test_execution_attempt)`))).some(e=>e.name===`bootstrap_deadline_at`)||await w.run(k.raw(`ALTER TABLE test_execution_attempt ADD COLUMN bootstrap_deadline_at TEXT`)),(await w.all(k.raw(`PRAGMA table_info(test_provider_operation)`))).some(e=>e.name===`completion_evidence`)||await w.run(k.raw(`ALTER TABLE test_provider_operation ADD COLUMN completion_evidence TEXT`))});let E,D=async e=>O(o,()=>ge(T,async()=>{if(E!==void 0)throw Error(`This repository was retired by a failed transaction rollback`,{cause:E});for(let t=0;;t+=1)try{return await w.withSession(async t=>{let n=!1;try{await t.run(k.raw(`BEGIN IMMEDIATE`)),n=!0;let r=await e(t);return await me(t),r}catch(e){try{await t.run(k.raw(`ROLLBACK`))}catch(t){throw!n&&R(t)?e:(E=AggregateError([e,t],`Transaction rollback failed`),E)}throw e}})}catch(e){if(!L(e)||t===100)throw e;await z()}})),j=async(e,t)=>(await e.all(k`SELECT * FROM test_execution_attempt WHERE execution_attempt_id = ${t}`))[0],F=async(e,t)=>(await e.all(k`SELECT * FROM test_provider_operation WHERE execution_attempt_id = ${t}`))[0],I=async(e,t)=>(await F(e,t))?.obligation===`terminal-convergence`,B=async(e,t)=>(await e.all(k`SELECT execution_attempt_id FROM test_active_execution_attempt WHERE execution_id = ${t}`))[0]?.execution_attempt_id??null,q=async(e,t)=>{let r=t.settlement_kind!==null,i=!r&&await B(e,t.execution_id)===t.execution_attempt_id;return n({matchesExecution:!0,settled:r,active:i,allocated:i&&t.allocation_ref!==null&&!await I(e,t.execution_attempt_id)})},J=async(e,t)=>{let n=await j(e,t.executionAttemptId),r=await F(e,t.executionAttemptId);if(n===void 0||r===void 0)return{kind:`not-found`};let i=N(n);return g(i,P(r))?{kind:`resolved`,attempt:i}:r.token===null||r.token!==t.token||r.generation!==t.generation||r.owner_id!==t.ownerId?{kind:`stale`,attempt:i}:{kind:`authorized`,attempt:i,attemptRow:n,operation:r}},Y=async(e,t)=>{let n=await J(e,t);return n.kind===`authorized`?void 0:{kind:n.kind}},X=async(e,t,n,r)=>{let i=await e.run(k`UPDATE test_execution_attempt
57
69
  SET status = ${`settled`}, settlement_kind = ${n}, claimable = ${0},
58
70
  operation_start_gate = ${`closed`}
59
71
  WHERE execution_attempt_id = ${t}
60
72
  AND settlement_kind IS NULL
61
- AND ${r}`);return a.rowsAffected===0||await e.run(i===void 0?k`UPDATE test_provider_operation
62
- SET owner_id = NULL, token = NULL, lease_expires_at = NULL
63
- WHERE execution_attempt_id = ${t}`:k`UPDATE test_provider_operation
64
- SET owner_id = NULL, token = NULL, lease_expires_at = NULL, last_failure = ${JSON.stringify(i)}
65
- WHERE execution_attempt_id = ${t}`),a},Q=(e,t)=>{let n=ce(e.allocationRef),r=t?k`CASE WHEN ${q()} THEN 1 ELSE 0 END`:k`${0}`;return D(t=>H(async()=>{let i=await Y(t,e.claim);if(i.kind!==`not-found`&&se(i.attempt,n),i.kind===`resolved`)return{kind:`resolved`,allocationRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a}=i;return a.allocationRef===null?async()=>{let i=await t.run(k`UPDATE test_execution_attempt
66
- SET status = ${`allocated`},
73
+ AND ${r}`);return i.rowsAffected,i},Z=async(e,t,n,r,i,a)=>{if(!a){let a=await X(e,t,`abandoned`,r);if(a.rowsAffected===0)return a;if((await e.run(k`UPDATE test_provider_operation
74
+ SET completion_evidence = ${JSON.stringify(i)}
75
+ WHERE execution_attempt_id = ${t}
76
+ AND ${H(n)}
77
+ AND completion_evidence IS NULL`)).rowsAffected===0&&(await F(e,t))?.completion_evidence===null)throw Error(`Pre-allocation settlement succeeded without provider completion evidence`);return a}return e.run(k`UPDATE test_provider_operation
78
+ SET completion_evidence = ${JSON.stringify(i)}
79
+ WHERE execution_attempt_id = ${t}
80
+ AND ${H(n)}
81
+ AND completion_evidence IS NULL`)},Q=(e,t)=>{let n=x(e.allocationRef),r=t?k`CASE WHEN settlement_kind IS NULL AND ${K()} THEN 1 ELSE 0 END`:k`${0}`;return D(t=>V(async()=>{let i=await J(t,e.claim);if(i.kind!==`not-found`&&se(i.attempt,n),i.kind===`resolved`)return{kind:`resolved`,allocationRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a}=i;return a.allocationRef===null?async()=>{let i=await t.run(k`UPDATE test_execution_attempt
82
+ SET status = CASE WHEN settlement_kind IS NULL THEN ${`allocated`} ELSE status END,
67
83
  allocation_ref = ${JSON.stringify(n)},
68
84
  claimable = ${r}
69
85
  WHERE execution_attempt_id = ${a.executionAttemptId}
70
86
  AND allocation_ref IS NULL
71
- AND ${G(e.claim)}`);return i.rowsAffected===0||await t.run(k`UPDATE test_provider_operation SET obligation = ${`allocation-control`}
72
- WHERE execution_attempt_id = ${a.executionAttemptId}`),i}:s(a.allocationRef,n)?{kind:`duplicate`,allocationRef:a.allocationRef}:{kind:`conflict`,allocationRef:a.allocationRef}},{kind:`recorded`}))},ge={async getAttemptWithAllocation(e){return D(async t=>{let n=await M(t,e);return n===void 0?null:P(n)})},async recordDiscoveredAllocation(e){return Q(e,!1)},async evolveAllocationRef(e){let{currentRef:t,nextRef:n}=g(e);return D(r=>H(async()=>{let i=await Y(r,e.claim);if(i.kind===`stale`)return{kind:`stale`,storedRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a,attemptRow:o}=i;return a.executionId===e.executionId?a.allocationRef===null?{kind:`not-allocated`}:s(a.allocationRef,t)?()=>r.run(k`UPDATE test_execution_attempt SET allocation_ref = ${JSON.stringify(n)}
87
+ AND ${W(e.claim)}`);return i.rowsAffected===0||await t.run(k`UPDATE test_provider_operation SET obligation = ${`allocation-control`}
88
+ WHERE execution_attempt_id = ${a.executionAttemptId}`),i}:s(a.allocationRef,n)?{kind:`duplicate`,allocationRef:a.allocationRef}:{kind:`conflict`,allocationRef:a.allocationRef}},{kind:`recorded`}))},ve={async getAttemptWithAllocation(e){return D(async t=>{let n=await j(t,e);return n===void 0?null:N(n)})},async recordDiscoveredAllocation(e){return Q(e,!1)},async evolveAllocationRef(e){let{currentRef:t,nextRef:n}=oe(e);return D(r=>V(async()=>{let i=await J(r,e.claim);if(i.kind===`stale`)return{kind:`stale`,storedRef:i.attempt.allocationRef};if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a,attemptRow:o}=i;return a.executionId===e.executionId?a.allocationRef===null?{kind:`not-allocated`}:s(a.allocationRef,t)?()=>r.run(k`UPDATE test_execution_attempt SET allocation_ref = ${JSON.stringify(n)}
73
89
  WHERE execution_attempt_id = ${a.executionAttemptId}
74
90
  AND execution_id = ${e.executionId}
75
91
  AND allocation_ref = ${o.allocation_ref}
76
- AND ${G(e.claim)}`):{kind:`stale`,storedRef:a.allocationRef}:{kind:`not-found`}},{kind:`evolved`}))},async getRecoverableAttempts(e){return D(async t=>{let n=new Date().toISOString();return(await t.all(k`SELECT * FROM test_execution_attempt
92
+ AND ${W(e.claim)}`):{kind:`stale`,storedRef:a.allocationRef}:{kind:`not-found`}},{kind:`evolved`}))},async getRecoverableAttempts(e){return D(async t=>{let n=new Date().toISOString();return(await t.all(k`SELECT * FROM test_execution_attempt
77
93
  WHERE execution_id = ${e}
78
94
  AND status = ${`allocated`}
79
95
  AND settlement_kind IS NULL
80
96
  AND allocation_ref IS NOT NULL
81
97
  AND claimable = ${1}
82
98
  AND (claim_expires_at IS NULL OR claim_expires_at >= ${n})
83
- ORDER BY created_at ASC, execution_attempt_id ASC`)).map(e=>b(P(e)))})}},$=async(e,t,n)=>{let{instruction:r}=t,{createdAt:i,bootstrapDeadlineAt:a}=n;try{await e.run(k`INSERT INTO test_execution_attempt
99
+ ORDER BY created_at ASC, execution_attempt_id ASC`)).map(e=>le(N(e)))})},async listOpenProviderOperations(e){let t=_(e.observedAt);if(!Number.isSafeInteger(e.limit)||e.limit<=0)throw RangeError(`Provider-operation recovery limit must be a positive safe integer`);return D(async n=>(await n.all(k`SELECT attempt.*, operation.generation, operation.owner_id, operation.token, operation.lease_expires_at,
100
+ operation.obligation, operation.failure_count, operation.last_failure, operation.completion_evidence
101
+ FROM test_execution_attempt AS attempt
102
+ INNER JOIN test_provider_operation AS operation
103
+ ON operation.execution_attempt_id = attempt.execution_attempt_id
104
+ WHERE (operation.completion_evidence IS NULL OR attempt.settlement_kind IS NULL)
105
+ AND (
106
+ operation.owner_id IS NULL
107
+ OR operation.lease_expires_at IS NULL
108
+ OR operation.lease_expires_at <= ${t}
109
+ )
110
+ ORDER BY attempt.created_at ASC, attempt.execution_attempt_id ASC
111
+ LIMIT ${e.limit}`)).map(e=>({attempt:N(e),operation:P(e)})))}},$=async(e,t,n)=>{let{instruction:r}=t,{createdAt:i,bootstrapDeadlineAt:a}=n;try{await e.run(k`INSERT INTO test_execution_attempt
84
112
  (execution_attempt_id, execution_id, instruction, status, claimable, created_at, bootstrap_deadline_at)
85
- VALUES (${t.executionAttemptId}, ${t.executionId}, ${JSON.stringify(r)}, ${`pending`}, ${0}, ${i}, ${a})`)}catch(e){throw E(e)?new ee(t.executionAttemptId,{cause:e}):e}return await e.run(k`UPDATE test_execution_attempt
113
+ VALUES (${t.executionAttemptId}, ${t.executionId}, ${JSON.stringify(r)}, ${`pending`}, ${0}, ${i}, ${a})`)}catch(e){throw fe(e)?new ee(t.executionAttemptId,{cause:e}):e}return await e.run(k`UPDATE test_execution_attempt
86
114
  SET claimable = ${0}
87
115
  WHERE execution_attempt_id = (
88
116
  SELECT execution_attempt_id
@@ -98,9 +126,9 @@ 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
98
126
  )`),await e.run(k`INSERT INTO test_active_execution_attempt (execution_id, execution_attempt_id)
99
127
  VALUES (${t.executionId}, ${t.executionAttemptId})
100
128
  ON CONFLICT(execution_id)
101
- DO UPDATE SET execution_attempt_id = excluded.execution_attempt_id`),{...le,executionAttemptId:t.executionAttemptId,executionId:t.executionId,instruction:r,preparationReceipts:Object.freeze([]),status:`pending`,allocationRef:null,createdAt:i,bootstrapDeadlineAt:a,providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null}};return{async createAttempt(e){let t={...e,instruction:p(e.instruction)},n=x(e.bootstrapTimeoutMs);return D(e=>$(e,t,n))},async ensureAttempt(e){let t=ie(e);return D(async e=>{let n=(await e.all(k`SELECT execution_attempt_id FROM test_execution_attempt_request
102
- WHERE execution_id = ${t.executionId} AND request_key = ${t.requestKey}`))[0];if(n!==void 0){let r=await M(e,n.execution_attempt_id);return ae(t,r===void 0?null:P(r))}let r=await $(e,t,x(t.bootstrapTimeoutMs));return await e.run(k`INSERT INTO test_execution_attempt_request (execution_id, request_key, execution_attempt_id)
103
- VALUES (${t.executionId}, ${t.requestKey}, ${r.executionAttemptId})`),{kind:`created`,attempt:structuredClone(r)}})},async readAttemptSettlement(e){let t=re(e);return D(async e=>{let n=await M(e,t.executionAttemptId);return n===void 0||n.execution_id!==t.executionId?{kind:`not-found`}:oe(t,{attempt:P(n),activeAttemptId:await V(e,t.executionId),outcomeText:n.workflow_result},l)})},async readBootstrapStartState(e){return D(async t=>{let n=await M(t,e.executionAttemptId);return n===void 0||n.execution_id!==e.executionId?null:{settled:n.settlement_kind!==null,active:await V(t,e.executionId)===e.executionAttemptId,allocated:n.allocation_ref!==null,allocationTerminated:await I(t,e.executionAttemptId),operationStartGate:j(d,n.operation_start_gate,`operation_start_gate`),bootstrapDeadlineAt:n.bootstrap_deadline_at}})},async beginProvisioning(e){let t=y(e.allocationLifetime),n={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:h(e.leaseExpiresAt)};return D(r=>H(async()=>{let i=await M(r,e.executionAttemptId);if(i===void 0||i.execution_id!==e.executionId)return{kind:`not-found`};let a=P(i);return await V(r,e.executionId)===e.executionAttemptId?a.settlementKind==null?a.allocationRef===null?a.status===`pending`?async()=>{let i=await r.run(k`UPDATE test_execution_attempt
129
+ DO UPDATE SET execution_attempt_id = excluded.execution_attempt_id`),{...ue,executionAttemptId:t.executionAttemptId,executionId:t.executionId,instruction:r,preparationReceipts:Object.freeze([]),status:`pending`,allocationRef:null,createdAt:i,bootstrapDeadlineAt:a,providerId:null,allocationLifetime:null,provisionerIncarnationId:null,settlementKind:null,claimable:!1,claimExpiresAt:null}};return{async createAttempt(e){let t={...e,instruction:m(e.instruction)},n=b(e.bootstrapTimeoutMs);return D(e=>$(e,t,n))},async ensureAttempt(e){let t=re(e);return D(async e=>{let n=(await e.all(k`SELECT execution_attempt_id FROM test_execution_attempt_request
130
+ WHERE execution_id = ${t.executionId} AND request_key = ${t.requestKey}`))[0];if(n!==void 0){let r=await j(e,n.execution_attempt_id);return ie(t,r===void 0?null:N(r))}let r=await $(e,t,b(t.bootstrapTimeoutMs));return await e.run(k`INSERT INTO test_execution_attempt_request (execution_id, request_key, execution_attempt_id)
131
+ VALUES (${t.executionId}, ${t.requestKey}, ${r.executionAttemptId})`),{kind:`created`,attempt:structuredClone(r)}})},async readAttemptSettlement(e){let t=ne(e);return D(async e=>{let n=await j(e,t.executionAttemptId);return n===void 0||n.execution_id!==t.executionId?{kind:`not-found`}:ae(t,{attempt:N(n),activeAttemptId:await B(e,t.executionId),outcomeText:n.workflow_result},u)})},async readBootstrapStartState(e){return D(async t=>{let n=await j(t,e.executionAttemptId);return n===void 0||n.execution_id!==e.executionId?null:{settled:n.settlement_kind!==null,active:await B(t,e.executionId)===e.executionAttemptId,allocated:n.allocation_ref!==null,allocationTerminated:await I(t,e.executionAttemptId),operationStartGate:A(f,n.operation_start_gate,`operation_start_gate`),bootstrapDeadlineAt:n.bootstrap_deadline_at}})},async beginProvisioning(e){let t=ce(e.allocationLifetime),n={executionAttemptId:e.executionAttemptId,generation:1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:_(e.leaseExpiresAt)};return D(r=>V(async()=>{let i=await j(r,e.executionAttemptId);if(i===void 0||i.execution_id!==e.executionId)return{kind:`not-found`};let a=N(i);return await B(r,e.executionId)===e.executionAttemptId?a.settlementKind==null?a.allocationRef===null?a.operationStartGate===`closed`?{kind:`fenced`}:a.status===`pending`?async()=>{let i=await r.run(k`UPDATE test_execution_attempt
104
132
  SET status = ${`provisioning`},
105
133
  provider_id = ${e.providerId},
106
134
  allocation_lifetime = ${t},
@@ -108,44 +136,49 @@ 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
108
136
  WHERE execution_attempt_id = ${e.executionAttemptId}
109
137
  AND execution_id = ${e.executionId}
110
138
  AND status = ${`pending`}
139
+ AND operation_start_gate = 'open'
111
140
  AND allocation_ref IS NULL
112
141
  AND settlement_kind IS NULL
113
- AND ${q()}`);return i.rowsAffected===0||await r.run(k`INSERT INTO test_provider_operation
142
+ AND ${K()}`);return i.rowsAffected===0||await r.run(k`INSERT INTO test_provider_operation
114
143
  (execution_attempt_id, generation, owner_id, token, lease_expires_at, obligation, failure_count)
115
144
  VALUES (${e.executionAttemptId}, ${n.generation}, ${n.ownerId}, ${n.token},
116
- ${n.leaseExpiresAt}, ${`provisioning-resolution`}, ${0})`),i}:{kind:`already-provisioning`}:{kind:`allocated`,allocationRef:a.allocationRef}:{kind:`resolved`,allocationRef:a.allocationRef}:{kind:`fenced`}},{kind:`started`,claim:n}))},async getProviderOperation(e){return D(async t=>{let n=await F(t,e);return n===void 0?null:fe(n)})},async renewProviderOperationClaim(e){let t=h(e.leaseExpiresAt);return D(n=>H(async()=>await X(n,e.claim)??(()=>n.run(k`UPDATE test_provider_operation SET lease_expires_at = ${t}
145
+ ${n.leaseExpiresAt}, ${`provisioning-resolution`}, ${0})`),i}:{kind:`already-provisioning`}:{kind:`allocated`,allocationRef:a.allocationRef}:{kind:`resolved`,allocationRef:a.allocationRef}:{kind:`fenced`}},{kind:`started`,claim:n}))},async getProviderOperation(e){return D(async t=>{let n=await F(t,e);return n===void 0?null:P(n)})},async renewProviderOperationClaim(e){let t=_(e.leaseExpiresAt);return D(n=>V(async()=>await Y(n,e.claim)??(()=>n.run(k`UPDATE test_provider_operation SET lease_expires_at = ${t}
117
146
  WHERE execution_attempt_id = ${e.claim.executionAttemptId}
118
- AND ${G(e.claim)}`)),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:t}}))},async takeOverProviderOperation(e){return D(async t=>{let n=await M(t,e.executionAttemptId),r=await F(t,e.executionAttemptId);if(n===void 0||r===void 0)return{kind:`not-found`};if(n.settlement_kind!==null)return{kind:`resolved`};if(r.owner_id!==null&&r.lease_expires_at!==null&&_(r.lease_expires_at)>_(e.observedAt))return{kind:`stale`};let i={executionAttemptId:e.executionAttemptId,generation:r.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:h(e.leaseExpiresAt)},{rowsAffected:a}=await t.run(k`UPDATE test_provider_operation
119
- SET generation = ${i.generation}, owner_id = ${i.ownerId}, token = ${i.token},
120
- lease_expires_at = ${i.leaseExpiresAt}
147
+ AND ${W(e.claim)}`)),{kind:`claimed`,claim:{...e.claim,leaseExpiresAt:t}}))},async takeOverProviderOperation(e){return D(async t=>{let n=await j(t,e.executionAttemptId),r=await F(t,e.executionAttemptId);if(n===void 0||r===void 0)return{kind:`not-found`};if(g(N(n),P(r)))return{kind:`resolved`};let i=_(e.observedAt);if(r.owner_id!==null&&r.lease_expires_at!==null&&v(r.lease_expires_at)>v(i))return{kind:`stale`};let a={executionAttemptId:e.executionAttemptId,generation:r.generation+1,ownerId:e.ownerId,token:crypto.randomUUID(),leaseExpiresAt:_(e.leaseExpiresAt)},{rowsAffected:o}=await t.run(k`UPDATE test_provider_operation
148
+ SET generation = ${a.generation}, owner_id = ${a.ownerId}, token = ${a.token},
149
+ lease_expires_at = ${a.leaseExpiresAt}
121
150
  WHERE execution_attempt_id = ${e.executionAttemptId}
122
151
  AND generation = ${r.generation}
123
- AND ${W(e.executionAttemptId)}`);return a===0?{kind:`stale`}:{kind:`claimed`,claim:i}})},async handoffProviderOperation(e){let t=e.evidence===void 0?null:S.parse(e.evidence);return D(n=>H(async()=>await X(n,e.claim)??(()=>n.run(t===null?k`UPDATE test_provider_operation
152
+ AND ${U(e.executionAttemptId)}`);if(o===0){let n=await j(t,e.executionAttemptId),r=await F(t,e.executionAttemptId);return n!==void 0&&r!==void 0&&g(N(n),P(r))?{kind:`resolved`}:{kind:`stale`}}return{kind:`claimed`,claim:a}})},async handoffProviderOperation(e){let t=e.evidence===void 0?null:C.parse(e.evidence);return D(n=>V(async()=>await Y(n,e.claim)??(()=>n.run(t===null?k`UPDATE test_provider_operation
124
153
  SET owner_id = NULL, token = NULL, lease_expires_at = NULL
125
154
  WHERE execution_attempt_id = ${e.claim.executionAttemptId}
126
- AND ${G(e.claim)}`:k`UPDATE test_provider_operation
155
+ AND ${W(e.claim)}`:k`UPDATE test_provider_operation
127
156
  SET owner_id = NULL, token = NULL, lease_expires_at = NULL,
128
157
  last_failure = ${JSON.stringify(t)}
129
158
  WHERE execution_attempt_id = ${e.claim.executionAttemptId}
130
- AND ${G(e.claim)}`)),{kind:`recorded`}))},async recordProviderOperationUncertainty(e){let t=S.parse(e.evidence);return D(n=>H(async()=>await X(n,e.claim)??(()=>n.run(k`UPDATE test_provider_operation
159
+ AND ${W(e.claim)}`)),{kind:`recorded`}))},async recordProviderOperationUncertainty(e){let t=C.parse(e.evidence);return D(n=>V(async()=>await Y(n,e.claim)??(()=>n.run(k`UPDATE test_provider_operation
131
160
  SET failure_count = failure_count + 1, last_failure = ${JSON.stringify(t)}
132
161
  WHERE execution_attempt_id = ${e.claim.executionAttemptId}
133
- AND ${G(e.claim)}`)),{kind:`recorded`}))},async recordAllocation(e){return Q(e,!0)},async recordProvisioningAbsent(e){let t=S.parse(e.evidence);return D(n=>H(async()=>{let r=await Y(n,e.claim);if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r;return i.executionId===e.executionId?i.allocationRef===null?()=>Z(n,i.executionAttemptId,`abandoned`,k`execution_id = ${e.executionId}
162
+ AND ${W(e.claim)}`)),{kind:`recorded`}))},async completeProviderOperation(e){let t=C.parse(e.evidence);return D(async n=>{let r=await j(n,e.claim.executionAttemptId),i=await F(n,e.claim.executionAttemptId);if(r===void 0||i===void 0)return{kind:`not-found`};if(!(i.generation===e.claim.generation&&i.owner_id===e.claim.ownerId&&i.token===e.claim.token))return{kind:`stale`};if(g(N(r),P(i)))return{kind:`already-completed`};if(i.completion_evidence!==null)return{kind:`evidence-recorded`};if((await n.run(k`UPDATE test_provider_operation
163
+ SET completion_evidence = ${JSON.stringify(t)}
164
+ WHERE execution_attempt_id = ${e.claim.executionAttemptId}
165
+ AND ${H(e.claim)}
166
+ AND completion_evidence IS NULL`)).rowsAffected>0){let t=await j(n,e.claim.executionAttemptId);return t===void 0?{kind:`not-found`}:t.settlement_kind===null?{kind:`evidence-recorded`}:{kind:`completed`}}let a=await j(n,e.claim.executionAttemptId),o=await F(n,e.claim.executionAttemptId);return a===void 0||o===void 0?{kind:`not-found`}:o.generation===e.claim.generation&&o.owner_id===e.claim.ownerId&&o.token===e.claim.token?g(N(a),P(o))?{kind:`already-completed`}:o.completion_evidence===null?{kind:`stale`}:{kind:`evidence-recorded`}:{kind:`stale`}})},async recordAllocation(e){return Q(e,!0)},async recordProvisioningAbsent(e){let t=C.parse(e.evidence),n=!1;return D(r=>V(async()=>{let i=await J(r,e.claim);if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:a}=i;return a.executionId===e.executionId?a.allocationRef===null?(n=a.settlementKind!==null,()=>Z(r,a.executionAttemptId,e.claim,k`execution_id = ${e.executionId}
134
167
  AND allocation_ref IS NULL
135
- AND ${U(e.claim)}`,t):{kind:`allocated`,allocationRef:i.allocationRef}:{kind:`not-found`}},{kind:`recorded`}))},async recordProvisionerIncarnationLost(e){let t=S.parse(e.proof.evidence);return D(n=>H(async()=>{let r=await Y(n,e.claim);if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r,o=a(i,e);return o===null?()=>Z(n,i.executionAttemptId,`abandoned`,k`execution_id = ${e.executionId}
168
+ AND ${H(e.claim)}`,t,n)):{kind:`allocated`,allocationRef:a.allocationRef}:{kind:`not-found`}},()=>n?{kind:`completed`}:{kind:`recorded`}))},async recordProvisionerIncarnationLost(e){let t=C.parse(e.proof.evidence),n=!1;return D(r=>V(async()=>{let i=await J(r,e.claim);if(i.kind!==`authorized`)return{kind:i.kind};let{attempt:o}=i,s=a(o,e);return s===null?(n=o.settlementKind!==null,()=>Z(r,o.executionAttemptId,e.claim,k`execution_id = ${e.executionId}
136
169
  AND allocation_ref IS NULL
137
170
  AND allocation_lifetime = ${`provisioner-process-bound`}
138
171
  AND provisioner_incarnation_id = ${e.proof.provisionerIncarnationId}
139
- AND ${U(e.claim)}`,t):o},{kind:`recorded`}))},async recordAllocationTerminated(e){let t=S.parse(e.evidence);return D(n=>H(async()=>{let r=await Y(n,e.claim);if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r;return i.allocationRef===null?{kind:`not-allocated`}:()=>n.run(k`UPDATE test_provider_operation
172
+ AND ${H(e.claim)}`,t,n)):s},()=>n?{kind:`completed`}:{kind:`recorded`}))},async recordAllocationTerminated(e){let t=C.parse(e.evidence);return D(n=>V(async()=>{let r=await J(n,e.claim);if(r.kind!==`authorized`)return{kind:r.kind};let{attempt:i}=r;return i.allocationRef===null?{kind:`not-allocated`}:()=>n.run(k`UPDATE test_provider_operation
140
173
  SET obligation = ${`terminal-convergence`}, last_failure = ${JSON.stringify(t)}
141
174
  WHERE execution_attempt_id = ${i.executionAttemptId}
142
- AND ${G(e.claim)}
175
+ AND ${W(e.claim)}
143
176
  AND EXISTS (SELECT 1 FROM test_execution_attempt
144
177
  WHERE execution_attempt_id = ${i.executionAttemptId}
145
- AND allocation_ref IS NOT NULL)`)},{kind:`recorded`}))},async recordInfrastructureFailure(e){return D(t=>H(async()=>{let n=await Y(t,e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.allocationRef===null?{kind:`not-allocated`}:j(m,i.obligation,`obligation`)===`terminal-convergence`?()=>Z(t,r.executionAttemptId,`infrastructure-failure`,k`execution_id = ${e.executionId}
178
+ AND allocation_ref IS NOT NULL)`)},{kind:`recorded`}))},async recordInfrastructureFailure(e){return D(t=>V(async()=>{let n=await J(t,e.claim);if(n.kind!==`authorized`)return{kind:n.kind};let{attempt:r,operation:i}=n;return r.executionId===e.executionId?r.settlementKind===null?r.allocationRef===null?{kind:`not-allocated`}:A(h,i.obligation,`obligation`)===`terminal-convergence`?()=>X(t,r.executionAttemptId,`infrastructure-failure`,k`execution_id = ${e.executionId}
146
179
  AND allocation_ref IS NOT NULL
147
- AND ${K(r.executionAttemptId)}
148
- AND ${U(e.claim)}`):{kind:`not-terminated`}:{kind:`not-found`}},{kind:`recorded`}))},async registerRuntime(t){return D(async n=>{let r=0,i=await H(async()=>{let i=await M(n,t.executionAttemptId);if(i===void 0||i.execution_id!==t.executionId)return{kind:`not-found`};let a=await J(n,i);if(a!==null)return a;let o=N(i),s=e(o,t);return s===null?(r=o.runtimeGeneration+1,()=>n.run(k`UPDATE test_execution_attempt
180
+ AND ${G(r.executionAttemptId)}
181
+ AND ${H(e.claim)}`):{kind:`not-terminated`}:{kind:`resolved`}:{kind:`not-found`}},{kind:`recorded`}))},async registerRuntime(t){return D(async n=>{let r=0,i=await V(async()=>{let i=await j(n,t.executionAttemptId);if(i===void 0||i.execution_id!==t.executionId)return{kind:`not-found`};let a=await q(n,i);if(a!==null)return a;let o=M(i),s=e(o,t);return s===null?(r=o.runtimeGeneration+1,()=>n.run(k`UPDATE test_execution_attempt
149
182
  SET runtime_generation = ${r},
150
183
  runtime_incarnation_id = ${t.runtimeIncarnationId},
151
184
  runtime_ready_at = NULL,
@@ -160,8 +193,8 @@ 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
160
193
  AND settlement_kind IS NULL
161
194
  AND (active_operation_id IS NULL OR active_operation_kind = ${`runtime-probe`})
162
195
  AND allocation_ref IS NOT NULL
163
- AND NOT ${K(t.executionAttemptId)}
164
- AND ${q()}`)):s},{kind:`applied`});return i.kind===`applied`?{kind:`registered`,runtimeGeneration:r}:i})},async admitOperation(e){let t=crypto.randomUUID(),n=h(new Date().toISOString()),i=e.operationKind===`runtime-probe`?k`1 = 1`:k`runtime_ready_at IS NOT NULL`;return D(a=>H(async()=>{let o=await M(a,e.executionAttemptId);if(o===void 0||o.execution_id!==e.executionId)return{kind:`not-found`};let s=await J(a,o);if(s!==null)return s;let c=r(N(o),e,n,P(o));return c===null?()=>a.run(k`UPDATE test_execution_attempt
196
+ AND NOT ${G(t.executionAttemptId)}
197
+ AND ${K()}`)):s},{kind:`applied`});return i.kind===`applied`?{kind:`registered`,runtimeGeneration:r}:i})},async admitOperation(e){let t=crypto.randomUUID(),n=_(new Date().toISOString()),i=e.operationKind===`runtime-probe`?k`1 = 1`:k`runtime_ready_at IS NOT NULL`;return D(a=>V(async()=>{let o=await j(a,e.executionAttemptId);if(o===void 0||o.execution_id!==e.executionId)return{kind:`not-found`};let s=await q(a,o);if(s!==null)return s;let c=r(M(o),e,n,N(o));return c===null?()=>a.run(k`UPDATE test_execution_attempt
165
198
  SET active_operation_id = ${t},
166
199
  active_operation_kind = ${e.operationKind},
167
200
  active_operation_key = ${e.admissionKey},
@@ -176,9 +209,9 @@ 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
176
209
  AND preparation_receipts = ${o.preparation_receipts}
177
210
  AND settlement_kind IS NULL
178
211
  AND allocation_ref IS NOT NULL
179
- AND NOT ${K(e.executionAttemptId)}
212
+ AND NOT ${G(e.executionAttemptId)}
180
213
  AND ${i}
181
- AND ${q()}`):c},{kind:`admitted`,operationId:t,runtimeGeneration:e.runtimeGeneration,admittedAt:n}))},async getInstruction(e){return D(async t=>{let n=await M(t,e.executionAttemptId);return n?.execution_id===e.executionId?p(JSON.parse(n.instruction)):null})},async reportOperation(e){let t=ue(e.result);return D(n=>H(async()=>{let r=await M(n,e.executionAttemptId);if(r===void 0||r.execution_id!==e.executionId)return{kind:`not-found`};let i=P(r),a=c({matchesExecution:!0,settled:r.settlement_kind!==null,active:await V(n,e.executionId)===e.executionAttemptId,allocated:r.allocation_ref!==null&&!await I(n,e.executionAttemptId)},i,i,{...e,result:t});if(a!==null)return a;let o=v([...i.preparationReceipts,{operationId:e.operationId,runtimeGeneration:e.runtimeGeneration,result:t}]);return()=>n.run(k`UPDATE test_execution_attempt
214
+ AND ${K()}`):c},{kind:`admitted`,operationId:t,runtimeGeneration:e.runtimeGeneration,admittedAt:n}))},async getInstruction(e){return D(async t=>{let n=await j(t,e.executionAttemptId);return n?.execution_id===e.executionId?m(JSON.parse(n.instruction)):null})},async reportOperation(e){let t=S(e.result);return D(n=>V(async()=>{let r=await j(n,e.executionAttemptId);if(r===void 0||r.execution_id!==e.executionId)return{kind:`not-found`};let i=N(r),a=c({matchesExecution:!0,settled:r.settlement_kind!==null,active:await B(n,e.executionId)===e.executionAttemptId,allocated:r.allocation_ref!==null&&!await I(n,e.executionAttemptId)},i,i,{...e,result:t});if(a!==null)return a;let o=y([...i.preparationReceipts,{operationId:e.operationId,runtimeGeneration:e.runtimeGeneration,result:t}]);return()=>n.run(k`UPDATE test_execution_attempt
182
215
  SET preparation_receipts = ${JSON.stringify(o)},
183
216
  active_operation_id = NULL,
184
217
  active_operation_kind = NULL,
@@ -196,8 +229,8 @@ 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
196
229
  AND instruction = ${r.instruction}
197
230
  AND preparation_receipts = ${r.preparation_receipts}
198
231
  AND allocation_ref IS NOT NULL
199
- AND NOT ${K(e.executionAttemptId)}
200
- AND ${q()}`)},{kind:`accepted`,binding:t.binding}))},async completeOperation(e){return D(t=>H(async()=>{let n=await M(t,e.executionAttemptId);if(n===void 0)return{kind:`not-found`};if(n.settlement_kind!==null)return{kind:`resolved`};let r=ne(N(n),e);return r===null?()=>t.run(k`UPDATE test_execution_attempt
232
+ AND NOT ${G(e.executionAttemptId)}
233
+ AND ${K()}`)},{kind:`accepted`,binding:t.binding}))},async completeOperation(e){return D(t=>V(async()=>{let n=await j(t,e.executionAttemptId);if(n===void 0)return{kind:`not-found`};if(n.settlement_kind!==null)return{kind:`resolved`};let r=l(M(n),e);return r===null?()=>t.run(k`UPDATE test_execution_attempt
201
234
  SET active_operation_id = NULL,
202
235
  active_operation_kind = NULL,
203
236
  active_operation_key = NULL,
@@ -208,7 +241,7 @@ 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
208
241
  AND settlement_kind IS NULL
209
242
  AND active_operation_id = ${e.operationId}
210
243
  AND active_operation_kind IN (${`runtime-probe`}, ${`workflow-run`})
211
- AND active_operation_generation = ${e.runtimeGeneration}`):r},{kind:`completed`}))},async markRuntimeReady(e){let t=h(e.readyAt);return D(n=>H(async()=>{let r=await M(n,e.executionAttemptId);if(r===void 0||r.execution_id!==e.executionId)return{kind:`not-found`};let a=await J(n,r);if(a!==null)return a;let o=i(N(r),e);return o===null?()=>n.run(k`UPDATE test_execution_attempt SET runtime_ready_at = ${t}
244
+ AND active_operation_generation = ${e.runtimeGeneration}`):r},{kind:`completed`}))},async markRuntimeReady(e){let t=_(e.readyAt);return D(n=>V(async()=>{let r=await j(n,e.executionAttemptId);if(r===void 0||r.execution_id!==e.executionId)return{kind:`not-found`};let a=await q(n,r);if(a!==null)return a;let o=i(M(r),e);return o===null?()=>n.run(k`UPDATE test_execution_attempt SET runtime_ready_at = ${t}
212
245
  WHERE execution_attempt_id = ${e.executionAttemptId}
213
246
  AND execution_id = ${e.executionId}
214
247
  AND settlement_kind IS NULL
@@ -216,20 +249,25 @@ 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
216
249
  AND runtime_ready_at IS NULL
217
250
  AND active_operation_id IS NULL
218
251
  AND allocation_ref IS NOT NULL
219
- AND NOT ${K(e.executionAttemptId)}
220
- AND ${q()}`):o},{kind:`ready`,acceptedAt:t}))},async getAttemptControlState(e){return D(async t=>{let n=await M(t,e);return n===void 0?null:N(n)})},async getActiveAttempt(e,t){return D(async n=>{if(await V(n,e)!==t)return null;let r=await M(n,t);return r===void 0?null:P(r)})},canonicalizeOutcome(e){return t(l,e)},decodeOutcome(e){return u(l,e)},async commitOutcome(e){let t=e.result,n=e.runtimeFence,r=n===void 0?k`1 = 1`:k`
252
+ AND NOT ${G(e.executionAttemptId)}
253
+ AND ${K()}`):o},{kind:`ready`,acceptedAt:t}))},async getAttemptControlState(e){return D(async t=>{let n=await j(t,e);return n===void 0?null:M(n)})},async requestCancellation(e){let{executionId:t,reason:n}=e,r=new Date().toISOString();await D(async e=>{await e.run(k`INSERT OR IGNORE INTO test_execution_attempt_cancellation
254
+ (execution_attempt_id, requested_at, reason)
255
+ SELECT execution_attempt_id, ${r}, ${n??null}
256
+ FROM test_execution_attempt WHERE execution_id = ${t}`),await e.run(k`UPDATE test_execution_attempt SET operation_start_gate = 'closed'
257
+ WHERE execution_id = ${t}`)})},async readCancellation(e){return D(async t=>{let[n]=await t.all(k`SELECT requested_at, reason FROM test_execution_attempt_cancellation
258
+ WHERE execution_attempt_id = ${e}`);return n===void 0?null:{requestedAt:n.requested_at,...n.reason===null?{}:{reason:n.reason}}})},async getActiveAttempt(e,t){return D(async n=>{if(await B(n,e)!==t)return null;let r=await j(n,t);return r===void 0?null:N(r)})},canonicalizeOutcome(e){return t(u,e)},decodeOutcome(e){return d(u,e)},async commitOutcome(e){let t=e.result,n=e.runtimeFence,r=n===void 0?k`1 = 1`:k`
221
259
  runtime_generation = ${n.runtimeGeneration}
222
260
  AND ${n.operationId===null?k`active_operation_id IS NULL`:k`active_operation_id = ${n.operationId}
223
- AND active_operation_generation = ${n.runtimeGeneration}`}`;return D(i=>H(async()=>{if(await V(i,e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let a=await M(i,e.executionAttemptId);if(a===void 0)return{kind:`fenced`};let o=a.workflow_result;if(o!==null){let e=u(l,o);return f(o,t.text)?{kind:`duplicate`,outcome:e,text:o}:{kind:`conflict`}}return a.settlement_kind===null?(n!==void 0&&te(N(a),n),async()=>{let n=await i.run(k`UPDATE test_execution_attempt SET workflow_result = ${t.text}
261
+ AND active_operation_generation = ${n.runtimeGeneration}`}`;return D(i=>V(async()=>{if(await B(i,e.executionId)!==e.executionAttemptId)return{kind:`fenced`};let a=await j(i,e.executionAttemptId);if(a===void 0)return{kind:`fenced`};let o=a.workflow_result;if(o!==null){let e=d(u,o);return p(o,t.text)?{kind:`duplicate`,outcome:e,text:o}:{kind:`conflict`}}return a.settlement_kind===null?(n!==void 0&&te(M(a),n),async()=>{let n=await i.run(k`UPDATE test_execution_attempt SET workflow_result = ${t.text}
224
262
  WHERE execution_attempt_id = ${e.executionAttemptId}
225
263
  AND workflow_result IS NULL
226
264
  AND settlement_kind IS NULL
227
265
  AND ${r}
228
- AND ${q()}`);return n.rowsAffected===0?n:Z(i,e.executionAttemptId,`outcome`,k`workflow_result IS NOT NULL`)}):{kind:`conflict`}},{kind:`accepted`,outcome:u(l,t.text),text:t.text}))},async abandonPendingAttempt(e,t){return D(n=>H(async()=>{if(await V(n,t)!==e)return{kind:`fenced`};let r=await M(n,e);if(r===void 0)return{kind:`fenced`};let i=P(r);return i.status===`allocated`?{kind:`allocated`}:i.status===`provisioning`?{kind:`provisioning`}:i.status===`settled`?{kind:i.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:()=>n.run(k`UPDATE test_execution_attempt
266
+ AND ${K()}`);return n.rowsAffected===0?n:X(i,e.executionAttemptId,`outcome`,k`workflow_result IS NOT NULL`)}):{kind:`conflict`}},{kind:`accepted`,outcome:d(u,t.text),text:t.text}))},async abandonPendingAttempt(e,t){return D(n=>V(async()=>{if(await B(n,t)!==e)return{kind:`fenced`};let r=await j(n,e);if(r===void 0)return{kind:`fenced`};let i=N(r);return i.status===`allocated`?{kind:`allocated`}:i.status===`provisioning`?{kind:`provisioning`}:i.status===`settled`?{kind:i.settlementKind===`abandoned`?`already-abandoned`:`already-settled`}:()=>n.run(k`UPDATE test_execution_attempt
229
267
  SET status = ${`settled`}, settlement_kind = ${`abandoned`}, claimable = ${0},
230
268
  operation_start_gate = ${`closed`}
231
269
  WHERE execution_attempt_id = ${e}
232
270
  AND execution_id = ${t}
233
271
  AND status = ${`pending`}
234
272
  AND settlement_kind IS NULL
235
- AND ${q()}`)},{kind:`abandoned`}))},recovery:ge}}export{J as createSqliteAttemptRepository};
273
+ AND ${K()}`)},{kind:`abandoned`}))},recovery:ve}}export{q as createSqliteAttemptRepository};
@@ -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-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
+ import{W as e,bt as t,c as n,d as r,i,k as a,l as o,r as s,s as c,t as l,z as u}from"../authority-state-bootstrap-DnwkMieA.mjs";import{WORKFLOW_CANCELLED_REASON as d,WorkflowRunContextSchema as f}from"@makaio/framework/contracts";import*as p from"node:os";async function m(n,r,i,a){let o=await y(n,r,i);return await n.request(e.setExecution,{execution:o}),i===`completed`?await n.emit(t.execution.completed,{executionId:r.executionId,workflowId:r.workflowId,totalDuration:0,completedAt:o.completedAt}):await n.emit(t.execution.cancelled,{executionId:r.executionId,workflowId:r.workflowId,reason:a,completedAt:o.completedAt}),i===`cancelled`?{executionId:r.executionId,workflowId:r.workflowId,status:`cancelled`,...a===void 0?{}:{reason:a}}:{executionId:r.executionId,workflowId:r.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 t,n=()=>{t=a({bus:e.bus,activeExecutions:e.activeExecutions,shellAbortControllers:e.shellAbortControllers,activeRunnerSteps:e.activeRunnerSteps,durableLifecycleTransitions:e.durableLifecycleTransitions,lifecyclePublications:e.lifecyclePublications,publishingLifecycleExecutions:e.publishingLifecycleExecutions,cancelTimeoutMs:u.cancelTimeoutMs},e.executionId,d).catch(t=>(console.error(`[WorkflowOrchestrator] Failed to persist cancellation for ${e.executionId}:`,t),!1))};return e.signal.addEventListener(`abort`,n,{once:!0}),e.signal.aborted&&n(),async()=>(e.signal.removeEventListener(`abort`,n),t??!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(n,r,i,a,o){i.status=`paused`,await n.request(e.setExecution,{execution:i}),await n.emit(t.execution.paused,{executionId:r.executionId,workflowId:r.workflowId,pausedAtGateId:a,pausedAtFrameId:o})}async function w(e,n,r,i,a,o){r===`completed`?await e.emit(t.execution.completed,{executionId:n.executionId,workflowId:n.workflowId,totalDuration:a-i.startedAt,completedAt:a}):r===`cancelled`?await e.emit(t.execution.cancelled,{executionId:n.executionId,workflowId:n.workflowId,reason:d,completedAt:a}):await e.emit(t.execution.failed,{executionId:n.executionId,workflowId:n.workflowId,error:o??`Workflow execution failed`,completedAt:a})}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-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};
1
+ import{u as e}from"./framework-packages-B3SQPHD7.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-BzvG6rDO.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-Bdv-_2Q9.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 h}from"node:fs/promises";import*as g from"node:path";import{basename as ee,isAbsolute as te,join as _,relative as ne}from"node:path";import*as v from"node:crypto";import{randomUUID as re}from"node:crypto";import{constants as ie}from"node:fs";import{BusAbortError as ae,createBusInstance as oe,isRequestCancellation as se,waitForSubscriptionPropagation as ce}from"@makaio/framework/bus";import{AdapterSubjects as le,BoundedRecoveryEvidenceSchema as ue,ExecutionAttemptSchemas as y,ExecutionAttemptSubjects as b,FrameworkContractNamespaces as x,FrameworkStorageNamespaces as S,JsonValueSchema as de,PROVIDER_ALLOCATION_REF_VERSION as fe,ProviderAllocationRefSchema as pe,RECOVERY_EVIDENCE_LIMITS as C,WorkerCapabilitiesSchema as me,WorkerSchemas as he,WorkerSubjects as w,WorkflowRunContextSchema as ge,WorkflowRunResultSchema as _e,WorkflowWorkerConfigSchema as ve,createWorkflowCancelSubject as ye}from"@makaio/framework/contracts";import{ExtensionCoordinator as be,KernelSubjects as xe,coalesceExtensionOverrides as Se,filterEligibleExtensions as Ce}from"@makaio/framework/kernel";import{BaseService as we}from"@makaio/framework/service-base";import{AdapterRuntimeSubjects as Te,registerAdapterRuntimeIdentityHandlers as Ee}from"@makaio/framework/services/adapter-runtime";import{devNull as T}from"node:os";import{CLIDetectionNamespace as De,CLIDetectionSubjects as Oe}from"@makaio/framework/services/cli-detection/namespace";import{SessionOrchestratorToken as ke,ToolRegistryToken as Ae,canonicalModelPackage as je,createSubagentServicePackage as Me,createToolContributionProcessor as Ne,frameworkCorePackages as Pe,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 Qe,runAuthorityDispatchedAttempt as $e,toCommittedWorkflowRunnerResult as et}from"@makaio/framework/workflow-engine";import{runWorkflowOrchestrator as tt}from"@makaio/framework/workflow-engine/workflow-orchestrator";import{setTimeout as nt}from"node:timers/promises";function rt(e){return e.on(le.getCapabilities,async t=>{let{adapterName:n,adapterId:r}=t.payload;if(r){await t.next();return}if(n){let r=await e.requestOptional(Te.resolveId,{adapterName:n}),i=r.handled?r.data.adapterId:void 0;i&&(t.payload.adapterId=i)}await t.next()},{priority:20})}function it(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 at(e){let{bus:t,currentMachineId:n}=e,r=Ee(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=rt(t);return{cleanup:()=>{r.cleanup(),i()}}}function ot(e,t){if(!(e instanceof Error))return!1;let{rootPackageName:n,subpath:r}=st(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"`)&&ct(e.message,n)?!0:i.some(t=>e.message.includes(t))}async function D(e){try{return await import(e)}catch(t){if(ot(t,e))return null;throw t}}function st(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 ct(e,t){let n=t,r=t.replaceAll(`/`,`\\`);return e.includes(`/${n}/package.json`)||e.includes(`\\${r}\\package.json`)}async function O(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`?g.extname(e)===``?i:[``,...i]:[``];for(let t of r.split(g.delimiter)){let n=t.replace(/^"|"$/gu,``),r=g.resolve(n||process.cwd());for(let t of a){let n=g.join(r,`${e}${t}`);try{return await h(n,ie.X_OK),n}catch{}}}}async function k(e,t=5e3,n=1e3){let{stdout:r}=await Ge(e,[`--version`],{forceKillAfterDelay:n,timeout:t});return r}function lt(e){return e.match(/(\d+\.\d+\.\d+)/u)?.[1]??`unknown`}async function ut(e,t=O,n=k){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:lt(i)}}catch{return{binary:e,found:!1}}}async function dt(e,t=O,n=k){return Promise.all(e.map(e=>ut(e,t,n)))}var ft=class extends we{constructor(e){super(e)}onInit(){this.registerHandler(Oe.scan,async e=>{let t=await dt(e.payload.binaries);e.setResult({results:t})})}};const A={name:`makaio.cli-detection`,displayName:`CLI Detection`,version:`0.1.0`,critical:!0,surface:`any`,namespaces:[De],create:e=>new ft(e.bus)};function j(e,t){e.push(...pt(t))}function pt(e){return e===void 0?[]:typeof e==`function`?[e]:[...e]}function mt(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 ht(e=[]){return e.some(e=>typeof e==`string`&&e===`node`)?e:[`node`,...e]}function M(e){return Se(Ce(_t(e.packages,e.configProvider),e.surface,e.runtimeEnvironment))}function gt(e,n){let r=M(n),i=new Set(r.map(t));return e.filter(({ownerPackage:e})=>i.has(e)).map(({package:e})=>e)}function _t(e,t){return t?e.filter(e=>t.loadEnabled(e.name)!==!1):e}function N(e,t){return e.filter(e=>e.runtimeOwnership?.[t]===!0).map(e=>e.name)}function vt(e,t){let n=N(e,t);if(n.length>1)throw Error(`Multiple extensions own runtimeOwnership.${t}: ${n.join(`, `)}`)}function P(e){return vt(e,`sessionOrchestrator`),N(e,`sessionOrchestrator`).length===0}function yt(e){return e===!0||P(e)?Pe:Pe.filter(e=>e.name!==ke.name)}function F(e,t,n){let r=[];try{for(let i of e){let e=i.runtimeBoot;e&&j(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 bt(){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 I=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()}},L=class extends Error{code;constructor(e,t){super(e),this.code=t,this.name=`MaterializationError`}};function R(e,t,n){let r=g.resolve(t)+g.sep,i=g.resolve(e);if(i!==g.resolve(t)&&!i.startsWith(r))throw new L(`${n} escapes allowed root: ${e} is not within ${t}`,`containment-violation`)}async function z(e,t,n,r){let i=r??await m.realpath(t),a;try{a=await m.realpath(e)}catch{return e}let o=i+g.sep;if(a!==i&&!a.startsWith(o))throw new L(`${n} escapes allowed root via symlink: real path ${a} is not within ${i}`,`symlink-escape`);return a}function B(e){let t=e.indexOf(`-`);if(t===-1)throw new L(`Invalid SRI integrity format: ${e}`,`contribution-integrity-mismatch`);return{algorithm:e.slice(0,t),digest:e.slice(t+1)}}async function xt(e,t){let n=await m.readFile(e);return v.createHash(t).update(n).digest(`base64`)}const V=new Set([`.git`,`node_modules`]);function St(e){return V.has(e.toLowerCase())}async function Ct(e,t){let n=t.toLowerCase();if(!V.has(n))return!1;if(t===n)return!0;try{let[r,i]=await Promise.all([m.lstat(g.join(e,t)),m.lstat(g.join(e,n))]);return r.dev===i.dev&&r.ino===i.ino}catch(e){if(e.code===`ENOENT`)return!1;throw e}}const wt=V,Tt=new Set([`.DS_Store`]);async function H(e,t){let n=v.createHash(t),r=[];async function i(t){let n=await m.readdir(t,{withFileTypes:!0});for(let a of n){let n=g.join(t,a.name);if(a.isSymbolicLink())throw new L(`Contribution package contains a symbolic link: ${g.relative(e,n)}`,`symlink-escape`);if(a.isDirectory()){wt.has(a.name)||await i(n);continue}if(a.isFile()){Tt.has(a.name)||r.push(g.relative(e,n));continue}throw new L(`Contribution package contains an unsupported filesystem entry: ${g.relative(e,n)}`,`contribution-integrity-mismatch`)}}await i(e),r.sort();for(let t of r)n.update(t.split(g.sep).join(`/`)),n.update(`\0`),n.update(await m.readFile(g.join(e,t))),n.update(`\0`);return`${t}-${n.digest(`base64`)}`}async function U(e,t=`sha256`){let n=v.createHash(t),r=[];async function i(t){let n=await m.readdir(t,{withFileTypes:!0});for(let a of n){let n=g.join(t,a.name);if(!await Ct(t,a.name)){if(a.isDirectory()){await i(n);continue}if(a.isFile()){r.push(g.relative(e,n));continue}throw a.isSymbolicLink()?new L(`Workspace root contains a symbolic link: ${g.relative(e,n)}`,`symlink-escape`):new L(`Workspace root contains an unsupported filesystem entry: ${g.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(g.join(e,t));n.update(r),n.update(`\0`)}return`${t}-${n.digest(`base64`)}`}async function W(e,t,n){let r=g.join(t,`node_modules`,e.packageName);R(r,t,`Contribution package directory`),await z(r,t,`Contribution package directory`,n);let i=g.join(r,`package.json`),a;try{a=await m.readFile(i,`utf-8`)}catch{throw new L(`Contribution package not found: ${e.packageName} (expected at ${r})`,`contribution-missing`)}let o=JSON.parse(a);if(o.name!==e.packageName)throw new L(`Contribution identity mismatch: expected ${e.packageName}, found ${o.name??`<none>`}`,`contribution-missing`);if(o.version!==e.version)throw new L(`Contribution version mismatch for ${e.packageName}: expected ${e.version}, found ${o.version??`<none>`}`,`contribution-version-mismatch`);let s=g.join(r,e.entrypoint);R(s,r,`Contribution entrypoint`),await z(s,t,`Contribution entrypoint`,n);try{await m.access(s)}catch{throw new L(`Contribution entrypoint not found for ${e.packageName}: ${e.entrypoint}`,`contribution-entrypoint-mismatch`)}let{algorithm:c}=B(e.integrity),l;try{l=await H(r,c)}catch(t){if(t instanceof L)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 L(`Contribution package cannot be read for ${e.packageName}`,`contribution-entrypoint-mismatch`):t}if(l!==e.integrity)throw new L(`Contribution integrity mismatch for ${e.packageName}: expected ${e.integrity}, computed ${l}`,`contribution-integrity-mismatch`);return s}async function G(e,t,n){let r=await n.resolveWorkspaceRoot(e.workspaceId);if(r===void 0)throw new L(`Unknown workspace ID: ${e.workspaceId}`,`unknown-workspace`);try{if(!(await m.stat(r)).isDirectory())throw new L(`Workspace root is not a directory: ${r}`,`containment-violation`)}catch(e){throw e instanceof L?e:new L(`Workspace root does not exist: ${r}`,`containment-violation`)}let i=await m.realpath(r),a=g.resolve(r,e.sourcePath);if(R(a,r,`Source path`),g.relative(r,a).split(g.sep).some(St))throw new L(`Workflow source path selects excluded workspace content: ${e.sourcePath}`,`source-path-mismatch`);await z(a,r,`Source path`,i);let o=await U(r);if(o!==e.rootDigest)throw new L(`Workspace root digest mismatch: expected ${e.rootDigest}, computed ${o}`,`digest-mismatch`);try{await m.access(a)}catch{throw new L(`Workflow source file not found: ${a}`,`source-missing`)}return{workspaceRoot:r,sourcePath:a,contributionEntrypoints:await Promise.all(t.map(e=>W(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 I(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 I(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 G(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`?_(e.moduleDir,`workflow-worker`,`worker-entry.ts`):_(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:re(),revision:`1`,config:e,...c==null?{}:{runContext:c},preservation:{required:[]}});return{state:`authority-committed`,result:et(await $e({authority:this.options.authority,executionId:e.executionId,instruction:l,withAttemptCreation:r?.withAttemptCreation,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=ve.parse(e),i=await s(r);return{state:`uncommitted`,result:await tt({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=ee(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(w.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(w.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(b.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`]},Wt={code:`outcome-acknowledged`,summary:`Piscina runner settled and the Authority acknowledged its workflow outcome`},Gt={code:`outcome-delivery-ended`,summary:`Piscina runner settled and its bounded workflow outcome delivery ended`};function J(e){let t=new Set,n;return{publish:r=>{if(n!==void 0)return;let i=r();n=i;let a=[...t];t.clear();for(let t of a)try{t(i)}catch(t){console.error(`${e} observer failed:`,t)}},observe:e=>n===void 0?(t.add(e),()=>t.delete(e)):(e(n),()=>void 0)}}function Kt(e){let t=J(`[PiscinaThinWorkflowProvider] Infrastructure-conclusion`);return{conclude:n=>{t.publish(()=>({evidence:ue.parse({source:e.slice(0,C.source),summary:n.slice(0,C.summary),observedAt:new Date().toISOString()})}))},observe:t.observe}}function qt(e,t){let n=J(`[PiscinaThinWorkflowProvider] Provider-completion`),r=J(`[PiscinaThinWorkflowProvider] Local-observation-loss`),i;return{completion:{complete:r=>{i===void 0&&n.publish(()=>{let n=ue.parse({source:e.slice(0,C.source),code:r.code,summary:r.summary,observedAt:new Date().toISOString()});return t(),i=`completion`,n})},observe:n.observe},localObservationLoss:{lose:()=>{i===void 0&&r.publish(()=>(i=`local-observation-loss`,{}))},observe:e=>r.observe(()=>e())}}}var Jt=class{executionAttemptId;controller;detachCallerAbort;infrastructure;completion;localObservationLoss;revokeBusIdentity;constructor(e,t,n,r,i,a,o){this.executionAttemptId=e,this.controller=t,this.detachCallerAbort=n,this.infrastructure=r,this.completion=i,this.localObservationLoss=a,this.revokeBusIdentity=o}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(),Promise.resolve()}observeInfrastructureConclusion(e){return this.infrastructure.observe(e)}observeProviderCompletion(e){return this.completion.observe(e)}observeLocalObservationLoss(e){return this.localObservationLoss.observe(e)}},Yt=class{options;environment=`piscina`;allocationLifetime=`provisioner-process-bound`;baseCapabilities;constructor(e){this.options=e,this.baseCapabilities=me.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=Kt(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}),f=!1,p=()=>{f||(f=!0,d.cleanup())};o=p;let m=qt(this.id,p),h=new Jt(i,n,a,r,m.completion,m.localObservationLoss,p);t.throwIfAborted();let g=this.options.runner.runWithReadiness({...c,busAuth:{kind:`hmac`,secret:d.secret}},n.signal,e.workerManifest,{executionAttemptId:i,bootstrapDeadlineAt:e.bootstrapDeadlineAt});return g.ready.then(()=>this.submitOutcomeOnSettlement(g.result,s,i,c.workflowId,r.conclude,m.completion.complete),e=>{n.abort(e),g.result.catch(()=>void 0),o?.(),r.conclude(`Piscina worker for attempt '${i}' was refused before its workflow run was admitted: `+(e instanceof Error?e.message:String(e))),m.localObservationLoss.lose()}),{kind:`allocated`,allocationRef:u,handle:h}}catch(e){throw n.abort(e),a(),o?.(),e}}async submitOutcomeOnSettlement(e,t,n,r,i,a){let o;try{o=await e}catch(e){o={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:o},{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`),a(Gt);return}a(Wt)}buildAllocationRef(e){let t={version:fe,providerId:this.id,providerData:{executionAttemptId:e,allocatedAt:Date.now()}};return pe.parse(t)}};const Xt=[Re,Fe,Le];function Zt(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 Qt(e,t,n){return at({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 $t(e){let t=oe();t.registerNamespaces([...x,...S]);let{context:n}=e,r=new be(t,{surface:`headless`,extensionContextBase:{cwd:n.cwd,platform:n.platform,homedir:n.homedir,makaioHome:n.makaioHome,username:n.username,machineId:n.machineId,tryImport:D}}),i,a=[()=>t.disconnect()],o=Zt(a);try{await e.connectAuthority(t);let s=[...e.contributedPackages,...await e.loadContributedPackages?.(t)??[]],{adapterSubsystemPackage:c}=it({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(Ne());let u=[...Xt,c,je,...P(s)?[Ie]:[],Me(1),ze,A,l,...We(s)];r.load(u),a.push(...F(u,t,r)),a.push(()=>r.shutdown()),await r.startAll(),i=Qt(t,r,n.machineId),a.push(()=>{i?.cleanup(),i=void 0});let d=r.getExtensionService(Ae);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(xe.ready,{machineId:n.machineId}),{bus:t,coordinator:r,machineId:n.machineId,shutdown:o}}catch(e){throw await o().catch(()=>void 0),e}}function en(e){return Number.isInteger(e)&&e>=1&&e<=2147483647}function Y(e,t){try{process.kill(-e,t)}catch(e){if(e.code!==`ESRCH`)throw e}}async function tn(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 nn(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 nn(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 rn(e){if(e===void 0)return!0;try{try{Y(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 tn(e,Math.min(1e3,n)))return!0;await nt(20)}}catch{}return!1}async function an(e){if(e.signal?.aborted)return{status:`cancelled`,exitCode:null};if(!en(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 on(e)}catch{return{status:`spawn-failed`,exitCode:null,message:`Could not start the setup command`}}}function on(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{Y(n.pid,`SIGTERM`)}catch(e){if(e.code!==`EPERM`){r=`stop-failed`;return}}i=setTimeout(()=>{try{n.pid!==void 0&&Y(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),rn(n.pid).then(e=>{t({status:e?r??(a===0?`completed`:`failed`):`stop-failed`,exitCode:a})})})})}async function sn(e,t,n){if(g.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=g.join(r,i),R(r,e,`Source root`),await z(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 z(r,e,`Source root`,e)}async function cn(e){e.signal?.throwIfAborted();let{requirement:t}=e,n=g.resolve(e.workspaceRoot);if(!g.isAbsolute(e.workspaceRoot)||n===g.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 sn(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 ln(t,{workspaceRoot:r,sourceRoots:i})}function ln(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 an({...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?se(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 un(e,t,n,r){let i=y[`instruction.get`].response.parse(await e.request(b.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 Z(e,t,n,r){let{executionAttemptId:i,runtimeGeneration:a}=t,o=y[`operation.admit`].response.parse(await Rt(async t=>await e.request(b.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 Q(e){return(e instanceof Error?e.message:String(e)).slice(0,8192)||`Local execution failed without a diagnostic message`}function dn(e,t){return e.find(e=>e.kind===t.workload.kind&&e.version===t.workload.version)}function fn(e){return{signal:e??new AbortController().signal,release:()=>{}}}async function $(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 pn(e,t,n,r){let i=y[`operation.report`].response.parse(await Rt(async i=>await e.request(b.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 mn(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 hn(e,t,n,r){if(r.aborted)return await $(e,t,n,{kind:`cancelled`},void 0,void 0);let i=await Z(e,t,`workspace-preparation`,`workspace-preparation:${n.id}:${t.runtimeGeneration}`);if(r.aborted)return await $(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:cn}).prepare({requirement:n.workspace,workspaceRoot:t.workspaceRoot,signal:r});a=e,o=await e.runSetup({signal:r,env:t.setupEnv})}catch(o){return await $(e,t,n,X(o,r)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`workspace-preparation`,message:Q(o)},i,a)}let s=mn(o);if(s!==void 0)return await $(e,t,n,s,i,a);if(r.aborted)return await $(e,t,n,{kind:`cancelled`},i,a);let c=await pn(e,t,i,a);return c===void 0?await $(e,t,n,{kind:`technical-failure`,stage:`workspace-preparation`,message:`Workspace preparation report refused by the Authority`},i,a):r.aborted?await $(e,t,n,{kind:`cancelled`},void 0,a):{handle:a,binding:c}}async function gn(e,t,n,r,i){if(i.signal.aborted)return await $(e,t,n,{kind:`cancelled`},void 0,void 0);let a,o;if(n.workspace!==void 0){let r=await hn(e,t,n,i.signal);if(`outcome`in r)return r;a=r.handle,o=r.binding}if(i.signal.aborted)return await $(e,t,n,{kind:`cancelled`},void 0,a);let s=await Z(e,t,`workload-invocation`,`workload-invocation:${n.id}:${t.runtimeGeneration}`);if(i.signal.aborted)return await $(e,t,n,{kind:`cancelled`},s,a);let c;try{c={kind:`workload-result`,result:de.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:Q(e)}}return await $(e,t,n,c,s,a)}async function _n(e,t){let n;try{n=await un(e,t.executionAttemptId,t.runtimeGeneration,t.signal)}catch(n){if(se(n,t.signal))return await $(e,t,void 0,{kind:`cancelled`},void 0,void 0);throw n}let r=dn(t.adapters,n);if(r===void 0)return await $(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})??fn(t.signal))}catch(r){let i=X(r,t.signal)?{kind:`cancelled`}:{kind:`technical-failure`,stage:`startup`,message:Q(r)};return await $(e,t,n,i,void 0,void 0)}try{return await gn(e,t,n,r,i)}finally{try{i.release()}catch{console.warn(`[makaio-worker] Workload control release failed.`)}}}async function vn(e,t,n,r,i){let a=he[`runtime.inputs.get`].response.parse(await e.request(w.runtime.inputs.get,{executionAttemptId:t},{signal:i}));if(a.runtimeInputs===null)throw Error(`Selected Worker Runtime inputs are unavailable`);return ge.parse({...n,...a.runtimeInputs,createdAt:0,env:r})}function yn(e,t){let n=(e,t)=>{let n=ne(e,t);return n===``||!te(n)&&n!==`..`&&!n.startsWith(`../`)&&!n.startsWith(`..\\`)};return n(e,t)||n(t,e)}async function bn(t,n,r,i){let a=await t.loadContributions(r,i);i.throwIfAborted();let o=e();return await $t({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 xn(e,t,n){let r={...e.workflowEnv},i,a=!0;return{adapter:{kind:Je,version:Ye,async bindControl({instruction:t,signal:r}){let i=Qe(t);if(i.executionId!==e.executionId)throw Error(`Workflow instruction execution identity mismatch`);let a=new AbortController,o=n.on(ye(i.cancelSubject),()=>a.abort());try{return await ce(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=Qe(o);a=o.preservation.required.length!==0;let u=c??new AbortController().signal,d;try{u.throwIfAborted();let a=await vn(n,e.executionAttemptId,l,r,u),o=await e.materialize(a,u);(s===void 0||!yn(o.context.workspaceRoot,s.workspaceRoot))&&(i=o.cleanup);let c=Sn(o.context,s);return u.throwIfAborted(),d=await bn(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 Sn(e,t){return t===void 0?e:{...e,workspaceRoot:t.workspaceRoot}}async function Cn(e,t){if(!(t.outcome.kind!==`workload-result`||e.onPostCommit===void 0))try{let n=_e.parse(t.outcome.result);await e.onPostCommit(n,t.decision)}catch{}}async function wn(e,t){t.throwIfAborted();let n={...e.workflowEnv},i=re(),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:()=>Tn(e,a)}),u=s.bus,d=xn({...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 _n(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 Cn(e,f),f}finally{try{await d.releaseExecutable(f)}finally{l.cleanup(),await s.close()}}}function Tn(e,t){let n=oe();return n.registerNamespaces([...x,...S]),{bus:n,async connect(r){try{await e.connectBus(n,t,r),r.throwIfAborted()}catch(e){throw n.disconnect(),e}},close:()=>n.disconnect()}}const En=p(d),Dn=[`-c`,`core.attributesFile=${T}`],On=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 kn(e,t,n){try{let r=await e.resolveRepository(t,n);if(!g.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 An(e,t,n,r,i){let a;try{a=(await En(`git`,[...Dn,`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 jn(e){if(!en(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=On.parse(t.input),a=await kn(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:T,GIT_CONFIG_SYSTEM:T,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 An(n,i.revision,o,e.timeoutMs,r);let a=await an({workspaceRoot:n,signal:r,env:o,recipe:{command:`git`,args:[...Dn,...t],env:{},timeoutMs:e.timeoutMs}});if(a.status===`cancelled`&&r?.throwIfAborted(),a.status!==`completed`)throw Error(`Git source ${t[0]} ${a.status}`)}}}function Mn(e){let t=jn(e);return{prepare:e=>cn({...e,realizeSource:t})}}export{bt as A,rt as B,xt as C,mt as D,W as E,A as F,ot as I,D as L,M,gt as N,j as O,yt as P,at as R,U as S,B as T,Et as _,Yt as a,z as b,Nt as c,Bt as d,Mt as f,Dt as g,Ot as h,$t as i,F as j,ht as k,K as l,kt as m,wn as n,q as o,jt as p,_n as r,Pt as s,Mn as t,Vt as u,L as v,G as w,H as x,R as y,it as z};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@makaio/framework",
3
- "version": "1.0.0-dev-1788897280508",
3
+ "version": "1.0.0-dev-1788914730846",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/makaio-ai/makaio-framework.git",