@makaio/framework 1.0.0-dev-1788511348215 → 1.0.0-dev-1788811230746

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 (300) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapters/config/index.d.mts +1 -1
  3. package/dist/adapters/index.d.mts +2 -2
  4. package/dist/adapters/node.d.mts +1 -1
  5. package/dist/attempt-fixtures-CnrnF5_4.mjs +1 -0
  6. package/dist/attempt-record-codec-B32Whx75.mjs +1 -0
  7. package/dist/authority-state-bootstrap-7Cgb9TR2.mjs +1 -0
  8. package/dist/bootstrap-start-client-DrvofWwi.mjs +1 -0
  9. package/dist/bus/index.d.mts +27 -9
  10. package/dist/bus/index.mjs +1 -1
  11. package/dist/bus-CobBUqjo.mjs +2 -0
  12. package/dist/bus-Uy9C3TBM.mjs +1 -0
  13. package/dist/clients/index.d.mts +1 -1
  14. package/dist/clients/managed-install.d.mts +1 -1
  15. package/dist/code-execution/worker-entry.d.mts +1 -1
  16. package/dist/{context-resolution-841T7jBI.d.mts → context-resolution-C2VBZhaR.d.mts} +5 -5
  17. package/dist/contracts/adapter/index.d.mts +2 -2
  18. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  19. package/dist/contracts/artifact/index.d.mts +2 -2
  20. package/dist/contracts/auth/index.d.mts +2 -2
  21. package/dist/contracts/automation-trigger/index.d.mts +3 -3
  22. package/dist/contracts/canonical-model/index.d.mts +1 -1
  23. package/dist/contracts/capabilities/index.d.mts +2 -2
  24. package/dist/contracts/client/index.d.mts +2 -2
  25. package/dist/contracts/code-execution/index.d.mts +1 -1
  26. package/dist/contracts/common/index.d.mts +1 -1
  27. package/dist/contracts/config/index.d.mts +1 -1
  28. package/dist/contracts/extension/index.d.mts +5 -5
  29. package/dist/contracts/facet/index.d.mts +1 -1
  30. package/dist/contracts/harness/index.d.mts +1 -1
  31. package/dist/contracts/host/index.d.mts +1 -1
  32. package/dist/contracts/index.d.mts +1254 -42
  33. package/dist/contracts/index.mjs +1 -1
  34. package/dist/contracts/materialization/index.d.mts +3 -3
  35. package/dist/contracts/model-registry/index.d.mts +1 -1
  36. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  37. package/dist/contracts/platform/index.d.mts +1 -1
  38. package/dist/contracts/provider/index.d.mts +2 -2
  39. package/dist/contracts/reaction/index.d.mts +1 -1
  40. package/dist/contracts/session/index.d.mts +2 -2
  41. package/dist/contracts/shared/index.d.mts +2 -2
  42. package/dist/contracts/skill/index.d.mts +1 -1
  43. package/dist/contracts/telemetry/index.d.mts +1 -1
  44. package/dist/contracts/timeout/index.d.mts +1 -1
  45. package/dist/contracts/variant/index.d.mts +1 -1
  46. package/dist/contracts/worker/index.d.mts +2 -2
  47. package/dist/contracts/worker/index.mjs +1 -1
  48. package/dist/contracts/workflow/index.d.mts +2 -2
  49. package/dist/{contribution-CUHLVLsT.d.mts → contribution-Crm-mctl.d.mts} +2 -2
  50. package/dist/{definition-DyGImhyi.d.mts → definition-u_5rYQtc.d.mts} +1 -1
  51. package/dist/{detached-extension-handle-D0aI0pJA.mjs → detached-extension-handle-DAXKQT9c.mjs} +1 -1
  52. package/dist/execution-attempt-repository-Djg3qDRv.mjs +1 -0
  53. package/dist/{execution-attempt-repository-DY4KTptE.d.mts → execution-attempt-repository-OryBjQQI.d.mts} +740 -9
  54. package/dist/{execution-target-H0RWV7Py.mjs → execution-target-BcoF_oDB.mjs} +1 -1
  55. package/dist/{hook-responses-9Ywsqzzq.d.mts → hook-responses-DcapjzLb.d.mts} +1 -1
  56. package/dist/{index-C6aSnO8m.d.mts → index-9PUmCySn.d.mts} +587 -67
  57. package/dist/{index-BmilK-co2.d.mts → index-B6Kr3cxD2.d.mts} +245 -46
  58. package/dist/{index-BNzUyVwV.d.mts → index-BDDavX2S.d.mts} +2 -2
  59. package/dist/{index-DHnSLGP4.d.mts → index-BDzqNCXs.d.mts} +1 -1
  60. package/dist/{index-Wbd_syN2.d.mts → index-BTCodvXA.d.mts} +41 -36
  61. package/dist/{index-B0VO0rAl.d.mts → index-Bo3LRb2u.d.mts} +1 -1
  62. package/dist/{index-Dg11JxKZ.d.mts → index-BwccWakG.d.mts} +1 -1
  63. package/dist/{index-DHH-93YD.d.mts → index-BxTM9lY0.d.mts} +3 -3
  64. package/dist/{index-CDud4NAm.d.mts → index-CAYbui7g.d.mts} +28 -21
  65. package/dist/{index-CPRQ4dWX.d.mts → index-CBixkF0n.d.mts} +12 -0
  66. package/dist/{index-C146Eq_J.d.mts → index-CXH1Bk0W.d.mts} +3 -3
  67. package/dist/{index-BmevAPME2.d.mts → index-Cbv_3Xi12.d.mts} +1 -1
  68. package/dist/{index-DWBkiiXH.d.mts → index-CfJKwWJa.d.mts} +1 -1
  69. package/dist/{index-B0yMCJW8.d.mts → index-CgqEyk9R.d.mts} +1 -1
  70. package/dist/{index-DI2lS7VT.d.mts → index-CnGHGFMC.d.mts} +13 -13
  71. package/dist/{index-B_8bA2JW.d.mts → index-DEpAI8CY.d.mts} +1 -1
  72. package/dist/{index-CIEycZrt.d.mts → index-DIhkK4Y0.d.mts} +1 -1
  73. package/dist/{index-DNI6UF9h.d.mts → index-Df9L5wwp.d.mts} +10 -10
  74. package/dist/{index-Bqk0pJBQ2.d.mts → index-DrO6QLwf2.d.mts} +1 -1
  75. package/dist/{index-DXtQRehh.d.mts → index-DsjUnKyr.d.mts} +1 -1
  76. package/dist/{index-Cny5RvjO.d.mts → index-J-kv32zv.d.mts} +2 -2
  77. package/dist/{index-CmwAJ8-5.d.mts → index-QJW9g1mG.d.mts} +1 -1
  78. package/dist/kernel/cli/index.d.mts +2 -2
  79. package/dist/kernel/cli/register.d.mts +1 -1
  80. package/dist/kernel/extension/index.d.mts +1 -1
  81. package/dist/kernel/index.d.mts +5 -5
  82. package/dist/kernel/namespace/index.d.mts +1 -1
  83. package/dist/kernel/observability/index.d.mts +1 -1
  84. package/dist/kernel/providers/index.d.mts +1 -1
  85. package/dist/kernel/window/index.d.mts +1 -1
  86. package/dist/{lib-Cm-uEoC1.mjs → lib-271rPR7A.mjs} +1 -1
  87. package/dist/{lib-BpGvHZye.mjs → lib-RFpLjUda.mjs} +1 -1
  88. package/dist/{load-extensions-BQoXaHhR.d.mts → load-extensions-CY8ELnCp.d.mts} +1 -1
  89. package/dist/{load-extensions-DG5LvPyM.mjs → load-extensions-D9inWcDy.mjs} +1 -1
  90. package/dist/{namespace-K23m4b0n.d.mts → namespace-BkOvOAU5.d.mts} +6 -6
  91. package/dist/node/bus-server/index.d.mts +1 -1
  92. package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
  93. package/dist/node/transports/index.d.mts +56 -16
  94. package/dist/node/transports/index.mjs +2 -2
  95. package/dist/package-DEYXB80d.mjs +7 -0
  96. package/dist/{package-efR90JGe.d.mts → package-eOEt1w6u.d.mts} +498 -17
  97. package/dist/package.json +1 -1
  98. package/dist/rules/index.d.mts +1 -1
  99. package/dist/rules/schemas.d.mts +1 -1
  100. package/dist/runtime-bun/index.mjs +1 -1
  101. package/dist/runtime-node/code-execution/index.d.mts +2 -2
  102. package/dist/runtime-node/extension-discovery.d.mts +1 -1
  103. package/dist/runtime-node/extension-validation.d.mts +1 -1
  104. package/dist/runtime-node/extension-validation.mjs +1 -1
  105. package/dist/runtime-node/index.d.mts +6 -6
  106. package/dist/runtime-node/index.mjs +24 -24
  107. package/dist/runtime-node/makaio-config.d.mts +1 -1
  108. package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
  109. package/dist/runtime-node/workflow-worker/index.d.mts +2 -2
  110. package/dist/runtime-node/workflow-worker/index.mjs +1 -1
  111. package/dist/runtime-node/workflow-worker/worker-entry.d.mts +69 -9
  112. package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
  113. package/dist/schemas-CeHU889f.mjs +1 -0
  114. package/dist/{schemas-BCXvEWyF.d.mts → schemas-DqnA42bw.d.mts} +4 -4
  115. package/dist/{schemas-D7EeKBDJ.d.mts → schemas-DuJs6Iqj.d.mts} +4 -4
  116. package/dist/scoped-bus-DwVrmi_1.mjs +1 -0
  117. package/dist/services/adapter-runtime/index.d.mts +3 -3
  118. package/dist/services/adapter-runtime/namespace.d.mts +1 -1
  119. package/dist/services/adapter-runtime/schemas.d.mts +1 -1
  120. package/dist/services/adapter-subsystem/index.d.mts +3 -3
  121. package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
  122. package/dist/services/agent-runtime/index.d.mts +2 -2
  123. package/dist/services/agent-runtime/namespace.d.mts +1 -1
  124. package/dist/services/agent-runtime/schemas.d.mts +1 -1
  125. package/dist/services/capability/index.d.mts +2 -2
  126. package/dist/services/code-execution/index.d.mts +1 -1
  127. package/dist/services/codebase/index.d.mts +2 -2
  128. package/dist/services/codebase/namespace.d.mts +1 -1
  129. package/dist/services/codebase/schemas.d.mts +1 -1
  130. package/dist/services/compression/index.d.mts +2 -2
  131. package/dist/services/compression/namespace.d.mts +1 -1
  132. package/dist/services/compression/schemas.d.mts +1 -1
  133. package/dist/services/context-rules/index.d.mts +1 -1
  134. package/dist/services/execution-target/index.d.mts +3 -3
  135. package/dist/services/execution-target/index.mjs +1 -1
  136. package/dist/services/execution-target/namespace.d.mts +1 -1
  137. package/dist/services/execution-target/namespace.mjs +1 -1
  138. package/dist/services/execution-target/schemas.d.mts +1 -1
  139. package/dist/services/execution-target/schemas.mjs +1 -1
  140. package/dist/services/filesystem/index.d.mts +1 -1
  141. package/dist/services/filesystem/namespace.d.mts +6 -6
  142. package/dist/services/filesystem/schemas.d.mts +3 -3
  143. package/dist/services/index.d.mts +48 -46
  144. package/dist/services/index.mjs +1 -1
  145. package/dist/services/log-import/browser.d.mts +2 -2
  146. package/dist/services/log-import/index.d.mts +2 -2
  147. package/dist/services/log-import/log-import.d.mts +1 -1
  148. package/dist/services/materialization/index.d.mts +1 -1
  149. package/dist/services/model-registry/index.d.mts +1 -1
  150. package/dist/services/preferences/index.d.mts +2 -2
  151. package/dist/services/preferences/schemas.d.mts +1 -1
  152. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  153. package/dist/services/provider-context/index.d.mts +1 -1
  154. package/dist/services/session/handlers/index.d.mts +1 -1
  155. package/dist/services/session/index.d.mts +9 -9
  156. package/dist/services/session/messages/namespace.d.mts +1 -1
  157. package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
  158. package/dist/services/session/session-events/namespace.d.mts +1 -1
  159. package/dist/services/session/storage/namespace.d.mts +1 -1
  160. package/dist/services/session/storage/schema.d.mts +1 -1
  161. package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
  162. package/dist/services/session/turns/namespace.d.mts +1 -1
  163. package/dist/services/session-editor/index.d.mts +1 -1
  164. package/dist/services/settings/index.d.mts +3 -3
  165. package/dist/services/settings/namespace.d.mts +4 -4
  166. package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
  167. package/dist/services/settings/storage/index.d.mts +3 -3
  168. package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
  169. package/dist/services/subagent/index.d.mts +1 -1
  170. package/dist/services/subagent-template/index.d.mts +2 -2
  171. package/dist/services/subagent-template/namespace.d.mts +1 -1
  172. package/dist/services/subagent-template/schemas.d.mts +1 -1
  173. package/dist/services/tool-approval/index.d.mts +1 -1
  174. package/dist/services/tools/index.d.mts +1 -1
  175. package/dist/services/tray-menu/index.d.mts +3 -3
  176. package/dist/services/tray-menu/namespace.d.mts +1 -1
  177. package/dist/services/tray-menu/schemas.d.mts +1 -1
  178. package/dist/services/turn/index.d.mts +1 -1
  179. package/dist/services/turn/namespace.d.mts +1 -1
  180. package/dist/services/workflow-transitions/index.d.mts +1 -1
  181. package/dist/{src-BmSQ3rlz.mjs → src-DEgV239R.mjs} +1 -1
  182. package/dist/storage/drizzle/client.d.mts +1 -1
  183. package/dist/storage/drizzle/index.d.mts +1 -1
  184. package/dist/storage/handlers/drizzle/index.d.mts +1 -1
  185. package/dist/storage/handlers/index.d.mts +1 -1
  186. package/dist/{transition-D3zUBTPc.d.mts → transition-BB138WkK.d.mts} +2 -2
  187. package/dist/{types-DcxBYlPA.d.mts → types-CR23FzmK.d.mts} +3 -3
  188. package/dist/{types-CtDGkyLx2.d.mts → types-p55qvq922.d.mts} +1 -1
  189. package/dist/ui-kernel/index.d.mts +1 -1
  190. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  191. package/dist/{view-builder-B0j9p5C0.d.mts → view-builder-qIGQrZfs.d.mts} +1 -1
  192. package/dist/worker-DPTYFyNP.mjs +1 -0
  193. package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
  194. package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
  195. package/dist/workflow-engine/index.d.mts +396 -177
  196. package/dist/workflow-engine/index.mjs +1 -1
  197. package/dist/workflow-engine/package.d.mts +1 -1
  198. package/dist/workflow-engine/package.mjs +1 -1
  199. package/dist/workflow-engine/provider-operation.d.mts +1 -1
  200. package/dist/workflow-engine/testing/conformance.d.mts +85 -0
  201. package/dist/workflow-engine/testing/conformance.mjs +1 -0
  202. package/dist/workflow-engine/testing/index.d.mts +63 -4
  203. package/dist/workflow-engine/testing/index.mjs +1 -1
  204. package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
  205. package/dist/workflow-engine/testing/sqlite.mjs +136 -39
  206. package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
  207. package/dist/workflow-worker-BW3CE0YG.mjs +2 -0
  208. package/package.json +13 -1
  209. package/dist/attempt-record-codec-dC9LSFUE.mjs +0 -1
  210. package/dist/authority-state-bootstrap-eitx6Ukn.mjs +0 -1
  211. package/dist/await-trigger-Bkg2BQfg.mjs +0 -1
  212. package/dist/bus-D6NoBhIV.mjs +0 -2
  213. package/dist/bus-UgFdHybD.mjs +0 -1
  214. package/dist/package-Cgjpm9om.mjs +0 -7
  215. package/dist/schemas-TK29KWx-.mjs +0 -1
  216. package/dist/scoped-bus-DoPmCJeM.mjs +0 -1
  217. package/dist/worker-CARV52hT.mjs +0 -1
  218. package/dist/workflow-worker-Dul-wcOR.mjs +0 -1
  219. /package/dist/{adapter-binding-CATvmGuz.d.mts → adapter-binding-D68U_Hmh.d.mts} +0 -0
  220. /package/dist/{base-orchestrator-B4YW6z_Q.d.mts → base-orchestrator-DA95InJU.d.mts} +0 -0
  221. /package/dist/{capability-service-BW1-teFU.d.mts → capability-service-s4ZYSEWc.d.mts} +0 -0
  222. /package/dist/{client-binary-version-verifier-lcv83Hq3.d.mts → client-binary-version-verifier-kd9LP9AQ.d.mts} +0 -0
  223. /package/dist/{client-BG0WX5Vz.d.mts → client-f5A-6La5.d.mts} +0 -0
  224. /package/dist/{clients-namespace-DLAjOTTb.d.mts → clients-namespace-q4PqU1cA.d.mts} +0 -0
  225. /package/dist/{config-namespace-CH7sJZ4f.d.mts → config-namespace-Cp71zTT0.d.mts} +0 -0
  226. /package/dist/{create-static-mount-DxuixuLZ.mjs → create-static-mount-CmQgA0jq.mjs} +0 -0
  227. /package/dist/{definition-BrgzUuFk.d.mts → definition-BHSzhrUf.d.mts} +0 -0
  228. /package/dist/{extension-context-QmFuHdq5.d.mts → extension-context-BmU5XKjI.d.mts} +0 -0
  229. /package/dist/{extension-discovery-Dhu3WplO.d.mts → extension-discovery-DnO7bINK.d.mts} +0 -0
  230. /package/dist/{filesystem-service-ZJ43SbBi.d.mts → filesystem-service-BBArEDPL.d.mts} +0 -0
  231. /package/dist/{index-BC-6qNeo.d.mts → index-B-zl-O-Y.d.mts} +0 -0
  232. /package/dist/{index-BfV8U4XX.d.mts → index-BB0HypzC.d.mts} +0 -0
  233. /package/dist/{index-8y4hT9WL.d.mts → index-Bf2MgOni.d.mts} +0 -0
  234. /package/dist/{index-6trZYnUP2.d.mts → index-BhOMZWZa2.d.mts} +0 -0
  235. /package/dist/{index-BkbnC65b.d.mts → index-C-cnB1Te.d.mts} +0 -0
  236. /package/dist/{index-B4svZC6L.d.mts → index-C9xVZ-gt.d.mts} +0 -0
  237. /package/dist/{index-kzIjbrS02.d.mts → index-CDLf3Fka2.d.mts} +0 -0
  238. /package/dist/{index-jxPncqWZ2.d.mts → index-COOM1j_L2.d.mts} +0 -0
  239. /package/dist/{index-BuMsrli0.d.mts → index-CPWBGotQ.d.mts} +0 -0
  240. /package/dist/{index-pvX-BIpr2.d.mts → index-CcrXttC02.d.mts} +0 -0
  241. /package/dist/{index-B5dP8rj6.d.mts → index-CkpR5sIH.d.mts} +0 -0
  242. /package/dist/{index-CmbkCxj-.d.mts → index-Co1da7YK.d.mts} +0 -0
  243. /package/dist/{index-VzLAV0Yt.d.mts → index-CrcfeFOo.d.mts} +0 -0
  244. /package/dist/{index-BM56936c.d.mts → index-CsFN2nv7.d.mts} +0 -0
  245. /package/dist/{index-CVpaGijY.d.mts → index-D-JbTXIH.d.mts} +0 -0
  246. /package/dist/{index-B-3I98nw.d.mts → index-D6RMsZko.d.mts} +0 -0
  247. /package/dist/{index-l01zsChf.d.mts → index-D94yE5Dr.d.mts} +0 -0
  248. /package/dist/{index-D037TVsm.d.mts → index-DQD2-jcL.d.mts} +0 -0
  249. /package/dist/{index-D8D-yibS2.d.mts → index-DSLTgc7h2.d.mts} +0 -0
  250. /package/dist/{index-CL0Jo1b92.d.mts → index-DSN2t48K.d.mts} +0 -0
  251. /package/dist/{index-DQ8o3JGi.d.mts → index-DW4SE_sH.d.mts} +0 -0
  252. /package/dist/{index-DgspOUa72.d.mts → index-DYHxzwok2.d.mts} +0 -0
  253. /package/dist/{index-BMRB9yhF.d.mts → index-D_sMzTvv.d.mts} +0 -0
  254. /package/dist/{index-BFWvT0NG.d.mts → index-Df1c_2PF.d.mts} +0 -0
  255. /package/dist/{index-B2Y1Wvbh.d.mts → index-Dn_SGTgp.d.mts} +0 -0
  256. /package/dist/{index-C4V8Pmi4.d.mts → index-KAAnSRZt.d.mts} +0 -0
  257. /package/dist/{index-Ek4y8M9J2.d.mts → index-NhW2h2wH2.d.mts} +0 -0
  258. /package/dist/{index-CqdMbYmR.d.mts → index-mK-rgiit.d.mts} +0 -0
  259. /package/dist/{index-BTEJfzjE.d.mts → index-xaBSwHxJ.d.mts} +0 -0
  260. /package/dist/{json-value-DPqb-SJ8.d.mts → json-value-pX6xnLGw.d.mts} +0 -0
  261. /package/dist/{jsonl-transport-Cyyh5Wje.mjs → jsonl-transport-DQIlRX_y.mjs} +0 -0
  262. /package/dist/{lib-BqV8hYtk.mjs → lib-6eNAiNK7.mjs} +0 -0
  263. /package/dist/{namespace-DknCutQZ.d.mts → namespace-2qvc6E2Y.d.mts} +0 -0
  264. /package/dist/{namespace-DBO1OzYB.d.mts → namespace-9ychTEk_.d.mts} +0 -0
  265. /package/dist/{namespace-CVFaZv8x.d.mts → namespace-BGDq7HmW.d.mts} +0 -0
  266. /package/dist/{namespace-BUYDmd0r.d.mts → namespace-CPR2xem0.d.mts} +0 -0
  267. /package/dist/{namespace-CPG6u60N.d.mts → namespace-CQEYu8az.d.mts} +0 -0
  268. /package/dist/{namespace-DqZweTbX.d.mts → namespace-CVg_cpkh.d.mts} +0 -0
  269. /package/dist/{namespace-DOezqDti.d.mts → namespace-CirognbA.d.mts} +0 -0
  270. /package/dist/{namespace-l-HG1rLF.d.mts → namespace-Cs-cOyrn.d.mts} +0 -0
  271. /package/dist/{namespace-BNp7n_gu.d.mts → namespace-CxXNlHpn.d.mts} +0 -0
  272. /package/dist/{namespace-BdAK0lD8.d.mts → namespace-DAINF1II.d.mts} +0 -0
  273. /package/dist/{namespace-B0ftHlK3.d.mts → namespace-DG0hjPcx.d.mts} +0 -0
  274. /package/dist/{namespace-BRuHzhPo.d.mts → namespace-DokogwAZ.d.mts} +0 -0
  275. /package/dist/{namespace-BGRHcrmp.d.mts → namespace-DykqxEyX.d.mts} +0 -0
  276. /package/dist/{orchestrator-shared-CNHSImNY.d.mts → orchestrator-shared-BzqqcY2z.d.mts} +0 -0
  277. /package/dist/{packages-CxPMEg8D.d.mts → packages-Cx-BwSZr.d.mts} +0 -0
  278. /package/dist/{provider-operation-DbdyFwNm.d.mts → provider-operation-B2wQST6N.d.mts} +0 -0
  279. /package/dist/{providers-namespace-CfZKp-C0.d.mts → providers-namespace-DsKTnuO1.d.mts} +0 -0
  280. /package/dist/{schema-B3Pf7JP7.d.mts → schema-zSyY22Ck.d.mts} +0 -0
  281. /package/dist/{schemas-ChmQldVH.d.mts → schemas--LAbwXvw.d.mts} +0 -0
  282. /package/dist/{schemas-CF8QwRqt.d.mts → schemas-Bk50UoMA.d.mts} +0 -0
  283. /package/dist/{schemas-bfZNpl0B.d.mts → schemas-CHRuwe18.d.mts} +0 -0
  284. /package/dist/{schemas-D7ScxLrf.d.mts → schemas-ClGDFa44.d.mts} +0 -0
  285. /package/dist/{schemas-BGvkTiCx.d.mts → schemas-CzGN0eqW.d.mts} +0 -0
  286. /package/dist/{schemas-C1mxTfd7.d.mts → schemas-D0_kfoDf.d.mts} +0 -0
  287. /package/dist/{schemas-Pe892GgN.d.mts → schemas-DmULJ7Jk.d.mts} +0 -0
  288. /package/dist/{schemas-B50oWBuj.d.mts → schemas-Dn1JDTPw.d.mts} +0 -0
  289. /package/dist/{schemas-B6Q-qdmn.d.mts → schemas-Dxvjq-Bi.d.mts} +0 -0
  290. /package/dist/{server-lifecycle-L8zja8t8.d.mts → server-lifecycle-WFZcCMwF.d.mts} +0 -0
  291. /package/dist/{session-lineage-bUkd3fqx.d.mts → session-lineage-C9kppcCa.d.mts} +0 -0
  292. /package/dist/{src-BacfeiI4.mjs → src-DIyWekjW.mjs} +0 -0
  293. /package/dist/{storage-namespace-YmE8XCCL.d.mts → storage-namespace-BWU-8rvj.d.mts} +0 -0
  294. /package/dist/{storage-namespace-definition-BsnYAPot.d.mts → storage-namespace-definition-B-8JKvzm.d.mts} +0 -0
  295. /package/dist/{types-DdpSEmTO.d.mts → types-8rMNe3AS.d.mts} +0 -0
  296. /package/dist/{types-DnK6Wa_Y.d.mts → types-BFeWU3WM.d.mts} +0 -0
  297. /package/dist/{types-tyv0B605.d.mts → types-BnPJa-C_.d.mts} +0 -0
  298. /package/dist/{types-OKJCOjme.d.mts → types-DQTCNM2i.d.mts} +0 -0
  299. /package/dist/{types-BlB23n4f.d.mts → types-DxHeL0pF.d.mts} +0 -0
  300. /package/dist/{window-registry-Pcf35cac.d.mts → window-registry-DQP5P2_0.d.mts} +0 -0
