@makaio/framework 1.0.0-dev-1788897280508 → 1.0.0-dev-1788914730846
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-DtmJR46g.mjs +1 -0
- package/dist/{attempt-record-codec-CqKq0NIB.mjs → attempt-record-codec-6jpayBMY.mjs} +1 -1
- package/dist/authority-state-bootstrap-DnwkMieA.mjs +1 -0
- 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-B9wr0b972.mjs +1 -0
- 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 +3 -3
- 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 +104 -104
- 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-dE889kHj.d.mts} +553 -155
- package/dist/{extension-C4lFc8-j.mjs → extension-C1CwxkCN.mjs} +1 -1
- package/dist/{filesystem-service-DGqU-6x-.mjs → filesystem-service-yB8KhUGz.mjs} +1 -1
- package/dist/framework-packages-B3SQPHD7.mjs +1 -0
- 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-LwOw7ZLk2.d.mts → index-Aomg_qFA2.d.mts} +164 -32
- package/dist/{index-RpG4EP3u.d.mts → index-B6aoVzdA.d.mts} +1 -1
- package/dist/{index-BVRQOZbm.d.mts → index-BHZlMm_I.d.mts} +1 -1
- package/dist/{index-BkY6zO7p.d.mts → index-BQv9mUzn.d.mts} +2 -1
- package/dist/{index-oucWFlFP2.d.mts → index-B_rFtKIO2.d.mts} +12 -12
- package/dist/{index-D0DfEO45.d.mts → index-BfXf_CcM.d.mts} +14 -16
- 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-PTp68NH1.d.mts → index-C50sVXO7.d.mts} +780 -66
- package/dist/{index-CYwbfa0_.d.mts → index-CKvOECeR.d.mts} +2 -2
- package/dist/{index-DJ0Muy2s.d.mts → index-CRQ2U0jE.d.mts} +9 -9
- package/dist/{index-BZlmWCcW.d.mts → index-CmAJx-cX.d.mts} +3 -3
- package/dist/{index-F6hV4tWI.d.mts → index-CtlurrJF.d.mts} +98 -44
- package/dist/{index-Cau0jTTM.d.mts → index-D3-21gUP.d.mts} +1 -1
- package/dist/{index-CQtttPGm.d.mts → index-D7j6v0-L.d.mts} +1 -1
- package/dist/{index-mylsCg6V2.d.mts → index-DI-1HK7v2.d.mts} +1 -1
- package/dist/{index-BdbYIlDL.d.mts → index-DRryNq7D.d.mts} +13 -13
- package/dist/{index-R2BZejEz.d.mts → index-DfYMmJDZ.d.mts} +1963 -408
- package/dist/{index-CoGo6HFE.d.mts → index-DzeUtJtE.d.mts} +8 -8
- package/dist/{index-CYmQt2lF.d.mts → index-KZ4YllPp.d.mts} +81 -81
- package/dist/{index-C_OLvAr_.d.mts → index-ZEQDAT9K.d.mts} +1 -1
- package/dist/{index-dL0Oet1j.d.mts → index-fzrPfhS0.d.mts} +1 -1
- package/dist/{index-CDLHgV7v.d.mts → index-jXU4dntl.d.mts} +16 -16
- package/dist/{index-BcTwLu9C2.d.mts → index-ksNVQHeY2.d.mts} +8 -8
- 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-DggkrLkv.mjs +1 -0
- package/dist/{lib-hwdGyO-m.mjs → lib-0MqNtDuH.mjs} +5 -5
- package/dist/{lib-B8Yv4IY-.mjs → lib-dlyJT26K.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-CDemi12q.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +4 -4
- package/dist/{namespace-D1qK-Ed3.d.mts → namespace-CePc0U4N.d.mts} +2 -2
- package/dist/{namespace-C7wggVcn.d.mts → namespace-Ciyw6FxO.d.mts} +18 -18
- package/dist/{namespace-BY5-nA4j.d.mts → namespace-CizM5GXh.d.mts} +6 -6
- package/dist/{namespace-WeSQXdAL.d.mts → namespace-D9ToNQPp.d.mts} +25 -25
- package/dist/{namespace-CPC1vbOu.d.mts → namespace-DF9m7PLi.d.mts} +5 -5
- 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-C9XYuN9J.d.mts → package-BR0pO5BI.d.mts} +101 -17
- package/dist/package-DKfzsJVl.mjs +7 -0
- 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/{schema-wArHaxA9.d.mts → schema-7GukLoee.d.mts} +1 -1
- package/dist/{schemas-C5FreSE0.d.mts → schemas-6FlRULSc.d.mts} +211 -79
- package/dist/schemas-BahXrOYa.mjs +1 -0
- package/dist/{schemas-gfrOgGau.d.mts → schemas-CKGHlsMd.d.mts} +1 -1
- package/dist/{schemas-DmE-a0kN.d.mts → schemas-CkOVC3ip.d.mts} +4 -4
- package/dist/{schemas-BjNlwTDl.d.mts → schemas-DQ5iRisA.d.mts} +2 -2
- package/dist/{schemas-BSBb1KFq.d.mts → schemas-Df52igU4.d.mts} +8 -8
- 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 +4 -4
- 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.d.mts +2 -2
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.d.mts +2 -2
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +55 -55
- 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/extension-configs/namespace.d.mts +3 -3
- 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/{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-2INrWlnS.mjs} +1 -1
- package/dist/{transition-CwMPKBjz.d.mts → transition-C1rMI1ue.d.mts} +2 -2
- package/dist/{types-BOF825V52.d.mts → types-CR415CdC2.d.mts} +1 -1
- package/dist/{types-Dg_acP9p.d.mts → types-DIHb_m2K.d.mts} +29 -29
- 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-Dt9UEsPc.d.mts} +1 -1
- package/dist/{worker-9X0QNB1k.mjs → worker-Bn0x5MSH.mjs} +1 -1
- package/dist/worker-qgJToDTN.mjs +1 -0
- package/dist/workflow-B6C3Pf66.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 +21 -20
- 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 +3 -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 +86 -48
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-transitions-B7HtjuAn.mjs → workflow-transitions-BbhM_zPm.mjs} +1 -1
- package/dist/workflow-worker-BSJ6F4P0.mjs +2 -0
- package/package.json +1 -1
- package/dist/artifact-OnwP6uaD.mjs +0 -1
- package/dist/authority-state-bootstrap-rnsTk0u7.mjs +0 -1
- package/dist/code-execution-C2PgBdmE.mjs +0 -1
- package/dist/framework-packages-CZJDukan.mjs +0 -1
- package/dist/kind-registration-BNhVCSaT.mjs +0 -1
- package/dist/package-D7c2HC-S.mjs +0 -7
- package/dist/packages-BhhBcPgz.mjs +0 -1
- package/dist/provider-operation-BwrIrOeY.d.mts +0 -207
- package/dist/schemas-hzbKeyyt.mjs +0 -1
- package/dist/worker-BwUhRg7i.mjs +0 -1
- package/dist/workflow-B3MWrYhG.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-Cb3NfGSV2.d.mts → index-B04VAxlm2.d.mts} +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-gK54T8Am.d.mts → index-C_R6ifn9.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-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-l5HeyxKn.d.mts → index-l9WK9El6.d.mts} +0 -0
- /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-By3nEmBH.d.mts → namespace-B_Gw6BMX.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-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/{schemas-BsZJHdvY.d.mts → schemas-0VbIjfrW.d.mts} +0 -0
- /package/dist/{schemas-DDCAGKRi.mjs → schemas-BFgsIiSb.mjs} +0 -0
- /package/dist/{schemas-B2Q284-G.d.mts → schemas-Cg2gAars.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-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/{session-lineage-CRLvurB-.d.mts → session-lineage-BtvnGkoC.d.mts} +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 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,f as r}from"./kind-registration-BNhVCSaT.mjs";import{a as i,b as a,f as o,i as s,l as c,n as l,r as u,s as d,u as f}from"./schemas-hzbKeyyt.mjs";import{t as p}from"./zod-json-schema-B9TYYq3e.mjs";import{z as m}from"zod";import{createBusNamespace as h}from"@makaio/framework/core";function g(t){let{dataSchema:i,hooks:a,...o}=t,s={$schema:`https://json-schema.org/draft/2020-12/schema`,...p(i)};n(s);let c=e.parse({...o,dataSchema:s});if(c.kind!==t.kind)throw Error(`Artifact kind identifiers must not contain surrounding whitespace`);let l=m.fromJSONSchema(c.dataSchema),u=m.unknown().superRefine((e,t)=>{let n=l.safeParse(e);if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message})}).pipe(i).superRefine((e,t)=>{try{r(e,c.titlePath)}catch(e){t.addIssue({code:`custom`,path:c.titlePath.split(`.`),message:e instanceof Error?e.message:`Artifact title must be a nonblank string`})}});return{...structuredClone(c),kind:t.kind,schemaVersion:t.schemaVersion,dataSchema:u,...a?{hooks:a}:{},toRegistration:()=>structuredClone(c)}}function _(e){return{hooks:[...e.hooks]}}const v=[`inline`,`summary`,`link`,`omit`],y=m.string().min(1),b=m.object({kinds:m.array(m.string().min(1)).optional(),hint:y.optional(),depth:m.number().int().min(1).max(20).optional(),nested:m.lazy(()=>x).optional()}),x=m.record(m.string().min(1),b);function S(e){return JSON.stringify([e.kind,e.id,e.revision])}const C=m.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),w=m.object({target:f,sourceRef:d,relationType:m.string().min(1),hint:y,status:m.enum([`resolved`,`unresolved`]),reason:C.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:m.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:m.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),T=m.object({rootRef:d,refs:m.array(w),resolved:m.array(o)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(S));n.has(S(e.rootRef))||t.addIssue({code:m.ZodIssueCode.custom,path:[`resolved`],message:`resolved artifact context wire payloads must include the root artifact revision`}),e.refs.forEach((e,r)=>{n.has(S(e.sourceRef))||t.addIssue({code:m.ZodIssueCode.custom,path:[`refs`,r,`sourceRef`],message:`artifact context ref sources must have a matching revision in resolved`}),!(e.status!==`resolved`||e.target.refClass!==`artifact`)&&(n.has(S(e.target))||t.addIssue({code:m.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function E(e){let t=T.parse(e),n=new Map(t.resolved.map(e=>[j(e),e])),r=new Map;for(let e of t.refs){let t=j(e.sourceRef),n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let i=n.get(j(t.rootRef));if(!i)throw Error(`Resolved artifact context is missing root artifact '${j(t.rootRef)}'`);let a=D(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return A(a,e),e}}}function D(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:k(e,r,i,new Set([j(e)]))}}function O(e,t,n,r,i,a,o){let s=j(e),c=new Set(o);return c.add(s),{status:`resolved`,ref:e,artifact:t,relation:n,hint:r,children:k(e,i,a,c)}}function k(e,t,n,r){return(t.get(j(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:e.reason};if(e.target.refClass!==`artifact`)throw Error(`Resolved artifact context refs must target an artifact revision`);let i=j(e.target),a=n.get(i);if(!a)throw Error(`Resolved artifact context is missing target artifact '${i}'`);return r.has(i)?{status:`unresolved`,target:e.target,relation:e.relationType,hint:e.hint,reason:`cycle-detected`}:O(e.target,a,e.relationType,e.hint,t,n,r)})}function A(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)A(n,t)}}function j(e){return JSON.stringify([e.kind,e.id,e.revision])}const M={"kind.register":{request:e,response:m.object({registered:m.boolean()})},"kind.list":{request:m.object({kind:m.string().min(1).optional()}),response:m.object({kinds:m.array(e)})},"relation-type.register":{request:a,response:m.object({registered:m.boolean()})},"relation-type.list":{request:m.object({type:m.string().min(1).optional()}),response:m.object({relationTypes:m.array(a)})},create:{request:o.omit({id:!0,revision:!0,timestamp:!0}).extend({id:o.shape.id.optional()}),response:m.object({artifact:o})},revise:{request:m.object({previous:d,statusPath:m.string().regex(/^(?:\/(?:[^~/]|~[01])*)+$/,`Expected a data-relative JSON Pointer`).optional(),revision:o.omit({id:!0,revision:!0,timestamp:!0})}),response:m.object({artifact:o})},resolve:{request:m.object({ref:d}),response:m.object({artifact:o.nullable()})},query:{request:i,response:m.object({artifacts:m.array(o)})},compare:{request:l,response:u},resolveContext:{request:m.object({ref:d,selectors:x.optional(),maxDepth:m.number().int().min(1).max(20).default(5)}),response:m.object({context:T})},created:m.object({artifact:o}),revised:m.object({previous:d,artifact:o}),"relation.added":m.object({artifact:d,relation:c}),"observation.added":m.object({artifact:d,observation:s}),"status.changed":m.object({artifact:d,path:m.string().min(1),previous:m.unknown().optional(),current:m.unknown().optional()}),"kind.changed":m.object({kind:m.string().min(1),schemaVersion:t})},N=h(`artifact`,M),P=N.subjects;export{w as a,v as c,x as d,_ as f,E as i,b as l,M as n,C as o,g as p,P as r,T as s,N as t,y as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./ajv-DWgn_plp.mjs";import{z as n}from"zod";import{execFile as r}from"node:child_process";import{isDeepStrictEqual as i}from"node:util";import{isAbsolute as a,relative as o,resolve as s}from"node:path";import{randomUUID as c}from"node:crypto";import{realpathSync as l}from"node:fs";import{localSubject as u}from"@makaio/framework/core";import{NoHandlerError as d}from"@makaio/framework/bus";import{ArtifactSchemas as f,ArtifactSubjects as p,ExecutionAttemptInstructionSchema as m,ExecutionAttemptOutcomeSchema as h,ExecutionLinkListQuerySchema as g,ExecutionLinkSchema as _,ExecutionListQuerySchema as v,ExecutionStatusSchema as y,ExecutionsByArtifactRefsQuerySchema as b,GateInstanceListQuerySchema as x,JsonPatchOperationSchema as S,JsonValueSchema as C,SessionSubjects as ee,SpanRecordSchema as te,SubagentSubjects as w,WORKFLOW_CANCELLED_REASON as ne,WorkLogFrameEntrySchema as re,WorkerSubjects as ie,WorkflowDefinitionSchema as ae,WorkflowError as oe,WorkflowErrorCode as se,WorkflowExecutionSchema as T,WorkflowFinalizationClaimSchema as ce,WorkflowFinalizerIdSchema as le,WorkflowFrameStateSchema as ue,WorkflowGateInstanceSchema as E,WorkflowListQuerySchema as de,WorkflowRunContextSchema as D,WorkflowRunResultSchema as fe,WorkflowSchemas as pe,WorkflowSubjects as me,WorkflowSubjects as O,createStepCancelSubject as he,createWorkflowDelegateResultFinalizerNamespace as ge,walkWorkflowDefinition as _e}from"@makaio/framework/contracts";import{index as k,primaryKey as ve,uniqueIndex as ye}from"drizzle-orm/sqlite-core";import{index as A,primaryKey as be,uniqueIndex as xe}from"drizzle-orm/pg-core";import{defineDualTable as j}from"@makaio/framework/storage/drizzle";import{sql as Se}from"drizzle-orm";import{createStorageNamespaceDefinition as Ce}from"@makaio/framework/storage";import{evaluateSync as M,resolveTemplate as N}from"@makaio/framework/expression";import*as we from"node:os";const Te=j(`workflow_finalizations`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),finalizerId:e.text(`finalizer_id`).notNull(),transitionKey:e.text(`transition_key`).notNull(),claimToken:e.text(`claim_token`).notNull(),intent:e.jsonCol(`intent`).notNull(),state:e.textEnum(`state`,{enum:[`claimed`,`acknowledged`,`failed`]}).notNull(),claimedAt:e.epochMs(`claimed_at`).notNull(),settledAt:e.epochMs(`settled_at`),failure:e.text(`failure`),publishedAt:e.epochMs(`published_at`)}),{sqlite:e=>[ye(`uniq_workflow_finalizations_transition`).on(e.transitionKey),k(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)],postgres:e=>[xe(`uniq_workflow_finalizations_transition`).on(e.transitionKey),A(`idx_workflow_finalizations_recovery`).on(e.finalizerId,e.state)]}),Ee=Te.sqlite;Te.postgres;function De(e){return{scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``)}}const Oe=j(`workflow_definitions`,e=>({id:e.text(`id`).primaryKey(),name:e.text(`name`).notNull(),description:e.text(`description`),root:e.jsonCol(`root`).notNull(),inputSchema:e.jsonCol(`input_schema`),configSchema:e.jsonCol(`config_schema`),outputSchema:e.jsonCol(`output_schema`),state:e.jsonCol(`state`),artifact:e.jsonCol(`artifact`),triggers:e.jsonCol(`triggers`),...De(e),createdAt:e.epochMs(`created_at`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull(),canvasLayout:e.jsonCol(`canvas_layout`),source:e.jsonCol(`source`),executableSource:e.jsonCol(`executable_source`),requirements:e.jsonCol(`requirements`),successFinalizerId:e.text(`success_finalizer_id`)}),{sqlite:e=>[ye(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),k(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)],postgres:e=>[xe(`uniq_workflow_definitions_name_scope`).on(e.name,e.scopeType,e.scopeKind,e.scopeId),A(`idx_workflow_definitions_scope`).on(e.scopeType,e.scopeKind,e.scopeId)]}),ke=Oe.sqlite,P=j(`workflow_executions`,e=>({id:e.text(`id`).primaryKey(),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),inputs:e.jsonCol(`inputs`),error:e.text(`error`),reason:e.text(`reason`),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),externalSettlementFingerprint:e.text(`external_settlement_fingerprint`),externalRegistrationFrameId:e.text(`external_registration_frame_id`),triggerPayload:e.jsonCol(`trigger_payload`),artifactKind:e.text(`artifact_kind`),artifactId:e.text(`artifact_id`),...De(e)}),{sqlite:e=>[k(`idx_workflow_executions_status`).on(e.status),k(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),k(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),k(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)],postgres:e=>[A(`idx_workflow_executions_status`).on(e.status),A(`idx_workflow_executions_scope_started`).on(e.scopeType,e.scopeKind,e.scopeId,e.startedAt),A(`idx_workflow_executions_workflow_started`).on(e.workflowId,e.startedAt),A(`idx_workflow_executions_artifact`).on(e.artifactKind,e.artifactId,e.startedAt)]}),Ae=P.sqlite,je=j(`workflow_execution_frames`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),parentFrameId:e.text(`parent_frame_id`),status:e.text(`status`).notNull().default(`pending`).$type(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),output:e.jsonCol(`output`),outputPresent:e.bool(`output_present`).notNull().default(!1),error:e.text(`error`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`)}),{sqlite:e=>[k(`idx_workflow_execution_frames_execution`).on(e.executionId),k(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)],postgres:e=>[A(`idx_workflow_execution_frames_execution`).on(e.executionId),A(`idx_workflow_execution_frames_parent`).on(e.parentFrameId)]}),Me=je.sqlite,Ne=j(`workflow_gate_instances`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),schema:e.jsonCol(`schema`).notNull(),prompt:e.text(`prompt`),status:e.text(`status`).notNull().default(`waiting`).$type(),autoAction:e.textEnum(`auto_action`,{enum:[`approve`,`reject`]}).notNull().default(`reject`),timeoutMs:e.int4(`timeout_ms`),resumeData:e.jsonCol(`resume_data`),reason:e.text(`reason`),resumeDataPresent:e.bool(`resume_data_present`).notNull().default(!1),createdAt:e.epochMs(`created_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`)}),{sqlite:e=>[k(`idx_workflow_gate_instances_execution`).on(e.executionId),k(`idx_workflow_gate_instances_frame`).on(e.frameId)],postgres:e=>[A(`idx_workflow_gate_instances_execution`).on(e.executionId),A(`idx_workflow_gate_instances_frame`).on(e.frameId)]}),Pe=Ne.sqlite,Fe=j(`workflow_step_spans`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),stepId:e.text(`step_id`).notNull(),stepType:e.text(`step_type`).notNull(),status:e.text(`status`).$type().notNull(),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),toolCallCount:e.int4(`tool_call_count`),input:e.text(`input`),output:e.text(`output`)}),{sqlite:e=>[ve({columns:[e.executionId,e.frameId]}),k(`idx_workflow_step_spans_status`).on(e.status)],postgres:e=>[be({columns:[e.executionId,e.frameId]}),A(`idx_workflow_step_spans_status`).on(e.status)]}),Ie=Fe.sqlite,Le=j(`workflow_execution_links`,e=>({sourceExecutionId:e.text(`source_execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),targetExecutionId:e.text(`target_execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),linkType:e.text(`link_type`).$type().notNull(),metadata:e.jsonCol(`metadata`)}),{sqlite:e=>[ve({columns:[e.sourceExecutionId,e.targetExecutionId]}),k(`idx_workflow_execution_links_target`).on(e.targetExecutionId)],postgres:e=>[be({columns:[e.sourceExecutionId,e.targetExecutionId]}),A(`idx_workflow_execution_links_target`).on(e.targetExecutionId)]}),Re=Le.sqlite,ze=j(`workflow_run_contexts`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),coordinatorSessionId:e.text(`coordinator_session_id`).notNull(),sourceKind:e.text(`source_kind`).notNull(),sourcePath:e.text(`source_path`),sourceFilename:e.text(`source_filename`),sourceCode:e.text(`source_code`),definitionSnapshot:e.jsonCol(`definition_snapshot`),workerManifest:e.jsonCol(`worker_manifest`).notNull(),inputs:e.jsonCol(`inputs`),config:e.jsonCol(`config`).notNull().default(Se`'{}'`),triggerPayload:e.jsonCol(`trigger_payload`).notNull(),triggerMode:e.textEnum(`trigger_mode`,{enum:[`immediate`,`await-trigger`]}).notNull().default(`immediate`).$type(),artifactRef:e.jsonCol(`artifact_ref`),dispatchMetadata:e.jsonCol(`dispatch_metadata`),scopeType:e.textEnum(`scope_type`,{enum:[`global`,`workspace`,`session`,`external`]}).notNull().default(`global`).$type(),scopeKind:e.text(`scope_kind`).notNull().default(``),scopeId:e.text(`scope_id`).notNull().default(``),cancelSubject:e.text(`cancel_subject`).notNull(),env:e.jsonCol(`env`).notNull(),createdAt:e.epochMs(`created_at`).notNull(),suspensionStrategy:e.text(`suspension_strategy`).$type(),terminalAuthority:e.text(`terminal_authority`).$type(),materializationSpec:e.jsonCol(`materialization_spec`)}),{sqlite:e=>[k(`idx_run_contexts_workflow`).on(e.workflowId)],postgres:e=>[A(`idx_run_contexts_workflow`).on(e.workflowId)]}),Be=ze.sqlite,Ve=j(`worklog_summaries`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),workflowId:e.text(`workflow_id`).notNull(),workflowName:e.text(`workflow_name`),status:e.textEnum(`status`,{enum:[`pending`,`running`,`paused`,`finalizing`,`completed`,`failed`,`cancelled`]}).notNull(),startedAt:e.epochMs(`started_at`).notNull(),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),totalInputTokens:e.int4(`total_input_tokens`),totalOutputTokens:e.int4(`total_output_tokens`),totalEstimatedCost:e.float8(`total_estimated_cost`),error:e.text(`error`),failedNodeId:e.text(`failed_node_id`)}),{sqlite:e=>[k(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),k(`idx_worklog_summaries_status`).on(e.status)],postgres:e=>[A(`idx_worklog_summaries_workflow_started`).on(e.workflowId,e.startedAt),A(`idx_worklog_summaries_status`).on(e.status)]}),He=Ve.sqlite,Ue=j(`worklog_frame_entries`,e=>({frameId:e.text(`frame_id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),nodeType:e.text(`node_type`).notNull().$type(),path:e.jsonCol(`path`).notNull(),status:e.textEnum(`status`,{enum:[`pending`,`running`,`waiting`,`completed`,`failed`,`skipped`,`cancelled`]}).notNull(),attempt:e.int4(`attempt`).notNull().default(0),iteration:e.int4(`iteration`),branchKey:e.text(`branch_key`),startedAt:e.epochMs(`started_at`),completedAt:e.epochMs(`completed_at`),durationMs:e.int4(`duration_ms`),inputTokens:e.int4(`input_tokens`),outputTokens:e.int4(`output_tokens`),estimatedCost:e.float8(`estimated_cost`),error:e.text(`error`)}),{sqlite:e=>[k(`idx_worklog_frame_entries_execution`).on(e.executionId)],postgres:e=>[A(`idx_worklog_frame_entries_execution`).on(e.executionId)]}),We=Ue.sqlite,Ge=j(`worklog_artifact_writes`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),frameId:e.text(`frame_id`).notNull(),nodeId:e.text(`node_id`).notNull(),artifact:e.jsonCol(`artifact`).notNull(),revision:e.text(`revision`),writtenAt:e.epochMs(`written_at`).notNull()}),{sqlite:e=>[k(`idx_worklog_artifact_writes_execution`).on(e.executionId)],postgres:e=>[A(`idx_worklog_artifact_writes_execution`).on(e.executionId)]}),Ke=Ge.sqlite,qe=j(`worklog_gate_events`,e=>({id:e.text(`id`).primaryKey(),executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),nodeId:e.text(`node_id`).notNull(),frameId:e.text(`frame_id`).notNull(),status:e.textEnum(`status`,{enum:[`waiting`,`resumed`,`rejected`,`timed-out`,`cancelled`]}).notNull().$type(),prompt:e.text(`prompt`),openedAt:e.epochMs(`opened_at`).notNull(),resolvedAt:e.epochMs(`resolved_at`),resumeData:e.jsonCol(`resume_data`)}),{sqlite:e=>[k(`idx_worklog_gate_events_execution`).on(e.executionId),k(`idx_worklog_gate_events_status`).on(e.status)],postgres:e=>[A(`idx_worklog_gate_events_execution`).on(e.executionId),A(`idx_worklog_gate_events_status`).on(e.status)]}),Je=qe.sqlite,Ye=j(`workflow_execution_state`,e=>({executionId:e.text(`execution_id`).primaryKey().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull().default(0),value:e.jsonCol(`value`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),Xe=Ye.sqlite,Ze=j(`workflow_execution_state_events`,e=>({executionId:e.text(`execution_id`).notNull().references(()=>P.columnPair(`id`),{onDelete:`cascade`}),sequence:e.int4(`sequence`).notNull(),patch:e.jsonCol(`patch`).notNull(),value:e.jsonCol(`value`).notNull(),createdAt:e.epochMs(`created_at`).notNull()}),{sqlite:e=>[ve({columns:[e.executionId,e.sequence]})],postgres:e=>[be({columns:[e.executionId,e.sequence]})]}),Qe=Ze.sqlite,$e=n.object({executionId:n.string().min(1),status:y.optional(),error:n.string().nullable().optional(),reason:n.string().nullable().optional(),completedAt:n.number().nullable().optional()}),et=n.enum([`completed`,`failed`,`cancelled`]),tt=re.extend({status:n.literal(`running`),startedAt:n.number().int().nonnegative()}),nt=re.extend({status:et,startedAt:n.number().int().nonnegative(),completedAt:n.number().int().nonnegative(),durationMs:n.number().int().nonnegative()}),rt=Ce(`workflow`,{schemas:{get:{request:n.object({id:n.string()}),response:n.object({workflow:ae.nullable()})},set:{request:n.object({workflow:ae}),response:n.object({id:n.string()})},delete:{request:n.object({id:n.string()}),response:n.object({deleted:n.boolean()})},list:{request:de,response:n.object({workflows:n.array(ae)})},getExecution:{request:n.object({executionId:n.string()}),response:n.object({execution:T.nullable()})},setExecution:{request:n.object({execution:T}),response:n.object({id:n.string()})},setExecutionStart:{request:n.object({execution:T,runContext:D,initialState:C.optional(),executionLinks:n.array(_).optional()}),response:n.object({id:n.string(),executionId:n.string()})},setExternalExecutionStart:u({request:n.object({execution:T.extend({status:n.literal(`running`)}),frame:tt.optional()}),response:n.object({executionId:n.string(),frameId:n.string().optional()})}),settleExternalExecution:u({request:n.object({executionId:n.string().min(1),status:et,error:n.string().min(1).optional(),reason:n.string().min(1).optional(),completedAt:n.number().int().nonnegative().optional(),frame:nt.optional()}),response:n.object({success:n.boolean()})}),updateExecution:{request:$e,response:n.object({success:n.boolean()})},pauseRunningExecution:u({request:n.object({executionId:n.string().min(1)}),response:n.object({paused:n.boolean()})}),claimFinalization:u({request:n.object({claim:ce}),response:n.object({claimed:n.boolean()})}),listClaimedFinalizations:u({request:n.object({finalizerId:le}),response:n.object({claims:n.array(ce)})}),listUnpublishedFinalizations:u({request:n.object({finalizerId:le}),response:n.object({claims:n.array(ce)})}),publishFinalization:u({request:n.object({claim:ce}),response:n.object({})}),acknowledgeFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({acknowledged:n.boolean()})}),failFinalization:u({request:n.object({executionId:n.string().min(1),claimToken:n.string().min(1),error:n.string().min(1),settledAt:n.number().int().nonnegative()}),response:n.object({failed:n.boolean()})}),cancelPausedExecution:{request:n.object({executionId:n.string().min(1),completedAt:n.number(),reason:n.string().optional()}),response:n.object({cancelled:n.boolean(),gates:n.array(E.extend({status:n.literal(`cancelled`)}))})},listExecutions:{request:v,response:n.object({executions:n.array(T)})},listExecutionsByArtifactRefs:{request:b,response:n.object({executionsByRef:n.record(n.string(),n.array(T))})},setFrame:{request:n.object({executionId:n.string().min(1),frame:ue}),response:n.object({frameId:n.string()})},getFrame:{request:n.object({frameId:n.string().min(1)}),response:n.object({frame:ue.nullable()})},listFrames:{request:n.object({executionId:n.string().min(1)}),response:n.object({frames:n.array(ue)})},setGateInstance:{request:n.object({gate:E}),response:n.object({id:n.string()})},resolveWaitingGateInstance:{request:n.object({gate:E.extend({status:n.enum([`resumed`,`rejected`])})}),response:n.object({accepted:n.boolean()})},restorePausedGateResumeState:{request:n.object({execution:T.extend({status:n.literal(`paused`)}),gate:E.extend({status:n.literal(`waiting`)})}),response:n.object({executionId:n.string(),gateId:n.string()})},getGateInstance:{request:n.object({executionId:n.string().min(1),nodeId:n.string().min(1),frameId:n.string().min(1).optional()}),response:n.object({gate:E.nullable()})},listGateInstances:{request:x,response:n.object({gates:n.array(E)})},listPausedGateTimeouts:u({request:n.object({}),response:n.object({gates:n.array(E)})}),setSpan:{request:n.object({span:te}),response:n.object({id:n.string()})},listSpans:{request:n.object({executionId:n.string()}),response:n.object({spans:n.array(te)})},setExecutionLink:{request:n.object({link:_}),response:n.object({id:n.string()})},listExecutionLinks:{request:g,response:n.object({links:n.array(_)})},setRunContext:u({request:n.object({runContext:D,initialState:C.optional()}),response:n.object({executionId:n.string()})}),getRunContext:u({request:n.object({executionId:n.string().min(1)}),response:n.object({runContext:D.nullable()})}),initializeState:u({request:n.object({executionId:n.string().min(1),initialValue:C}),response:n.object({})}),getState:u({request:n.object({executionId:n.string().min(1)}),response:n.object({state:n.object({executionId:n.string().min(1),sequence:n.number().int().nonnegative(),value:C}).nullable()})}),patchState:u({request:n.object({executionId:n.string().min(1),expectedSequence:n.number().int().nonnegative(),nextValue:C}),response:n.object({executionId:n.string().min(1),sequence:n.number().int().positive(),patch:n.array(S),value:C})})},extensions:{drizzle:{workflowDefinitions:ke,workflowExecutions:Ae,workflowExecutionFrames:Me,workflowGateInstances:Pe,workflowStepSpans:Ie,workflowExecutionLinks:Re,workflowRunContexts:Be,worklogSummaries:He,worklogFrameEntries:We,worklogArtifactWrites:Ke,worklogGateEvents:Je,workflowExecutionState:Xe,workflowExecutionStateEvents:Qe,workflowFinalizations:Ee}}}),F=rt.subjects;var it=e(t(),1);function at(e){let t=e.transport?.peer;if(t?.authenticated!==!0||t.kind!==`workflow-execution-attempt`)return null;let n=t.id,r=t.claims?.executionId;return typeof n!=`string`||n.length===0||typeof r!=`string`||r.length===0?null:{executionAttemptId:n,executionId:r}}function ot(e,t){return e.origin.local?!0:at(e)?.executionId===t}function st(e,t){let n=[];return ct(n,``,e,t),n}function ct(e,t,n,r){if(Array.isArray(n)&&Array.isArray(r)){ut(e,t,n,r);return}if(dt(n)&&dt(r)){lt(e,t,n,r);return}mt(n,r)||e.push({op:`replace`,path:t,value:r})}function lt(e,t,n,r){let i=Array.from(new Set([...Object.keys(n),...Object.keys(r)])).sort();for(let a of i){let i=ft(n,a),o=ft(r,a),s=`${t}/${pt(a)}`;if(!i&&o){e.push({op:`add`,path:s,value:r[a]});continue}if(i&&!o){e.push({op:`remove`,path:s});continue}ct(e,s,n[a],r[a])}}function ut(e,t,n,r){let i=Math.min(n.length,r.length);for(let a=0;a<i;a++)ct(e,`${t}/${String(a)}`,n[a],r[a]);for(let i=n.length-1;i>=r.length;i--)e.push({op:`remove`,path:`${t}/${String(i)}`});for(let i=n.length;i<r.length;i++)e.push({op:`add`,path:`${t}/${String(i)}`,value:r[i]})}function dt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ft(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function pt(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function mt(e,t){return Object.is(e,t)}const ht={stepTimeoutMs:300*1e3,stepCooldownMs:500,busAuth:{kind:`none`},platformDefaults:{cwd:process.cwd()},cancelTimeoutMs:1e4},gt=new it.default({allErrors:!0,strict:!1}),_t=new Map,vt=new Map;function yt(e){let t=e.$id;return typeof t==`string`?t:void 0}function bt(e,t,n){let r=yt(t);return r===void 0?`workflow:${e}:${n}`:`schema-id:${r}`}function xt(e,t){try{return JSON.stringify(St(t))}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function St(e){if(Array.isArray(e))return e.map(St);if(typeof e!=`object`||!e)return e;let t=e;return Object.fromEntries(Object.keys(t).sort().map(e=>[e,St(t[e])]))}function Ct(e,t,n){let r=vt.get(t);if(r!==void 0&&r!==n)throw Error(`Workflow '${e}' state schema reuses JSON Schema $id '${t}' with different content`);return gt.getSchema(t)}function wt(e){return e==null||e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`<root>`} ${e.message??`is invalid`}`).join(`; `)}function Tt(e,t){let n=xt(e,t),r=bt(e,t,n),i=_t.get(r);if(i!==void 0)return i;let a=yt(t);if(a!==void 0){let t=Ct(e,a,n);if(t!==void 0)return _t.set(r,t),t}try{let e=gt.compile(t);return _t.set(r,e),a!==void 0&&vt.set(a,n),e}catch(t){let n=t instanceof Error?t.message:String(t);throw Error(`Workflow '${e}' state schema is invalid: ${n}`)}}function Et(e,t,n){if(e.state===void 0)return;let r=Tt(e.id,e.state.schema);if(r(t))return;let i=n===`initial`?`initial state`:`next state`;throw Error(`Workflow '${e.id}' ${i} does not match workflow state schema: ${wt(r.errors)}`)}function Dt(e){if(e.state===void 0)return;let t=e.state.initial===void 0?{}:e.state.initial;return Et(e,t,`initial`),t}function I(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Ot(e,t,n){let r=e?N(e,n):t,i=s(t),c=s(a(r)?r:s(t,r)),u,d;try{u=l(i),d=l(c)}catch{return null}let f=o(process.platform===`win32`?u.toLowerCase():u,process.platform===`win32`?d.toLowerCase():d);return f===``||!f.startsWith(`..`)&&!a(f)?d:null}function kt(e){return e instanceof Error&&(`code`in e||`killed`in e)}function At(e){let t=e[0];return t===void 0||t.trim()===``?null:t}function jt(e){let{command:t,cwd:n,env:i,timeoutMs:a,signal:o}=e,s=At(t);if(s===null)return Promise.reject(Error(`Shell step command is empty`));let c=t.slice(1);return new Promise((e,t)=>{let l=null,u=!1,d=r(s,c,{cwd:n,env:{...process.env,...i},timeout:0,maxBuffer:10*1024*1024,shell:!1},(n,r,i)=>{n?t(Object.assign(n,{stdout:r,stderr:i,aborted:u})):e({stdout:r,stderr:i})}),f=()=>{d.exitCode===null&&(d.kill(`SIGTERM`),l=setTimeout(()=>{d.exitCode===null&&d.kill(`SIGKILL`)},5e3))},p=setTimeout(()=>{f()},a);if(d.on(`close`,()=>{clearTimeout(p),l!==null&&clearTimeout(l)}),o){let e=()=>{u=!0,f()};o.aborted?e():(o.addEventListener(`abort`,e,{once:!0}),d.on(`close`,()=>o.removeEventListener(`abort`,e)))}})}async function Mt(e){let{step:t,workspaceRoot:n,expressionContext:r,signal:i}=e,a=Ot(t.cwd,n,r);if(a===null)return{status:`failed`,error:`Shell step cwd '${t.cwd}' is outside workspace root '${n}'`};let o=t.command.map(e=>N(e,r));if(At(o)===null)return{status:`failed`,error:`Shell step command is empty`};let s=Object.fromEntries(Object.entries(t.env??{}).map(([e,t])=>[e,N(t,r)])),c=t.timeoutMs??3e5;try{let{stdout:e}=await jt({command:o,cwd:a,env:s,timeoutMs:c,signal:i});return{status:`completed`,stdout:e}}catch(e){if(!kt(e))return{status:`failed`,error:String(e)};let t=e.aborted===!0,n=!t&&(e.killed===!0||e.signal!=null);return{status:`failed`,error:t?`Command cancelled`:n?`Command timed out after ${c}ms`:e.stderr?.trim()||e.stdout?.trim()||e.message}}}async function Nt(e,t,n){if(!(await e.request(F.updateExecution,{executionId:t.id,status:n.status,error:n.error,reason:n.reason,completedAt:n.completedAt})).success)throw Error(`Workflow execution not found: ${t.id}`)}function Pt(e,t){return e===t||t===`completed`&&e===`finalizing`}async function Ft(e,t,n){let r=e.durableLifecycleTransitions.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.durableLifecycleTransitions.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.durableLifecycleTransitions.get(t)===a&&e.durableLifecycleTransitions.delete(t)}}async function L(e,t,n,r){let i,a,o=!0,s=await Ft(e,t,async()=>{let s=await n(),c=Promise.withResolvers(),l=e.lifecyclePublications.get(t)??Promise.resolve();return o=!e.publishingLifecycleExecutions.has(t),a=l.catch(()=>void 0).then(async()=>{await c.promise,e.publishingLifecycleExecutions.add(t);try{await r(s)}finally{e.publishingLifecycleExecutions.delete(t)}}),e.lifecyclePublications.set(t,a),i=c.resolve,s});if(i?.(),a!==void 0){let n=a;n.then(()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)},()=>{e.lifecyclePublications.get(t)===n&&e.lifecyclePublications.delete(t)}),o&&await n}return s}async function It(e,t,n){if(!(await e.bus.request(t.finalizeSubject,n)).accepted){let r=`Workflow success finalizer "${t.finalizerId}" rejected transition ${n.transitionKey}`,i=Date.now(),{failed:a}=await e.bus.request(F.failFinalization,{executionId:n.executionId,claimToken:n.claimToken,error:r,settledAt:i});return}}async function Lt(e){for(let t of e.successFinalizers?.values()??[]){let{claims:n}=await e.bus.request(F.listClaimedFinalizations,{finalizerId:t.finalizerId});for(let r of n)await It(e,t,r);let{claims:r}=await e.bus.request(F.listUnpublishedFinalizations,{finalizerId:t.finalizerId});for(let t of r)await e.bus.request(F.publishFinalization,{claim:t})}}async function Rt(e,t,n,r){let i=e.resolveSuccessFinalizerId?.(n),a=i===void 0?void 0:e.successFinalizers?.get(i);if(i!==void 0&&a===void 0){await R(e,t,n,`Workflow success finalizer "${i}" is unavailable`);return}if(a!==void 0){let r=Date.now(),i={executionId:n,workflowId:t.workflowId,finalizerId:a.finalizerId,transitionKey:`${n}:terminal`,claimToken:crypto.randomUUID(),intent:{status:`completed`,completedAt:r},claimedAt:r};await L(e,n,async()=>(await e.bus.request(F.getExecution,{executionId:n})).execution?.status!==`running`||!(await e.bus.request(F.claimFinalization,{claim:i})).claimed?!1:(t.status=`finalizing`,e.activeExecutions.delete(n),!0),async t=>{t&&await It(e,a,i)});return}let o=Date.now();await L(e,n,async()=>(await e.bus.request(F.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`completed`,t.completedAt=o,await Nt(e.bus,t,{status:t.status,completedAt:o}),e.activeExecutions.delete(n),!0):!1,async i=>{i&&await e.bus.emit(O.execution.completed,{executionId:n,workflowId:t.workflowId,totalDuration:o-r,completedAt:o})})}async function R(e,t,n,r,i){let a=Date.now();await L(e,n,async()=>(await e.bus.request(F.getExecution,{executionId:n})).execution?.status===`running`?(t.status=`failed`,t.error=r,t.completedAt=a,await Nt(e.bus,t,{status:t.status,error:r,completedAt:a}),e.activeExecutions.delete(n),!0):!1,async o=>{if(o){try{await i?.()}catch(e){console.error(`[WorkflowFinalizer] Failed to run failure pre-emit hook:`,e)}await e.bus.emit(O.execution.failed,{executionId:n,workflowId:t.workflowId,error:r,completedAt:a})}})}function zt(e,t,n){let{activeRunnerSteps:r,bus:i}=e,a=`${t}:`;for(let[e,o]of r){if(!e.startsWith(a))continue;let r=e.slice(a.length);o.controller.abort(),i.emit(he(o.cancelSubject),{executionId:t,stepId:r,reason:n}).catch(t=>{console.error(`[WorkflowFinalizer] Failed to emit cancellation for ${e}:`,t)})}}async function Bt(e,t,n){let r=await e.bus.request(F.getExecution,{executionId:t});if(r.execution==null)return;let i=r.execution.workflowId;if(i===void 0)throw Error(`Paused execution ${t} is missing stored workflowId`);let a=Date.now(),{cancelled:o,gates:s}=await e.bus.request(F.cancelPausedExecution,{executionId:t,completedAt:a,reason:n});if(o)return e.activeExecutions.delete(t),{workflowId:i,completedAt:a,gates:s}}async function Vt(e,t,n){let{execution:r}=await e.bus.request(F.getExecution,{executionId:t});if(r?.status!==`running`)return Bt(e,t,n);r.status=`cancelled`,r.reason=n,r.completedAt=Date.now();let i=e.activeExecutions.get(t);i!==void 0&&Object.assign(i.execution,r);try{for(let[n,r]of e.shellAbortControllers)n.startsWith(`${t}:`)&&(r.abort(),e.shellAbortControllers.delete(n));zt(e,t,n),await Nt(e.bus,r,{status:r.status,reason:n,completedAt:r.completedAt})}finally{e.activeExecutions.delete(t)}return{workflowId:r.workflowId,completedAt:r.completedAt,gates:[]}}async function Ht(e,t,n){return await L(e,t,()=>Vt(e,t,n),async r=>{if(r!==void 0){for(let n of r.gates)await e.bus.emit(O.gate.resolved,{executionId:t,stepId:n.nodeId,stepType:`gate`,frameId:n.frameId,source:`cancelled`}).catch(e=>{console.error(`[WorkflowFinalizer] Failed to emit cancelled gate resolution for ${n.frameId}:`,e)});await e.bus.emit(O.execution.cancelled,{executionId:t,workflowId:r.workflowId,reason:n,completedAt:r.completedAt})}})!==void 0}function Ut(e,t){return t}function Wt(e,t){return{...t}}function Gt(e){return e.reason instanceof Error?e.reason.message:typeof e.reason==`string`&&e.reason.length>0?e.reason:ne}async function Kt(e,t,n){let r=e.activeExecutions.get(t);if(!r||r.execution.status!==`running`)return;let i=e.buildFinalizerDeps(),{execution:a}=await i.bus.request(F.getExecution,{executionId:t});a?.status===`running`&&(r.execution=a,await Ht(i,t,Gt(n))||console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${t}: execution not active`))}async function qt(e,t){if(t.pausedAtGateId===void 0||t.pausedAtFrameId===void 0)throw Error(`Paused runner result for '${t.executionId}' is missing gate identity`);let n=e.buildFinalizerDeps();await L(n,t.executionId,async()=>{let{paused:r}=await n.bus.request(F.pauseRunningExecution,{executionId:t.executionId});if(!r){let{execution:e}=await n.bus.request(F.getExecution,{executionId:t.executionId});if(e?.status!==`paused`)return!1}let i=e.activeExecutions.get(t.executionId);return i!==void 0&&(i.execution.status=`paused`),e.activeExecutions.delete(t.executionId),r},async e=>{e&&await n.bus.emit(O.execution.paused,{executionId:t.executionId,workflowId:t.workflowId,pausedAtGateId:t.pausedAtGateId,pausedAtFrameId:t.pausedAtFrameId})})}async function Jt(e,t){let n=e.activeExecutions.get(t.executionId);if(!n||n.execution.status!==`running`)return;let r=e.buildFinalizerDeps(),{execution:i}=await r.bus.request(F.getExecution,{executionId:t.executionId});if(i?.status===`running`){if(n.execution=i,t.status===`completed`){await Rt(r,n.execution,t.executionId,n.execution.startedAt);return}if(t.status===`cancelled`){await Ht(r,t.executionId,t.reason??ne);return}if(t.status===`failed`){await R(r,n.execution,t.executionId,t.error);return}}}async function Yt(e,t){let{result:n}=t;if(t.state===`authority-committed`){let{execution:t}=await e.buildFinalizerDeps().bus.request(F.getExecution,{executionId:n.executionId}),r=t?.status===`cancelled`&&n.status===`failed`&&e.workflowAbortControllers.get(n.executionId)?.signal.aborted===!0;if(!t||t.workflowId!==n.workflowId||!Pt(t.status,n.status)&&!r)throw Error(`Authority-committed runner result was not durably converged for '${n.executionId}'`);e.activeExecutions.delete(n.executionId);return}if(n.status===`paused`){await qt(e,n);return}await Jt(e,n)}function Xt(e,t){return{source:{kind:`path`,path:t.filePath},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,triggerMode:t.triggerMode,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:e.config.busUrl,busAuth:e.config.busAuth,env:e.config.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:`wait-in-process`,materializationSpec:t.materializationSpec}}function Zt(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Xt(e,t);return Promise.resolve().then(()=>r.run(c,s.signal)).then(async t=>{await Yt(e,t)}).catch(async t=>{if(s.signal.aborted){await Kt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await R(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist file runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function Qt(e,t){let{config:n}=e,r=t.definitionSnapshot??(t.source.kind===`definition`?t.workflow:void 0);return{source:t.source,...r===void 0?{}:{definition:r},executionId:t.executionId,workflowId:t.workflowId,triggerPayload:t.sanitizedTriggerPayload,inputs:t.boundInputs,config:t.boundConfig,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef},scope:t.scope,busUrl:n.busUrl,busAuth:n.busAuth,env:n.platformDefaults.env??{},coordinatorSessionId:t.coordinatorSessionId,cancelSubject:`workflow.${t.executionId}.cancel`,suspensionStrategy:t.suspensionStrategy??`wait-in-process`,...t.terminalAuthority!==void 0&&{terminalAuthority:t.terminalAuthority},...t.materializationSpec===void 0?{}:{materializationSpec:t.materializationSpec}}}function $t(e,t){let{executionId:n}=t,{workflowRunner:r,workflowAbortControllers:i,executionTasks:a,activeExecutions:o}=e,s=new AbortController;i.set(n,s);let c=Qt(e,t),l=t.dispatchMetadata===void 0?void 0:{dispatchMetadata:t.dispatchMetadata};return Promise.resolve().then(()=>r.run(c,s.signal,void 0,l)).then(async t=>{await Yt(e,t)}).catch(async t=>{if(s.signal.aborted){await Kt(e,n,s.signal).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner cancellation for ${n}:`,e)});return}let r=o.get(n);if(r){let i=t instanceof Error?t.message:String(t);await R(e.buildFinalizerDeps(),r.execution,n,i).catch(e=>{console.error(`[WorkflowExecutor] Failed to persist runner boot failure for ${n}:`,e)})}}).finally(()=>{i.delete(n),a.delete(n),o.delete(n)})}function en(e,t,n={}){let r=tn(e,n);return{executionId:e.executionId,workflowId:e.workflowId,workflow:t,...e.definitionSnapshot===void 0?{}:{definitionSnapshot:e.definitionSnapshot},source:e.source,coordinatorSessionId:e.coordinatorSessionId,sanitizedTriggerPayload:e.triggerPayload,boundInputs:e.inputs,boundConfig:e.config??{},...e.artifactRef===void 0?{}:{artifactRef:e.artifactRef},scope:e.scope,...e.materializationSpec===void 0?{}:{materializationSpec:e.materializationSpec},suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??`worker`,...r===void 0?{}:{dispatchMetadata:r}}}function tn(e,t){return t.resume===!0?{...e.dispatchMetadata,resume:!0}:e.dispatchMetadata}const nn=/(?:^|[_-])(authorization|token|cookie|password|set[_-]?cookie|api[_-]?key|secret|credential|private[_-]?key|api[_-]?secret)(?:$|[_-])/i;function rn(e){if(!e)return;let t={remainingBytes:65536},n={},r=Object.entries(e).slice(0,100);for(let[e,i]of r){if(t.remainingBytes<=0)break;let r=an(e,i,0,t);r!==void 0&&(n[e]=r)}return Object.keys(n).length>0?n:void 0}function an(e,t,n,r){if(!(r.remainingBytes<=0||n>6)&&(r.remainingBytes-=e.length,!(r.remainingBytes<=0))){if(nn.test(e))return r.remainingBytes-=10,`[REDACTED]`;if(t===null)return r.remainingBytes-=4,null;if(typeof t==`string`){let e=t.slice(0,2e3);return r.remainingBytes-=e.length,e}if(typeof t==`number`||typeof t==`boolean`)return r.remainingBytes-=String(t).length,t;if(Array.isArray(t)){let i=[];for(let a of t.slice(0,100)){if(r.remainingBytes<=0)break;let t=an(e,a,n+1,r);t!==void 0&&i.push(t)}return i}if(typeof t==`object`){let e={},i=Object.entries(t).slice(0,100);for(let[t,a]of i){if(r.remainingBytes<=0)break;let i=an(t,a,n+1,r);i!==void 0&&(e[t]=i)}return e}}}async function on(e){let{authority:t,executionId:n,instruction:r,dispatch:i}=e,a=await t.createAttempt(n,r),o=t.waitForOutcome(a.executionAttemptId);if(o===void 0)throw Error(`No outcome waiter for attempt '${a.executionAttemptId}': waiter was not installed during attempt creation`);o.catch(()=>void 0);try{await i(a.executionAttemptId)}catch(e){return sn({authority:t,executionId:n,executionAttemptId:a.executionAttemptId,outcomePromise:o,dispatchError:e})}return o}async function sn(e){let{authority:t,executionId:n,executionAttemptId:r,outcomePromise:i,dispatchError:a}=e,o;try{o=await t.abandonPendingAttempt(r,n)}catch(e){throw t.discardWaiter(r),AggregateError([a,e],`Dispatch acknowledgement failed and pending attempt '${r}' could not be abandoned`,{cause:a})}switch(o.kind){case`abandoned`:case`already-abandoned`:throw t.discardWaiter(r),a;case`allocated`:case`provisioning`:case`already-settled`:return i;case`fenced`:t.settleOutcome(r,{kind:`fenced`});try{return await i}catch(e){throw AggregateError([a,e],`Dispatch acknowledgement failed after attempt '${r}' was fenced`,{cause:a})}}}const cn=`workflow`,ln=`1`,z=D.shape,un=n.object({executionId:z.executionId,workflowId:z.workflowId,source:z.source,definitionSnapshot:z.definitionSnapshot,inputs:z.inputs,config:z.config,scope:z.scope,triggerPayload:z.triggerPayload,triggerMode:z.triggerMode,artifactRef:z.artifactRef,coordinatorSessionId:z.coordinatorSessionId,cancelSubject:z.cancelSubject,materializationSpec:z.materializationSpec,terminalAuthority:n.literal(`authority`)}).strict().superRefine((e,t)=>{let n=D.safeParse({...e,createdAt:0});if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message});e.source.kind===`path`&&(e.source.path.includes(`\\`)||/^[A-Za-z]:/.test(e.source.path)||e.source.path.split(`/`).includes(`..`))&&t.addIssue({code:`custom`,path:[`source`,`path`],message:`Workflow source must stay within its executable root`}),e.source.kind===`definition`&&e.source.workflowId!==e.workflowId&&t.addIssue({code:`custom`,path:[`source`],message:`Workflow source identity does not match the invocation`}),e.definitionSnapshot!==void 0&&e.definitionSnapshot.id!==e.workflowId&&t.addIssue({code:`custom`,path:[`definitionSnapshot`],message:`Workflow definition identity does not match the invocation`})});function dn(e,t){if(t===void 0&&e.source.kind===`path`)throw Error(`Path-backed workflow instructions require a portable run context`);if(t!==void 0&&(t.executionId!==e.executionId||t.workflowId!==e.workflowId))throw Error(`Workflow run context does not belong to the dispatched execution`);let n=t??e,r=t===void 0?e.definition:t.definitionSnapshot;return un.parse({executionId:n.executionId,workflowId:n.workflowId,source:n.source,...r===void 0?{}:{definitionSnapshot:r},inputs:n.inputs,...n.config===void 0?{}:{config:n.config},scope:n.scope,triggerPayload:n.triggerPayload,...n.triggerMode===void 0?{}:{triggerMode:n.triggerMode},...n.artifactRef===void 0?{}:{artifactRef:n.artifactRef},coordinatorSessionId:n.coordinatorSessionId,cancelSubject:n.cancelSubject,...n.materializationSpec===void 0?{}:{materializationSpec:n.materializationSpec},terminalAuthority:`authority`})}function fn(e){let t=dn(e.config,e.runContext),n=JSON.parse(JSON.stringify(t));return m.parse({id:e.id,revision:e.revision,workload:{kind:cn,version:`1`,input:n},...e.workspace===void 0?{}:{workspace:e.workspace},preservation:e.preservation})}function pn(e){if(e.workload.kind!==`workflow`||e.workload.version!==`1`)throw Error(`Instruction does not target the supported workflow workload adapter`);return un.parse(e.workload.input)}const mn=h.transform((e,t)=>e.kind===`technical-failure`||e.kind===`cancelled`?e:(t.addIssue({code:`custom`,message:`Expected a runtime outcome, not an opaque workload result`}),n.NEVER)),hn=n.union([fe,mn]),gn={parse:e=>hn.parse(e),serialize:e=>JSON.stringify(e)};function _n(e){let t=h.parse(e.outcome);if(t.kind===`technical-failure`||t.kind===`cancelled`)return t;let n=pn(e.instruction),r=fe.parse(t.result);if(r.executionId!==n.executionId||r.workflowId!==n.workflowId)throw Error(`Workflow result identity does not match the frozen instruction`);return r}function vn(e,t){if(`kind`in e)return e.kind===`cancelled`?{executionId:t.executionId,workflowId:t.workflowId,status:`cancelled`,...e.reason===void 0?{}:{reason:e.reason}}:{executionId:t.executionId,workflowId:t.workflowId,status:`failed`,error:`${e.stage}: ${e.message}`};if(e.executionId!==t.executionId||e.workflowId!==t.workflowId)throw Error(`Committed workflow result does not match its owner identity`);return fe.parse(e)}function yn(e){return e===void 0?!1:(e.customCapabilities??[]).length>0||e.persistentStorage!==void 0||e.maxRuntimeMs!==void 0||e.recoverableAllocation!==void 0||e.materializationModes!==void 0&&e.materializationModes.length>0}function bn(e){let{bus:t,requirements:n,dispatchMetadata:r,authority:i}=e;if(yn(n))return{terminalAuthority:`authority`,run:async(e,a,o,s)=>{a.throwIfAborted();let l=e.source.kind===`path`?(await t.request(F.getRunContext,{executionId:e.executionId},{signal:a})).runContext:void 0;a.throwIfAborted();let u=fn({id:c(),revision:`1`,config:e,...l==null?{}:{runContext:l},preservation:{required:[]}});return{state:`authority-committed`,result:vn(await on({authority:i,executionId:e.executionId,instruction:u,dispatch:i=>t.request(ie.dispatch,{executionAttemptId:i,config:{...e,terminalAuthority:`authority`},requirements:n,...o===void 0?{}:{manifest:o},...r!==void 0||s?.dispatchMetadata!==void 0?{metadata:{...r,...s?.dispatchMetadata}}:{}},{signal:a})}),e)}}}}function xn(e,t){let n=(e.executionAttemptAuthority===void 0?void 0:bn({bus:e.bus,requirements:t.workflow.requirements,dispatchMetadata:t.dispatchMetadata,authority:e.executionAttemptAuthority}))??e.workflowRunner;if(t.terminalAuthority!==void 0&&t.terminalAuthority!==(n?.terminalAuthority??`worker`))throw Error(`Selected workflow runner is incompatible with the persisted terminal authority`);return{runner:n}}function Sn(e,t,n=xn(e,t)){return n.runner===void 0?e.runExecution(t.executionId).finally(()=>{e.executionTasks.delete(t.executionId)}):$t(e.buildRunnerTaskDeps(n.runner),{...t,terminalAuthority:t.terminalAuthority??n.runner.terminalAuthority})}async function Cn(e,t,n,r){let i=Dt(r);await e.request(F.setExecutionStart,{execution:t,runContext:n,initialState:i})}async function wn(e,t){try{await e.emit(O.execution.started,{executionId:t.id,workflowId:t.workflowId,coordinatorSessionId:t.coordinatorSessionId,startedAt:t.startedAt,...t.artifactRef===void 0?{}:{artifactRef:t.artifactRef}})}catch(e){console.error(`[WorkflowExecutor] execution.started listener failed:`,e)}}async function Tn(e,t){await e.request(ee.close,{sessionId:t}).catch(e=>{console.error(`[WorkflowExecutor] Failed to close coordinator session "${t}" after launch failure:`,e)})}function En(e,t,n,r,i,a,o,s,c){let l={id:t,workflowId:n.id,coordinatorSessionId:r,status:`running`,inputs:i,config:a,startedAt:Date.now(),triggerPayload:o,...c.artifactRef===void 0?{}:{artifactRef:c.artifactRef},scope:s};return e.set(t,{execution:l,workflow:n,runContext:c,runtimeHandlers:new Map,runtimeLoopGates:new Map}),l}async function Dn(e,t,n,r,i){await e.request(F.setExecutionStart,{execution:t,runContext:n,...r===void 0?{}:{initialState:r},...i!==void 0&&i.length>0?{executionLinks:[...i]}:{}})}function On(e,t){return e.executableSource??{kind:`definition`,workflowId:t}}function kn(e,t){return e.kind===`definition`||t!==void 0}function An(e,t,n){if(!(t.kind===`definition`||e!==void 0))throw new oe(se.NOT_EXECUTABLE,`Workflow source execution '${n}' requires a workflow runner.`)}async function jn(e,t,n){if(t.source.kind===`path`){if(n!==void 0)return n;for(let n of e.materializationSpecResolvers){let e=await n.resolve({executionId:t.executionId,workflowId:t.workflowId,sourcePath:t.source.path,workspaceRoot:t.workspaceRoot});if(e!==void 0)return e}throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`)}}async function Mn(e,t,n){let r=await jn(e,t,n);return{source:t.source.kind===`path`&&r!==void 0?{kind:`path`,path:r.sourcePath}:t.source,materializationSpec:r}}async function Nn(e,t,n,r){return e.set(t,n),await r,t}async function Pn(e,t){let{workflow:n}=await e.request(F.get,{id:t});if(!n)throw Error(`Workflow not found: ${t}`);return n}async function Fn(e,t,n,r){let{sessionId:i}=await e.request(ee.create,{parentSessionId:t,branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}async function In(e,t,n={}){let r=await Pn(e.bus,t);return Ln(e,t,{...n,workflow:r})}async function Ln(e,t,n){let{bus:r,activeExecutions:i,executionTasks:a}=e,{workflow:o,parentSessionId:s,triggerPayload:c,artifactRef:l,scopeOverride:u}=n,d=I(`wfx`),f=rn(c),p=Ut(o,n.input===void 0?{}:n.input),m=Wt(o,n.config??{}),h=u??o.scope,g=await e.resolveExecutionWorkspaceRoot(s),_=n.executionSource??On(o,t),v=n.definitionSnapshot??o,y=xn(e,{workflow:o});An(y.runner,_,t);let{source:b,materializationSpec:x}=await Mn(e,{executionId:d,workflowId:t,source:_,workspaceRoot:g},n.materializationSpec),S=await Fn(r,s,o.name,g),C=!1;try{let s=e.buildRunContext({executionId:d,workflowId:t,coordinatorSessionId:S,source:b,...v===void 0?{}:{definitionSnapshot:v},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:`immediate`,terminalAuthority:y.runner?.terminalAuthority,...l===void 0?{}:{artifactRef:l},...x===void 0?{}:{materializationSpec:x}}),c=En(i,d,o,S,p,m,f,h,s);await Dn(r,c,s,_.kind===`definition`?Dt(o):void 0,n.executionLinks?.(d));let u=wn(r,c),g=Sn(e,{executionId:d,workflowId:t,workflow:o,...kn(_,n.definitionSnapshot)?{definitionSnapshot:v}:{},source:_,coordinatorSessionId:S,sanitizedTriggerPayload:f??{},boundInputs:p,boundConfig:m,scope:h,...l===void 0?{}:{artifactRef:l},suspensionStrategy:s.suspensionStrategy,...x===void 0?{}:{materializationSpec:x}},y);return C=!0,Nn(a,d,g,u)}catch(e){throw C||(i.delete(d),a.delete(d),await Tn(r,S)),e}}function Rn(e,t,n,r,i){e.set(t.id,{execution:t,workflow:{id:t.workflowId,name:n,scope:r,root:{id:`${t.workflowId}-root`,type:`sequence`,nodes:[]}},runContext:i,runtimeHandlers:new Map,runtimeLoopGates:new Map})}async function zn(e,t,n,r){let{sessionId:i}=await e.request(ee.create,{...t===void 0?{}:{parentSessionId:t},branchKind:`coordinator`,title:`Workflow: ${n}`,targetWorkingDirectory:r});return i}function Bn(e){if(e===void 0)throw Error(`[WorkflowExecutor] startFileExecution called without a workflow runner`);return e}function Vn(e){if(e===void 0)throw Error(`[WorkflowExecutor] path-backed execution requires a resolved materializationSpec`);return e}async function Hn(e,t,n={}){let{bus:r,activeExecutions:i,executionTasks:a}=e,{artifactRef:o,parentSessionId:s,triggerPayload:c,scopeOverride:l}=n,u=n.triggerMode??`immediate`,d=I(`wfx`),f=rn(c),p=n.input===void 0?{}:n.input,m=n.config??{},h=l??{type:`global`},g=await e.resolveExecutionWorkspaceRoot(s),_=Bn(e.workflowRunner),v=d,y=Vn(await jn(e,{executionId:d,workflowId:v,source:{kind:`path`,path:t},workspaceRoot:g},n.materializationSpec)),b=await zn(r,s,t,g),x={id:d,workflowId:v,coordinatorSessionId:b,status:`running`,inputs:p,config:m,startedAt:Date.now(),triggerPayload:f,...o===void 0?{}:{artifactRef:o},scope:h},S=!1;try{let s=e.buildRunContext({executionId:d,workflowId:v,coordinatorSessionId:b,source:{kind:`path`,path:y.sourcePath},inputs:p,config:m,scope:h,triggerPayload:f??{},triggerMode:u,terminalAuthority:_.terminalAuthority,...o===void 0?{}:{artifactRef:o},materializationSpec:y});await Dn(r,x,s,void 0,n.executionLinks?.(d)),Rn(i,x,t,h,s);let c=wn(r,x),l=Zt(e.buildRunnerTaskDeps(_),{executionId:d,workflowId:v,filePath:t,coordinatorSessionId:b,sanitizedTriggerPayload:f??{},triggerMode:u,boundInputs:p,boundConfig:m,...o===void 0?{}:{artifactRef:o},scope:h,materializationSpec:y});return S=!0,Nn(a,d,l,c)}catch(e){throw S||(i.delete(d),a.delete(d),await Tn(r,b)),e}}function Un(e){let t={};for(let[n,r]of Object.entries(e))r.status===`completed`?t[n]={status:`completed`,output:r.output}:r.status===`skipped`&&(t[n]={status:`skipped`});return t}function B(e){let t={...e,input:e.inputs,steps:e.frames};return{...t,ctx:t}}function Wn(e,t){let n=process.platform===`win32`?`win32`:process.platform===`darwin`?`darwin`:`linux`;return{repoPath:e??process.cwd(),makaioHome:t??process.env.MAKAIO_HOME??`${we.homedir()}/.makaio`,os:n,arch:process.arch}}function Gn(){return{context:Wn(),env:{}}}function Kn(e){return{...e,path:[...e.path]}}function qn(e){if(e===`station`||e===`delegate-agent`||e===`delegate-role`||e===`gate`)return e}function Jn(e,t){let n=qn(t.nodeType);if(n===void 0||t.status!==`running`&&t.status!==`completed`&&t.status!==`failed`&&t.status!==`skipped`)return;let r=t.startedAt!==void 0&&t.completedAt!==void 0?Math.max(0,t.completedAt-t.startedAt):void 0;return{executionId:e,frameId:t.frameId,stepId:t.nodeId,stepType:n,status:t.status,...t.startedAt===void 0?{}:{startedAt:t.startedAt},...t.completedAt===void 0?{}:{completedAt:t.completedAt},...r===void 0?{}:{durationMs:r},...t.output===void 0?{}:{output:JSON.stringify(t.output)}}}var Yn=class e{executionId;workflowId;definition;execution;runtimeHandlers;bus;signal;frameRegistry;framePersistenceTasks=new Map;artifactBinding;constructor(e,t,n,r,i,a,o,s,c,l=Gn(),u={}){this.executionId=e,this.workflowId=t,this.definition=n,this.execution=r,this.runtimeHandlers=i,this.bus=a,this.signal=o,this.frameRegistry=s??new Map,this.artifactBinding=c,this.platformContext=l.context,this.env=l.env,this.suspensionStrategy=u.suspensionStrategy??`wait-in-process`,this.resumeFrames=u.resumeFrames,this.runtimeLoopGates=u.runtimeLoopGates??new Map}platformContext;env;suspensionStrategy;resumeFrames;runtimeLoopGates;withSignal(t){return new e(this.executionId,this.workflowId,this.definition,this.execution,this.runtimeHandlers,this.bus,t,this.frameRegistry,this.artifactBinding,{context:this.platformContext,env:this.env},{suspensionStrategy:this.suspensionStrategy,resumeFrames:this.resumeFrames,runtimeLoopGates:this.runtimeLoopGates})}buildExpressionContext(){return{inputs:this.execution.inputs,config:this.execution.config??{},trigger:this.execution.triggerPayload??{},frames:{},previousSteps:{}}}createFrame(e){let t=I(`frm`),n=[...e.path,t],r={frameId:t,nodeId:e.nodeId,nodeType:e.nodeType,path:n,parentFrameId:e.parentFrameId,status:`pending`,attempt:0,iteration:e.iteration,branchKey:e.branchKey};return this.frameRegistry.set(t,r),this.persistFrame(r).catch(()=>void 0),r}async persistFrame(e,t={}){let n=t.requireFrameStorage===!0||this.suspensionStrategy!==`wait-in-process`,r=Kn(e),i=Jn(this.executionId,r),a=(this.framePersistenceTasks.get(e.frameId)??Promise.resolve()).catch(()=>void 0).then(async()=>{n?await this.bus.request(F.setFrame,{executionId:this.executionId,frame:r}):await this.bus.requestOptional(F.setFrame,{executionId:this.executionId,frame:r}),i!==void 0&&await this.bus.requestOptional(F.setSpan,{span:i})}).catch(t=>{if(n)throw t;console.warn(`[RuntimeContext] Failed to persist frame ${e.frameId}:`,t)});this.framePersistenceTasks.set(e.frameId,a);try{await a}finally{this.framePersistenceTasks.get(e.frameId)===a&&this.framePersistenceTasks.delete(e.frameId)}}async updateFrame(e,t,n={}){let r=this.frameRegistry.get(e);if(!r)throw Error(`Frame not found: ${e}`);Object.assign(r,t),await this.persistFrame(r,n)}getFrame(e){return this.frameRegistry.get(e)}getFramesByNodeId(e){let t=[];for(let n of this.frameRegistry.values())n.nodeId===e&&t.push(n);return t.sort((e,t)=>(e.startedAt??0)-(t.startedAt??0))}async emitFrameStarted(e){try{await this.bus.emit(O.frame.started,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId,startedAt:e.startedAt})}catch(t){console.error(`[RuntimeContext] frame.started observer failed for ${e.frameId}:`,t)}}async emitFrameCompleted(e,t){try{await this.bus.emit(O.frame.completed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,output:e.output,duration:t,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.completed observer failed for ${e.frameId}:`,t)}}async emitFrameFailed(e,t,n){try{await this.bus.emit(O.frame.failed,{executionId:this.executionId,frameId:e.frameId,nodeId:e.nodeId,error:t,duration:n,completedAt:e.completedAt})}catch(t){console.error(`[RuntimeContext] frame.failed observer failed for ${e.frameId}:`,t)}}};function Xn(e){return{kind:`workflow-execution`,id:e,displayName:`Workflow Engine`}}function Zn(e,t,n){return{inputs:n.inputs,config:n.config??{},trigger:n.triggerPayload,scope:n.scope,env:n.env,execution:{id:t.id,workflowId:t.workflowId,scope:t.scope},workflow:{id:e.id,name:e.name,scope:e.scope}}}function Qn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function $n(e){if(e!=null){if(Qn(e)&&typeof e.kind==`string`&&typeof e.id==`string`)return{kind:e.kind,id:e.id};throw Error(`Artifact resolve expression must return an object with string kind and id fields.`)}}function er(e){if(e!==void 0){if(Qn(e))return e;throw Error(`Artifact create expression must return an object.`)}}async function tr(e){let{bindingOptions:t,binding:n,existingArtifactRef:r,executionId:i,scope:a,initialData:o,bus:s}=e,c=null;if(r!==void 0){let e=await s.request(p.query,{kind:r.kind,ids:[r.id],currentOnly:!0});if(e.artifacts.length>0)c=e.artifacts[0];else return}else{if(o===void 0)throw Error(`Workflow artifact binding for '${n.kind}' requires an existing artifact reference or explicit initial data from its create expression.`);c=(await s.request(p.create,{kind:n.kind,schemaVersion:n.schemaVersion,scope:a??n.scope,data:o,relations:[],actor:Xn(i)})).artifact}return{current:c,schemaVersion:n.schemaVersion,statusPath:t.statusPath,zodSchema:t.schema}}async function nr(e){let{definition:t,execution:n,runContext:r,zodSchema:i,bus:a}=e,o=t.artifact;if(o===void 0)return;let s=Zn(t,n,r),c=r.artifactRef??(o.resolve===void 0?void 0:$n(M(o.resolve,s))),l=c===void 0&&o.create!==void 0?er(M(o.create,s)):void 0,u=await tr({bindingOptions:{kind:o.kind,schemaVersion:o.schemaVersion,scope:o.scope,...o.resolve===void 0?{}:{resolve:o.resolve},...o.create===void 0?{}:{create:o.create},...o.statusPath===void 0?{}:{statusPath:o.statusPath},...i===void 0?{}:{schema:i}},binding:o,existingArtifactRef:c,executionId:n.id,scope:o.scope,initialData:l,bus:a});if(u===void 0)throw Error(`Workflow artifact binding could not be resolved for the configured artifact reference.`);return u}const rr=new WeakMap;function ir(e,t){let n=(rr.get(e)??Promise.resolve()).catch(()=>void 0).then(t);return rr.set(e,n.then(()=>void 0,()=>void 0)),n}function ar(e,t){switch(t.operation){case`set`:return t.data;case`merge`:return{...e,...t.data};case`append`:{let n={...e};for(let[r,i]of Object.entries(t.data)){let t=e[r];Array.isArray(t)&&Array.isArray(i)?n[r]=[...t,...i]:n[r]=i}return n}}}function or(e,t,n){let[r,...i]=t;if(i.length===0)return{...e,[r]:n};let a=e[r]!==null&&typeof e[r]==`object`&&!Array.isArray(e[r])?e[r]:{};return{...e,[r]:or(a,i,n)}}function sr(e,t,n){return or(e,cr(t).slice(1).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)),n)}function cr(e){if(!e.startsWith(`/`)&&e.split(`.`).some(e=>e.length===0))throw Error(`Status path must contain nonempty dot-separated segments`);let t=e.startsWith(`/`)?e:`/${e.split(`.`).map(e=>e.replace(/~/g,`~0`).replace(/\//g,`~1`)).join(`/`)}`;return f.revise.request.shape.statusPath.unwrap().parse(t)}function lr(e,t,n){if(n===`set`||n===`functional`)return[];let r=[];for(let n of Object.keys(t))e[n]!==t[n]&&r.push(`/${n}`);return r}async function ur(e,t){if(typeof t==`function`)return{nextData:await t(Object.freeze({...e})),operationLabel:`functional`,changedPaths:[]};let n=ar(e,t),r=lr(e,n,t.operation);return{nextData:n,operationLabel:t.operation,changedPaths:r}}function dr(e){let{executionId:t,frameId:n,bindingState:r,bus:i}=e,a=Object.freeze({...r.current.data}),o=async e=>ir(r,async()=>{let a=r.statusPath===void 0?void 0:cr(r.statusPath),o=r.current,{nextData:s,operationLabel:c,changedPaths:l}=await ur(o.data,e);if(r.zodSchema!==void 0){let e=r.zodSchema.safeParse(s);if(!e.success)throw Error(`Artifact data validation failed: ${e.error.message}`)}let u=await i.request(p.revise,{...a!==void 0&&{statusPath:a},previous:{refClass:`artifact`,kind:o.kind,id:o.id,revision:o.revision},revision:{kind:o.kind,schemaVersion:r.schemaVersion,scope:o.scope,data:s,relations:o.relations,actor:Xn(t)}});r.current=u.artifact;let d=u.artifact.revision;return i.emit(me.artifact.updated,{executionId:t,frameId:n,artifactRef:{kind:u.artifact.kind,id:u.artifact.id},paths:l,operation:c,revision:d}).catch(e=>{console.error(`[ArtifactContext] Failed to emit artifact.updated event:`,e)}),d});return{data:a,updateArtifact:o,updateStatus:async e=>{if(r.statusPath===void 0)throw Error(`updateStatus() called but no statusPath is configured on the artifact binding. Set statusPath in the .artifact() builder call to use updateStatus().`);let t=r.statusPath;return o(n=>sr(n,t,e))}}}function fr(e,t){return{async get(){return(await t.request(O.state.get,{executionId:e})).value},async update(n){let r=await t.request(O.state.get,{executionId:e}),i=structuredClone(r.value),a=await n(i),o=a===void 0?i:a,s=st(r.value,o);return(await t.request(O.state.patch,{executionId:e,expectedSequence:r.sequence,patch:s,nextValue:o})).value}}}function pr(e,t,n){let r=e.providerContext?.state===`resolved`?e.providerContext:void 0,i=e.providerConfigId??r?.providerConfigId;return{durationMs:t,...n===void 0?{}:{...n.inputTokens===void 0?{}:{inputTokens:n.inputTokens},...n.cachedInputTokens===void 0?{}:{cachedInputTokens:n.cachedInputTokens},...n.outputTokens===void 0?{}:{outputTokens:n.outputTokens},toolCallCount:n.toolCallCount},binding:{adapterName:e.adapterName,...i===void 0?{}:{providerConfigId:i},...r===void 0?{}:{providerDefinitionId:r.definitionId},...e.model===void 0?{}:{model:e.model},...r===void 0?{}:{auth:{mode:r.auth.mode,owner:r.auth.method.owner,methodId:r.auth.method.methodId}}}}}async function mr(e,t,n){if(t.signal.aborted)return{status:`cancelled`};let r=await t.bus.requestOptional(O.resolveRole,{roleId:e.roleId});if(!r.handled)return{status:`failed`,error:e.unresolvedRoleError};let i=N(e.prompt,B(n)),a=e.completion===void 0?r.data:{...r.data,completion:e.completion};return hr({...e,task:i,resolvedConfig:a},t)}async function hr(e,t){if(t.signal.aborted)return{status:`cancelled`};let n=performance.now(),r=await t.bus.requestOptional(w.spawn,{parentSessionId:t.execution.coordinatorSessionId??t.executionId,depth:1,config:Sr(e.task,e.resolvedConfig,e.outputSchema)});if(!r.handled)return{status:`failed`,error:e.unavailableRuntimeError};let i=await vr(e,t,r.data.subagentId,{attempts:5}),a=await Cr(e,t,r.data.subagentId);if(a===`aborted`)return{status:`cancelled`};if(i||await vr(e,t,r.data.subagentId,{attempts:1}),!a.handled)return await V(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' could not await ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:e.unavailableAwaitError};if(t.signal.aborted||a.data.status===`cancelled`)return{status:`cancelled`};if(a.data.status===`completed`){let r=a.data.result??null;try{return{status:`completed`,output:await gr({...e,toolObservations:a.data.toolObservations,usage:a.data.usage},t,r,_r(n))}}catch(e){if(t.signal.aborted)return{status:`cancelled`};throw e}}return(a.data.status===`timeout`||a.data.status===`waiting_input`)&&await V(e,t,r.data.subagentId,`Workflow execution '${t.executionId}' abandoned non-terminal ${e.cancellationLabel} '${e.nodeId}'`),{status:`failed`,error:`${e.nodeLabel} '${e.nodeId}' subagent ${a.data.status}: ${a.data.error??`no result`}`}}async function gr(e,t,n,r=0){if(e.resultFinalizerId===void 0)return n;if(e.frameId===void 0||e.delegateNodeType===void 0)throw Error(`Delegate result finalizer '${e.resultFinalizerId}' requires frame and delegate node identity`);let i={finalizerId:e.resultFinalizerId,executionId:t.executionId,workflowId:t.workflowId,frameId:e.frameId,nodeId:e.nodeId,nodeType:e.delegateNodeType,rawResult:n,toolObservations:[...e.toolObservations??[]],...e.resolvedConfig===void 0?{}:{economics:pr(e.resolvedConfig,r,e.usage)}},a=await t.bus.requestOptional(O.finalizeDelegateResult,i,{signal:t.signal});if(a.handled)return a.data.output;let{subjects:o}=ge(e.resultFinalizerId),{finalizerId:s,...c}=i;return(await t.bus.request(o.finalize,c,{signal:t.signal})).output}function _r(e){let t=performance.now()-e;return!Number.isFinite(t)||t<=0?0:Math.min(2**53-1,Math.round(t))}async function vr(e,t,n,r){if(e.frameId===void 0)return!0;try{let i=await yr(t,n,r.attempts);return i===void 0?!1:(await t.bus.emit(O.frame.sessionLinked,{executionId:t.executionId,frameId:e.frameId,sessionId:i}),!0)}catch(t){return console.warn(`[workflow-engine] Failed to emit frame.sessionLinked for frame '${e.frameId}' and subagent '${n}'`,t),!1}}async function yr(e,t,n){for(let r=0;r<n;r+=1){if(e.signal?.aborted)return;let i=await br(e,t);if(i===void 0||!i.handled)return;if(i.data.childSessionId!==void 0)return i.data.childSessionId;if(r<n-1&&!await xr(e.signal,20))return}}async function br(e,t){try{return await e.bus.requestOptional(w.getStatus,{subagentId:t},{timeout:25,signal:e.signal})}catch{return}}function xr(e,t){return e.aborted?Promise.resolve(!1):new Promise(n=>{let r,i=t=>{r!==void 0&&(clearTimeout(r),r=void 0),e.removeEventListener(`abort`,a),n(t)},a=()=>i(!1);r=setTimeout(()=>i(!0),t),e.addEventListener(`abort`,a,{once:!0}),e.aborted&&i(!1)})}function Sr(e,t,n){return{task:e,adapterName:t.adapterName,...t.providerConfigId===void 0?{}:{providerConfigId:t.providerConfigId},...t.model===void 0?{}:{model:t.model},...t.reasoningEffort===void 0?{}:{reasoningEffort:t.reasoningEffort},...t.harnessId===void 0?{}:{harnessId:t.harnessId},...t.systemPrompt===void 0?{}:{systemPrompt:t.systemPrompt},...t.contextMode===void 0?{}:{contextMode:t.contextMode},...t.providerContext===void 0?{}:{providerContext:t.providerContext},...t.adapterConfig===void 0?{}:{adapterConfig:t.adapterConfig},...t.tools===void 0?{}:{tools:t.tools},...t.disallowedTools===void 0?{}:{disallowedTools:t.disallowedTools},...t.allowedDirectories===void 0?{}:{allowedDirectories:t.allowedDirectories},...t.completion===void 0?{}:{completion:t.completion},...n===void 0?{}:{responseSchema:n}}}async function Cr(e,t,n){if(t.signal.aborted)return await V(e,t,n),`aborted`;let r=t.bus.requestOptional(w.await,{subagentId:n,...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs}},{timeout:0});if(t.signal.aborted)return await V(e,t,n),`aborted`;let i,a=new Promise(e=>{i=()=>e(`aborted`),t.signal.addEventListener(`abort`,i,{once:!0})});try{let i=await Promise.race([r,a]);return i===`aborted`&&await V(e,t,n),i}catch(r){throw await V(e,t,n,`Workflow execution '${t.executionId}' failed awaiting ${e.cancellationLabel} '${e.nodeId}'`),r}finally{i!==void 0&&t.signal.removeEventListener(`abort`,i)}}async function V(e,t,n,r){try{await t.bus.requestOptional(w.kill,{subagentId:n,reason:r??`Workflow execution '${t.executionId}' cancelled ${e.cancellationLabel} '${e.nodeId}'`})}catch(t){console.warn(`[workflow-engine] Best-effort subagent kill failed for '${n}' (${e.cancellationLabel} '${e.nodeId}')`,t)}}async function wr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=Un(n.frames),a=t.runtimeHandlers.get(e.id);if(a===void 0)return Tr(e,t,n,r);let o=t.artifactBinding!==void 0&&r!==void 0?dr({executionId:t.executionId,frameId:r,bindingState:t.artifactBinding,bus:t.bus}):void 0,s=t.definition.state===void 0?void 0:fr(t.executionId,t.bus);async function c(n){if(r===void 0){console.warn(`[station-node] updateProgress called without frameId for node '${e.id}'; skipping emit`);return}let i=pe[`execution.progress`].parse({executionId:t.executionId,workflowId:t.workflowId,frameId:r,nodeId:e.id,progress:n,emittedAt:Date.now()});try{await t.bus.emit(O.execution.progress,i)}catch(t){console.error(`[station-node] execution.progress observer failed for ${e.id}:`,t)}}let l;try{l=await a({...t.platformContext,env:t.env,executionId:t.executionId,workflowId:t.workflowId,inputs:t.execution.inputs,config:t.execution.config??{},trigger:t.execution.triggerPayload??{},previousSteps:i,...n.item!==void 0&&{item:n.item},...n.index!==void 0&&{index:n.index},...n.previous!==void 0&&{previous:n.previous},signal:t.signal,...o!==void 0&&{artifact:o},...s!==void 0&&{state:s},bus:t.bus,updateProgress:c})}catch(e){return{status:`failed`,error:e instanceof Error?e.message:String(e)}}return{status:`completed`,output:l}}async function Tr(e,t,n,r){if(e.role===void 0)return{status:`failed`,error:`No handler registered for station node '${e.id}'`};let i=e.outputSchema===void 0?void 0:{schema:e.outputSchema};return mr({nodeId:e.id,nodeLabel:`Station node`,roleId:e.role,prompt:e.prompt,...i===void 0?{}:{outputSchema:i},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},...e.completion===void 0?{}:{completion:e.completion},unresolvedRoleError:`No runtime handler registered for station node '${e.id}', and role '${e.role}' could not be resolved`,unavailableRuntimeError:`Subagent runtime is not available for station node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await station node '${e.id}'`,cancellationLabel:`station`,...r===void 0?{}:{frameId:r}},t,n)}function Er(e,t){return t===void 0?e:{...e,tools:[...t],disallowedTools:void 0}}function Dr(e,t){let n=Er({...t,...e.completion===void 0?{}:{completion:e.completion}},e.allowedTools);return kr(n)?{...n,contextMode:`fresh`}:n}function Or(e,t){return Er({...t,completion:e.completion??t.completion??`tool`},e.allowedTools)}function kr(e){return e.completion===`turn`&&[e.harnessId,e.contextMode,e.adapterConfig,e.tools,e.disallowedTools,e.allowedDirectories].every(e=>e===void 0)}async function Ar(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(O.resolveAgent,{agentId:e.agentId});if(!i.handled)return{status:`failed`,error:`Agent '${e.agentId}' could not be resolved for delegate-agent node '${e.id}'`};if(t.signal.aborted)return{status:`cancelled`};let a=Mr(e,n);if(a.status===`failed`)return a;let o=e.outputSchema===void 0?void 0:{schema:e.outputSchema},s=Or(e,i.data);return hr({nodeId:e.id,nodeLabel:`Delegate-agent node`,task:a.task,resolvedConfig:s,...o===void 0?{}:{outputSchema:o},unavailableRuntimeError:`Subagent runtime is not available for delegate-agent node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-agent node '${e.id}'`,cancellationLabel:`delegate-agent`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-agent`},t)}async function jr(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=await t.bus.requestOptional(O.resolveRole,{roleId:e.role});if(!i.handled)return{status:`failed`,error:`Role '${e.role}' could not be resolved for delegate-role node '${e.id}'`};let a=e.outputSchema===void 0?void 0:{schema:e.outputSchema},o=N(e.prompt,B(n)),s=Dr(e,i.data);return hr({nodeId:e.id,nodeLabel:`Delegate-role node`,task:o,resolvedConfig:s,...a===void 0?{}:{outputSchema:a},...e.timeoutMs===void 0?{}:{timeoutMs:e.timeoutMs},unavailableRuntimeError:`Subagent runtime is not available for delegate-role node '${e.id}'`,unavailableAwaitError:`Subagent runtime cannot await delegate-role node '${e.id}'`,cancellationLabel:`delegate-role`,...r===void 0?{}:{frameId:r},...e.resultFinalizerId===void 0?{}:{resultFinalizerId:e.resultFinalizerId},delegateNodeType:`delegate-role`},t)}function Mr(e,t){try{let n=B(t);return{status:`completed`,task:Nr(e.inputExpression===void 0?n:M(e.inputExpression,n))}}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`delegate-agent node '${e.id}': input expression evaluation failed: ${n}`}}}function Nr(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function Pr(e,t,n,r){try{let i=M(n,B(r));return Array.isArray(i)?i:{status:`failed`,error:`${t} node '${e}': collection expression did not resolve to an array (got ${typeof i})`}}catch(n){return{status:`failed`,error:`${t} node '${e}': collection expression evaluation failed: ${n instanceof Error?n.message:String(n)}`}}}function Fr(e,t,n){for(let r of[...e.nodes].reverse()){let e=n.getFramesByNodeId(r.id);for(let n of e)if(n.parentFrameId===t&&n.status===`completed`)return n.output}}function Ir(e,t,n){return Fr(e.body,t,n)}function Lr(e){if(e.length===0)return;let t=new Map,n=new Map;for(let r of e){n.set(r.frameId,r);let e=t.get(r.nodeId)??[];e.push(r),t.set(r.nodeId,e)}return{byNodeId:t,byFrameId:n}}const Rr=new Set([`completed`,`skipped`,`waiting`]);function H(e,t,n){let r=e?.byNodeId.get(t)??[],i=n.statuses??Rr;return r.find(e=>e.parentFrameId===n.parentFrameId&&e.branchKey===n.branchKey&&e.iteration===n.iteration&&i.has(e.status))}function U(e,t,n){let r={...e.frames,[t]:n};return{...e,frames:r,previousSteps:Un(r),output:n.status===`completed`?n.output:e.output}}function zr(e,t){if(typeof AbortSignal.any==`function`)return AbortSignal.any([e,t]);let n=new AbortController,r=()=>n.abort();return e.addEventListener(`abort`,r,{once:!0}),t.addEventListener(`abort`,r,{once:!0}),n.signal}const Br=new Set([`completed`,`running`]);function Vr(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function Hr(e,t,n,r,i,a,o=`all-settled`){if(t.signal.aborted)return{status:`cancelled`};let s=Object.entries(e.branches);if(s.length===0)return{status:`completed`,output:Gr({},o)};let c=new AbortController,l=new AbortController,u=t.suspensionStrategy!==`wait-in-process`,d=o===`fail-fast`?zr(c.signal,l.signal):u?l.signal:void 0,f=d===void 0?t.signal:zr(t.signal,d),p=f===t.signal?t:t.withSignal(f),m=s.map(([s,c])=>Ur(s,c,e,p,n,r,i,a,{outerSignal:t.signal,pauseSignal:o===`fail-fast`||u?l.signal:void 0}));if(o===`all-settled`){let e=await Promise.all(u?m.map(e=>e.then(e=>(e.status===`paused`&&l.abort(),e))):m),t=e.find(e=>e.status===`paused`);return t===void 0?{status:`completed`,output:Gr(Kr(s,e),o)}:t}let h=await Wr(s,m,c,l);return h.type===`cancelled`?{status:`cancelled`}:h.type===`paused`?h.outcome:h.type===`failed`?{status:`failed`,error:h.error}:{status:`completed`,output:Gr(Kr(s,h.outcomes),o)}}async function Ur(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l=H(r.resumeFrames,n.id,{parentFrameId:o,branchKey:e,statuses:Br});if(l?.status===`completed`)return{status:`completed`,...l.output===void 0?{}:{output:l.output}};let u=l??r.createFrame({nodeId:n.id,nodeType:`parallel`,path:s,parentFrameId:o,branchKey:e});if(r.signal.aborted)return Vr(u,c)||await $(u,r),{status:`cancelled`};l===void 0&&await X(u,r);let d;try{d=await a(t,r,i,u.frameId,u.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(u,r,t),{status:`failed`,error:t}}switch(d.status){case`completed`:{let e=Fr(t,u.frameId,r);return await Z(u,r,e),{status:`completed`,output:e}}case`skipped`:return await Z(u,r),{status:`completed`};case`cancelled`:return Vr(u,c)||await $(u,r),{status:`cancelled`};case`paused`:return d;case`failed`:return await Q(u,r,d.error),{status:`failed`,error:d.error}}}async function Wr(e,t,n,r){let i,a,o=t.map(e=>e.then(e=>(e.status===`failed`&&i===void 0?(i=e.error,n.abort()):e.status===`paused`&&a===void 0&&(a=e,r.abort()),e),e=>{let t=e instanceof Error?e.message:String(e);return i===void 0&&(i=t,n.abort()),{status:`failed`,error:t}})),s=await Promise.all(o);return a===void 0?s.some(e=>e.status===`cancelled`)&&i===void 0?{type:`cancelled`}:i===void 0?{type:`completed`,outcomes:s}:{type:`failed`,error:i}:{type:`paused`,outcome:a}}function Gr(e,t){return{mode:t,branches:e}}function Kr(e,t){let n={};for(let r=0;r<e.length;r++){let[i]=e[r],a=t[r];n[i]=qr(a)}return n}function qr(e){switch(e.status){case`completed`:return{status:`fulfilled`,...e.output===void 0?{}:{value:e.output}};case`skipped`:return{status:`fulfilled`,value:null};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:e.pausedAtGateId,pausedAtFrameId:e.pausedAtFrameId};case`failed`:return{status:`rejected`,reason:e.error}}}const Jr=new it.default({allErrors:!0,strict:!1});function Yr(e,t){if(t===void 0)return{status:`ok`};try{return{status:`ok`,validator:Jr.compile(t)}}catch(t){return{status:`failed`,error:`Gate '${e}' has an invalid resumeSchema: ${t instanceof Error?t.message:String(t)}`}}}function Xr(e,t){return e===void 0||e(t)?{valid:!0}:{valid:!1,error:Qr(e.errors??[])}}function Zr(e,t,n){let r=Yr(e,t);return r.status===`failed`?{valid:!1,error:r.error}:Xr(r.validator,n)}function Qr(e){return e.length===0?`schema validation failed`:e.map(e=>`${e.instancePath.length>0?e.instancePath:`/`} ${e.message??`is invalid`}`).join(`; `)}function $r(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}const ei={action:`approve`,source:`timeout`};function ti(e){return e===void 0?{}:{reason:e}}async function ni(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=$r();o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),e.reject(`timed-out`))},r),a.push(e.promise)}try{let e=await Promise.race(a);return n.removeEventListener(`abort`,i),o!==void 0&&clearTimeout(o),{action:e.action,resumeData:e.resumeData,timedOut:!1,wasCancelled:!1,reason:e.reason}}catch(e){return o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i),e===`timed-out`?{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1}:{action:`reject`,resumeData:null,timedOut:!1,wasCancelled:!0}}}async function ri(e,t,n,r,i,a){let o={required:e.suspensionStrategy!==`wait-in-process`};if(a.timedOut){let a=Date.now();if(r.autoAction===`approve`){let s=Xr(i,ei);return s.valid?(await W(e,{...r,status:`resumed`,resumeData:ei,resolvedAt:a},o),await G(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:{resumeData:ei}}):(await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' auto-approve timeout resume data does not match resumeSchema: ${s.error}`})}return await W(e,{...r,status:`timed-out`,resolvedAt:a},o),await G(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Gate '${t.id}' timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}if(a.wasCancelled||e.signal.aborted)return await W(e,{...r,status:`cancelled`,resolvedAt:Date.now()},o),await G(e,t.id,n,{source:`cancelled`}),{status:`cancelled`};let s=Date.now();await W(e,{...r,status:a.action===`reject`?`rejected`:`resumed`,resumeData:a.resumeData,...ti(a.reason),resolvedAt:s},o);try{await e.bus.emit(O.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:a.resumeData}),await G(e,t.id,n,{action:a.action,source:`user`,...ti(a.reason)})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return{status:`completed`,output:{resumeData:a.resumeData}}}async function ii(e,t,n,r){if(t.signal.aborted)return{status:`cancelled`};let i=e.resumeSchema??{};if(t.suspensionStrategy!==`wait-in-process`){let n=await ci(t,e,r);if(n!==void 0)return n}let a=Yr(e.id,e.resumeSchema);return a.status===`failed`?{status:`failed`,error:a.error}:ai(t,e,n,r,i,a.validator)}async function ai(e,t,n,r,i,a){let o=N(t.prompt,B(n)),s={executionId:e.executionId,nodeId:t.id,frameId:r,schema:i,prompt:o,status:`waiting`,autoAction:t.autoAction,timeoutMs:t.timeoutMs,createdAt:Date.now()},c=e.suspensionStrategy!==`wait-in-process`;if(await W(e,s,{required:c}),await e.updateFrame(r,{status:`waiting`},{requireFrameStorage:c}),c)return await oi(e,t,r,i,o,s.createdAt),{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:r};let l={value:!0},u=$r(),f=e.bus.on(O.gate.respond,async n=>{let{executionId:i,gateId:o,frameId:s,action:c,resumeData:f,reason:p}=n.payload;if(i!==e.executionId||o!==t.id||s!==void 0&&s!==r){try{await n.next()}catch(e){if(e instanceof d)n.setResult({accepted:!1});else throw e}return}if(!l.value){n.setResult({accepted:!1});return}if(!Xr(a,f).valid){n.setResult({accepted:!1});return}l.value=!1,n.setResult({accepted:!0}),u.resolve({action:c,resumeData:f,reason:p})});await oi(e,t,r,i,o,s.createdAt);let p=await ni(u,l,e.signal,t.timeoutMs);return f(),ri(e,t,r,s,a,p)}async function oi(e,t,n,r,i,a){try{await e.bus.emit(O.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.title!==void 0&&{title:t.title},autoAction:t.autoAction,timeoutMs:t.timeoutMs,openedAt:a})}catch(e){console.error(`[GateNode] gate.suspended emit failed for '${t.id}':`,e)}}async function si(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(F.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(F.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function ci(e,t,n){let r=await si(e,t.id,n);if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData!==void 0){let i=Zr(t.id,r.schema,r.resumeData);if(!i.valid)return{status:`failed`,error:`Gate '${t.id}' persisted resumeData is invalid: ${i.error}`};try{await e.bus.emit(O.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:r.resumeData})}catch(e){console.error(`[GateNode] gate.resumed emit failed for '${t.id}':`,e)}return await G(e,t.id,n,{action:r.status===`rejected`?`reject`:`approve`,source:`user`,...ti(r.reason)}),{status:`completed`,output:{resumeData:r.resumeData}}}if(r?.status===`waiting`){if(r.timeoutMs!==null&&Date.now()>=r.createdAt+r.timeoutMs){let i=Yr(t.id,r.schema);return i.status===`failed`?{status:`failed`,error:i.error}:ri(e,t,n,r,i.validator,{action:`reject`,resumeData:null,timedOut:!0,wasCancelled:!1})}return{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}}if((r?.status===`resumed`||r?.status===`rejected`)&&r.resumeData===void 0)return{status:`failed`,error:`Gate '${t.id}' has status '${r.status}' but resumeData is missing — cannot reconstruct output`};if(r!==null)return{status:`failed`,error:`Gate '${t.id}' cannot resume from status '${r.status}'`}}async function W(e,t,n={}){try{n.required===!0?await e.bus.request(F.setGateInstance,{gate:t}):await e.bus.requestOptional(F.setGateInstance,{gate:t})}catch(e){if(n.required===!0)throw e;console.warn(`[GateNode] Failed to upsert gate instance for '${t.nodeId}':`,e)}}async function G(e,t,n,r){try{await e.bus.emit(O.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[GateNode] gate.resolved emit failed for '${t}':`,e)}}function K(e){return{status:`fulfilled`,...e===void 0?{}:{value:e}}}const li=new Set([`completed`,`running`]);function ui(e,t){return e.status===`running`&&t.pauseSignal?.aborted===!0&&!t.outerSignal.aborted}async function di(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Pr(e.id,`iterate`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:hi([])};let c=await fi(s,e,t,n,r,i,a,e.concurrency!==void 0&&e.concurrency>0?e.concurrency:0);if(t.signal.aborted&&c.every(e=>e.status===`cancelled`))return{status:`cancelled`};let l=c.find(e=>e.status===`paused`);return l===void 0?{status:`completed`,output:hi(c)}:{status:`paused`,pausedAtGateId:l.pausedAtGateId,pausedAtFrameId:l.pausedAtFrameId}}async function fi(e,t,n,r,i,a,o,s){let c=new AbortController,l=n.suspensionStrategy!==`wait-in-process`,u=l?zr(n.signal,c.signal):n.signal,d=u===n.signal?n:n.withSignal(u),f={outerSignal:n.signal,...l?{pauseSignal:c.signal}:{}};if(s===0){let n=e.map((e,n)=>mi(e,n,t,d,r,i,a,o,f));return Promise.all(l?n.map(e=>pi(e,c)):n)}let p=Array(e.length);for(let n=0;n<e.length;n+=s){if(d.signal.aborted){for(let t=n;t<e.length;t++)p[t]={status:`cancelled`};break}let u=Math.min(n+s,e.length),m=[];for(let s=n;s<u;s++)m.push(mi(e[s],s,t,d,r,i,a,o,f));let h=await Promise.all(l?m.map(e=>pi(e,c)):m);for(let e=0;e<h.length;e++)p[n+e]=h[e];if(h.some(e=>e.status===`paused`)){for(let t=u;t<e.length;t++)p[t]={status:`cancelled`};break}}return p}function pi(e,t){return e.then(e=>(e.status===`paused`&&t.abort(),e))}async function mi(e,t,n,r,i,a,o,s,c){if(r.signal.aborted)return{status:`cancelled`};let l={...i,item:e,index:t},u=H(r.resumeFrames,n.id,{parentFrameId:o,iteration:t,statuses:li});if(u?.status===`completed`)return K(u.output);let d=u??r.createFrame({nodeId:n.id,nodeType:`iterate`,path:s,parentFrameId:o,iteration:t});if(r.signal.aborted)return ui(d,c)||await $(d,r),{status:`cancelled`};u===void 0&&await X(d,r);let f;try{f=await a(n.body,r,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,r,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=Ir(n,d.frameId,r);return await Z(d,r,e),K(e)}case`skipped`:return await Z(d,r),K();case`cancelled`:return ui(d,c)||await $(d,r),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,r,f.error),{status:`rejected`,reason:f.error}}}function hi(e){return{items:e}}const gi=new Set([`completed`,`running`]);async function _i(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=Pr(e.id,`iterate-chain`,e.collection,n);if(!Array.isArray(o))return o;let s=o;if(s.length===0)return{status:`completed`,output:yi([])};let c=[],l;for(let o=0;o<s.length;o++){if(t.signal.aborted)return{status:`cancelled`};let u=s[o],d=await vi(u,o,l,e,t,n,r,i,a);switch(c.push(d),d.status){case`fulfilled`:l=d.value;break;case`rejected`:return{status:`failed`,error:d.reason};case`cancelled`:return{status:`cancelled`};case`paused`:return{status:`paused`,pausedAtGateId:d.pausedAtGateId,pausedAtFrameId:d.pausedAtFrameId}}}return{status:`completed`,output:yi(c)}}async function vi(e,t,n,r,i,a,o,s,c){if(i.signal.aborted)return{status:`cancelled`};let l={...a,item:e,index:t,...n!==void 0&&{previous:n}},u=H(i.resumeFrames,r.id,{parentFrameId:s,iteration:t,statuses:gi});if(u?.status===`completed`)return K(u.output);let d=u??i.createFrame({nodeId:r.id,nodeType:`iterate-chain`,path:c,parentFrameId:s,iteration:t});if(i.signal.aborted)return await $(d,i),{status:`cancelled`};u===void 0&&await X(d,i);let f;try{f=await o(r.body,i,l,d.frameId,d.path)}catch(e){let t=e instanceof Error?e.message:String(e);return await Q(d,i,t),{status:`rejected`,reason:t}}switch(f.status){case`completed`:{let e=Ir(r,d.frameId,i);return await Z(d,i,e),K(e)}case`skipped`:return await Z(d,i),K();case`cancelled`:return await $(d,i),{status:`cancelled`};case`paused`:return f;case`failed`:return await Q(d,i,f.error),{status:`rejected`,reason:f.error}}}function yi(e){return{items:e}}async function bi(e,t,n,r){let i=()=>{t.value&&(t.value=!1,e.reject(`cancelled`))};n.addEventListener(`abort`,i,{once:!0}),n.aborted&&i();let a=[e.promise],o;if(r!==null){let e=new Promise((e,a)=>{o=setTimeout(()=>{t.value&&(t.value=!1,n.removeEventListener(`abort`,i),a(`timed-out`))},r)});a.push(e)}try{return{status:`resolved`,value:await Promise.race(a)}}catch(e){if(e===`timed-out`)return{status:`timed-out`};if(e===`cancelled`)return{status:`cancelled`};throw e}finally{o!==void 0&&clearTimeout(o),n.removeEventListener(`abort`,i)}}const xi={action:`approve`,source:`timeout`};async function q(e,t,n){try{n?await e.bus.request(F.setGateInstance,{gate:t}):await e.bus.requestOptional(F.setGateInstance,{gate:t})}catch(e){if(n)throw e;console.warn(`[LoopNode] Failed to upsert escalation gate for '${t.nodeId}':`,e)}}async function Si(e,t,n,r,i,a){try{await e.bus.emit(O.gate.suspended,{executionId:e.executionId,frameId:n,nodeId:t.id,schema:r,prompt:i,...t.gate.escalation?.title!==void 0&&{title:t.gate.escalation.title},autoAction:t.gate.escalation?.autoAction??`reject`,timeoutMs:t.gate.escalation?.timeoutMs??null,openedAt:a})}catch(e){console.error(`[LoopNode] gate.suspended emit failed for '${t.id}':`,e)}}async function J(e,t,n,r){try{await e.bus.emit(O.gate.resolved,{executionId:e.executionId,stepId:t,stepType:`gate`,frameId:n,...r})}catch(e){console.error(`[LoopNode] gate.resolved emit failed for '${t}':`,e)}}function Ci(e){let{node:t,ctx:n,parentFrameId:r,validator:i,pending:a,deferred:o}=e;return n.bus.on(O.gate.respond,async e=>{let{executionId:s,gateId:c,frameId:l,action:u,resumeData:f,reason:p}=e.payload;if(s!==n.executionId||c!==t.id||l!==void 0&&l!==r){try{await e.next()}catch(t){if(t instanceof d)e.setResult({accepted:!1});else throw t}return}if(!a.value){e.setResult({accepted:!1});return}if(!Xr(i,f).valid){e.setResult({accepted:!1});return}a.value=!1,e.setResult({accepted:!0}),o.resolve({action:u,resumeData:f,reason:p})})}async function wi(e,t,n,r,i,a,o){let s=Yr(e.id,e.gate.escalation?.resumeSchema);if(s.status===`failed`)return{status:`failed`,error:s.error};let c={value:!0},l=$r(),u=Ci({node:e,ctx:t,parentFrameId:n,validator:s.validator,pending:c,deferred:l});await Si(t,e,n,r.schema,r.prompt??``,r.createdAt);try{let s=await bi(l,c,t.signal,r.timeoutMs);return s.status===`timed-out`?Di(t,e,n,r,i,a,o,!1):s.status===`resolved`?Ti(t,e.id,n,r,s.value,i,a,o):(await q(t,{...r,status:`cancelled`,resolvedAt:Date.now()},!1),await J(t,e.id,n,{source:`cancelled`}),{status:`cancelled`})}finally{u()}}async function Ti(e,t,n,r,i,a,o,s){let c=Date.now(),l=i.action===`reject`?`rejected`:`resumed`;await q(e,{...r,status:l,resumeData:i.resumeData,...i.reason===void 0?{}:{reason:i.reason},resolvedAt:c},!1);try{await e.bus.emit(O.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t,resumeData:i.resumeData}),await J(e,t,n,{action:i.action,source:`user`,...i.reason===void 0?{}:{reason:i.reason}})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t}':`,e)}return{status:`completed`,output:Y(`escalate`,o,a,s,i.resumeData)}}async function Ei(e,t,n,r,i,a,o){let s=e.gate.escalation;if(s===void 0)return{status:`completed`,output:Y(`escalate`,a,i,o)};let c=N(s.prompt,B(n)),l=s.resumeSchema??{},u={executionId:t.executionId,nodeId:e.id,frameId:r,schema:l,prompt:c,status:`waiting`,autoAction:s.autoAction??`reject`,timeoutMs:s.timeoutMs??null,createdAt:Date.now()},d=t.suspensionStrategy!==`wait-in-process`;return await q(t,u,d),await t.updateFrame(r,{status:`waiting`},{requireFrameStorage:d}),d?(await Si(t,e,r,l,c,u.createdAt),{status:`paused`,pausedAtGateId:e.id,pausedAtFrameId:r}):wi(e,t,r,u,i,a,o)}async function Di(e,t,n,r,i,a,o,s=!0){let c=Date.now();if(r.autoAction===`approve`){let l=Zr(t.id,r.schema,xi);return l.valid?(await q(e,{...r,status:`resumed`,resumeData:xi,resolvedAt:c},s),await J(e,t.id,n,{action:`approve`,source:`timeout`}),{status:`completed`,output:Y(`escalate`,a,i,o,xi)}):(await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate auto-approve timeout resume data does not match resumeSchema: ${l.error}`})}return await q(e,{...r,status:`timed-out`,resolvedAt:c},s),await J(e,t.id,n,{action:`reject`,source:`timeout`}),{status:`failed`,error:`Loop '${t.id}' escalation gate timed out after ${String(r.timeoutMs)}ms and auto-rejected`}}async function Oi(e,t,n){if(e.suspensionStrategy!==`wait-in-process`)return(await e.bus.request(F.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n})).gate;let r=await e.bus.requestOptional(F.getGateInstance,{executionId:e.executionId,nodeId:t,frameId:n});return r.handled?r.data.gate:null}async function ki(e,t,n,r,i,a){let o=await Oi(e,t.id,n);if(o!==null){if((o.status===`resumed`||o.status===`rejected`)&&o.resumeData!==void 0){let s=Zr(t.id,o.schema,o.resumeData);if(!s.valid)return{status:`failed`,error:`Loop '${t.id}' escalation gate resumeData is invalid: ${s.error}`};try{await e.bus.emit(O.gate.resumed,{executionId:e.executionId,frameId:n,nodeId:t.id,resumeData:o.resumeData})}catch(e){console.error(`[LoopNode] gate.resumed emit failed for '${t.id}':`,e)}return await J(e,t.id,n,{action:o.status===`rejected`?`reject`:`approve`,source:`user`,...o.reason===void 0?{}:{reason:o.reason}}),{status:`completed`,output:Y(`escalate`,i,r,a,o.resumeData)}}return o.status===`waiting`?o.timeoutMs!==null&&Date.now()>=o.createdAt+o.timeoutMs?Di(e,t,n,o,r,i,a):{status:`paused`,pausedAtGateId:t.id,pausedAtFrameId:n}:(o.status===`resumed`||o.status===`rejected`)&&o.resumeData===void 0?{status:`failed`,error:`Loop '${t.id}' escalation gate has status '${o.status}' but resumeData is missing`}:{status:`failed`,error:`Loop '${t.id}' escalation gate cannot resume from status '${o.status}'`}}}const Ai=new Set([`completed`,`running`]);async function ji(e,t,n,r,i,a,o){let s=H(n.resumeFrames,e.id,{parentFrameId:a,iteration:t,statuses:Ai});if(s?.status===`completed`)return{terminal:!1,output:s.output??null,replayed:!0,gateExpressionCtx:Ni(e,n,r,s.frameId)};let c=s??n.createFrame({nodeId:e.id,nodeType:`loop`,path:o,parentFrameId:a,iteration:t});if(n.signal.aborted)return await $(c,n),{terminal:!0,outcome:{status:`cancelled`}};s===void 0&&await X(c,n);let l=await Pi(e,c,n,r,i);if(l!==void 0)return{terminal:!0,outcome:l};let u=Fr(e.body,c.frameId,n)??null;return await Z(c,n,u),{terminal:!1,output:u,replayed:!1,gateExpressionCtx:Ni(e,n,r,c.frameId)}}function Mi(e,t,n,r){return H(n.resumeFrames,e.id,{parentFrameId:r,iteration:t,statuses:Ai})!==void 0}function Ni(e,t,n,r){let i=n;for(let n of e.body.nodes){let e=t.getFramesByNodeId(n.id).find(e=>e.parentFrameId===r&&e.status===`completed`);e!==void 0&&(i=U(i,n.id,{status:`completed`,...e.output===void 0?{}:{output:e.output}}))}return i}async function Pi(e,t,n,r,i){let a;try{a=await i(e.body,n,r,t.frameId,t.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(t,n,r),{status:`failed`,error:r}}switch(a.status){case`failed`:return await Q(t,n,a.error),{status:`failed`,error:a.error};case`cancelled`:return await $(t,n),{status:`cancelled`};case`paused`:return a;case`skipped`:case`completed`:return}}function Fi(e,t,n,r,i){let a=null;if(e.gate.input!==void 0)try{let t=B(r);a=M(e.gate.input,t)}catch(t){let n=t instanceof Error?t.message:String(t);return{status:`failed`,error:`Loop node '${e.id}': gate input expression evaluation failed: ${n}`}}let o=e.gate.config??null,s=i(a,o,{executionId:n.executionId,nodeId:e.id,round:t+1,maxRounds:e.maxRounds});return s.kind===`loop`&&t+1>=e.maxRounds?{kind:`escalate`,reason:`max_rounds_reached`}:s}async function Ii(e,t,n,r,i,a){if(t.signal.aborted)return{status:`cancelled`};let o=t.runtimeLoopGates.get(e.gate.handler);if(o===void 0)return{status:`failed`,error:`Loop node '${e.id}': no gate handler registered for '${e.gate.handler}'`};let s=[],c=0;for(;;){if(t.signal.aborted)return{status:`cancelled`};let l=await ji(e,c,t,n,r,i,a);if(l.terminal)return l.outcome;if(s.push(l.output),l.replayed){if(c++,Mi(e,c,t,i))continue;if(e.gate.escalation!==void 0&&t.suspensionStrategy!==`wait-in-process`){let n=await ki(t,e,i,{kind:`escalate`,reason:`resumed_from_gate`},c,s);if(n!==void 0)return n}continue}let u=Fi(e,c,t,l.gateExpressionCtx,o);if(`status`in u)return u;if(u.kind===`pass`)return{status:`completed`,output:Y(`pass`,c+1,u,s)};if(u.kind===`escalate`)return e.gate.escalation===void 0?{status:`completed`,output:Y(`escalate`,c+1,u,s)}:Ei(e,t,n,i,u,c+1,s);c++}}function Y(e,t,n,r,i){return{outcome:e,rounds:t,lastGateOutcome:n,bodyOutputs:r,...i===void 0?{}:{resumeData:i}}}async function X(e,t){e.status=`running`,e.startedAt=Date.now(),await t.persistFrame(e),await t.emitFrameStarted(e)}async function Z(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`completed`,e.output=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameCompleted(e,i)}async function Q(e,t,n){let r=Date.now(),i=e.startedAt===void 0?void 0:Math.max(0,r-e.startedAt);e.status=`failed`,e.error=n,e.completedAt=r,await t.persistFrame(e),await t.emitFrameFailed(e,n,i)}async function Li(e,t){e.status=`skipped`,e.completedAt=Date.now(),await t.persistFrame(e)}async function $(e,t){e.status=`cancelled`,e.completedAt=Date.now(),await t.persistFrame(e)}function Ri(e,t){return!!M(e,B(t))}async function zi(e,t,n,r,i,a=[]){if(t.signal.aborted)return{status:`cancelled`};switch(e.type){case`sequence`:return r(e,t,n,i,a);case`station`:return wr(e,t,n,i);case`delegate-agent`:return Ar(e,t,n,i);case`delegate-role`:return jr(e,t,n,i);case`parallel`:return Hr(e,t,n,r,i??``,a,e.mode??`all-settled`);case`gate`:return ii(e,t,n,i??``);case`iterate`:return di(e,t,n,r,i??``,a);case`iterate-chain`:return _i(e,t,n,r,i??``,a);case`loop`:return Ii(e,t,n,r,i??``,a);default:return{status:`failed`,error:`Unknown node type: ${String(e.type)}`}}}const Bi=new Set([`completed`,`skipped`,`waiting`,`running`]);function Vi(e){return e.type===`parallel`||e.type===`iterate`||e.type===`iterate-chain`||e.type===`loop`}function Hi(e,t,n){return H(e.resumeFrames,t.id,{parentFrameId:n,...Vi(t)?{statuses:Bi}:{}})}function Ui(e,t,n){if(n?.status===`completed`)return U(e,t.id,{status:`completed`,...n.output===void 0?{}:{output:n.output}});if(n?.status===`skipped`)return U(e,t.id,{status:`skipped`})}async function Wi(e,t,n,r,i,a,o){try{return{result:Ri(e,i)}}catch(e){let i=e instanceof Error?e.message:String(e);return await Q(r.createFrame({nodeId:n.id,nodeType:n.type,path:a,parentFrameId:o}),r,`'${t}' condition evaluation failed: ${i}`),{status:`failed`,error:`'${t}' condition evaluation failed for '${n.id}': ${i}`}}}async function Gi(e,t,n,r,i,a){let o=a??t.createFrame({nodeId:e.id,nodeType:e.type,path:r,parentFrameId:i});if(t.signal.aborted)return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};a===void 0&&await X(o,t);let s;try{s=await zi(e,t,n,Ki,o.frameId,o.path)}catch(e){let r=e instanceof Error?e.message:String(e);return await Q(o,t,r),{updatedCtx:n,outcome:{status:`failed`,error:r}}}switch(s.status){case`completed`:return await Z(o,t,s.output),{updatedCtx:U(n,e.id,{status:`completed`,output:s.output})};case`skipped`:return await Li(o,t),{updatedCtx:U(n,e.id,{status:`skipped`})};case`cancelled`:return await $(o,t),{updatedCtx:n,outcome:{status:`cancelled`}};case`paused`:return{updatedCtx:n,outcome:s};case`failed`:return await Q(o,t,s.error),{updatedCtx:n,outcome:{status:`failed`,error:s.error}}}}async function Ki(e,t,n,r,i=[]){let a=n;for(let n of e.nodes){if(t.signal.aborted)return{status:`cancelled`};let e=Hi(t,n,r),o=Ui(a,n,e);if(o!==void 0){a=o;continue}if(n.when!==void 0){let e=await Wi(n.when,`when`,n,t,a,i,r);if(`status`in e)return e;if(!e.result){await Li(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=U(a,n.id,{status:`skipped`});continue}}if(n.skip!==void 0){let e=await Wi(n.skip,`skip`,n,t,a,i,r);if(`status`in e)return e;if(e.result){await Li(t.createFrame({nodeId:n.id,nodeType:n.type,path:i,parentFrameId:r}),t),a=U(a,n.id,{status:`skipped`});continue}}let s=e?.status===`waiting`&&n.type===`gate`||(e?.status===`running`||e?.status===`waiting`)&&Vi(n)?e:void 0,{updatedCtx:c,outcome:l}=await Gi(n,t,a,i,r,s);if(a=c,l!==void 0)return l}return{status:`completed`}}function qi(e,t){let n=new Set;if(_e(e.root,{enter(e){if(e.type!==`loop`)return;let r=e;t.has(r.gate.handler)||n.add(r.gate.handler)}}),n.size>0)throw Error(`Workflow '${e.id}' is missing loop gate handler(s): ${[...n].join(`, `)}`)}const Ji=new Set;async function Yi(e,t,n){if((await e.requestOptional(F.getRunContext,{executionId:t.executionId})).handled){await Xi(e,t.executionId,n);return}await e.request(O.bootstrapAuthorityState,{executionId:t.executionId,terminalAuthority:`authority`,definition:n})}async function Xi(e,t,n){return await Zi(e,t,n)!==void 0}async function Zi(e,t,n){let r=await e.request(F.getRunContext,{executionId:t});if(r.runContext===null)return;if(r.runContext.executionId!==t)throw Error(`Authority bootstrap identity mismatch for '${t}'`);let i=r.runContext.definitionSnapshot;if(i===void 0){await e.request(F.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`}});return}if(!Qi(i,n))throw Error(`Authority bootstrap definition mismatch for '${t}'`);let a=i;return await e.request(F.setRunContext,{runContext:{...r.runContext,terminalAuthority:`authority`,definitionSnapshot:a},initialState:Dt(a)}),a}function Qi(e,t){return i(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t)))}function $i(e,t){return e.on(O.bootstrapAuthorityState,async n=>{if(!ot(n,n.payload.executionId))throw Error(`authority state bootstrap is execution-bound`);let r=await Zi(e,n.payload.executionId,n.payload.definition);if(r!==void 0){t?.(n.payload.executionId,r);for(let t of Ji)await t({bus:e,executionId:n.payload.executionId,definition:r,transport:n.transport})}n.setResult({persisted:r!==void 0})})}export{Ae as $,R as A,at as B,un as C,en as D,on as E,Mt as F,Me as G,F as H,Et as I,Le as J,je as K,ht as L,Pt as M,Lt as N,Jt as O,I as P,Ze as Q,st as R,ln as S,pn as T,ke as U,rt as V,Oe as W,Ye as X,Xe as Y,Qe as Z,hn as _,pe as _t,$r as a,Ie as at,gn as b,nr as c,Ge as ct,Cn as d,Je as dt,P as et,In as f,qe as ft,xn as g,Te as gt,Sn as h,Ee as ht,Ki as i,ze as it,Rt as j,Ht as k,Yn as l,We as lt,Ln as m,Ve as mt,$i as n,Ne as nt,Zr as o,Fe as ot,Hn as p,He as pt,Re as q,qi as r,Be as rt,Lr as s,Ke as st,Yi as t,Pe as tt,Wn as u,Ue as ut,_n as v,O as vt,fn as w,cn as x,vn as y,ot as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as e,f as t,h as n,l as r,m as i,p as a,u as o}from"./types-CjjNAiHa.mjs";import{fileURLToPath as s,pathToFileURL as c}from"node:url";import{mkdir as l,mkdtemp as u,realpath as d,rm as f,stat as p,symlink as ee,writeFile as m}from"node:fs/promises";import{basename as te,dirname as h,extname as g,isAbsolute as _,join as v,resolve as y,sep as b}from"node:path";import{randomUUID as ne}from"node:crypto";import{NPM_PACKAGE_NAME_MAX_LENGTH as x,isNpmPackageName as re}from"@makaio/framework/utils";import{CODE_EXECUTION_IDENTIFIER_MAX_LENGTH as S,CodeExecutionProgramSchema as ie,CodeExecutionVirtualPathSchema as ae,JsonValueSchema as C,codeExecutionAbortOutcome as w,snapshotJsonBoundary as T}from"@makaio/framework/contracts";import{tmpdir as oe}from"node:os";import se from"piscina";async function E(e){if(!_(e))return[e];let t=new Set([e]);try{t.add(await d(e))}catch{}return[...t]}function D(e){return _(e)?[e,c(e).href]:[e]}async function ce(e){return(await E(e)).flatMap(D)}async function le(e){let t=new Map;for(let[n,r]of e.packageRoots)try{let e=await d(r);if(!(await p(e)).isDirectory())throw Error(`Package root is not a directory.`);t.set(n,e)}catch{throw Error(`A configured package root could not be resolved.`)}return{packageRoots:t,redactions:await ue({...e,packageRoots:new Map([...e.packageRoots,...[...t].map(([e,t])=>[`resolved:${e}`,t])])})}}async function ue(t){let n=new Set,r=t=>{let r=e(t);r.length>=4&&n.add(r)},i=t=>{let r=e(t);r.length>0&&n.add(r)};for(let e of Object.values(t.environment))r(e);for(let e of[...t.packageRoots.values(),...t.workerPaths])for(let t of await ce(e))i(t);return[...n]}const O={admitted:!1,refusal:`aborted`},de={admitted:!1,refusal:`queue_full`};var fe=class{maxQueued;available;waiting=[];constructor(e,t){this.maxQueued=t,this.available=e}acquire(e){return e.aborted?Promise.resolve(O):this.available>0?(--this.available,Promise.resolve({admitted:!0,release:this.createRelease()})):this.waiting.length>=this.maxQueued?Promise.resolve(de):new Promise(t=>{let n=()=>{e.removeEventListener(`abort`,r),t({admitted:!0,release:this.createRelease()})},r=()=>{let e=this.waiting.indexOf(n);e>=0&&this.waiting.splice(e,1),t(O)};e.addEventListener(`abort`,r,{once:!0}),this.waiting.push(n)})}createRelease(){let e=!1;return()=>{if(e)return;e=!0;let t=this.waiting.shift();t===void 0?this.available+=1:t()}}};function pe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&`program`in e&&`arguments`in e}function k(e){return{status:`failed`,error:{code:`invalid_program`,message:e}}}function me(e){let t={program:void 0,arguments:void 0},n;try{t.program=Reflect.get(e,`program`),t.arguments=Reflect.get(e,`arguments`),n=T(t)}catch{return k(`The invocation could not be read into a stable JSON boundary snapshot.`)}if(!n.ok||!pe(n.value))return k(`The invocation could not be read into a stable JSON boundary snapshot.`);let r=ie.safeParse(n.value.program);return r.success?{program:r.data,arguments:n.value.arguments}:k(`The invocation program does not satisfy the CodeExecution contract.`)}function A(e){return e instanceof Error&&e.name===`AbortError`}function he(e){return A(e)||e instanceof Error&&e.message===`Terminating worker thread`}function ge(e,t){if(!Number.isFinite(t))throw Error(`Option "${e}" must be a finite number, received ${t}.`);return t}function j(e,t,n){if(t.trim().length===0)throw Error(`Option "${e}" must be a non-empty string.`);if(n!==void 0&&t.length>n)throw Error(`Option "${e}" must contain at most ${n} characters.`);return t}function M(e,t,n){if(!Number.isInteger(t)||t<n)throw Error(`Option "${e}" must be an integer of at least ${n}, received ${t}.`);return t}const _e={"prototype-key":`The invocation arguments carry a "__proto__" key, which cannot be transported as JSON.`,"non-plain-object":`The invocation arguments are not JSON data: only plain objects and arrays are transportable, so values such as a Date, a Map, or a class instance must be converted before they are submitted.`,"symbol-key":`The invocation arguments carry a symbol-keyed property, which cannot be transported as JSON.`,"non-enumerable-key":`The invocation arguments carry a non-enumerable property that the record parse would drop.`,"extra-array-key":`The invocation arguments carry an array with extra own properties that the array rebuild would drop.`,"cyclic-reference":`The invocation arguments contain a cyclic reference and cannot be transported as JSON.`,"nesting-too-deep":`The invocation arguments exceed the maximum JSON container nesting.`,"negative-zero":`The invocation arguments contain -0, which JSON would transport as 0.`,"unreadable-value":`The invocation arguments could not be read into a stable JSON boundary snapshot.`};function ve(e){if(e.length===0)return a(`invalid_program`,`The export name must not be empty.`);if(!(e.length<=S))return a(`invalid_program`,`The export name is ${e.length} characters, which exceeds the limit of ${S}.`)}function N(e,t){let n=T(e);if(!n.ok)return a(`invalid_program`,_e[n.violation.kind]);let r=C.safeParse(n.value);if(!r.success)return a(`invalid_program`,`The invocation arguments carry a value with no JSON form — a function, undefined, a bigint, a symbol, or a non-finite number — which cannot be transported as JSON.`);let o;try{o=i(r.data)}catch{return a(`invalid_program`,`The invocation arguments have no JSON representation.`)}if(!(o<=t))return a(`invalid_program`,`The invocation arguments serialize to ${o} bytes, which exceeds the limit of ${t}.`)}function P(e,t){return ve(e.program.exportName)??N(e.arguments,t)}const F=`${JSON.stringify({type:`module`},null,2)}\n`,I=`package.json`,L=`node_modules`,R=`__makaio-entry-namespace.mjs`,ye=new Map([[H(I),`the generated program manifest`],[H(L),`provider-configured package links`],[H(R),`the generated entry namespace module`]]),z=new Set([`.ts`,`.mts`,`.js`,`.mjs`]),be=[...z].join(`, `);var B=class extends Error{code;constructor(e,t){super(t),this.code=e,this.name=`VirtualProgramError`}},V=class extends B{rootLease;constructor(e,t){super(e.code,e.message),this.rootLease=t,this.name=`UnreleasedProgramRootError`}};function xe(e){return e instanceof B?e:(console.warn(`[code-execution] Failed to materialize a program root: %s`,e),new B(`provider_failed`,`The program root could not be materialized.`))}function Se(e){let t=new Map;for(let[n,r]of Object.entries(e??{})){if(!re(n))throw Error(`Configured package name "${n}" is not an ordinary bare package specifier.`);if(n.length>x)throw Error(`Configured package name is ${n.length} characters, which exceeds the limit of ${x}.`);if(!_(r))throw Error(`Configured package root for "${n}" must be an absolute path.`);t.set(n,y(r))}return t}function H(e){return e.normalize(`NFC`).toLowerCase().toUpperCase().normalize(`NFC`)}function U(e,t,n){let r=Object.keys(e.files);if(r.length>t)throw new B(`invalid_program`,`Program declares ${r.length} files, which exceeds the limit of ${t}.`);let i=0;for(let t of Object.values(e.files)){if(!t.isWellFormed())throw new B(`invalid_program`,`A program source is not well-formed Unicode (no unpaired surrogates).`);if(i+=Buffer.byteLength(t,`utf8`),i>n)throw new B(`invalid_program`,`Program sources exceed the aggregate limit of ${n} UTF-8 bytes.`)}we([...r,e.entryFile]),Ce(e),Te(r),W(r),Ee(r)}function Ce(e){if(!Object.hasOwn(e.files,e.entryFile))throw new B(`invalid_program`,`Entry file "${e.entryFile}" is not one of the declared program files.`)}function W(e){for(let t of e){let e=g(t);if(!z.has(e))throw new B(`invalid_program`,`Virtual path "${t}" ${e===``?`carries no file extension`:`carries the extension "${e}"`}; this provider executes ${be} sources.`)}}function we(e){for(let t of e){let e=ae.safeParse(t);if(!e.success)throw new B(`invalid_program`,`A virtual path is not canonical: ${e.error.issues[0]?.message??`it violates the virtual path rules`}.`)}}function Te(e){for(let t of e){let e=t.split(`/`)[0]??``,n=ye.get(H(e));if(n!==void 0)throw new B(`invalid_program`,`Virtual path "${t}" claims the root name "${e}", which is reserved for ${n}.`)}}function Ee(e){let t=e.map(e=>({original:e,originalSegments:e.split(`/`),foldedSegments:e.split(`/`).map(H)})).sort(De),n;for(let e of t){if(n!==void 0&&Oe(n.foldedSegments,e.foldedSegments))throw new B(`invalid_program`,`Virtual paths "${n.original}" and "${e.original}" name the same file.`);if(n!==void 0&&ke(n.foldedSegments,e.foldedSegments)){let t=e.originalSegments.slice(0,n.originalSegments.length).join(`/`);throw new B(`invalid_program`,`Virtual path "${n.original}" is declared as a file and as the directory "${t}".`)}n=e}}function De(e,t){for(let n=0;n<Math.min(e.foldedSegments.length,t.foldedSegments.length);n+=1){let r=e.foldedSegments[n]??``,i=t.foldedSegments[n]??``;if(r<i)return-1;if(r>i)return 1}return e.foldedSegments.length-t.foldedSegments.length}function Oe(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function ke(e,t){return e.length<t.length&&e.every((e,n)=>e===t[n])}function G(e,t,n,r,i){let a=y(e),o=y(a,n);if(!o.startsWith(a+b))throw new B(i,`${r} "${n}" resolves outside the program root.`);for(let e of t){let t=y(e),a=y(t,n);if(!a.startsWith(t+b))throw new B(i,`${r} "${n}" resolves outside the program root.`);let o=Buffer.byteLength(a,`utf8`);if(o>=1024)throw new B(i,`${r} resolves to ${o} UTF-8 bytes once the program root is prepended, which leaves no room inside the 1024-byte budget.`)}return o}function K(e,t){return G(e,t,I,`Program manifest`,`provider_failed`)}function q(e,t){return G(e,t,R,`Entry namespace module`,`provider_failed`)}function Ae(e){return`import * as entry from ${JSON.stringify(c(e).href)};\nexport const ${r} = entry;\n`}function J(e,t,n){return G(e,t,n,`Virtual path`,`invalid_program`)}function Y(e,t,n){return G(e,t,`${L}/${n}`,`Package link`,`provider_failed`)}function je(e,t,n,r){K(e,t),q(e,t);for(let r of Object.keys(n.files))J(e,t,r);for(let n of r.keys())Y(e,t,n)}async function Me(e){let t=Ne(e.program);U(t,e.maxProgramFiles,e.maxSourceBytes);let n;try{let r=await u(v(oe(),`makaio-code-execution-`));n=r;let i=await E(r);je(r,i,t,e.packageRoots);let a=K(r,i);await m(a,F,`utf8`),await Pe(r,i,t.files),await Fe(r,i,e.packageRoots);let o=J(r,i,t.entryFile),s=q(r,i);return await m(s,Ae(o),`utf8`),{root:r,rootUrls:i.map(e=>c(`${e}${b}`).href),entryNamespaceUrl:c(s).href,parentUrl:c(a).href,redactedPaths:i.flatMap(D),cleanup:()=>Z(r)}}catch(e){let t=xe(e);if(n!==void 0){let e=n,r={root:e,cleanup:()=>Z(e)};if(!await r.cleanup())throw console.warn(`[code-execution] Failed to remove a partially materialized program root: %s`,n),new V(t,r)}throw t}}function Ne(e){let t=e.files,n=Object.create(null);for(let e of Object.keys(t))n[e]=t[e];return{files:n,entryFile:e.entryFile,exportName:e.exportName}}async function X(e){for(let t of await Promise.allSettled(e))if(t.status===`rejected`)throw t.reason}function Pe(e,t,n){return X(Object.entries(n).map(async([n,r])=>{let i=J(e,t,n);await l(h(i),{recursive:!0}),await m(i,r,`utf8`)}))}function Fe(e,t,n){return X([...n].map(async([n,r])=>{let i=Y(e,t,n);await l(h(i),{recursive:!0}),await ee(r,i,`junction`)}))}async function Z(e){try{return await f(e,{recursive:!0,force:!0,maxRetries:2,retryDelay:25}),!0}catch{return!1}}var Ie=class{removeRoot;roots=new Map;attempts=new Map;constructor(e=Z){this.removeRoot=e}get pending(){return[...this.roots.keys()]}async release(e){await this.attempt(e.root,()=>e.cleanup())||console.warn(`[code-execution] Retained a program root for a later removal attempt: %s`,e.root)}async retry(e){let t=Date.now();await this.retryRoots(e.filter(e=>{let n=this.roots.get(e);return n!==void 0&&t-n>=5e3}))}async retryAll(){return await this.retryRoots(this.pending),this.pending}async retryRoots(e){await Promise.all(e.filter(e=>this.roots.has(e)).map(e=>this.attempt(e,()=>this.removeRoot(e))))}async attempt(e,t){let n=this.attempts.get(e);if(n!==void 0)return n;let r=this.runAttempt(e,t);this.attempts.set(e,r);try{return await r}finally{this.attempts.get(e)===r&&this.attempts.delete(e)}}async runAttempt(e,t){let n=!1;try{n=await t()}catch(e){console.warn(`[code-execution] Failed to release a program root: %s`,e)}return n?this.roots.delete(e):this.roots.set(e,Date.now()),n}};const Q=`code-execution`,Le=[`--import=tsx`],Re=[],ze=Object.freeze({});function Be(e){return Object.freeze({TSX_TSCONFIG_PATH:v(e,Q,`worker-tsconfig.json`)})}function Ve(e){return e.mode===`source`?{filename:v(e.moduleDir,Q,`worker-entry.ts`),execArgv:Le,env:Be(e.moduleDir)}:{filename:v(e.moduleDir,Q,`worker-entry.mjs`),execArgv:Re,env:ze}}function He(e){let t=s(e),n=h(t);return Ve({moduleDir:te(n)===Q?h(n):n,mode:g(t)===`.ts`?`source`:`dist`})}function $(){return a(`provider_unavailable`,`This CodeExecution provider has been disposed.`)}function Ue(e){return e instanceof V?e.rootLease:void 0}function We(e,t){return a(`provider_unavailable`,`This CodeExecution provider is at capacity: ${e} invocations are executing and ${t} are waiting.`)}var Ge=class{id;displayName;priority;runtime=`node`;language=`typescript`;moduleFormat=`esm`;trust=`trusted-code-only`;workerEntry;workerExecArgv;workerLoaderEnv;environment;packageRoots;maxConcurrency;maxQueuedInvocations;idleTimeoutMs;maxProgramFiles;maxSourceBytes;maxResultBytes;maxArgumentBytes;maxInvocationsPerWorker;admission;inFlight=new Set;quiescing=new Set;draining=new Set;retained=new Ie;runtimeConfiguration;generation;disposed=!1;disposal;constructor(e={}){let t=He(import.meta.url);this.id=j(`id`,e.id??`piscina-code-execution`,S),this.displayName=j(`displayName`,e.displayName??`Local (Piscina)`),this.priority=ge(`priority`,e.priority??0),this.workerEntry=t.filename,this.workerExecArgv=[...t.execArgv],this.workerLoaderEnv=Object.freeze({...t.env}),this.environment=Object.freeze({...e.environment}),this.packageRoots=Se(e.packageRoots),this.maxConcurrency=M(`maxConcurrency`,e.maxConcurrency??4,1),this.maxQueuedInvocations=M(`maxQueuedInvocations`,e.maxQueuedInvocations??16,0),this.idleTimeoutMs=M(`idleTimeoutMs`,e.idleTimeoutMs??3e4,0),this.maxInvocationsPerWorker=M(`maxInvocationsPerWorker`,e.maxInvocationsPerWorker??64,1),this.maxProgramFiles=M(`maxProgramFiles`,e.maxProgramFiles??256,1),this.maxSourceBytes=M(`maxSourceBytes`,e.maxSourceBytes??5242880,1),this.maxResultBytes=M(`maxResultBytes`,e.maxResultBytes??1048576,1),this.maxArgumentBytes=M(`maxArgumentBytes`,e.maxArgumentBytes??1048576,1),this.admission=new fe(this.maxConcurrency,this.maxQueuedInvocations)}async execute(e,t){if(this.disposed)return $();let n=this.runInvocation(e,t);this.inFlight.add(n);try{return await n}finally{this.inFlight.delete(n)}}dispose(){return this.disposed=!0,this.disposal??=this.destroyPoolAndDrain(),this.disposal}async destroyPoolAndDrain(){let e=[...this.generation===void 0?[]:[this.generation],...this.draining];this.generation=void 0;let t=await Promise.allSettled(e.map(e=>this.tearDown(e)));await Promise.allSettled([...this.inFlight]),await Promise.allSettled([...this.quiescing]);let n=await this.retained.retryAll();n.length>0&&console.warn(`[code-execution] Program roots still on disk after disposal: %s`,n.join(`, `));let r=t.filter(e=>e.status===`rejected`).map(e=>e.reason);if(r.length>0)throw AggregateError(r,`The CodeExecution provider could not tear down every worker pool.`)}async runInvocation(e,t){let n=me(e);if(`status`in n)return n;let r,i,o,s,c;try{U(n.program,this.maxProgramFiles,this.maxSourceBytes);let e=P(n,this.maxArgumentBytes);if(e!==void 0)return e;let l=C.safeParse(n.arguments);if(!l.success)return a(`invalid_program`,`The invocation arguments do not satisfy the CodeExecution contract.`);let u={program:n.program,arguments:l.data},d=await this.admission.acquire(t.signal);if(!d.admitted)return d.refusal===`aborted`?w(t):We(this.maxConcurrency,this.maxQueuedInvocations);if(s=d.release,this.disposed)return $();if(t.signal.aborted)return w(t);if(r=await this.resolveRuntimeConfiguration(),this.disposed)return $();if(t.signal.aborted)return w(t);if(i=await Me({program:u.program,packageRoots:r.packageRoots,maxProgramFiles:this.maxProgramFiles,maxSourceBytes:this.maxSourceBytes}),o=i,this.disposed)return $();if(t.signal.aborted)return w(t);let f=this.createTask(u,i,r),p=await this.dispatch(f,t.signal);return c=p.teardown,p.kind===`aborted`?w(t):p.kind===`failed`?this.toFailureOutcome(p.error,f.redactedPaths):this.toOutcome(p.value,f.redactedPaths)}catch(e){return o=Ue(e)??o,this.toFailureOutcome(e,[...i?.redactedPaths??[],...r?.redactions??[]])}finally{this.trackRelease(o,s,c)}}async quiesce(e,t,n){let r=this.retained.pending;e!==void 0&&await this.retained.release(e),n!==void 0&&await Promise.allSettled([n]),t?.(),await this.retained.retry(r)}trackRelease(e,t,n){let r=this.quiesce(e,t,n);this.quiescing.add(r),r.catch(e=>{console.warn(`[code-execution] Failed to release an invocation: %s`,e)}).finally(()=>this.quiescing.delete(r))}async dispatch(e,t){let n=this.submit(e,t);try{return{kind:`completed`,value:await n.running,teardown:n.generation.teardown}}catch(e){let r=n.generation.teardown;return t.aborted&&A(e)?{kind:`aborted`,teardown:r}:{kind:`failed`,error:e,teardown:r}}}submit(e,t){let n=this.acquireGeneration();n.submitted+=1,n.outstanding+=1;let r=n.pool.run(e,{signal:t});return n.submitted>=this.maxInvocationsPerWorker&&this.retire(n),{generation:n,running:r.finally(()=>{--n.outstanding,this.tearDownIfDrained(n)})}}retire(e){this.generation===e&&(this.generation=void 0),e.retired=!0,this.draining.add(e),this.tearDownIfDrained(e)}handlePoolError(e,t){e.failed||(e.failed=!0,this.retire(e),this.tearDown(e).catch(e=>{console.warn(`[code-execution] Failed to tear down a failed worker generation: %s`,e)}),console.warn(`[code-execution] Worker generation failed: %s`,t))}tearDownIfDrained(e){!e.retired||e.outstanding>0||this.tearDown(e).then(()=>this.draining.delete(e)).catch(e=>{console.warn(`[code-execution] Failed to tear down a drained worker generation: %s`,e)})}tearDown(e){return e.teardown??=e.pool.destroy(),e.teardown}createTask(e,t,n){return{entryNamespaceUrl:t.entryNamespaceUrl,parentUrl:t.parentUrl,programRootUrls:t.rootUrls,allowedPackages:[...n.packageRoots.keys()],exportName:e.program.exportName,arguments:e.arguments,namespace:`makaio-code-execution-${ne()}`,maxResultBytes:this.maxResultBytes,redactedPaths:[...t.redactedPaths,...n.redactions]}}resolveRuntimeConfiguration(){if(this.runtimeConfiguration!==void 0)return this.runtimeConfiguration;let e=le({environment:this.environment,packageRoots:this.packageRoots,workerPaths:[this.workerEntry,...Object.values(this.workerLoaderEnv)]});return this.runtimeConfiguration=e,e.catch(()=>{this.runtimeConfiguration===e&&(this.runtimeConfiguration=void 0)}),e}acquireGeneration(){if(this.generation!==void 0)return this.generation;let e=new se({filename:this.workerEntry,execArgv:[...this.workerExecArgv],env:{...this.environment,...this.workerLoaderEnv},minThreads:0,maxThreads:this.maxConcurrency,idleTimeout:this.idleTimeoutMs}),t={pool:e,submitted:0,outstanding:0,retired:!1,failed:!1};return e.on(`error`,e=>this.handlePoolError(t,e)),this.generation=t,this.generation}toOutcome(e,t){let r=o.safeParse(e);if(!r.success)return a(`invalid_provider`,`The execution worker returned a malformed outcome envelope.`);if(r.data.kind===`completed`){let e=i(r.data.value);return e>this.maxResultBytes?a(`invalid_result`,`The execution returned ${e} serialized bytes, which exceeds the limit of ${this.maxResultBytes}.`):{status:`completed`,value:r.data.value}}return a(r.data.code,n(r.data.message,t))}toFailureOutcome(e,r){return e instanceof B?a(e.code,n(e.message,r)):this.disposed&&he(e)?$():a(`provider_failed`,n(t(e),r))}};export{Ge as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{wt as e,x as t}from"./handlers-CBbFzDHc.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{E as r,I as i,J as a,N as o,U as s,a as c,b as l,c as u,d,et as ee,i as te,k as ne,n as re,nt as ie,r as ae}from"./session-BDFNAcuY.mjs";import{r as f,t as oe}from"./namespace-BFlSY040.mjs";import{_ as se,a as ce,c as le,o as ue,s as de}from"./packages-BhhBcPgz.mjs";import{n as fe}from"./package-DfjGt5oK.mjs";import"./services/adapter-subsystem/index.mjs";import{i as pe,s as me}from"./model-registry-DNHDnyvs.mjs";import{d as he,f as ge,n as _e}from"./package-Tt2uoAFf.mjs";import{t as ve}from"./tool-approval-service-7mzJVMo_.mjs";import{t as ye}from"./tray-menu-service-thAhpcPA.mjs";import{r as p,t as be}from"./handler-COkV00I9.mjs";import{r as xe}from"./package-buHQFmTH.mjs";import{t as Se}from"./filesystem-service-DGqU-6x-.mjs";import{z as m}from"zod";import{createHash as Ce}from"node:crypto";import{getErrorString as h}from"@makaio/framework/utils";import{MakaioError as we,createMakaioContext as Te}from"@makaio/framework/core";import{MakaioBus as g}from"@makaio/framework/bus";import{AdapterSubjects as Ee,ArtifactSubjects as _,CanonicalModelSubjects as De,DEFAULT_HARNESSES as Oe,HarnessDefinitionCreateSchema as ke,HarnessSubjects as v,JsonValueSchema as Ae,ReactionDescriptorSchema as je,ToolSubjects as y,TransitionRuleDefinitionSchema as Me,WorkflowBlocksSubjects as b,WorkflowSubjects as Ne,dep as x,extensionToken as S,validateToolAdapterIdentity as Pe,zodSchemaToJsonRecord as C}from"@makaio/framework/contracts";import{BaseService as w}from"@makaio/framework/service-base";import{registerDrizzleHandlers as T}from"@makaio/framework/storage/drizzle";import{slugifyProviderConfigName as E}from"@makaio/framework/contracts/config";import{ClientAccountIdentifierSchema as Fe,ClientSessionAccountObserveSchema as Ie,ClientSubjects as D}from"@makaio/framework/contracts/client";import{FacetSubjects as O}from"@makaio/framework/contracts/facet";import{FILE_ACCESS_RULES_KEY as Le,ToolErrorCodes as k,errorToToolResult as Re,toolError as A,toolSuccess as ze}from"@makaio/framework/tools";import{ConditionSchema as Be,evaluate as Ve}from"@makaio/framework/rules";import{evaluateSync as He}from"@makaio/framework/expression";import{GitService as Ue}from"@makaio/framework/git";var j=class extends Error{reason;hookId;constructor(e,t){super(`Artifact write rejected by hook '${t}': ${e}`),this.reason=e,this.hookId=t,this.name=`ArtifactLifecycleHookRejectedError`}};function M(e,t){return e?!(e.kind!==void 0&&e.kind!==`*`&&e.kind!==t.kind||e.schemaVersion!==void 0&&e.schemaVersion!==t.schemaVersion):!0}function N(e){return e.priority??0}function We(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ge(e,t,n){return e.filter(e=>e.event===t&&M(e.filter,n)).sort((e,t)=>N(t)-N(e))}function Ke(e,t){return{...e,...`data`in t?{data:t.data}:{},...`relations`in t?{relations:t.relations}:{},...`confidence`in t?{confidence:t.confidence}:{},...`representations`in t?{representations:t.representations}:{},...`actor`in t?{actor:t.actor}:{}}}function qe(e,t){let{confidence:n,representations:r,...i}=e;return{...i,data:t.data,relations:[...t.relations],...t.confidence===void 0?{}:{confidence:t.confidence},...t.representations===void 0?{}:{representations:t.representations},actor:t.actor}}var P=class extends w{registrations=new Map;constructor(e){super(e)}async onInit(){}onDestroy(){this.registrations.clear()}registerHooks(e,t){let n=[...t];this.registrations.set(e,n);let r=!1;return()=>{r||(r=!0,this.registrations.get(e)===n&&this.registrations.delete(e))}}allHooks(){let e=[];for(let t of this.registrations.values())e.push(...t);return e}async runBeforeCreate(e){return this.runBeforeHooks(`beforeCreate`,e)}async runBeforeRevise(e){return this.runBeforeHooks(`beforeRevise`,e)}async runBeforeHooks(e,t){let{draft:n,previous:r,kindRegistration:i}=t,a=We(this.allHooks(),e,n),o=new Map,s={kind:n.kind,schemaVersion:n.schemaVersion,scope:n.scope,data:n.data,relations:n.relations,...n.confidence===void 0?{}:{confidence:n.confidence},...n.representations===void 0?{}:{representations:n.representations},actor:n.actor},c=!1;for(let t of a){let n,a={event:e,get draft(){return s},previous:r,kindRegistration:i,bus:this.bus,meta:o,rejectCreation(e){n={reason:e}},skipMaterialization(){c=!0},updateDraft(e){s=Ke(s,e)}};if(await t.handler(a),n)throw new j(n.reason,t.id)}return{draft:qe(n,s),skipMaterialization:c,meta:o}}async runAfterCreate(e){await this.runAfterHooks(`afterCreate`,`created`,e)}async runAfterRevise(e){await this.runAfterHooks(`afterRevise`,`revised`,e)}async runAfterStatusChanged(e){await this.runAfterHooks(`afterStatusChanged`,`status-changed`,e)}async runAfterObservationAdded(e){await this.runAfterHooks(`afterObservationAdded`,`observation-added`,e)}async runAfterHooks(e,t,n){let{artifact:r,previous:i,observation:a,kindRegistration:o,skipDefaultProjection:s,meta:c}=n,l=Ge(this.allHooks(),e,r),u=this.bus,d=!1;for(let n of l){if(s&&(n.priority??0)<0||d&&(n.priority??0)<0)continue;let l={event:e,semanticEvent:t,artifact:r,previous:i?{refClass:`artifact`,id:i.id,revision:i.revision,kind:i.kind}:void 0,observation:a,kindRegistration:o,bus:u,meta:c,preventDefault(){d=!0},async resolveRelations(e){let t=r.relations.filter(t=>t.type===e).map(e=>e.target),n=[];for(let e of t){let t=e;if(t.refClass===`artifact`){let e=t,{artifact:r}=await u.request(_.resolve,{ref:e});r&&n.push(r)}}return n}};try{await n.handler(l)}catch(t){console.error(`[ArtifactLifecycleHookRegistry] Hook '${n.id}' threw during '${e}':`,t)}}}};function F(e){return structuredClone(e)}var I=class extends w{namespaces=new Map;constructor(e){super(e)}async onInit(){this.registerHandler(O.namespace.register,e=>{this.registerNamespace(e.payload),e.setResult({registered:!0})}),this.registerHandler(O.namespace.list,e=>{let{namespace:t}=e.payload,n=[...this.namespaces.values()].filter(e=>!t||e.namespace===t).map(F);e.setResult({namespaces:n})})}registerNamespace(e){let t=this.namespaces.get(e.namespace);if(t){if(JSON.stringify(t)!==JSON.stringify(e))throw Error(`Facet namespace '${e.namespace}' is already registered with a different definition`);return}this.namespaces.set(e.namespace,F(e)),this.bus.emit(O.namespace.changed,{namespace:e.namespace})}deregisterNamespace(e){this.namespaces.delete(e)&&this.bus.emit(O.namespace.changed,{namespace:e})}getNamespace(e){let t=this.namespaces.get(e);return t?F(t):void 0}onDestroy(){this.namespaces.clear()}},L=class extends we{code;suggestions;constructor(e,t,n){super(e),this.code=t,this.suggestions=n}},R=class{deps;constructor(e){this.deps=e}async resolve(e,t){switch(e.kind){case`bare`:return this.resolveBare(e.model);case`qualified`:return this.resolveQualified(e.segment1,e.segment2,e.model)}}async resolveBare(e){let t=await this.deps.resolveDefaultModelTarget(e);switch(t.kind){case`resolved`:return{kind:`adapter`,adapterName:t.target.adapterName,providerConfigId:t.target.providerConfigId,model:t.target.model};case`ambiguous`:throw new L(`Model "${e}" is available via multiple providers. Use a qualified reference to select one.`,`ambiguous-model`,t.matches.map(e=>e.qualifiedName));case`not-found`:throw new L(`Model "${e}" was not found in any enabled adapter's registry.`,`model-not-found`)}}async resolveQualified(e,t,n){return t===void 0?this.resolveQualifiedOneSegment(e,n):this.resolveQualifiedTwoSegments(e,t,n)}async resolveQualifiedTwoSegments(e,t,n){let r=await this.deps.listEnabledAdapterNames();if(!r.includes(e))throw new L(`Adapter "${e}" is not enabled or does not exist.`,`adapter-not-found`);return{kind:`adapter`,adapterName:e,providerConfigId:await this.resolveProviderSegment(t,e,r),model:n}}async resolveQualifiedOneSegment(e,t){let n=await this.deps.listEnabledAdapterNames();if(n.includes(e)){let n=await this.deps.getDefaultBinding(e);if(!n)throw new L(`Adapter "${e}" has no enabled provider binding. Configure or enable a provider binding first.`,`no-binding`);return{kind:`adapter`,adapterName:e,providerConfigId:n.providerConfigId,model:t}}let r=await this.deps.findProviderConfigByName(e);if(r)return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t};let i=await this.deps.findProviderDefinition(e,n);if(i){let r=await this.deps.findDefaultConfigForDefinition(i.id);if(!r)throw new L(`Provider definition "${e}" exists but has no configured provider config. Create a provider config first.`,`provider-not-found`);return{kind:`adapter`,adapterName:(await this.pickBindingForConfig(r.id,n)).adapterName,providerConfigId:r.id,model:t}}throw new L(`"${e}" does not match any enabled adapter name, provider config name, or provider definition ID.`,`adapter-not-found`)}async resolveProviderSegment(e,t,n){let r=await this.deps.findProviderConfigByName(e);if(r)return await this.requireBindingForAdapterAndConfig(t,r.id,e),r.id;let i=await this.deps.findProviderDefinition(e,n);if(i){let n=await this.deps.findConfigForDefinitionAndAdapter(i.id,t);if(!n)throw new L(`Provider definition "${e}" has no enabled config bound to adapter "${t}". Create a provider config and binding first.`,`no-binding`);return n.id}throw new L(`"${e}" does not match any provider config name or provider definition ID.`,`provider-not-found`)}async requireBindingForAdapterAndConfig(e,t,n){if(!(await this.deps.listBindingsForConfig(t)).some(t=>t.adapterName===e))throw new L(`No binding exists between adapter "${e}" and provider "${n}". Create a binding first.`,`no-binding`)}async pickBindingForConfig(e,t){let n=(await this.deps.listBindingsForConfig(e)).filter(e=>t.includes(e.adapterName));if(n.length===0)throw new L(`Provider config "${e}" has no bindings to enabled adapters. Bind it to an enabled adapter first.`,`no-binding`);return n.find(e=>e.isDefault)??n[0]}},z=class e extends w{constructor(e=g){super(e)}async onInit(){await this.bus.request(f.ensureReady,{});let e=new R(this.createDeps());this.registerHandler(De.resolve,async t=>{let n=await e.resolve(t.payload.parsed,t.payload.context);t.setResult(n)})}createDeps(){let e=this.bus,t=async()=>{let{adapters:t}=await e.request(f.listAdapters,{});return t.filter(e=>e.enabled).map(e=>e.name)},n=async t=>{let[n,r]=await Promise.all([e.request(f.getDefaultBinding,{adapterName:t}),this.listEnabledProviderConfigIds()]);if(n.binding&&r.has(n.binding.providerConfigId))return n.binding;let{bindings:i}=await e.request(f.listBindings,{adapterName:t}),a=i.filter(e=>r.has(e.providerConfigId));return a.find(e=>e.isDefault)??a[0]},r=async t=>{let{definitions:n}=await e.request(f.getProviderDefinitionsByAdapter,{adapterName:t});return n},i=async t=>{let{bindings:n}=await e.request(f.listBindingsByConfig,{providerConfigId:t});return n},a=async t=>{let{configs:n}=await e.request(f.listProviderConfigs,{enabled:!0}),r=E(t);return n.find(e=>E(e.name)===r)},o=this.buildFindProviderDefinition(t,r),s=async t=>{let{configs:n}=await e.request(f.listProviderConfigsByDefinition,{definitionId:t}),r=n.filter(e=>e.enabled);return r.find(e=>e.isDefault)??r[0]},c=async(t,n)=>{let{config:r}=await e.request(f.findConfigForDefinitionAndAdapter,{definitionId:t,adapterName:n});return r?{id:r.id}:void 0};return{listEnabledAdapterNames:t,getDefaultBinding:n,findProviderConfigByName:a,findProviderDefinition:o,listBindingsForConfig:i,findDefaultConfigForDefinition:s,findConfigForDefinitionAndAdapter:c,resolveDefaultModelTarget:this.buildResolveDefaultModelTarget(t,r,c)}}buildFindProviderDefinition(e,t){return async(n,r)=>{let i=r??await e();for(let e of i){let r=(await t(e)).find(e=>e.id===n);if(r)return r}}}buildResolveDefaultModelTarget(t,n,r){let i=this.bus;return async a=>{let o=await t(),s=await Promise.all(o.map(async e=>({adapterName:e,definitions:await n(e)}))),c=Array.from(new Set(s.flatMap(({definitions:e})=>e.map(e=>e.id))));if(c.length===0)return{kind:`not-found`};let{matches:l}=await i.request(me.checkModelInProviders,{providerIds:c,model:a}),u=(await Promise.all(s.map(({adapterName:e,definitions:t})=>this.collectAdapterCandidates(e,t,a,l,r)))).flat();return e.buildResolution(u)}}async collectAdapterCandidates(e,t,n,r,i){let a=t.filter(e=>e.id in r),o=await Promise.all(a.map(t=>i(t.id,e)));return a.flatMap((t,r)=>{let i=o[r];return i?[{adapterName:e,definitionId:t.id,providerConfigId:i.id,qualifiedName:`${e}/${t.id}::${n}`,model:n}]:[]})}static buildResolution(e){let t=Array.from(new Map(e.map(e=>[this.routeKey(e),e])).values());if(t.length===0)return{kind:`not-found`};if(t.length>1)return{kind:`ambiguous`,matches:t.map(({adapterName:e,definitionId:t,qualifiedName:n})=>({adapterName:e,definitionId:t,qualifiedName:n}))};let[n]=t;return{kind:`resolved`,target:{adapterName:n.adapterName,providerConfigId:n.providerConfigId,definitionId:n.definitionId,model:n.model}}}static routeKey(e){return`${e.adapterName}\0${e.definitionId}\0${e.providerConfigId}`}async listEnabledProviderConfigIds(){let{configs:e}=await this.bus.request(f.listProviderConfigs,{enabled:!0});return new Set(e.map(e=>e.id))}};const B={name:`makaio.canonical-model`,displayName:`Canonical Model`,version:`0.1.0`,dependencies:[x(oe)],critical:!1,create:e=>new z(e.bus)};var V=class extends w{definitionsByExtension=new Map;definitionsByKind=new Map;constructor(e){super(e)}onInit(){}onDestroy(){this.definitionsByExtension.clear(),this.definitionsByKind.clear()}register(e,t){let n=this.validateBatch(e,t),r=new Map(this.definitionsByExtension);n.length===0?r.delete(e):r.set(e,n);let i=new Map;for(let e of r.values())for(let t of e)i.set(t.descriptor.kind,t);this.definitionsByExtension=r,this.definitionsByKind=i}deregister(e){this.definitionsByExtension.has(e)&&this.register(e,[])}listDescriptors(){return Array.from(this.definitionsByKind.values(),({descriptor:e})=>structuredClone(e))}async invoke(e,t,n){let r=crypto.randomUUID(),i=this.definitionsByKind.get(e);if(!i)return this.failure(e,r,n.correlationId,`Reaction kind '${e}' is not registered`);if(n.hostSignal?.aborted)return this.failure(e,r,n.correlationId,`Reaction '${e}' host signal already aborted`);let a=Ye(n.deadlineEpochMs);if(a!==void 0&&a<=Date.now())return this.failure(e,r,n.correlationId,`Reaction '${e}' deadline already passed`);let o=Xe(n.hostSignal,a),s=Ze(r,o.controller.signal,n);try{let n;try{n=await i.parameterSchema.safeParseAsync(t)}catch(t){return this.failure(e,r,s.correlationId,`Parameter validation for Reaction '${e}' threw: ${h(t)}`,t)}return n.success?(a!==void 0&&H(o.controller,a),o.controller.signal.aborted?this.failure(e,r,s.correlationId,`Reaction '${e}' cancelled before handler entry: ${h(o.controller.signal.reason)}`,o.controller.signal.reason):(await i.handler(n.data,s),{success:!0})):this.failure(e,r,s.correlationId,`Invalid parameters for Reaction '${e}': ${n.error.message}`)}catch(t){return this.logFailure(e,r,s.correlationId,`Reaction '${e}' handler threw`,t),{success:!1,error:{message:h(t)}}}finally{o.release()}}failure(e,t,n,r,i){return this.logFailure(e,t,n,r,i),{success:!1,error:{message:r}}}logFailure(e,t,n,r,i){let a=n===void 0?``:` (correlationId: ${n})`;console.error(`[ReactionRegistry] Reaction '${e}' invocation '${t}' failed${a}: ${r}`,...i===void 0?[]:[i])}validateBatch(e,t){let n=`${e}.`,r=new Set,i=new Set(this.definitionsByExtension.get(e)?.map(e=>e.descriptor.kind)),a=[];for(let o of t){if(!o.kind.startsWith(n)||o.kind.length===n.length)throw Error(`Reaction '${o.kind}' must be namespaced by extension '${n}'`);if(r.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' appears twice in batch from '${e}'`);if(this.definitionsByKind.has(o.kind)&&!i.has(o.kind))throw Error(`Reaction kind collision: '${o.kind}' is already registered`);r.add(o.kind);let t=je.parse(o.toDescriptor());if(t.kind!==o.kind)throw Error(`Reaction descriptor kind '${t.kind}' does not match definition kind '${o.kind}'`);a.push({parameterSchema:o.parameterSchema,handler:o.handler,descriptor:t})}return a}};const Je=()=>{};function Ye(e){return e!==void 0&&Number.isFinite(e)?e:void 0}function Xe(e,t){let n=new AbortController;if(e===void 0&&t===void 0)return{controller:n,release:Je};let r=[];if(e){let t=()=>{n.abort(e.reason)};e.addEventListener(`abort`,t,{once:!0}),r.push(()=>{e.removeEventListener(`abort`,t)})}if(t!==void 0){let e,i=()=>{if(H(n,t)){e=void 0;return}let r=t-Date.now();e=setTimeout(i,Math.min(r,2147483647)),e.unref?.()};i(),r.push(()=>{clearTimeout(e)})}return{controller:n,release:()=>{for(let e of r)e()}}}function H(e,t){return t>Date.now()?!1:(e.abort(Error(`Reaction invocation deadline reached (deadlineEpochMs: ${t})`)),!0)}function Ze(e,t,n){return Object.freeze({invocationId:e,ruleRef:n.ruleRef,eventKind:n.eventKind,eventPayload:n.eventPayload,hostContext:n.hostContext,correlationId:n.correlationId,signal:t,deadlineEpochMs:n.deadlineEpochMs})}const U=S(`reaction-registry`),W={name:U.name,displayName:`Reaction Registry`,version:`0.1.0`,critical:!0,create:e=>new V(e.bus)};function Qe(e){let t=Pe({adapterId:e?.adapterId,adapterName:e?.adapterName,contextOverrides:{adapterId:e?.contextOverrides?.adapterId,adapterName:e?.contextOverrides?.adapterName}}),n=t.issues[0];return n?A(k.VALIDATION_FAILED,n.message):ze(t.effectiveIdentity)}function $e(e){let t=e?.allowedDirectories;if(Array.isArray(t))return t.filter(e=>typeof e==`string`)}async function et(e,t,n,r){let i=new Map;for(let e of t)i.set(e.name,await r(e.name));let a=t.filter(e=>{let t=i.get(e.name);return!t?.allowedAdapters||t.allowedAdapters.length===0?!0:t.allowedAdapters.includes(n)}),o=new Set(a.map(e=>e.name));return{filteredTools:e.filter(e=>!(!o.has(e.toolsetName)||i.get(e.toolsetName)?.disabledTools?.includes(e.name))),filteredToolsets:a}}function tt(){return`exec_${Date.now()}_${Math.random().toString(36).substring(2,9)}`}var G=class{bus;toolsets=new Map;tools=new Map;cleanupHandlers=[];handlerPriority;policyProvider;fileAccessRuleProvider;revision=0;constructor(e){this.bus=e?.bus??g,this.handlerPriority=e?.handlerPriority??0,this.policyProvider=e?.policyProvider,this.fileAccessRuleProvider=e?.fileAccessRuleProvider,this.registerHandlers()}registerHandlers(){let e=this.bus.on(y.list,async e=>{let{toolsetName:t,adapterId:n,adapterName:r}=e.payload,{tools:i,toolsets:a}=await this.listToolsWithToolsets({toolsetName:t,adapterId:n,adapterName:r});e.setResult({tools:i,toolsets:a})},{priority:this.handlerPriority});this.cleanupHandlers.push(e);let t=this.bus.on(y.execute,async e=>{let{toolName:t,input:n,adapterId:r,adapterName:i,contextOverrides:a}=e.payload,o=await this.execute(t,n,{contextOverrides:a,adapterId:r,adapterName:i});e.setResult(o)},{priority:this.handlerPriority});this.cleanupHandlers.push(t)}async register(e){if(this.toolsets.has(e.metadata.name))throw Error(`Toolset '${e.metadata.name}' is already registered`);let t=[],n=[];for(let[,r]of Object.entries(e.tools)){let i=r.metadata.name;if(this.tools.has(i))throw Error(`Tool '${i}' is already registered (from toolset '${this.tools.get(i).toolsetName}')`);n.push({tool:r,toolsetName:e.metadata.name}),t.push(i)}this.toolsets.set(e.metadata.name,e);for(let e=0;e<n.length;e+=1)this.tools.set(t[e],n[e]);await this.emitRegistryChanged(`toolset-registered`,e.metadata.name).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registryChanged.subject} for '${e.metadata.name}':`,t)),await this.bus.emit(y.registered,{toolsetName:e.metadata.name,toolsetVersion:e.metadata.version,toolNames:t}).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registered.subject} for '${e.metadata.name}':`,t))}async deregister(e){let t=this.toolsets.get(e);if(!t)throw Error(`Toolset '${e}' is not registered`);for(let e of Object.values(t.tools))this.tools.delete(e.metadata.name);this.toolsets.delete(e),await this.emitRegistryChanged(`toolset-unregistered`,e).catch(t=>console.warn(`[ToolRegistry] Failed to emit ${y.registryChanged.subject} for '${e}':`,t))}async emitRegistryChanged(e,t){this.revision+=1,await this.bus.emit(y.registryChanged,{revision:this.revision,reason:e,toolsetName:t})}async execute(e,t,n){let r=this.tools.get(e);if(!r)return A(k.TOOL_NOT_FOUND,`Tool '${e}' not found`);let i=Qe(n);if(!i.success)return i;let{tool:a,toolsetName:o}=r,s=await this.checkPolicy(o,e,i.data.adapterId,i.data.adapterName);if(s)return s;let c=tt(),l=Date.now();await this.bus.emit(y.started,{toolName:e,toolsetName:o,executionId:c,timestamp:l});try{let r=a.inputSchema.safeParse(t);if(!r.success){let t=A(k.VALIDATION_FAILED,`Input validation failed`,{issues:r.error.issues});return await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:t.error}),t}let s=await this.buildExecutionContext(n,i.data),u=await a.execute(r.data,s);return u.success?await this.bus.emit(y.completed,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),durationMs:Date.now()-l}):await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:u.error}),u}catch(t){let n=Re(t);return await this.bus.emit(y.error,{toolName:e,toolsetName:o,executionId:c,timestamp:Date.now(),error:n.error}),n}}async buildExecutionContext(e,t){let n=e?.contextOverrides?.constraints;if(this.fileAccessRuleProvider){let t=e?.contextOverrides?.cwd??process.cwd(),r=$e(n),i=await this.fileAccessRuleProvider(t,r);n={...n,[Le]:i}}let r=Te({...e?.contextOverrides,constraints:n}),i=e?.contextOverrides;return{...r,bus:this.bus,sessionId:i?.sessionId,agentId:i?.agentId,adapterId:t.adapterId,adapterName:t.adapterName,adapterSessionId:i?.adapterSessionId,turnId:i?.turnId,turnContext:i?.turnContext,toolCallId:i?.toolCallId}}async checkPolicy(e,t,n,r){if(!this.policyProvider)return null;let i=await this.policyProvider(e);if(!i)return null;if(i.disabledTools?.includes(t))return A(k.PERMISSION_DENIED,`Tool '${t}' is disabled`,{toolsetName:e,toolName:t});if(i.allowedAdapters&&i.allowedAdapters.length>0){let t=r??n;if(!t||!i.allowedAdapters.includes(t))return A(k.PERMISSION_DENIED,`Adapter not allowed for toolset '${e}'`,{toolsetName:e,adapterId:n,adapterName:r,allowedAdapters:i.allowedAdapters})}return null}listTools(e){let t=[];for(let[,n]of this.tools){if(e?.toolsetName&&n.toolsetName!==e.toolsetName)continue;let{$schema:r,...i}=m.toJSONSchema(n.tool.inputSchema);t.push({name:n.tool.metadata.name,description:n.tool.metadata.description,toolsetName:n.toolsetName,annotations:n.tool.metadata.annotations,inputSchema:i})}return t}listToolsets(){let e=[];for(let[,t]of this.toolsets){let n={name:t.metadata.name,description:t.metadata.description,version:t.metadata.version,toolCount:Object.keys(t.tools).length};if(t.configSchema){let{$schema:e,...r}=m.toJSONSchema(t.configSchema);n.configSchema=r}e.push(n)}return e}async listToolsWithToolsets(e){let t=this.listTools(e),n=this.listToolsets(),r=e?.toolsetName?n.filter(t=>t.name===e.toolsetName):n,i=e?.adapterName??e?.adapterId;if(this.policyProvider&&i){let{filteredTools:e,filteredToolsets:n}=await et(t,r,i,this.policyProvider);return{tools:e,toolsets:n}}return{tools:t,toolsets:r}}getTool(e){return this.tools.get(e)?.tool}getToolset(e){return this.toolsets.get(e)}dispose(){for(let e of this.cleanupHandlers)e();this.cleanupHandlers.length=0}destroy(){this.dispose()}},nt=class extends w{stepsByExtension=new Map;revision=0;cache=null;constructor(e){super(e)}onInit(){this.registerHandler(b.list,e=>{e.setResult({steps:this.listSteps()})})}async register(e,t){let n=[],r=this.snapshotExtensionState(e),i=new Set;for(let e of this.stepsByExtension.values())for(let t of e)i.add(t.metadata.name);for(let r of t.steps??[])this.assertExtensionNamespace(e,r.metadata),this.assertNoCollision(r.metadata,i),i.add(r.metadata.name),n.push({metadata:{...r.metadata,extensionName:e},configSchema:C(r.configSchema),inputSchema:C(r.inputSchema),outputSchema:C(r.outputSchema),runs:structuredClone(r.runs)});if(n.length!==0){this.stepsByExtension.set(e,n),this.revision+=1;try{await this.emitChanged(e,`registered`)}catch(t){throw this.restoreExtensionState(e,r),t}}}async deregister(e){let t=this.snapshotExtensionState(e);if(this.stepsByExtension.delete(e)){this.revision+=1;try{await this.emitChanged(e,`deregistered`)}catch(n){throw this.restoreExtensionState(e,t),n}}}listSteps(){return this.getCache().steps.map(rt)}async emitChanged(e,t){await this.bus.emit(b.changed,{extensionName:e,revision:this.revision,reason:t})}getCache(){return(!this.cache||this.cache.revision!==this.revision)&&(this.cache={revision:this.revision,steps:[...this.stepsByExtension.values()].flat()}),this.cache}snapshotExtensionState(e){return{steps:this.stepsByExtension.get(e),revision:this.revision,cache:this.cache}}restoreExtensionState(e,t){t.steps?this.stepsByExtension.set(e,t.steps):this.stepsByExtension.delete(e),this.revision=t.revision,this.cache=t.cache}assertNoCollision(e,t){if(t.has(e.name))throw Error(`Workflow block name collision: '${e.name}' is already registered`)}assertExtensionNamespace(e,t){let n=`${e}.`;if(!t.name.startsWith(n))throw Error(`Workflow block '${t.name}' must be namespaced by extension '${n}'`)}};function rt(e){return{metadata:it(e.metadata),configSchema:structuredClone(e.configSchema),inputSchema:structuredClone(e.inputSchema),outputSchema:structuredClone(e.outputSchema),runs:structuredClone(e.runs)}}function it(e){return e.categories?{...e,categories:[...e.categories]}:{...e}}const K=`workflow.start`;function at(e){return()=>({async execute(t,n){let{input:r={}}=t,{workflowId:i}=r;if(typeof i!=`string`||i.length===0)throw Error(`[TransitionActionRegistry] 'workflow.start' action requires a non-empty 'input.workflowId' string`);await e.request(Ne.start,{workflowId:i,input:ot(r,n),config:r.config,artifactRef:r.artifactRef,scope:r.scope,triggerPayload:{_transitionRuleId:n._transition.ruleId,_transitionDepth:n._transition.depth,_transitionEventType:n._transition.eventType}})}})}function ot(e,t){let n=e.inputExpression;if(typeof n!=`string`)return e.input;let r=He(n,st(t)),i=Ae.safeParse(r);if(!i.success)throw Error(`[TransitionActionRegistry] 'workflow.start' inputExpression for rule '${t._transition.ruleId}' must resolve to a JSON value`);return i.data}function st(e){let t={...e};return{...t,ctx:t}}var ct=class{factories=new Map;factoriesBySource=new Map;constructor(e){this.factories.set(K,at(e)),this.factoriesBySource.set(`__builtin__`,[K])}register(e,t){let n=Object.keys(t);if(n.length!==0){if(this.factoriesBySource.has(e))throw Error(`TransitionActionRegistry: duplicate source '${e}'`);for(let t of n)if(this.factories.has(t))throw Error(`TransitionActionRegistry: duplicate action type '${t}' from source '${e}'`);for(let e of n)this.factories.set(e,t[e]);this.factoriesBySource.set(e,n)}}deregister(e){if(e===`__builtin__`)return;let t=this.factoriesBySource.get(e);if(t){for(let e of t)this.factories.delete(e);this.factoriesBySource.delete(e)}}async dispatch(e,t){let n=this.factories.get(e.type);if(!n)throw Error(`TransitionActionRegistry: unknown action type '${e.type}'. Registered types: ${[...this.factories.keys()].join(`, `)}`);await n().execute(e,t)}has(e){return this.factories.has(e)}listTypes(){return[...this.factories.keys()]}},lt=class{rulesBySource=new Map;rulesByEventType=new Map;ruleIdSet=new Set;register(e,t){if(t.length===0)return;if(this.rulesBySource.has(e))throw Error(`TransitionRuleRegistry: duplicate source '${e}'`);let n=new Set,r=[];for(let i of t){let t=Me.parse(i);if(n.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' within source '${e}'`);if(this.ruleIdSet.has(t.id))throw Error(`TransitionRuleRegistry: duplicate rule ID '${t.id}' from source '${e}'`);n.add(t.id),r.push({rule:t,condition:t.when===void 0?void 0:Be.parse(t.when)})}for(let e of r){let{rule:t}=e;this.ruleIdSet.add(t.id);let n=this.rulesByEventType.get(t.on)??[];n.push(e),this.rulesByEventType.set(t.on,n)}this.rulesBySource.set(e,r)}deregister(e){let t=this.rulesBySource.get(e);if(t){for(let{rule:e}of t){this.ruleIdSet.delete(e.id);let t=this.rulesByEventType.get(e.on);if(t){let n=t.filter(t=>t.rule.id!==e.id);n.length>0?this.rulesByEventType.set(e.on,n):this.rulesByEventType.delete(e.on)}}this.rulesBySource.delete(e)}}getRulesForEvent(e){let t=this.rulesByEventType.get(e);return t?t.filter(e=>e.rule.enabled):[]}snapshotSource(e){let t=this.rulesBySource.get(e);if(t)return{ruleIds:t.map(e=>e.rule.id)}}},ut=class extends w{ruleRegistry;actionRegistry;depthMap=new Map;constructor(e){super(e),this.ruleRegistry=new lt,this.actionRegistry=new ct(e)}onInit(){this.registerHandler(_.created,async e=>{await this.handleArtifactEvent(`artifact.created`,{artifact:e.payload.artifact})}),this.registerHandler(_.revised,async e=>{let t=await this.resolvePreviousRevisedArtifact(e.payload.previous);await this.handleArtifactEvent(`artifact.revised`,{artifact:e.payload.artifact,previous:e.payload.previous,...t===void 0?{}:{previousArtifact:t}})}),this.registerHandler(_.status.changed,async e=>{let t=await this.resolveStatusChangedArtifact(e.payload.artifact);t!==void 0&&await this.handleArtifactEvent(`artifact.status.changed`,{artifact:t,path:e.payload.path,previous:e.payload.previous,current:e.payload.current})})}async handleArtifactEvent(e,t){let n=this.artifactKey(t.artifact),r=this.readDepth(n);if(r>=10){console.warn(`[TransitionPipelineService] Transition depth limit (10) reached for event '${e}' on artifact '${n}'. Loop protection active — skipping rule evaluation.`);return}let i=this.ruleRegistry.getRulesForEvent(e);if(i.length!==0)for(let a of i)await this.evaluateAndDispatch(a,e,t,n,r)}async resolveStatusChangedArtifact(e){let t=await this.bus.requestOptional(_.resolve,{ref:e});if(!t.handled){console.warn(`[TransitionPipelineService] No artifact resolver is registered for status transition on artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}if(t.data.artifact===null){console.warn(`[TransitionPipelineService] Could not resolve status transition artifact '${this.artifactKey(e)}'. Skipping rule evaluation.`);return}return t.data.artifact}async resolvePreviousRevisedArtifact(e){let t=await this.bus.requestOptional(_.resolve,{ref:e});if(!(!t.handled||t.data.artifact===null))return t.data.artifact}async evaluateAndDispatch(e,t,n,r,i){let{rule:a,condition:o}=e,s={...n,_transition:{ruleId:a.id,eventType:t,depth:i+1}};if(o!==void 0){let e={...s},t;try{t=Ve(o,e)}catch(e){console.error(`[TransitionPipelineService] Condition evaluation error for rule '${a.id}':`,e);return}if(!t)return}try{await this.actionRegistry.dispatch(a.action,s),a.action.type===`workflow.start`&&this.incrementDepth(r)}catch(e){console.error(`[TransitionPipelineService] Action dispatch error for rule '${a.id}' (action type '${a.action.type}'):`,e)}}artifactKey(e){return`${typeof e.kind==`string`?e.kind:`unknown`}:${typeof e.id==`string`?e.id:`unknown`}`}readDepth(e){let t=this.depthMap.get(e);return t===void 0?0:Date.now()>t.expiresAt?(this.depthMap.delete(e),0):t.count}incrementDepth(e){let t=this.depthMap.get(e);this.depthMap.set(e,{count:t===void 0?1:t.count+1,expiresAt:Date.now()+6e4})}};function dt(e){return async t=>{let n=await ft(e,t);if(!n)return{handled:!1,sessionId:null,clientAccountId:null,changed:!1};let{sessionId:r}=n,{observation:i,accountObserveRequest:a}=pt(t),o=await e.requestOptional(D.account.observe,a);if(!o.handled)return{handled:!1,sessionId:r,clientAccountId:null,changed:!1};let{clientAccountId:s}=o.data;return{handled:!0,sessionId:r,clientAccountId:s,changed:await bt(e,r,i,s)}}}async function ft(e,t){switch(t.locator.kind){case`session`:{let{session:r}=await e.request(n.get,{sessionId:t.locator.sessionId});return r?{sessionId:r.sessionId,session:r}:null}case`adapter-session`:{let{session:r}=await e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId});return r?{sessionId:r.sessionId,session:r}:null}case`both`:{let[{session:r},{session:i}]=await Promise.all([e.request(n.get,{sessionId:t.locator.sessionId}),e.request(n.getByAdapterSessionId,{adapterSessionId:t.locator.adapterSessionId})]);if(!r&&!i)return null;if(!r||!i)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" must both resolve the same session`);if(r.sessionId!==i.sessionId)throw Error(`Session locator mismatch: sessionId "${t.locator.sessionId}" and adapterSessionId "${t.locator.adapterSessionId}" resolve to different sessions`);return{sessionId:r.sessionId,session:r}}}}function pt(e){let t={clientId:e.clientId,source:e.source,kind:e.kind,observedAt:e.observedAt,payload:vt(e.payload)};return{observation:t,accountObserveRequest:mt(t)}}function mt(e){let t=e.payload,n=ht(t),r=gt(t);if(r.length>0)return{clientId:e.clientId,observedAt:e.observedAt,displayLabel:_t(t,n),identifiers:r};throw Error(`client.session.account.observe for "${e.clientId}" requires canonical client account identifiers`)}function ht(e){return yt(e.accountInfo)??e}function gt(e){let t=e.identifiers;if(!Array.isArray(t))return[];try{return m.array(Fe).min(1).parse(t)}catch(e){throw Error(`client.session.account.observe received malformed canonical client account identifiers`,{cause:e})}}function _t(e,t){return q(e.displayLabel)??q(t.displayLabel)??q(t.email)??q(t.label)}function vt(e){return structuredClone(e)}function yt(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function q(e){return typeof e==`string`&&e.trim().length>0?e.trim():void 0}async function bt(e,t,r,i){let a=await e.request(n.update,{sessionId:t,clientId:r.clientId,clientAccountId:i,lastClientIdentityObservation:r});if(!a.success)throw Error(`Failed to update session "${t}" with client account linkage`);return a.clientAccountChanged??!1}const xt=S(`session-storage`).name;var St=class extends w{constructor(e=g){super(e)}onInit(){let e=dt(this.bus);this.registerHandler(D.session.account.observe,async t=>{t.setResult(await e(Ie.request.parse(t.payload)))})}};const Ct={name:`makaio.session-client-account-linking`,displayName:`Session Client Account Linking`,version:`0.1.0`,dependencies:[x(xt),x(`makaio.clients-core`)],critical:!1,create:e=>new St(e.bus)},wt={name:`framework-shell`,displayName:`Shell`,version:`0.1.0`,surface:`interactive`,windows:[{id:`main`,style:`utility`,width:1e3,height:700,singleton:!0}]};async function Tt(e){let{harnesses:t}=await e.request(p.list,{}),n=new Set(t.map(e=>e.id));for(let t of Oe){if(n.has(t.id))continue;let r={...t};await e.request(p.set,{harness:r})}}function J(e,t,n){return e??t??n}var Et=class extends w{static storage={drizzle:be};constructor(e=g){super(e)}async onInit(){await Tt(this.bus),this.registerHandlers()}registerHandlers(){this.registerHandler(v.get,async e=>{let t=await this.loadHarness(e.payload);if(!t)throw Error(`Harness not found`);e.setResult(t)}),this.registerHandler(v.list,async e=>{let{harnesses:t}=await this.bus.request(p.list,e.payload);e.setResult({harnesses:t})}),this.registerHandler(v.set,async e=>{let t=await this.upsertHarness(e.payload);e.setResult({id:t})}),this.registerHandler(v.delete,async e=>{let{deleted:t}=await this.bus.request(p.delete,{id:e.payload.id});e.setResult({success:t})}),this.registerHandler(v.getDefault,async e=>{let t=await this.getDefaultHarness(e.payload.adapterName,e.payload.clientId);e.setResult(t)}),this.registerHandler(v.resolve,async e=>{let{adapterName:t,clientId:n,personaHarnessId:r,profileHarnessId:i}=e.payload;if(r){let i=await this.resolveAndValidateHarness(r,t,`persona`,n);e.setResult(i);return}if(i){let r=await this.resolveAndValidateHarness(i,t,`profile`,n);e.setResult(r);return}let a=await this.getDefaultHarness(t,n);e.setResult(a)}),this.registerHandler(v.getSchema,({setResult:e})=>{let{$schema:t,...n}=m.toJSONSchema(ke);e({schema:n,uiConfig:{editMode:`fullPage`,hiddenFields:[`isDefault`]}})})}async upsertHarness(e){let t=await this.resolveHarnessId(e.name,e.adapterName,e.clientId),n=await this.loadHarness({id:t,adapterName:e.adapterName,clientId:e.clientId}),r=this.mergeHarnessPayload(t,e,n);return r.adapterName&&await this.validateNativeTools(r.adapterName,r.nativeTools),await this.bus.request(p.set,{harness:r}),t}mergeHarnessPayload(e,t,n){let r={enabled:[],disabled:[]};return{id:e,name:t.name,description:J(t.description,n?.description,void 0),adapterName:t.adapterName,clientId:J(t.clientId,n?.clientId,void 0),env:J(t.env,n?.env,void 0),credentials:J(t.credentials,n?.credentials,void 0),cwd:J(t.cwd,n?.cwd,void 0),approvalPolicy:J(t.approvalPolicy,n?.approvalPolicy,`always-ask`),nativeTools:J(t.nativeTools,n?.nativeTools,r),registryTools:J(t.registryTools,n?.registryTools,r),skills:J(t.skills,n?.skills,void 0),toolCapabilityMap:t.toolCapabilityMap??n?.toolCapabilityMap,capabilityOverrides:t.capabilityOverrides??n?.capabilityOverrides,toolApprovalOverrides:t.toolApprovalOverrides??n?.toolApprovalOverrides,isDefault:J(t.isDefault,n?.isDefault,!1),enabled:J(t.enabled,n?.enabled,!0)}}async resolveHarnessId(e,t,n){let r=n??t,{harnesses:i}=await this.bus.request(p.list,{name:e}),a=i.find(t=>t.name===e&&(t.clientId??t.adapterName)===r);if(a)return a.id;let o=i.find(t=>t.name===e&&(t.clientId??t.adapterName)!==r);if(o){let t=o.clientId?`client '${o.clientId}'`:`adapter '${o.adapterName}'`;throw Error(`Harness "${e}" already exists with scope ${t}; cannot change scope to ${r??`(none)`}`)}return this.createStableHarnessId(e,r)}async loadHarness(e){if(e.id){let{harness:t}=await this.bus.request(p.get,{id:e.id});return t&&(!e.adapterName||t.adapterName===e.adapterName)&&(!e.clientId||t.clientId===e.clientId)?t:null}if(!e.name)return null;let{harnesses:t}=await this.bus.request(p.list,{name:e.name,adapterName:e.adapterName,clientId:e.clientId});return e.clientId?t.find(t=>t.clientId===e.clientId)??null:e.adapterName?t.find(t=>t.adapterName===e.adapterName)??null:t[0]??null}async getDefaultHarness(e,t){if(t){let{harnesses:e}=await this.bus.request(p.list,{clientId:t}),n=e.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=e.find(e=>e.enabled);if(r)return r}if(e){let{harnesses:t}=await this.bus.request(p.list,{adapterName:e}),n=t.find(e=>e.isDefault&&e.enabled);if(n)return n;let r=t.find(e=>e.enabled);if(r)return r}let n=t?e?`client '${t}' or adapter '${e}'`:`client '${t}'`:`adapter '${e}'`;throw Error(`No harness available for ${n}`)}assertHarnessAdapterMatch(e,t,n,r){if(e.adapterName&&t&&e.adapterName!==t)throw Error(`Resolved ${n} harness adapter mismatch: expected "${t}", got "${e.adapterName}"`);if(e.clientId&&r&&e.clientId!==r)throw Error(`Resolved ${n} harness client mismatch: expected "${r}", got "${e.clientId}"`)}assertHarnessEnabled(e,t){if(!e.enabled)throw Error(`Resolved ${t} harness is disabled: ${e.id}`)}async validateNativeTools(e,t){let n=await this.bus.requestOptional(Ee.getCapabilities,{adapterName:e});if(!n.handled)return;let r=new Set(n.data.nativeTools),i=[...t.enabled,...t.disabled].filter(e=>!r.has(e));if(i.length>0)throw Error(`Tool '${i[0]}' not found in adapter '${e}' native tools. Declared tools: ${[...r].join(`, `)}`)}createStableHarnessId(e,t){return`harness-${Ce(`sha256`).update(`${t??``}\0${e}`).digest(`hex`).slice(0,24)}`}async resolveAndValidateHarness(e,t,n,r){let i=await this.loadHarness({id:e});if(!i)throw Error(`${n===`persona`?`Persona`:`Profile`} harness not found: ${e}`);return this.assertHarnessAdapterMatch(i,t,n,r),this.assertHarnessEnabled(i,n),i}};const Dt={name:`makaio.harness`,displayName:`Harness`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T(be)},create:e=>new Et(e.bus)},Y=S(`session-storage`),X=S(`session-bridge`),Z=S(`session`),Ot=S(`session-orchestrator`),kt=S(`observed-session-ingestion`),Q=S(`tool-registry`),At=S(`tool-approval`),jt=S(`tray-menu`),Mt=S(`model-registry`),Nt=S(`workflow-block-registry`),Pt=S(`transition-pipeline`),Ft=S(`filesystem`),It=S(`git`),Lt=S(`artifact-lifecycle-hook-registry`),Rt=S(`facet-namespace-registry`),zt={name:Lt.name,displayName:`Artifact Lifecycle Hook Registry`,version:`0.1.0`,critical:!0,create:e=>new P(e.bus)},Bt={name:Rt.name,displayName:`Facet Namespace Registry`,version:`0.1.0`,critical:!0,create:e=>new I(e.bus)},$={name:Y.name,displayName:`Session Storage`,version:`0.1.0`,critical:!0,storage:{registerHandlers:T((n,i)=>{let s=[],d=e=>{for(let t=s.length-1;t>=0;--t)try{s[t]?.()}catch(t){console.warn(`[sessionStoragePackage] cleanup failed during ${e}:`,t)}s.length=0};try{s.push(ne(n,i)),s.push(e(n,i)),s.push(ee(n,i)),s.push(a(n,i)),s.push(t(n,i)),s.push(o(n,i)),s.push(r(n,i)),s.push(u(n,i)),s.push(l(n,i)),s.push(c(n,i)),s.push(te(n)),s.push(ae(n)),s.push(re(n))}catch(e){throw d(`rollback`),e}return()=>{d(`shutdown`)}})}},Vt={name:X.name,displayName:`Session Bridge`,version:`0.1.0`,dependencies:[x(Y.name)],critical:!0,create:e=>new i(e.bus)},Ht={name:Z.name,displayName:`Session`,version:`0.1.0`,dependencies:[x(X.name)],critical:!0,create:e=>new ie(e.bus,{machineId:e.machineId,topology:`shared-machine`})},Ut={name:Ot.name,displayName:`Session Orchestrator`,version:`0.1.0`,dependencies:[x(Z.name),x(B.name)],critical:!0,runtimeOwnership:{sessionOrchestrator:!0},create:e=>new s(e.bus,e.machineId)},Wt={name:kt.name,displayName:`Observed-Session Ingestion`,version:`0.1.0`,dependencies:[x(X.name)],critical:!1,create:e=>new d(e.bus)},Gt={name:Q.name,displayName:`Tool Registry`,version:`0.1.0`,critical:!0,create:e=>new G({bus:e.bus})},Kt={name:At.name,displayName:`Tool Approval`,version:`0.1.0`,dependencies:[x(Q.name)],critical:!0,create:e=>new ve(e.bus)},qt={name:jt.name,displayName:`Tray Menu`,version:`0.1.0`,critical:!0,create:e=>new ye(e.bus)},Jt={name:Nt.name,displayName:`Workflow Block Registry`,version:`0.1.0`,critical:!0,create:e=>new nt(e.bus)},Yt={name:Pt.name,displayName:`Transition Pipeline`,version:`0.1.0`,critical:!0,create:e=>new ut(e.bus)},Xt={name:Ft.name,displayName:`Filesystem`,version:`0.1.0`,critical:!0,create:e=>new Se(e.bus,e.machineId)},Zt={name:It.name,displayName:`Git`,version:`0.1.0`,dependencies:[x(Ft.name)],critical:!0,create:e=>new Ue(e.bus)};function Qt(e){return{name:Mt.name,displayName:`Model Registry`,version:`0.1.0`,critical:!0,create:t=>new pe({bus:t.bus,fetcher:e})}}const $t=[se,zt,Bt,le,de,ce,ue,$,Vt,Ct,Ht,Ut,Wt,xe,Gt,Kt,qt,fe,Dt,B,wt,Jt,W,ge,he,_e,Yt,Zt,Xt];export{nt as A,P as B,Yt as C,lt as D,ut as E,B as F,z as I,R as L,U as M,W as N,ct as O,V as P,L as R,Gt as S,Jt as T,j as V,Vt as _,Ot as a,$ as b,At as c,jt as d,Nt as f,$t as g,Bt as h,X as i,G as j,K as k,Q as l,Qt as m,Rt as n,Y as o,zt as p,Mt as r,Z as s,Lt as t,Pt as u,Ut as v,qt as w,Kt as x,Ht as y,I as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./json-value-DM-EjTC1.mjs";import{z as t}from"zod";function n(e){return r(e)?e:void 0}function r(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function i(e,t){if(t===`#`)return e;if(!t.startsWith(`#/`))return;let r=e;for(let e of t.slice(2).split(`/`)){let t=n(r),i=e.replace(/~1/g,`/`).replace(/~0/g,`~`);if(!t||!Object.hasOwn(t,i))return;r=t[i]}return r}function a(e,t){let r=t.$ref;if(typeof r!=`string`)return;let a=n(i(e,r));if(!a||e.$schema!==`https://json-schema.org/draft/2020-12/schema`)return a;let{$ref:o,...s}=t;return Object.keys(s).length===0?a:{...a,allOf:[s,...Array.isArray(a.allOf)?a.allOf:[]]}}function o(e,t){for(let[n,r]of Object.entries(t))e[n]=Object.hasOwn(e,n)?{allOf:[e[n],r]}:r}function s(e){return Array.isArray(e.required)?e.required.filter(e=>typeof e==`string`):[]}function c(e,t,r){if(typeof t.$ref==`string`){if(r.has(t.$ref))return;let n=a(e,t);return n?c(e,n,new Set([...r,t.$ref])):void 0}if(!Array.isArray(t.allOf))return t;let{allOf:i,...l}=t,u={},d={},f=new Set;for(let t of[l,...i]){let i=n(t),a=i?c(e,i,r):void 0;if(!a||a.anyOf||a.oneOf)return;if(a.type!==void 0){if(u.type!==void 0&&u.type!==a.type)return;u.type=a.type}o(d,n(a.properties)??{});for(let e of s(a))f.add(e)}return{...u,properties:d,required:[...f]}}function l(e,t,r,i,o=new Set){if(typeof t.$ref==`string`){if(o.has(t.$ref))return;let n=a(e,t);return n?l(e,n,r,i,new Set([...o,t.$ref])):void 0}let s=Array.isArray(t.anyOf)?`anyOf`:`oneOf`,u=t[s];if(Array.isArray(u)){let{[s]:a,...c}=t,d=u.map(t=>{let a=n(t);if(a)return l(e,typeof a.$ref==`string`?{allOf:[c,a]}:{...a,allOf:[c,...Array.isArray(a.allOf)?a.allOf:[]]},r,i,o)});return d.every(e=>e!==void 0)?d.flatMap(e=>e??[]):void 0}if(Array.isArray(t.allOf)){let n=c(e,t,o);return n?l(e,n,r,i,o):void 0}if(r.length===0)return[t];if(t.type!==`object`)return;let[d,...f]=r;if(!d||i&&(!Array.isArray(t.required)||!t.required.includes(d)))return;let p=n(n(t.properties)?.[d]);return p?l(e,p,f,i):void 0}function u(e){let t=[],r=(e,r)=>{let i=n(e);i&&t.push({node:i,path:r})};for(let t of[`properties`,`patternProperties`,`$defs`,`definitions`,`dependentSchemas`,`dependencies`])for(let[i,a]of Object.entries(n(e[t])??{}))r(a,[t,i]);for(let t of[`allOf`,`anyOf`,`oneOf`,`prefixItems`,`items`]){let n=e[t];Array.isArray(n)&&n.forEach((e,n)=>r(e,[t,n]))}for(let t of[`items`,`additionalItems`,`additionalProperties`,`unevaluatedItems`,`unevaluatedProperties`,`propertyNames`,`contains`,`not`,`if`,`then`,`else`,`contentSchema`])r(e[t],[t]);return t}function d(e,t=[`dataSchema`]){if(Array.isArray(e.prefixItems)||Array.isArray(e.items))throw Error(`Unsupported tuple serialization at ${t.join(`.`)}: use an array schema or an explicit JSON Schema registration`);for(let n of u(e))d(n.node,[...t,...n.path])}function f(e,t,n=new Set){if(t.additionalProperties===!1)return!0;if(typeof t.$ref==`string`&&!n.has(t.$ref)){let r=a(e,t);if(!r||f(e,r,new Set([...n,t.$ref])))return!0}return u(t).some(t=>f(e,t.node,n))}function p(e,t,r,a){if(Object.hasOwn(t,`$ref`)&&typeof t.$ref!=`string`&&r.addIssue({code:`custom`,path:[...a,`$ref`],message:`Schema reference must be a string`}),typeof t.$ref==`string`&&!t.$ref.startsWith(`#`)&&r.addIssue({code:`custom`,path:[...a,`$ref`],message:`Only fragment schema references are supported; absolute and document-relative references are outside the artifact registration profile`}),Object.hasOwn(t,`$anchor`)&&r.addIssue({code:`custom`,path:[...a,`$anchor`],message:`Named schema anchors are not supported; use local JSON Pointer references`}),typeof t.$ref==`string`&&t.$ref.startsWith(`#`)&&t.$ref.length>1&&!t.$ref.startsWith(`#/`)&&r.addIssue({code:`custom`,path:[...a,`$ref`],message:`Named schema references are not supported; use local JSON Pointer references`}),typeof t.$ref==`string`&&(t.$ref===`#`||t.$ref.startsWith(`#/`))){let o=i(e,t.$ref);!n(o)&&typeof o!=`boolean`&&r.addIssue({code:`custom`,path:[...a,`$ref`],message:`Fragment schema reference must resolve to an existing object or boolean schema`})}}function m(e,t,n,r=[`dataSchema`]){Object.hasOwn(t,`$async`)&&t.$async!==!1&&n.addIssue({code:`custom`,path:[...r,`$async`],message:`Asynchronous artifact schemas are not supported`}),p(e,t,n,r);for(let e of[`anyOf`,`oneOf`]){let i=t[e];Array.isArray(i)&&i.some(e=>typeof e==`boolean`)&&n.addIssue({code:`custom`,path:[...r,e],message:`Unsupported boolean union alternative: use object schema declarations`})}Array.isArray(t.allOf)&&(f(e,t)||!c(e,t,new Set))&&n.addIssue({code:`custom`,path:[...r,`allOf`],message:`Unsupported intersection: use open compatible conjuncts or a single closed object schema`});for(let i of u(t))m(e,i.node,n,[...r,...i.path])}function h(e,t){m(e.dataSchema,e.dataSchema,t);let n=l(e.dataSchema,e.dataSchema,e.titlePath.split(`.`),!0);(!n?.length||n.some(e=>e.type!==`string`))&&t.addIssue({code:`custom`,path:[`titlePath`],message:`titlePath must select a required string in every data schema variant`});let r=[...(e.indexedFields??[]).map((e,t)=>({path:e,location:[`indexedFields`,t]})),...(e.searchableFields??[]).map((e,t)=>({path:e,location:[`searchableFields`,t]})),...(e.uniqueness??[]).flatMap((e,t)=>e.by.flatMap((e,n)=>e.kind===`data`?[{path:e.path,location:[`uniqueness`,t,`by`,n,`path`]}]:[]))];for(let{path:n,location:i}of r)l(e.dataSchema,e.dataSchema,n.split(`.`),!1)||t.addIssue({code:`custom`,path:i,message:`Data path ${n} must select a declared field`})}function g(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n)||!Object.hasOwn(n,e))throw Error(`Artifact title is missing at ${t}`);n=Reflect.get(n,e)}if(typeof n!=`string`||n.trim().length===0)throw Error(`Artifact title at ${t} must be a nonblank string`);return n}const _=t.number().int().positive(),v=t.enum([`knowledge`,`commitment`,`interaction`,`record`]),y=t.string().regex(/^[A-Za-z_$][\w$-]*(?:\.[A-Za-z_$][\w$-]*)*$/),b={knowledge:[`valid`,`retired`],commitment:[`proposed`,`decided`,`fulfilled`,`revoked`],interaction:[`open`,`resolved`,`closed-without-resolution`],record:[]},x=t.enum([...b.knowledge,...b.commitment,...b.interaction]),S=t.strictObject({relationType:t.string().trim().min(1),targetKinds:t.array(t.string().trim().min(1)).min(1).optional(),minItems:t.number().int().nonnegative(),maxItems:t.number().int().nonnegative().optional()}).refine(e=>e.maxItems===void 0||e.maxItems>=e.minItems,{path:[`maxItems`],message:`maxItems must be at least minItems`}),C=t.discriminatedUnion(`kind`,[t.strictObject({kind:t.literal(`data`),path:y}),t.strictObject({kind:t.literal(`relation-target`),relationType:t.string().trim().min(1)})]),w=t.strictObject({by:t.array(C).min(1),lifecycleStates:t.array(x).min(1).optional()}),T=t.strictObject({minItems:t.number().int().nonnegative()}),E=t.enum([`http://json-schema.org/draft-07/schema#`,`https://json-schema.org/draft/2020-12/schema`]).optional(),D=t.strictObject({kind:t.string().trim().min(1),description:t.string().trim().min(1),schemaVersion:_,category:v,dataSchema:e,titlePath:y,relations:t.array(S).optional(),uniqueness:t.array(w).optional(),evidenceRequirements:T.optional(),indexedFields:t.array(y).optional(),searchableFields:t.array(y).optional()}).superRefine((e,t)=>{E.safeParse(e.dataSchema.$schema).success||t.addIssue({code:`custom`,path:[`dataSchema`,`$schema`],message:`Unsupported data schema dialect: omit $schema for draft-7 or declare the supported draft-7 or 2020-12 URI`});let n=b[e.category];e.uniqueness?.forEach((r,i)=>{r.lifecycleStates?.some(e=>!n.includes(e))&&t.addIssue({code:`custom`,path:[`uniqueness`,i,`lifecycleStates`],message:`Lifecycle conditions are incompatible with category ${e.category}`})}),h(e,t)});export{D as a,_ as c,d,g as f,T as i,w as l,v as n,x as o,y as r,S as s,b as t,C as u};
|