@makaio/framework 1.0.0-dev-1789609124644 → 1.0.0-dev-1790066089222
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/{adapter-C4v_gNTI.mjs → adapter-DSRgsh2d.mjs} +1 -1
- package/dist/adapter-subsystem/index.d.mts +15 -7
- package/dist/adapter-subsystem/index.mjs +1 -1
- package/dist/adapters/claude/index.mjs +3 -3
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/node.d.mts +1 -1
- package/dist/{attempt-record-codec-DaQ3WHUs.mjs → attempt-record-codec-DXpdMgyI.mjs} +1 -1
- package/dist/bus/index.d.mts +120 -8
- package/dist/bus/index.mjs +1 -1
- package/dist/bus-ceMF9rsq.mjs +9 -0
- package/dist/client-DWSwtFyI.mjs +1 -0
- package/dist/clients/index.d.mts +179 -12
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +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-pUF4IO462.mjs → code-execution-DWSux6k1.mjs} +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -2
- 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/client/index.d.mts +3 -3
- package/dist/contracts/client/index.mjs +1 -1
- 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 +2 -47
- package/dist/contracts/context-projection/index.d.mts +232 -0
- package/dist/contracts/context-projection/index.mjs +1 -0
- package/dist/contracts/extension/index.d.mts +6 -6
- 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 +43 -43
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +2 -2
- 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 +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- 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 +2 -2
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/{contribution-DDbHzCPF.d.mts → contribution-1GL7Rjaq.d.mts} +2 -2
- package/dist/credential-ref-w4ZYpYW0.d.mts +49 -0
- package/dist/{definition-CuaBQyde.d.mts → definition-DeIGoROj.d.mts} +1 -1
- package/dist/{descriptor-to-package-Dw8dnl5E.mjs → descriptor-to-package-BPIArq6N.mjs} +1 -1
- package/dist/{detached-extension-handle-DN3aqLyq.mjs → detached-extension-handle-W5_yfCyE.mjs} +1 -1
- package/dist/drizzle/0040_session_generation.sql +1 -0
- package/dist/drizzle/0041_session_principal_owner.sql +1 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/{execution-attempt-owner-recovery-CE_rvHKE.mjs → execution-attempt-owner-recovery-BZOEVYFH.mjs} +1 -1
- package/dist/extension-C6ANjR33.mjs +1 -0
- package/dist/{extension-context-BH31eOMv.d.mts → extension-context-pQ7Uio_s.d.mts} +44 -1
- package/dist/{extension-discovery-CA2IhDRo.d.mts → extension-discovery-Rup-gANp.d.mts} +114 -15
- package/dist/extension-kOwzAMud.mjs +1 -0
- package/dist/extension-namespace-CeRpt6C8.mjs +1 -0
- package/dist/{framework-packages-Bg4edkkM.mjs → framework-packages-U4Xhouxe.mjs} +1 -1
- package/dist/{hook-responses-Dq16X3Cb.d.mts → hook-responses-B882RcQc.d.mts} +48 -5
- package/dist/{index-Dm3d490n.d.mts → index-B2bxgKiK.d.mts} +1 -1
- package/dist/{index-7CVumCjj.d.mts → index-BTpkpHIS.d.mts} +65 -9
- package/dist/{index-Bh57xARQ.d.mts → index-BUv9gfRT.d.mts} +3 -3
- package/dist/{index-C6e9cwAl2.d.mts → index-BjQtqMxP2.d.mts} +4 -4
- package/dist/{index-B-u0Tu8X.d.mts → index-Bqi44ODz.d.mts} +37 -37
- package/dist/{index-CIzvBH8O.d.mts → index-C8two8wz.d.mts} +1 -1
- package/dist/{index-oxZt93RL.d.mts → index-CESqYf8a.d.mts} +2 -2
- package/dist/{index-C87P0WpY2.d.mts → index-CmCLAMNs.d.mts} +1 -1
- package/dist/index-CyEE1RI5.d.mts +869 -0
- package/dist/{index-De_oh9M-2.d.mts → index-D6Uq1btG.d.mts} +87 -10
- package/dist/{index-CRZ1jrxp.d.mts → index-DDSt0uS2.d.mts} +160 -12
- package/dist/{index-B6WkHnCQ.d.mts → index-DRxgmrad.d.mts} +1 -1
- package/dist/{index-U--ajOHy.d.mts → index-DUYjTfHD.d.mts} +1 -1
- package/dist/{index-HJkz7i4E.d.mts → index-DdJKsdya.d.mts} +188 -10
- package/dist/{index-B4pPwpKk.d.mts → index-DfREUyAk.d.mts} +1 -1
- package/dist/{index-ClKwF6LE.d.mts → index-Di-R1gmo.d.mts} +2 -2
- package/dist/{index-DWANFpTG.d.mts → index-Jdju2W3y.d.mts} +1 -1
- package/dist/{index-DQKVQPUS.d.mts → index-L6mssyeZ.d.mts} +1 -1
- package/dist/{index-B8v1-2-V2.d.mts → index-anIxF_eT.d.mts} +1 -1
- package/dist/{index-iVisrVdC2.d.mts → index-bYBnDBl32.d.mts} +539 -4
- package/dist/{index-Bg3WVL8n.d.mts → index-gNdH1F6r.d.mts} +531 -26
- package/dist/{index-zmDRR8gv2.d.mts → index-m5ZQFglW2.d.mts} +1 -1
- package/dist/{index-mTaFX2HH2.d.mts → index-uk8icWON2.d.mts} +419 -19
- 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 +3 -2
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +6 -6
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/observability/index.d.mts +2 -2
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/{lib-BF5XBSfw.mjs → lib-BdyGVjpO.mjs} +1 -1
- package/dist/{lib-Dljw2Cqh.mjs → lib-DxP3tPm9.mjs} +1 -1
- package/dist/load-extensions-BGfSWW_R.mjs +1 -0
- package/dist/{load-extensions-DGstT4_p.d.mts → load-extensions-Be_lOjm_.d.mts} +27 -14
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/{namespace-BMdYJN_t.mjs → namespace-CqJhR19O.mjs} +1 -1
- package/dist/{namespace-Cmu-5_P9.d.mts → namespace-DudchWPb.d.mts} +457 -0
- package/dist/{namespace-BEbQb19g.d.mts → namespace-Eir1wQ_r.d.mts} +2 -2
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/transports/index.d.mts +102 -4
- package/dist/node/transports/index.mjs +2 -2
- package/dist/{orchestrator-shared-CtPB6PAr.mjs → orchestrator-shared-CF-jPH91.mjs} +1 -1
- package/dist/ownership-memory-handler-C-y9zQf8.mjs +1 -0
- package/dist/package-AlsbnlSt.mjs +159 -0
- package/dist/{package-CDj3F-L3.d.mts → package-CwyC-Krg.d.mts} +1 -1
- package/dist/{package-DYScYC0D.mjs → package-kkPGlxMm.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/{registry-DNMjJ-Oj.mjs → registry-DtaRGU8i.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.d.mts +2 -2
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/boot-config.d.mts +45 -0
- package/dist/runtime-node/boot-config.mjs +1 -0
- 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 +2 -2
- package/dist/runtime-node/extension-discovery.mjs +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 +345 -27
- package/dist/runtime-node/index.mjs +21 -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-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-BA1cHBbc.d.mts → schema-FY0EakKe.d.mts} +56 -0
- package/dist/schemas-CkxAK13D.mjs +1 -0
- package/dist/{schemas-CaYEFzK_.d.mts → schemas-FgVQek-j.d.mts} +2 -2
- 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.d.mts +19 -0
- package/dist/services/capability/index.d.mts +2 -2
- package/dist/services/code-execution/index.d.mts +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-projection/index.d.mts +94 -0
- package/dist/services/context-projection/index.mjs +1 -0
- package/dist/services/context-rules/index.d.mts +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- 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/index.d.mts +45 -40
- 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/materialization/index.d.mts +1 -1
- package/dist/services/model-registry/index.d.mts +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/session/handlers/index.d.mts +1 -1
- package/dist/services/session/index.d.mts +9 -9
- package/dist/services/session/index.mjs +1 -1
- 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/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.mjs +4 -2
- 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 +232 -3
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent-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/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/workflow-transitions/index.d.mts +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/session-BNiMZnfF.mjs +1 -0
- package/dist/session-CMbztxNO.mjs +95 -0
- package/dist/src-BZdw54VU.mjs +1 -0
- package/dist/{src-CbAw9kjJ.mjs → src-C0sw_Vs_.mjs} +1 -1
- package/dist/{src-Xn6SS74f.mjs → src-CqQSqLQI.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/index.d.mts +1 -1
- package/dist/{tool-approval-service-pbkGcAV8.mjs → tool-approval-service-CRo3fZRF.mjs} +1 -1
- package/dist/{tools-C5Gy0IQG.mjs → tools-CKaxi3Mb.mjs} +1 -1
- package/dist/{transition-D-Lgbp1j.d.mts → transition-DMv8cgEd.d.mts} +2 -2
- package/dist/{types-CjYcHDPo2.d.mts → types-7L3BrU9m2.d.mts} +1 -1
- package/dist/{types-DhbllltK.d.mts → types-DNYO_Rxj.d.mts} +12 -3
- package/dist/ui-hooks/index.d.mts +17 -24
- package/dist/ui-hooks/index.mjs +1 -1
- package/dist/ui-kernel/index.d.mts +11 -2
- package/dist/ui-kernel/index.mjs +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/ui-views/index.mjs +1 -1
- package/dist/utils/index.d.mts +31 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/{view-builder-CHUTXJDl.d.mts → view-builder-DJGz9I-u.d.mts} +2 -2
- package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
- package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
- package/dist/workflow-engine/index.d.mts +2 -2
- 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 +1 -1
- package/dist/workflow-engine/testing/conformance.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.mjs +1 -1
- package/dist/workflow-engine/testing/index.d.mts +1 -1
- 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 +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-transitions-C0sg3kar.mjs → workflow-transitions-t0ORS1F5.mjs} +1 -1
- package/dist/workflow-worker-DXCXb3g-.mjs +3 -0
- package/package.json +9 -1
- package/dist/bus-BQ64i3DN.mjs +0 -9
- package/dist/client-Bg3_IdaF.mjs +0 -1
- package/dist/extension-CfrTp3rC.mjs +0 -1
- package/dist/extension-CnNcY1hR.mjs +0 -1
- package/dist/extension-namespace-Ct9L6SKr.mjs +0 -1
- package/dist/index-D_j_T3nS.d.mts +0 -435
- package/dist/load-extensions-BVgxTj_y.mjs +0 -1
- package/dist/ownership-memory-handler-xex7sLiX.mjs +0 -1
- package/dist/schemas-ClkcU_N5.mjs +0 -1
- package/dist/session-6UG5udTX.mjs +0 -95
- package/dist/session-BB0s7c2B.mjs +0 -1
- package/dist/workflow-worker-ChrMIcKm.mjs +0 -2
- /package/dist/{adapter-binding-BxjUfkOn.d.mts → adapter-binding-CaYBrIkL.d.mts} +0 -0
- /package/dist/{attempt-control-evidence-7lwRG73Y.mjs → attempt-control-evidence-CHBnJoqN.mjs} +0 -0
- /package/dist/{attempt-fixtures-DHdYmr3o.mjs → attempt-fixtures-D3IsP0KH.mjs} +0 -0
- /package/dist/{authority-state-bootstrap-CvuWPywM.mjs → authority-state-bootstrap-4F5Wc_6l.mjs} +0 -0
- /package/dist/{base-orchestrator-CrXiMJzf.d.mts → base-orchestrator-1ofFsqUz.d.mts} +0 -0
- /package/dist/{bootstrap-start-client-C1ZHbv6e.mjs → bootstrap-start-client-9nOdeDYl.mjs} +0 -0
- /package/dist/{capability-service-CQ1aw_p-.d.mts → capability-service-CUN0MIS7.d.mts} +0 -0
- /package/dist/{client-ByjHcS78.d.mts → client-BY3sBW2L.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-C4fEAUdo.d.mts → client-binary-version-verifier-BeO4Eptw.d.mts} +0 -0
- /package/dist/{clients-namespace-D4BxF2Nw.d.mts → clients-namespace-D92YsbKI.d.mts} +0 -0
- /package/dist/{config-namespace-B1zyOYwH.d.mts → config-namespace-OEckUfVE.d.mts} +0 -0
- /package/dist/{create-static-mount-Dgxgi4W3.mjs → create-static-mount-4B-mNtx1.mjs} +0 -0
- /package/dist/{cross-spawn-BMCAyqrN.mjs → cross-spawn-DGqEuNyT.mjs} +0 -0
- /package/dist/{definition-ClWxAKQ2.d.mts → definition-DLJg-P4G.d.mts} +0 -0
- /package/dist/{esm-Ccx-3z8E.mjs → esm-DwiWcwH0.mjs} +0 -0
- /package/dist/{execution-attempt-repository-aabFKcXN.mjs → execution-attempt-repository-CY289HlC.mjs} +0 -0
- /package/dist/{execution-attempt-repository-BUah8hma.d.mts → execution-attempt-repository-DOb5V4N2.d.mts} +0 -0
- /package/dist/{extension-package-provenance-C7oO5JAE.mjs → extension-package-provenance-ClpN3GHp.mjs} +0 -0
- /package/dist/{filesystem-service-CDYoiwWY.d.mts → filesystem-service-BmavE-uO.d.mts} +0 -0
- /package/dist/{index-BbkcbY6d.d.mts → index--gbsE1W0.d.mts} +0 -0
- /package/dist/{index-DdVpWkaI.d.mts → index-B36rL4gp.d.mts} +0 -0
- /package/dist/{index-DM72_93s.d.mts → index-BD1SbHpP.d.mts} +0 -0
- /package/dist/{index-KdlZRuTp.d.mts → index-BDcK7jqJ2.d.mts} +0 -0
- /package/dist/{index-DAaQ--ki.d.mts → index-BQYGOXY5.d.mts} +0 -0
- /package/dist/{index-gAyARaKS.d.mts → index-BneZFJ7x.d.mts} +0 -0
- /package/dist/{index-D8ELwT5y.d.mts → index-BujgCaKt.d.mts} +0 -0
- /package/dist/{index-DfU8s_xP.d.mts → index-C2StVLk4.d.mts} +0 -0
- /package/dist/{index-BGnQ0EyD.d.mts → index-CCTzitBA.d.mts} +0 -0
- /package/dist/{index-CVRT01082.d.mts → index-Cj_V1aRL.d.mts} +0 -0
- /package/dist/{index-nkix3hP7.d.mts → index-CpN2C9jq.d.mts} +0 -0
- /package/dist/{index-D6p17KPs.d.mts → index-CsRPJ9FV.d.mts} +0 -0
- /package/dist/{index-BPNfYEA22.d.mts → index-CvdvuhTL2.d.mts} +0 -0
- /package/dist/{index-DmX9W3xH2.d.mts → index-D3peNmHN2.d.mts} +0 -0
- /package/dist/{index-DiZ4LmyE.d.mts → index-D7smT-YD.d.mts} +0 -0
- /package/dist/{index-B78CRVi9.d.mts → index-DEx4ZFkz.d.mts} +0 -0
- /package/dist/{index-CjDQn6lw.d.mts → index-DGoJayJg.d.mts} +0 -0
- /package/dist/{index-F7cVpFJ9.d.mts → index-DTvYp2GT.d.mts} +0 -0
- /package/dist/{index-Htfr-K5U2.d.mts → index-DqliLe_D2.d.mts} +0 -0
- /package/dist/{index-BCU5oByg.d.mts → index-DubyRZD9.d.mts} +0 -0
- /package/dist/{index-DjSUOMlr.d.mts → index-DwOpaQAE.d.mts} +0 -0
- /package/dist/{index-BZoOYV-y.d.mts → index-DxkSkszz.d.mts} +0 -0
- /package/dist/{index-tbjIqwa3.d.mts → index-TBJ1kIGA.d.mts} +0 -0
- /package/dist/{index-DXQTkwLB.d.mts → index-YOXWpZAS.d.mts} +0 -0
- /package/dist/{index-CXpgL3gz2.d.mts → index-aIJ7A4DC2.d.mts} +0 -0
- /package/dist/{index-D6liU_KS.d.mts → index-fxh7TB0q.d.mts} +0 -0
- /package/dist/{index-xsaaa85T.d.mts → index-qczb9Yx3.d.mts} +0 -0
- /package/dist/{index-C_kOkO3E.d.mts → index-zqo2mX_Z.d.mts} +0 -0
- /package/dist/{json-value-Ymw2f8i_.d.mts → json-value-Bjl8jzom.d.mts} +0 -0
- /package/dist/{jsonl-transport-Bg033Ng0.mjs → jsonl-transport-Ct1RWs0h.mjs} +0 -0
- /package/dist/{lib-BizqbepU.mjs → lib-DomKag_k.mjs} +0 -0
- /package/dist/{namespace-rJ3ycPMg.d.mts → namespace-Bhx72V7S.d.mts} +0 -0
- /package/dist/{namespace-BCVKdu-U.d.mts → namespace-CxEQv9iZ.d.mts} +0 -0
- /package/dist/{namespace-COHHDh2I.d.mts → namespace-D09uQ231.d.mts} +0 -0
- /package/dist/{namespace-UFcDEBJB.d.mts → namespace-D5DkpaaN.d.mts} +0 -0
- /package/dist/{namespace-CvK86QFk.d.mts → namespace-DHLwz4o3.d.mts} +0 -0
- /package/dist/{namespace-B5IFLQc-.d.mts → namespace-DHbrNQYD.d.mts} +0 -0
- /package/dist/{namespace-s0e215xO.d.mts → namespace-DyD06b5-.d.mts} +0 -0
- /package/dist/{namespace-C1pPZKtI.d.mts → namespace-Dz5_Hrz7.d.mts} +0 -0
- /package/dist/{namespace-Phxf0Lep.d.mts → namespace-Lkv2nyzb.d.mts} +0 -0
- /package/dist/{namespace-DM5vykb7.d.mts → namespace-hlhPqSsw.d.mts} +0 -0
- /package/dist/{namespace-DlOQmhgX.d.mts → namespace-x-gk5SmK.d.mts} +0 -0
- /package/dist/{namespace-f6Kz5cwX.d.mts → namespace-zusFEJPh.d.mts} +0 -0
- /package/dist/{orchestrator-shared--srEeSaY.d.mts → orchestrator-shared-ChU5qRSe.d.mts} +0 -0
- /package/dist/{packages-B98-WETs.d.mts → packages-D2s51nGU.d.mts} +0 -0
- /package/dist/{providers-namespace-DRcl03bo.d.mts → providers-namespace-BLVt8OyP.d.mts} +0 -0
- /package/dist/{runtime-inputs-DBtVIy9h.d.mts → runtime-inputs-BU_kBrP7.d.mts} +0 -0
- /package/dist/{schemas-CEJe8O6P.d.mts → schemas-3KTmPuZg.d.mts} +0 -0
- /package/dist/{schemas-D_-iXLQ9.d.mts → schemas-B-5_Dp4_.d.mts} +0 -0
- /package/dist/{schemas-CeItAAQM.d.mts → schemas-BLxdGZkr.d.mts} +0 -0
- /package/dist/{schemas-Cj6Gbqch.d.mts → schemas-BegArpU_.d.mts} +0 -0
- /package/dist/{schemas-Ca5RILd-2.d.mts → schemas-BzB6z9oX2.d.mts} +0 -0
- /package/dist/{schemas-CtzZDp29.d.mts → schemas-CBBzvIh0.d.mts} +0 -0
- /package/dist/{schemas-Cq1d5tid.d.mts → schemas-CD3Mq-jC.d.mts} +0 -0
- /package/dist/{schemas-LiiyNNpr.d.mts → schemas-Cl7fPlRv.d.mts} +0 -0
- /package/dist/{schemas-DJ2vMsgm.d.mts → schemas-CqawCYTY.d.mts} +0 -0
- /package/dist/{schemas-2_D4iVbb.d.mts → schemas-DEg6R9ph.d.mts} +0 -0
- /package/dist/{schemas-JjyFxrC0.d.mts → schemas-rMUsvzeJ.d.mts} +0 -0
- /package/dist/{server-lifecycle-DUKp1Fbf.d.mts → server-lifecycle-CTJvpdeL.d.mts} +0 -0
- /package/dist/{session-lineage-C3myyt5x.d.mts → session-lineage-BuGN3RZs.d.mts} +0 -0
- /package/dist/{storage-namespace-IvLOIP7j.d.mts → storage-namespace-B5r_ScUz.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-Cv0XiTXb.d.mts → storage-namespace-definition-DiYr8UNl.d.mts} +0 -0
- /package/dist/{types-hkExapGH.d.mts → types-BSx8YYlc.d.mts} +0 -0
- /package/dist/{types-BYEybzjX.d.mts → types-CpEoQapk.d.mts} +0 -0
- /package/dist/{types-QRSc2AUU.d.mts → types-Cuhnt15L.d.mts} +0 -0
- /package/dist/{types-QsyX4H21.d.mts → types-DEGuc-fn.d.mts} +0 -0
- /package/dist/{types-BRM1AZaP.d.mts → types-DciLiPMd.d.mts} +0 -0
- /package/dist/{types-CsmvIK25.mjs → types-wwuw7RkB.mjs} +0 -0
- /package/dist/{window-registry-DeG37kt8.d.mts → window-registry-C3W2wtlX.d.mts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e,t}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as n}from"./services/session/storage/namespace.mjs";import{SessionOwnershipSettleMovementRequestSchema as r,SessionOwnershipStorageSubjects as i,SessionStorageSetRequestSchema as a,SessionStorageUpdateSchema as o,SessionSubjects as s,resolveResumableAdapterSessionId as c}from"@makaio/framework/contracts";import{isInactiveSafeLeadDesignationMutation as l,normalizeSessionOwnershipClaimRequest as u}from"@makaio/framework/contracts/session";function d(){return{sessions:new Map,sessionOwnerPrincipalIds:new Map,agents:new Map,claims:new Map,runtimeInstances:new Map}}function f(e,t){for(let[n,r]of e.claims)t(r)&&e.claims.delete(n)}function ee(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function p(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function m(e,t,n){let r=ee(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(s.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function h(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function g(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function _(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}function v(e){return e.activation===`live`?`active`:`discovered`}const y=_();function te(e,t){return e===`imported`||t===`imported`?`imported`:e===`tracking`||t===`tracking`?`tracking`:e??t??`discovered`}function b(e,t,n){n!==void 0&&(e[t]=n)}function ne(e){return e.status===`closed`||e.status===`archived`||e.status===`active`&&e.isImported===!0}function re(e,t,n){if(!ne(e)){if(n===`live`){e.status===`discovered`&&(e.status=`active`);return}t===`discovered`&&(e.status=`discovered`)}}function x(e,t,n){let r=e.startedAt??n,i=h(e.kind);return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:v(e),branchKind:i,generation:0,adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:e.importStatus??`discovered`,forkPointMessageId:e.forkPointMessageId??void 0,metadata:e.metadata,lastClientIdentityObservation:e.lastClientIdentityObservation,isSidechain:e.isSidechain,machineId:e.machineId??void 0}}function ie(e,t,n){let r=te(e.importStatus,t.importStatus);re(e,r,t.activation),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function ae(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),e.forkPointMessageId===void 0&&t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),e.parentExternalSessionId===void 0&&t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=h(t.kind);n!==void 0&&e.branchKind===void 0&&(e.branchKind=n),b(e,`adapterId`,t.adapterId),b(e,`clientId`,t.clientId),t.metadata!==void 0&&(e.metadata={...t.metadata,...e.metadata??{}}),b(e,`isSidechain`,t.isSidechain),b(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),t.machineId===null?e.machineId=void 0:t.machineId!==void 0&&(e.machineId??=t.machineId)}function oe(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function se(e,t,n){let r=e.discoveredAt;ie(e,t,n),ae(e,t),oe(e,t,r)}function S(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function C(e,t,n){if(n){e.emit(s.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(s.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function ce(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function w(e,t,n){return Array.from(e.values()).find(e=>e.adapterSessionId===n&&e.source===t)}function le(e,t){let n=[];return t.cwd!==void 0&&(e.targetWorkingDirectory=t.cwd,n.push(`targetWorkingDirectory`)),t.logFilePath!==void 0&&(e.logFilePath=t.logFilePath,n.push(`logFilePath`)),t.machineId!==void 0&&(e.machineId=t.machineId??void 0,n.push(`machineId`)),t.startMode===`compact`&&(e.generation=(e.generation??0)+1,n.push(`generation`)),n}function ue(e,t,n){e.emit(s.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(s.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function de(e,t){return e.on(n.rebindObserved,n=>{let r=n.payload,i=w(t,r.source,r.externalSessionId);if(!i){n.setResult({outcome:`not-found`});return}let a=le(i,r);n.setResult({outcome:`rebound`,sessionId:i.sessionId}),a.length>0&&e.emit(s.updated,{sessionId:i.sessionId,changedProperties:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}function fe(e,t,r){return e.on(n.registerOwnedImport,n=>{let i=structuredClone(n.payload),a=w(t,i.import.source,i.import.externalSessionId);if(a){let e=r.get(a.sessionId);e===void 0?n.setResult({outcome:`unowned`}):e===i.ownerPrincipalId?n.setResult({outcome:`owned`,sessionId:a.sessionId}):n.setResult({outcome:`foreign`});return}let o=x(i.import,crypto.randomUUID(),y());t.set(o.sessionId,o),r.set(o.sessionId,i.ownerPrincipalId),S(t,o),C(e,o,!0),n.setResult({outcome:`created`,sessionId:o.sessionId})})}function pe(e,t,r){return e.on(n.verifyOwner,e=>{let n=t.get(e.payload.sessionId);if(!n){e.setResult({outcome:`missing`});return}let i=r.get(n.sessionId);i===void 0?e.setResult({outcome:`unowned`}):i===e.payload.ownerPrincipalId?e.setResult({outcome:`owned`}):e.setResult({outcome:`foreign`})})}function me(e){let{bus:t,store:r,sessionOwnerPrincipalIds:i,cloneSession:a,populateAgents:o}=e;return[t.on(n.importUpsert,e=>{let n=structuredClone(e.payload),i=w(r,n.source,n.externalSessionId),a=y(),o=i===void 0,s=i??x(n,crypto.randomUUID(),a);i?(se(i,n,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&S(r,i)):(r.set(s.sessionId,s),S(r,s)),C(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),fe(t,r,i),pe(t,r,i),de(t,r),t.on(n.getByLogFilePath,async e=>{let n=Array.from(r.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!n){e.setResult({session:null});return}let i=await o(t,n.sessionId);e.setResult({session:{...a(n),agents:i}})}),t.on(n.listImported,async e=>{let{source:n,importStatus:i}=e.payload,s=Array.from(r.values()).filter(e=>e.isImported===!0).filter(e=>n===void 0||e.source===n).filter(e=>i===void 0||e.importStatus===i).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...a(e),agents:await o(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(n.countBySource,e=>{let t=Array.from(r.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(ce(t))}),t.on(n.updateImportStatus,e=>{let n=r.get(e.payload.sessionId),i=e.payload.importStatus;if(!n||n.importStatus===i){e.setResult({success:!1});return}n.importStatus=i,i===`imported`&&n.status===`discovered`&&(n.status=`active`),e.setResult({success:!0}),ue(t,n,i)})]}function T(e,t){e.emit(s.updated,{sessionId:t,changedProperties:[`generation`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function E(e,t){let n=t.expectIdentityOpenForLead;return n===void 0?!1:e.adapterName!==void 0||e.adapterId!==void 0?!0:(e.leadAgentId??null)!==n}function D(e,t){let n=t.reconcileAdapterSession;if(n===void 0)return!1;if(e.adapterSessionId!==void 0||e.leadAgentId!==n.agentId)return!0;let r=e.adapterName===void 0&&e.adapterId===void 0,i=e.adapterName===n.adapterName&&e.adapterId===n.adapterId;return!r&&!i}async function O(t,n){let r=await t.requestOptional(e.listBySession,{sessionId:n});return r.handled?r.data.agents:[]}function k(e){return structuredClone(e)}function A(e,t,n){n!==void 0&&(e[t]=n)}function j(e,t,n){n!==void 0&&(e[t]=n??void 0)}function he(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function M(e,t){e.currentAdapterSessionId=t?.currentAdapterSessionId,e.currentAdapterSessionIdState=t?.currentAdapterSessionIdState??`inherited`,t!==null&&(e.leadAgentId=t.leadAgentId),e.generation=t?.generation??e.generation??0}function N(e,t){A(e,`status`,t.status),t.parentSessionId!==void 0&&(e.parentSessionId=t.parentSessionId??void 0),A(e,`contextInheritance`,t.contextInheritance),A(e,`rootSessionId`,t.rootSessionId),A(e,`forkPointMessageId`,t.forkPointMessageId),A(e,`branchKind`,t.branchKind),A(e,`isOrchestrated`,t.isOrchestrated),A(e,`clientId`,t.clientId),A(e,`clientAccountId`,t.clientAccountId),A(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),A(e,`title`,t.title),A(e,`targetWorkingDirectory`,t.targetWorkingDirectory),A(e,`createdAt`,t.createdAt),A(e,`lastActivityAt`,t.lastActivityAt),A(e,`machineId`,t.machineId),t.identity!==void 0&&(e.adapterName=t.identity.adapterName,e.adapterId=t.identity.adapterId,A(e,`adapterSessionId`,t.identity.adapterSessionId)),t.reconcileAdapterSession!==void 0&&(e.adapterName=t.reconcileAdapterSession.adapterName,e.adapterId=t.reconcileAdapterSession.adapterId,e.adapterSessionId=t.reconcileAdapterSession.adapterSessionId,e.lastActivityAt=t.reconcileAdapterSession.lastActivityAt),j(e,`executionTargetId`,t.executionTargetId),j(e,`approvalPolicyOverride`,t.approvalPolicyOverride),j(e,`metadata`,t.metadata),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId),t.advanceGeneration===!0&&(e.generation=(e.generation??0)+1)}function P(e,t){return e.on(n.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=he(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...k(t),agents:await O(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function F(e,t){return e.on(n.update,async n=>{let r=structuredClone(o.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}if(r.expectedStatus!==void 0&&!r.expectedStatus.includes(i.status)){n.setResult({success:!1,clientAccountChanged:!1});return}if(E(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}if(D(i,r)){n.setResult({success:!1,clientAccountChanged:!1});return}let a=k(i);p(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),N(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),m(e,a,k(i)),r.advanceGeneration===!0&&T(e,r.sessionId)})}function I(e,t=d()){let r=t.sessions,i=[];return i.push(e.on(n.get,async t=>{let n=r.get(t.payload.sessionId);if(!n){t.setResult({session:null});return}let i=await O(e,t.payload.sessionId);t.setResult({session:{...k(n),agents:i}})})),i.push(e.on(n.set,async t=>{let{sessionId:n,session:i,ifAbsent:o}=a.parse(t.payload);if(o&&r.has(n)){t.setResult({success:!1,clientAccountChanged:!1});return}let s=structuredClone(i),c=r.get(n)??null,l=c?k(c):null;M(s,l),p(c,s),r.set(n,s),t.setResult({success:!0,clientAccountChanged:(l?.clientAccountId??null)!==(s.clientAccountId??null)}),m(e,l,k(s))})),i.push(e.on(n.delete,async e=>{let n=new Set;for(let[r,i]of t.agents)i.sessionId===e.payload.sessionId&&(n.add(r),t.agents.delete(r));f(t,t=>t.sessionId===e.payload.sessionId||n.has(t.agentId)),t.sessionOwnerPrincipalIds.delete(e.payload.sessionId),r.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),i.push(P(e,r)),i.push(e.on(n.getChildren,e=>{let{sessionId:t}=e.payload,n=Array.from(r.values()),i=n.filter(e=>e.parentSessionId===t),a=new Set(n.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),i.push(e.on(n.getStatusCounts,e=>{e.payload;let t=Array.from(r.values()),n=t.filter(e=>e.status===`active`).length,i=t.filter(e=>e.status===`closed`).length,a=t.filter(e=>e.status===`archived`).length,o=t.filter(e=>e.status===`discovered`).length;e.setResult({all:n+i+a+o,active:n,closed:i,archived:a,discovered:o})})),i.push(F(e,r)),i.push(L(e,r)),i.push(...me({bus:e,store:r,sessionOwnerPrincipalIds:t.sessionOwnerPrincipalIds,populateAgents:O,cloneSession:k})),()=>i.forEach(e=>e())}function L(t,r){return t.on(n.getByAdapterSessionId,async n=>{let{adapterSessionId:i,source:a,adapterName:o}=n.payload,s=Array.from(r.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===i&&(a===void 0||e.source===a)&&(o===void 0||e.adapterName===o)),c=s[0];if(s.length!==1||c===void 0){n.setResult({session:null});return}let l=await t.requestOptional(e.listBySession,{sessionId:c.sessionId}),u=l.handled?l.data.agents:[];n.setResult({session:{...k(c),agents:u}})})}function R(e){return structuredClone(e)}function ge(e,t){let{adapterId:n,runtimeOwner:r,adapterSessionId:i,cwd:a,model:o,allowedDirectories:s,providerConfigId:c}=t;return n===void 0&&r===void 0&&i===void 0&&a===void 0&&o===void 0&&s===void 0&&c===void 0?!1:(n!==void 0&&(e.adapterId=n),r!==void 0&&(e.runtimeOwner=structuredClone(r)),i!==void 0&&(e.adapterSessionId=i),a!==void 0&&(e.cwd=a),o!==void 0&&(e.model=o),s!==void 0&&(e.allowedDirectories=s),c===null?delete e.providerConfigId:c!==void 0&&(e.providerConfigId=c),!0)}function _e(e){return{status:e.status,recoveryAttemptId:e.recoveryAttemptId,adapterSessionId:e.adapterSessionId,runtimeOwner:structuredClone(e.runtimeOwner),currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function ve(e,t,n){let r=e.get(t),i=r===void 0?void 0:_e(r);e.set(t,{...structuredClone(n),status:i?.status===`disposed`?`disposed`:n.status,recoveryAttemptId:i===void 0?n.recoveryAttemptId:i.recoveryAttemptId,adapterSessionId:i===void 0?n.adapterSessionId:i.adapterSessionId,runtimeOwner:i===void 0?structuredClone(n.runtimeOwner):i.runtimeOwner,currentAdapterSessionId:i?.currentAdapterSessionId,currentAdapterSessionIdState:i?.currentAdapterSessionIdState??`inherited`,revision:i?.revision??0,currencyFence:i?.currencyFence??0})}function z(e,t,n){let r=e.get(t);return r===void 0?!1:n(r)}function ye(e,t,n,r){let i=e.get(t);return i===void 0?{success:!1,transitioned:!1}:i.status===`disposed`||r!==void 0&&!r.includes(i.status)?{success:!0,transitioned:!1}:(i.status=n,i.lastActivityAt=Date.now(),{success:!0,transitioned:!0})}function be(e,t){return f(e,e=>e.agentId===t),e.agents.delete(t)}function xe(t,n=d()){let r=n.agents,i=[];return i.push(t.on(e.get,e=>{let t=r.get(e.payload.agentId);e.setResult({agent:t===void 0?null:R(t)})})),i.push(t.on(e.set,e=>{ve(r,e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),i.push(t.on(e.delete,e=>{e.setResult({success:be(n,e.payload.agentId)})})),i.push(t.on(e.listByAdapter,e=>{let{adapterName:t,status:n}=e.payload,i=Array.from(r.values()).filter(e=>e.adapterName===t);n&&n!==`all`&&(i=i.filter(e=>e.status===n)),e.setResult({agents:i.map(R)})})),i.push(t.on(e.listBySession,e=>{let t=Array.from(r.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:t.map(R)})})),i.push(t.on(e.updateStatus,e=>{let{agentId:t,status:n,expectedStatus:i}=e.payload;e.setResult(ye(r,t,n,i))})),i.push(t.on(e.updateActivity,e=>{let t=z(r,e.payload.agentId,t=>(t.lastActivityAt=e.payload.lastActivityAt,!0));e.setResult({success:t})})),i.push(t.on(e.updateRuntime,e=>{let{agentId:t,adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=structuredClone(e.payload),u=z(r,t,e=>ge(e,{adapterId:n,runtimeOwner:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l})?(e.lastActivityAt=Date.now(),!0):!1);e.setResult({success:u})})),()=>i.forEach(e=>e())}function B(e,t,n,r){for(let i of e.values())if(i.machineId===t&&i.adapterId===n&&i.providerSessionId===r)return i}function V(e,t){for(let n of e.values())if(n.claimToken===t)return n}function Se(e,t){let n=0;for(let r of e.values())r.agentId===t&&r.fence>n&&(n=r.fence);return n}function H(e,t,n){let r=e.agents.get(t)?.currencyFence??0;return 1+Math.max(n,r,Se(e.claims,t))}function U(e,t){return`${e.length}:${e}${t}`}function W(e,t,n,r){let i=U(t,n),a=e.runtimeInstances.get(i);if(a!==void 0)return a;let o=1;for(let t of e.runtimeInstances.values())t.machineId===n&&t.incarnation>=o&&(o=t.incarnation+1);let s={instanceId:t,machineId:n,incarnation:o,startedAt:r,retiredAt:null};return e.runtimeInstances.set(i,structuredClone(s)),s}function G(e,t,n){if(n.ownerInstanceId===null)return!1;if(t.supersededClaimToken===n.claimToken||n.status===`held`&&n.agentId===t.agentId&&n.ownerInstanceId===t.ownerInstanceId)return!0;let r=e.runtimeInstances.get(U(n.ownerInstanceId,n.machineId));if(r?.retiredAt!==null&&r?.retiredAt!==void 0)return!0;if(t.topology===`machine-exclusive`){let n=e.runtimeInstances.get(U(t.ownerInstanceId,t.machineId));if(n!==void 0&&r!==void 0&&n.incarnation>r.incarnation)return!0}return!1}function K(e,t){let n=e.currentAdapterSessionIdState??`inherited`;if(n!==`inherited`)return{currentAdapterSessionId:e.currentAdapterSessionId,currentAdapterSessionIdState:n};let r=e.adapterSessionId??null;return r===t?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`inherited`}:r===null?{currentAdapterSessionId:void 0,currentAdapterSessionIdState:`moved`}:{currentAdapterSessionId:r,currentAdapterSessionIdState:`confirmed`}}function Ce(e,t){if(t===`confirmed`!=(e!==null))throw Error(`Currency pairing invariant violated: confirmed ↔ id !== null (state="${t}", id=${e===null?`null`:`present`})`)}function q(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState??`inherited`}}function J(e,t,n){if(t.recoveryGuard!==void 0&&e!==void 0&&(n.outcome===`claimed`||n.outcome===`idempotent`)){let r=t.recoveryAttemptId;if(r===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId`);let i={status:e.status,adapterId:e.adapterId,...e.runtimeOwner===void 0?{}:{binding:{adapterId:e.adapterId,ownerMachineId:e.runtimeOwner.machineId,ownerInstanceId:e.runtimeOwner.instanceId}},...e.recoveryAttemptId===void 0?{}:{recoveryAttemptId:e.recoveryAttemptId}};if(e.status=`starting`,e.adapterId=t.adapterId,t.ownerInstance===void 0)throw Error(`guarded recovery claim requires ownerInstance`);return e.runtimeOwner={machineId:t.machineId,instanceId:t.ownerInstance.instanceId},e.recoveryAttemptId=r,e.lastActivityAt=Date.now(),{...n,recovery:{attemptId:r,preimage:i}}}return n}function Y(e,t,n){let r=e.sessions.get(t.sessionId);if(r===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};if(r.status!==`active`&&(r.status!==`closed`||!l(t)))return{kind:`refused`,result:{outcome:`session-not-active`,status:r.status}};let i=r.leadAgentId??null,a=t.designateLead;if(a===void 0)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId;if(!o&&n.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};if(!o&&i===n.agentId)return{kind:`ok`,leadDesignated:!1,previousLeadAgentId:i};if(i!==a.expectedLeadAgentId)return{kind:`conflict`,currentLeadAgentId:i};if(r.leadAgentId=s??void 0,!o){let e=K(n,r.adapterSessionId??null);r.currentAdapterSessionId=e.currentAdapterSessionId,r.currentAdapterSessionIdState=e.currentAdapterSessionIdState}return{kind:`ok`,leadDesignated:!0,previousLeadAgentId:i}}function X(e,t,n){if(!e.sessions.has(t.sessionId))return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=e.agents.get(t.agentId);if(r===void 0||r.sessionId!==t.sessionId)return{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}};if(r.status===`disposed`)return{kind:`refused`,result:{outcome:`agent-disposed`}};let i=V(e.claims,t.claimToken);if(i!==void 0&&i.claimId!==n?.claimId)throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t.claimToken}" is already in use`);return{kind:`ok`,agent:r}}function Z(e,t,n){return{outcome:e,claim:t===null?null:structuredClone(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}function we(e,t){let n=X(e,t);if(n.kind===`refused`)return n.result;let r=Date.now(),i=crypto.randomUUID(),a={claimId:i,machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:t.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.claimToken,fence:H(e,t.agentId,0),status:`held`,claimedAt:r,updatedAt:r};e.claims.set(i,structuredClone(a));let o=Y(e,t,n.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.delete(i),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Te(e,t,n){let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Date.now(),a={...n,claimToken:t.claimToken,fence:H(e,t.agentId,n.fence),agentId:t.agentId,sessionId:t.sessionId,adapterName:t.adapterName,ownerInstanceId:t.ownerInstance.instanceId,status:`held`,claimedAt:i,updatedAt:i};e.claims.set(n.claimId,structuredClone(a));let o=Y(e,t,r.agent);return o.kind===`ok`?Z(`claimed`,a,o):(e.claims.set(n.claimId,structuredClone(n)),o.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:o.currentLeadAgentId}:o.result)}function Ee(e,t,n){if(n.status!==`held`)return{outcome:`already-claimed`,holder:structuredClone(n)};let r=X(e,t,n);if(r.kind===`refused`)return r.result;let i=Y(e,t,r.agent);return i.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.kind===`refused`?i.result:Z(`idempotent`,n,i)}function De(e,t){let n=e.agents.get(t.agentId);if(n===void 0||n.sessionId!==t.sessionId)return{outcome:`not-found`,missing:`agent`};if(n.status===`disposed`&&t.designateLead?.clear!==!0)return{outcome:`agent-disposed`};let r=Y(e,t,n);return r.kind===`conflict`?{outcome:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:r.kind===`refused`?r.result:Z(`claimed`,null,r)}function Oe(e,t,n,r,i){let a=t.ownerInstance;if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let o=U(a.instanceId,t.machineId),s=e.runtimeInstances.has(o);W(e,a.instanceId,t.machineId,Date.now());let c={...t,providerSessionId:n,ownerInstance:a};if(i===void 0){let n=we(e,c);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}if(i.claimToken===c.claimToken){if(i.agentId===c.agentId&&i.sessionId===c.sessionId){let n=Ee(e,c,i);return s||e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}if(G(e,{machineId:c.machineId,agentId:c.agentId,ownerInstanceId:c.ownerInstance.instanceId,topology:c.topology,supersededClaimToken:c.supersedes?.claimToken},i)){let n=Te(e,c,i);return!s&&n.outcome!==`claimed`&&e.runtimeInstances.delete(o),J(r,t,n)}return s||e.runtimeInstances.delete(o),{outcome:`already-claimed`,holder:structuredClone(i)}}function ke(e,t,n){let r=t.ownerInstance,i=t.recoveryGuard===void 0||r===void 0?void 0:U(r.instanceId,t.machineId),a=i===void 0||e.runtimeInstances.has(i);i!==void 0&&r!==void 0&&W(e,r.instanceId,t.machineId,Date.now());let o=De(e,t);return i!==void 0&&!a&&o.outcome!==`claimed`&&e.runtimeInstances.delete(i),J(n,t,o)}function Ae(e,n){let r=u(n),{providerSessionId:i}=r,a=e.agents.get(r.agentId),o=i===null?void 0:B(e.claims,r.machineId,r.adapterId,i);if(r.recoveryGuard!==void 0&&a!==void 0){let e=t(r,{status:a.status,adapterId:a.adapterId,runtimeOwner:a.runtimeOwner,recoveryAttemptId:a.recoveryAttemptId,revision:a.revision??0,currencyFence:a.currencyFence??0,currency:q(a)},o??null);if(e!==void 0)return e}return i===null?ke(e,r,a):Oe(e,r,i,a,o)}function je(e,t,n){let{agentId:r,claimToken:i,fence:a,expectedRevision:o,target:s}=n,c=t.revision??0,l=t.currencyFence??0;if(t.status===`disposed`)return{outcome:`agent-disposed`};let u=V(e.claims,i);if(u===void 0||u.agentId!==r||u.sessionId!==t.sessionId||u.status!==`held`||u.fence!==a)return{outcome:`not-owner`};if(a<l)return{outcome:`superseded`,currentFence:l};let d=q(t);if(d.currentAdapterSessionId===s.currentAdapterSessionId&&d.currentAdapterSessionIdState===s.currentAdapterSessionIdState&&l===a)return{outcome:`idempotent`,revision:c,currency:d,sessionSnapshotUpdated:!1};if(c!==o)return{outcome:`currency-changed`,revision:c,currency:d}}function Q(e,t,n){let r=je(e,t,n);if(r!==void 0)return r;let{agentId:i,fence:a,expectedRevision:o,target:s}=n;Ce(s.currentAdapterSessionId,s.currentAdapterSessionIdState);let c=t.adapterSessionId??null;t.currentAdapterSessionId=s.currentAdapterSessionId??void 0,t.currentAdapterSessionIdState=s.currentAdapterSessionIdState,t.currencyFence=a,t.revision=o+1,t.lastActivityAt=Date.now();let l=e.sessions.get(t.sessionId),u=!1;if(l!==void 0&&l.leadAgentId===i){let e=K(t,l.adapterSessionId??null);l.currentAdapterSessionId=e.currentAdapterSessionId,l.currentAdapterSessionIdState=e.currentAdapterSessionIdState,u=!0}return{outcome:`settled`,revision:o+1,currency:{adapterSessionId:c,...s},sessionSnapshotUpdated:u}}function Me(e,t,n){let r=V(e.claims,t);if(!(r===void 0||r.claimId===n))throw Error(`UNIQUE constraint failed: adapter_session_claims.claim_token (uniq_adapter_session_claims_token): "${t}" is already in use`)}function Ne(e,t){if(!(t===void 0||t.agentId!==e.agentId||t.status!==`held`||t.ownerInstanceId!==null&&t.ownerInstanceId!==e.ownerInstance.instanceId))return{generation:t,rollback:()=>{}}}function Pe(e,t,n){if(t.ownerInstanceId!==null)return t;let r={...t,ownerInstanceId:n};return e.claims.set(r.claimId,structuredClone(r)),r}function Fe(e,t,n){let{machineId:r,adapterId:i,agentId:a}=t,o=B(e.claims,r,i,n),s,c,l=Ne(t,o);if(l!==void 0)s=l.generation,c=l.rollback;else if(o!==void 0&&!G(e,{machineId:r,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,topology:t.topology},o))return{outcome:`already-claimed`,holder:structuredClone(o)};else{let l=Date.now(),u=o?.claimId??crypto.randomUUID();Me(e,t.movement.claimToken,u),s={claimId:u,machineId:r,adapterId:i,adapterName:t.adapterName,providerSessionId:n,sessionId:t.sessionId,agentId:a,ownerInstanceId:t.ownerInstance.instanceId,claimToken:t.movement.claimToken,fence:H(e,a,o?.fence??0),status:`held`,claimedAt:l,updatedAt:l},e.claims.set(u,structuredClone(s)),c=o===void 0?()=>{e.claims.delete(u)}:()=>{e.claims.set(u,structuredClone(o))}}let u=t.movement.kind===`confirmed`?Array.from(e.claims.values()).filter(e=>e.agentId===a&&e.status===`held`&&e.claimId!==s.claimId):[];for(let t of u)e.claims.delete(t.claimId);return{generation:s,releasedProviderSessionIds:u.map(e=>e.providerSessionId),rollback:()=>{for(let t of u)e.claims.set(t.claimId,structuredClone(t));c()}}}function Ie(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=c(q(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}function Le(e,t){return e.on(i.read,e=>{let{agentId:n}=e.payload,r=t.agents.get(n);if(r===void 0){e.setResult({ownership:null});return}let i=Array.from(t.claims.values()).filter(e=>e.agentId===n).sort((e,t)=>e.fence-t.fence||e.claimId.localeCompare(t.claimId));e.setResult({ownership:{agentId:n,sessionId:r.sessionId,currency:q(r),revision:r.revision??0,currencyFence:r.currencyFence??0,claims:i.map(e=>structuredClone(e))}})})}function $(e,t){return e.on(i.settleCurrency,e=>{let n=t.agents.get(e.payload.agentId);if(n===void 0){e.setResult({outcome:`not-found`});return}e.setResult(Q(t,n,e.payload))})}function Re(e,t){return e.on(i.finalizeRecovery,e=>{let{agentId:n,attemptId:r,binding:i,action:a}=e.payload,o=t.agents.get(n);if(o===void 0||o.status!==`starting`||o.recoveryAttemptId!==r||o.adapterId!==i.adapterId||o.runtimeOwner?.machineId!==i.ownerMachineId||o.runtimeOwner?.instanceId!==i.ownerInstanceId){e.setResult({applied:!1});return}a.kind===`rollback`?(o.status=a.preimage.status,o.adapterId=a.preimage.adapterId,o.runtimeOwner=a.preimage.binding===void 0?void 0:{machineId:a.preimage.binding.ownerMachineId,instanceId:a.preimage.binding.ownerInstanceId},o.recoveryAttemptId=a.preimage.recoveryAttemptId):(o.status=a.kind===`succeeded`?`idle`:`dead`,o.recoveryAttemptId=void 0),o.lastActivityAt=Date.now(),e.setResult({applied:!0})})}function ze(e,t){return e.on(i.settleMovement,e=>{let n=r.parse(e.payload),i=n.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);let a=U(i.instanceId,n.machineId),o=t.runtimeInstances.has(a);W(t,i.instanceId,n.machineId,Date.now());let s={...n,ownerInstance:i},c=t.agents.get(n.agentId);if(c===void 0||c.sessionId!==n.sessionId){o||t.runtimeInstances.delete(a),e.setResult({outcome:`not-found`});return}if(c.status===`disposed`){o||t.runtimeInstances.delete(a),e.setResult({outcome:`agent-disposed`});return}let l=Ie(s.movement,c);if(l===null){o||t.runtimeInstances.delete(a),e.setResult({outcome:`idempotent`,revision:c.revision??0,currency:q(c),sessionSnapshotUpdated:!1,claim:null});return}let u=Fe(t,s,l.providerSessionId);if(!(`generation`in u)){o||t.runtimeInstances.delete(a),e.setResult(u);return}let d=Q(t,c,{agentId:n.agentId,claimToken:u.generation.claimToken,fence:u.generation.fence,expectedRevision:n.expectedRevision,target:l.currency});if(d.outcome!==`settled`){u.rollback(),o||t.runtimeInstances.delete(a),e.setResult(d.outcome===`idempotent`?{...d,claim:structuredClone(u.generation)}:d);return}let f=Pe(t,u.generation,i.instanceId);e.setResult({outcome:`settled`,revision:d.revision,currency:d.currency,sessionSnapshotUpdated:d.sessionSnapshotUpdated,releasedProviderSessionIds:u.releasedProviderSessionIds,claim:structuredClone(f)})})}function Be(e,t){return e.on(i.releaseAgentClaims,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=Array.from(t.claims.values()).filter(e=>e.agentId===n&&(r===void 0||e.claimToken===r));if(i===`released`){for(let e of a)t.claims.delete(e.claimId);e.setResult({releasedProviderSessionIds:a.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:r!==void 0&&a.length===0});return}let o=Date.now(),s=a.map(e=>{let n={...e,status:i,updatedAt:o};return t.claims.set(e.claimId,structuredClone(n)),n});e.setResult({releasedProviderSessionIds:[],markedClaims:s,claimTokenNotFound:r!==void 0&&a.length===0})})}function Ve(e,t){return e.on(i.release,e=>{let{agentId:n,claimToken:r,disposition:i}=e.payload,a=V(t.claims,r);if(a===void 0){e.setResult({outcome:`not-found`});return}if(a.agentId!==n){e.setResult({outcome:`not-owner`,holder:structuredClone(a)});return}if(i===`released`){t.claims.delete(a.claimId),e.setResult({outcome:`released`});return}let o={...a,status:i,updatedAt:Date.now()};t.claims.set(a.claimId,structuredClone(o)),e.setResult({outcome:`marked`,claim:structuredClone(o)})})}function He(e,t){return e.on(i.listClaims,e=>{let{machineId:n,adapterId:r,providerSessionId:i,statuses:a}=e.payload,o=Array.from(t.claims.values()).filter(e=>e.machineId===n&&(r===void 0||e.adapterId===r)&&(i===void 0||e.providerSessionId===i)&&(a===void 0||a.includes(e.status)));o.sort((e,t)=>e.claimedAt-t.claimedAt||e.claimId.localeCompare(t.claimId)),e.setResult({claims:o.map(e=>structuredClone(e))})})}function Ue(e,t){return e.on(i.retireInstance,e=>{let n=Date.now(),r=0;for(let[i,a]of t.runtimeInstances)a.instanceId!==e.payload.instanceId||a.retiredAt!==null||(t.runtimeInstances.set(i,{...a,retiredAt:n}),r+=1);e.setResult({retiredMachines:r})})}function We(e,t){return e.on(i.getRuntimeInstance,e=>{let n=t.runtimeInstances.get(U(e.payload.instanceId,e.payload.machineId));e.setResult({instance:n===void 0?null:structuredClone(n)})})}function Ge(e,t=d()){let n=[Le(e,t),Re(e,t),e.on(i.claim,e=>{e.setResult(Ae(t,e.payload))}),$(e,t),ze(e,t),Ve(e,t),Be(e,t),He(e,t),Ue(e,t),We(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}export{E as a,_ as c,p as d,m as f,D as i,h as l,xe as n,T as o,d as p,I as r,v as s,Ge as t,g as u};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import{o as e}from"./chunk-DTipWd-i.mjs";import{t}from"./semver-Cb5Um3tU.mjs";import{z as n}from"zod";import{pathToFileURL as r}from"node:url";import*as i from"node:fs/promises";import*as a from"node:path";import{createBusNamespace as o}from"@makaio/framework/core";import{isDetachedDescriptor as s,safeParseExtensionDescriptor as c,versionSatisfies as l}from"@makaio/framework/contracts";import{BaseService as u}from"@makaio/framework/service-base";import*as d from"node:os";import{Worker as f}from"node:worker_threads";const p=n.object({npmName:n.string(),version:n.string(),source:n.enum([`new`,`upgraded`,`already-present`])}),m=n.object({npmName:n.string(),reason:n.string()}),h=n.object({success:n.boolean(),packageName:n.string(),version:n.string().optional(),restartRequired:n.boolean(),error:n.string().optional(),installed:n.array(p).optional(),skipped:n.array(m).optional(),warnings:n.array(n.string()).optional()}),g=n.object({success:n.boolean(),packageName:n.string(),error:n.string().optional(),restartRequired:n.boolean()}),_=n.object({name:n.string(),version:n.string(),description:n.string().optional(),hasDescriptor:n.boolean().default(!1),descriptorName:n.string().min(1).optional(),serverImportPath:n.string().min(1).optional(),declaresServerEntrypoint:n.boolean().optional(),critical:n.boolean().optional()}),v=n.object({packageName:n.string(),latestVersion:n.string(),success:n.boolean(),error:n.string().optional()}),y=n.object({name:n.string(),displayName:n.string(),description:n.string(),icon:n.string().optional(),tags:n.array(n.string()).optional(),descriptorName:n.string().min(1).optional()}),b=n.object({$schema:n.string(),updatedAt:n.string(),adapters:n.array(y),extensions:n.array(y)}),x=n.object({name:n.string(),currentVersion:n.string(),latestVersion:n.string(),description:n.string().optional()}),S=o(`packages`,{list:{request:n.object({}),response:n.object({packages:n.array(_)})},install:{request:n.object({packageName:n.string().optional(),packageNames:n.array(n.string()).min(1).optional(),source:n.enum([`npm`,`local`]).optional(),force:n.boolean().optional()}).refine(e=>e.packageName!==void 0||e.packageNames!==void 0,{message:`Expected packageName or packageNames`}),response:h},uninstall:{request:n.object({packageName:n.string()}),response:g},getLatestVersion:{request:n.object({packageName:n.string()}),response:v},getRegistry:{request:n.object({}),response:b},checkUpdates:{request:n.object({}),response:n.object({updates:n.array(x)})},installed:n.object({packageName:n.string(),version:n.string()}),uninstalled:n.object({packageName:n.string()})}),C=S.subjects;function w(e,t,n){try{return{ok:!0,value:JSON.parse(e)}}catch(e){let r=e instanceof Error?e:Error(String(e));return console.warn(`${n}: Skipping unparsable descriptor.json at ${t}:`,r.message),{ok:!1,error:r}}}async function T(e,t,n){if(!a.isAbsolute(e))return;let r;try{r=await i.realpath(e)}catch{return}let o=E(t,n),s=[a.resolve(r,`src`,`${o}.ts`),a.resolve(r,`dist`,`${o}.mjs`)];for(let e of s){let t=await ee(e);if(t!==void 0&&D(t,r))return t}}function E(e,t){return t===!0?e:t}async function ee(e){try{return await i.realpath(e)}catch{return}}function D(e,t){let n=a.relative(t,e);return n.length>0&&!n.startsWith(`..`)&&!a.isAbsolute(n)}var O=class{extensionsDir;constructor(e){this.extensionsDir=a.resolve(e)}async install(e){try{let t=a.resolve(e.endsWith(`descriptor.json`)?a.dirname(e):e),n=await i.realpath(t),r=await this.readDescriptor(n);s(r)||await this.validateEntrypoints(n,r.entrypoints);let o=this.linkPathFor(r.name);await i.mkdir(a.dirname(o),{recursive:!0});try{if((await i.lstat(o)).isSymbolicLink())await i.unlink(o);else throw Error(`${o} already exists and is not a symlink`)}catch(e){if(e.code!==`ENOENT`)throw e}let c=process.platform===`win32`?`junction`:`dir`;return await i.symlink(n,o,c),{success:!0,packageName:r.name,version:r.version,restartRequired:!0}}catch(e){return{success:!1,packageName:``,error:e instanceof Error?e.message:String(e),restartRequired:!1}}}async uninstall(e){try{let t=this.linkPathFor(e);if(await i.unlink(t),e.startsWith(`@`)){let e=a.dirname(t);(await i.readdir(e).catch(()=>null))?.length===0&&await i.rmdir(e).catch(()=>{})}return{success:!0,packageName:e,restartRequired:!0}}catch(t){return{success:!1,packageName:e,error:t instanceof Error?t.message:String(t),restartRequired:!1}}}async list(){try{await i.access(this.extensionsDir)}catch{return[]}let e=await i.readdir(this.extensionsDir),t=[];for(let n of e){let e=a.join(this.extensionsDir,n);if(n.startsWith(`@`)){let n=await i.readdir(e).catch(()=>[]);for(let r of n){let n=a.join(e,r),i=await this.readLocalEntry(n);i!==null&&t.push(i)}}else{let n=await this.readLocalEntry(e);n!==null&&t.push(n)}}return t}async readLocalEntry(e){try{if(!(await i.lstat(e)).isSymbolicLink())return null;let t=await i.readlink(e),n=await i.realpath(a.resolve(a.dirname(e),t)),r=a.join(n,`descriptor.json`),o=w(await i.readFile(r,`utf-8`),r,`[LocalPathInstaller]`);if(!o.ok)return null;let s=c(o.value);if(!s.success)return console.warn(`[LocalPathInstaller] Skipping invalid descriptor.json at ${r}:`,s.error.message),null;let l=s.data.entrypoints?.server,u=l!==void 0,d=u?await T(n,`server`,l):void 0;return{name:s.data.name,version:s.data.version,sourcePath:n,source:`local`,...d!==void 0&&{serverImportPath:d},...u&&{declaresServerEntrypoint:u},...s.data.critical!==void 0&&{critical:s.data.critical}}}catch{return null}}async readDescriptor(e){let t=a.join(e,`descriptor.json`),n=await i.readFile(t,`utf-8`).catch(()=>{throw Error(`descriptor.json not found at ${t}`)}),r=c(JSON.parse(n));if(!r.success)throw Error(`Invalid descriptor.json: ${r.error.message}`);return r.data}async validateEntrypoints(e,t){await Promise.all(Object.entries(t).map(async([t,n])=>{if(n!==void 0&&await T(e,t,n)===void 0){let e=E(t,n);throw Error(`${t} entrypoint "${e}" has no resolvable candidate: neither src/${e}.ts nor dist/${e}.mjs exists within the extension root`)}}))}linkPathFor(e){let t=a.resolve(this.extensionsDir,...e.split(`/`)),n=a.relative(this.extensionsDir,t);if(n===``||n.startsWith(`..`)||a.isAbsolute(n))throw Error(`Invalid extension name: ${e}`);return t}};function k(e){return e===void 0||typeof e==`boolean`}function te(e){return e===`interactive`||e===`headless`?e:void 0}function ne(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.name==`string`&&typeof t.version==`string`}function re(e){if(typeof e!=`object`||!e)return!1;let t=e,n=t.kind;if(n===`no-match`||n===`worker-error`)return!0;if(n===`match`){let e=t.packages;return Array.isArray(e)&&e.every(e=>ne(e))}return n===`invalid`&&typeof t.reason==`string`}async function ie(e,t,n,i){let a=r(e).href;return new Promise(e=>{let r;try{r=new f(`
|
|
2
|
+
const { parentPort, workerData } = require('node:worker_threads');
|
|
3
|
+
(async () => {
|
|
4
|
+
try {
|
|
5
|
+
if (workerData.frameworkDistPath) {
|
|
6
|
+
const nodeModule = require('node:module');
|
|
7
|
+
if (typeof nodeModule.registerHooks === 'function') {
|
|
8
|
+
const path = require('node:path');
|
|
9
|
+
const fs = require('node:fs');
|
|
10
|
+
const { pathToFileURL: toFileUrl } = require('node:url');
|
|
11
|
+
const frameworkDistPath = workerData.frameworkDistPath;
|
|
12
|
+
|
|
13
|
+
const readFrameworkPackageExports = () => {
|
|
14
|
+
const packageJsonPath = path.join(frameworkDistPath, '..', 'package.json');
|
|
15
|
+
const parsed = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
16
|
+
const exportsField = parsed.exports;
|
|
17
|
+
const normalized = {};
|
|
18
|
+
if (exportsField && typeof exportsField === 'object' && !Array.isArray(exportsField)) {
|
|
19
|
+
for (const key of Object.keys(exportsField)) {
|
|
20
|
+
if (!key.startsWith('.')) continue;
|
|
21
|
+
const value = exportsField[key];
|
|
22
|
+
if (typeof value === 'string' || (value && typeof value === 'object' && !Array.isArray(value))) {
|
|
23
|
+
normalized[key] = value;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return normalized;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const resolveRuntimeExportTarget = (value) => {
|
|
31
|
+
if (typeof value === 'string') return value;
|
|
32
|
+
if (!value) return undefined;
|
|
33
|
+
for (const condition of ['default', 'import', 'require']) {
|
|
34
|
+
const target = value[condition];
|
|
35
|
+
if (typeof target === 'string') return target;
|
|
36
|
+
}
|
|
37
|
+
return undefined;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const isPathWithinDirectory = (candidate, directory) => {
|
|
41
|
+
const relative = path.relative(directory, candidate);
|
|
42
|
+
return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const packageExports = readFrameworkPackageExports();
|
|
46
|
+
nodeModule.registerHooks({
|
|
47
|
+
resolve(specifier, context, nextResolve) {
|
|
48
|
+
const prefix = '@makaio/framework/';
|
|
49
|
+
if (specifier.startsWith(prefix)) {
|
|
50
|
+
const subpath = specifier.slice(prefix.length);
|
|
51
|
+
const segments = subpath.split('/');
|
|
52
|
+
const segmentsValid =
|
|
53
|
+
segments.length > 0 &&
|
|
54
|
+
segments.every(
|
|
55
|
+
(segment) => segment.length > 0 && segment !== '.' && segment !== '..' && !segment.includes('\\\\'),
|
|
56
|
+
);
|
|
57
|
+
if (segmentsValid) {
|
|
58
|
+
const exportTarget = resolveRuntimeExportTarget(packageExports['./' + subpath]);
|
|
59
|
+
if (exportTarget) {
|
|
60
|
+
const normalizedTarget = exportTarget.split('\\\\').join('/');
|
|
61
|
+
const distPrefix = './dist/';
|
|
62
|
+
if (normalizedTarget.startsWith(distPrefix)) {
|
|
63
|
+
const distRelativeTarget = normalizedTarget.slice(distPrefix.length);
|
|
64
|
+
const resolved = path.resolve(frameworkDistPath, distRelativeTarget);
|
|
65
|
+
if (isPathWithinDirectory(resolved, frameworkDistPath)) {
|
|
66
|
+
return { shortCircuit: true, url: toFileUrl(resolved).href };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return nextResolve(specifier, context);
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const mod = await import(workerData.moduleUrl);
|
|
79
|
+
const exported = mod.default;
|
|
80
|
+
const descriptorName = workerData.descriptorName;
|
|
81
|
+
|
|
82
|
+
const isExtensionManifestLike = (value) =>
|
|
83
|
+
typeof value === 'object' &&
|
|
84
|
+
value !== null &&
|
|
85
|
+
typeof value.name === 'string' &&
|
|
86
|
+
typeof value.displayName === 'string' &&
|
|
87
|
+
typeof value.version === 'string';
|
|
88
|
+
|
|
89
|
+
let packages;
|
|
90
|
+
if (Array.isArray(exported)) {
|
|
91
|
+
const seenNames = new Set();
|
|
92
|
+
packages = [];
|
|
93
|
+
for (const item of exported) {
|
|
94
|
+
if (!isExtensionManifestLike(item)) {
|
|
95
|
+
parentPort.postMessage({
|
|
96
|
+
kind: 'invalid',
|
|
97
|
+
reason: 'default export array contains an invalid MakaioExtension, skipping',
|
|
98
|
+
});
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (seenNames.has(item.name)) {
|
|
102
|
+
parentPort.postMessage({
|
|
103
|
+
kind: 'invalid',
|
|
104
|
+
reason: "default export array contains duplicate package name '" + item.name + "', skipping",
|
|
105
|
+
});
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
seenNames.add(item.name);
|
|
109
|
+
packages.push(item);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (!packages.some((pkg) => pkg.name === descriptorName)) {
|
|
113
|
+
parentPort.postMessage({ kind: 'no-match' });
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (packages.some((pkg) => pkg.name !== descriptorName && !pkg.name.startsWith(descriptorName + '.'))) {
|
|
118
|
+
parentPort.postMessage({
|
|
119
|
+
kind: 'invalid',
|
|
120
|
+
reason:
|
|
121
|
+
"default export array contains package names outside descriptor namespace '" + descriptorName + "', skipping",
|
|
122
|
+
});
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
if (!isExtensionManifestLike(exported)) {
|
|
127
|
+
parentPort.postMessage({
|
|
128
|
+
kind: 'invalid',
|
|
129
|
+
reason: 'default export is not a valid MakaioExtension or MakaioExtension[], skipping',
|
|
130
|
+
});
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (exported.name !== descriptorName) {
|
|
134
|
+
parentPort.postMessage({ kind: 'no-match' });
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
packages = [exported];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
parentPort.postMessage({
|
|
141
|
+
kind: 'match',
|
|
142
|
+
packages: packages.map((item) => ({
|
|
143
|
+
name: item.name,
|
|
144
|
+
version: item.version,
|
|
145
|
+
critical: item.critical,
|
|
146
|
+
surface: item.surface,
|
|
147
|
+
})),
|
|
148
|
+
});
|
|
149
|
+
} catch (error) {
|
|
150
|
+
parentPort.postMessage({
|
|
151
|
+
kind: 'worker-error',
|
|
152
|
+
message: error instanceof Error ? error.message : String(error),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
})();
|
|
156
|
+
`,{eval:!0,workerData:{moduleUrl:a,descriptorName:t,frameworkDistPath:i}})}catch(t){console.warn(`${n}: failed to import server entry while reading its exported packages:`,t instanceof Error?t.message:t),e(void 0);return}let o=!1,s=t=>{o||(o=!0,clearTimeout(c),r.removeAllListeners(),r.terminate(),e(t))},c=setTimeout(()=>{console.warn(`${n}: timed out importing server entry while reading its exported packages`),s(void 0)},1e4);r.once(`message`,e=>{if(!re(e)){console.warn(`${n}: server entry import worker returned an unexpected message shape`),s(void 0);return}s(e)}),r.once(`error`,e=>{console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e),s(void 0)}),r.once(`exit`,e=>{e!==0&&console.warn(`${n}: server entry import worker exited unexpectedly with code ${e}`),s(void 0)})})}async function A(e,t,n,r){try{await i.access(e)}catch(e){console.warn(`${n}: failed to import server entry while reading its exported packages:`,e instanceof Error?e.message:e);return}let a=await ie(e,t,n,r);if(a===void 0)return;if(a.kind===`worker-error`){console.warn(`${n}: failed to import server entry while reading its exported packages:`,a.message);return}if(a.kind===`no-match`){console.warn(`${n}: server entry export does not include a package named '${t}'`);return}if(a.kind===`invalid`){console.warn(`${n}: ${a.reason}`);return}let o=new Set;return{packages:a.packages.map(e=>{let t=te(e.surface),r={name:e.name,version:e.version,...t!==void 0&&{surface:t}};return k(e.critical)?e.critical===void 0?r:{...r,critical:e.critical}:(o.add(e.name),console.warn(`${n}: server entry export's 'critical' field for '${e.name}' is not a boolean (got ${typeof e.critical}); treating criticality as unresolved`),r)}),invalidCriticalNames:o}}async function j(e,t,n,r){return(await A(e,t,n,r))?.packages.find(e=>e.name===t)?.critical}async function M(e,t,n,r,i){return t===void 0?e:j(t,n,r,i)}async function N(e,t){let n=await M(e.critical,e.serverImportPath,e.name,`[PackageManagerService] ${e.name}`,t);return{name:e.name,version:e.version,hasDescriptor:!0,descriptorName:e.name,...e.serverImportPath!==void 0&&{serverImportPath:e.serverImportPath},...e.declaresServerEntrypoint&&{declaresServerEntrypoint:e.declaresServerEntrypoint},...n!==void 0&&{critical:n}}}const P=`nodeLinker: node-modules`,F=/^[A-Za-z]:[\\/]/;let I=null;function L(){return I||(I=Promise.all([import(`./lib-DxP3tPm9.mjs`).then(t=>e(t.t(),1)),import(`./lib-DomKag_k.mjs`).then(t=>e(t.t(),1)),import(`./lib-BdyGVjpO.mjs`).then(t=>e(t.default,1))]).then(([e,t,n])=>({Configuration:e.Configuration,Project:e.Project,Cache:e.Cache,StreamReport:e.StreamReport,structUtils:e.structUtils,ppath:t.ppath,npath:t.npath,xfs:t.xfs,getPluginConfiguration:n.getPluginConfiguration})),I)}var R=class{makaioHome;frameworkDistPath;constructor(e,t){this.makaioHome=e,this.frameworkDistPath=t}async initialize(){try{let{npath:e,ppath:t,xfs:n}=await L(),r=e.toPortablePath(this.makaioHome),i=t.join(r,`package.json`);if(await n.mkdirpPromise(r),await this.ensureYarnRc(r,n,t),await n.existsPromise(i))return;await n.writeJsonPromise(i,{name:`makaio-packages`,version:`1.0.0`,private:!0,description:`Makaio installed packages`,dependencies:{}}),console.info(`[YarnPackageManager] Created package.json at %s`,i)}catch(e){throw Error(`Failed to initialize package.json`,{cause:e})}}async ensureYarnRc(e,t,n){let r=n.join(e,`.yarnrc.yml`),i=await t.existsPromise(r)?await t.readFilePromise(r,`utf8`):``,a=H(i);i!==a&&(await t.writeFilePromise(r,a),console.info(`[YarnPackageManager] Wrote .yarnrc.yml at %s`,r))}async loadYarnState(){let{Configuration:e,Project:t,Cache:n,npath:r,getPluginConfiguration:i}=await L(),a=r.toPortablePath(this.makaioHome),o=await e.find(a,i()),{project:s}=await t.find(o,a);return{configuration:o,project:s,cache:await n.find(o)}}async runProjectInstall(e,t,n){let{StreamReport:r}=await L();if((await r.start({configuration:e,stdout:process.stdout},async e=>{await t.install({cache:n,report:e})})).hasErrors())throw Error(`Yarn install failed with errors`)}async parsePackageDescriptor(e){let{structUtils:t}=await L(),n=t.parseDescriptor(e);return n.range===`unknown`?t.makeDescriptor(n,`latest`):n}async installPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=await this.parsePackageDescriptor(e),o=t.stringifyIdent(a),s=r.topLevelWorkspace.manifest.dependencies.get(a.identHash);r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i);let c=r.storedResolutions.get(a.descriptorHash);if(!c)throw Error(`Package resolution not found after installation`);let l=r.storedPackages.get(c);if(!l)throw Error(`Package not found after installation`);let u=l.version??`unknown`;if(!(await this.readInstalledDescriptor(o)).hasDescriptor)throw s?r.topLevelWorkspace.manifest.dependencies.set(a.identHash,s):r.topLevelWorkspace.manifest.dependencies.delete(a.identHash),await this.runProjectInstall(n,r,i),Error(`Installed package ${o} does not contain a valid descriptor.json`);return console.info(`[YarnPackageManager] Installed %s@%s`,o,u),u}catch(t){throw Error(`Failed to install ${e}`,{cause:t})}}async uninstallPackage(e){try{let{structUtils:t}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=t.parseIdent(e);if(!r.topLevelWorkspace.manifest.dependencies.delete(a.identHash))throw Error(`Package ${e} not found in dependencies`);await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Uninstalled %s`,e)}catch(t){throw Error(`Failed to uninstall ${e}`,{cause:t})}}async listPackages(){try{let{xfs:e,npath:t,ppath:n,structUtils:r}=await L(),i=t.toPortablePath(this.makaioHome),a=n.join(i,`package.json`);if(!await e.existsPromise(a))return[];let{project:o}=await this.loadYarnState();return(await Promise.all([...o.topLevelWorkspace.manifest.dependencies.values()].map(async e=>{let t=r.stringifyIdent(e),n=o.storedResolutions.get(e.descriptorHash),i=(n?o.storedPackages.get(n):void 0)?.version??r.parseRange(e.range).selector,a=await this.readInstalledDescriptor(t);if(a.hasDescriptor)return{name:t,version:i,hasDescriptor:!0,descriptorName:a.descriptorName,...a.serverImportPath!==void 0&&{serverImportPath:a.serverImportPath},...a.declaresServerEntrypoint&&{declaresServerEntrypoint:a.declaresServerEntrypoint},...a.critical!==void 0&&{critical:a.critical}}}))).filter(e=>e!==void 0)}catch(e){throw Error(`Failed to list packages`,{cause:e})}}async ensureFrameworkDependency(e){let t=ae(e);try{let{structUtils:e}=await L(),{configuration:n,project:r,cache:i}=await this.loadYarnState(),a=e.makeDescriptor(e.parseIdent(`@makaio/framework`),t);if(r.topLevelWorkspace.manifest.dependencies.get(a.identHash)?.range===t)return;r.topLevelWorkspace.manifest.dependencies.set(a.identHash,a),await this.runProjectInstall(n,r,i),console.info(`[YarnPackageManager] Ensured @makaio/framework@%s`,t)}catch(e){throw Error(`Failed to ensure @makaio/framework@${t}`,{cause:e})}}async getLatestVersion(e){return this.resolvePackageVersion(e)}async readInstalledDescriptor(e){let t=await this.readInstalledExtensionDescriptor(e);if(t===null)return{hasDescriptor:!1};let n=t.entrypoints?.server!==void 0,r=await this.resolveInstalledServerEntrypoint(e,t),i=await M(t.critical,r,t.name,`[YarnPackageManager] ${t.name}`,this.frameworkDistPath);return{hasDescriptor:!0,descriptorName:t.name,...r!==void 0&&{serverImportPath:r},...n&&{declaresServerEntrypoint:n},...i!==void 0&&{critical:i}}}async resolveInstalledServerEntrypoint(e,t){let n=t.entrypoints?.server;if(n!==void 0)return T(a.join(this.makaioHome,`node_modules`,...e.split(`/`)),`server`,n)}async readInstalledExtensionDescriptor(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`descriptor.json`),n;try{n=await i.readFile(t,`utf-8`)}catch(e){if(U(e))return null;throw e}let r=w(n,t,`[YarnPackageManager] ${e}`);if(!r.ok)return null;let o=c(r.value);return o.success?o.data:(console.warn(`[YarnPackageManager] Skipping invalid descriptor.json for ${e}:`,o.error.message),null)}async listInstalledExtensionDescriptors(){let e=a.join(this.makaioHome,`package.json`),t;try{let n=await i.readFile(e,`utf-8`);t=JSON.parse(n)}catch(e){if(U(e))return[];throw e}let n=Object.keys(t.dependencies??{});return(await Promise.all(n.map(async e=>{let t=await this.readInstalledExtensionDescriptor(e);return t===null?null:{npmName:e,version:await this.readInstalledPackageVersion(e),descriptor:t}}))).filter(e=>e!==null)}async readInstalledPackageVersion(e){let t=a.join(this.makaioHome,`node_modules`,...e.split(`/`),`package.json`);try{let e=await i.readFile(t,`utf-8`),n=JSON.parse(e);return typeof n.version==`string`?n.version:`unknown`}catch{return`unknown`}}async readManifestSnapshot(){let e=a.join(this.makaioHome,`package.json`),t=await i.readFile(e,`utf-8`);return JSON.parse(t)}async writeManifestAndReinstall(e){let t=a.join(this.makaioHome,`package.json`);await i.writeFile(t,`${JSON.stringify(e,null,2)}\n`,`utf-8`);let{configuration:n,project:r,cache:o}=await this.loadYarnState();await this.runProjectInstall(n,r,o)}async resolvePackageVersion(e){try{let{StreamReport:t}=await L(),{configuration:n,project:r}=await this.loadYarnState(),i=await this.parsePackageDescriptor(e),a=`unknown`;return await t.start({configuration:n,stdout:process.stdout},async e=>{let t=n.makeResolver(),o=await t.getCandidates(i,{},{project:r,resolver:t,report:e});if(o.length>0){let e=o[0];a=e.reference.match(/^npm:(.+)$/)?.[1]??e.reference}}),a}catch(t){throw Error(`Failed to resolve version for ${e}`,{cause:t})}}};function z(e,t){return!t||t===`latest`?e:`${e}@${t}`}function B(e){if(e.startsWith(`@`)){let t=e.indexOf(`/`);if(t===-1)return e;let n=e.indexOf(`@`,t+1);return n===-1?e:e.slice(0,n)}let t=e.indexOf(`@`);return t===-1?e:e.slice(0,t)}function ae(e){return e.localPackagePath?`portal:${V(e.localPackagePath)}`:e.versionRange}function V(e){let t=(F.test(e)?e:a.resolve(e)).replace(/\\/g,`/`);return F.test(t)?`/${t}`:t}function H(e){let t=e.split(/\r?\n/),n=!1,r=t.map(e=>/^\s*nodeLinker\s*:/.test(e)?(n=!0,P):e);if(!n){let t=e.trimEnd();return`${t}${t.length>0?`
|
|
157
|
+
`:``}${P}\n`}return`${r.join(`
|
|
158
|
+
`).trimEnd()}\n`}function U(e){if(typeof e!=`object`||!e||!(`code`in e))return!1;let t=e.code;return t===`ENOENT`||t===`ENOTDIR`}function W(e){if(e.startsWith(`git+`))return{kind:`git`,raw:e,resolved:e};let t=e===`~`||e.startsWith(`~/`)||e.startsWith(`~\\`);if(e.startsWith(`~`)&&!t)throw Error(`Unsupported home-relative path syntax: ${e}`);return e.startsWith(`.`)||a.isAbsolute(e)||a.win32.isAbsolute(e)||t?{kind:`local`,raw:e,resolved:t?a.resolve(d.homedir(),e===`~`?`.`:e.slice(2)):a.resolve(e)}:{kind:`npm`,raw:e,resolved:e}}var G=class extends Error{npmName;descriptorName;claimant;constructor(e,t,n){super(`Package ${e} declares extension name "${t}", which is already installed from ${n.npmName}@${n.version}. Extension names are identities and cannot be shared — uninstall ${n.npmName} first, or install a build of ${e} that declares a different name.`),this.npmName=e,this.descriptorName=t,this.claimant=n,this.name=`ExtensionNameClaimedError`}},K=class{packages;names;constructor(e,t){this.packages=e,this.names=t}async resolve(e,t={}){let n=t.snapshot!==null,r=n?t.snapshot===void 0?await this.packages.readManifestSnapshot():t.snapshot:null;try{return await this.runBfs(e,t.force===!0)}catch(e){if(n)try{await this.packages.writeManifestAndReinstall(r)}catch(t){throw AggregateError([e,t],`Dependency resolution failed and rollback failed: ${ce(e)}`)}throw e}}async runBfs(e,t){let n=await this.packages.listInstalledExtensionDescriptors(),r=new Map(n.map(e=>[e.npmName,e])),i=e.map(e=>{let t=se(e),n=oe(t.npmName);return{npmName:t.npmName,...n?{expectedDescriptorName:n}:{},...t.requiredRange?{requiredRange:t.requiredRange}:{},optional:!1,path:[t.npmName],root:!0}}),a=new Set,o=[],s=[],c=[],l=new Set;for(;i.length>0;){let e=i.shift(),t=a.has(e.npmName),n=r.get(e.npmName);if(t){if(n&&this.assertDescriptorMatches(e,n.descriptor),n&&this.descriptorRangeSatisfied(n.descriptor,e.requiredRange))continue;if(!n)throw Error(`Package ${e.npmName} was resolved but is missing from the installed index`)}if(n&&this.assertDescriptorMatches(e,n.descriptor),n&&this.shouldUseCurrentDescriptor(n.descriptor,e)){o.push({npmName:e.npmName,version:n.version,source:`already-present`}),await this.enqueueDependencies(i,e,n.descriptor),a.add(e.npmName);continue}let c=z(e.npmName,e.requiredRange),u,d;try{u=await this.packages.installPackage(c);let t=await this.packages.readInstalledExtensionDescriptor(e.npmName);if(!t)throw Error(`Installed package ${e.npmName} does not contain a valid descriptor.json`);r.set(e.npmName,{npmName:e.npmName,version:u,descriptor:t}),l.add(e.npmName),this.assertDescriptorMatches(e,t),this.assertDescriptorVersionSatisfies(e,t),d=t}catch(t){if(e.optional){s.push({npmName:e.npmName,reason:t instanceof Error?t.message:String(t)});continue}throw t}o.push({npmName:e.npmName,version:u,source:n?`upgraded`:`new`}),await this.enqueueDependencies(i,e,d),a.add(e.npmName)}let u=this.claimDescriptorNames(n,r,l);return this.assertResolvedGraphConsistent(r,u,l,t),{installed:o,skipped:s,warnings:c}}descriptorRangeSatisfied(e,t){return t===void 0||l(e.version,t)}shouldUseCurrentDescriptor(e,t){return t.root&&t.requiredRange===void 0?!1:this.descriptorRangeSatisfied(e,t.requiredRange)}assertDescriptorMatches(e,t){if(!(e.expectedDescriptorName===void 0||t.name===e.expectedDescriptorName))throw Error(`Installed package ${e.npmName} declares descriptor name "${t.name}", expected "${e.expectedDescriptorName}"`)}claimDescriptorNames(e,t,n){let r=new Map;for(let e of[...t.values()].sort(q)){let t=r.get(e.descriptor.name);if(t===void 0){r.set(e.descriptor.name,e);continue}let i=n.has(e.npmName)?e:t;if(n.has(i.npmName))throw new G(i.npmName,e.descriptor.name,i===e?t:e)}let i=new Map;for(let t of e)r.has(t.descriptor.name)||i.set(t.descriptor.name,t.npmName);return{byDescriptorName:r,released:i}}assertDescriptorVersionSatisfies(e,t){if(this.descriptorRangeSatisfied(t,e.requiredRange))return;let n=e.root?``:` (required by ${e.path[e.path.length-2]})`;throw Error(`Installed package ${e.npmName} descriptor version ${t.version} does not satisfy ${t.name} ${e.requiredRange}${n}`)}assertResolvedGraphConsistent(e,t,n,r){if(r)return;let i=[],a=new Set;for(let r of e.values())for(let e of r.descriptor.dependencies??[]){let o=t.byDescriptorName.get(e.name),s=`${r.npmName} requires ${e.name} ${e.version}`,c=t.released.get(e.name);if(o===void 0){if(e.optional===!0||c===void 0)continue;i.push(`${s}, which ${c} no longer declares`),a.add(c)}else n.has(o.npmName)&&!l(o.descriptor.version,e.version)&&(i.push(s),a.add(o.npmName))}if(i.length>0)throw Error(`Cannot install ${[...a].join(`, `)}; existing dependencies would be violated:\n${i.join(`
|
|
159
|
+
`)}`)}async enqueueDependencies(e,t,n){for(let r of n.dependencies??[]){let n=await this.names.resolveNpmPackageName(r.name);if(t.path.includes(n))throw Error(`Circular dependency detected: ${[...t.path,n].join(` -> `)}`);e.push({npmName:n,expectedDescriptorName:r.name,requiredRange:r.version,optional:r.optional===!0,path:[...t.path,n],root:!1})}}};function q(e,t){return e.npmName===t.npmName?0:e.npmName<t.npmName?-1:1}function oe(e){return e.startsWith(`@`)?void 0:e}function se(e){let t=B(e);if(t.length===e.length)return{npmName:t};let n=e.slice(t.length+1);return n===`latest`?{npmName:t}:{npmName:t,requiredRange:n}}function ce(e){return e instanceof Error?e.message:String(e)}var J=class{registryClient;lookupMapPromise=null;constructor(e){this.registryClient=e}async resolveNpmPackageName(e){if(e.startsWith(`@`))return e;let t;try{t=await this.getLookupMap()}catch(t){throw Error(`Cannot resolve descriptor name "${e}": package registry is unavailable`,{cause:t})}return t.get(e)||`@makaio/${e}`}getLookupMap(){if(this.lookupMapPromise)return this.lookupMapPromise;let e=this.registryClient.getRegistry().then(e=>{let t=new Map;for(let n of[...e.adapters,...e.extensions])n.descriptorName&&t.set(n.descriptorName,n.name);return t}).catch(t=>{throw this.lookupMapPromise===e&&(this.lookupMapPromise=null),t});return this.lookupMapPromise=e,this.lookupMapPromise}},Y=class{inner;portalMap;constructor(e,t){this.inner=e,this.portalMap=t}async installPackage(e){let t=B(e),n=this.portalMap.get(t);if(n!==void 0){let e=`${t}@portal:${V(n)}`;return this.inner.installPackage(e)}return this.inner.installPackage(e)}readInstalledExtensionDescriptor(e){return this.inner.readInstalledExtensionDescriptor(e)}listInstalledExtensionDescriptors(){return this.inner.listInstalledExtensionDescriptors()}readManifestSnapshot(){return this.inner.readManifestSnapshot()}writeManifestAndReinstall(e){return this.inner.writeManifestAndReinstall(e)}},X=class{cache=null;inFlightFetch=null;registryUrl;cacheTtlMs;fetchTimeoutMs;fetchImpl;constructor(e={}){this.registryUrl=e.registryUrl??`https://raw.githubusercontent.com/makaio-ai/makaio/develop/registry/packages.json`,this.cacheTtlMs=e.cacheTtlMs??36e5,this.fetchTimeoutMs=e.fetchTimeoutMs??1e4,this.fetchImpl=e.fetchImpl??fetch}async getRegistry(){if(this.cache&&Date.now()-this.cache.timestamp<this.cacheTtlMs)return this.cache.data;this.inFlightFetch??=this.fetchAndCacheRegistry();try{return await this.inFlightFetch}finally{this.inFlightFetch=null}}async fetchAndCacheRegistry(){let e=new AbortController,t=setTimeout(()=>e.abort(),this.fetchTimeoutMs);try{let t=await this.fetchImpl(this.registryUrl,{signal:e.signal});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json(),r=b.parse(n);return this.cache={data:r,timestamp:Date.now()},r}catch(e){let t=e instanceof Error?e:Error(String(e));throw Error(`Failed to fetch package registry`,{cause:t})}finally{clearTimeout(t)}}clearCache(){this.cache=null}},Z=e(t(),1),le=`1.0.0`;function ue(){let e=le;if(typeof e!=`string`||e.length===0)throw Error(`Package manager package metadata must include a string version.`);return`^${e}`}const Q=ue();var $=class extends u{yarnManager;registryService;localInstaller;dependencyResolver;frameworkPeerRange;frameworkPackagePath;frameworkDistPath;constructor(e,t,n={}){super(e),this.yarnManager=n.yarnManager??new R(t,n.frameworkDistPath),this.registryService=n.registryService??new X,this.localInstaller=n.localInstaller??new O(a.join(t,`extensions`)),this.frameworkPeerRange=n.frameworkPeerRange??Q,this.frameworkPackagePath=n.frameworkPackagePath,this.frameworkDistPath=n.frameworkDistPath;let r=n.devPortalPackages?.size?new Y(this.yarnManager,n.devPortalPackages):this.yarnManager;this.dependencyResolver=n.dependencyResolver??new K(r,new J(this.registryService))}async onInit(){await this.yarnManager.initialize(),console.info(`[PackageManagerService] Initialized`),this.registerPackageHandlers(),this.registerRegistryHandlers()}normalizePackageName(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}validatePackageNamePayload(e,t){return this.normalizePackageName(e)||(t(),null)}createInvalidPackageNameResult(e){return e?{success:!1,packageName:``,latestVersion:e.latestVersion,error:`Invalid packageName`}:{success:!1,packageName:``,error:`Invalid packageName`,restartRequired:!1}}async emitInstalled(e,t){try{await this.bus.emit(C.installed,{packageName:e,version:t})}catch(e){console.error(`[PackageManagerService] installed emit failed:`,e)}}async emitUninstalled(e){try{await this.bus.emit(C.uninstalled,{packageName:e})}catch(e){console.error(`[PackageManagerService] uninstalled emit failed:`,e)}}registerPackageHandlers(){this.registerListHandler(),this.registerInstallHandler(),this.registerUninstallHandler()}registerListHandler(){this.registerHandler(C.list,async e=>{try{let[t,n]=await Promise.all([this.yarnManager.listPackages(),this.localInstaller.list()]),r=await Promise.all(n.map(e=>N(e,this.frameworkDistPath))),i=[...t,...r];e.setResult({packages:i})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] List failed:`,n),e.setResult({packages:[]})}})}async ensureFrameworkPeer(){try{await this.yarnManager.ensureFrameworkDependency({versionRange:this.frameworkPeerRange,...this.frameworkPackagePath?{localPackagePath:this.frameworkPackagePath}:{}})}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to ensure @makaio/framework dependency ${this.frameworkPeerRange}: ${t}`,{cause:e})}}async installNpmPackages(e,t){let n=await this.yarnManager.readManifestSnapshot(),r;try{await this.ensureFrameworkPeer(),r=await this.dependencyResolver.resolve(e,{force:t,snapshot:null})}catch(e){try{await this.yarnManager.writeManifestAndReinstall(n)}catch(t){let n=e instanceof Error?e.message:String(e);throw AggregateError([e,t],`Package install failed and rollback failed: ${n}`)}throw e}for(let e of r.installed)e.source!==`already-present`&&await this.emitInstalled(e.npmName,e.version);let i=r.installed[0];return{success:!0,packageName:i?.npmName??e[0]??``,version:i?.version,restartRequired:!0,installed:[...r.installed],skipped:[...r.skipped],warnings:[...r.warnings]}}registerInstallHandler(){this.registerHandler(C.install,async e=>{let t=e.payload.packageNames??(e.payload.packageName===void 0?[]:[e.payload.packageName]),n=t.map(e=>this.normalizePackageName(e)).filter(e=>e!==null);if(n.length!==t.length||n.length===0){e.setResult(this.createInvalidPackageNameResult());return}let r;if(e.payload.source!==void 0)r={kind:e.payload.source};else{let t=n.map(e=>W(e));r=t[0];let i=t.find(e=>e.kind!==r.kind);if(i){e.setResult({success:!1,packageName:``,error:`Cannot mix install sources: ${r.kind} and ${i.kind}`,restartRequired:!1});return}}if(r.kind===`git`){e.setResult({success:!1,packageName:n[0],error:`Git URL installs are not yet supported`,restartRequired:!1});return}if(r.kind===`local`){if(n.length>1){e.setResult({success:!1,packageName:``,error:`Local installs only support a single path`,restartRequired:!1});return}let t=await this.localInstaller.install(n[0]);t.success&&await this.emitInstalled(t.packageName,t.version??`unknown`),e.setResult(t);return}try{e.setResult(await this.installNpmPackages(n,e.payload.force))}catch(t){let r=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Install failed:`,r),e.setResult({success:!1,packageName:n[0]??``,error:r,restartRequired:!1})}})}registerUninstallHandler(){this.registerHandler(C.uninstall,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult())});if(t){if((await this.localInstaller.list()).find(e=>e.name===t)){let n=await this.localInstaller.uninstall(t);n.success&&await this.emitUninstalled(t),e.setResult(n);return}try{await this.yarnManager.uninstallPackage(t),await this.emitUninstalled(t),e.setResult({success:!0,packageName:t,restartRequired:!0})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Uninstall failed:`,r),e.setResult({success:!1,packageName:t,error:r,restartRequired:!1})}}})}registerRegistryHandlers(){this.registerHandler(C.getLatestVersion,async e=>{let t=this.validatePackageNamePayload(e.payload.packageName,()=>{e.setResult(this.createInvalidPackageNameResult({latestVersion:`unknown`}))});if(t)try{let n=await this.yarnManager.getLatestVersion(t);e.setResult({success:!0,packageName:t,latestVersion:n})}catch(n){let r=n instanceof Error?n.message:String(n);console.error(`[PackageManagerService] Version check failed:`,r),e.setResult({success:!1,packageName:t,latestVersion:`unknown`,error:r})}}),this.registerHandler(C.getRegistry,async e=>{try{let t=await this.registryService.getRegistry();e.setResult(t)}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Registry fetch failed:`,n),e.setResult({$schema:`makaio/package-registry/v1`,updatedAt:new Date().toISOString(),adapters:[],extensions:[]})}}),this.registerHandler(C.checkUpdates,async e=>{try{let t=await this.checkForUpdates();e.setResult({updates:t})}catch(t){let n=t instanceof Error?t.message:String(t);console.error(`[PackageManagerService] Update check failed:`,n),e.setResult({updates:[]})}})}async checkForUpdates(){try{let e=await this.yarnManager.listPackages(),t=[];return await Promise.all(e.map(async e=>{try{let n=await this.yarnManager.getLatestVersion(e.name);Z.valid(e.version)&&Z.valid(n)&&Z.gt(n,e.version)&&t.push({name:e.name,currentVersion:e.version,latestVersion:n,description:e.description})}catch(t){console.warn(`[PackageManagerService] Failed to check updates for %s:`,e.name,t)}})),console.info(`[PackageManagerService] Found %d package updates`,t.length),t}catch(e){throw Error(`Failed to check for updates`,{cause:e})}}};function de(e={}){return{name:`makaio.package-manager`,displayName:`Package Manager`,version:`0.1.0`,critical:!0,namespaces:[S],create:t=>new $(t.bus,t.makaioHome,{registryService:e.registryService,dependencyResolver:e.dependencyResolver,frameworkPeerRange:e.frameworkPeerRange,frameworkPackagePath:e.frameworkPackagePath,frameworkDistPath:e.frameworkDistPath,devPortalPackages:e.devPortalPackages})}}export{m as C,p as S,b as _,J as a,v as b,W as c,A as d,O as f,h as g,_ as h,Y as i,R as l,C as m,$ as n,K as o,S as p,X as r,G as s,de as t,z as u,g as v,y as x,x as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as OperationReportDecision, B as RecordProvisioningAbsentInput, D as MarkRuntimeReadyInput, E as InfrastructureFailureDecision, F as ReadBootstrapStartStateInput, Ft as RequestAttemptCancellationInput, G as RuntimeRegistrationDecision, Gt as ReadAttemptCancellationControlInput, H as RegisterRuntimeInput, I as RecordAllocationInput, It as RequestExecutionCancellationInput, Kt as RecordAttemptControlReceiptInput, L as RecordAllocationTerminatedInput, M as PendingAttemptAbandonmentDecision, Nt as ExecutionAttemptCancellationDecision, O as OperationAdmissionDecision, P as ProvisioningClaimDecision, Pt as ExecutionAttemptCancellationIntent$1, Qt as AttemptSettlementRead, R as RecordInfrastructureFailureInput, St as RuntimeOutcomeFence, T as GetInstructionInput, U as ReportOperationInput, Ut as AttemptControlEvidenceDecision, V as RecoverableAttemptRecord, Vt as AttemptCancellationControlState, W as RuntimeReadinessDecision, X as CompleteProviderOperationInput, Z as HandoffProviderOperationInput, a as AllocationRefEvolutionDecision, at as ProviderOperationClaimDecision, dt as ProviderOperationOwnershipRecord, en as EnsureExecutionAttemptDecision, et as ListOpenProviderOperationsInput, f as CompleteOperationInput, ft as ProvisionerIncarnationLossDecision, gt as TakeOverProviderOperationInput, h as DurableOutcome, ht as RenewProviderOperationClaimInput, i as AllocationRefEvolution, j as OutcomeCodec, k as OperationCompletionDecision, lt as ProviderOperationMutationDecision, mt as RecordProviderOperationUncertaintyInput, n as AdmitOperationInput, o as AllocationTerminationDecision, ot as ProviderOperationCompletionDecision, p as DiscoveredAllocationDecision, pt as ProvisioningAbsenceDecision, qt as ReportAttemptControlInput, r as AllocationRecordingDecision, rn as ReadAttemptSettlementInput, s as AttemptControlState, tn as EnsureExecutionAttemptInput, tt as OpenProviderOperationRecord, u as BeginProvisioningInput, w as ExecutionOwnerId, x as ExecutionAttemptRepository, y as ExecutionAttemptRecord, yt as ExecutionAttemptOutcomeDecision, z as RecordProvisionerIncarnationLostInput } from "./execution-attempt-repository-
|
|
1
|
+
import { A as OperationReportDecision, B as RecordProvisioningAbsentInput, D as MarkRuntimeReadyInput, E as InfrastructureFailureDecision, F as ReadBootstrapStartStateInput, Ft as RequestAttemptCancellationInput, G as RuntimeRegistrationDecision, Gt as ReadAttemptCancellationControlInput, H as RegisterRuntimeInput, I as RecordAllocationInput, It as RequestExecutionCancellationInput, Kt as RecordAttemptControlReceiptInput, L as RecordAllocationTerminatedInput, M as PendingAttemptAbandonmentDecision, Nt as ExecutionAttemptCancellationDecision, O as OperationAdmissionDecision, P as ProvisioningClaimDecision, Pt as ExecutionAttemptCancellationIntent$1, Qt as AttemptSettlementRead, R as RecordInfrastructureFailureInput, St as RuntimeOutcomeFence, T as GetInstructionInput, U as ReportOperationInput, Ut as AttemptControlEvidenceDecision, V as RecoverableAttemptRecord, Vt as AttemptCancellationControlState, W as RuntimeReadinessDecision, X as CompleteProviderOperationInput, Z as HandoffProviderOperationInput, a as AllocationRefEvolutionDecision, at as ProviderOperationClaimDecision, dt as ProviderOperationOwnershipRecord, en as EnsureExecutionAttemptDecision, et as ListOpenProviderOperationsInput, f as CompleteOperationInput, ft as ProvisionerIncarnationLossDecision, gt as TakeOverProviderOperationInput, h as DurableOutcome, ht as RenewProviderOperationClaimInput, i as AllocationRefEvolution, j as OutcomeCodec, k as OperationCompletionDecision, lt as ProviderOperationMutationDecision, mt as RecordProviderOperationUncertaintyInput, n as AdmitOperationInput, o as AllocationTerminationDecision, ot as ProviderOperationCompletionDecision, p as DiscoveredAllocationDecision, pt as ProvisioningAbsenceDecision, qt as ReportAttemptControlInput, r as AllocationRecordingDecision, rn as ReadAttemptSettlementInput, s as AttemptControlState, tn as EnsureExecutionAttemptInput, tt as OpenProviderOperationRecord, u as BeginProvisioningInput, w as ExecutionOwnerId, x as ExecutionAttemptRepository, y as ExecutionAttemptRecord, yt as ExecutionAttemptOutcomeDecision, z as RecordProvisionerIncarnationLostInput } from "./execution-attempt-repository-DOb5V4N2.mjs";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
|
|
4
4
|
import { AcceptedAttemptOutcome, AcceptedAttemptOutcome as AcceptedAttemptOutcome$1, AttemptOutcomeControlObservation, ExecutionAttemptBootstrapAwaitStartResponse, ExecutionAttemptInstruction, ExecutionAttemptOutcome, IWorkflowRunner, LoopGateHandler, MakaioNodeExtension, OutcomeAcceptance, OutcomeAcceptance as OutcomeAcceptance$1, StationHandler, StepRunnerBusAuth, StepRunnerPlatformDefaults, WorkerMaterializationSpec, WorkflowAttemptCancellation, WorkflowAttemptOutcome, WorkflowAttemptOutcome as WorkflowAttemptOutcome$1, WorkflowAttemptTechnicalFailure, WorkflowDefinition, WorkflowExecution, WorkflowRunContext, WorkflowRunResult, WorkflowRunnerCompletion } from "@makaio/framework/contracts";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{$ as e,A as t,At as n,Ct as r,Dt as i,Et as a,F as o,Ft as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,Mt as ee,N as te,Nt as ne,Ot as re,P as ie,Pt as ae,Q as oe,R as h,St as se,Tt as ce,U as le,V as ue,W as g,X as de,Y as fe,Z as pe,_ as me,_t as he,a as ge,at as _e,bt as ve,c as ye,ct as be,dt as xe,et as Se,f as Ce,ft as we,g as Te,gt as Ee,h as De,ht as Oe,i as ke,it as Ae,j as je,jt as Me,k as Ne,kt as Pe,l as Fe,lt as Ie,m as Le,mt as Re,n as ze,nt as Be,o as Ve,ot as He,p as Ue,pt as We,q as _,r as Ge,rt as Ke,st as qe,tt as Je,u as Ye,ut as Xe,vt as Ze,wt as Qe,xt as $e,y as et,yt as tt,z as nt}from"./authority-state-bootstrap-CvuWPywM.mjs";import{d as rt,f as it,p as at}from"./execution-attempt-repository-aabFKcXN.mjs";import{assertWorkflowTriggerPayload as ot,compileWorkflowTriggerBindingFilter as st}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as ct,r as lt}from"./execution-attempt-owner-recovery-CE_rvHKE.mjs";import{SerialLane as ut}from"@makaio/framework/utils";import{ArtifactSubjects as dt,AutomationTriggerSubjects as ft,CRON_AUTOMATION_TRIGGER_KIND as pt,EXECUTION_LIST_DEFAULT_LIMIT as mt,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionAttemptSchemas as x,ExecutionAttemptSubjects as S,ExecutionsByArtifactRefsQuerySchema as ht,JsonPatchOperationSchema as gt,JsonValueSchema as _t,SessionSubjects as vt,WORKFLOW_CANCELLED_REASON as C,WorkLogFrameEntrySchema as yt,WorkerSubjects as bt,WorkflowAutomationTriggerBindingSchema as xt,WorkflowError as w,WorkflowErrorCode as St,WorkflowNamespace as Ct,WorkflowRunContextSchema as wt,WorkflowRunResultSchema as Tt,WorkflowStepTypeSchema as Et,WorkflowSubjects as T,createWorkflowCancelSubject as Dt,createWorkflowDelegateResultFinalizerNamespace as Ot,createWorkflowFinalizerNamespace as kt,dep as At,extensionToken as jt,serializeArtifactRef as Mt,walkWorkflowDefinition as Nt}from"@makaio/framework/contracts";import{BaseService as Pt}from"@makaio/framework/service-base";import{defineDialectSchema as Ft,executeTransaction as E,getDatabaseDialect as It,registerDrizzleHandlers as Lt,resolveSchema as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{and as k,asc as A,count as j,desc as M,eq as N,getTableColumns as Rt,gte as zt,isNotNull as Bt,isNull as P,lt as Vt,lte as Ht,notInArray as Ut,or as Wt,sql as F,sum as I}from"drizzle-orm";import{SessionToken as Gt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Kt}from"@makaio/framework/services/automation-trigger";const qt=fe.postgres,Jt=_e.postgres,Yt=pe.postgres,Xt=qe.postgres,Zt=xe.postgres,Qt=e.postgres,$t=Ie.postgres,en=tt.postgres,tn=Oe.postgres,nn=We.postgres,rn=he.postgres,an=Je.postgres,on=Ke.postgres,sn=ne.postgres,cn=Pe.postgres,ln=$e.postgres,un=i.postgres,dn=Me.postgres,fn=r.postgres,pn=ce.postgres,L=Ft({workflowDefinitions:d,workflowExecutions:Ae,workflowExecutionFrames:de,workflowGateInstances:He,workflowStepSpans:Xe,workflowExecutionLinks:oe,workflowRunContexts:be,worklogSummaries:Ze,worklogFrameEntries:Re,worklogArtifactWrites:we,worklogGateEvents:Ee,workflowExecutionState:Se,workflowExecutionStateEvents:Be,workflowFinalizations:ee,executionAttempts:re,activeExecutionAttempts:ve,executionAttemptRequests:a,providerOperations:n,executionAttemptCancellations:se,executionAttemptControlEvidence:Qe},{workflowDefinitions:qt,workflowExecutions:Jt,workflowExecutionFrames:Yt,workflowGateInstances:Xt,workflowStepSpans:Zt,workflowExecutionLinks:Qt,workflowRunContexts:$t,worklogSummaries:en,worklogFrameEntries:tn,worklogArtifactWrites:nn,worklogGateEvents:rn,workflowExecutionState:an,workflowExecutionStateEvents:on,workflowFinalizations:sn,executionAttempts:cn,activeExecutionAttempts:ln,executionAttemptRequests:un,providerOperations:dn,executionAttemptCancellations:fn,executionAttemptControlEvidence:pn});function R(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function z(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function mn(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=R(t);return[N(e.scopeType,n),N(e.scopeKind,r),N(e.scopeId,i)]}function B(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:z(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function hn(e,t){let n=R(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function gn(e,t){let{workflowDefinitions:n}=D(t,L),r=Rt(n),i=e.on(_.get,async e=>{let r=await t.select().from(n).where(N(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?B(r[0]):null})}),a=e.on(_.set,async i=>{let a=i.payload.workflow,o=Date.now(),c=hn(a,o),l=await O(t,async()=>{let e=await t.insert(n).values(c).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:c.name,root:c.root,updatedAt:o,createdAt:F`COALESCE(${r.createdAt}, ${o})`,description:c.description===null?F`${r.description}`:c.description,inputSchema:c.inputSchema===null?F`${r.inputSchema}`:c.inputSchema,configSchema:c.configSchema===null?F`${r.configSchema}`:c.configSchema,outputSchema:c.outputSchema===null?F`${r.outputSchema}`:c.outputSchema,state:c.state,artifact:c.artifact===null?F`${r.artifact}`:c.artifact,triggers:c.triggers===null?F`${r.triggers}`:c.triggers,canvasLayout:c.canvasLayout===null?F`${r.canvasLayout}`:c.canvasLayout,source:c.source===null?F`${r.source}`:c.source,executableSource:c.executableSource,requirements:c.requirements,successFinalizerId:c.successFinalizerId,...R(a.scope)}).where(N(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});l&&await e.emit(l.kind===`created`?s.definition.created:s.definition.updated,B(l.row)),i.setResult({id:a.id})}),o=e.on(_.delete,async r=>{let i=(await O(t,()=>t.delete(n).where(N(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(s.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(_.list,async e=>{let r=e.payload,i=r.scope?mn(n,r.scope):[],a=i.length>0?await t.select().from(n).where(k(...i)):await t.select().from(n);e.setResult({workflows:a.map(B)})});return()=>{i(),a(),o(),c()}}function _n(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function vn(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function yn(e,t){let{workflowExecutionFrames:n}=D(t,L),r=e.on(_.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=vn(r,i);await O(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(_.getFrame,async e=>{let r=await t.select().from(n).where(N(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?_n(r[0]):null})}),a=e.on(_.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.frameId));e.setResult({frames:r.map(_n)})});return()=>{r(),i(),a()}}function bn(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function V(e){return{executionId:e.executionId,...e.executionAttemptId===null?{}:{executionAttemptId:e.executionAttemptId},nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function H(e){return{id:bn(e),executionId:e.executionId,executionAttemptId:e.executionAttemptId??null,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function xn(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??mt;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[N(r.executionId,e)],...t===void 0?[]:[N(r.status,t)]]}}function Sn(e,t){let{workflowGateInstances:n}=D(t,L);return e.on(_.resolveWaitingGateInstance,async e=>{let r=e.payload.gate,i=H(r),a=await O(t,()=>t.update(n).set(i).where(k(N(n.id,i.id),N(n.status,`waiting`),r.executionAttemptId===void 0?P(n.executionAttemptId):N(n.executionAttemptId,r.executionAttemptId))).returning({id:n.id}));e.setResult({accepted:a.length===1})})}function Cn(e,t){let{workflowExecutions:n,workflowGateInstances:r}=D(t,L),i=e.on(_.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=H(n);await O(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=Sn(e,t),o=e.on(_.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[N(r.executionId,n),N(r.nodeId,i)];a!==void 0&&o.push(N(r.frameId,a));let s=await t.select().from(r).where(k(...o)).limit(1);e.setResult({gate:s[0]?V(s[0]):null})}),s=e.on(_.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=xn(n,i,a,r),c=await t.select().from(r).where(k(...s)).orderBy(M(r.createdAt),M(r.id)).limit(o);e.setResult({gates:c.map(V)})}),c=e.on(_.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,N(r.executionId,n.id)).where(k(N(r.status,`waiting`),N(n.status,`paused`),Bt(r.timeoutMs)));e.setResult({gates:i.map(e=>V(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function wn(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function En(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=D(t,L),i=e.on(_.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await O(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(_.listSpans,async e=>{let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.stepId),A(n.frameId));e.setResult({spans:r.map(wn)})}),o=e.on(_.setExecutionLink,async e=>{let{link:n}=e.payload;await O(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(_.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[N(r.sourceExecutionId,n)],...i===void 0?[]:[N(r.targetExecutionId,i)]],o=t.select().from(r).where(k(...a));e.setResult({links:(await o).map(Tn)})});return()=>{i(),a(),o(),s()}}function U(e,t){return t===null?It(e)===`postgres`?F`'null'::jsonb`:F`'null'`:t}function Dn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function On(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function kn(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:On(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:z(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function An(e){let t=Dn(e.source),n=R(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function jn(e,t,n){let r=An(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Mn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=D(t,L),a=e.on(_.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await E(t,async e=>{if(await jn(e,a,n),o===void 0)return;let s=Date.now(),c=U(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(_.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(N(n.executionId,r)),a=i[0]?kn(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function Nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=D(e,L),a=Date.now(),o=U(e,n);await E(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function Pn(e,t){let{workflowExecutionState:n}=D(e,L),r=(await e.select().from(n).where(N(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=D(e,L),i=Date.now(),a=U(e,t.nextValue);return E(e,async e=>{let o=(await e.select().from(n).where(N(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=le(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(k(N(n.executionId,t.executionId),N(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function In(e,t){let n=e.on(_.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Nn(t,n,r),e.setResult({})}),r=e.on(_.getState,async e=>{let{executionId:n}=e.payload,r=await Pn(t,n);e.setResult({state:r})}),i=e.on(_.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function Ln(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function Rn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function zn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:Bn(t),setWhere:Ut(n.status,[`completed`,`failed`,`cancelled`])})}function Bn(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function W(e,t){let{worklogSummaries:n}=D(e,L),r=await e.select().from(n).where(N(n.executionId,t)).limit(1);return r[0]?Ln(r[0]):null}async function Vn(e,t={}){let{worklogSummaries:n}=D(e,L),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[N(n.workflowId,r)],...i===void 0?[]:[N(n.status,i)]],c=s.length>0?k(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(M(n.startedAt)).limit(a).offset(o),e.select({count:j()}).from(n).where(c)]);return{items:l.map(Ln),total:u[0]?.count??0}}async function Hn(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function Un(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Ut(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function G(e,t){let{worklogFrameEntries:n}=D(e,L);return(await e.select().from(n).where(N(n.frameId,t)).limit(1))[0]??null}async function Wn(e,t){let n=await G(e,t);return n===null?null:yt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Gn(e,t){let{worklogArtifactWrites:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Kn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function qn(e,t){let{worklogGateEvents:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Jn(e,t){let{worklogGateEvents:n}=D(e,L);return(await e.select().from(n).where(N(n.id,t)).limit(1))[0]??null}function Yn(e,t,n){return`${e}:${t}:${n}`}async function Xn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(N(t.executionId,n)).returning();return r}async function Zn(e,t,n){let[r]=await e.select({totalInputTokens:I(t.inputTokens),totalOutputTokens:I(t.outputTokens),totalEstimatedCost:I(t.estimatedCost),measuredInputTokens:j(t.inputTokens),measuredOutputTokens:j(t.outputTokens),measuredCosts:j(t.estimatedCost)}).from(t).where(N(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Qn(e){return e.hasMeasurements}async function $n(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(N(t.executionId,n))}async function er(e,t,n,r){let i=F`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=F`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=F`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=F`exists(
|
|
1
|
+
import{$ as e,A as t,At as n,Ct as r,Dt as i,Et as a,F as o,Ft as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,Mt as ee,N as te,Nt as ne,Ot as re,P as ie,Pt as ae,Q as oe,R as h,St as se,Tt as ce,U as le,V as ue,W as g,X as de,Y as fe,Z as pe,_ as me,_t as he,a as ge,at as _e,bt as ve,c as ye,ct as be,dt as xe,et as Se,f as Ce,ft as we,g as Te,gt as Ee,h as De,ht as Oe,i as ke,it as Ae,j as je,jt as Me,k as Ne,kt as Pe,l as Fe,lt as Ie,m as Le,mt as Re,n as ze,nt as Be,o as Ve,ot as He,p as Ue,pt as We,q as _,r as Ge,rt as Ke,st as qe,tt as Je,u as Ye,ut as Xe,vt as Ze,wt as Qe,xt as $e,y as et,yt as tt,z as nt}from"./authority-state-bootstrap-4F5Wc_6l.mjs";import{d as rt,f as it,p as at}from"./execution-attempt-repository-CY289HlC.mjs";import{assertWorkflowTriggerPayload as ot,compileWorkflowTriggerBindingFilter as st}from"./workflow-engine/workflow-trigger-binding-consumer.mjs";import{a as ct,r as lt}from"./execution-attempt-owner-recovery-BZOEVYFH.mjs";import{SerialLane as ut}from"@makaio/framework/utils";import{ArtifactSubjects as dt,AutomationTriggerSubjects as ft,CRON_AUTOMATION_TRIGGER_KIND as pt,EXECUTION_LIST_DEFAULT_LIMIT as mt,EXECUTION_LIST_MAX_LIMIT as v,EXECUTION_LIST_MIN_LIMIT as y,EXTERNAL_EXECUTION_ID_PREFIX as b,ExecutionAttemptSchemas as x,ExecutionAttemptSubjects as S,ExecutionsByArtifactRefsQuerySchema as ht,JsonPatchOperationSchema as gt,JsonValueSchema as _t,SessionSubjects as vt,WORKFLOW_CANCELLED_REASON as C,WorkLogFrameEntrySchema as yt,WorkerSubjects as bt,WorkflowAutomationTriggerBindingSchema as xt,WorkflowError as w,WorkflowErrorCode as St,WorkflowNamespace as Ct,WorkflowRunContextSchema as wt,WorkflowRunResultSchema as Tt,WorkflowStepTypeSchema as Et,WorkflowSubjects as T,createWorkflowCancelSubject as Dt,createWorkflowDelegateResultFinalizerNamespace as Ot,createWorkflowFinalizerNamespace as kt,dep as At,extensionToken as jt,serializeArtifactRef as Mt,walkWorkflowDefinition as Nt}from"@makaio/framework/contracts";import{BaseService as Pt}from"@makaio/framework/service-base";import{defineDialectSchema as Ft,executeTransaction as E,getDatabaseDialect as It,registerDrizzleHandlers as Lt,resolveSchema as D,serializeDatabaseOperation as O}from"@makaio/framework/storage/drizzle";import{and as k,asc as A,count as j,desc as M,eq as N,getTableColumns as Rt,gte as zt,isNotNull as Bt,isNull as P,lt as Vt,lte as Ht,notInArray as Ut,or as Wt,sql as F,sum as I}from"drizzle-orm";import{SessionToken as Gt}from"@makaio/framework/services";import{AutomationTriggerBindingRuntimeToken as Kt}from"@makaio/framework/services/automation-trigger";const qt=fe.postgres,Jt=_e.postgres,Yt=pe.postgres,Xt=qe.postgres,Zt=xe.postgres,Qt=e.postgres,$t=Ie.postgres,en=tt.postgres,tn=Oe.postgres,nn=We.postgres,rn=he.postgres,an=Je.postgres,on=Ke.postgres,sn=ne.postgres,cn=Pe.postgres,ln=$e.postgres,un=i.postgres,dn=Me.postgres,fn=r.postgres,pn=ce.postgres,L=Ft({workflowDefinitions:d,workflowExecutions:Ae,workflowExecutionFrames:de,workflowGateInstances:He,workflowStepSpans:Xe,workflowExecutionLinks:oe,workflowRunContexts:be,worklogSummaries:Ze,worklogFrameEntries:Re,worklogArtifactWrites:we,worklogGateEvents:Ee,workflowExecutionState:Se,workflowExecutionStateEvents:Be,workflowFinalizations:ee,executionAttempts:re,activeExecutionAttempts:ve,executionAttemptRequests:a,providerOperations:n,executionAttemptCancellations:se,executionAttemptControlEvidence:Qe},{workflowDefinitions:qt,workflowExecutions:Jt,workflowExecutionFrames:Yt,workflowGateInstances:Xt,workflowStepSpans:Zt,workflowExecutionLinks:Qt,workflowRunContexts:$t,worklogSummaries:en,worklogFrameEntries:tn,worklogArtifactWrites:nn,worklogGateEvents:rn,workflowExecutionState:an,workflowExecutionStateEvents:on,workflowFinalizations:sn,executionAttempts:cn,activeExecutionAttempts:ln,executionAttemptRequests:un,providerOperations:dn,executionAttemptCancellations:fn,executionAttemptControlEvidence:pn});function R(e){return e.type===`global`?{scopeType:`global`,scopeKind:``,scopeId:``}:e.type===`external`?{scopeType:`external`,scopeKind:e.kind,scopeId:e.id}:{scopeType:e.type,scopeKind:``,scopeId:e.id}}function z(e){switch(e.scopeType){case`global`:return{type:`global`};case`external`:if(!e.scopeKind||!e.scopeId)throw Error(`Invalid external workflow scope row: scopeKind and scopeId are required`);return{type:`external`,kind:e.scopeKind,id:e.scopeId};case`workspace`:case`session`:if(!e.scopeId)throw Error(`Invalid ${e.scopeType} workflow scope row: scopeId is required`);return{type:e.scopeType,id:e.scopeId};default:{let t=e.scopeType;throw Error(`Unknown scope type: ${String(t)}`)}}}function mn(e,t){let{scopeType:n,scopeKind:r,scopeId:i}=R(t);return[N(e.scopeType,n),N(e.scopeKind,r),N(e.scopeId,i)]}function B(e){return{id:e.id,name:e.name,description:e.description??void 0,root:e.root,inputSchema:e.inputSchema??void 0,configSchema:e.configSchema??void 0,outputSchema:e.outputSchema??void 0,state:e.state??void 0,artifact:e.artifact??void 0,triggers:e.triggers??void 0,scope:z(e),canvasLayout:e.canvasLayout??void 0,source:e.source??void 0,executableSource:e.executableSource??void 0,requirements:e.requirements??void 0,successFinalizerId:e.successFinalizerId??void 0}}function hn(e,t){let n=R(e.scope);return{id:e.id,name:e.name??e.id,root:e.root,description:e.description??null,inputSchema:e.inputSchema??null,configSchema:e.configSchema??null,outputSchema:e.outputSchema??null,state:e.state??null,artifact:e.artifact??null,triggers:e.triggers??null,canvasLayout:e.canvasLayout??null,source:e.source??null,executableSource:e.executableSource??null,requirements:e.requirements??null,successFinalizerId:e.successFinalizerId??null,createdAt:t,updatedAt:t,...n}}function gn(e,t){let{workflowDefinitions:n}=D(t,L),r=Rt(n),i=e.on(_.get,async e=>{let r=await t.select().from(n).where(N(n.id,e.payload.id)).limit(1);e.setResult({workflow:r[0]?B(r[0]):null})}),a=e.on(_.set,async i=>{let a=i.payload.workflow,o=Date.now(),c=hn(a,o),l=await O(t,async()=>{let e=await t.insert(n).values(c).onConflictDoNothing({target:n.id}).returning();if(e.length>0)return{kind:`created`,row:e[0]};let[i]=await t.update(n).set({name:c.name,root:c.root,updatedAt:o,createdAt:F`COALESCE(${r.createdAt}, ${o})`,description:c.description===null?F`${r.description}`:c.description,inputSchema:c.inputSchema===null?F`${r.inputSchema}`:c.inputSchema,configSchema:c.configSchema===null?F`${r.configSchema}`:c.configSchema,outputSchema:c.outputSchema===null?F`${r.outputSchema}`:c.outputSchema,state:c.state,artifact:c.artifact===null?F`${r.artifact}`:c.artifact,triggers:c.triggers===null?F`${r.triggers}`:c.triggers,canvasLayout:c.canvasLayout===null?F`${r.canvasLayout}`:c.canvasLayout,source:c.source===null?F`${r.source}`:c.source,executableSource:c.executableSource,requirements:c.requirements,successFinalizerId:c.successFinalizerId,...R(a.scope)}).where(N(n.id,a.id)).returning();return i?{kind:`updated`,row:i}:void 0});l&&await e.emit(l.kind===`created`?s.definition.created:s.definition.updated,B(l.row)),i.setResult({id:a.id})}),o=e.on(_.delete,async r=>{let i=(await O(t,()=>t.delete(n).where(N(n.id,r.payload.id)).returning())).length>0;i&&await e.emit(s.definition.deleted,{id:r.payload.id}),r.setResult({deleted:i})}),c=e.on(_.list,async e=>{let r=e.payload,i=r.scope?mn(n,r.scope):[],a=i.length>0?await t.select().from(n).where(k(...i)):await t.select().from(n);e.setResult({workflows:a.map(B)})});return()=>{i(),a(),o(),c()}}function _n(e){return{frameId:e.frameId,nodeId:e.nodeId,nodeType:e.nodeType,path:e.path,parentFrameId:e.parentFrameId??void 0,status:e.status,attempt:e.attempt,iteration:e.iteration??void 0,branchKey:e.branchKey??void 0,...e.outputPresent?{output:e.output}:{},error:e.error??void 0,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0}}function vn(e,t){return{frameId:t.frameId,executionId:e,nodeId:t.nodeId,nodeType:t.nodeType,path:t.path,parentFrameId:t.parentFrameId??null,status:t.status,attempt:t.attempt,iteration:t.iteration??null,branchKey:t.branchKey??null,output:t.output===void 0?null:t.output,outputPresent:t.output!==void 0,error:t.error??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null}}function yn(e,t){let{workflowExecutionFrames:n}=D(t,L),r=e.on(_.setFrame,async e=>{let{executionId:r,frame:i}=e.payload;if(!g(e,r))throw Error(`Unauthorized: caller is not permitted to write frames for execution: ${r}`);let a=vn(r,i);await O(t,()=>t.insert(n).values(a).onConflictDoUpdate({target:n.frameId,set:a})),e.setResult({frameId:i.frameId})}),i=e.on(_.getFrame,async e=>{let r=await t.select().from(n).where(N(n.frameId,e.payload.frameId)).limit(1);e.setResult({frame:r[0]?_n(r[0]):null})}),a=e.on(_.listFrames,async e=>{if(!g(e,e.payload.executionId))throw Error(`Unauthorized: caller is not permitted to list frames for execution: ${e.payload.executionId}`);let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.frameId));e.setResult({frames:r.map(_n)})});return()=>{r(),i(),a()}}function bn(e){return`${e.executionId}:${e.nodeId}:${e.frameId}`}function V(e){return{executionId:e.executionId,...e.executionAttemptId===null?{}:{executionAttemptId:e.executionAttemptId},nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??void 0,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs??null,...e.resumeDataPresent?{resumeData:e.resumeData}:{},...e.reason===null?{}:{reason:e.reason},createdAt:e.createdAt,resolvedAt:e.resolvedAt??void 0}}function H(e){return{id:bn(e),executionId:e.executionId,executionAttemptId:e.executionAttemptId??null,nodeId:e.nodeId,frameId:e.frameId,schema:e.schema,prompt:e.prompt??null,status:e.status,autoAction:e.autoAction,timeoutMs:e.timeoutMs,resumeData:e.resumeData===void 0?null:e.resumeData,reason:e.reason??null,resumeDataPresent:e.resumeData!==void 0,createdAt:e.createdAt,resolvedAt:e.resolvedAt??null}}function xn(e,t,n,r){if(e===void 0&&t===void 0)throw Error(`Either executionId or status is required to list gate instances.`);let i=n??mt;if(!Number.isInteger(i)||i<y||i>v)throw Error(`Gate instance list limit must be an integer between ${y} and ${v}.`);return{resolvedLimit:i,predicates:[...e===void 0?[]:[N(r.executionId,e)],...t===void 0?[]:[N(r.status,t)]]}}function Sn(e,t){let{workflowGateInstances:n}=D(t,L);return e.on(_.resolveWaitingGateInstance,async e=>{let r=e.payload.gate,i=H(r),a=await O(t,()=>t.update(n).set(i).where(k(N(n.id,i.id),N(n.status,`waiting`),r.executionAttemptId===void 0?P(n.executionAttemptId):N(n.executionAttemptId,r.executionAttemptId))).returning({id:n.id}));e.setResult({accepted:a.length===1})})}function Cn(e,t){let{workflowExecutions:n,workflowGateInstances:r}=D(t,L),i=e.on(_.setGateInstance,async e=>{let n=e.payload.gate;if(!g(e,n.executionId))throw Error(`Unauthorized: caller is not permitted to write gates for execution: ${n.executionId}`);let i=H(n);await O(t,()=>t.insert(r).values(i).onConflictDoUpdate({target:r.id,set:i})),e.setResult({id:i.id})}),a=Sn(e,t),o=e.on(_.getGateInstance,async e=>{let{executionId:n,nodeId:i,frameId:a}=e.payload;if(!g(e,n))throw Error(`Unauthorized: caller is not permitted to read gates for execution: ${n}`);let o=[N(r.executionId,n),N(r.nodeId,i)];a!==void 0&&o.push(N(r.frameId,a));let s=await t.select().from(r).where(k(...o)).limit(1);e.setResult({gate:s[0]?V(s[0]):null})}),s=e.on(_.listGateInstances,async e=>{let{executionId:n,status:i,limit:a}=e.payload,{resolvedLimit:o,predicates:s}=xn(n,i,a,r),c=await t.select().from(r).where(k(...s)).orderBy(M(r.createdAt),M(r.id)).limit(o);e.setResult({gates:c.map(V)})}),c=e.on(_.listPausedGateTimeouts,async e=>{let i=await t.select({gate:r}).from(r).innerJoin(n,N(r.executionId,n.id)).where(k(N(r.status,`waiting`),N(n.status,`paused`),Bt(r.timeoutMs)));e.setResult({gates:i.map(e=>V(e.gate))})});return()=>{i(),a(),o(),s(),c()}}function wn(e){return{executionId:e.executionId,frameId:e.frameId,stepId:e.stepId,stepType:e.stepType,status:e.status,startedAt:e.startedAt??void 0,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,inputTokens:e.inputTokens??void 0,outputTokens:e.outputTokens??void 0,estimatedCost:e.estimatedCost??void 0,toolCallCount:e.toolCallCount??void 0,input:e.input??void 0,output:e.output??void 0}}function Tn(e){return{sourceExecutionId:e.sourceExecutionId,targetExecutionId:e.targetExecutionId,linkType:e.linkType,metadata:e.metadata??void 0}}function En(e,t){let{workflowStepSpans:n,workflowExecutionLinks:r}=D(t,L),i=e.on(_.setSpan,async e=>{let{span:r}=e.payload;if(!g(e,r.executionId))throw Error(`Unauthorized: caller is not permitted to write spans for execution: ${r.executionId}`);await O(t,()=>t.insert(n).values(r).onConflictDoUpdate({target:[n.executionId,n.frameId],set:r})),e.setResult({id:`${r.executionId}:${r.frameId}`})}),a=e.on(_.listSpans,async e=>{let r=await t.select().from(n).where(N(n.executionId,e.payload.executionId)).orderBy(A(n.startedAt),A(n.stepId),A(n.frameId));e.setResult({spans:r.map(wn)})}),o=e.on(_.setExecutionLink,async e=>{let{link:n}=e.payload;await O(t,()=>t.insert(r).values(n).onConflictDoUpdate({target:[r.sourceExecutionId,r.targetExecutionId],set:n})),e.setResult({id:`${n.sourceExecutionId}:${n.targetExecutionId}`})}),s=e.on(_.listExecutionLinks,async e=>{let{sourceExecutionId:n,targetExecutionId:i}=e.payload;if(n===void 0&&i===void 0)throw Error(`Either sourceExecutionId or targetExecutionId is required to list execution links.`);let a=[...n===void 0?[]:[N(r.sourceExecutionId,n)],...i===void 0?[]:[N(r.targetExecutionId,i)]],o=t.select().from(r).where(k(...a));e.setResult({links:(await o).map(Tn)})});return()=>{i(),a(),o(),s()}}function U(e,t){return t===null?It(e)===`postgres`?F`'null'::jsonb`:F`'null'`:t}function Dn(e){switch(e.kind){case`path`:return{sourceKind:`path`,sourcePath:e.path,sourceFilename:null,sourceCode:null};case`source`:return{sourceKind:`source`,sourcePath:null,sourceFilename:e.filename,sourceCode:e.source};case`definition`:return{sourceKind:`definition`,sourcePath:null,sourceFilename:null,sourceCode:null}}}function On(e){switch(e.sourceKind){case`path`:if(!e.sourcePath)throw Error(`Invalid run context row: sourcePath required for kind=path`);return{kind:`path`,path:e.sourcePath};case`source`:if(!e.sourceFilename)throw Error(`Invalid run context row: sourceFilename required for kind=source`);return{kind:`source`,filename:e.sourceFilename,source:e.sourceCode??``};case`definition`:return{kind:`definition`,workflowId:e.workflowId};default:throw Error(`Unknown run context source kind: ${String(e.sourceKind)}`)}}function kn(e){return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,source:On(e),definitionSnapshot:e.definitionSnapshot??void 0,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode,...e.artifactRef===null?{}:{artifactRef:e.artifactRef},scope:z(e),...e.dispatchMetadata===null?{}:{dispatchMetadata:e.dispatchMetadata},cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy??`wait-in-process`,...e.terminalAuthority===null?{}:{terminalAuthority:e.terminalAuthority},...e.materializationSpec===null?{}:{materializationSpec:e.materializationSpec}}}function An(e){let t=Dn(e.source),n=R(e.scope);return{executionId:e.executionId,workflowId:e.workflowId,coordinatorSessionId:e.coordinatorSessionId,...t,definitionSnapshot:e.definitionSnapshot??null,workerManifest:e.workerManifest,inputs:e.inputs,config:e.config??{},triggerPayload:e.triggerPayload,triggerMode:e.triggerMode??`immediate`,artifactRef:e.artifactRef??null,dispatchMetadata:e.dispatchMetadata??null,...n,cancelSubject:e.cancelSubject,env:e.env,createdAt:e.createdAt,suspensionStrategy:e.suspensionStrategy,terminalAuthority:e.terminalAuthority??null,materializationSpec:e.materializationSpec??null}}async function jn(e,t,n){let r=An(t);await e.insert(n).values(r).onConflictDoUpdate({target:n.executionId,set:r})}function Mn(e,t){let{workflowRunContexts:n,workflowExecutionState:r,workflowExecutionStateEvents:i}=D(t,L),a=e.on(_.setRunContext,async e=>{let a=e.payload.runContext,o=e.payload.initialState;await E(t,async e=>{if(await jn(e,a,n),o===void 0)return;let s=Date.now(),c=U(t,o);await e.insert(r).values({executionId:a.executionId,sequence:0,value:c,updatedAt:s}).onConflictDoNothing(),await e.insert(i).values({executionId:a.executionId,sequence:0,patch:[],value:c,createdAt:s}).onConflictDoNothing()}),e.setResult({executionId:a.executionId})}),o=e.on(_.getRunContext,async e=>{let{executionId:r}=e.payload,i=await t.select().from(n).where(N(n.executionId,r)),a=i[0]?kn(i[0]):null;e.setResult({runContext:a})});return()=>{a(),o()}}async function Nn(e,t,n){let{workflowExecutionState:r,workflowExecutionStateEvents:i}=D(e,L),a=Date.now(),o=U(e,n);await E(e,async e=>{await e.insert(r).values({executionId:t,sequence:0,value:o,updatedAt:a}).onConflictDoNothing(),await e.insert(i).values({executionId:t,sequence:0,patch:[],value:o,createdAt:a}).onConflictDoNothing()})}async function Pn(e,t){let{workflowExecutionState:n}=D(e,L),r=(await e.select().from(n).where(N(n.executionId,t)).limit(1))[0];return r?{executionId:r.executionId,sequence:r.sequence,value:r.value}:null}async function Fn(e,t){let{workflowExecutionState:n,workflowExecutionStateEvents:r}=D(e,L),i=Date.now(),a=U(e,t.nextValue);return E(e,async e=>{let o=(await e.select().from(n).where(N(n.executionId,t.executionId)).limit(1))[0];if(!o)throw Error(`no workflow state for execution ${t.executionId}`);if(t.expectedSequence===void 0)throw Error(`expectedSequence is required to patch workflow state`);let s=o.sequence+1,c=le(o.value,t.nextValue);if((await e.update(n).set({sequence:s,value:a,updatedAt:i}).where(k(N(n.executionId,t.executionId),N(n.sequence,t.expectedSequence))).returning()).length===0)throw Error(`state sequence conflict: expected ${String(t.expectedSequence)}, got ${String(o.sequence)}`);return await e.insert(r).values({executionId:t.executionId,sequence:s,patch:c,value:a,createdAt:i}),{executionId:t.executionId,sequence:s,patch:c,value:t.nextValue}})}function In(e,t){let n=e.on(_.initializeState,async e=>{let{executionId:n,initialValue:r}=e.payload;await Nn(t,n,r),e.setResult({})}),r=e.on(_.getState,async e=>{let{executionId:n}=e.payload,r=await Pn(t,n);e.setResult({state:r})}),i=e.on(_.patchState,async e=>{let{executionId:n,expectedSequence:r,nextValue:i}=e.payload,a=await Fn(t,{executionId:n,expectedSequence:r,nextValue:i});e.setResult(a)});return()=>{n(),r(),i()}}function Ln(e){return{executionId:e.executionId,workflowId:e.workflowId,workflowName:e.workflowName??void 0,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt??void 0,durationMs:e.durationMs??void 0,totalInputTokens:e.totalInputTokens??void 0,totalOutputTokens:e.totalOutputTokens??void 0,totalEstimatedCost:e.totalEstimatedCost??void 0,error:e.error??void 0,failedNodeId:e.failedNodeId??void 0}}async function Rn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function zn(e,t){let{worklogSummaries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.executionId,set:Bn(t),setWhere:Ut(n.status,[`completed`,`failed`,`cancelled`])})}function Bn(e){return{workflowId:e.workflowId,workflowName:e.workflowName,status:e.status,startedAt:e.startedAt,completedAt:e.completedAt,durationMs:e.durationMs,error:e.error,failedNodeId:e.failedNodeId}}async function W(e,t){let{worklogSummaries:n}=D(e,L),r=await e.select().from(n).where(N(n.executionId,t)).limit(1);return r[0]?Ln(r[0]):null}async function Vn(e,t={}){let{worklogSummaries:n}=D(e,L),{workflowId:r,status:i,limit:a=50,offset:o=0}=t,s=[...r===void 0?[]:[N(n.workflowId,r)],...i===void 0?[]:[N(n.status,i)]],c=s.length>0?k(...s):void 0,[l,u]=await Promise.all([e.select().from(n).where(c).orderBy(M(n.startedAt)).limit(a).offset(o),e.select({count:j()}).from(n).where(c)]);return{items:l.map(Ln),total:u[0]?.count??0}}async function Hn(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoNothing()}async function Un(e,t){let{worklogFrameEntries:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.frameId,set:t,setWhere:Ut(n.status,[`completed`,`failed`,`skipped`,`cancelled`])})}async function G(e,t){let{worklogFrameEntries:n}=D(e,L);return(await e.select().from(n).where(N(n.frameId,t)).limit(1))[0]??null}async function Wn(e,t){let n=await G(e,t);return n===null?null:yt.parse({executionId:n.executionId,frameId:n.frameId,nodeId:n.nodeId,nodeType:n.nodeType,path:n.path,status:n.status,attempt:n.attempt,iteration:n.iteration??void 0,branchKey:n.branchKey??void 0,startedAt:n.startedAt??void 0,completedAt:n.completedAt??void 0,durationMs:n.durationMs??void 0,inputTokens:n.inputTokens??void 0,outputTokens:n.outputTokens??void 0,estimatedCost:n.estimatedCost??void 0,error:n.error??void 0})}async function Gn(e,t){let{worklogArtifactWrites:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}function Kn(e,t,n,r,i){return`${e}:${t}:${n}:${r}:${i}`}async function qn(e,t){let{worklogGateEvents:n}=D(e,L);await e.insert(n).values(t).onConflictDoUpdate({target:n.id,set:t})}async function Jn(e,t){let{worklogGateEvents:n}=D(e,L);return(await e.select().from(n).where(N(n.id,t)).limit(1))[0]??null}function Yn(e,t,n){return`${e}:${t}:${n}`}async function Xn(e,t,n){let[r]=await e.update(t).set({totalInputTokens:t.totalInputTokens}).where(N(t.executionId,n)).returning();return r}async function Zn(e,t,n){let[r]=await e.select({totalInputTokens:I(t.inputTokens),totalOutputTokens:I(t.outputTokens),totalEstimatedCost:I(t.estimatedCost),measuredInputTokens:j(t.inputTokens),measuredOutputTokens:j(t.outputTokens),measuredCosts:j(t.estimatedCost)}).from(t).where(N(t.executionId,n));return{totalInputTokens:Number(r?.totalInputTokens??0),totalOutputTokens:Number(r?.totalOutputTokens??0),totalEstimatedCost:Number(r?.totalEstimatedCost??0),hasMeasurements:Number(r?.measuredInputTokens??0)>0||Number(r?.measuredOutputTokens??0)>0||Number(r?.measuredCosts??0)>0}}function Qn(e){return e.hasMeasurements}async function $n(e,t,n,r){await e.update(t).set({totalInputTokens:r.totalInputTokens,totalOutputTokens:r.totalOutputTokens,totalEstimatedCost:r.totalEstimatedCost}).where(N(t.executionId,n))}async function er(e,t,n,r){let i=F`coalesce((select sum(${n.inputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,a=F`coalesce((select sum(${n.outputTokens}) from ${n} where ${n.executionId} = ${r}), 0)`,o=F`coalesce((select sum(${n.estimatedCost}) from ${n} where ${n.executionId} = ${r}), 0)`,s=F`exists(
|
|
2
2
|
select 1 from ${n}
|
|
3
3
|
where ${n.executionId} = ${r}
|
|
4
4
|
and (${n.inputTokens} is not null
|
package/dist/package.json
CHANGED
package/dist/rules/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-
|
|
1
|
+
import { C as RuleSetOptions, S as Rule, _ as JsonObjectShape, a as JsonObjectSchema, b as NotCondition, c as RuleSetOptionsSchema, d as CompoundCondition, f as Condition, g as JsonObject, h as FieldOperator, i as FieldOperatorSchema, l as ScalarValueSchema, m as FieldCondition, n as ExpressionConditionSchema, o as JsonValueSchema, p as ExpressionCondition, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema, u as AndCondition, v as JsonPrimitive, w as ScalarValue, x as OrCondition, y as JsonValue } from "../schemas-CBBzvIh0.mjs";
|
|
2
2
|
|
|
3
3
|
//#region packages/rules/src/evaluator.d.ts
|
|
4
4
|
/**
|
package/dist/rules/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../esm-
|
|
1
|
+
import{t as e}from"../esm-DwiWcwH0.mjs";import{ConditionSchema as t,ExpressionConditionSchema as n,FieldConditionSchema as r,FieldOperatorSchema as i,JsonObjectSchema as a,JsonValueSchema as o,RuleSchema as s,RuleSetOptionsSchema as c,ScalarValueSchema as l}from"./schemas.mjs";import{compile as u}from"@makaio/framework/expression";const d=new Map,f=new Map;function p(e,t){if(`$and`in e){for(let n of e.$and)if(!p(n,t))return!1;return!0}if(`$or`in e){for(let n of e.$or)if(p(n,t))return!0;return!1}return`$not`in e?!p(e.$not,t):`$expr`in e?!!_(e.$expr).evalSync(t):h(g(t,e.field),e.operator)}function m(e,t,n={}){let{includeDisabled:r=!1}=n,i=[];for(let n of e)!r&&!n.enabled||p(n.condition,t)&&i.push(n);return i}function h(e,t){if(typeof t!=`object`||!t)return e===t;if(`$eq`in t)return e===t.$eq;if(`$ne`in t)return e!==t.$ne;if(`$in`in t)return t.$in.includes(e);if(`$nin`in t)return!t.$nin.includes(e);if(`$contains`in t)return Array.isArray(e)&&e.includes(t.$contains);if(`$containsPrefix`in t)return Array.isArray(e)&&e.some(e=>typeof e==`string`&&e.startsWith(t.$containsPrefix));if(`$exists`in t){let n=e!==void 0;return t.$exists?n:!n}return`$startsWith`in t?typeof e==`string`&&e.startsWith(t.$startsWith):`$endsWith`in t?typeof e==`string`&&e.endsWith(t.$endsWith):`$glob`in t?typeof e==`string`&&v(t.$glob).match(e):!1}function g(e,t){if(e==null)return;let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function _(e){return y(d,e,()=>u(e))}function v(t){return y(f,t,()=>new e(t))}function y(e,t,n){let r=e.get(t);if(r!==void 0)return e.delete(t),e.set(t,r),r;let i=n();if(e.set(t,i),e.size>256){let t=e.keys().next().value;t!==void 0&&e.delete(t)}return i}export{t as ConditionSchema,n as ExpressionConditionSchema,r as FieldConditionSchema,i as FieldOperatorSchema,a as JsonObjectSchema,o as JsonValueSchema,s as RuleSchema,c as RuleSetOptionsSchema,l as ScalarValueSchema,p as evaluate,m as evaluateRules};
|
package/dist/rules/schemas.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-
|
|
1
|
+
import { a as JsonObjectSchema, c as RuleSetOptionsSchema, i as FieldOperatorSchema, l as ScalarValueSchema, n as ExpressionConditionSchema, o as JsonValueSchema, r as FieldConditionSchema, s as RuleSchema, t as ConditionSchema } from "../schemas-CBBzvIh0.mjs";
|
|
2
2
|
export { ConditionSchema, ExpressionConditionSchema, FieldConditionSchema, FieldOperatorSchema, JsonObjectSchema, JsonValueSchema, RuleSchema, RuleSetOptionsSchema, ScalarValueSchema };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IMakaioBus } from "@makaio/framework/bus";
|
|
2
2
|
import { DispatchingAuth, TransportAuth } from "@makaio/framework/node/transports";
|
|
3
|
-
import { BridgeBrowserOptions, CoreBootOptions, CoreBootOptions as CoreBootOptions$1, CredentialProvider,
|
|
3
|
+
import { BridgeBrowserOptions, CoreBootOptions, CoreBootOptions as CoreBootOptions$1, CredentialProvider, DiscoveredExtension, ExplicitDescriptorDiscovery, ExtensionDiscovery, ExtensionNameCollisionError, FileConfigStorage, FileRegistryCache, FilesystemDescriptorDiscovery, FilesystemDescriptorDiscoveryOptions, FrameworkModuleResolver, HonoRouteGraph, HonoRouteGraph as HonoRouteGraph$1, HonoRouteGraphOptions, HttpContributionPhase, HttpRouteContribution, HttpRouteGraphBuilder, LoadExtensionsOptions, MachineKeyStatus, MachineKeyValidation, MakaioRuntime, MakaioRuntime as MakaioRuntime$1, MergedDescriptorDiscovery, NodeCredentialProvider, PersistedMachineIdentity, ServerTransportProvider, ServerTransportProvider as ServerTransportProvider$1, StoredCredentialProvider, TransportReadyInfo, bootMakaioRuntimeCore, bridgeExtensionBrowserEntries, createHonoRouteGraph, createHttpRouteGraphBuilder, entrypointStem, isCliContributionLike, isMakaioExtensionLike, isMissingOptionalRuntimePackage, isWithinDirectory, loadExtensions, loadOrCreateMachineIdentity, machineKeysExist, registerAdapterNameResolver, resolveConventionEntrypoint, resolveStaticModelRegistryPath, runMigrations, tryImport, validateMachineKeys } from "@makaio/framework/runtime-node";
|
|
4
4
|
|
|
5
5
|
//#region runtimes/bun/src/bus-server-transport.d.ts
|
|
6
6
|
/**
|
|
@@ -382,4 +382,4 @@ interface ReadBunServerEnvOptions {
|
|
|
382
382
|
*/
|
|
383
383
|
declare function readBunServerEnv(options: ReadBunServerEnvOptions): BunServerEnvConfig;
|
|
384
384
|
//#endregion
|
|
385
|
-
export { type ActiveBunHostExtensionIterator, type BridgeBrowserOptions, type BunBootMakaioRuntimeOptions, type BunBusServerTransportOptions, BunBusServerTransportProvider, type BunGracefulShutdownOptions, type BunHostContribution, type BunHostExtensionPackage, type BunHostRouter, type BunRouteGraphFetch, type BunRouteGraphUpgradeServer, type BunServer, type BunServerAddress, type BunServerEnvConfig, type BunWebSocketHandler, type CoreBootOptions, type CredentialProvider, type
|
|
385
|
+
export { type ActiveBunHostExtensionIterator, type BridgeBrowserOptions, type BunBootMakaioRuntimeOptions, type BunBusServerTransportOptions, BunBusServerTransportProvider, type BunGracefulShutdownOptions, type BunHostContribution, type BunHostExtensionPackage, type BunHostRouter, type BunRouteGraphFetch, type BunRouteGraphUpgradeServer, type BunServer, type BunServerAddress, type BunServerEnvConfig, type BunWebSocketHandler, type CoreBootOptions, type CredentialProvider, type DiscoveredExtension, ExplicitDescriptorDiscovery, type ExtensionDiscovery, ExtensionNameCollisionError, FileConfigStorage, FileRegistryCache, FilesystemDescriptorDiscovery, type FilesystemDescriptorDiscoveryOptions, type FrameworkModuleResolver, type HonoRouteGraph, type HonoRouteGraphOptions, type HttpContributionPhase, type HttpRouteContribution, type HttpRouteGraphBuilder, type InvalidBunServerEnvPolicy, type LoadExtensionsOptions, type MachineKeyStatus, type MachineKeyValidation, type MakaioRuntime, MergedDescriptorDiscovery, NodeCredentialProvider, type PersistedMachineIdentity, type ReadBunServerEnvOptions, type ServerTransportProvider, StoredCredentialProvider, type TransportReadyInfo, bootMakaioRuntime, bootMakaioRuntimeCore, bridgeExtensionBrowserEntries, collectActiveBunHostPackages, composeBunHostFetch, composeBunHostWebSocket, createBunHostRouter, createBunRouteGraphFetch, createGracefulShutdown, createHonoRouteGraph, createHttpRouteGraphBuilder, entrypointStem, isCliContributionLike, isMakaioExtensionLike, isMissingOptionalRuntimePackage, isWithinDirectory, loadExtensions, loadOrCreateMachineIdentity, machineKeysExist, normalizeBunHostPackages, readBunServerEnv, registerAdapterNameResolver, resolveConventionEntrypoint, resolveListeningPort, resolveStaticModelRegistryPath, runMigrations, tryImport, validateMachineKeys };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,
|
|
1
|
+
import{DispatchingAuth as e,createWebSocketCloseEvent as t}from"@makaio/framework/node/transports";import{HonoWebSocketBridge as n,startBusServer as r}from"@makaio/framework/node/bus-server";import{ExplicitDescriptorDiscovery as i,ExtensionNameCollisionError as a,FileConfigStorage as o,FileRegistryCache as s,FilesystemDescriptorDiscovery as c,MergedDescriptorDiscovery as l,NodeCredentialProvider as u,StoredCredentialProvider as d,bootMakaioRuntimeCore as f,bootMakaioRuntimeCore as ee,bridgeExtensionBrowserEntries as p,createHonoRouteGraph as m,createHttpRouteGraphBuilder as h,entrypointStem as g,isCliContributionLike as _,isMakaioExtensionLike as v,isMissingOptionalRuntimePackage as y,isWithinDirectory as b,loadExtensions as x,loadOrCreateMachineIdentity as S,machineKeysExist as C,registerAdapterNameResolver as w,resolveConventionEntrypoint as T,resolveStaticModelRegistryPath as E,runMigrations as D,tryImport as O,validateMachineKeys as k}from"@makaio/framework/runtime-node";import{isIP as A}from"node:net";var j=class{raw;eventListeners={message:new Set,close:new Set,error:new Set,open:new Set};constructor(e){this.raw=e}get readyState(){return this.raw.readyState}send(e){if(typeof e==`string`){this.raw.send(e);return}if(e instanceof Blob){e.arrayBuffer().then(e=>{this.raw.readyState===1&&this.raw.send(new Uint8Array(e))}).catch(()=>{this.dispatchError()});return}if(e instanceof ArrayBuffer){this.raw.send(new Uint8Array(e));return}ArrayBuffer.isView(e)&&this.raw.send(e)}close(e,t){this.raw.close(e,t)}addEventListener(e,t){this.eventListeners[e]?.add(t)}removeEventListener(e,t){this.eventListeners[e]?.delete(t)}dispatchMessage(e){let t=new MessageEvent(`message`,{data:e});for(let e of this.eventListeners.message)e(t)}dispatchClose(e,n){let r=t(e,n);for(let e of this.eventListeners.close)e(r)}dispatchError(){let e=new Event(`error`);for(let t of this.eventListeners.error)t(e)}},M=class{options;bridge;busServer=null;busReady=!1;connecting=!1;constructor(e){this.options=e,this.bridge=new n}get dispatchingAuth(){return this.options.auth instanceof e?this.options.auth:void 0}createWebSocketHandler(){let e=this.bridge,t=()=>this.busReady,n=new WeakMap;return{binaryType:`arraybuffer`,open(r){if(!t()){r.close(1013,`Bus server not ready`);return}let i=new j(r);n.set(r,i),e.accept(i)},message(e,t){n.get(e)?.dispatchMessage(t)},close(e,t,r){n.get(e)?.dispatchClose(t,r),n.delete(e)}}}async connect(e,t){if(this.connecting||this.busServer)throw Error(`[BunBusServerTransport] connect() called while transport is already connected or connecting`);this.connecting=!0;try{this.busServer=await r({websocket:this.bridge,bus:e,auth:this.options.auth,loopbackName:this.options.loopbackName??`bun`}),this.busReady=!0}catch(e){throw await this.stopBusServer(`startup error`),e}finally{this.connecting=!1}}async disconnect(){await this.stopBusServer(`shutdown`),this.bridge.close()}async stopBusServer(e){this.busReady=!1,this.busServer&&=(await this.busServer.stop().catch(t=>{console.error(`[BunBusServerTransport] Failed to stop bus server during ${e}:`,t)}),null)}};function te(e){if(e.headers.get(`upgrade`)?.toLowerCase()!==`websocket`)return!1;let{pathname:t}=new URL(e.url);return t===`/bus`?!0:t===`/`&&e.headers.get(`origin`)===null}function N(e){return(t,n)=>te(t)?n.upgrade(t)?void 0:new Response(`WebSocket upgrade failed`,{status:426,headers:{Upgrade:`websocket`}}):e.fetch(t)}function P(e){return e.port}async function F(e){let{port:t,hostname:n}=e.bunServer,r=e.createMount??(await import(`../create-static-mount-4B-mNtx1.mjs`)).defaultCreateMount;return ee(e.transport,t,n,{...e,createMount:r})}function I(e,t){let n=e,r=t;return{fetch(e,t){return n(e,t)},websocket:{binaryType:t.binaryType,open(e){r.open(e)},message(e,t){r.message(e,t)},close(e,t,n){r.close(e,t,n)}},activate(i){n=z(e,i),r=B(t,i)}}}function L(e){let t=[];return e.forEachActiveExtension((e,n)=>{V(n)&&t.push(n)}),t}function R(e){return Array.isArray(e)?e.flatMap(e=>R(e)):V(e)?[e]:[]}function z(e,t){return t.reduce((e,t)=>t.bun.createFetch?.(e)??e,e)}function B(e,t){return t.reduce((e,t)=>t.bun.createWebSocketHandler?.(e)??e,e)}function V(e){if(!U(e))return!1;let t=e.bun;return typeof e.name==`string`&&typeof e.displayName==`string`&&H(t)}function H(e){if(!U(e))return!1;let t=e.createFetch,n=e.createWebSocketHandler;return(t===void 0||typeof t==`function`)&&(n===void 0||typeof n==`function`)}function U(e){return typeof e==`object`&&!!e}function W(e){let t=e.timeoutMs??1e4,n=e.exit??(e=>process.exit(e)),r=!1;return async i=>{if(r)return;r=!0,console.info(`[${e.label}] ${i} received, shutting down...`);let a=setTimeout(()=>{console.error(`[${e.label}] Graceful shutdown timed out, forcing exit`),n(1)},t);try{process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutting down runtime...`),await e.runtime.shutdown(),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Stopping Bun server...`),G(e.bunServer,e.label),process.env.MAKAIO_DEBUG&&console.info(`[${e.label}] Shutdown complete`),clearTimeout(a),n(0)}catch(t){G(e.bunServer,e.label),clearTimeout(a),console.error(`[${e.label}] Shutdown error:`,t),n(1)}}}function G(e,t){let n=e.stop?.(!0);K(n)&&n.catch(e=>{console.warn(`[${t}] Bun server stop failed during shutdown:`,e)})}function K(e){return typeof e==`object`&&!!e&&typeof e.catch==`function`}const q=/^(?=.{1,253}$)(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/;function J(e){let t=e.env??process.env,n=e.defaultPort??3e3,r=e.defaultHost??`0.0.0.0`;return{port:Y(t.PORT,n,e),host:X(t.HOST,r,e)}}function Y(e,t,n){let r=e?.trim(),i=r&&/^\d+$/.test(r)?Number.parseInt(r,10):NaN;return Number.isInteger(i)&&i>=1&&i<=65535?i:e===void 0?t:Q(`Invalid PORT: ${e}`,t,n)}function X(e,t,n){let r=e?.trim();return r&&Z(r)?r:e===void 0?t:ne(`Invalid HOST: ${e}`,t,n)}function Z(e){return A(e)!==0||e===`localhost`||q.test(e)}function Q(e,t,n){return $(e,String(t),n),t}function ne(e,t,n){return $(e,t,n),t}function $(e,t,n){if((n.invalid??`throw`)===`throw`)throw Error(e);console.warn(`[${n.appName}] ${e}, falling back to ${t}`)}export{M as BunBusServerTransportProvider,i as ExplicitDescriptorDiscovery,a as ExtensionNameCollisionError,o as FileConfigStorage,s as FileRegistryCache,c as FilesystemDescriptorDiscovery,l as MergedDescriptorDiscovery,u as NodeCredentialProvider,d as StoredCredentialProvider,F as bootMakaioRuntime,f as bootMakaioRuntimeCore,p as bridgeExtensionBrowserEntries,L as collectActiveBunHostPackages,z as composeBunHostFetch,B as composeBunHostWebSocket,I as createBunHostRouter,N as createBunRouteGraphFetch,W as createGracefulShutdown,m as createHonoRouteGraph,h as createHttpRouteGraphBuilder,g as entrypointStem,_ as isCliContributionLike,v as isMakaioExtensionLike,y as isMissingOptionalRuntimePackage,b as isWithinDirectory,x as loadExtensions,S as loadOrCreateMachineIdentity,C as machineKeysExist,R as normalizeBunHostPackages,J as readBunServerEnv,w as registerAdapterNameResolver,T as resolveConventionEntrypoint,P as resolveListeningPort,E as resolveStaticModelRegistryPath,D as runMigrations,O as tryImport,k as validateMachineKeys};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { IMakaioBus } from "@makaio/framework/bus";
|
|
2
|
+
import { ConfigProvider } from "@makaio/framework/providers";
|
|
3
|
+
|
|
4
|
+
//#region runtimes/node/src/boot-config.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Keep only config-default entries for packages that will actually be loaded.
|
|
7
|
+
*
|
|
8
|
+
* Dropped names are reported in one diagnostic rather than discarded silently.
|
|
9
|
+
* These defaults are the weakest layer of the extension configuration chain, so
|
|
10
|
+
* a name that never reaches `coordinator.load()` — because the extension is
|
|
11
|
+
* disabled, ineligible for the running surface, or simply misspelled in a
|
|
12
|
+
* `makaio.config.*` file — means values an operator believes are in effect are
|
|
13
|
+
* not. Boot is unaffected either way; the entry has nothing to apply to.
|
|
14
|
+
* @param configDefaults - Combined descriptor defaults keyed by package name.
|
|
15
|
+
* @param loadedPackageNames - Package names passed to `coordinator.load()`.
|
|
16
|
+
* @returns Filtered defaults map aligned with the loaded package set.
|
|
17
|
+
*/
|
|
18
|
+
declare function filterConfigDefaultsForLoadedPackages(configDefaults: ReadonlyMap<string, Readonly<Record<string, unknown>>>, loadedPackageNames: ReadonlySet<string>): Map<string, Readonly<Record<string, unknown>>>;
|
|
19
|
+
/**
|
|
20
|
+
* Merge package config default maps while preserving per-package keys.
|
|
21
|
+
*
|
|
22
|
+
* Later maps override earlier values for the same package/key. This lets a
|
|
23
|
+
* config or host layer supply defaults without replacing unrelated descriptor
|
|
24
|
+
* defaults from the extension itself.
|
|
25
|
+
*
|
|
26
|
+
* This is the single merge rule for this layer. Every composition root — the
|
|
27
|
+
* runtime boot sequence, the CLI's `makaio.config.*` overlay, and the desktop
|
|
28
|
+
* hosts' overlay — routes through it, so the documented precedence chain
|
|
29
|
+
* (descriptor defaults, then host and config-file defaults, then stored
|
|
30
|
+
* records, then the operator layer) holds identically on every path.
|
|
31
|
+
* @param defaultsMaps - Config default maps ordered from lowest to highest
|
|
32
|
+
* precedence. `undefined` stands for an absent layer and is skipped, so a
|
|
33
|
+
* caller holding an optional map does not have to substitute an empty one.
|
|
34
|
+
* @returns Merged package config defaults.
|
|
35
|
+
*/
|
|
36
|
+
declare function mergePackageConfigDefaults(...defaultsMaps: ReadonlyArray<ReadonlyMap<string, Readonly<Record<string, unknown>>> | undefined>): Map<string, Readonly<Record<string, unknown>>>;
|
|
37
|
+
/**
|
|
38
|
+
* Register boot-owned config handlers on the bus.
|
|
39
|
+
* @param bus - Runtime bus.
|
|
40
|
+
* @param configProvider - Runtime config provider that owns effective config resolution.
|
|
41
|
+
* @returns Cleanup function for registered handlers.
|
|
42
|
+
*/
|
|
43
|
+
declare function registerConfigHandlers(bus: IMakaioBus, configProvider: ConfigProvider): () => void;
|
|
44
|
+
//#endregion
|
|
45
|
+
export { filterConfigDefaultsForLoadedPackages, mergePackageConfigDefaults, registerConfigHandlers };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{summarizeDiagnosticText as e}from"@makaio/framework/utils";import{ConfigSchema as t,ConfigSubjects as n}from"@makaio/framework/contracts";function r(t,n){let r=new Map,i=[];for(let[e,a]of t)n.has(e)?r.set(e,a):i.push(e);if(i.length>0){let t=i.map(t=>e(t)).join(`, `);console.warn(`[boot] Package config defaults have no loaded package and were dropped: ${t}`)}return r}function i(...e){let t=new Map;for(let n of e)if(n!==void 0)for(let[e,r]of n)t.set(e,{...t.get(e)??{},...r});return t}function a(e,r){let i=[e.on(n.get,async e=>{let t=await r.getConfig();e.setResult({config:t})}),e.on(n.update,async e=>{let n=t.parse(e.payload.config),i=await r.prepareConfigForPersistence(n);await r.saveConfig(i),e.setResult({success:!0})})];return()=>{for(let e of i)e()}}export{r as filterConfigDefaultsForLoadedPackages,i as mergePackageConfigDefaults,a as registerConfigHandlers};
|