@@ -1,6 +1,83 @@
1
- import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-DbdyFwNm.mjs";
2
- import { BoundedRecoveryEvidence, ProviderAllocationRef, WorkerAllocationLifetime } from "@makaio/framework/contracts";
1
+ import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-B2wQST6N.mjs";
2
+ import { BoundedRecoveryEvidence, ExecutionAttemptInstruction, ExecutionAttemptOperationKind, ExecutionAttemptOperationReportRequest, ExecutionAttemptOperationReportResponse, ExecutionAttemptPreparationResult, ExecutionAttemptWorkspaceBinding, ProviderAllocationRef, WorkerAllocationLifetime } from "@makaio/framework/contracts";
3
3
 
4
+ //#region subsystems/workflow-engine/src/execution-attempt-decisions.d.ts
5
+ /** Facts read coherently by a realization before decoding runtime control state. */
6
+ interface AttemptReachability {
7
+ /** Whether the requested attempt exists and belongs to the requested owner. */
8
+ readonly matchesExecution: boolean;
9
+ /** Whether the attempt has a terminal settlement. */
10
+ readonly settled: boolean;
11
+ /** Whether this is still the owner's active attempt. */
12
+ readonly active: boolean;
13
+ /** Whether an allocation exists and is not durably terminated. */
14
+ readonly allocated: boolean;
15
+ }
16
+ /** Refusals shared by registration, admission, and readiness, before control decoding. */
17
+ type AttemptReachabilityDecision = Extract<RuntimeRegistrationDecision, {
18
+ readonly kind: 'not-found' | 'resolved' | 'fenced' | 'not-allocated';
19
+ }>;
20
+ /**
21
+ * Evaluate the common reachability precedence without reading or mutating storage.
22
+ * A null result only permits further evaluation; it never authorizes an unguarded write.
23
+ * @param facts - Coherent lifecycle, owner, and allocation facts supplied by the realization.
24
+ * @returns The first refusal, or null when runtime control may be decoded and evaluated.
25
+ */
26
+ declare function evaluateAttemptReachability(facts: AttemptReachability): AttemptReachabilityDecision | null;
27
+ /**
28
+ * Evaluate registration after reachability, preserving replay before busy refusal.
29
+ * An orphaned runtime probe may be reclaimed; a workload operation may not.
30
+ * @param control - Current decoded control state, not modified by this function.
31
+ * @param input - Runtime registration being considered.
32
+ * @returns A non-write decision, or null to attempt the realization's guarded registration.
33
+ */
34
+ declare function evaluateRuntimeRegistration(control: AttemptControlState, input: RegisterRuntimeInput): Exclude<RuntimeRegistrationDecision, {
35
+ readonly kind: 'registered';
36
+ }> | null;
37
+ /**
38
+ * Evaluate admission after reachability: replay, busy, gate, readiness, generation, then Preparation.
39
+ * Probe operations are admitted before readiness because they establish that proof.
40
+ * @param control - Current decoded control state, not modified by this function.
41
+ * @param input - Operation admission being considered.
42
+ * @param fallbackAdmittedAt - Realization-supplied instant for a duplicate missing its stored instant.
43
+ * @param execution - Frozen assignment and Preparation receipts read with the control state.
44
+ * @returns A non-write decision, or null to attempt the realization's guarded admission.
45
+ */
46
+ declare function evaluateOperationAdmission(control: AttemptControlState, input: AdmitOperationInput, fallbackAdmittedAt: string, execution: AttemptExecutionState): Exclude<OperationAdmissionDecision, {
47
+ readonly kind: 'admitted';
48
+ }> | null;
49
+ /**
50
+ * Evaluate successful Preparation, retaining historical replay before current-runtime fences.
51
+ * A null decision permits only a guarded write that saves the receipt and frees the slot together.
52
+ * @param reachability - Coherent owner, allocation and lifecycle facts.
53
+ * @param control - Current operation and runtime state.
54
+ * @param execution - Frozen instruction and retained Preparation history.
55
+ * @param input - Owner-scoped successful Preparation report.
56
+ * @returns A historical duplicate or refusal, or null to atomically accept the result.
57
+ */
58
+ declare function evaluatePreparationReport(reachability: AttemptReachability, control: AttemptControlState, execution: AttemptExecutionState, input: ReportOperationInput): Exclude<OperationReportDecision, {
59
+ readonly kind: 'accepted';
60
+ }> | null;
61
+ /**
62
+ * Evaluate completion after presence and settlement checks, without owner or allocation fences.
63
+ * A replay is recognized even after its active slot has been cleared or reused.
64
+ * @param control - Current decoded control state, not modified by this function.
65
+ * @param input - Operation completion being considered.
66
+ * @returns A non-write decision, or null to attempt the realization's guarded completion.
67
+ */
68
+ declare function evaluateOperationCompletion(control: AttemptControlState, input: CompleteOperationInput): Exclude<OperationCompletionDecision, {
69
+ readonly kind: 'completed';
70
+ }> | null;
71
+ /**
72
+ * Evaluate readiness after reachability: generation fence, replay, then busy refusal.
73
+ * @param control - Current decoded control state, not modified by this function.
74
+ * @param input - Runtime readiness report being considered.
75
+ * @returns A non-write decision, or null to attempt the realization's guarded readiness write.
76
+ */
77
+ declare function evaluateRuntimeReadiness(control: AttemptControlState, input: MarkRuntimeReadyInput): Exclude<RuntimeReadinessDecision, {
78
+ readonly kind: 'ready';
79
+ }> | null;
80
+ //#endregion
4
81
  //#region subsystems/workflow-engine/src/execution-attempt-repository.d.ts
