@makaio/framework 1.0.0-dev-1788897280508 → 1.0.0-dev-1788909333961
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.
- package/dist/.makaio-build.json +2 -2
- package/dist/2020-Bl3Yx3In.mjs +1 -0
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +6 -6
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/{artifact-OnwP6uaD.mjs → artifact-BjqkK0KX.mjs} +1 -1
- package/dist/{attempt-record-codec-CqKq0NIB.mjs → attempt-record-codec-6jpayBMY.mjs} +1 -1
- package/dist/{authority-state-bootstrap-rnsTk0u7.mjs → authority-state-bootstrap-8VGt4vD2.mjs} +1 -1
- package/dist/bus/index.d.mts +20 -20
- package/dist/bus/index.mjs +1 -1
- package/dist/{capabilities-DGqMG9M3.mjs → capabilities-BhJ3wzI8.mjs} +1 -1
- package/dist/clients/index.d.mts +1 -1
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +1 -1
- package/dist/clients/managed-install.mjs +1 -1
- package/dist/code-execution/worker-entry.d.mts +1 -1
- package/dist/code-execution/worker-entry.mjs +1 -1
- package/dist/{code-execution-C2PgBdmE.mjs → code-execution-BsiB7ZeZ2.mjs} +1 -1
- package/dist/{code-execution-Mo1jztUH.mjs → code-execution-DRCzkGzO.mjs} +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -2
- package/dist/contracts/artifact/index.mjs +1 -1
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/automation-trigger/index.d.mts +3 -3
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/code-execution/index.d.mts +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +5 -5
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +201 -201
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +2 -2
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/reaction/index.d.mts +1 -1
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/worker/index.d.mts +1 -1
- package/dist/contracts/worker/index.mjs +1 -1
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/{contribution-BoTMoHVB.d.mts → contribution-B4t0OXKs.d.mts} +2 -2
- package/dist/{definition-BgY763Q4.d.mts → definition-Bs5hzhsT.d.mts} +1 -1
- package/dist/{detached-extension-handle-B9c_6Pcb.mjs → detached-extension-handle-CgJiXaqv.mjs} +1 -1
- package/dist/dist-CfANkKSb.mjs +1 -0
- package/dist/{execution-attempt-owner-recovery-BNERIDH0.mjs → execution-attempt-owner-recovery-CdH04iwP.mjs} +1 -1
- package/dist/{execution-attempt-repository-CtFZfBfp.d.mts → execution-attempt-repository-CF3cWsPo.d.mts} +495 -151
- package/dist/{extension-C4lFc8-j.mjs → extension-BgUSK5rv.mjs} +1 -1
- package/dist/{filesystem-service-DGqU-6x-.mjs → filesystem-service-yB8KhUGz.mjs} +1 -1
- package/dist/{framework-packages-CZJDukan.mjs → framework-packages-CxWecyPW.mjs} +1 -1
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-BT0rrriG.mjs → globby-z2SR0jRo.mjs} +1 -1
- package/dist/{hook-responses-BSCAdJ3i.d.mts → hook-responses-Cs8A07ZP.d.mts} +1 -1
- package/dist/{index-gK54T8Am.d.mts → index-B4Wg4W7d.d.mts} +100 -100
- package/dist/{index-RpG4EP3u.d.mts → index-B6aoVzdA.d.mts} +1 -1
- package/dist/{index-BZlmWCcW.d.mts → index-B7VO0gQV.d.mts} +3 -3
- package/dist/{index-C_OLvAr_.d.mts → index-BALk4zcu.d.mts} +1 -1
- package/dist/{index-BVRQOZbm.d.mts → index-BHZlMm_I.d.mts} +1 -1
- package/dist/{index-BdbYIlDL.d.mts → index-BO_ikAR-.d.mts} +13 -13
- package/dist/{index-BkY6zO7p.d.mts → index-BQv9mUzn.d.mts} +2 -1
- package/dist/{index-R2BZejEz.d.mts → index-BeplDh91.d.mts} +7 -7
- package/dist/{index-DIYgFhTZ2.d.mts → index-BgY_UzH82.d.mts} +4 -4
- package/dist/{index-BZtasAZP.d.mts → index-BjcJH3I-.d.mts} +1 -1
- package/dist/{index-nPpqnP7P.d.mts → index-BtC1JP5D.d.mts} +1 -1
- package/dist/{index-l5HeyxKn.d.mts → index-ByJ2NESC.d.mts} +6 -6
- package/dist/{index-CYwbfa0_.d.mts → index-CKvOECeR.d.mts} +2 -2
- package/dist/{index-PTp68NH1.d.mts → index-CpdRe5df.d.mts} +14 -14
- package/dist/{index-CQtttPGm.d.mts → index-D7j6v0-L.d.mts} +1 -1
- package/dist/{index-Cau0jTTM.d.mts → index-DFsJTTkS.d.mts} +1 -1
- package/dist/{index-mylsCg6V2.d.mts → index-DI-1HK7v2.d.mts} +1 -1
- package/dist/{index-DJ0Muy2s.d.mts → index-DlKxbLC9.d.mts} +2 -2
- package/dist/{index-D0DfEO45.d.mts → index-OP6Aw5jN.d.mts} +1 -1
- package/dist/{index-CDLHgV7v.d.mts → index-U0Fe0baO.d.mts} +10 -10
- package/dist/{index-F6hV4tWI.d.mts → index-VAJBIJUb.d.mts} +83 -29
- package/dist/{index-CoGo6HFE.d.mts → index-VCtdvtEk.d.mts} +336 -336
- package/dist/{index-dL0Oet1j.d.mts → index-fzrPfhS0.d.mts} +1 -1
- package/dist/{index-CYmQt2lF.d.mts → index-tDCBp28C.d.mts} +379 -379
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kind-registration-T--B1wiI.mjs +1 -0
- package/dist/{lib-B8Yv4IY-.mjs → lib-B8hEa65D.mjs} +1 -1
- package/dist/{lib-hwdGyO-m.mjs → lib-Ql8RWYOd.mjs} +1 -1
- package/dist/{load-extensions-CNT2Nd9h.mjs → load-extensions-BHTj3d_P.mjs} +1 -1
- package/dist/{load-extensions-D0yT_Kta.d.mts → load-extensions-un9Md47Z.d.mts} +1 -1
- package/dist/{materialization-Dx1z_MDj.mjs → materialization-CqOHTt92.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +4 -4
- package/dist/{namespace-CPC1vbOu.d.mts → namespace-BVQ8Y2Yi.d.mts} +2 -2
- package/dist/{namespace-C7wggVcn.d.mts → namespace-Ciyw6FxO.d.mts} +18 -18
- package/dist/{namespace-By3nEmBH.d.mts → namespace-DELzAyzb.d.mts} +152 -152
- package/dist/{namespace-Dh5fTXYt.d.mts → namespace-thsiHTFH.d.mts} +2 -2
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/node/transports/index.d.mts +12 -1
- package/dist/node/transports/index.mjs +2 -2
- package/dist/{orchestrator-shared-BKMtjTE9.mjs → orchestrator-shared-5vhs4wvU.mjs} +1 -1
- package/dist/{package-D7c2HC-S.mjs → package-BwIbyojG.mjs} +2 -2
- package/dist/{package-C9XYuN9J.d.mts → package-DnlJ4I1i.d.mts} +31 -9
- package/dist/package.json +1 -1
- package/dist/packages-7CsXP86g.mjs +1 -0
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/code-execution/index.d.mts +2 -2
- package/dist/runtime-node/code-execution/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +7 -6
- package/dist/runtime-node/index.mjs +24 -24
- package/dist/runtime-node/makaio-config.d.mts +1 -1
- package/dist/runtime-node/makaio-config.mjs +1 -1
- package/dist/runtime-node/workflow-execution-bus-access.d.mts +16 -1
- package/dist/runtime-node/workflow-execution-bus-access.mjs +1 -1
- package/dist/runtime-node/workflow-worker/index.d.mts +1 -1
- package/dist/runtime-node/workflow-worker/index.mjs +1 -1
- package/dist/runtime-node/workflow-worker/worker-entry.mjs +1 -1
- package/dist/{schemas-hzbKeyyt.mjs → schemas-0eCrrru1.mjs} +1 -1
- package/dist/{schemas-C5FreSE0.d.mts → schemas-B9yLU2jM.d.mts} +1 -1
- package/dist/{schemas-BSBb1KFq.d.mts → schemas-BBatvMde.d.mts} +8 -8
- package/dist/{schemas-BjNlwTDl.d.mts → schemas-DQ5iRisA.d.mts} +2 -2
- package/dist/{schemas-B2Q284-G.d.mts → schemas-mGJIRIZ5.d.mts} +152 -152
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +3 -3
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/automation-trigger/index.mjs +1 -1
- package/dist/services/capability/index.d.mts +2 -2
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/code-execution/index.d.mts +1 -1
- package/dist/services/code-execution/index.mjs +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +1 -1
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +123 -123
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/materialization/index.d.mts +1 -1
- package/dist/services/materialization/index.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/index.d.mts +9 -9
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/testing/index.mjs +1 -1
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session-editor/index.d.mts +1 -1
- package/dist/services/settings/index.d.mts +3 -3
- package/dist/services/settings/namespace.d.mts +8 -8
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/index.mjs +1 -1
- package/dist/services/subagent-template/index.d.mts +2 -2
- package/dist/services/subagent-template/namespace.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/workflow-transitions/index.d.mts +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/{session-lineage-CRLvurB-.d.mts → session-lineage-Bwb98OUz.d.mts} +1 -1
- package/dist/{src-D4Gx0QHf.mjs → src-Dlpw-Gh5.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +1 -1
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/{tools-Cyo6BuGM.mjs → tools-BkSFBqUz.mjs} +1 -1
- package/dist/{transition-CwMPKBjz.d.mts → transition-BbfxZ4U1.d.mts} +2 -2
- package/dist/{types-BOF825V52.d.mts → types-CR415CdC2.d.mts} +1 -1
- package/dist/{types-Dg_acP9p.d.mts → types-CXwFtEIF.d.mts} +340 -340
- package/dist/ui-kernel/index.d.mts +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/{view-builder-D76L0Db8.d.mts → view-builder-CJtK5hgs.d.mts} +1 -1
- package/dist/{worker-9X0QNB1k.mjs → worker-VBlgozIo.mjs} +1 -1
- package/dist/worker-qgJToDTN.mjs +1 -0
- package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
- package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
- package/dist/workflow-engine/index.d.mts +11 -12
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/provider-operation.d.mts +2 -2
- package/dist/workflow-engine/provider-operation.mjs +1 -1
- package/dist/workflow-engine/testing/conformance.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.mjs +2 -2
- package/dist/workflow-engine/testing/index.d.mts +1 -2
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
- package/dist/workflow-engine/testing/sqlite.mjs +76 -48
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-B3MWrYhG.mjs → workflow-svpU9Cig.mjs} +1 -1
- package/dist/{workflow-transitions-B7HtjuAn.mjs → workflow-transitions-Cuo6s9uv.mjs} +1 -1
- package/dist/workflow-worker-7AA-u1uC.mjs +2 -0
- package/package.json +1 -1
- package/dist/kind-registration-BNhVCSaT.mjs +0 -1
- package/dist/packages-BhhBcPgz.mjs +0 -1
- package/dist/provider-operation-BwrIrOeY.d.mts +0 -207
- package/dist/worker-BwUhRg7i.mjs +0 -1
- package/dist/workflow-worker-zYb2UguP.mjs +0 -2
- package/dist/{adapter-auth-runtime-DGY1CDxj.mjs → adapter-auth-runtime-BnPqQChk.mjs} +0 -0
- package/dist/{adapter-binding-fGIz-ss3.d.mts → adapter-binding-BU7STlfd.d.mts} +0 -0
- package/dist/{ajv-DWgn_plp.mjs → ajv-Dtk5hCZS.mjs} +0 -0
- package/dist/{attempt-fixtures-Dpfgqll0.mjs → attempt-fixtures-C-jQE_7B.mjs} +0 -0
- package/dist/{base-orchestrator-BeLqYKJG.d.mts → base-orchestrator-DXiejwQ3.d.mts} +0 -0
- package/dist/{bootstrap-start-client-BYoxrgMk.mjs → bootstrap-start-client-Bdv-_2Q9.mjs} +0 -0
- package/dist/{caller-owned-adapter-stub-egWCuKcE.mjs → caller-owned-adapter-stub-B-Sq7ZvF.mjs} +0 -0
- package/dist/{capability-service-BlYnun2M.d.mts → capability-service-CsWaOwvH.d.mts} +0 -0
- package/dist/{client-CtOWHpFB.d.mts → client-DP4ksY9q.d.mts} +0 -0
- package/dist/{client-binary-version-verifier-BwmToeS1.d.mts → client-binary-version-verifier-BoXRTyae.d.mts} +0 -0
- package/dist/{client-binary-version-verifier-sv-Uv0lB.mjs → client-binary-version-verifier-DHBAzg3-.mjs} +0 -0
- package/dist/{clients-namespace-Bf73bcZh.d.mts → clients-namespace-BVDmj8uV.d.mts} +0 -0
- package/dist/{config-namespace-BbLLd4V0.d.mts → config-namespace-BMOKEuyf.d.mts} +0 -0
- package/dist/{create-static-mount-BQnyEUH1.mjs → create-static-mount-GSdckRQx.mjs} +0 -0
- package/dist/{cross-spawn-DPrJR9Nq.mjs → cross-spawn-Bx_VEdpd.mjs} +0 -0
- package/dist/{cursor-storage-iJ6vBOWd.mjs → cursor-storage-Co4itf44.mjs} +0 -0
- package/dist/{definition-aS9AM2ht.d.mts → definition-ByVJ3n6o.d.mts} +0 -0
- package/dist/{descriptor-to-package-FBkLjHZo.mjs → descriptor-to-package-CZLujoiv.mjs} +0 -0
- package/dist/{drizzle-CIf_jdYI.mjs → drizzle-me-95ICP.mjs} +0 -0
- package/dist/{esm-BH4Kmq3r.mjs → esm-DILYVXmW.mjs} +0 -0
- package/dist/{event-m7_IdhOS.mjs → event-DmQPb5MB.mjs} +0 -0
- package/dist/{execution-attempt-repository-D_qR7NyG.mjs → execution-attempt-repository-DXyh1hgz.mjs} +0 -0
- package/dist/{execution-target-CqaBmnvX.mjs → execution-target-B9jZgDQz.mjs} +0 -0
- package/dist/{extension-context-41A1ZUus.d.mts → extension-context-Cx8CetW3.d.mts} +0 -0
- package/dist/{extension-discovery-DNB1VVsV.d.mts → extension-discovery-C0Nj5EVZ.d.mts} +0 -0
- package/dist/{extension-package-provenance-CTYdo0yF.mjs → extension-package-provenance-BzvG6rDO.mjs} +0 -0
- package/dist/{filesystem-service-DOrm4Llq.d.mts → filesystem-service-C6D7oABi.d.mts} +0 -0
- package/dist/{handler-COkV00I9.mjs → handler-BYQPNm8O.mjs} +0 -0
- package/dist/{index-jW7MJ2_q.d.mts → index-B7g7e7_f.d.mts} +0 -0
- package/dist/{index-BKvzOrbF.d.mts → index-B9-1l1oh.d.mts} +0 -0
- package/dist/{index-ClJjlOox.d.mts → index-BGWkmG9i.d.mts} +0 -0
- package/dist/{index-BbAqoQmv.d.mts → index-BR7IiCib.d.mts} +0 -0
- package/dist/{index-BiXqOfhl.d.mts → index-B_VcKELo.d.mts} +0 -0
- package/dist/{index-BBq5I7SB2.d.mts → index-BbjxBrcp2.d.mts} +0 -0
- package/dist/{index-Bq4PHWe9.d.mts → index-BnLp-7qH.d.mts} +0 -0
- package/dist/{index-Bg5iXHk5.d.mts → index-BpWoCe22.d.mts} +0 -0
- package/dist/{index-BO8n7zAS.d.mts → index-Bpv8EpBa.d.mts} +0 -0
- package/dist/{index-Ce_l029J.d.mts → index-BrRCVo9r.d.mts} +0 -0
- package/dist/{index-z-YJG2cw.d.mts → index-CHuB40EK.d.mts} +0 -0
- package/dist/{index-CavvxFdG2.d.mts → index-CIV2G6uX2.d.mts} +0 -0
- package/dist/{index-CgVdz5IV.d.mts → index-CNOqYviR.d.mts} +0 -0
- package/dist/{index-Bk865qJX.d.mts → index-CSEhxhIc.d.mts} +0 -0
- package/dist/{index-oucWFlFP2.d.mts → index-CZuhTqsX2.d.mts} +0 -0
- package/dist/{index-CUHWylh4.d.mts → index-D3_QOfke.d.mts} +0 -0
- package/dist/{index-BB4EWIf3.d.mts → index-D6qlh6Td.d.mts} +0 -0
- package/dist/{index-BjaQsfAr.d.mts → index-DLlTuugR.d.mts} +0 -0
- package/dist/{index-VVJqONaI.d.mts → index-DOKPbF-y2.d.mts} +0 -0
- package/dist/{index-BJjdUzfw2.d.mts → index-DZv9yNKF2.d.mts} +0 -0
- package/dist/{index-Cb3NfGSV2.d.mts → index-DrwT45ci2.d.mts} +6 -6
- package/dist/{index-DR9-fFwc.d.mts → index-DxaQ-ceV.d.mts} +0 -0
- package/dist/{index-zvgQ8ErF.d.mts → index-HRn0Kun0.d.mts} +0 -0
- package/dist/{index-Ck5amD5_.d.mts → index-IkeLI7uY.d.mts} +0 -0
- package/dist/{index-Q29tcu5N.d.mts → index-_Ngf4KAa.d.mts} +0 -0
- package/dist/{index-BcTwLu9C2.d.mts → index-b_LJnwCU2.d.mts} +0 -0
- package/dist/{index-LwOw7ZLk2.d.mts → index-uv_WSQtw2.d.mts} +8 -8
- /package/dist/{json-value-C57MkQrB.d.mts → json-value-DyMQrwGz.d.mts} +0 -0
- /package/dist/{jsonl-transport-QQuABrN7.mjs → jsonl-transport-Dfv3RLzi.mjs} +0 -0
- /package/dist/{lib-Sx8gBJvV.mjs → lib-BdfAJKDj.mjs} +0 -0
- /package/dist/{model-registry-DNHDnyvs.mjs → model-registry-DlUErRRt.mjs} +0 -0
- /package/dist/{namespace-BGgY903U.mjs → namespace-B8kUQpwo.mjs} +0 -0
- /package/dist/{namespace-D1qK-Ed3.d.mts → namespace-BlH5BeSq.d.mts} +0 -0
- /package/dist/{namespace-BY5-nA4j.d.mts → namespace-BocL2nn7.d.mts} +0 -0
- /package/dist/{namespace-DInMixc8.d.mts → namespace-CQaL10rI.d.mts} +0 -0
- /package/dist/{namespace-DE3oGhaN.d.mts → namespace-CcHA54E1.d.mts} +0 -0
- /package/dist/{namespace-DHrItZyM.mjs → namespace-ChjzkJIl.mjs} +0 -0
- /package/dist/{namespace-DkAlBY9o.d.mts → namespace-Ct2DKREI.d.mts} +0 -0
- /package/dist/{namespace-DENdNdK0.d.mts → namespace-DdcRYk7b.d.mts} +0 -0
- /package/dist/{namespace-Ca4sQ8X-.d.mts → namespace-DtXYm32M.d.mts} +0 -0
- /package/dist/{namespace-WeSQXdAL.d.mts → namespace-DyeMWQKf.d.mts} +0 -0
- /package/dist/{namespace-Bn-ryJn5.d.mts → namespace-nE7vRctI.d.mts} +0 -0
- /package/dist/{namespace-DP0WWpTO.d.mts → namespace-sTMm1voF.d.mts} +0 -0
- /package/dist/{orchestrator-shared-2vuCvljs.d.mts → orchestrator-shared-CYnIz5Zd.d.mts} +0 -0
- /package/dist/{out-Rz-t3WeC.mjs → out-Cn6vBxlH.mjs} +0 -0
- /package/dist/{package-Tt2uoAFf.mjs → package-BUSXHPOT.mjs} +0 -0
- /package/dist/{package-buHQFmTH.mjs → package-BiZ6ehWk.mjs} +0 -0
- /package/dist/{package-DfjGt5oK.mjs → package-D4eLGGv4.mjs} +0 -0
- /package/dist/{packages-DAqep89i.d.mts → packages-DtsjAYuf.d.mts} +0 -0
- /package/dist/{providers-namespace-C56pGeTO.d.mts → providers-namespace-BxknJ03z.d.mts} +0 -0
- /package/dist/{quick-lru-uXa2PNb5.mjs → quick-lru-CVryNCTx.mjs} +0 -0
- /package/dist/{registry-CZf8VGBh.mjs → registry-Q9gCZtxz.mjs} +0 -0
- /package/dist/{schema-wArHaxA9.d.mts → schema-CJfSEZ8X.d.mts} +0 -0
- /package/dist/{schemas-BsZJHdvY.d.mts → schemas-0VbIjfrW.d.mts} +0 -0
- /package/dist/{schemas-DDCAGKRi.mjs → schemas-BFgsIiSb.mjs} +0 -0
- /package/dist/{schemas-DmE-a0kN.d.mts → schemas-BfMFZ6J5.d.mts} +0 -0
- /package/dist/{schemas-CITR9cWN.d.mts → schemas-CmUWeOkr.d.mts} +0 -0
- /package/dist/{schemas-BMGJLkdK2.d.mts → schemas-CsRcSlvA2.d.mts} +0 -0
- /package/dist/{schemas-gfrOgGau.d.mts → schemas-Djt6hIjz.d.mts} +0 -0
- /package/dist/{schemas-wPB7RnHB.d.mts → schemas-DzDVjYjt.d.mts} +0 -0
- /package/dist/{schemas-B0zhTfet.d.mts → schemas-KDl7p-wr.d.mts} +0 -0
- /package/dist/{schemas-BJKx29Sp.d.mts → schemas-Yp3PvwsM.d.mts} +0 -0
- /package/dist/{server-lifecycle-CREtXADx.d.mts → server-lifecycle-Ck6_8o8v.d.mts} +0 -0
- /package/dist/{server-lifecycle-AvBVeCFR.mjs → server-lifecycle-hNz8U-QJ.mjs} +0 -0
- /package/dist/{src-DnLncoLg.mjs → src-Du_285FN.mjs} +0 -0
- /package/dist/{storage-namespace-JBh9nkKw.d.mts → storage-namespace-CRdQoXZ9.d.mts} +0 -0
- /package/dist/{storage-namespace-CH4j0_Zs.mjs → storage-namespace-Dtz2G1if.mjs} +0 -0
- /package/dist/{storage-namespace-definition-C0mnpnC_.d.mts → storage-namespace-definition-NBw1Y8Pa.d.mts} +0 -0
- /package/dist/{supports-color-BBMFnbC4.mjs → supports-color-BNmyqLq0.mjs} +0 -0
- /package/dist/{tool-approval-service-7mzJVMo_.mjs → tool-approval-service-rpV94znP.mjs} +0 -0
- /package/dist/{tray-menu-service-thAhpcPA.mjs → tray-menu-service-TWrmvXSo.mjs} +0 -0
- /package/dist/{types-9ldZyQTb.d.mts → types-BFv-EK2G.d.mts} +0 -0
- /package/dist/{types-DJuxNrac.d.mts → types-BcGXdeva.d.mts} +0 -0
- /package/dist/{types-eCGV_g6P.d.mts → types-CUCFeisO.d.mts} +0 -0
- /package/dist/{types-xXv0lUeU.d.mts → types-CXrp5ldz.d.mts} +0 -0
- /package/dist/{types-BMkn9jOe.d.mts → types-D4N56a4O.d.mts} +0 -0
- /package/dist/{types-CjjNAiHa.mjs → types-D9GJ7FyQ.mjs} +0 -0
- /package/dist/{window-registry-CGaYVD7l.d.mts → window-registry-Chi2qJ5k.d.mts} +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { a as ProviderOperationClaim, i as ProcessBoundProvisionerLossProof, l as ProviderOperationOwnershipRecord, o as ProviderOperationClaimDecision, s as ProviderOperationMutationDecision } from "./provider-operation-BwrIrOeY.mjs";
|
|
2
1
|
import { BoundedRecoveryEvidence, ExecutionAttemptInstruction, ExecutionAttemptOperationKind, ExecutionAttemptOperationReportRequest, ExecutionAttemptOperationReportResponse, ExecutionAttemptPreparationResult, ExecutionAttemptWorkspaceBinding, ProviderAllocationRef, WorkerAllocationLifetime } from "@makaio/framework/contracts";
|
|
3
2
|
|
|
4
3
|
//#region subsystems/workflow-engine/src/execution-attempt-owner-recovery.d.ts
|
|
@@ -109,6 +108,431 @@ declare function replayEnsuredAttempt(input: EnsureExecutionAttemptInput, boundA
|
|
|
109
108
|
*/
|
|
110
109
|
declare function readAttemptSettlementSnapshot<TOutcome>(input: ReadAttemptSettlementInput, snapshot: AttemptSettlementSnapshot, codec: OutcomeCodec<TOutcome>): AttemptSettlementRead<TOutcome>;
|
|
111
110
|
//#endregion
|
|
111
|
+
//#region subsystems/workflow-engine/src/provider-operation.d.ts
|
|
112
|
+
/**
|
|
113
|
+
* Provider-operation ownership protocol.
|
|
114
|
+
*
|
|
115
|
+
* An execution attempt owns canonical workflow state. A *provider operation*
|
|
116
|
+
* is the separate, fenced record of who is currently allowed to act on that
|
|
117
|
+
* attempt's provider-side infrastructure, and what remediation debt is still
|
|
118
|
+
* outstanding for it. Completion is a separate, positive fact: an attempt
|
|
119
|
+
* settlement cannot prove that the provider has released its allocation.
|
|
120
|
+
*
|
|
121
|
+
* The two records are deliberately distinct:
|
|
122
|
+
* - the attempt answers "what is the canonical workflow answer?";
|
|
123
|
+
* - the operation answers "who may talk to the provider right now, and what
|
|
124
|
+
* does that provider still owe us?".
|
|
125
|
+
*
|
|
126
|
+
* Worker outcome commitment is therefore independent of operation ownership:
|
|
127
|
+
* a worker that produces a result never needs a claim.
|
|
128
|
+
* @packageDocumentation
|
|
129
|
+
*/
|
|
130
|
+
/**
|
|
131
|
+
* Outstanding provider-side debt for one execution attempt.
|
|
132
|
+
*
|
|
133
|
+
* - `provisioning-resolution`: a provider call was authorized but no
|
|
134
|
+
* allocation is known yet. Either an allocation exists and must be found,
|
|
135
|
+
* or its absence must be positively proven.
|
|
136
|
+
* - `allocation-control`: an allocation reference is known and the operation
|
|
137
|
+
* owns its infrastructure lifecycle.
|
|
138
|
+
* - `terminal-convergence`: a known allocation has been confirmed terminated,
|
|
139
|
+
* and the attempt still needs a canonical workflow answer.
|
|
140
|
+
*/
|
|
141
|
+
type ProviderOperationObligation = 'provisioning-resolution' | 'allocation-control' | 'terminal-convergence';
|
|
142
|
+
/**
|
|
143
|
+
* Ordered constant array of every provider-operation obligation.
|
|
144
|
+
*
|
|
145
|
+
* The order is the monotonic progression an operation may follow. A stored
|
|
146
|
+
* obligation never moves backwards, and callers never supply it: the durable
|
|
147
|
+
* repository derives it from the transition being applied.
|
|
148
|
+
*/
|
|
149
|
+
declare const PROVIDER_OPERATION_OBLIGATIONS: readonly ["provisioning-resolution", "allocation-control", "terminal-convergence"];
|
|
150
|
+
/**
|
|
151
|
+
* Proof that the holder currently owns an attempt's provider operation.
|
|
152
|
+
*
|
|
153
|
+
* A claim is the only authorization for a provider-side evidence mutation.
|
|
154
|
+
* It is fenced on two axes: `generation` advances on every takeover, and
|
|
155
|
+
* `token` is reissued with it, so a claim from a superseded owner is rejected
|
|
156
|
+
* even if that owner's lease has not visibly expired yet.
|
|
157
|
+
*
|
|
158
|
+
* `ownerId` identifies a controller *process incarnation*. It is not a
|
|
159
|
+
* machine identifier, a workflow node identifier, an execution identifier,
|
|
160
|
+
* or a security principal.
|
|
161
|
+
*/
|
|
162
|
+
interface ProviderOperationClaim {
|
|
163
|
+
/** Attempt whose provider operation this claim authorizes. */
|
|
164
|
+
readonly executionAttemptId: string;
|
|
165
|
+
/** Ownership generation this claim was issued for. */
|
|
166
|
+
readonly generation: number;
|
|
167
|
+
/** Controller process incarnation that holds the claim. */
|
|
168
|
+
readonly ownerId: string;
|
|
169
|
+
/** Opaque fencing token issued by the durable repository. */
|
|
170
|
+
readonly token: string;
|
|
171
|
+
/**
|
|
172
|
+
* Instant after which the lease may be taken over.
|
|
173
|
+
*
|
|
174
|
+
* Canonical UTC ISO-8601 with millisecond precision, as issued by the
|
|
175
|
+
* durable repository, and ordered as an instant rather than as text.
|
|
176
|
+
*/
|
|
177
|
+
readonly leaseExpiresAt: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Durable ownership and remediation state for one attempt's provider operation.
|
|
181
|
+
*
|
|
182
|
+
* Until {@link isProviderOperationResolved} returns `true`, `ownerId`,
|
|
183
|
+
* `token`, and `leaseExpiresAt` describe the current claim and are all `null`
|
|
184
|
+
* when the operation is unowned. Positive completion evidence may be recorded
|
|
185
|
+
* before the attempt settles; that evidence is immutable, but it does not
|
|
186
|
+
* freeze the live claim or make the operation ineligible for recovery. Once
|
|
187
|
+
* the operation is resolved, the fields retain the final control snapshot,
|
|
188
|
+
* which may be unowned after a handoff and is not proof-writing provenance.
|
|
189
|
+
* `generation` and `obligation` survive both handoff and completion.
|
|
190
|
+
*
|
|
191
|
+
* All fields are JSON-safe and non-secret. `lastFailure` holds bounded
|
|
192
|
+
* evidence only; plaintext credentials, stack traces, and raw provider
|
|
193
|
+
* responses never reach this record.
|
|
194
|
+
*/
|
|
195
|
+
interface ProviderOperationOwnershipRecord {
|
|
196
|
+
/** Attempt this operation belongs to. */
|
|
197
|
+
readonly executionAttemptId: string;
|
|
198
|
+
/** Monotonic ownership generation, incremented by every takeover. */
|
|
199
|
+
readonly generation: number;
|
|
200
|
+
/**
|
|
201
|
+
* Current controller process incarnation while unresolved, retained as the
|
|
202
|
+
* final control snapshot once {@link isProviderOperationResolved} returns
|
|
203
|
+
* `true`, or `null` when the operation is unowned.
|
|
204
|
+
*/
|
|
205
|
+
readonly ownerId: string | null;
|
|
206
|
+
/**
|
|
207
|
+
* Current fencing token while unresolved, retained as the final control
|
|
208
|
+
* snapshot once {@link isProviderOperationResolved} returns `true`, or
|
|
209
|
+
* `null` when the operation is unowned.
|
|
210
|
+
*/
|
|
211
|
+
readonly token: string | null;
|
|
212
|
+
/**
|
|
213
|
+
* Current lease deadline while unresolved, retained with the final control
|
|
214
|
+
* snapshot once {@link isProviderOperationResolved} returns `true`, or
|
|
215
|
+
* `null` when the operation is unowned.
|
|
216
|
+
*/
|
|
217
|
+
readonly leaseExpiresAt: string | null;
|
|
218
|
+
/** Outstanding provider-side debt, owned by the durable repository. */
|
|
219
|
+
readonly obligation: ProviderOperationObligation;
|
|
220
|
+
/** Number of recorded uncertainty observations for this operation. */
|
|
221
|
+
readonly failureCount: number;
|
|
222
|
+
/** Most recent bounded evidence recorded against this operation. */
|
|
223
|
+
readonly lastFailure: BoundedRecoveryEvidence | null;
|
|
224
|
+
/**
|
|
225
|
+
* Positive, immutable proof that every provider-side responsibility for this
|
|
226
|
+
* operation is complete, or `null` while the proof has not been observed.
|
|
227
|
+
*
|
|
228
|
+
* This is deliberately independent of the attempt's settlement and of
|
|
229
|
+
* {@link obligation}: a settled attempt can still need provider cleanup, and
|
|
230
|
+
* an unsettled attempt with this proof stays recoverable until it has a
|
|
231
|
+
* canonical settlement.
|
|
232
|
+
*/
|
|
233
|
+
readonly completionEvidence: BoundedRecoveryEvidence | null;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Whether an operation has both of the independent facts needed to resolve it.
|
|
237
|
+
*
|
|
238
|
+
* Provider evidence can arrive before an outcome. That fact must be retained,
|
|
239
|
+
* but it does not close control ownership: recovery may still need to hold or
|
|
240
|
+
* hand off the operation until the attempt settles. Conversely, settlement
|
|
241
|
+
* alone never proves provider work is complete.
|
|
242
|
+
* @param attempt - Minimal durable settlement fact from the attempt record.
|
|
243
|
+
* @param operation - Minimal positive provider-completion fact from the operation record.
|
|
244
|
+
* @returns Whether no provider-operation ownership or recovery work remains.
|
|
245
|
+
*/
|
|
246
|
+
declare function isProviderOperationResolved(attempt: Pick<ExecutionAttemptRecord, 'settlementKind'>, operation: Pick<ProviderOperationOwnershipRecord, 'completionEvidence'>): boolean;
|
|
247
|
+
/**
|
|
248
|
+
* Durable decision for acquiring or extending provider-operation ownership.
|
|
249
|
+
*
|
|
250
|
+
* - `claimed`: the caller now holds the operation; the returned claim is the
|
|
251
|
+
* only value that authorizes subsequent provider-side mutations.
|
|
252
|
+
* - `stale`: the request does not match durable ownership — a superseded
|
|
253
|
+
* generation or token on renewal, or a lease that has not expired yet on
|
|
254
|
+
* takeover. The caller must re-read before retrying.
|
|
255
|
+
* - `resolved`: positive completion evidence and attempt settlement were both
|
|
256
|
+
* recorded, so there is nothing left to own. Neither fact alone produces
|
|
257
|
+
* this decision.
|
|
258
|
+
* - `not-found`: no provider operation exists for the attempt.
|
|
259
|
+
*/
|
|
260
|
+
type ProviderOperationClaimDecision = {
|
|
261
|
+
readonly kind: 'claimed';
|
|
262
|
+
readonly claim: ProviderOperationClaim;
|
|
263
|
+
} | {
|
|
264
|
+
readonly kind: 'stale';
|
|
265
|
+
} | {
|
|
266
|
+
readonly kind: 'resolved';
|
|
267
|
+
} | {
|
|
268
|
+
readonly kind: 'not-found';
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
* Durable decision for a claim-fenced mutation of provider-operation state.
|
|
272
|
+
*
|
|
273
|
+
* - `recorded`: the mutation was applied.
|
|
274
|
+
* - `stale`: the caller's view of durable state is out of date — either the
|
|
275
|
+
* claim no longer matches the stored generation/token, or the stored
|
|
276
|
+
* obligation cannot make the requested transition. In both cases the
|
|
277
|
+
* caller must re-read; it may not pick a different write path instead.
|
|
278
|
+
* - `resolved`: positive completion evidence and attempt settlement were both
|
|
279
|
+
* recorded, so the operation is closed.
|
|
280
|
+
* - `not-found`: no provider operation exists for the attempt.
|
|
281
|
+
*/
|
|
282
|
+
type ProviderOperationMutationDecision = {
|
|
283
|
+
readonly kind: 'recorded';
|
|
284
|
+
} | {
|
|
285
|
+
readonly kind: 'stale';
|
|
286
|
+
} | {
|
|
287
|
+
readonly kind: 'resolved';
|
|
288
|
+
} | {
|
|
289
|
+
readonly kind: 'not-found';
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Durable decision for recording positive completion of a provider operation.
|
|
293
|
+
*
|
|
294
|
+
* Completion evidence is immutable once written. The repository validates the
|
|
295
|
+
* current claim before recording it, and no later call can replace the first
|
|
296
|
+
* proof. `evidence-recorded` means the evidence is durable but the attempt
|
|
297
|
+
* remains unsettled, so the operation stays recoverable. `completed` means
|
|
298
|
+
* the same write also resolves the operation because the attempt was already
|
|
299
|
+
* settled. Replaying after evidence exists but before settlement returns
|
|
300
|
+
* `evidence-recorded`; replaying after resolution returns `already-completed`.
|
|
301
|
+
*/
|
|
302
|
+
type ProviderOperationCompletionDecision = {
|
|
303
|
+
readonly kind: 'evidence-recorded';
|
|
304
|
+
} | {
|
|
305
|
+
readonly kind: 'completed';
|
|
306
|
+
} | {
|
|
307
|
+
readonly kind: 'already-completed';
|
|
308
|
+
} | {
|
|
309
|
+
readonly kind: 'stale';
|
|
310
|
+
} | {
|
|
311
|
+
readonly kind: 'not-found';
|
|
312
|
+
};
|
|
313
|
+
/**
|
|
314
|
+
* Durable decision for recording positively proven pre-allocation absence.
|
|
315
|
+
*
|
|
316
|
+
* - `recorded`: absence evidence was stored and the same positive proof
|
|
317
|
+
* completed the operation while newly settling the attempt as `abandoned`.
|
|
318
|
+
* - `completed`: absence evidence was stored and completed the operation, but
|
|
319
|
+
* an existing canonical settlement was preserved — all in one transaction.
|
|
320
|
+
* - `allocated`: an allocation won the race. Absence must never terminalize
|
|
321
|
+
* an attempt that owns live infrastructure.
|
|
322
|
+
* - `resolved`: positive provider completion evidence and attempt settlement
|
|
323
|
+
* were already recorded.
|
|
324
|
+
* - `stale`: the claim no longer matches durable ownership.
|
|
325
|
+
* - `not-found`: no provider operation exists for the attempt.
|
|
326
|
+
*/
|
|
327
|
+
type ProvisioningAbsenceDecision = {
|
|
328
|
+
readonly kind: 'recorded';
|
|
329
|
+
} | {
|
|
330
|
+
readonly kind: 'completed';
|
|
331
|
+
} | {
|
|
332
|
+
readonly kind: 'allocated';
|
|
333
|
+
readonly allocationRef: ProviderAllocationRef;
|
|
334
|
+
} | {
|
|
335
|
+
readonly kind: 'resolved';
|
|
336
|
+
} | {
|
|
337
|
+
readonly kind: 'stale';
|
|
338
|
+
} | {
|
|
339
|
+
readonly kind: 'not-found';
|
|
340
|
+
};
|
|
341
|
+
/**
|
|
342
|
+
* Durable decision for closing pre-allocation debt on proven loss of the
|
|
343
|
+
* provisioner process incarnation.
|
|
344
|
+
*
|
|
345
|
+
* The counterpart of {@link ProvisioningAbsenceDecision} for the one lifetime
|
|
346
|
+
* where nothing needs to be observed to conclude: a
|
|
347
|
+
* `provisioner-process-bound` allocation cannot outlive the process that
|
|
348
|
+
* created it, so proof that the exact recorded incarnation is gone is proof
|
|
349
|
+
* that no allocation survives. Every refusal below is a statement about why the
|
|
350
|
+
* proof does not apply, and each is reported distinctly because they oblige the
|
|
351
|
+
* caller to do different things.
|
|
352
|
+
*
|
|
353
|
+
* - `recorded`: the proof was stored and the same positive proof completed the
|
|
354
|
+
* operation while newly settling the attempt as `abandoned`.
|
|
355
|
+
* - `completed`: the proof was stored and completed the operation, but an
|
|
356
|
+
* existing canonical settlement was preserved — all in one transaction.
|
|
357
|
+
* - `not-process-bound`: the attempt's recorded lifetime is not
|
|
358
|
+
* `provisioner-process-bound`, so losing a process says nothing about its
|
|
359
|
+
* allocation. The reported lifetime is the stored one, `null` before
|
|
360
|
+
* provisioning began.
|
|
361
|
+
* - `incarnation-mismatch`: the proof names a different provisioner
|
|
362
|
+
* incarnation, or the attempt has none recorded, so the proof says nothing
|
|
363
|
+
* about this attempt. The reported identifier is the stored one.
|
|
364
|
+
* - `allocated`: an allocation is already recorded, so the attempt owes
|
|
365
|
+
* allocation control rather than pre-allocation closure. Terminate the known
|
|
366
|
+
* allocation instead of closing the attempt from a proof.
|
|
367
|
+
* - `resolved`: positive provider completion evidence and attempt settlement
|
|
368
|
+
* were already recorded.
|
|
369
|
+
* - `stale`: the claim no longer matches durable ownership.
|
|
370
|
+
* - `not-found`: no provider operation exists for the attempt, or it does not
|
|
371
|
+
* belong to the named execution.
|
|
372
|
+
*/
|
|
373
|
+
type ProvisionerIncarnationLossDecision = {
|
|
374
|
+
readonly kind: 'recorded';
|
|
375
|
+
} | {
|
|
376
|
+
readonly kind: 'completed';
|
|
377
|
+
} | {
|
|
378
|
+
readonly kind: 'not-process-bound';
|
|
379
|
+
readonly allocationLifetime: WorkerAllocationLifetime | null;
|
|
380
|
+
} | {
|
|
381
|
+
readonly kind: 'incarnation-mismatch';
|
|
382
|
+
readonly provisionerIncarnationId: string | null;
|
|
383
|
+
} | {
|
|
384
|
+
readonly kind: 'allocated';
|
|
385
|
+
readonly allocationRef: ProviderAllocationRef;
|
|
386
|
+
} | {
|
|
387
|
+
readonly kind: 'resolved';
|
|
388
|
+
} | {
|
|
389
|
+
readonly kind: 'stale';
|
|
390
|
+
} | {
|
|
391
|
+
readonly kind: 'not-found';
|
|
392
|
+
};
|
|
393
|
+
/** Input for extending the lease of a currently held provider operation. */
|
|
394
|
+
interface RenewProviderOperationClaimInput {
|
|
395
|
+
/** Claim the caller currently believes it holds. */
|
|
396
|
+
readonly claim: ProviderOperationClaim;
|
|
397
|
+
/** New ISO-8601 lease deadline. */
|
|
398
|
+
readonly leaseExpiresAt: string;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Input for taking ownership of an unowned or expired provider operation.
|
|
402
|
+
*
|
|
403
|
+
* Takeover needs no prior claim — that is the point. It succeeds only when
|
|
404
|
+
* the operation is unowned or its lease has expired relative to `observedAt`,
|
|
405
|
+
* and it always increments the generation so every claim issued before it is
|
|
406
|
+
* fenced immediately.
|
|
407
|
+
*/
|
|
408
|
+
interface TakeOverProviderOperationInput {
|
|
409
|
+
/** Attempt whose provider operation is being taken over. */
|
|
410
|
+
readonly executionAttemptId: string;
|
|
411
|
+
/** Controller process incarnation requesting ownership. */
|
|
412
|
+
readonly ownerId: string;
|
|
413
|
+
/** ISO-8601 observation time used to evaluate lease expiry. */
|
|
414
|
+
readonly observedAt: string;
|
|
415
|
+
/** ISO-8601 deadline for the new lease. */
|
|
416
|
+
readonly leaseExpiresAt: string;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Input for releasing a held provider operation without resolving it.
|
|
420
|
+
*
|
|
421
|
+
* Handoff is a graceful release, not a failure: optional evidence explains
|
|
422
|
+
* why control was released but does not count towards the failure total.
|
|
423
|
+
*/
|
|
424
|
+
interface HandoffProviderOperationInput {
|
|
425
|
+
/** Claim being released. */
|
|
426
|
+
readonly claim: ProviderOperationClaim;
|
|
427
|
+
/** Optional bounded evidence explaining the release. */
|
|
428
|
+
readonly evidence?: BoundedRecoveryEvidence;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Input for recording that a provider observation stayed inconclusive.
|
|
432
|
+
*
|
|
433
|
+
* Uncertainty is the only honest record for an ambiguous provider result. It
|
|
434
|
+
* retains the current obligation and never terminalizes the attempt.
|
|
435
|
+
*/
|
|
436
|
+
interface RecordProviderOperationUncertaintyInput {
|
|
437
|
+
/** Claim authorizing the record. */
|
|
438
|
+
readonly claim: ProviderOperationClaim;
|
|
439
|
+
/** Bounded evidence describing what blocked a conclusion. */
|
|
440
|
+
readonly evidence: BoundedRecoveryEvidence;
|
|
441
|
+
}
|
|
442
|
+
/** Input for recording positive completion evidence of a provider operation. */
|
|
443
|
+
interface CompleteProviderOperationInput {
|
|
444
|
+
/** Claim that currently owns the provider operation. */
|
|
445
|
+
readonly claim: ProviderOperationClaim;
|
|
446
|
+
/** Bounded, durable, non-secret proof that provider work is complete. */
|
|
447
|
+
readonly evidence: BoundedRecoveryEvidence;
|
|
448
|
+
}
|
|
449
|
+
/** Bounded, caller-timed selector for provider operations eligible for takeover. */
|
|
450
|
+
interface ListOpenProviderOperationsInput {
|
|
451
|
+
/** ISO-8601 instant at which the caller observed lease eligibility. */
|
|
452
|
+
readonly observedAt: string;
|
|
453
|
+
/** Positive safe-integer maximum number of records to return; no implicit default exists. */
|
|
454
|
+
readonly limit: number;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* One provider operation that still needs infrastructure work.
|
|
458
|
+
*
|
|
459
|
+
* The joined shape returns the existing durable attempt and operation records
|
|
460
|
+
* rather than introducing another lifecycle ledger. The operation is open
|
|
461
|
+
* when {@link isProviderOperationResolved} returns `false`; its completion
|
|
462
|
+
* evidence and settlement may each be present independently.
|
|
463
|
+
*/
|
|
464
|
+
interface OpenProviderOperationRecord {
|
|
465
|
+
/** Attempt whose provider-side infrastructure remains open. */
|
|
466
|
+
readonly attempt: ExecutionAttemptRecord;
|
|
467
|
+
/** Open provider operation, including current or expired claim facts. */
|
|
468
|
+
readonly operation: ProviderOperationOwnershipRecord;
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Controller identity and lease policy for an attempt's first claim.
|
|
472
|
+
*
|
|
473
|
+
* Supplied by the host, never invented by the code that dispatches work.
|
|
474
|
+
* A dispatcher knows which attempt it is starting; it does not know which
|
|
475
|
+
* process incarnation it belongs to or how long a lease should last.
|
|
476
|
+
*/
|
|
477
|
+
interface InitialProviderOperationClaimContext {
|
|
478
|
+
/** Controller process incarnation that will hold the initial claim. */
|
|
479
|
+
readonly ownerId: string;
|
|
480
|
+
/**
|
|
481
|
+
* Provisioner process incarnation that performs the provider call.
|
|
482
|
+
*
|
|
483
|
+
* Stable for the lifetime of the provisioning process. It is never
|
|
484
|
+
* regenerated per attempt: process-loss proof is only meaningful when the
|
|
485
|
+
* recorded incarnation identifies the process that actually provisioned.
|
|
486
|
+
*/
|
|
487
|
+
readonly provisionerIncarnationId: string;
|
|
488
|
+
/** ISO-8601 deadline for the initial lease, per host lease policy. */
|
|
489
|
+
readonly leaseExpiresAt: string;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Host seam that produces the initial claim context for an attempt.
|
|
493
|
+
*
|
|
494
|
+
* Hosts implement this to inject controller identity and lease policy.
|
|
495
|
+
* There is deliberately no default implementation and no default lease
|
|
496
|
+
* duration: a hidden default would silently attach remediation authority to
|
|
497
|
+
* an anonymous owner.
|
|
498
|
+
*/
|
|
499
|
+
interface InitialProviderOperationClaimContextSource {
|
|
500
|
+
/**
|
|
501
|
+
* Produce the initial claim context for one attempt about to be provisioned.
|
|
502
|
+
* @param input - Execution, attempt, and provider the claim is being created for.
|
|
503
|
+
* @param signal - AbortSignal for cooperative cancellation.
|
|
504
|
+
* @returns Controller identity, provisioner incarnation, and lease deadline.
|
|
505
|
+
*/
|
|
506
|
+
create(input: {
|
|
507
|
+
/** Workflow execution identifier. */readonly executionId: string; /** Attempt identifier the claim is created for. */
|
|
508
|
+
readonly executionAttemptId: string; /** Provider identifier that will be bound to the attempt. */
|
|
509
|
+
readonly providerId: string;
|
|
510
|
+
}, signal: AbortSignal): Promise<InitialProviderOperationClaimContext>;
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Positive proof that a specific provisioner process incarnation is gone.
|
|
514
|
+
*
|
|
515
|
+
* Only meaningful for attempts whose allocation lifetime is
|
|
516
|
+
* `provisioner-process-bound`: such an allocation cannot outlive the process
|
|
517
|
+
* that created it, so proving that process is gone proves the allocation is
|
|
518
|
+
* gone too.
|
|
519
|
+
*
|
|
520
|
+
* A remediator may act on this proof only when `provisionerIncarnationId`
|
|
521
|
+
* exactly equals the attempt's immutable `provisionerIncarnationId`. Proof
|
|
522
|
+
* naming a different incarnation says nothing about this attempt.
|
|
523
|
+
*
|
|
524
|
+
* An expired lease is never such proof: leases expire for slow controllers
|
|
525
|
+
* as readily as for dead ones.
|
|
526
|
+
*/
|
|
527
|
+
interface ProcessBoundProvisionerLossProof {
|
|
528
|
+
/** Discriminant for provisioner incarnation loss. */
|
|
529
|
+
readonly kind: 'provisioner-incarnation-lost';
|
|
530
|
+
/** Provisioner process incarnation this proof is about. */
|
|
531
|
+
readonly provisionerIncarnationId: string;
|
|
532
|
+
/** Bounded, durable, non-secret evidence supporting the loss claim. */
|
|
533
|
+
readonly evidence: BoundedRecoveryEvidence;
|
|
534
|
+
}
|
|
535
|
+
//#endregion
|
|
112
536
|
//#region subsystems/workflow-engine/src/execution-attempt-decisions.d.ts
|
|
113
537
|
/** Facts read coherently by a realization before decoding runtime control state. */
|
|
114
538
|
interface AttemptReachability {
|
|
@@ -848,55 +1272,6 @@ declare class RuntimeOutcomeFenceMismatchError extends Error {
|
|
|
848
1272
|
* @throws RuntimeOutcomeFenceMismatchError when the originating runtime slot changed.
|
|
849
1273
|
*/
|
|
850
1274
|
declare function assertRuntimeOutcomeFence(control: AttemptControlState, fence: RuntimeOutcomeFence | undefined): void;
|
|
851
|
-
/** Input for extending the lease of a currently held provider operation. */
|
|
852
|
-
interface RenewProviderOperationClaimInput {
|
|
853
|
-
/** Claim the caller currently believes it holds. */
|
|
854
|
-
readonly claim: ProviderOperationClaim;
|
|
855
|
-
/** New ISO-8601 lease deadline. */
|
|
856
|
-
readonly leaseExpiresAt: string;
|
|
857
|
-
}
|
|
858
|
-
/**
|
|
859
|
-
* Input for taking ownership of an unowned or expired provider operation.
|
|
860
|
-
*
|
|
861
|
-
* Takeover needs no prior claim — that is the point. It succeeds only when
|
|
862
|
-
* the operation is unowned or its lease has expired relative to `observedAt`,
|
|
863
|
-
* and it always increments the generation so every claim issued before it is
|
|
864
|
-
* fenced immediately.
|
|
865
|
-
*/
|
|
866
|
-
interface TakeOverProviderOperationInput {
|
|
867
|
-
/** Attempt whose provider operation is being taken over. */
|
|
868
|
-
readonly executionAttemptId: string;
|
|
869
|
-
/** Controller process incarnation requesting ownership. */
|
|
870
|
-
readonly ownerId: string;
|
|
871
|
-
/** ISO-8601 observation time used to evaluate lease expiry. */
|
|
872
|
-
readonly observedAt: string;
|
|
873
|
-
/** ISO-8601 deadline for the new lease. */
|
|
874
|
-
readonly leaseExpiresAt: string;
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* Input for releasing a held provider operation without resolving it.
|
|
878
|
-
*
|
|
879
|
-
* Handoff is a graceful release, not a failure: optional evidence explains
|
|
880
|
-
* why control was released but does not count towards the failure total.
|
|
881
|
-
*/
|
|
882
|
-
interface HandoffProviderOperationInput {
|
|
883
|
-
/** Claim being released. */
|
|
884
|
-
readonly claim: ProviderOperationClaim;
|
|
885
|
-
/** Optional bounded evidence explaining the release. */
|
|
886
|
-
readonly evidence?: BoundedRecoveryEvidence;
|
|
887
|
-
}
|
|
888
|
-
/**
|
|
889
|
-
* Input for recording that a provider observation stayed inconclusive.
|
|
890
|
-
*
|
|
891
|
-
* Uncertainty is the only honest record for an ambiguous provider result. It
|
|
892
|
-
* retains the current obligation and never terminalizes the attempt.
|
|
893
|
-
*/
|
|
894
|
-
interface RecordProviderOperationUncertaintyInput {
|
|
895
|
-
/** Claim authorizing the record. */
|
|
896
|
-
readonly claim: ProviderOperationClaim;
|
|
897
|
-
/** Bounded evidence describing what blocked a conclusion. */
|
|
898
|
-
readonly evidence: BoundedRecoveryEvidence;
|
|
899
|
-
}
|
|
900
1275
|
/** Input for recording an allocation reference against a held operation. */
|
|
901
1276
|
interface RecordAllocationInput {
|
|
902
1277
|
/** Claim authorizing the record. */
|
|
@@ -1076,7 +1451,7 @@ interface MarkRuntimeReadyInput {
|
|
|
1076
1451
|
* - `already-provisioning`: a begin already succeeded for this attempt. The
|
|
1077
1452
|
* caller must converge the existing operation instead of calling again.
|
|
1078
1453
|
* - `allocated`: an allocation is already recorded for this attempt.
|
|
1079
|
-
* - `resolved`: the attempt has settled
|
|
1454
|
+
* - `resolved`: the attempt has settled, so it cannot begin provisioning.
|
|
1080
1455
|
* - `fenced`: the attempt exists but is no longer the active attempt for its
|
|
1081
1456
|
* execution, so it may not bootstrap a new provider call.
|
|
1082
1457
|
* - `not-found`: no such attempt for the given execution.
|
|
@@ -1109,7 +1484,8 @@ type ProvisioningClaimDecision = {
|
|
|
1109
1484
|
* - `duplicate`: a reference {@link sameAllocationRef} judges identical was
|
|
1110
1485
|
* already stored; this is a replay.
|
|
1111
1486
|
* - `conflict`: a different reference is already stored for this attempt.
|
|
1112
|
-
* - `resolved`:
|
|
1487
|
+
* - `resolved`: positive provider completion evidence and attempt settlement
|
|
1488
|
+
* were already recorded.
|
|
1113
1489
|
* - `stale`: the claim no longer matches durable ownership.
|
|
1114
1490
|
* - `not-found`: no provider operation exists for the attempt.
|
|
1115
1491
|
*/
|
|
@@ -1137,76 +1513,6 @@ type AllocationRecordingDecision = {
|
|
|
1137
1513
|
* discovered allocation never makes its attempt bootstrap-claimable.
|
|
1138
1514
|
*/
|
|
1139
1515
|
type DiscoveredAllocationDecision = AllocationRecordingDecision;
|
|
1140
|
-
/**
|
|
1141
|
-
* Durable decision for recording positively proven pre-allocation absence.
|
|
1142
|
-
*
|
|
1143
|
-
* - `recorded`: absence evidence was stored, the attempt settled as
|
|
1144
|
-
* `abandoned`, and the operation closed — all in one transaction.
|
|
1145
|
-
* - `allocated`: an allocation won the race. Absence must never terminalize
|
|
1146
|
-
* an attempt that owns live infrastructure.
|
|
1147
|
-
* - `resolved`: the attempt has already settled; the operation is closed.
|
|
1148
|
-
* - `stale`: the claim no longer matches durable ownership.
|
|
1149
|
-
* - `not-found`: no provider operation exists for the attempt.
|
|
1150
|
-
*/
|
|
1151
|
-
type ProvisioningAbsenceDecision = {
|
|
1152
|
-
readonly kind: 'recorded';
|
|
1153
|
-
} | {
|
|
1154
|
-
readonly kind: 'allocated';
|
|
1155
|
-
readonly allocationRef: ProviderAllocationRef;
|
|
1156
|
-
} | {
|
|
1157
|
-
readonly kind: 'resolved';
|
|
1158
|
-
} | {
|
|
1159
|
-
readonly kind: 'stale';
|
|
1160
|
-
} | {
|
|
1161
|
-
readonly kind: 'not-found';
|
|
1162
|
-
};
|
|
1163
|
-
/**
|
|
1164
|
-
* Durable decision for closing pre-allocation debt on proven loss of the
|
|
1165
|
-
* provisioner process incarnation.
|
|
1166
|
-
*
|
|
1167
|
-
* The counterpart of {@link ProvisioningAbsenceDecision} for the one lifetime
|
|
1168
|
-
* where nothing needs to be observed to conclude: a
|
|
1169
|
-
* `provisioner-process-bound` allocation cannot outlive the process that
|
|
1170
|
-
* created it, so proof that the exact recorded incarnation is gone is proof
|
|
1171
|
-
* that no allocation survives. Every refusal below is a statement about why the
|
|
1172
|
-
* proof does not apply, and each is reported distinctly because they oblige the
|
|
1173
|
-
* caller to do different things.
|
|
1174
|
-
*
|
|
1175
|
-
* - `recorded`: the proof was stored, the attempt settled as `abandoned`, and
|
|
1176
|
-
* the operation closed — all in one transaction.
|
|
1177
|
-
* - `not-process-bound`: the attempt's recorded lifetime is not
|
|
1178
|
-
* `provisioner-process-bound`, so losing a process says nothing about its
|
|
1179
|
-
* allocation. The reported lifetime is the stored one, `null` before
|
|
1180
|
-
* provisioning began.
|
|
1181
|
-
* - `incarnation-mismatch`: the proof names a different provisioner
|
|
1182
|
-
* incarnation, or the attempt has none recorded, so the proof says nothing
|
|
1183
|
-
* about this attempt. The reported identifier is the stored one.
|
|
1184
|
-
* - `allocated`: an allocation is already recorded, so the attempt owes
|
|
1185
|
-
* allocation control rather than pre-allocation closure. Terminate the known
|
|
1186
|
-
* allocation instead of closing the attempt from a proof.
|
|
1187
|
-
* - `resolved`: the attempt has already settled; the operation is closed.
|
|
1188
|
-
* - `stale`: the claim no longer matches durable ownership.
|
|
1189
|
-
* - `not-found`: no provider operation exists for the attempt, or it does not
|
|
1190
|
-
* belong to the named execution.
|
|
1191
|
-
*/
|
|
1192
|
-
type ProvisionerIncarnationLossDecision = {
|
|
1193
|
-
readonly kind: 'recorded';
|
|
1194
|
-
} | {
|
|
1195
|
-
readonly kind: 'not-process-bound';
|
|
1196
|
-
readonly allocationLifetime: WorkerAllocationLifetime | null;
|
|
1197
|
-
} | {
|
|
1198
|
-
readonly kind: 'incarnation-mismatch';
|
|
1199
|
-
readonly provisionerIncarnationId: string | null;
|
|
1200
|
-
} | {
|
|
1201
|
-
readonly kind: 'allocated';
|
|
1202
|
-
readonly allocationRef: ProviderAllocationRef;
|
|
1203
|
-
} | {
|
|
1204
|
-
readonly kind: 'resolved';
|
|
1205
|
-
} | {
|
|
1206
|
-
readonly kind: 'stale';
|
|
1207
|
-
} | {
|
|
1208
|
-
readonly kind: 'not-found';
|
|
1209
|
-
};
|
|
1210
1516
|
/**
|
|
1211
1517
|
* Durable decision for settling an allocated attempt as an infrastructure
|
|
1212
1518
|
* failure.
|
|
@@ -1214,8 +1520,8 @@ type ProvisionerIncarnationLossDecision = {
|
|
|
1214
1520
|
* This terminal CAS competes with outcome submission; the first durable
|
|
1215
1521
|
* transition wins and the loser observes `resolved`.
|
|
1216
1522
|
*
|
|
1217
|
-
* - `recorded`: the failure was persisted
|
|
1218
|
-
* operation
|
|
1523
|
+
* - `recorded`: the failure was persisted and the attempt settled. The
|
|
1524
|
+
* provider operation remains open until positive completion is recorded.
|
|
1219
1525
|
* - `resolved`: the attempt already has a terminal settlement.
|
|
1220
1526
|
* - `not-allocated`: the attempt owns no allocation, so it cannot have
|
|
1221
1527
|
* suffered an infrastructure failure. Prove absence instead.
|
|
@@ -1256,7 +1562,8 @@ type InfrastructureFailureDecision = {
|
|
|
1256
1562
|
* - `not-allocated`: the claim is current, but no allocation is known for the
|
|
1257
1563
|
* attempt. Prove absence instead of claiming termination.
|
|
1258
1564
|
* - `stale`: the claim no longer matches durable ownership.
|
|
1259
|
-
* - `resolved`:
|
|
1565
|
+
* - `resolved`: positive provider completion evidence and attempt settlement
|
|
1566
|
+
* were already recorded.
|
|
1260
1567
|
* - `not-found`: no provider operation exists for the attempt.
|
|
1261
1568
|
*/
|
|
1262
1569
|
type AllocationTerminationDecision = ProviderOperationMutationDecision | {
|
|
@@ -1269,7 +1576,8 @@ type AllocationTerminationDecision = ProviderOperationMutationDecision | {
|
|
|
1269
1576
|
* - `stale`: the caller's view is out of date — either `currentRef` does not
|
|
1270
1577
|
* match the stored reference, or the claim no longer matches durable
|
|
1271
1578
|
* ownership. `storedRef` carries the current reference when one exists.
|
|
1272
|
-
* - `resolved`:
|
|
1579
|
+
* - `resolved`: positive provider completion evidence and attempt settlement
|
|
1580
|
+
* were already recorded.
|
|
1273
1581
|
* - `not-allocated`: the attempt has no allocation to evolve.
|
|
1274
1582
|
* - `not-found`: no provider operation exists for the attempt.
|
|
1275
1583
|
*/
|
|
@@ -1554,10 +1862,11 @@ type RuntimeReadinessDecision = {
|
|
|
1554
1862
|
* ```text
|
|
1555
1863
|
* begin => provisioning-resolution
|
|
1556
1864
|
* record allocation/discovery => allocation-control
|
|
1557
|
-
* record confirmed absence =>
|
|
1558
|
-
* prove provisioner loss =>
|
|
1865
|
+
* record confirmed absence => provider completion + settle(abandoned) if unsettled
|
|
1866
|
+
* prove provisioner loss => provider completion + settle(abandoned) if unsettled
|
|
1559
1867
|
* record termination => terminal-convergence
|
|
1560
|
-
* infrastructure failure CAS => settled(infrastructure-failure)
|
|
1868
|
+
* infrastructure failure CAS => settled(infrastructure-failure)
|
|
1869
|
+
* complete provider operation => durable positive evidence; resolves with settlement
|
|
1561
1870
|
* uncertainty => retain current obligation
|
|
1562
1871
|
* ```
|
|
1563
1872
|
*
|
|
@@ -1611,7 +1920,7 @@ type RuntimeReadinessDecision = {
|
|
|
1611
1920
|
*
|
|
1612
1921
|
* An operation stays remediable after its attempt stops being the active
|
|
1613
1922
|
* attempt for its execution. Claim-fenced discovery, absence, cleanup, and
|
|
1614
|
-
* terminal convergence may update such an attempt and
|
|
1923
|
+
* terminal convergence may update such an attempt and complete its operation,
|
|
1615
1924
|
* but must never change which attempt is active, reactivate it, or make it
|
|
1616
1925
|
* bootstrap-claimable.
|
|
1617
1926
|
*
|
|
@@ -1787,10 +2096,10 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
1787
2096
|
/**
|
|
1788
2097
|
* Take ownership of an unowned or lease-expired provider operation.
|
|
1789
2098
|
*
|
|
1790
|
-
* Succeeds only when the operation is unowned or its lease has
|
|
1791
|
-
* `observedAt`. On success the generation increments and a fresh
|
|
1792
|
-
* issued, which fences every previously issued claim immediately.
|
|
1793
|
-
* obligation and accumulated evidence are preserved.
|
|
2099
|
+
* Succeeds only when the unresolved operation is unowned or its lease has
|
|
2100
|
+
* expired at `observedAt`. On success the generation increments and a fresh
|
|
2101
|
+
* token is issued, which fences every previously issued claim immediately.
|
|
2102
|
+
* The obligation and accumulated evidence are preserved.
|
|
1794
2103
|
* @param input - Attempt identity, requesting owner, observation time, and lease deadline.
|
|
1795
2104
|
* @returns The durable claim decision.
|
|
1796
2105
|
*/
|
|
@@ -1817,6 +2126,19 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
1817
2126
|
* @returns The durable mutation decision.
|
|
1818
2127
|
*/
|
|
1819
2128
|
recordProviderOperationUncertainty(input: RecordProviderOperationUncertaintyInput): Promise<ProviderOperationMutationDecision>;
|
|
2129
|
+
/**
|
|
2130
|
+
* Record positive completion evidence of a provider operation.
|
|
2131
|
+
*
|
|
2132
|
+
* The repository validates the current claim before it records the first
|
|
2133
|
+
* immutable evidence. A current claim may persist that evidence before
|
|
2134
|
+
* settlement; it does not discard a pending `terminal-convergence` duty or
|
|
2135
|
+
* create a canonical attempt answer. The operation becomes resolved only
|
|
2136
|
+
* when durable settlement and completion evidence are both present; until
|
|
2137
|
+
* then its claim remains live and it stays eligible for recovery.
|
|
2138
|
+
* @param input - Current provider-operation claim and bounded completion proof.
|
|
2139
|
+
* @returns The durable completion or a fenced/idempotent refusal.
|
|
2140
|
+
*/
|
|
2141
|
+
completeProviderOperation(input: CompleteProviderOperationInput): Promise<ProviderOperationCompletionDecision>;
|
|
1820
2142
|
/**
|
|
1821
2143
|
* Record the provider allocation reference for a claimed operation.
|
|
1822
2144
|
*
|
|
@@ -1839,10 +2161,14 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
1839
2161
|
/**
|
|
1840
2162
|
* Record positively proven absence of any allocation for the attempt.
|
|
1841
2163
|
*
|
|
1842
|
-
* The atomic
|
|
1843
|
-
* absence evidence
|
|
1844
|
-
*
|
|
1845
|
-
*
|
|
2164
|
+
* The atomic positive-proof transition for the pre-allocation case: it stores
|
|
2165
|
+
* bounded absence evidence and completes the operation in one transaction.
|
|
2166
|
+
* It settles an unsettled attempt as `abandoned`, but never replaces an
|
|
2167
|
+
* existing canonical settlement. Its decision distinguishes a newly written
|
|
2168
|
+
* abandonment (`recorded`) from preserving an existing settlement
|
|
2169
|
+
* (`completed`), so an Authority can preserve an outcome waiter that still
|
|
2170
|
+
* needs owner convergence. It never produces `terminal-convergence` — that
|
|
2171
|
+
* obligation is reserved for a known allocation whose termination was
|
|
1846
2172
|
* already confirmed.
|
|
1847
2173
|
* @param input - Claim, owning execution, and bounded absence evidence.
|
|
1848
2174
|
* @returns The durable absence decision.
|
|
@@ -1851,9 +2177,9 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
1851
2177
|
/**
|
|
1852
2178
|
* Close pre-allocation debt on proof that a provisioner incarnation is gone.
|
|
1853
2179
|
*
|
|
1854
|
-
* The atomic
|
|
1855
|
-
* outlived its provisioner. It exists because such an attempt has
|
|
1856
|
-
* reachable
|
|
2180
|
+
* The atomic positive-proof transition for an attempt whose allocation could
|
|
2181
|
+
* not have outlived its provisioner. It exists because such an attempt has
|
|
2182
|
+
* no other reachable provider conclusion: its provider need not advertise recovery, so
|
|
1857
2183
|
* there may be nothing to discover, inspect, or terminate, and
|
|
1858
2184
|
* {@link abandonPendingAttempt} refuses an attempt that already began
|
|
1859
2185
|
* provisioning.
|
|
@@ -1866,9 +2192,11 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
1866
2192
|
* statement about the attempt rather than about the caller's view of it. An
|
|
1867
2193
|
* expired lease can never satisfy either check.
|
|
1868
2194
|
*
|
|
1869
|
-
* On success it stores the proof's bounded evidence
|
|
1870
|
-
*
|
|
1871
|
-
*
|
|
2195
|
+
* On success it stores the proof's bounded evidence and completes the
|
|
2196
|
+
* operation in one transaction. If the attempt is still unsettled it also
|
|
2197
|
+
* settles it as `abandoned`; otherwise it preserves the existing canonical
|
|
2198
|
+
* settlement and returns `completed`, not `recorded`. `abandoned` is the
|
|
2199
|
+
* honest new kind: no allocation was ever recorded for the attempt, so it
|
|
1872
2200
|
* cannot have suffered an infrastructure failure in the sense
|
|
1873
2201
|
* {@link recordInfrastructureFailure} defines.
|
|
1874
2202
|
* @param input - Claim, owning execution, and the provisioner loss proof.
|
|
@@ -2052,7 +2380,8 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
2052
2380
|
*
|
|
2053
2381
|
* Deliberately claim-independent: a worker's canonical answer never depends
|
|
2054
2382
|
* on who currently owns the attempt's provider operation. A successful
|
|
2055
|
-
* commit settles the attempt
|
|
2383
|
+
* commit settles the attempt but leaves provider responsibilities open until
|
|
2384
|
+
* positive completion evidence is recorded separately.
|
|
2056
2385
|
*
|
|
2057
2386
|
* The repository makes the durable decision in exactly this precedence
|
|
2058
2387
|
* order. An implementation that reorders it is non-conforming, because each
|
|
@@ -2079,8 +2408,9 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
2079
2408
|
* {@link RuntimeOutcomeFenceMismatchError} without changing the attempt.
|
|
2080
2409
|
* Checking this in the same write prevents owner decoding/validation awaits
|
|
2081
2410
|
* from committing a startup failure against a replacement runtime.
|
|
2082
|
-
* 5. `accepted` — the outcome becomes canonical
|
|
2083
|
-
* `outcome
|
|
2411
|
+
* 5. `accepted` — the outcome becomes canonical and the attempt settles as
|
|
2412
|
+
* `outcome`. Its provider operation remains open until positive completion
|
|
2413
|
+
* evidence is recorded separately.
|
|
2084
2414
|
*
|
|
2085
2415
|
* The submission arrives already rendered, as the {@link DurableOutcome} the
|
|
2086
2416
|
* caller obtained from {@link canonicalizeOutcome}. An implementation
|
|
@@ -2123,12 +2453,12 @@ interface ExecutionAttemptRepository<TOutcome> extends OwnerRequestRecoveryRepos
|
|
|
2123
2453
|
/**
|
|
2124
2454
|
* Coherent recovery capability of the execution attempt port.
|
|
2125
2455
|
*
|
|
2126
|
-
* Recovery is one indivisible capability: a repository implements all
|
|
2127
|
-
* operations or none. Partial implementation is a type error because all
|
|
2456
|
+
* Recovery is one indivisible capability: a repository implements all five
|
|
2457
|
+
* operations or none. Partial implementation is a type error because all five
|
|
2128
2458
|
* are required members of this interface, exactly as they are on the provider
|
|
2129
2459
|
* side of the same capability.
|
|
2130
2460
|
*
|
|
2131
|
-
* The
|
|
2461
|
+
* The five exist together because a recovery pass needs all of them: it reads
|
|
2132
2462
|
* a superseded attempt, records what discovery found for it, refines the
|
|
2133
2463
|
* reference as correlation narrows it, and lists what is still outstanding. A
|
|
2134
2464
|
* repository that answered three of them would strand the pass at whichever
|
|
@@ -2203,6 +2533,20 @@ interface ExecutionAttemptRecoveryOperations {
|
|
|
2203
2533
|
* @returns Allocated, non-settled attempts eligible for recovery, oldest first.
|
|
2204
2534
|
*/
|
|
2205
2535
|
getRecoverableAttempts(executionId: ExecutionOwnerId): Promise<readonly RecoverableAttemptRecord[]>;
|
|
2536
|
+
/**
|
|
2537
|
+
* List open provider operations eligible for takeover, including ones whose
|
|
2538
|
+
* attempts already settled.
|
|
2539
|
+
*
|
|
2540
|
+
* The query excludes only operations with both positive completion evidence
|
|
2541
|
+
* and a settled attempt, plus those held by a lease that has not expired at
|
|
2542
|
+
* the caller-supplied observation time. That filter happens before the
|
|
2543
|
+
* bound, so active leases cannot hide eligible work behind a first page.
|
|
2544
|
+
* Results are oldest first by the joined attempt's `createdAt` instant, ties
|
|
2545
|
+
* broken by `executionAttemptId`.
|
|
2546
|
+
* @param input - Explicit observation time and positive bounded result limit.
|
|
2547
|
+
* @returns Joined open operations eligible for provider takeover, oldest first.
|
|
2548
|
+
*/
|
|
2549
|
+
listOpenProviderOperations(input: ListOpenProviderOperationsInput): Promise<readonly OpenProviderOperationRecord[]>;
|
|
2206
2550
|
}
|
|
2207
2551
|
//#endregion
|
|
2208
|
-
export {
|
|
2552
|
+
export { sameAllocationRef as $, OperationAdmissionDecision as A, AttemptSettlementRead as At, RecordInfrastructureFailureInput as B, snapshotReadAttemptSettlementInput as Bt, ExecutionAttemptRepository as C, ProviderOperationOwnershipRecord as Ct, GetInstructionInput as D, RenewProviderOperationClaimInput as Dt, ExecutionOwnerId as E, RecordProviderOperationUncertaintyInput as Et, PreparationReceipt as F, ReadAttemptSettlementInput as Ft, ReportOperationInput as G, RecordProvisioningAbsentInput as H, ProvisioningClaimDecision as I, readAttemptSettlementSnapshot as It, RuntimeReadinessDecision as J, RuntimeOutcomeFence as K, ReadBootstrapStartStateInput as L, replayEnsuredAttempt as Lt, OperationReportDecision as M, EnsureExecutionAttemptDecision as Mt, OutcomeCodec as N, EnsureExecutionAttemptInput as Nt, InfrastructureFailureDecision as O, TakeOverProviderOperationInput as Ot, PendingAttemptAbandonmentDecision as P, EnsureExecutionAttemptPersistenceInput as Pt, durableOutcome as Q, RecordAllocationInput as R, snapshotEnsureExecutionAttemptInput as Rt, ExecutionAttemptRecoveryOperations as S, ProviderOperationObligation as St, ExecutionAttemptStatus as T, ProvisioningAbsenceDecision as Tt, RecoverableAttemptRecord as U, RecordProvisionerIncarnationLostInput as V, RegisterRuntimeInput as W, assertRuntimeOutcomeFence as X, RuntimeRegistrationDecision as Y, decodeDurableOutcome as Z, EXECUTION_ATTEMPT_STATUSES as _, ProcessBoundProvisionerLossProof as _t, AllocationRefEvolutionDecision as a, evaluateOperationCompletion as at, ExecutionAttemptOutcomeDecision as b, ProviderOperationCompletionDecision as bt, AttemptExecutionState as c, evaluateRuntimeReadiness as ct, BootstrapStartState as d, HandoffProviderOperationInput as dt, sameDurableOutcome as et, CompleteOperationInput as f, InitialProviderOperationClaimContext as ft, EXECUTION_ATTEMPT_SETTLEMENT_KINDS as g, PROVIDER_OPERATION_OBLIGATIONS as gt, DurableOutcome as h, OpenProviderOperationRecord as ht, AllocationRefEvolution as i, evaluateOperationAdmission as it, OperationCompletionDecision as j, AttemptSettlementSnapshot as jt, MarkRuntimeReadyInput as k, isProviderOperationResolved as kt, AttemptOperationStartGate as l, evaluateRuntimeRegistration as lt, DuplicateExecutionAttemptError as m, ListOpenProviderOperationsInput as mt, AdmitOperationInput as n, AttemptReachabilityDecision as nt, AllocationTerminationDecision as o, evaluatePreparationReport as ot, DiscoveredAllocationDecision as p, InitialProviderOperationClaimContextSource as pt, RuntimeOutcomeFenceMismatchError as q, AllocationRecordingDecision as r, evaluateAttemptReachability as rt, AttemptControlState as s, evaluateProvisionerIncarnationLoss as st, ATTEMPT_OPERATION_START_GATES as t, AttemptReachability as tt, BeginProvisioningInput as u, CompleteProviderOperationInput as ut, ExecutionAttemptCreate as v, ProviderOperationClaim as vt, ExecutionAttemptSettlementKind as w, ProvisionerIncarnationLossDecision as wt, ExecutionAttemptRecord as x, ProviderOperationMutationDecision as xt, ExecutionAttemptOutcomeCommit as y, ProviderOperationClaimDecision as yt, RecordAllocationTerminatedInput as z, snapshotEnsureExecutionAttemptPersistenceInput as zt };
|