5
82
  /**
6
83
  * Ordered constant array of every execution attempt lifecycle status.
@@ -40,6 +117,47 @@ declare const EXECUTION_ATTEMPT_SETTLEMENT_KINDS: readonly ["outcome", "abandone
40
117
  * `null` when the attempt has not yet settled.
41
118
  */
42
119
  type ExecutionAttemptSettlementKind = (typeof EXECUTION_ATTEMPT_SETTLEMENT_KINDS)[number] | null;
120
+ /**
121
+ * Constant array of every state the attempt's operation start gate can hold.
122
+ *
123
+ * Declared as an array for the same reason the status vocabulary is: a stored
124
+ * value outside it is corruption, and a realization narrows what it read
125
+ * against this list rather than against a literal of its own.
126
+ */
127
+ declare const ATTEMPT_OPERATION_START_GATES: readonly ["open", "closed"];
128
+ /**
129
+ * State of the single durable ordering point an attempt admits operations
130
+ * through.
131
+ *
132
+ * - `open`: the attempt may still admit operations, subject to every other
133
+ * guard.
134
+ * - `closed`: the attempt will never admit another operation. Closing is
135
+ * one-way and happens exactly where the attempt stops being a place work may
136
+ * begin — when a newer attempt supersedes it, and when it settles.
137
+ */
138
+ type AttemptOperationStartGate = (typeof ATTEMPT_OPERATION_START_GATES)[number];
139
+ /** Coherent durable facts required before an attempt may enter runtime registration. */
140
+ interface BootstrapStartState {
141
+ /** A terminal outcome or infrastructure settlement has been recorded. */
142
+ readonly settled: boolean;
143
+ /** The owner's active pointer still names this attempt, independently of settlement. */
144
+ readonly active: boolean;
145
+ /** An allocation reference is recorded, independently of its termination. */
146
+ readonly allocated: boolean;
147
+ /** Provider-operation state durably confirms allocation termination. */
148
+ readonly allocationTerminated: boolean;
149
+ /** One-way durable gate controlling whether new work may start. */
150
+ readonly operationStartGate: AttemptOperationStartGate;
151
+ /** Immutable ISO deadline, or null for legacy attempts that cannot newly bootstrap. */
152
+ readonly bootstrapDeadlineAt: string | null;
153
+ }
154
+ /** Trusted owner and attempt identity for the narrow bootstrap observation. */
155
+ interface ReadBootstrapStartStateInput {
156
+ /** Authenticated durable owner of the attempt. */
157
+ readonly executionId: ExecutionOwnerId;
158
+ /** Attempt whose durable start facts are observed. */
159
+ readonly executionAttemptId: string;
160
+ }
43
161
  /**
44
162
  * Compare two provider allocation references as values.
45
163
  *
@@ -263,13 +381,132 @@ declare class DuplicateExecutionAttemptError extends Error {
263
381
  */
264
382
  constructor(executionAttemptId: string, options?: ErrorOptions);
265
383
  }
384
+ /**
385
+ * The runtime and operation control state of one attempt.
386
+ *
387
+ * Ten facts that together decide who may act on an attempt's runtime endpoint
388
+ * and whether an operation may start. They live *on* the attempt rather than in
389
+ * a record beside it: every guard that reads them is also a guard the write has
390
+ * to repeat, and a single-row compare-and-set is what keeps that expressible.
391
+ *
392
+ * The three fences are independent and each answers a different question:
393
+ * {@link runtimeGeneration} says which runtime incarnation is current,
394
+ * {@link operationStartGate} says whether the attempt still starts work at all,
395
+ * and {@link activeOperationId} says whether it is already busy.
396
+ *
397
+ * It is also the shape {@link ExecutionAttemptRepository.getAttemptControlState}
398
+ * reports, so a process that lost its own memory of an attempt can read back
399
+ * exactly what a fresh decision would be made against.
400
+ */
401
+ interface AttemptControlState {
402
+ /**
403
+ * Monotonic fence over runtime incarnations, `0` before any registered.
404
+ *
405
+ * Allocated by {@link ExecutionAttemptRepository.registerRuntime} and never
406
+ * proposed by a caller: a runtime only ever echoes the generation it was
407
+ * given. Anything presented against an older generation is
408
+ * `stale-generation`.
409
+ */
410
+ readonly runtimeGeneration: number;
411
+ /**
412
+ * Runtime incarnation currently registered, or `null` before any was.
413
+ *
414
+ * The registration idempotency key. A report naming the stored incarnation
415
+ * is a replay and is answered `duplicate`; a different one is a new
416
+ * incarnation and takes the next generation.
417
+ */
418
+ readonly runtimeIncarnationId: string | null;
419
+ /**
420
+ * ISO-8601 instant at which readiness was accepted for the current
421
+ * generation, or `null` while it has not been.
422
+ *
423
+ * Written by {@link ExecutionAttemptRepository.markRuntimeReady} and cleared
424
+ * by every {@link ExecutionAttemptRepository.registerRuntime} that allocates
425
+ * a new generation: readiness is a property of one incarnation, so it can
426
+ * never outlive the incarnation that proved it.
427
+ */
428
+ readonly runtimeReadyAt: string | null;
429
+ /**
430
+ * Whether the attempt still admits operations.
431
+ *
432
+ * `open` from creation. Closed by {@link ExecutionAttemptRepository.createAttempt}
433
+ * on the attempt it supersedes, and by every terminal settlement on the
434
+ * attempt it settles. Closing is one-way.
435
+ */
436
+ readonly operationStartGate: AttemptOperationStartGate;
437
+ /**
438
+ * Operation currently occupying the attempt, or `null` when it is idle.
439
+ *
440
+ * The at-most-one guard: an attempt runs one operation at a time. Cleared by
441
+ * {@link ExecutionAttemptRepository.completeOperation} together with
442
+ * {@link activeOperationKind}, {@link activeOperationKey},
443
+ * {@link activeOperationGeneration}, and {@link activeOperationAdmittedAt} —
444
+ * one write, because a half-cleared
445
+ * operation would be neither active nor absent.
446
+ *
447
+ * A terminal settlement deliberately leaves it in place, so a completion that
448
+ * arrives after the attempt settled reads `resolved` rather than
449
+ * `not-active`.
450
+ */
451
+ readonly activeOperationId: string | null;
452
+ /**
453
+ * Kind of the active operation, or `null` when the attempt is idle.
454
+ *
455
+ * Kept because the bounded runtime probe and a durable owner's run are not
456
+ * interchangeable: the probe is admitted while readiness is still unproven
457
+ * and is never announced to anyone but its own runtime.
458
+ */
459
+ readonly activeOperationKind: ExecutionAttemptOperationKind | null;
460
+ /**
461
+ * Idempotency key the active operation was admitted under, or `null` when the
462
+ * attempt is idle.
463
+ *
464
+ * A second admission presenting this key is the same admission retried, and
465
+ * is answered `duplicate` with the operation identifier the first one
466
+ * received.
467
+ */
468
+ readonly activeOperationKey: string | null;
469
+ /**
470
+ * Runtime generation the active operation is fenced against, or `null` when
471
+ * the attempt is idle.
472
+ *
473
+ * A completion reported against an older generation belongs to a runtime that
474
+ * has since been superseded and is refused as `stale-generation`.
475
+ */
476
+ readonly activeOperationGeneration: number | null;
477
+ /**
478
+ * ISO-8601 instant at which the active operation was admitted, or `null`
479
+ * when the attempt is idle.
480
+ *
481
+ * Recorded so a replayed admission announces the instant the authority
482
+ * admitted the operation, not the instant of the replay. Cleared together
483
+ * with the other active-operation members.
484
+ */
485
+ readonly activeOperationAdmittedAt: string | null;
486
+ /**
487
+ * Operation identifier of the most recent completion, or `null` before any.
488
+ *
489
+ * What makes a replayed completion answerable: the active operation is gone
490
+ * by then, so without it the replay would be indistinguishable from a
491
+ * completion for an operation that never existed.
492
+ */
493
+ readonly lastCompletedOperationId: string | null;
494
+ }
266
495
  /**
267
496
  * Durable record for one execution attempt.
268
497
  *
269
498
  * Produced by the injected {@link ExecutionAttemptRepository} and consumed by
270
499
  * the Authority service. All fields are JSON-safe and contain no secrets.
500
+ *
501
+ * The {@link AttemptControlState} members are part of the record because they
502
+ * are columns on the attempt, not a separate aggregate — and they are required,
503
+ * unlike {@link claimable} and {@link settlementKind}. Every attempt holds all
504
+ * ten from {@link ExecutionAttemptRepository.createAttempt} onwards, so a
505
+ * record that omits one describes an attempt that cannot exist. Requiring them
506
+ * is what makes that omission a type error at the place the record is built,
507
+ * rather than a default silently resolved at each place it is read.
271
508
  */
272
- interface ExecutionAttemptRecord {
509
+ interface ExecutionAttemptRecord extends AttemptControlState, AttemptExecutionState {
273
510
  /** Authority-created attempt identifier. */
274
511
  readonly executionAttemptId: string;
275
512
  /** Owner identifier of the aggregate this attempt belongs to. */
@@ -280,6 +517,8 @@ interface ExecutionAttemptRecord {
280
517
  readonly allocationRef: ProviderAllocationRef | null;
281
518
  /** ISO-8601 timestamp when the attempt was created. */
282
519
  readonly createdAt: string;
520
+ /** Immutable creation-time bootstrap deadline; null only for legacy records. */
521
+ readonly bootstrapDeadlineAt: string | null;
283
522
  /**
284
523
  * Provider bound to this attempt, or `null` before provisioning began.
285
524
  *
@@ -376,7 +615,50 @@ interface ExecutionAttemptCreate {
376
615
  readonly executionAttemptId: string;
377
616
  /** Owner identifier the attempt belongs to. */
378
617
  readonly executionId: ExecutionOwnerId;
618
+ /** Portable assignment snapshotted before this attempt becomes dispatchable. */
619
+ readonly instruction: ExecutionAttemptInstruction;
620
+ /** Explicit positive safe-integer bootstrap budget in milliseconds, frozen at creation. */
621
+ readonly bootstrapTimeoutMs: number;
622
+ }
623
+ /** Durable acceptance of one successful Preparation operation. */
624
+ interface PreparationReceipt {
625
+ /** Identity of the completed Preparation operation. */
626
+ readonly operationId: string;
627
+ /** Runtime realization to which the binding belongs. */
628
+ readonly runtimeGeneration: number;
629
+ /** Original semantic result, retained for replay comparison and diagnostics. */
630
+ readonly result: ExecutionAttemptPreparationResult;
631
+ }
632
+ /** Immutable assignment and accepted Preparation facts read with control state. */
633
+ interface AttemptExecutionState {
634
+ /** The attempt's original assignment, never the owner's latest configuration. */
635
+ readonly instruction: ExecutionAttemptInstruction;
636
+ /** Accepted historical results; only the current generation permits Invocation. */
637
+ readonly preparationReceipts: readonly PreparationReceipt[];
638
+ }
639
+ /** Owner-scoped query for the immutable assignment of one attempt. */
640
+ interface GetInstructionInput {
641
+ /** Owning aggregate, supplied by the authenticated host boundary. */
642
+ readonly executionId: ExecutionOwnerId;
643
+ /** Attempt whose stored assignment is requested. */
644
+ readonly executionAttemptId: string;
379
645
  }
646
+ /** Successful Preparation report plus its trusted owner identity. */
647
+ type ReportOperationInput = ExecutionAttemptOperationReportRequest & {
648
+ /** Owning aggregate, supplied by the authenticated host boundary. */readonly executionId: ExecutionOwnerId;
649
+ };
650
+ /** Semantic acceptance or refusal of a Preparation result. */
651
+ type OperationReportDecision = {
652
+ readonly kind: 'accepted';
653
+ readonly binding: ExecutionAttemptWorkspaceBinding;
654
+ } | {
655
+ readonly kind: 'duplicate';
656
+ readonly binding: ExecutionAttemptWorkspaceBinding;
657
+ } | {
658
+ readonly kind: Extract<ExecutionAttemptOperationReportResponse, {
659
+ decision: 'refused';
660
+ }>['refusalReason'];
661
+ };
380
662
  /**
381
663
  * Input for claiming the provisioning phase of an attempt.
382
664
  *
@@ -424,7 +706,29 @@ interface ExecutionAttemptOutcomeCommit<TOutcome> {
424
706
  * submission once and never reads its own object again.
425
707
  */
426
708
  readonly result: DurableOutcome<TOutcome>;
709
+ /** Runtime correlation checked atomically for a fresh commit; owner-only paths may omit it. */
710
+ readonly runtimeFence?: RuntimeOutcomeFence;
427
711
  }
712
+ /** Runtime and operation expected to remain current when an outcome becomes durable. */
713
+ interface RuntimeOutcomeFence {
714
+ /** Registered runtime generation that produced the result. */
715
+ readonly runtimeGeneration: number;
716
+ /** Admitted operation, or null for a startup failure before any operation. */
717
+ readonly operationId: string | null;
718
+ }
719
+ /** A runtime result lost its execution slot before commit; the attempt remains available to its current runtime. */
720
+ declare class RuntimeOutcomeFenceMismatchError extends Error {
721
+ constructor();
722
+ }
723
+ /**
724
+ * Require a fresh runtime outcome to belong to the coherently read execution slot.
725
+ * Repositories call this after canonical replay/settlement decisions and repeat its
726
+ * predicates in the committing write. A mismatch must not settle the attempt's waiter.
727
+ * @param control - Current runtime and operation facts.
728
+ * @param fence - Expected runtime slot, absent for owner-only outcome submission.
729
+ * @throws RuntimeOutcomeFenceMismatchError when the originating runtime slot changed.
730
+ */
731
+ declare function assertRuntimeOutcomeFence(control: AttemptControlState, fence: RuntimeOutcomeFence | undefined): void;
428
732
  /** Input for extending the lease of a currently held provider operation. */
429
733
  interface RenewProviderOperationClaimInput {
430
734
  /** Claim the caller currently believes it holds. */
@@ -569,6 +873,78 @@ interface AllocationRefEvolution {
569
873
  /** The new allocation reference to store if the CAS check passes. */
570
874
  readonly nextRef: ProviderAllocationRef;
571
875
  }
876
+ /**
877
+ * Input for registering a runtime incarnation as an attempt's endpoint.
878
+ *
879
+ * `executionId` is the active-attempt fence, not merely an ownership check: a
880
+ * superseded attempt must never acquire a fresh runtime endpoint, because
881
+ * nothing would ever address it again.
882
+ *
883
+ * No generation is supplied. The repository allocates it, exactly as
884
+ * {@link ExecutionAttemptRepository.beginProvisioning} mints the first claim,
885
+ * so a runtime can never propose a fence for itself.
886
+ */
887
+ interface RegisterRuntimeInput {
888
+ /** Attempt whose runtime endpoint is being registered. */
889
+ readonly executionAttemptId: string;
890
+ /** Owner identifier the attempt must belong to, and be active for. */
891
+ readonly executionId: ExecutionOwnerId;
892
+ /** Identifier of this concrete runtime incarnation, unique per boot. */
893
+ readonly runtimeIncarnationId: string;
894
+ }
895
+ /**
896
+ * Input for admitting one operation through an attempt's start gate.
897
+ *
898
+ * `admissionKey` is the caller's idempotency key and the only thing that makes
899
+ * a retry answerable: the repository mints the operation identifier, so a
900
+ * caller that lost the reply has no other way to ask which operation it got.
901
+ */
902
+ interface AdmitOperationInput {
903
+ /** Attempt the operation would run under. */
904
+ readonly executionAttemptId: string;
905
+ /** Owner identifier the attempt must belong to, and be active for. */
906
+ readonly executionId: ExecutionOwnerId;
907
+ /** Kind of operation being admitted. */
908
+ readonly operationKind: ExecutionAttemptOperationKind;
909
+ /** Caller-chosen idempotency key for this admission. */
910
+ readonly admissionKey: string;
911
+ /** Runtime generation the caller fences the admission against. */
912
+ readonly runtimeGeneration: number;
913
+ }
914
+ /**
915
+ * Input for completing the operation an attempt currently runs.
916
+ *
917
+ * Carries no `executionId`: completion frees a slot the attempt already
918
+ * occupies, and a superseded attempt owes that release just as much as an
919
+ * active one does. Refusing it would strand the operation forever.
920
+ */
921
+ interface CompleteOperationInput {
922
+ /** Attempt whose active operation is completing. */
923
+ readonly executionAttemptId: string;
924
+ /** Operation the caller believes it is completing. */
925
+ readonly operationId: string;
926
+ /** Runtime generation the completion is fenced against. */
927
+ readonly runtimeGeneration: number;
928
+ }
929
+ /**
930
+ * Input for recording that a registered runtime proved itself ready.
931
+ *
932
+ * Carries `executionId`, unlike {@link CompleteOperationInput}: completion
933
+ * releases a slot the attempt already occupies, but readiness asserts that the
934
+ * attempt's endpoint is current, and an attempt superseded between the probe's
935
+ * completion and this write no longer has a current endpoint. The generation
936
+ * fence alone cannot see that — a superseded attempt keeps its generation.
937
+ */
938
+ interface MarkRuntimeReadyInput {
939
+ /** Attempt whose runtime proved ready. */
940
+ readonly executionAttemptId: string;
941
+ /** Owner identifier the attempt must belong to, and be active for. */
942
+ readonly executionId: ExecutionOwnerId;
943
+ /** Generation the readiness belongs to. */
944
+ readonly runtimeGeneration: number;
945
+ /** ISO-8601 instant at which readiness was observed. */
946
+ readonly readyAt: string;
947
+ }
572
948
  /**
573
949
  * Durable decision for claiming provider provisioning ownership.
574
950
  *
@@ -842,12 +1218,210 @@ type ExecutionAttemptOutcomeDecision<TOutcome> = {
842
1218
  } | {
843
1219
  readonly kind: 'fenced';
844
1220
  };
1221
+ /**
1222
+ * Durable decision for registering a runtime incarnation as an attempt's
1223
+ * endpoint.
1224
+ *
1225
+ * - `registered`: the incarnation now owns the attempt's runtime endpoint at
1226
+ * `runtimeGeneration`, and everything it later presents must carry that
1227
+ * generation. Readiness starts unproven.
1228
+ * - `duplicate`: the attempt already holds exactly this incarnation. The
1229
+ * report is a replay, so the stored generation is reported unchanged
1230
+ * together with the readiness that generation has — `runtimeReadyAt` is
1231
+ * `null` when readiness was not proven yet, and an instant when it was,
1232
+ * which is what lets a caller tell "register again" from "already ready"
1233
+ * without a second read.
1234
+ * - `not-found`: no such attempt, or it does not belong to the named owner.
1235
+ * - `resolved`: the attempt has settled, so it will never run anything again.
1236
+ * - `fenced`: the attempt is no longer the active attempt for its owner.
1237
+ * - `not-allocated`: no allocation is recorded, or the recorded one is durably
1238
+ * confirmed terminated and only awaits its settlement, so there is no
1239
+ * infrastructure a runtime could be the endpoint of.
1240
+ * - `operation-active`: a workload operation is running against the current
1241
+ * generation. Registering would fence it mid-flight, so the reported
1242
+ * operation must complete first. A `runtime-probe` left active is not in the
1243
+ * way: the probe is the authority's own proof of an endpoint, and one that
1244
+ * was never completed belongs to a handshake that died. Registration
1245
+ * reclaims it in the same write that allocates the new generation, so a
1246
+ * crashed handshake cannot block the attempt's next incarnation.
1247
+ */
1248
+ type RuntimeRegistrationDecision = {
1249
+ readonly kind: 'registered';
1250
+ readonly runtimeGeneration: number;
1251
+ } | {
1252
+ readonly kind: 'duplicate';
1253
+ readonly runtimeGeneration: number;
1254
+ readonly runtimeReadyAt: string | null;
1255
+ } | {
1256
+ readonly kind: 'not-found';
1257
+ } | {
1258
+ readonly kind: 'resolved';
1259
+ } | {
1260
+ readonly kind: 'fenced';
1261
+ } | {
1262
+ readonly kind: 'not-allocated';
1263
+ } | {
1264
+ readonly kind: 'operation-active';
1265
+ readonly operationId: string;
1266
+ };
1267
+ /**
1268
+ * Durable decision for admitting one operation through an attempt's start gate.
1269
+ *
1270
+ * - `admitted`: the operation now occupies the attempt, under the reported
1271
+ * identifier and fenced against the reported generation.
1272
+ * - `duplicate`: an operation admitted under the same `admissionKey` is already
1273
+ * the active one. The retry receives that operation's identifier and the
1274
+ * generation it was admitted under rather than a second admission.
1275
+ * - `not-found`: no such attempt, or it does not belong to the named owner.
1276
+ * - `resolved`: the attempt has settled.
1277
+ * - `fenced`: the attempt is no longer the active attempt for its owner.
1278
+ * - `not-allocated`: no allocation is recorded, or the recorded one is durably
1279
+ * confirmed terminated and only awaits its settlement, so there is nothing
1280
+ * to run on.
1281
+ * - `operation-active`: a different operation already occupies the attempt.
1282
+ * - `gate-closed`: the attempt was superseded or settled, so it will never
1283
+ * admit another operation. Distinct from `fenced` and `resolved` because the
1284
+ * gate is the durable fact, and the two of them are how it came to be closed.
1285
+ * - `not-ready`: readiness has not been proven for the current generation.
1286
+ * Every kind but `runtime-probe` waits for it — the probe is precisely what
1287
+ * proves readiness, so it cannot require it.
1288
+ * - `stale-generation`: the caller fenced against a generation the attempt has
1289
+ * moved past. The current generation is reported so the caller can re-fence
1290
+ * rather than re-read.
1291
+ * - `preparation-required`: Invocation requires a Workspace but no Preparation
1292
+ * receipt belongs to the current runtime generation.
1293
+ * - `preparation-not-required`: the assignment does not request a Workspace.
1294
+ * - `preparation-already-completed`: Preparation succeeded for this generation;
1295
+ * a fresh admission key must not run setup again.
1296
+ */
1297
+ type OperationAdmissionDecision = {
1298
+ readonly kind: 'admitted';
1299
+ readonly operationId: string;
1300
+ readonly runtimeGeneration: number; /** ISO-8601 instant the admission was recorded at. */
1301
+ readonly admittedAt: string;
1302
+ } | {
1303
+ readonly kind: 'duplicate';
1304
+ readonly operationId: string;
1305
+ readonly runtimeGeneration: number; /** ISO-8601 instant the first pass recorded the admission at. */
1306
+ readonly admittedAt: string;
1307
+ } | {
1308
+ readonly kind: 'not-found';
1309
+ } | {
1310
+ readonly kind: 'resolved';
1311
+ } | {
1312
+ readonly kind: 'fenced';
1313
+ } | {
1314
+ readonly kind: 'not-allocated';
1315
+ } | {
1316
+ readonly kind: 'operation-active';
1317
+ readonly operationId: string;
1318
+ } | {
1319
+ readonly kind: 'gate-closed';
1320
+ } | {
1321
+ readonly kind: 'not-ready';
1322
+ } | {
1323
+ readonly kind: 'preparation-required';
1324
+ } | {
1325
+ readonly kind: 'preparation-not-required';
1326
+ } | {
1327
+ readonly kind: 'preparation-already-completed';
1328
+ } | {
1329
+ readonly kind: 'stale-generation';
1330
+ readonly runtimeGeneration: number;
1331
+ };
1332
+ /**
1333
+ * Durable decision for completing the operation an attempt currently runs.
1334
+ *
1335
+ * - `completed`: the operation was the active one and the attempt is idle
1336
+ * again.
1337
+ * - `duplicate`: this operation was already completed. A replay, answered from
1338
+ * {@link AttemptControlState.lastCompletedOperationId} rather than from an
1339
+ * active operation that is by then gone.
1340
+ * - `result-required`: Preparation must submit its semantic report, and generic
1341
+ * Invocation must submit its terminal outcome, instead of merely freeing the slot.
1342
+ * - `mismatch`: a different operation occupies the attempt. The active one is
1343
+ * reported, because the caller's next move depends on which it is.
1344
+ * - `not-active`: no operation occupies the attempt and this one is not the
1345
+ * last completed one, so the caller is completing something that never ran.
1346
+ * - `stale-generation`: the completion is fenced against an older generation
1347
+ * than the operation it names, so it comes from a superseded runtime.
1348
+ * - `resolved`: the attempt has settled. Reported ahead of `not-active`
1349
+ * because a terminal settlement leaves the active operation in place
1350
+ * precisely so a late completion learns why nobody is waiting for it.
1351
+ * - `not-found`: no such attempt.
1352
+ */
1353
+ type OperationCompletionDecision = {
1354
+ readonly kind: 'completed';
1355
+ } | {
1356
+ readonly kind: 'duplicate';
1357
+ } | {
1358
+ readonly kind: 'result-required';
1359
+ } | {
1360
+ readonly kind: 'mismatch';
1361
+ readonly activeOperationId: string;
1362
+ } | {
1363
+ readonly kind: 'not-active';
1364
+ } | {
1365
+ readonly kind: 'stale-generation';
1366
+ } | {
1367
+ readonly kind: 'resolved';
1368
+ } | {
1369
+ readonly kind: 'not-found';
1370
+ };
1371
+ /**
1372
+ * Durable decision for recording that a registered runtime proved itself ready.
1373
+ *
1374
+ * Evaluated in this order, in both realizations:
1375
+ * `not-found → resolved → fenced → not-allocated → stale-generation → duplicate → operation-active`.
1376
+ *
1377
+ * - `ready`: readiness is now durable for the fenced generation, at the
1378
+ * reported instant.
1379
+ * - `duplicate`: readiness was already recorded for this generation. The
1380
+ * instant reported is the stored one, not the caller's, so two callers
1381
+ * converge on one answer.
1382
+ * - `operation-active`: an operation occupies the attempt. Readiness is a
1383
+ * statement about an idle runtime, and recording it under a running
1384
+ * operation would claim a proof nothing performed.
1385
+ * - `stale-generation`: the caller fenced against a generation the attempt has
1386
+ * moved past, so the readiness it proved belongs to a runtime that is gone.
1387
+ * - `not-allocated`: no allocation is recorded, or the recorded one is durably
1388
+ * confirmed terminated and only awaits its settlement. A probe completed on
1389
+ * a dead allocation proves nothing that can be announced.
1390
+ * - `fenced`: the attempt is no longer the active attempt for its owner. Its
1391
+ * generation may still match, but a superseded attempt has no current
1392
+ * endpoint to declare ready.
1393
+ * - `resolved`: the attempt has settled.
1394
+ * - `not-found`: no such attempt for the given execution.
1395
+ */
1396
+ type RuntimeReadinessDecision = {
1397
+ readonly kind: 'ready';
1398
+ readonly acceptedAt: string;
1399
+ } | {
1400
+ readonly kind: 'duplicate';
1401
+ readonly acceptedAt: string;
1402
+ } | {
1403
+ readonly kind: 'operation-active';
1404
+ readonly operationId: string;
1405
+ } | {
1406
+ readonly kind: 'stale-generation';
1407
+ } | {
1408
+ readonly kind: 'not-allocated';
1409
+ } | {
1410
+ readonly kind: 'fenced';
1411
+ } | {
1412
+ readonly kind: 'resolved';
1413
+ } | {
1414
+ readonly kind: 'not-found';
1415
+ };
845
1416
  /**
846
1417
  * Passive injected port for durable execution attempt persistence.
847
1418
  *
848
- * The consuming host application owns the concrete implementation and all
849
- * durable decisions. The Authority service calls through this port but never
850
- * owns the underlying tables or storage.
1419
+ * The port owns decision semantics, including refusal and replay precedence;
1420
+ * the consuming host owns their atomic realization. The shared pure runtime
1421
+ * evaluators report non-write decisions or null to attempt a guarded write.
1422
+ * They never replace transactional reads, conditional writes, affected-row
1423
+ * checks, or re-evaluation after contention. The Authority service calls
1424
+ * through this port but never owns the underlying tables or storage.
851
1425
  *
852
1426
  * The port owns two related records per attempt: canonical attempt state, and
853
1427
  * the fenced provider operation that tracks who may act on the attempt's
@@ -890,6 +1464,32 @@ type ExecutionAttemptOutcomeDecision<TOutcome> = {
890
1464
  * {@link commitOutcome} deliberately requires neither, so a worker can
891
1465
  * always deliver its canonical answer.
892
1466
  *
1467
+ * 3. **An attempt starts work through one gate, and the gate closes for
1468
+ * good.** {@link AttemptControlState.operationStartGate} is the single
1469
+ * durable ordering point between "this attempt may still run something" and
1470
+ * "it never will again". It opens at {@link createAttempt} and closes
1471
+ * exactly twice over an attempt's life, both times inside the transaction
1472
+ * that made the closing true: on the attempt a newer {@link createAttempt}
1473
+ * supersedes, and on the attempt a terminal settlement settles. Closing it
1474
+ * anywhere else, or reopening it, would let work begin on an attempt whose
1475
+ * answer is already fixed.
1476
+ *
1477
+ * The gate orders admission only. It never gates {@link commitOutcome}: a
1478
+ * settled attempt closes its gate and *keeps* its active operation, so a
1479
+ * worker's canonical answer and a late completion both still find the state
1480
+ * that explains them.
1481
+ *
1482
+ * The runtime fence beside it is monotonic in the same one-way sense.
1483
+ * {@link registerRuntime} allocates each generation, refuses while an
1484
+ * operation is active, and clears readiness when it advances — so a
1485
+ * generation always names one incarnation, and readiness always names one
1486
+ * generation.
1487
+ *
1488
+ * Every refusal these transitions report is evaluated in one fixed order,
1489
+ * stated with {@link RuntimeRegistrationDecision} and
1490
+ * {@link OperationAdmissionDecision}. A realization that reorders it is
1491
+ * non-conforming.
1492
+ *
893
1493
  * An operation stays remediable after its attempt stops being the active
894
1494
  * attempt for its execution. Claim-fenced discovery, absence, cleanup, and
895
1495
  * terminal convergence may update such an attempt and close its operation,
@@ -974,6 +1574,23 @@ interface ExecutionAttemptRepository<TOutcome> {
974
1574
  * Called by the Authority before dispatch. The Authority owns
975
1575
  * `executionAttemptId` generation; the repository only persists. The new
976
1576
  * attempt atomically becomes the active attempt for its execution.
1577
+ * The instruction is validated and snapshotted before any write. It remains
1578
+ * immutable for the attempt's lifetime; no owner-context lookup may replace it.
1579
+ * The explicit bootstrap budget must be a positive safe integer whose sum with
1580
+ * the single creation instant is a representable Date. Validate it before any
1581
+ * mutation, and persist createdAt and bootstrapDeadlineAt from that same instant.
1582
+ * Later host policy changes never extend an existing attempt's deadline.
1583
+ *
1584
+ * The new attempt starts with its {@link AttemptControlState} at rest:
1585
+ * generation `0`, no incarnation, no readiness, no active operation, and
1586
+ * {@link AttemptControlState.operationStartGate} `open`.
1587
+ *
1588
+ * **The attempt it supersedes has its start gate closed in this same
1589
+ * transaction**, alongside the active pointer moving. A superseded attempt
1590
+ * whose gate stayed open could admit an operation between the pointer move
1591
+ * and any later cleanup, which is work begun on an attempt nobody addresses
1592
+ * any more. The pointer and the gate therefore become true together or not
1593
+ * at all.
977
1594
  *
978
1595
  * `executionAttemptId` is unique for all time. Creating an attempt whose
979
1596
  * identifier already exists is a caller bug and is rejected — never
@@ -990,11 +1607,38 @@ interface ExecutionAttemptRepository<TOutcome> {
990
1607
  * writers — but a realization that lets the driver's own error escape would
991
1608
  * make the same caller bug indistinguishable from a storage fault, and
992
1609
  * distinguishable only by message text between one realization and another.
993
- * @param input - Attempt identity to persist.
1610
+ * @param input - Attempt identity and immutable assignment to persist.
994
1611
  * @returns The created attempt record.
995
1612
  * @throws A {@link DuplicateExecutionAttemptError} when an attempt with the same `executionAttemptId` already exists.
996
1613
  */
997
1614
  createAttempt(input: ExecutionAttemptCreate): Promise<ExecutionAttemptRecord>;
1615
+ /**
1616
+ * Read owner matching, settlement, active pointer, allocation, terminal provider
1617
+ * state, start gate and immutable deadline in one coherent observation. This is
1618
+ * a required bootstrap port, not a recovery capability. It must not decode the
1619
+ * instruction, Preparation receipts or outcome to answer the narrow lookup.
1620
+ * Legacy records without a deadline remain readable with a null deadline; only
1621
+ * fresh bootstrap is refused, never unrelated reads or already-running work.
1622
+ * @param input - Trusted owner and attempt identity.
1623
+ * @returns The coherent state, or null for a missing attempt or mismatched owner.
1624
+ */
1625
+ readBootstrapStartState(input: ReadBootstrapStartStateInput): Promise<BootstrapStartState | null>;
1626
+ /**
1627
+ * Read the frozen instruction of an owner-matching attempt, including historical attempts.
1628
+ * The returned snapshot must not allow mutation of the persisted assignment.
1629
+ * @param input - Attempt and owner identity.
1630
+ * @returns The original assignment, or null when the attempt does not belong to the owner.
1631
+ */
1632
+ getInstruction(input: GetInstructionInput): Promise<ExecutionAttemptInstruction | null>;
1633
+ /**
1634
+ * Accept Preparation and release its active slot in one durable transition.
1635
+ * Historical identical reports return their original binding without restoring readiness.
1636
+ * Conflicting reports preserve the first accepted result. Neither success nor replay
1637
+ * settles the attempt; terminal failures use the canonical outcome boundary.
1638
+ * @param input - Successful Preparation report and trusted owner identity.
1639
+ * @returns Durable acceptance, historical duplicate, or refusal.
1640
+ */
1641
+ reportOperation(input: ReportOperationInput): Promise<OperationReportDecision>;
998
1642
  /**
999
1643
  * Claim the durable provisioning phase immediately before a provider call.
1000
1644
  *
@@ -1145,6 +1789,88 @@ interface ExecutionAttemptRepository<TOutcome> {
1145
1789
  * @returns The durable termination decision.
1146
1790
  */
1147
1791
  recordAllocationTerminated(input: RecordAllocationTerminatedInput): Promise<AllocationTerminationDecision>;
1792
+ /**
1793
+ * Register a runtime incarnation as the attempt's endpoint.
1794
+ *
1795
+ * The repository allocates the generation — the caller supplies only the
1796
+ * incarnation identifier, which is both what it is registering and the
1797
+ * idempotency key for having registered it. A registration that succeeds
1798
+ * advances the generation by exactly one and clears
1799
+ * {@link AttemptControlState.runtimeReadyAt}, because the readiness the
1800
+ * previous incarnation proved says nothing about this one.
1801
+ *
1802
+ * It refuses while an operation is active. Advancing the generation there
1803
+ * would fence a running operation's own completion, so the reported
1804
+ * operation has to finish first — and this is why a replay by the incarnation
1805
+ * that is already registered is answered `duplicate` ahead of that refusal:
1806
+ * the operation in the way is frequently the very probe that registration
1807
+ * started.
1808
+ *
1809
+ * The refusal order is the fixed one; see {@link RuntimeRegistrationDecision}.
1810
+ * @param input - Attempt identity, owning execution, and the runtime incarnation.
1811
+ * @returns The durable registration decision.
1812
+ */
1813
+ registerRuntime(input: RegisterRuntimeInput): Promise<RuntimeRegistrationDecision>;
1814
+ /**
1815
+ * Admit one operation through the attempt's start gate.
1816
+ *
1817
+ * At most one operation occupies an attempt at a time, and the repository
1818
+ * mints its identifier. `admissionKey` is what makes a retry answerable: a
1819
+ * second admission presenting the key the active operation was admitted
1820
+ * under receives that operation's identifier rather than a second slot.
1821
+ *
1822
+ * Every kind requires proven readiness except `runtime-probe`, which is
1823
+ * admitted while {@link AttemptControlState.runtimeReadyAt} is still `null` —
1824
+ * the probe is the bounded no-op that *proves* the endpoint, so requiring
1825
+ * readiness of it would make readiness unreachable.
1826
+ *
1827
+ * The refusal order is the fixed one; see {@link OperationAdmissionDecision}.
1828
+ * @param input - Attempt identity, owning execution, kind, idempotency key, and fence.
1829
+ * @returns The durable admission decision.
1830
+ */
1831
+ admitOperation(input: AdmitOperationInput): Promise<OperationAdmissionDecision>;
1832
+ /**
1833
+ * Release the attempt's active operation.
1834
+ *
1835
+ * Clears the four active-operation members in one write and records the
1836
+ * completed identifier, so a replay is answered `duplicate` rather than
1837
+ * mistaken for a completion of something that never ran.
1838
+ *
1839
+ * Deliberately unfenced by the active-attempt pointer: a superseded attempt
1840
+ * owes the release exactly as much as an active one, and refusing it would
1841
+ * leave the operation occupying the attempt for good.
1842
+ * @param input - Attempt identity, the operation being completed, and its fence.
1843
+ * @returns The durable completion decision.
1844
+ */
1845
+ completeOperation(input: CompleteOperationInput): Promise<OperationCompletionDecision>;
1846
+ /**
1847
+ * Record that the registered runtime proved itself ready.
1848
+ *
1849
+ * Written only for the generation the caller fences against, so a proof that
1850
+ * a superseded incarnation produced can never mark the current one ready, and
1851
+ * only while the attempt is still the active attempt for its owner, so a
1852
+ * proof that completed before the attempt was superseded is refused `fenced`
1853
+ * rather than announced for an endpoint nobody will address. Recording is
1854
+ * idempotent: a second call for the same generation reports the instant
1855
+ * already stored, never the caller's own.
1856
+ * @param input - Attempt identity, the generation the proof belongs to, and when it was observed.
1857
+ * @returns The durable readiness decision.
1858
+ */
1859
+ markRuntimeReady(input: MarkRuntimeReadyInput): Promise<RuntimeReadinessDecision>;
1860
+ /**
1861
+ * Read an attempt's runtime and operation control state.
1862
+ *
1863
+ * The recovery read of {@link AttemptControlState}: a process that lost its
1864
+ * own memory of an attempt — a restart, a second controller — asks what the
1865
+ * durable state is instead of inferring it. Unfenced and regardless of
1866
+ * status, exactly like
1867
+ * {@link ExecutionAttemptRecoveryOperations.getAttemptWithAllocation}, because
1868
+ * the state of a superseded or settled attempt is precisely what a recovering
1869
+ * process needs to see.
1870
+ * @param executionAttemptId - Attempt whose control state to read.
1871
+ * @returns The control state, or `null` when no such attempt exists.
1872
+ */
1873
+ getAttemptControlState(executionAttemptId: string): Promise<AttemptControlState | null>;
1148
1874
  /**
1149
1875
  * Retrieve the active attempt for a given execution.
1150
1876
  *
@@ -1229,7 +1955,12 @@ interface ExecutionAttemptRepository<TOutcome> {
1229
1955
  * {@link recordProvisionerIncarnationLost}. That transition won the
1230
1956
  * terminal CAS, so a late outcome may neither overwrite its
1231
1957
  * `settlementKind` nor reopen the attempt.
1232
- * 4. `accepted` — the outcome becomes canonical, the attempt settles as
1958
+ * 4. When supplied, `runtimeFence` must still match the current runtime
1959
+ * generation and operation (including its generation). A mismatch throws
1960
+ * {@link RuntimeOutcomeFenceMismatchError} without changing the attempt.
1961
+ * Checking this in the same write prevents owner decoding/validation awaits
1962
+ * from committing a startup failure against a replacement runtime.
1963
+ * 5. `accepted` — the outcome becomes canonical, the attempt settles as
1233
1964
  * `outcome`, and its operation closes.
1234
1965
  *
1235
1966
  * The submission arrives already rendered, as the {@link DurableOutcome} the
@@ -1355,4 +2086,4 @@ interface ExecutionAttemptRecoveryOperations {
1355
2086
  getRecoverableAttempts(executionId: ExecutionOwnerId): Promise<readonly RecoverableAttemptRecord[]>;
1356
2087
  }
1357
2088
  //#endregion
1358
- export { RecordProviderOperationUncertaintyInput as A, PendingAttemptAbandonmentDecision as C, RecordAllocationInput as D, ProvisioningClaimDecision as E, TakeOverProviderOperationInput as F, decodeDurableOutcome as I, durableOutcome as L, RecordProvisioningAbsentInput as M, RecoverableAttemptRecord as N, RecordAllocationTerminatedInput as O, RenewProviderOperationClaimInput as P, sameAllocationRef as R, OutcomeCodec as S, ProvisioningAbsenceDecision as T, ExecutionAttemptSettlementKind as _, BeginProvisioningInput as a, HandoffProviderOperationInput as b, DurableOutcome as c, ExecutionAttemptCreate as d, ExecutionAttemptOutcomeCommit as f, ExecutionAttemptRepository as g, ExecutionAttemptRecoveryOperations as h, AllocationTerminationDecision as i, RecordProvisionerIncarnationLostInput as j, RecordInfrastructureFailureInput as k, EXECUTION_ATTEMPT_SETTLEMENT_KINDS as l, ExecutionAttemptRecord as m, AllocationRefEvolution as n, DiscoveredAllocationDecision as o, ExecutionAttemptOutcomeDecision as p, AllocationRefEvolutionDecision as r, DuplicateExecutionAttemptError as s, AllocationRecordingDecision as t, EXECUTION_ATTEMPT_STATUSES as u, ExecutionAttemptStatus as v, ProvisionerIncarnationLossDecision as w, InfrastructureFailureDecision as x, ExecutionOwnerId as y, sameDurableOutcome as z };
2089
+ export { RuntimeReadinessDecision as $, MarkRuntimeReadyInput as A, ReadBootstrapStartStateInput as B, ExecutionAttemptRepository as C, GetInstructionInput as D, ExecutionOwnerId as E, PendingAttemptAbandonmentDecision as F, RecordProvisionerIncarnationLostInput as G, RecordAllocationTerminatedInput as H, PreparationReceipt as I, RegisterRuntimeInput as J, RecordProvisioningAbsentInput as K, ProvisionerIncarnationLossDecision as L, OperationCompletionDecision as M, OperationReportDecision as N, HandoffProviderOperationInput as O, OutcomeCodec as P, RuntimeOutcomeFenceMismatchError as Q, ProvisioningAbsenceDecision as R, ExecutionAttemptRecoveryOperations as S, ExecutionAttemptStatus as T, RecordInfrastructureFailureInput as U, RecordAllocationInput as V, RecordProviderOperationUncertaintyInput as W, ReportOperationInput as X, RenewProviderOperationClaimInput as Y, RuntimeOutcomeFence as Z, EXECUTION_ATTEMPT_STATUSES as _, AllocationRefEvolutionDecision as a, sameAllocationRef as at, ExecutionAttemptOutcomeDecision as b, AttemptExecutionState as c, AttemptReachabilityDecision as ct, BootstrapStartState as d, evaluateOperationCompletion as dt, RuntimeRegistrationDecision as et, CompleteOperationInput as f, evaluatePreparationReport as ft, EXECUTION_ATTEMPT_SETTLEMENT_KINDS as g, DurableOutcome as h, AllocationRefEvolution as i, durableOutcome as it, OperationAdmissionDecision as j, InfrastructureFailureDecision as k, AttemptOperationStartGate as l, evaluateAttemptReachability as lt, DuplicateExecutionAttemptError as m, evaluateRuntimeRegistration as mt, AdmitOperationInput as n, assertRuntimeOutcomeFence as nt, AllocationTerminationDecision as o, sameDurableOutcome as ot, DiscoveredAllocationDecision as p, evaluateRuntimeReadiness as pt, RecoverableAttemptRecord as q, AllocationRecordingDecision as r, decodeDurableOutcome as rt, AttemptControlState as s, AttemptReachability as st, ATTEMPT_OPERATION_START_GATES as t, TakeOverProviderOperationInput as tt, BeginProvisioningInput as u, evaluateOperationAdmission as ut, ExecutionAttemptCreate as v, ExecutionAttemptSettlementKind as w, ExecutionAttemptRecord as x, ExecutionAttemptOutcomeCommit as y, ProvisioningClaimDecision as z };