@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,95 @@
|
|
|
1
|
+
import{adapterSessionClaims as e,adapterSessionClaimsDual as t,agents as n,agentsDual as r,runtimeInstanceIncarnationCounters as i,runtimeInstanceIncarnationCountersDual as a,runtimeInstances as o,runtimeInstancesDual as s,sessions as c,sessionsDual as l}from"./services/session/storage/schema.mjs";import"./schema-Cz6-4_Dn.mjs";import{a as u,n as d,o as f}from"./namespace-CMntzAPI.mjs";import{C as p,Ct as m,D as h,E as g,F as _,G as v,I as ee,J as y,K as te,N as ne,P as re,Q as b,S as ie,St as ae,T as oe,U as se,V as ce,W as le,X as x,Y as ue,Z as S,_ as de,_t as fe,at as pe,bt as me,ct as he,d as ge,dt as _e,f as ve,g as ye,gt as be,h as xe,it as Se,l as Ce,lt as we,m as Te,mt as Ee,p as De,pt as Oe,q as ke,rt as Ae,st as je,u as Me,ut as Ne,v as Pe,vt as Fe,w as Ie,xt as Le,y as Re,z as ze}from"./handlers-mjky_fP2.mjs";import{TurnStorageSubjects as C}from"./services/turn/namespace.mjs";import{a as w,n as Be,r as Ve,t as He}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as T}from"./services/session/storage/namespace.mjs";import{AdapterRuntimeSubjects as Ue}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as E}from"./services/session/messages/namespace.mjs";import{o as We}from"./provider-context-D6GIZ5DC.mjs";import{n as Ge}from"./namespace-Bo6-o_rW.mjs";import{a as Ke,c as qe,d as Je,f as Ye,i as Xe,l as Ze,o as Qe,s as $e,u as et}from"./ownership-memory-handler-C-y9zQf8.mjs";import{z as D}from"zod";import{createBusNamespace as tt}from"@makaio/framework/core";import{AdapterSubjects as O,AgentSubjects as k,CanonicalModelSubjects as nt,CapabilitySubjects as rt,ClientSubjects as it,CompressionModeSchema as at,FORK_SESSION_LINEAGE_KIND as ot,ForkTransformsSchema as st,MessageRoutingSchema as ct,MessageStorageSubjects as lt,ROOT_SESSION_LINEAGE_KIND as ut,SessionContextSchema as dt,SessionDiscoveredSchema as ft,SessionOwnershipSettleMovementRequestSchema as pt,SessionOwnershipStorageSubjects as A,SessionRecordMetadataSchema as mt,SessionStorageSetRequestSchema as ht,SessionStorageUpdateSchema as gt,SessionSubjects as j,TurnIngestionMarkerSchema as _t,compareMessageCursorAsc as vt,compareMessageCursorDesc as yt,isCanonicalModelParseError as bt,isInactiveSafeLeadDesignationMutation as xt,messageToCursor as M,normalizeSessionOwnershipClaimRequest as St,parseCanonicalModel as Ct,resolveResumableAdapterSessionId as wt,teardownWasObserved as Tt}from"@makaio/framework/contracts";import{MakaioBus as Et,NoHandlerError as Dt,TimeoutError as Ot}from"@makaio/framework/bus";import{KernelSubjects as kt}from"@makaio/framework/kernel";import{BaseService as At}from"@makaio/framework/service-base";import{blob as jt,index as Mt,integer as Nt,primaryKey as Pt,sqliteTable as Ft,text as It,uniqueIndex as Lt}from"drizzle-orm/sqlite-core";import{index as Rt,primaryKey as zt}from"drizzle-orm/pg-core";import{acquireTransactionLocks as Bt,defineDialectSchema as Vt,defineDualTable as Ht,didAffectRows as N,executeTransaction as Ut,getRawSqlExecutor as Wt,getStorageEngine as Gt,resolveSchema as P,resolveStorageEngine as Kt}from"@makaio/framework/storage/drizzle";import{and as F,asc as qt,count as Jt,desc as Yt,eq as I,gt as Xt,gte as Zt,inArray as L,isNotNull as Qt,isNull as R,lt as $t,lte as en,ne as tn,not as nn,or as rn,sql as z}from"drizzle-orm";import{createStorageNamespaceDefinition as an}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as on}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as sn}from"@makaio/framework/adapters";async function cn(e,t,n,r){try{let t=await e.requestOptional(A.getRuntimeInstance,{instanceId:n.ownerInstanceId,machineId:n.machineId});if(t.handled&&t.data.instance!==null&&t.data.instance.retiredAt!==null)return!0}catch{}try{let i=await e.requestOptional(O.stopAgent,{adapterId:n.adapterId,agentId:t,ownerInstanceId:n.ownerInstanceId,...r&&{teardown:`connector-only`}});return i.handled&&Tt(i.data.evidence)}catch{return!1}}function ln(e,t,n){let r=new Map;for(let t of e){if(t.ownerInstanceId===null)return null;let e={adapterId:t.adapterId,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId};r.set(`${e.ownerInstanceId}\0${e.machineId}\0${e.adapterId}`,e)}if(t!==void 0&&n!==void 0){let e={adapterId:n,machineId:t.machineId,ownerInstanceId:t.instanceId};r.set(`${e.ownerInstanceId}\0${e.machineId}\0${e.adapterId}`,e)}return[...r.values()]}async function un(e,t,n={releaseClaims:!0}){let r=await e.requestOptional(A.read,{agentId:t}).catch(()=>void 0);if(r===void 0)return{released:!1,claimCount:0};let i=r.handled?r.data.ownership:null;if(i===null)return{released:!1,claimCount:0};let a=i.claims,o=await e.requestOptional(w.get,{agentId:t}).catch(()=>void 0),s=o?.handled?o.data.agent:null,c=ln(a,s?.runtimeOwner,s?.adapterId),l=c!==null&&await Promise.all(c.map(r=>cn(e,t,r,!n.releaseClaims))),u=l!==!1&&l.every(Boolean);if(!n.releaseClaims)return{released:!1,claimCount:a.length};if(a.length===0)return{released:u,claimCount:0};try{let n=await e.request(j.ownership.release,{agentId:t,disposition:u?`released`:`abandoned`});return{released:u&&n.markedClaims.length===0&&n.releasedProviderSessionIds.length===a.length,claimCount:a.length}}catch{try{await e.request(j.ownership.release,{agentId:t,disposition:`abandoned`})}catch{}return{released:!1,claimCount:a.length}}}function dn(e,t){if(t!==void 0){if(t.outcome===`lead-conflict`){console.debug(`[session.agent.added] lead designation for ${e} lost to ${t.currentLeadAgentId??`no lead`}`);return}t.outcome!==`claimed`&&t.outcome!==`idempotent`&&console.debug(`[session.agent.added] lead designation for ${e} refused: ${t.outcome}`)}}function fn(e){return Error(`[session.agent.removed] Failed to terminalize agent ${e}`)}async function pn(e){try{await e();return}catch(e){return e}}function mn(e){return e.on(j.agent.added,async t=>{let n=await e.requestOptional(T.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;if(!r)return;let i=t.payload.role??(r.leadAgentId?`member`:`lead`),a=i===`lead`?await fe(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:r.leadAgentId??null}):void 0;i===`lead`&&dn(t.payload.agentId,a);let o=a?.outcome===`claimed`||a?.outcome===`idempotent`,s=i===`lead`&&a===void 0;if(!r.adapterName&&(o||s)){let n=o?t.payload.agentId:r.leadAgentId;await hn(e,t.payload,n);return}await e.requestOptional(T.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})})}async function hn(e,t,n){let r=await e.requestOptional(T.update,{sessionId:t.sessionId,lastActivityAt:Date.now(),identity:{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId},expectIdentityOpenForLead:n??null});!r.handled||r.data.success||await e.requestOptional(T.update,{sessionId:t.sessionId,lastActivityAt:Date.now()})}function gn(e){return e.on(j.agent.removed,async t=>{let n=await e.requestOptional(T.get,{sessionId:t.payload.sessionId});if(!(n.handled&&n.data.session))return;let r=await pn(async()=>{let n=await e.requestOptional(w.updateStatus,{agentId:t.payload.agentId,status:`disposed`});if(!n.handled||!n.data.success)throw fn(t.payload.agentId)}),i=await pn(async()=>{await fe(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:t.payload.agentId,clear:!0})}),a=await pn(async()=>{await un(e,t.payload.agentId,{releaseClaims:r===void 0})}),o=await pn(async()=>{await e.requestOptional(T.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})});if(r!==void 0)throw r;if(i!==void 0)throw i;if(a!==void 0)throw a;if(o!==void 0)throw o})}function _n(e){return e.on(k.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(w.get,{agentId:n}),c=s.handled?s.data.agent:null;c&&!c.adapterSessionId&&await e.requestOptional(w.updateRuntime,{agentId:n,adapterSessionId:r}),await e.requestOptional(T.update,{sessionId:o,reconcileAdapterSession:{agentId:n,adapterName:i,adapterId:a,adapterSessionId:r,lastActivityAt:Date.now()}})})}async function vn(e,t){try{let n=await e.requestOptional(O.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function yn(e,t){if(t!==void 0)return t;let n=await e.requestOptional(Ue.getMachineId,{});return n.handled?n.data.machineId:void 0}async function bn(e,t,n,r,i){let a=pe(t,n);return he(_e({intent:`resume`,session:t,localMachineId:i,adapterSupportsNative:await vn(e,r),targetAdapterName:n.adapterName,currentCwd:n.cwd,targetCwd:n.cwd,resumeIdentity:a}),a.adapterSessionId)}function xn(e,t){let{agentId:n,storedAdapterId:r}=e;switch(t?.kind){case`rehydrated`:case`joined`:return{agentId:n,adapterId:t.agent.adapterId,success:!0};case`deferred`:return{agentId:n,adapterId:r,success:!0};case`refused`:return{agentId:n,adapterId:r,success:!1,error:`Ownership reservation refused: ${t.message??t.outcome}`};case`lost`:return{agentId:n,adapterId:r,success:!1,error:`Another runtime claimed this agent’s recovery`};case`stale-plan`:return{agentId:n,adapterId:r,success:!1,error:`Agent currency kept changing while its restart was planned`};default:return{agentId:n,adapterId:r,success:!1,error:`Restart produced no result`}}}async function Sn(e,t,n,r){let{agentId:i,adapterId:a}=n;for(let o=0;o<=1;o+=1){let s=await oe(e,n,async()=>{let a=await re(e,i);if(a===null)return{kind:`lost`};if(!_(a))return a.agent.status===`disposed`?{kind:`refused`,outcome:`agent-disposed`}:{kind:`lost`};Object.assign(n,a.agent);let o=Se(await Ae(e,{adapterName:n.adapterName,storedAdapterId:n.adapterId,...r!==void 0&&{machineId:r}}));if(o===void 0)return{kind:`deferred`,reason:`machine-identity-unavailable`};let s=await bn(e,t,n,o.adapterId,o.machineId);if(we(s))return{kind:`deferred`,reason:`machine-identity-unavailable`};let c=await ne(e,a,o,s.resumeAdapterSessionId);return{agent:n,sessionId:n.sessionId,instance:o,resumeProviderSessionId:s.resumeAdapterSessionId,recoveryGuard:c,...n.cwd!==void 0&&{cwd:n.cwd},...n.model!==void 0&&{model:n.model}}});if(!(s?.kind===`stale-plan`&&o<1))return xn({agentId:i,storedAdapterId:a},s)}return{agentId:i,adapterId:a,success:!1,error:`Agent restart exhausted its recovery-plan retry`}}function Cn(e){let t=e instanceof Error?e.cause:void 0;return t instanceof Error?t.message:e instanceof Error?e.message:String(e)}function wn(e){return e.on(j.restartAgents,async t=>{let{sessionId:n,machineId:r}=t.payload,i=await e.requestOptional(w.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await yn(e,r),c=await e.requestOptional(T.get,{sessionId:n}),l=c.handled?c.data.session:null;for(let t of a){if(l===null){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:`Session row could not be read; agent has no reachable recovery path`});continue}try{o.push(await Sn(e,l,t,s))}catch(e){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:Cn(e)})}}t.setResult({sessionId:n,results:o})})}function Tn(e){let t=be({bus:e.bus,machineId:e.machineId,topology:e.topology??`shared-machine`,...e.instanceId!==void 0&&{instanceId:e.instanceId}});return{cleanups:[On(e),kn(e),An(e),En(e),jn(e),wn(e.bus),Mn(e),Nn(e),Pn(e),mn(e.bus),gn(e.bus),_n(e.bus),...t.cleanups,Ee(e.bus)],ownership:t.ownership}}function En(e){let{bus:t}=e;return t.on(j.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(j.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await Dn(t,n,r);if(s!==void 0){a.abort(),e.setResult({completion:s});return}try{let t=await o;e.setResult({completion:t.payload})}catch(e){throw e instanceof Error&&e.name===`OnceTimeoutError`?new Ot(`session.turn.await`,i):e}})}async function Dn(e,t,n){let r=await e.requestOptional(C.get,{turnId:n}),i=r.handled?r.data.turn:null;if(!(i?.sessionId!==t||i.status!==`completed`&&i.status!==`error`))return{sessionId:t,turnId:n,turnNumber:i.turnNumber,success:i.status===`completed`,...i.error!==void 0&&{error:i.error},...i.usage!==void 0&&{usage:i.usage},...i.initiator!==void 0&&{initiator:i.initiator}}}function On(e){let{bus:t}=e;return t.on(j.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(j.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),ee={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},y=await t.requestOptional(T.set,{sessionId:h,session:ee,ifAbsent:!0});if(y.handled&&!y.data.success){e.setResult({sessionId:h});return}await t.emit(j.created,{sessionId:h,createdAt:ee.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function kn(e){let{bus:t}=e;return t.on(j.get,async e=>{let n=await t.requestOptional(T.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function An(e){let{bus:t}=e;return t.on(j.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(T.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],l=s.handled?s.data.total:0;e.setResult({sessions:c,total:l})})}function jn(e){let{bus:t}=e;return t.on(j.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`closed`){e.setResult({success:!0});return}if(i.status!==`active`){e.setResult({success:!1});return}let a=await t.requestOptional(T.update,{sessionId:n,status:`closed`,lastActivityAt:Date.now(),expectedStatus:[`active`]});if(a.handled&&a.data.success){await t.emit(j.closed,{sessionId:n}),e.setResult({success:!0});return}let o=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:o.handled&&o.data.session?.status===`closed`})})}function Mn(e){let{bus:t}=e;return t.on(j.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(T.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(j.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function Nn(e){let{bus:t}=e;return t.on(j.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1});return}if(i.status===`archived`){e.setResult({success:!0});return}if(i.status!==`closed`){e.setResult({success:!1});return}let a=await t.requestOptional(T.update,{sessionId:n,status:`archived`,lastActivityAt:Date.now(),expectedStatus:[`closed`]});if(a.handled&&a.data.success){await t.emit(j.archived,{sessionId:n}),e.setResult({success:!0});return}let o=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:o.handled&&o.data.session?.status===`archived`})})}function Pn(e){let{bus:t}=e;return t.on(j.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(T.get,{sessionId:n}),i=r.handled?r.data.session:null;if(!i){e.setResult({success:!1,error:`Session not found`});return}if(i.status!==`archived`){e.setResult({success:!1,error:`Cannot purge session unless archived. Call close then archive first.`});return}let a=await t.requestOptional(w.listBySession,{sessionId:n}),o=a.handled?a.data.agents:[];if((await Promise.all(o.map(async e=>{let n=await t.requestOptional(w.updateStatus,{agentId:e.agentId,status:`disposed`});return n.handled&&n.data.success}))).some(e=>!e)){e.setResult({success:!1,error:`Cannot purge session because an agent could not be sealed.`});return}if((await Promise.all(o.map(e=>un(t,e.agentId)))).some(e=>!e.released)){e.setResult({success:!1,error:`Cannot purge session while an owner runtime may still hold an agent connector.`});return}let s=await t.requestOptional(T.list,{status:`all`}),c=s.handled?s.data.sessions:[];for(let e of c)e.parentSessionId===n&&await t.requestOptional(T.update,{sessionId:e.sessionId,parentSessionId:null});let l=await t.requestOptional(d.getEvents,{sessionId:n,options:{limit:1}}),u=l.handled?l.data.totalCount:0;await t.requestOptional(d.deleteBySession,{sessionId:n}),await t.requestOptional(T.delete,{sessionId:n}),await t.emit(j.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:u})})}var Fn=class extends At{options;ownership;requireOwnershipInstanceId(){let e=this.ownership?.instanceId;if(e===void 0)throw Error(`Session ownership authority is not initialized`);return e}constructor(e=Et,t={}){super(e),this.options=t}async onInit(){let e=Tn({bus:this.bus,...this.options.machineId!==void 0&&{machineId:this.options.machineId},...this.options.topology!==void 0&&{topology:this.options.topology},instanceId:crypto.randomUUID()});this.ownership=e.ownership,this.addCleanup(async()=>{this.ownership===e.ownership&&(this.ownership=void 0),await e.ownership.close()});for(let t of e.cleanups)this.addCleanup(t);this.addCleanup(m(this.bus)),this.addCleanup(this.scheduleOwnershipReconcile()),await this.reconcileOrphanedTurns()}async onDestroy(){let e=this.ownership;this.ownership=void 0,await e?.close()}scheduleOwnershipReconcile(){let e=this.bus.on(kt.phase.coordinatorReady,async t=>{e(),t.setResult({});try{await this.bus.request(j.ownership.reconcile,{})}catch(e){console.error(`[MakaioSessionService] Ownership reconcile failed:`,e)}});return e}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(C.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(C.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});if(t){let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`,ingestionMarker:`live`};await me(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(j.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function In(e,t){let n=t===void 0?``:` machineId="${t}"`;return Error(`No adapter found for adapterName="${e}"${n}. Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}function B(e,t){return JSON.stringify([t??null,e])}var Ln=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e;let t=this.bus.on(O.initialized,e=>{this.registry.set(B(e.payload.adapterName),e.payload.adapterId),this.registry.set(B(e.payload.adapterName,e.payload.machineId),e.payload.adapterId)}),n=this.bus.on(O.deinitialized,e=>{let t=[B(e.payload.adapterName),B(e.payload.adapterName,e.payload.machineId)];for(let n of t)this.registry.get(n)===e.payload.adapterId&&this.registry.delete(n)});this.cleanup=()=>{t(),n()}}resolve(e){let t=this.registry.get(B(e));if(!t)throw In(e);return t}async resolveAvailable(e,t){try{let{adapterId:n}=await this.bus.request(Ue.resolveId,{adapterName:e,...t!==void 0&&{machineId:t}});return this.registry.set(B(e,t),n),n}catch{let n=this.registry.get(B(e,t));if(n)return n;throw In(e,t)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function Rn(e,t){e.emit(E.stored,{message:structuredClone(t)});try{await e.request(d.append,{event:{sessionId:t.sessionId,eventId:crypto.randomUUID(),timestamp:t.timestamp,type:`message`,payload:{messageId:t.messageId,turnId:t.turnId,role:t.role}}})}catch(e){console.error(`[MessageStorage] Failed to emit session event for message:`,e)}}function zn(e){return{messageId:e.messageId,turnId:e.turnId,sessionId:e.sessionId,role:e.role,contentText:e.contentText,blocks:JSON.parse(e.blocks),agentId:e.agentId??void 0,adapterSessionId:e.adapterSessionId??void 0,adapterMessageId:e.adapterMessageId??void 0,timestamp:e.timestamp,editOf:e.editOf??void 0,origin:e.origin??void 0}}function Bn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.append,async e=>{let{message:i,emitEvent:a}=e.payload,o=i.messageId??crypto.randomUUID(),s={...i,messageId:o,blocks:i.blocks??[]};await n.insert(r).values({messageId:o,turnId:s.turnId,sessionId:s.sessionId,role:s.role,contentText:s.contentText,blocks:JSON.stringify(s.blocks),agentId:s.agentId??null,adapterSessionId:s.adapterSessionId??null,adapterMessageId:s.adapterMessageId??null,timestamp:s.timestamp,editOf:s.editOf??null,origin:s.origin??null}),e.setResult({message:s}),(a??!0)&&await Rn(t,s)})}function Vn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?Yt:qt,l=n.select().from(r).where(I(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?rn($t(r.timestamp,a.timestamp),F(I(r.timestamp,a.timestamp),o?en(r.messageId,a.messageId):$t(r.messageId,a.messageId))):rn(Xt(r.timestamp,a.timestamp),F(I(r.timestamp,a.timestamp),o?Zt(r.messageId,a.messageId):Xt(r.messageId,a.messageId)));l=n.select().from(r).where(F(I(r.sessionId,t),e)).orderBy(c(r.timestamp),c(r.messageId))}let u=i??100,d=await l.limit(u+1),f=d.length>u,p=f?d.slice(0,u):d,m=f&&p.length>0?M(p[p.length-1]):null;e.setResult({messages:p.map(zn),nextCursor:m})})}function Hn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(I(r.turnId,t)).orderBy(qt(r.timestamp));e.setResult({messages:i.map(zn)})})}function Un(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(I(r.messageId,t)).limit(1);e.setResult({message:i?zn(i):null})})}function Wn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f),i=Kt(n).fts;return t.on(E.search,async e=>{let{query:t,sessionId:a,limit:o}=e.payload,s=o??50;if(!t.trim()){e.setResult({messages:[],total:0});return}let{rows:c,total:l}=await i.searchMessages(n,r,{query:t,sessionId:a,limit:s});e.setResult({messages:c.map(zn),total:l})})}function Gn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f),i=Kt(n).fts;return t.on(E.ftsSearch,async e=>{let{query:t,sessionId:a,limit:o=20}=e.payload;if(!t.trim()){e.setResult({results:[],total:0});return}let{results:s,total:c}=await i.searchMessageExcerpts(n,r,{query:t,sessionId:a,limit:o});e.setResult({results:s,total:c})})}function Kn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(I(r.adapterMessageId,t)).limit(1);e.setResult({message:i?zn(i):null})})}function qn(e){let{bus:t,db:n}=e,{messages:r}=P(n,f);return t.on(E.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(F(I(r.adapterMessageId,i),I(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(I(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(F(I(r.adapterMessageId,i),I(r.sessionId,a))).limit(1);if(t===void 0)throw Error(`Message upsert conflict winner disappeared before reread completed`);t.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(I(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await Rn(t,{messageId:h,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u??void 0,adapterSessionId:d??void 0,adapterMessageId:i,timestamp:f,editOf:void 0,origin:p??void 0})})}function Jn(e,t){let n={bus:e,db:t},r=[Bn(n),Vn(n),Hn(n),Un(n),Wn(n),Gn(n),qn(n),Kn(n)];return()=>r.forEach(e=>e())}function Yn(e,t){return vt(M(e),M(t))}function Xn(e,t){return yt(M(e),M(t))}function Zn(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function Qn(e,t,n,r){if(r===null)return;let i=e.get(n);if(i===void 0||i.turnId!==null)return;i.turnId=r;let a=t.get(r)??[];a.includes(n)||(a.push(n),t.set(r,a))}function $n(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=er(t,n,r,i),o=[tr(e,t,a),nr(e,t,n),rr(e,t,r),ir(e,t),ar(e,t),or(e,t,r,i,a),sr(e,t,n,r,i)];return()=>o.forEach(e=>e())}function er(e,t,n,r){return i=>{e.set(i.messageId,i);let a=t.get(i.sessionId)??[];if(a.push(i.messageId),t.set(i.sessionId,a),i.turnId){let e=n.get(i.turnId)??[];e.push(i.messageId),n.set(i.turnId,e)}i.adapterMessageId&&Zn(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function tr(e,t,n){return e.on(E.append,async t=>{let{message:r,emitEvent:i}=t.payload,a=r.messageId??crypto.randomUUID(),o={...r,messageId:a,blocks:r.blocks??[]};n(o),t.setResult({message:o}),(i??!0)&&await Rn(e,o)})}function nr(e,t,n){return e.on(E.getBySession,async e=>{let{sessionId:r,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=n.get(r)??[],l=s===`desc`?Xn:Yn,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?yt(M(e),a):vt(M(e),a);return o?t>=0:t>0}));let d=i??100,f=u.length>d,p=f?u.slice(0,d):u,m=f&&p.length>0?M(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function rr(e,t,n){return e.on(E.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(Yn);e.setResult({messages:i})})}function ir(e,t){return e.on(E.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function ar(e,t){return e.on(E.search,async e=>{let{query:n,sessionId:r,limit:i}=e.payload,a=i??50,o=n.trim().toLowerCase(),s=[...t.values()].filter(e=>r?e.sessionId===r:!0),c=o.length===0?[]:s.filter(e=>e.contentText.toLowerCase().includes(o));c.sort(Yn),e.setResult({messages:c.slice(0,a),total:c.length})})}function or(e,t,n,r,i){return e.on(E.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){Qn(t,n,g,c),a.setResult({messageId:g,created:!1});return}let _=crypto.randomUUID(),v={messageId:_,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f??void 0,adapterSessionId:p??void 0,adapterMessageId:o,timestamp:m,editOf:void 0,origin:h??void 0};i(v),a.setResult({messageId:_,created:!0}),await Rn(e,v)})}function sr(e,t,n,r,i){return e.on(T.delete,e=>{let{sessionId:a}=e.payload,o=n.get(a)??[];for(let e of o){let n=t.get(e);if(n){if(t.delete(e),n.turnId){let t=(r.get(n.turnId)??[]).filter(t=>t!==e);t.length===0?r.delete(n.turnId):r.set(n.turnId,t)}if(n.adapterMessageId){let e=i.get(n.sessionId);e?.delete(n.adapterMessageId),e?.size===0&&i.delete(n.sessionId)}}}n.delete(a)})}const cr=Ht(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(u,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[Pt({columns:[e.messageId,e.agentId,e.status]}),Mt(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[zt({columns:[e.messageId,e.agentId,e.status]}),Rt(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),lr=cr.sqlite,ur=an(`messageRouting`,{schemas:{record:{request:ct,response:D.object({success:D.boolean()})},getByMessage:{request:D.object({messageId:D.string()}),response:D.object({routing:D.array(ct)})},getCompleted:{request:D.object({messageId:D.string()}),response:D.object({agentIds:D.array(D.string())})},isComplete:{request:D.object({messageId:D.string(),targetAgentIds:D.array(D.string())}),response:D.object({complete:D.boolean(),pending:D.array(D.string())})}},extensions:{drizzle:{messageRouting:lr}}}),V=ur.subjects,dr=cr.postgres,fr=Vt({messageRouting:lr},{messageRouting:dr});function pr(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function mr(e,t){let{messageRouting:n}=P(t,fr),r=[];return r.push(e.on(V.record,async e=>{let{messageId:r,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(n).values({messageId:r,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[n.messageId,n.agentId,n.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),r.push(e.on(V.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(I(n.messageId,r));e.setResult({routing:i.map(pr)})})),r.push(e.on(V.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(F(I(n.messageId,r),I(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(V.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(F(I(n.messageId,r),I(n.status,`completed`))),o=new Set(a.map(e=>e.agentId)),s=i.filter(e=>!o.has(e));e.setResult({complete:s.length===0,pending:s})})),()=>r.forEach(e=>e())}const hr=`[session.sendMessage]`,gr={droppedAgentIds:new Set,recoveringAgentIds:new Set,deferredAgentIds:new Set,arbitratedAgentIds:new Set};function H(e,t){for(let n of t)e.add(n)}function U(e,t){let n=new Set(t.map(e=>e.agentId));return new Set([...e].filter(e=>n.has(e)))}function _r(e,t,n){let r=U(e,n);return{recovering:r,arbitrated:new Set([...U(t,n)].filter(e=>r.has(e)))}}function vr(e,t){if(e>=2)throw new S(`start-unresolved`,`[session.start] session ${t} did not stabilize after 2 deferral convergence passes`);return e+1}async function yr(e,t,n,r,i,a){let o=n,s=new Set(r),c=new Set(i),l=U(a,o),u,d=new Set(l),f=0;for(;d.size>0;){f=vr(f,t.sessionId);let n=await xr(e,t,o,d,l);o=n.targetAgents,{recovering:s,arbitrated:c}=_r(s,c,o),H(s,n.recovering),H(c,U(n.arbitrated,o)),c=new Set([...U(c,o)].filter(e=>s.has(e))),H(l,U(n.deferred,o)),u=n.recoveryContext??u,d=U(n.deferred,o)}let p=await br(e,t.session,o,s,c);for(H(l,p.deferredAgentIds),u=p.recoveryContext??u,s=new Set,c=new Set,d=U(p.deferredAgentIds,o);d.size>0;){f=vr(f,t.sessionId);let n=await xr(e,t,o,d,l);if(o=n.targetAgents,{recovering:s,arbitrated:c}=_r(s,c,o),H(s,n.recovering),H(c,U(n.arbitrated,o)),c=new Set([...U(c,o)].filter(e=>s.has(e))),H(l,U(n.deferred,o)),u=n.recoveryContext??u,s.size>0){let n=await br(e,t.session,o,s,c);H(l,n.deferredAgentIds),u=n.recoveryContext??u,d=U(n.deferredAgentIds,o),s=new Set,c=new Set}else d=U(n.deferred,o)}return{targetAgents:o,deferredAgentIds:l,recoveryContext:u}}async function br(e,t,n,r,i){let a=await Promise.all(n.map(async t=>{if(t.runtimeOwner!==void 0&&!(r.has(t.agentId)&&!i.has(t.agentId)))return e.bus.requestOptional(O.getAgent,{agentId:t.agentId,adapterId:t.adapterId,ownerInstanceId:t.runtimeOwner.instanceId})})),o=[],s=new Set;for(let[t,r]of n.entries()){if(r.runtimeOwner===void 0){s.add(r.agentId);continue}let n=a[t];if(n===void 0){o.push(r);continue}let c=n.handled?n.data.agent:void 0;if(i.has(r.agentId)){if(c==null){o.push(r);continue}await Ie(e.bus,r.agentId);continue}(!n.handled||c===null)&&o.push(r)}if(o.length===0)return{recoveryContext:void 0,deferredAgentIds:s};let c=je,l=await ee(e.bus,t,c),u=Ne(c)??null,d=0;for(let t of o)(await ie(e.bus,t,{resumeProviderSessionId:u,machineId:e.machineId})).deferred?s.add(t.agentId):d+=1;return d===0?{recoveryContext:void 0,deferredAgentIds:s}:{recoveryContext:l,deferredAgentIds:s}}async function xr(e,t,n,r,i){let a=n.filter(e=>r.has(e.agentId)),o=de(t.session,n,r);if(o.length>0)return{targetAgents:o,recovering:gr.recoveringAgentIds,arbitrated:gr.arbitratedAgentIds,deferred:gr.deferredAgentIds};Re(t.targetSpec)!==`lead-default`&&Pe(hr,t.sessionId,i);let s=await e.startReplacementLeadAgent(t.agentSelection??xe(a[0],e.machineId)),c=le(t.session,t.targetSpec);return c.length===0&&Pe(hr,t.sessionId,i),{targetAgents:c,recovering:s.recoveringAgentIds,arbitrated:s.arbitratedAgentIds,deferred:s.deferredAgentIds,recoveryContext:await ee(e.bus,t.session,je)}}const Sr={writesAgentStatus:!0,connectorOnlyTeardown:!0};function Cr(e,t){return e.leadTransition.kind===`replace`?{...Sr,reservation:t}:Sr}async function wr(e,t,n){let r=Fe(),i;try{i=await b(e,{sessionId:t.sessionId,agentId:n,adapterName:t.adapterName,instance:t.instance,role:`lead`,resumeProviderSessionId:null,expectedLeadAgentId:t.expectedLeadAgentId,claimToken:r})}catch(t){throw await e.requestOptional(j.ownership.release,{agentId:n,claimToken:r,disposition:`released`}).catch(()=>void 0),t}return i.outcome===`reserved`?{kind:`reserved`,reservation:i.reservation}:i.outcome===`lead-conflict`?{kind:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}:i.outcome===`session-not-active`?{kind:`refused`,outcome:i.outcome,status:i.status}:{kind:`refused`,outcome:i.outcome}}async function Tr(e,t,n,r,i,a,o){if(i.agentId===n&&i.adapterId===t.instance.adapterId&&i.sessionId===t.sessionId&&i.ownerInstanceId===a)return{...i,ownerInstanceId:i.ownerInstanceId};throw await y(e,n,o,r),await x(e,t.instance.adapterId,n,a,!0),new S(`start-failed`,`[session.start] ${i.ownerInstanceId===void 0?`adapter omitted its owner instance`:i.ownerInstanceId===a?`adapter response identity mismatch`:`adapter owner mismatch`} for agent ${n}`)}async function Er(e,t,n,r,i,a){let o,s={...t.startRequest,adapterId:t.instance.adapterId,sessionId:t.sessionId,role:`lead`,agentId:n,ownerInstanceId:r.ownerInstanceId};try{o=t.dispatch?await t.dispatch(s):await e.request(O.startAgent,s)}catch(o){throw await y(e,n,a,i),await x(e,t.instance.adapterId,n,r.ownerInstanceId,!0),o}if(!o.success){let s=new S(`start-failed`,`[session.start] Failed to start agent (sessionId=${t.sessionId}, adapterName=${t.adapterName}): ${o.message}`);throw o.dispatch===`not-dispatched`?await ue(e,n,r):(await y(e,n,a,i),await x(e,t.instance.adapterId,n,r.ownerInstanceId,!0)),s}return Tr(e,t,n,i,o,r.ownerInstanceId,a)}async function Dr(e,t,n){await ue(e,n,void 0,{sessionId:t.sessionId,agentId:n,expectedLeadAgentId:t.expectedLeadAgentId,transition:t.leadTransition.kind})}async function Or(e,t,n){let r=De({agentId:n,instance:t.instance,adapterName:t.adapterName,sessionId:t.sessionId,role:`lead`,runtime:t.startRequest,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},...t.personaId!==void 0&&{personaId:t.personaId},...t.profileId!==void 0&&{profileId:t.profileId}}),i;try{await e.requestOptional(w.set,{agentId:n,agent:r}),i=await wr(e,t,n)}catch(r){throw await Dr(e,t,n),r}if(i.kind===`lead-conflict`){if(!(await ue(e,n,void 0)).rowDeleted)throw new S(`start-unresolved`,`[session.start] lost lead designation for agent ${n}, but its rollback could not be confirmed`);return{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId}}if(i.kind===`refused`)throw await ue(e,n,void 0),new S(i.outcome===`session-not-active`?`session-not-active`:`start-failed`,`[session.start] reservation for agent ${n} was refused: ${i.outcome}`,void 0,void 0,i.status);let{reservation:a}=i,o=Cr(t,a),s=new ke([a.claim?.claimToken]),c=await Er(e,t,n,a,s,o),l=Fe();return s.add(l),await g(e,{sessionId:t.sessionId,agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,policy:o,claimTokens:s,settlementClaimToken:l,admitSessionBeforeFinalAdoption:!0,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},machineId:t.instance.machineId,ownerInstanceId:t.instance.ownerInstanceId},c.adapterSessionId,c.settlementAckToken,c.ownerInstanceId),{outcome:`started`,agent:{...r,status:`idle`,...c.adapterSessionId!==void 0&&{adapterSessionId:c.adapterSessionId}}}}async function kr(e,t){if(Se(t.instance)===void 0)throw new S(`start-failed`,`[session.start] lead transition requires a machine-scoped adapter instance (sessionId=${t.sessionId})`);let n=crypto.randomUUID(),r;if(await Oe(n,async()=>(r=await Or(e,t,n),r.outcome===`started`?`connected`:`no-connector`)).settled,r===void 0)throw new S(`start-failed`,`[session.start] start for agent ${n} produced no result`);return r}function Ar(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var jr=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];admittedTargetsByMessageId=new Map;terminalPairs=new Map;pendingMessageAdmissions=new Set;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(Ar(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return Ar(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this.pendingMessageAdmissions.size>0}addMessage(e){this.admitMessage(e,this._agentIds),this.commitMessageAdmission(e)}claimMessageAppend(e){this.admitMessage(e,this._agentIds)}releaseMessageAppend(e){this.rollbackMessageAdmission(e)}admitMessage(e,t){if(this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} already admitted message ${e}`);if(t.length===0||new Set(t).size!==t.length)throw Error(`Turn ${this.turnId} requires a non-empty unique target set for message ${e}`);if(t.some(e=>!this.hasAgent(e)))throw Error(`Turn ${this.turnId} cannot admit targets outside its immutable participant set`);this._messageIds.push(e),this.admittedTargetsByMessageId.set(e,new Set(t)),this.pendingMessageAdmissions.add(e)}commitMessageAdmission(e){if(!this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} cannot commit unknown message ${e}`);this.pendingMessageAdmissions.delete(e)}rollbackMessageAdmission(e){let t=this.admittedTargetsByMessageId.get(e);if(!t)return;if([...t].some(t=>this.terminalPairs.has(this.pairKey(e,t))))throw Error(`Turn ${this.turnId} cannot roll back terminal message ${e}`);this.admittedTargetsByMessageId.delete(e),this.pendingMessageAdmissions.delete(e);let n=this._messageIds.indexOf(e);n>=0&&this._messageIds.splice(n,1)}recordPairTerminal(e,t,n,r){if(!this.admittedTargetsByMessageId.get(e)?.has(t))return{accepted:!1,turnComplete:!1};let i=this.pairKey(e,t);return this.terminalPairs.has(i)?{accepted:!1,turnComplete:!1}:(this.terminalPairs.set(i,{outcome:n,...r!==void 0&&{error:r}}),this.isComplete()?{accepted:!0,turnComplete:!0,result:this.getResult()}:{accepted:!0,turnComplete:!1})}hasAdmittedPair(e,t){return this.admittedTargetsByMessageId.get(e)?.has(t)??!1}get admittedPairs(){return[...this.admittedTargetsByMessageId].flatMap(([e,t])=>[...t].map(t=>({messageId:e,agentId:t})))}hasAgent(e){return this._agentIds.includes(e)}isComplete(){if(this.admittedTargetsByMessageId.size===0||this.pendingMessageAdmissions.size>0)return!1;for(let[e,t]of this.admittedTargetsByMessageId)for(let n of t)if(!this.terminalPairs.has(this.pairKey(e,n)))return!1;return!0}getResult(){let e=[...this.terminalPairs.values()].filter(e=>e.outcome===`error`).map(e=>e.error??`Unknown error`);return{success:e.length===0,errors:e}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}pairKey(e,t){return JSON.stringify([e,t])}},Mr=class e{byAgent=new Map;coverageByAgent=new Map;ambiguousAgents=new Set;providerCalls=new Set;add(e){if(e.granularity===`latest-request-gauge`||this.ambiguousAgents.has(e.agentId))return;let t=this.coverageByAgent.get(e.agentId);if(t!==void 0&&t!==e.granularity){this.byAgent.delete(e.agentId),this.ambiguousAgents.add(e.agentId);return}if(e.granularity===`provider-call`&&e.llmCallId!==void 0){let t=`${e.agentId}:${e.llmCallId}`;if(this.providerCalls.has(t))return;this.providerCalls.add(t)}this.coverageByAgent.set(e.agentId,e.granularity);let n=this.byAgent.get(e.agentId);n?(n.inputTokens+=e.inputTokens,e.inputCachedTokens>0&&(n.cachedInputTokens=(n.cachedInputTokens??0)+e.inputCachedTokens),n.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,...e.inputCachedTokens>0&&{cachedInputTokens:e.inputCachedTokens},outputTokens:e.outputTokens})}preview(t){let n=new e;for(let[e,t]of this.byAgent)n.byAgent.set(e,{...t});for(let[e,t]of this.coverageByAgent)n.coverageByAgent.set(e,t);for(let e of this.ambiguousAgents)n.ambiguousAgents.add(e);for(let e of this.providerCalls)n.providerCalls.add(e);for(let e of t)n.add(e);return n.snapshot()}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n=0,r={};for(let[i,a]of this.byAgent)e+=a.inputTokens,t+=a.cachedInputTokens??0,n+=a.outputTokens,r[i]={...a};return{total:{inputTokens:e,...t>0&&{cachedInputTokens:t},outputTokens:n},byAgent:r}}flush(){let e=this.snapshot();return this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear(),e}clear(){this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear()}};const Nr=Symbol(`turnReservation`);var Pr=class{activeTurns=new Map;reservations=new Map;pendingAcquisitions=new Map;pendingPreparations=new Map;preparedTurnIds=new Set;pendingFinalizations=new Map;finalizingTurnIds=new Set;async awaitFinalization(e,t){let n=this.pendingFinalizations.get(e);if(n)return await n;let r=t();this.pendingFinalizations.set(e,r);try{await r}finally{this.pendingFinalizations.get(e)===r&&this.pendingFinalizations.delete(e)}}getActive(e){return this.activeTurns.get(e)}findActiveByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}async acquire(e,t){let n=this.activeTurns.get(e);if(n)return{turn:n,isNew:!1};let r=this.pendingAcquisitions.get(e);if(r)return{turn:await r,isNew:!1};let i=t(this.reserve(e));this.pendingAcquisitions.set(e,i);try{return{turn:await i,isNew:!0}}finally{this.pendingAcquisitions.get(e)===i&&this.pendingAcquisitions.delete(e)}}reserve(e){if(this.activeTurns.has(e)||this.reservations.has(e))throw Error(`Session ${e} already has a routable or pending turn`);let t={sessionId:e,[Nr]:!0};return this.reservations.set(e,t),t}release(e){this.reservations.get(e.sessionId)===e&&this.reservations.delete(e.sessionId)}activate(e,t){if(this.reservations.get(e.sessionId)!==e)throw Error(`Turn reservation for session ${e.sessionId} is no longer active`);this.activeTurns.set(e.sessionId,t),this.release(e)}clearActive(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),this.preparedTurnIds.delete(e.turnId),!0):!1}tryAdmitMessage(e,t,n){if(this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId)return;e.admitMessage(t,n);let r=!1;return{turn:e,messageId:t,agentIds:[...n],commit:()=>{r||(r=!0,e.commitMessageAdmission(t))},rollback:async()=>{r||(r=!0,e.rollbackMessageAdmission(t))}}}beginFinalization(e){return this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId?!1:(this.finalizingTurnIds.add(e.turnId),this.clearActive(e),!0)}finishFinalization(e){this.finalizingTurnIds.delete(e.turnId)}beginPreparation(e){if(this.preparedTurnIds.has(e.turnId))return{turn:e,isOwner:!1,ready:Promise.resolve()};let t=this.pendingPreparations.get(e.turnId);if(t)return{turn:e,isOwner:!1,ready:t.ready};let n,r,i=new Promise((e,t)=>{n=e,r=t});return i.catch(()=>{}),this.pendingPreparations.set(e.turnId,{turn:e,ready:i,resolve:n,reject:r}),{turn:e,isOwner:!0,ready:i}}completePreparation(e){if(!e.isOwner)throw Error(`Only the preparation owner can complete turn ${e.turn.turnId}`);let t=this.pendingPreparations.get(e.turn.turnId);if(!t||t.turn!==e.turn)throw Error(`Turn preparation for ${e.turn.turnId} is no longer active`);this.pendingPreparations.delete(e.turn.turnId),this.preparedTurnIds.add(e.turn.turnId),t.resolve()}failPreparation(e,t){if(!e.isOwner)throw Error(`Only the preparation owner can fail turn ${e.turn.turnId}`);let n=this.pendingPreparations.get(e.turn.turnId);!n||n.turn!==e.turn||(this.pendingPreparations.delete(e.turn.turnId),n.reject(t))}clear(){this.activeTurns.clear(),this.reservations.clear(),this.pendingAcquisitions.clear(),this.pendingFinalizations.clear(),this.finalizingTurnIds.clear();for(let e of this.pendingPreparations.values())e.reject(Error(`Turn slot registry was cleared during preparation`));this.pendingPreparations.clear(),this.preparedTurnIds.clear()}},Fr=class{bus;resolveTurn;timeoutMs;settledPairs=new Map;waiters=new Map;cleanup;destroyed=!1;constructor(e,t,n){this.bus=e,this.resolveTurn=t,this.timeoutMs=n,this.cleanup=e.on(j.turn.assistantPersistenceSettled,e=>{if(this.destroyed)return;let{sessionId:t,turnId:n,messageId:r,agentId:i}=e.payload,a=this.resolveTurn(n);if(!a||a.sessionId!==t||!a.hasAdmittedPair(r,i))return;let o=this.settledPairs.get(n)??new Set;o.add(this.pairKey(r,i)),this.settledPairs.set(n,o),this.isSettled(a)&&this.waiters.get(n)?.settle()})}async waitFor(e){if(this.destroyed||e.agentIds.length===0||this.isSettled(e))return;let t=await this.bus.requestOptional(E.getByTurn,{turnId:e.turnId});this.destroyed||!t.handled||await new Promise(t=>{let n=()=>{clearTimeout(r),this.waiters.delete(e.turnId),t()},r=setTimeout(n,this.timeoutMs);this.waiters.set(e.turnId,{settle:n}),this.isSettled(e)&&n()})}clear(e){this.waiters.get(e)?.settle(),this.settledPairs.delete(e)}destroy(){if(!this.destroyed){this.destroyed=!0,this.cleanup();for(let e of[...this.waiters.values()])e.settle();this.waiters.clear(),this.settledPairs.clear()}}isSettled(e){if(e.admittedPairs.length===0)return!0;let t=this.settledPairs.get(e.turnId);return t!==void 0&&e.admittedPairs.every(({messageId:e,agentId:n})=>t.has(this.pairKey(e,n)))}pairKey(e,t){return JSON.stringify([e,t])}};function Ir(e,t,n){return{...e,isPreparationOwner:t.isOwner,commit:()=>{e.commit(),t.isOwner&&n.completePreparation(t)},rollback:async(r=`message-setup-failed:${e.messageId}`)=>{let i=e.rollback();if(t.isOwner){let a={success:!1,errors:[r]};n.beginSetupFailure(e,a),n.failPreparation(t,Error(`Message ${e.messageId} setup failed`)),await i,await n.finalizeSetupFailure(e,a);return}await i,e.turn.isComplete()&&await n.finalizeCompletedLedger(e,e.turn.getResult())}}}function Lr(e){return{status:e.success?`completed`:`error`,error:e.errors.length>0?e.errors.join(`; `):void 0}}function Rr(e,t){if(e===void 0||t===void 0)return e===t;if(e.total.inputTokens!==t.total.inputTokens||e.total.cachedInputTokens!==t.total.cachedInputTokens||e.total.outputTokens!==t.total.outputTokens||e.total.cost!==t.total.cost)return!1;let n=e.byAgent??{},r=t.byAgent??{},i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length?i.every((e,t)=>{if(e!==a[t])return!1;let i=n[e],o=r[e];return i?.inputTokens===o?.inputTokens&&i?.cachedInputTokens===o?.cachedInputTokens&&i?.outputTokens===o?.outputTokens&&i?.cost===o?.cost}):!1}async function zr(e,t,n,r,i){let a=Lr(n),o=await e.requestOptional(C.complete,{turnId:t.turnId,status:a.status,...i!==void 0&&{expectedStatus:i},error:a.error,usage:r??null});if(!o.handled)return{handled:!1,transitioned:!0};let s=o.data.turn;if(!(s.status===a.status&&s.error===a.error))return{handled:!0,transitioned:!1};if(Rr(s.usage,r))return{handled:!0,transitioned:!0};if(o.data.transitioned)throw Error(`Turn completion storage returned non-canonical usage for transitioned turn ${t.turnId}`);let c=await e.requestOptional(C.complete,{turnId:t.turnId,status:a.status,error:a.error,usage:r??null});if(!c.handled||!Rr(c.data.turn.usage,r))throw Error(`Turn completion usage reconciliation did not persist the canonical snapshot for ${t.turnId}`);if(c.data.turn.status!==a.status||c.data.turn.error!==a.error)throw Error(`Turn completion usage reconciliation changed terminal metadata for ${t.turnId}`);return{handled:!0,transitioned:!0}}async function Br(e){let t=e.turn.turnId,n=e.currentUsage;for(;;){let r=e.bufferedUsage.get(t);if(r===void 0||r.length===0)return n;e.bufferedUsage.delete(t);let i=e.usageAccumulator?e.usageAccumulator.preview(r):n;try{await zr(e.bus,e.turn,e.result,i)}catch(n){let i=e.bufferedUsage.get(t)??[];throw e.bufferedUsage.set(t,[...r,...i]),n}for(let t of r)e.usageAccumulator?.add(t);n=e.usageAccumulator?.snapshot()??i}}function Vr(e,t,n){return[e.on(k.usage,e=>{let{agentId:n,turnId:r,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,llmCallId:c}=e.payload;if(!r){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${n}).`);return}let l=t.resolveUsageTurn(r);if(!l||!l.hasAgent(n))return;let u={agentId:n,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,...c&&{llmCallId:c}};t.isCompletionInFlight(l.turnId)?t.bufferUsage(l.turnId,u):t.addUsage(l,u)}),e.on(k.complete,async r=>{let{agentId:i,outcome:a,error:o,turnId:s,messageId:c}=r.payload;r.payload._import||!s||await Hr(e,t,{agentId:i,messageId:c,outcome:a??`completed`,error:a===`error`?o:void 0,turnId:s,onTurnComplete:n})})]}async function Hr(e,t,n){let r=t.resolveCompletionTurn(n.turnId);if(!r?.hasAgent(n.agentId))return;let i=r.recordPairTerminal(n.messageId,n.agentId,n.outcome,n.error);if(!i.accepted){t.canRetry(r.turnId)&&await t.retry(r.turnId);return}i.turnComplete&&t.beginFinalization(r,i.result);let a=e.emit(j.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:n.messageId,agentId:n.agentId,outcome:n.outcome,...n.error!==void 0&&{error:n.error}}),o=i.turnComplete?n.onTurnComplete(r,i.result):Promise.resolve(),[s,c]=await Promise.allSettled([a,o]);if(s.status===`rejected`&&console.error(`[SessionTurnManager] Failed to emit user-message completion:`,s.reason),c.status===`rejected`)throw c.reason}var Ur=class{bus;turnSlots=new Pr;usageAccumulators=new Map;completingTurnIds=new Set;completionPromises=new Map;completingTurns=new Map;closedUsageAdmissions=new Set;pendingTerminalCompletions=new Map;pendingTerminalResults=new Map;setupFinalizingTurnIds=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantPersistenceBarrier;cleanups=[];constructor(e){this.bus=e,this.assistantPersistenceBarrier=new Fr(e,e=>this.findTurnForCompletion(e),1500)}async acquireTurn(e,t,n,r){await this.retryRetainedCompletionsForSession(e);let i=await this.turnSlots.acquire(e,e=>this.createReservedTurn(e,t,n,r));if(t.some(e=>!i.turn.hasAgent(e)))throw Error(`Turn ${i.turn.turnId} cannot route agents outside its immutable participant set (sessionId=${e})`);return i}async reserveTurn(e){return await this.retryRetainedCompletionsForSession(e),this.turnSlots.reserve(e)}releaseTurnReservation(e){this.turnSlots.release(e)}async acquireMessageAdmission(e,t,n,r,i){for(;;){let a=await this.acquireTurn(e,t,r,i),o=this.turnSlots.tryAdmitMessage(a.turn,n,t);if(!o)continue;let s=this.turnSlots.beginPreparation(a.turn);if(!s.isOwner)try{await s.ready}catch{await o.rollback();continue}return this.composeAdmissionWithPreparation(o,s)}}admitReservedMessage(e,t,n){let r=this.turnSlots.tryAdmitMessage(e,t,n);if(!r)throw Error(`Turn ${e.turnId} is no longer routable for message admission`);return this.composeAdmissionWithPreparation(r,this.turnSlots.beginPreparation(e))}async createReservedTurn(e,t,n,r){let{sessionId:i}=e;try{let a=await this.bus.requestOptional(C.create,{sessionId:i,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),o,s;if(a.handled)o=a.data.turn.turnId,s=a.data.turn.turnNumber;else{o=r??crypto.randomUUID();let e=(this.syntheticTurnCounters.get(i)??0)+1;this.syntheticTurnCounters.set(i,e),s=e}let c=new jr({sessionId:i,agentIds:t,turnId:o,turnNumber:s,initiator:n});return this.turnSlots.activate(e,c),this.usageAccumulators.set(c.turnId,new Mr),c}finally{this.releaseTurnReservation(e)}}async createTurn(e,t,n,r){return this.createReservedTurn(await this.reserveTurn(e),t,n,r)}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId))}async failActiveTurnBeforeDispatch(e,t){if(this.turnSlots.getActive(e.sessionId)?.turnId!==e.turnId)return;let n={success:!1,errors:[t]};this.beginFinalization(e,n,`setup`),await this.completeTurn(e,n)}async failActiveTurnSetup(e,t){e.messageIds.length>0||e.hasPendingMessageAppends||await this.failActiveTurnBeforeDispatch(e,t)}clearActiveRoutingTurn(e){return this.turnSlots.clearActive(e)}composeAdmissionWithPreparation(e,t){return Ir(e,t,{completePreparation:e=>this.turnSlots.completePreparation(e),failPreparation:(e,t)=>this.turnSlots.failPreparation(e,t),beginSetupFailure:(e,t)=>this.beginFinalization(e.turn,t,`setup`),finalizeSetupFailure:async(e,t)=>this.completeTurn(e.turn,t),finalizeCompletedLedger:async(e,t)=>{this.beginFinalization(e.turn,t,`normal`),await this.completeTurn(e.turn,t)}})}registerCompletionHandlers(e){this.cleanups.push(...Vr(this.bus,this.completionEventHooks(),e))}async completeTurn(e,t){let n=this.completionPromises.get(e.turnId);if(n)return await n;let r=this.completeTurnInternal(e,t);this.completionPromises.set(e.turnId,r);try{await r}finally{this.completionPromises.get(e.turnId)===r&&this.completionPromises.delete(e.turnId)}}async completeTurnInternal(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId);let n=this.beginFinalization(e,t,`normal`),r=this.usageAccumulators.get(e.turnId),i=r?.snapshot(),a=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let t=await zr(this.bus,e,n,i,`active`);if(a=t.handled,!t.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,r);return}this.pendingTerminalCompletions.set(e.turnId,a),i=await Br({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion})}}catch(t){throw this.completingTurnIds.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}let o=!1;try{a&&!this.setupFinalizingTurnIds.has(e.turnId)&&await this.assistantPersistenceBarrier.waitFor(e),this.closedUsageAdmissions.add(e.turnId),i=await Br({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion});let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:n.success,error:n.errors.length>0?n.errors.join(`; `):void 0,...i!==void 0&&{usage:i},initiator:e.initiator,ingestionMarker:`live`};await me(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:t}),o=!0,await this.bus.emit(j.turn.completed,t)}catch(t){throw o?this.clearCompletionState(e,r):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,r)}async retryTurnCompletion(e){let t=this.completingTurns.get(e),n=this.pendingTerminalResults.get(e);if(t===void 0||n===void 0)throw Error(`Turn ${e} has no retryable completion`);await this.completeTurn(t,n)}async retryRetainedCompletionsForSession(e){await this.turnSlots.awaitFinalization(e,async()=>{for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.setupFinalizingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:this.completingTurnIds.has(t.turnId)||await this.retryTurnCompletion(t.turnId)}for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.pendingTerminalResults.has(t.turnId)&&!this.completingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:await this.retryTurnCompletion(t.turnId)}})}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId),this.completingTurns.delete(e.turnId),this.closedUsageAdmissions.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId),this.pendingTerminalResults.delete(e.turnId),this.setupFinalizingTurnIds.delete(e.turnId),this.turnSlots.finishFinalization(e)}getActiveTurn(e){return this.turnSlots.getActive(e)}findActiveTurnByTurnId(e){return this.turnSlots.findActiveByTurnId(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnSlots.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completionPromises.clear(),this.completingTurns.clear(),this.closedUsageAdmissions.clear(),this.pendingTerminalCompletions.clear(),this.pendingTerminalResults.clear(),this.setupFinalizingTurnIds.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear(),this.assistantPersistenceBarrier.destroy()}async recordAgentCompletion(e,t,n,r,i,a){await Hr(this.bus,this.completionEventHooks(),{agentId:e,messageId:t,outcome:n,...r!==void 0&&{error:r},turnId:a,onTurnComplete:i})}completionEventHooks(){return{resolveUsageTurn:e=>this.findTurnForUsage(e),resolveCompletionTurn:e=>this.findTurnForCompletion(e),isCompletionInFlight:e=>this.completingTurnIds.has(e),addUsage:(e,t)=>this.usageAccumulators.get(e.turnId)?.add(t),bufferUsage:(e,t)=>this.bufferUsageDuringCompletion(e,t),canRetry:e=>this.pendingTerminalResults.has(e)&&!this.completingTurnIds.has(e),retry:async e=>this.retryTurnCompletion(e),beginFinalization:(e,t)=>this.beginFinalization(e,t,`normal`)}}beginFinalization(e,t,n){let r=this.pendingTerminalResults.get(e.turnId)??t;return this.completingTurns.set(e.turnId,e),this.pendingTerminalResults.set(e.turnId,r),n===`setup`&&this.setupFinalizingTurnIds.add(e.turnId),this.turnSlots.beginFinalization(e),r}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){let t=this.findActiveTurnByTurnId(e);if(t!==void 0)return t;if(!this.closedUsageAdmissions.has(e))return this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}};async function Wr(e,t,n){let r=ge(t.adapterName),i=ge(t.adapterId);if(!r&&!i)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${n})`);if(i)return ve(e,i,r,`[SessionOrchestrator.sendMessage] (sessionId=${n}) `);if(r===void 0)throw Error(`[SessionOrchestrator.sendMessage] adapterName could not be resolved (sessionId=${n})`);return r}async function Gr(e,t,n,r,i){if(!t)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${n})`);if(t.kind===`adapter`)return t;if(t.kind===`canonical-model`)return await Kr(e,t,n,r,i);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${n})`)}async function Kr(e,t,n,r,i){let a=Ct(t.model);if(bt(a))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${t.model}" (sessionId=${n}): ${a.message}`);if(a.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${n})`);let o=await e.request(nt.resolve,{parsed:a,context:{sessionId:n,promptText:v(r),...i===void 0?{}:{sessionContext:i}}});return{...t,...o,kind:`adapter`,providerConfigId:t.providerConfigId??o.providerConfigId}}async function qr(e,t,n){let{adapterName:r,sessionId:i,machineId:a}=n,o={adapterId:ge(t.adapterId),machineId:ge(t.machineId)},s=Me(o,{sessionId:i,errorPrefix:`[SessionOrchestrator.sendMessage] `});if(s!==void 0)throw new S(`start-failed`,s);if(o.adapterId===void 0){let t=await Ae(e,{adapterName:r,machineId:a});if(t===void 0||t.machineId===void 0||t.ownerInstanceId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] adapter runtime did not prove a live owner for ${r} (sessionId=${i})`);return{adapterId:t.adapterId,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId}}let c=await Ae(e,{adapterName:r,adapterId:o.adapterId,...o.machineId!==void 0&&{machineId:o.machineId}});if(c?.machineId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${o.adapterId} produced no machine (sessionId=${i})`);if(c.ownerInstanceId===void 0)throw new S(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${o.adapterId} produced no owner (sessionId=${i})`);return{adapterId:c.adapterId,machineId:c.machineId,ownerInstanceId:c.ownerInstanceId}}async function Jr(e,t,n){let r=await Wr(e,t,n.sessionId),i=t.providerConfigId===void 0?void 0:We(e,{adapterName:r,providerConfigId:t.providerConfigId});i?.catch(()=>void 0);let a=await qr(e,t,{...n,adapterName:r}),o=await i;return{adapterName:r,instance:a,providerContext:o,providerConfigId:t.providerConfigId??o?.providerConfigId}}var Yr=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=Et,t){this.bus=e,this.machineId=t,this.turnManager=new Ur(e),this.adapterRegistry=new Ln(e),this.cleanups.push(Ce(this.bus,this.turnManager,t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(j.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=ce(o,e.payload.extensionId),l=e.payload.sessionContext?dt.parse(e.payload.sessionContext):void 0,{sessionId:u,session:d}=await se(this.bus,t,l,e.payload.originWindowId,this.machineId),f=await p(this.bus,d);ye(`[session.sendMessage]`,u,d,r);let m=new Set(f.recoveringAgentIds),g=new Set(f.arbitratedAgentIds),_=new Set(f.deferredAgentIds);if(d.agents.length===0){let e=await this.startLeadAgent(d,u,a,n,l,{kind:`fresh`});for(let t of e.recoveringAgentIds)m.add(t);for(let t of e.arbitratedAgentIds)g.add(t);for(let t of e.deferredAgentIds)_.add(t)}let ee=le(d,r);if(ee.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${u})`);let{targetAgents:y,deferredAgentIds:ne,recoveryContext:re}=await yr({bus:this.bus,machineId:this.machineId,startReplacementLeadAgent:e=>this.startLeadAgent(d,u,e,n,l,{kind:`replace`})},{session:d,sessionId:u,targetSpec:r,agentSelection:a,message:n,sessionContext:l},ee,m,g,_),b=crypto.randomUUID(),ie=te(n),oe=await this.turnManager.acquireMessageAdmission(u,y.map(e=>e.agentId),b,c,e.payload.turnId),x=oe.turn;try{if(!(await this.bus.requestOptional(E.append,{message:{messageId:b,turnId:x.turnId,sessionId:u,role:`user`,contentText:v(n),blocks:ie,timestamp:Date.now(),...s!==void 0&&{origin:s}}})).handled)throw Error(`Message storage append handler is not registered`);oe.isPreparationOwner&&await Le(this.bus,{sessionId:u,turnId:x.turnId,turnNumber:x.turnNumber,messageId:b,agentIds:[...x.agentIds],initiator:x.initiator,ingestionMarker:`live`}),await ae(this.bus,{sessionId:u,turnId:x.turnId,turnNumber:x.turnNumber,messageId:b,content:n,agentIds:y.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}}),oe.commit()}catch(e){try{await oe.rollback(`user-message-persistence-failed`)}catch(e){console.error(`[SessionOrchestrator] Failed to finalize rejected message setup:`,e)}throw e}for(let e of y)this.bus.requestOptional(V.record,{messageId:b,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:u,messageId:b,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});let ue=re?{...l,...re}:l;await h(this.bus,d,y,n,b,x,i,this.completeTurn.bind(this),this.turnManager,ue,e.payload.responseSchema),e.setResult({messageId:b,turnId:x.turnId,sessionId:u,...ne.size>0&&{deferredAgentIds:[...ne]}})}))}async startLeadAgent(e,t,n,r,i,a){let o=await Gr(this.bus,n,t,r,i),{adapterName:s,instance:c,providerContext:l,providerConfigId:u}=await Jr(this.bus,o,{sessionId:t,machineId:this.machineId,registry:this.adapterRegistry}),d=await kr(this.bus,{sessionId:t,instance:c,adapterName:s,leadTransition:a,expectedLeadAgentId:e.leadAgentId??null,...u!==void 0&&{providerConfigId:u},startRequest:Te(o,{adapterId:c.adapterId,sessionId:t,providerContext:l,sessionContext:i})});if(d.outcome===`started`)return e.agents.push(d.agent),e.leadAgentId=d.agent.agentId,{droppedAgentIds:new Set,recoveringAgentIds:new Set,deferredAgentIds:new Set,arbitratedAgentIds:new Set};let{session:f}=await this.bus.request(j.get,{sessionId:t});if(!f||f.agents.length===0)throw new S(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${d.currentLeadAgentId??`another start`}, which left no agent behind`);e.agents=f.agents,e.leadAgentId=f.leadAgentId;let m=await p(this.bus,e);if(e.agents.length===0)throw new S(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${d.currentLeadAgentId??`another start`}, whose agent did not survive its start`);return m}async completeTurn(e,t){await this.turnManager.completeTurn(e,t)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnManager.destroy(),this.adapterRegistry.destroy()}},Xr=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(E.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof Dt||console.warn(`[TurnContextEnricher] Failed to load turn-so-far context:`,e),[]}}async enrichForDeliveryMode(e,t,n){if(n!==`immediate`)return e;let r=await this.getTurnSoFarContext(t);return r.length===0?e:[...e??[],...r]}convertSessionMessagesToMessages(e){return e.map(e=>({role:e.role,blocks:e.blocks}))}};function Zr(e){let{bus:t}=e;return t.on(j.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(T.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function Qr(e){let{bus:t}=e;return t.on(j.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(T.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}let i=await t.requestOptional(T.update,{sessionId:n,status:`active`,lastActivityAt:Date.now(),expectedStatus:[`closed`]});if(i.handled&&i.data.success){await t.emit(j.resumed,{sessionId:n}),e.setResult({success:!0});return}let a=await t.requestOptional(T.get,{sessionId:n});e.setResult({success:a.handled&&a.data.session?.status===`active`})})}function $r(e){return e.on(Ge.listActions,e=>{let t=ze.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const ei=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function ti(e){return{...e.cwd!==void 0&&{cwd:e.cwd},...e.systemPrompt!==void 0&&{systemPrompt:e.systemPrompt},...e.allowedTools!==void 0&&{allowedTools:e.allowedTools},...e.disallowedTools!==void 0&&{disallowedTools:e.disallowedTools}}}var ni=class{bus;agentToSession=new Map;pendingAssistantResponses=new Map;cleanups=[];constructor(e=Et){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(j.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(j.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&this.agentToSession.delete(t);for(let[t,n]of this.pendingAssistantResponses)n.sessionId===e.payload.sessionId&&this.pendingAssistantResponses.delete(t)}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(j.turn.started,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.has(i)||this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(j.user_message.sent,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(j.user_message.acknowledged,e=>{let t=this.pendingKey(e.payload.turnId,e.payload.messageId,e.payload.agentId);this.pendingAssistantResponses.has(t)||this.pendingAssistantResponses.set(t,{sessionId:e.payload.sessionId,turnId:e.payload.turnId,messageId:e.payload.messageId,agentId:e.payload.agentId,blocks:[]})})),this.cleanups.push(this.bus.on(j.turn.assistantPersistenceSettled,e=>{let{turnId:t,messageId:n,agentId:r}=e.payload;this.pendingAssistantResponses.delete(this.pendingKey(t,n,r))})),this.cleanups.push(this.bus.on(j.turn.completed,e=>{let{sessionId:t,turnId:n}=e.payload;for(let[e,r]of this.pendingAssistantResponses)r.sessionId===t&&r.turnId===n&&this.pendingAssistantResponses.delete(e)}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(k.message,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.reasoning,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(k.tool.use,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(k.tool.completed,e=>{let t=this.pendingForProviderEvent(e.payload);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.blocks.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(k.complete,async e=>{if(e.payload._import){let{turnId:t,messageId:n,agentId:r}=e.payload;t&&this.pendingAssistantResponses.delete(this.pendingKey(t,n,r));return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o,turnId:s,messageId:c}=e.payload;if(!s)return;let l=this.pendingKey(s,c,t),u=this.pendingAssistantResponses.get(l);if(u){this.pendingAssistantResponses.delete(l);try{await this.storeAssistantMessage(u,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}finally{await this.bus.emit(j.turn.assistantPersistenceSettled,{sessionId:u.sessionId,turnId:u.turnId,agentId:t,messageId:u.messageId})}}}))}async storeAssistantMessage(e,t,n,r){let i=r===void 0?e.blocks:r.content===void 0?[]:[{type:`text`,content:r.content}];if(i.length===0&&!n)return;let a=i.filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
2
|
+
`),o=crypto.randomUUID();try{if(!(await this.bus.requestOptional(E.append,{message:{messageId:o,turnId:e.turnId,sessionId:e.sessionId,role:`assistant`,contentText:a||(n?`[Error: ${n}]`:``),blocks:i,agentId:e.agentId,adapterSessionId:t,timestamp:Date.now()}})).handled)return;let r=await this.bus.requestOptional(E.getByTurn,{turnId:e.turnId});if(r.handled){let t=r.data.messages.find(t=>t.role===`user`&&t.messageId===e.messageId);t&&await this.bus.requestOptional(V.record,{messageId:t.messageId,agentId:e.agentId,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.pendingAssistantResponses.clear()}pendingForProviderEvent(e){if(!(!e.turnId||!e.messageId))return this.pendingAssistantResponses.get(this.pendingKey(e.turnId,e.messageId,e.agentId))}pendingKey(e,t,n){return JSON.stringify([e,t,n])}},ri=class{bus;_sessionId;_extensionId;_turnId;_parentSessionId;contextTracker;contextContributions=new Map;constructor(e,t,n,r,i,a){this.bus=e,this._sessionId=t,this._extensionId=n,this._turnId=r,this._parentSessionId=i,this.contextTracker=a}get sessionId(){return this._sessionId}get turnId(){return this._turnId}get parentSessionId(){return this._parentSessionId}get extensionId(){return this._extensionId}async sendToAgent(e,t){await this.bus.request(j.sendMessage,{sessionId:this._sessionId,agentIds:[e],message:t,source:`extension`,extensionId:this._extensionId})}contributeContext(e,t){this.contextContributions.set(e,t)}getContributions(){return Object.fromEntries(this.contextContributions)}async fork(e){return(await this.bus.request(j.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(j.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(j.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(j.compressionRequested,{sessionId:this._sessionId,reason:e,source:`extension`,extensionId:this._extensionId})}async getContextWindowState(){if(this.contextTracker){let e=this.contextTracker.getSessionState(this._sessionId);if(e)return{currentTokens:e.currentTokens,maxTokens:e.maxTokens,percentage:e.percentage,level:e.level}}let{session:e}=await this.bus.request(j.get,{sessionId:this._sessionId});return!e||e.agents.length===0?{currentTokens:0,maxTokens:1,percentage:0,level:`ok`}:{currentTokens:0,maxTokens:2e5,percentage:0,level:`ok`}}async getChildSessions(){return(await this.bus.request(j.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function ii(e,t,n,r,i,a){return new ri(e,t,n,r,i,a)}const ai=l.postgres,oi=r.postgres,si=a.postgres,ci=s.postgres,li=t.postgres,W=Vt({sessions:c,agents:n,runtimeInstanceIncarnationCounters:i,runtimeInstances:o,adapterSessionClaims:e},{sessions:ai,agents:oi,runtimeInstanceIncarnationCounters:si,runtimeInstances:ci,adapterSessionClaims:li});function ui(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return F(n===null?R(t.clientId):I(t.clientId,n),r===null?R(t.clientAccountId):I(t.clientAccountId,r),i===null?R(t.lastClientIdentityObservation):I(t.lastClientIdentityObservation,i))}function di(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,...e.ownerMachineId!==null&&e.ownerInstanceId!==null?{runtimeOwner:{machineId:e.ownerMachineId,instanceId:e.ownerInstanceId}}:{},...e.recoveryAttemptId===null?{}:{recoveryAttemptId:e.recoveryAttemptId},role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0,allowedDirectories:e.allowedDirectories??void 0,providerConfigId:e.providerConfigId??void 0,personaId:e.personaId??void 0,profileId:e.profileId??void 0,harnessId:e.harnessId??void 0,clientId:e.clientId??void 0,compressionMode:e.compressionMode?at.parse(e.compressionMode):void 0,currentAdapterSessionId:e.currentAdapterSessionId??void 0,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function fi(e){return{agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,ownerMachineId:e.runtimeOwner?.machineId??null,ownerInstanceId:e.runtimeOwner?.instanceId??null,recoveryAttemptId:e.recoveryAttemptId??null,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??null,adapterSessionId:e.adapterSessionId??null,cwd:e.cwd??null,allowedDirectories:e.allowedDirectories??null,providerConfigId:e.providerConfigId??null,personaId:e.personaId??null,profileId:e.profileId??null,harnessId:e.harnessId??null,clientId:e.clientId??null,compressionMode:e.compressionMode??null}}function pi(e,t){let{adapterSessionId:n,ownerMachineId:r,ownerInstanceId:i,recoveryAttemptId:a,status:o,...s}=e;return{...s,status:z`CASE WHEN ${t.status} = 'disposed' THEN ${t.status} ELSE excluded.status END`}}function mi(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function hi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.get,async e=>{let[t]=await n.select().from(r).where(I(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?di(t):null})})}function gi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.set,async e=>{let{agent:t}=e.payload,i=fi(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:pi(i,r)});e.setResult({success:N(a)})})}function _i(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.delete,async e=>{let t=await n.delete(r).where(I(r.agentId,e.payload.agentId));e.setResult({success:N(t)})})}function vi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[I(r.adapterName,t)];i&&i!==`all`&&a.push(I(r.status,i));let o=a.length>1?F(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(di)})})}function yi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(I(r.sessionId,t));e.setResult({agents:i.map(di)})})}function bi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.updateStatus,async e=>{let{agentId:t,status:i,expectedStatus:a}=e.payload,o=Date.now(),s=[I(r.agentId,t),tn(r.status,`disposed`)];if(a&&s.push(L(r.status,a)),N(await n.update(r).set({status:i,lastActivityAt:o}).where(F(...s)))){e.setResult({success:!0,transitioned:!0});return}let[c]=await n.select({agentId:r.agentId}).from(r).where(I(r.agentId,t)).limit(1);e.setResult({success:c!==void 0,transitioned:!1})})}function xi(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(I(r.agentId,t));e.setResult({success:N(a)})})}function Si(e){let{bus:t,db:n}=e,{agents:r}=P(n,W);return t.on(w.updateRuntime,async e=>{let{agentId:t,adapterId:i,runtimeOwner:a,adapterSessionId:o,cwd:s,model:c,allowedDirectories:l,providerConfigId:u}=e.payload,d={lastActivityAt:Date.now()};i!==void 0&&(d.adapterId=i),a!==void 0&&(d.ownerMachineId=a.machineId,d.ownerInstanceId=a.instanceId),o!==void 0&&(d.adapterSessionId=o),s!==void 0&&(d.cwd=s),c!==void 0&&(d.model=c),l!==void 0&&(d.allowedDirectories=l),u!==void 0&&(d.providerConfigId=u);let f=await n.update(r).set(d).where(I(r.agentId,t));e.setResult({success:N(f)})})}function Ci(e,t){let n={bus:e,db:t},r=[hi(n),gi(n),_i(n),vi(n),yi(n),bi(n),xi(n),Si(n)];return()=>mi(r)}function G(e){return e??void 0}function wi(e){if(e)try{let t=JSON.parse(e),n=on.safeParse(t);return n.success?n.data:void 0}catch{return}}function Ti(e){if(e)try{let t=JSON.parse(e),n=st.safeParse(t);return n.success?n.data:void 0}catch{return}}function K(e,t){let n=Ti(e.forkTransforms),r=wi(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:G(e.leadAgentId),parentSessionId:G(e.parentSessionId),contextInheritance:G(e.contextInheritance),rootSessionId:G(e.rootSessionId),forkPointMessageId:G(e.forkPointMessageId),branchKind:G(e.branchKind),generation:e.generation,adapterName:G(e.adapterName),adapterSessionId:G(e.adapterSessionId),currentAdapterSessionId:G(e.currentAdapterSessionId),currentAdapterSessionIdState:e.currentAdapterSessionIdState,adapterId:G(e.adapterId),clientId:G(e.clientId),clientAccountId:G(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:G(e.isOrchestrated),isImported:G(e.isImported),title:G(e.title),summary:G(e.summary),summaryUpdatedAt:G(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:G(e.targetWorkingDirectory),executionTargetId:G(e.executionTargetId),agents:t.map(di),approvalPolicyOverride:G(e.approvalPolicyOverride),metadata:G(e.metadata),spawningToolCallId:G(e.spawningToolCallId),source:G(e.source),parentExternalSessionId:G(e.parentExternalSessionId),logFilePath:G(e.logFilePath),discoveredAt:G(e.discoveredAt),importStatus:G(e.importStatus),isSidechain:G(e.isSidechain),machineId:G(e.machineId)}}function Ei(e){let t=new Map;for(let n of e){let e=t.get(n.sessionId)??[];e.push(n),t.set(n.sessionId,e)}return t}async function Di(e,t,n){if(!n||t.length===0)return{};let{messages:r}=P(e,f),i=e.select({sessionId:r.sessionId,minTimestamp:z`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(F(I(r.role,`user`),L(r.sessionId,t))).groupBy(r.sessionId).as(`first_user_message_by_session`),a=await e.select({sessionId:r.sessionId,preview:r.contentText}).from(r).innerJoin(i,F(I(r.sessionId,i.sessionId),I(r.timestamp,i.minTimestamp))).where(I(r.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let s=await e.select({sessionId:r.sessionId,count:Jt()}).from(r).where(L(r.sessionId,t)).groupBy(r.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);return{previewBySession:o,countBySession:c}}function Oi(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function ki(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Ai(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,W);return t.on(T.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[I(r.adapterSessionId,t)];a!==void 0&&s.push(I(r.source,a)),o!==void 0&&s.push(I(r.adapterName,o));let c=await n.select().from(r).where(F(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(I(i.sessionId,l.sessionId));e.setResult({session:K(l,u)})})}function ji(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W),{messages:i}=P(n,f);return t.on(T.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(I(r.parentSessionId,t));if(a.length===0){e.setResult({children:[]});return}let o=a.map(e=>e.sessionId),s=await n.select({sessionId:i.sessionId,count:Jt()}).from(i).where(L(i.sessionId,o)).groupBy(i.sessionId),c=new Map;for(let e of s)c.set(e.sessionId,e.count);let l=await n.select({parentSessionId:r.parentSessionId,count:Jt()}).from(r).where(L(r.parentSessionId,o)).groupBy(r.parentSessionId),u=new Set;for(let e of l)e.parentSessionId&&u.add(e.parentSessionId);let d=a.map(e=>e.forkPointMessageId).filter(e=>e!==null),f=new Map;if(d.length>0){let e=await n.select({messageId:i.messageId,adapterMessageId:i.adapterMessageId}).from(i).where(F(I(i.sessionId,t),L(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}function Mi(e){return{...e.cwd===void 0?{}:{targetWorkingDirectory:e.cwd},...e.logFilePath===void 0?{}:{logFilePath:e.logFilePath},...e.machineId===void 0?{}:{machineId:e.machineId}}}function Ni(e){return e.startMode===`compact`}function Pi(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.rebindObserved,async e=>{let i=e.payload,a=F(I(r.source,i.source),I(r.adapterSessionId,i.externalSessionId)),o=Mi(i),s=Object.keys(o),c=Ni(i);c&&s.push(`generation`);let l=c?{...o,generation:z`${r.generation} + 1`}:{...o},[u]=s.length===0?await n.select({sessionId:r.sessionId}).from(r).where(a).limit(1):await n.update(r).set(l).where(a).returning({sessionId:r.sessionId});if(!u){e.setResult({outcome:`not-found`});return}e.setResult({outcome:`rebound`,sessionId:u.sessionId}),s.length>0&&t.emit(j.updated,{sessionId:u.sessionId,changedProperties:s}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}const Fi=qe();function Ii(e){return e?JSON.stringify(e):null}function Li(e,t,n=null){let r=Fi(),i=e.startedAt??r,a=Ze(e.kind)??null;return{values:{sessionId:t,status:$e(e),isImported:!0,importStatus:e.importStatus??`discovered`,adapterName:e.source,adapterSessionId:e.externalSessionId,source:e.source??null,clientId:e.clientId??null,adapterId:e.adapterId??null,targetWorkingDirectory:e.cwd??null,logFilePath:e.logFilePath??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:a,parentExternalSessionId:e.parentAdapterSessionId??null,discoveredAt:r,title:e.title??null,metadata:e.metadata??null,lastClientIdentityObservation:Ii(e.lastClientIdentityObservation),isSidechain:e.isSidechain??null,machineId:e.machineId??null,ownerPrincipalId:n,createdAt:i,lastActivityAt:i},branchKind:a,createdAt:i}}async function Ri(e,t,n,r,i,a,o){if(r){let r=await zi(t,n.sessionId,n.parentExternalSessionId,o);e.emit(j.created,{sessionId:n.sessionId,parentSessionId:r,branchKind:i,createdAt:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}n.parentExternalSessionId!==null&&n.parentSessionId===null&&await zi(t,n.sessionId,n.parentExternalSessionId,o),e.emit(j.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function zi(e,t,n,r){let{sessions:i}=P(e,W);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(F(I(i.adapterSessionId,n),I(i.source,r))).limit(1);if(!a)return null;let o=a.rootSessionId??a.sessionId;return await e.update(i).set({parentSessionId:a.sessionId,rootSessionId:o}).where(I(i.sessionId,t)),a.sessionId}function Bi(e,t){return e===null?`unowned`:e===t?`owned`:`foreign`}function Vi(e,t){let{db:n}=t,{sessions:r}=P(n,W);return[e.on(T.registerOwnedImport,async t=>{let{ownerPrincipalId:i,import:a}=t.payload,o=Li(a,crypto.randomUUID(),i),[s]=await n.insert(r).values(o.values).onConflictDoNothing({target:[r.source,r.adapterSessionId]}).returning({sessionId:r.sessionId});if(s){await Ri(e,n,{sessionId:s.sessionId,discoveredAt:o.values.discoveredAt,parentExternalSessionId:o.values.parentExternalSessionId,parentSessionId:null},!0,o.branchKind,o.createdAt,a.source),t.setResult({outcome:`created`,sessionId:s.sessionId});return}let[c]=await n.select({sessionId:r.sessionId,ownerPrincipalId:r.ownerPrincipalId}).from(r).where(F(I(r.source,a.source),I(r.adapterSessionId,a.externalSessionId))).limit(1);if(!c){t.setResult({outcome:`missing`});return}let l=Bi(c.ownerPrincipalId,i);t.setResult(l===`owned`?{outcome:l,sessionId:c.sessionId}:{outcome:l})}),e.on(T.verifyOwner,async e=>{let[t]=await n.select({ownerPrincipalId:r.ownerPrincipalId}).from(r).where(I(r.sessionId,e.payload.sessionId)).limit(1);e.setResult(t?{outcome:Bi(t.ownerPrincipalId,e.payload.ownerPrincipalId)}:{outcome:`missing`})})]}function Hi(e,t){return z`
|
|
3
|
+
SELECT ${t}.key AS key,
|
|
4
|
+
CASE ${t}.type
|
|
5
|
+
WHEN 'object' THEN ${t}.value
|
|
6
|
+
WHEN 'array' THEN ${t}.value
|
|
7
|
+
WHEN 'true' THEN 'true'
|
|
8
|
+
WHEN 'false' THEN 'false'
|
|
9
|
+
WHEN 'null' THEN 'null'
|
|
10
|
+
WHEN 'text' THEN json_quote(${t}.value)
|
|
11
|
+
ELSE CAST(${t}.value AS TEXT)
|
|
12
|
+
END AS vjson
|
|
13
|
+
FROM json_each(${e}) AS ${t}
|
|
14
|
+
`}function Ui(e,t){let n=t===`postgres`?z`excluded.metadata || ${e.metadata}`:z`(
|
|
15
|
+
SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
|
|
16
|
+
${Hi(z`excluded.metadata`,z`inc`)}
|
|
17
|
+
WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
|
|
18
|
+
UNION ALL
|
|
19
|
+
${Hi(z`${e.metadata}`,z`ex`)}
|
|
20
|
+
) AS mk
|
|
21
|
+
)`;return z`
|
|
22
|
+
CASE
|
|
23
|
+
WHEN ${e.metadata} IS NULL THEN excluded.metadata
|
|
24
|
+
WHEN excluded.metadata IS NULL THEN ${e.metadata}
|
|
25
|
+
ELSE ${n}
|
|
26
|
+
END
|
|
27
|
+
`}function Wi(e,t,n){return t===void 0?z`${e}`:z`
|
|
28
|
+
CASE
|
|
29
|
+
WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
|
|
30
|
+
ELSE ${e}
|
|
31
|
+
END
|
|
32
|
+
`}function Gi(e){return z`
|
|
33
|
+
CASE
|
|
34
|
+
WHEN ${e.importStatus} = 'imported' OR excluded.import_status = 'imported' THEN 'imported'
|
|
35
|
+
WHEN ${e.importStatus} = 'tracking' OR excluded.import_status = 'tracking' THEN 'tracking'
|
|
36
|
+
ELSE COALESCE(${e.importStatus}, excluded.import_status, 'discovered')
|
|
37
|
+
END
|
|
38
|
+
`}function Ki(e,t){return t===`live`?z`
|
|
39
|
+
CASE
|
|
40
|
+
WHEN ${e.status} = 'discovered' THEN 'active'
|
|
41
|
+
ELSE ${e.status}
|
|
42
|
+
END
|
|
43
|
+
`:z`
|
|
44
|
+
CASE
|
|
45
|
+
WHEN ${e.status} IN ('closed', 'archived') THEN ${e.status}
|
|
46
|
+
WHEN ${e.status} = 'active' AND ${e.isImported} = TRUE THEN ${e.status}
|
|
47
|
+
WHEN ${Gi(e)} = 'discovered' THEN excluded.status
|
|
48
|
+
ELSE ${e.status}
|
|
49
|
+
END
|
|
50
|
+
`}function qi(e,t,n,r,i){return{status:Ki(e,i),isImported:!0,importStatus:Gi(e),adapterName:z`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:z`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:z`COALESCE(${e.source}, excluded.source)`,logFilePath:z`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:z`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:z`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:z`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:z`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:z`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:z`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:z`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:z`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:z`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?z`${e.machineId}`:r===null?z`NULL`:z`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:Ui(e,n),createdAt:Wi(e.createdAt,t,e),lastActivityAt:Wi(e.lastActivityAt,t,e)}}function Ji(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W),{dialect:i}=Wt(n);return t.on(T.importUpsert,async e=>{let a=e.payload,o=crypto.randomUUID(),s=Li(a,o),[c]=await n.insert(r).values(s.values).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:qi(r,a.startedAt,i,a.machineId,a.activation)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),l=c.sessionId===o;await Ri(t,n,c,l,s.branchKind,s.createdAt,a.source),e.setResult({sessionId:c.sessionId,created:l})})}function Yi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,W);return t.on(T.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(I(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(I(i.sessionId,a.sessionId));e.setResult({session:K(a,o)})})}function Xi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,W);return t.on(T.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[I(r.isImported,!0)];t!==void 0&&o.push(I(r.source,t)),a!==void 0&&o.push(I(r.importStatus,a));let s=F(...o),c=await n.select().from(r).where(s).orderBy(Yt(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Ei(await n.select().from(i).where(L(i.sessionId,l)));e.setResult({sessions:c.map(e=>K(e,u.get(e.sessionId)??[]))})})}function Zi(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:z`count(*)`}).from(r).where(F(I(r.isImported,!0),I(r.source,t))).groupBy(r.importStatus),a=0,o=0,s=0,c=0;for(let e of i){let t=Number(e.count);a+=t,e.importStatus===`imported`&&(o+=t),e.importStatus===`tracking`&&(s+=t),e.importStatus===`discovered`&&(c=t)}e.setResult({total:a,imported:o,tracking:s,discovered:c})})}function Qi(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:z`
|
|
51
|
+
CASE
|
|
52
|
+
WHEN ${r.status} = 'discovered' THEN 'active'
|
|
53
|
+
ELSE ${r.status}
|
|
54
|
+
END
|
|
55
|
+
`}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(F(I(r.sessionId,i),rn(R(r.importStatus),z`${r.importStatus} <> ${a}`))).returning({adapterSessionId:r.adapterSessionId,adapterName:r.adapterName,source:r.source}),c=s!==void 0;if(e.setResult({success:c}),c){t.emit(j.importStatusChanged,{sessionId:i,importStatus:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let e=s.source??s.adapterName;a===`imported`&&s.adapterSessionId&&e&&t.emit(j.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function $i(e,t){let n={bus:e,db:t};return[Ji(n),...Vi(e,n),Pi(n),Yi(n),Xi(n),Zi(n),Qi(n)]}function ea(e){let t=e.reconcileAdapterSession;if(t!==void 0)return{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId,lastActivityAt:t.lastActivityAt};let n=e.identity;return n===void 0?{}:{adapterName:n.adapterName,adapterId:n.adapterId,...n.adapterSessionId===void 0?{}:{adapterSessionId:n.adapterSessionId}}}function ta(e,t){let n=e.expectIdentityOpenForLead,r=e.reconcileAdapterSession;return{status:e.expectedStatus===void 0?void 0:L(t.status,e.expectedStatus),identity:n===void 0?void 0:F(R(t.adapterName),R(t.adapterId),n===null?R(t.leadAgentId):I(t.leadAgentId,n)),reconciliation:r===void 0?void 0:F(R(t.adapterSessionId),I(t.leadAgentId,r.agentId),rn(F(R(t.adapterName),R(t.adapterId)),F(I(t.adapterName,r.adapterName),I(t.adapterId,r.adapterId))))}}function q(e){return e??null}function na(e){return e?JSON.stringify(e):null}function ra(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:q(e.leadAgentId),parentSessionId:q(e.parentSessionId),contextInheritance:q(e.contextInheritance),rootSessionId:q(e.rootSessionId),forkPointMessageId:q(e.forkPointMessageId),branchKind:q(e.branchKind),adapterName:q(e.adapterName),adapterSessionId:q(e.adapterSessionId),adapterId:q(e.adapterId),clientId:q(e.clientId),clientAccountId:q(e.clientAccountId),lastClientIdentityObservation:aa(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:q(e.title),summary:q(e.summary),summaryUpdatedAt:q(e.summaryUpdatedAt),forkTransforms:na(e.forkTransforms),targetWorkingDirectory:q(e.targetWorkingDirectory),executionTargetId:q(e.executionTargetId),approvalPolicyOverride:q(e.approvalPolicyOverride),metadata:q(e.metadata),spawningToolCallId:q(e.spawningToolCallId),source:q(e.source),parentExternalSessionId:q(e.parentExternalSessionId),logFilePath:q(e.logFilePath),discoveredAt:q(e.discoveredAt),importStatus:q(e.importStatus),machineId:q(e.machineId),generation:e.generation??0}}function ia(e){let{leadAgentId:t,generation:n,...r}=e;return r}function aa(e){return e?JSON.stringify(e):null}function J(e,t,n){n!==void 0&&(e[t]=n)}function oa(e,t,n){n!==void 0&&(e[t]=n??null)}function sa(e,t){let n={};return J(n,`status`,e.status),oa(n,`parentSessionId`,e.parentSessionId),J(n,`contextInheritance`,e.contextInheritance),J(n,`rootSessionId`,e.rootSessionId),J(n,`forkPointMessageId`,e.forkPointMessageId),J(n,`branchKind`,e.branchKind),J(n,`isOrchestrated`,e.isOrchestrated),J(n,`clientId`,e.clientId),J(n,`clientAccountId`,e.clientAccountId),J(n,`title`,e.title),J(n,`targetWorkingDirectory`,e.targetWorkingDirectory),J(n,`createdAt`,e.createdAt),J(n,`lastActivityAt`,e.lastActivityAt),J(n,`machineId`,e.machineId),Object.assign(n,ea(e)),oa(n,`executionTargetId`,e.executionTargetId),oa(n,`approvalPolicyOverride`,e.approvalPolicyOverride),oa(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=z`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=aa(e.lastClientIdentityObservation)),e.advanceGeneration===!0&&(n.generation=z`${t.generation} + 1`),n}function ca(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,W);return t.on(T.get,async e=>{let[t]=await n.select().from(r).where(I(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(I(i.sessionId,e.payload.sessionId));e.setResult({session:K(t,a)})})}function la(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=ht.parse(e.payload),s=ra(a);if(o){Je(null,a);let o=N(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&Ye(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(I(r.sessionId,i)).limit(1),c=o?K(o,[]):null;if(Je(c,a),N(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:ia(s),setWhere:ui(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),Ye(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function ua(e){let{bus:t,db:n}=e,{sessions:r,agents:i,adapterSessionClaims:a}=P(n,W);return t.on(T.delete,async e=>{let{sessionId:t}=e.payload;await Ut(n,async e=>{await e.delete(i).where(I(i.sessionId,t)),await e.delete(a).where(I(a.sessionId,t)),await e.delete(r).where(I(r.sessionId,t))}),e.setResult({success:!0})})}function da(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.update,async e=>{let i=gt.request.parse(e.payload),{sessionId:a}=i,o=sa(i,r),s=ki(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}let{status:c,identity:l,reconciliation:u}=ta(i,r);if(!s){let s=N(await n.update(r).set(o).where(F(I(r.sessionId,a),c,l,u)));e.setResult({success:s,clientAccountChanged:!1}),s&&i.advanceGeneration===!0&&Qe(t,a);return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(I(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let d=K(s,[]),f=Oi(d,i);if(Je(d,f),i.expectedStatus!==void 0&&!i.expectedStatus.includes(d.status)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Ke(d,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Xe(d,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(N(await n.update(r).set(o).where(F(I(r.sessionId,a),c,l,u,ui(s,r))))){e.setResult({success:!0,clientAccountChanged:(d.clientAccountId??null)!==(f.clientAccountId??null)}),Ye(t,d,f),i.advanceGeneration===!0&&Qe(t,a);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function fa(e,t){let n=[];return e.status!==`all`&&n.push(I(t.status,e.status)),e.executionTargetId!==void 0&&n.push(I(t.executionTargetId,e.executionTargetId)),F(...n)}function pa(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=P(n,W);return t.on(T.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=fa({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(Yt(r.lastActivityAt)):await u.orderBy(Yt(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:Jt()}).from(r).where(l):n.select({count:Jt()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Ei(await n.select().from(i).where(L(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Di(n,m,s),v=d.map(e=>{let t=K(e,h.get(e.sessionId)??[]);return s&&g&&_?{...t,preview:{messageCount:_.get(e.sessionId)??0,firstUserMessage:g.get(e.sessionId)??null}}:t});e.setResult({sessions:v,total:p})})}function ma(e){let{bus:t,db:n}=e,{sessions:r}=P(n,W);return t.on(T.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:Jt()}).from(r).groupBy(r.status),i=0,a=0,o=0,s=0;for(let e of t)e.status===`active`?i=e.count:e.status===`closed`?a=e.count:e.status===`archived`?o=e.count:e.status===`discovered`&&(s=e.count);let c=i+a+o+s;e.setResult({all:c,active:i,closed:a,archived:o,discovered:s})})}function ha(e,t){let n={bus:e,db:t},r=[ca(n),la(n),ua(n),da(n),pa(n),ji(n),Ai(n),ma(n),...$i(e,t)];return()=>r.forEach(e=>e())}var Y=class extends Error{result;constructor(e){super(`session ownership claim rolled back: ${e.outcome}`),this.name=`ClaimRollbackSignal`,this.result=e}};async function ga(e,t,n){let{agents:r}=t,[i]=await e.update(r).set({currencyFence:r.currencyFence}).where(I(r.agentId,n)).returning();return i}function X(e){return z`cast(${e} as text)`}function _a(e){return z`cast(${e} as bigint)`}function va(e){return z`cast(${e} as integer)`}async function ya(e,t,n,r){let{runtimeInstanceIncarnationCounters:i,runtimeInstances:a}=t,[o]=await e.insert(i).values({machineId:n.machineId,lastAllocatedIncarnation:0}).onConflictDoUpdate({target:i.machineId,set:{lastAllocatedIncarnation:i.lastAllocatedIncarnation}}).returning({machineId:i.machineId});if(o===void 0)throw Error(`runtime incarnation allocation returned no counter for ${n.machineId}`);let[s]=await e.select().from(a).where(F(I(a.instanceId,n.instanceId),I(a.machineId,n.machineId))).limit(1);if(s!==void 0)return{instance:s,inserted:!1};let[c]=await e.update(i).set({lastAllocatedIncarnation:z`${i.lastAllocatedIncarnation} + 1`}).where(I(i.machineId,n.machineId)).returning({incarnation:i.lastAllocatedIncarnation});if(c===void 0)throw Error(`runtime incarnation counter disappeared while allocating for ${o.machineId}`);let[l]=await e.insert(a).values({instanceId:n.instanceId,machineId:n.machineId,incarnation:c.incarnation,startedAt:r,retiredAt:null}).onConflictDoNothing({target:[a.instanceId,a.machineId]}).returning();if(l!==void 0)return{instance:l,inserted:!0};let[u]=await e.select().from(a).where(F(I(a.instanceId,n.instanceId),I(a.machineId,n.machineId))).limit(1);if(u!==void 0)return{instance:u,inserted:!1};throw Error(`runtime instance ${n.instanceId}/${n.machineId} was neither inserted nor found`)}function ba(e,t){return z`(case when ${e} > ${t} then ${e} else ${t} end)`}function xa(e,t){let{adapterSessionClaims:n}=e;return z`coalesce((select max(${n.fence}) from ${n}
|
|
56
|
+
where ${I(n.agentId,t)}), 0)`}function Sa(e,t){let{agents:n}=e;return z`coalesce((select ${n.currencyFence} from ${n}
|
|
57
|
+
where ${I(n.agentId,t)}), 0)`}function Ca(e,t,n){return z`1 + ${ba(n,xa(e,t))}`}function wa(e,t,n){return Ca(e,t,ba(va(n),Sa(e,t)))}function Z(e){return{claimId:e.claimId,machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:e.providerSessionId,sessionId:e.sessionId,agentId:e.agentId,ownerInstanceId:e.ownerInstanceId,claimToken:e.claimToken,fence:e.fence,status:e.status,claimedAt:e.claimedAt,updatedAt:e.updatedAt}}function Ta(e){return{instanceId:e.instanceId,machineId:e.machineId,incarnation:e.incarnation,startedAt:e.startedAt,retiredAt:e.retiredAt}}function Ea(e,t){let{runtimeInstances:n}=P(t,W);return[e.on(A.retireInstance,async e=>{let r=await t.update(n).set({retiredAt:Date.now()}).where(F(I(n.instanceId,e.payload.instanceId),R(n.retiredAt))).returning({machineId:n.machineId});e.setResult({retiredMachines:r.length})}),e.on(A.getRuntimeInstance,async e=>{let[r]=await t.select().from(n).where(F(I(n.instanceId,e.payload.instanceId),I(n.machineId,e.payload.machineId))).limit(1);e.setResult({instance:r===void 0?null:Ta(r)})})]}function Da(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState}}function Oa(e,t,n,r){let{agents:i}=e;return z`exists (select 1 from ${i} where ${F(I(i.agentId,t),I(i.sessionId,n),...r===`live`?[tn(i.status,`disposed`)]:[])})`}function ka(e,t,n,r){let{agents:i,sessions:a}=e,o={claimId:X(n),machineId:X(t.machineId),adapterId:X(t.adapterId),adapterName:X(t.adapterName),providerSessionId:X(t.providerSessionId),sessionId:X(t.sessionId),agentId:X(t.agentId),ownerInstanceId:X(t.ownerInstanceId),claimToken:X(t.claimToken),fence:Ca(e,t.agentId,z`${i.currencyFence}`),status:X(`held`),claimedAt:_a(r),updatedAt:_a(r)};return z`select ${z.join(Object.values(o),z`, `)} from ${i}
|
|
58
|
+
where ${I(i.agentId,t.agentId)}
|
|
59
|
+
and ${I(i.sessionId,t.sessionId)}
|
|
60
|
+
and ${tn(i.status,`disposed`)}
|
|
61
|
+
and exists (select 1 from ${a} where ${I(a.sessionId,t.sessionId)})`}function Aa(e,t){let{agents:n,sessions:r}=e,i=I(n.agentId,t),a=e=>z`(select ${e} from ${n} where ${i})`,o=a(z`${n.currentAdapterSessionIdState}`),s=a(z`${n.currentAdapterSessionId}`),c=a(z`${n.adapterSessionId}`),l=z`${r.adapterSessionId}`,u=z`(${c} = ${l} or (${c} is null and ${l} is null))`;return{currentAdapterSessionId:z`(case
|
|
62
|
+
when ${o} <> 'inherited' then ${s}
|
|
63
|
+
when ${u} then null
|
|
64
|
+
when ${c} is null then null
|
|
65
|
+
else ${c} end)`,currentAdapterSessionIdState:z`(case
|
|
66
|
+
when ${o} <> 'inherited' then ${o}
|
|
67
|
+
when ${u} then ${X(`inherited`)}
|
|
68
|
+
when ${c} is null then ${X(`moved`)}
|
|
69
|
+
else ${X(`confirmed`)} end)`}}function ja(e,t){let{adapterSessionClaims:n}=e,r=[I(n.machineId,t.machineId)];return t.adapterId!==void 0&&r.push(I(n.adapterId,t.adapterId)),t.providerSessionId!==void 0&&r.push(I(n.providerSessionId,t.providerSessionId)),t.statuses!==void 0&&r.push(L(n.status,t.statuses)),r}function Ma(e,t){let n=P(t,W),{agents:r,adapterSessionClaims:i}=n;return[e.on(A.read,async e=>{let[n]=await t.select().from(r).where(I(r.agentId,e.payload.agentId)).limit(1);if(n===void 0){e.setResult({ownership:null});return}let a=await t.select().from(i).where(I(i.agentId,e.payload.agentId)).orderBy(qt(i.fence),qt(i.claimId));e.setResult({ownership:{agentId:n.agentId,sessionId:n.sessionId,currency:Da(n),revision:n.revision,currencyFence:n.currencyFence,claims:a.map(Z)}})}),e.on(A.listClaims,async e=>{let r=await t.select().from(i).where(F(...ja(n,e.payload))).orderBy(qt(i.claimedAt),qt(i.claimId));e.setResult({claims:r.map(Z)})})]}function Na(e){return{outcome:`lead-conflict`,currentLeadAgentId:e}}function Pa(e,t,n){return{outcome:e,claim:t===null?null:Z(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}const Fa=`makaio:session-ownership:claim:v1`;function Ia(e){return{namespace:Fa,identity:JSON.stringify([e.machineId,e.adapterId,e.providerSessionId])}}async function La(e,t,n){let{adapterSessionClaims:r}=t;return(await e.select({machineId:r.machineId,adapterId:r.adapterId,providerSessionId:r.providerSessionId}).from(r).where(F(I(r.agentId,n),I(r.status,`held`)))).map(Ia)}function Ra(e){return Ia(e)}async function za(e,t){let n=P(e,W);return Ut(e,async e=>{await ga(e,n,t.agentId);let r=t.action.kind===`rollback`?{status:t.action.preimage.status,adapterId:t.action.preimage.adapterId,ownerMachineId:t.action.preimage.binding?.ownerMachineId??null,ownerInstanceId:t.action.preimage.binding?.ownerInstanceId??null,recoveryAttemptId:t.action.preimage.recoveryAttemptId??null}:{status:t.action.kind===`succeeded`?`idle`:`dead`,recoveryAttemptId:null};return{applied:N(await e.update(n.agents).set({...r,lastActivityAt:Date.now()}).where(F(I(n.agents.agentId,t.agentId),I(n.agents.status,`starting`),I(n.agents.recoveryAttemptId,t.attemptId),I(n.agents.adapterId,t.binding.adapterId),I(n.agents.ownerMachineId,t.binding.ownerMachineId),I(n.agents.ownerInstanceId,t.binding.ownerInstanceId))))}})}async function Q(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(F(I(r.machineId,n.machineId),I(r.adapterId,n.adapterId),I(r.providerSessionId,n.providerSessionId))).limit(1);return i}async function Ba(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(I(r.claimToken,n)).limit(1);return i}async function Va(e,t,n){let{agents:r}=t,[i]=await e.select().from(r).where(I(r.agentId,n)).limit(1);return i}async function Ha(e,t,n){let{sessions:r}=t,[i]=await e.select({leadAgentId:r.leadAgentId}).from(r).where(I(r.sessionId,n)).limit(1);return i===void 0?void 0:i.leadAgentId??null}async function Ua(e,t){let n=P(e,W),{adapterSessionClaims:r}=n,i=Date.now();return Ut(e,async e=>{await ga(e,n,t.agentId);let a=F(I(r.claimToken,t.claimToken),I(r.agentId,t.agentId));if(t.disposition===`released`){if((await e.delete(r).where(a).returning({claimId:r.claimId})).length>0)return{outcome:`released`}}else{let[n]=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();if(n!==void 0)return{outcome:`marked`,claim:Z(n)}}let o=await Ba(e,n,t.claimToken);return o===void 0?{outcome:`not-found`}:{outcome:`not-owner`,holder:Z(o)}})}async function Wa(e,t,n){if(await Ha(e,t,n.sessionId)===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=await Va(e,t,n.agentId);return r===void 0||r.sessionId!==n.sessionId?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:r.status===`disposed`?{kind:`refused`,result:{outcome:`agent-disposed`}}:{kind:`ok`,agent:r}}async function Ga(e,t,n,r){let{adapterSessionClaims:i}=t,[a]=await e.insert(i).select(ka(t,n,crypto.randomUUID(),r)).onConflictDoNothing({target:[i.machineId,i.adapterId,i.providerSessionId]}).returning();return a}function Ka(e,t,n){let{adapterSessionClaims:r,runtimeInstances:i}=e;return n===`same-instance`?F(I(r.status,`held`),I(r.agentId,t.agentId),I(r.ownerInstanceId,t.ownerInstanceId)):n===`owner-retired`?z`exists (select 1 from ${i} where ${F(I(i.instanceId,r.ownerInstanceId),I(i.machineId,r.machineId),Qt(i.retiredAt))})`:z`(select ${i.incarnation} from ${i}
|
|
70
|
+
where ${I(i.instanceId,t.ownerInstanceId)}
|
|
71
|
+
and ${I(i.machineId,r.machineId)})
|
|
72
|
+
> (select ${i.incarnation} from ${i}
|
|
73
|
+
where ${I(i.instanceId,r.ownerInstanceId)}
|
|
74
|
+
and ${I(i.machineId,r.machineId)})`}async function qa(e,t,n,r,i,a,o){let{adapterSessionClaims:s}=t,c=i===`named-token`?void 0:Ka(t,n,i),l=o===void 0?void 0:F(I(s.claimId,o.claimId),I(s.claimToken,o.claimToken),I(s.fence,o.fence),o.ownerInstanceId===null?R(s.ownerInstanceId):I(s.ownerInstanceId,o.ownerInstanceId),I(s.status,o.status)),[u]=await e.update(s).set({claimToken:n.claimToken,fence:wa(t,n.agentId,r.fence),agentId:n.agentId,sessionId:n.sessionId,adapterName:n.adapterName,ownerInstanceId:n.ownerInstanceId,status:`held`,claimedAt:a,updatedAt:a}).where(F(I(s.claimId,r.claimId),I(s.claimToken,r.claimToken),Qt(s.ownerInstanceId),Oa(t,n.agentId,n.sessionId,`live`),...c===void 0?[]:[c],...l===void 0?[]:[l])).returning();return u}async function Ja(e,t,n,r,i){if(r.ownerInstanceId===null)return;if(i)return`named-token`;if(r.status===`held`&&r.agentId===n.agentId&&r.ownerInstanceId===n.ownerInstanceId)return`same-instance`;let{runtimeInstances:a}=t,[o]=await e.select().from(a).where(F(I(a.instanceId,r.ownerInstanceId),I(a.machineId,r.machineId))).limit(1);if(o?.retiredAt!==null&&o?.retiredAt!==void 0)return`owner-retired`;if(n.topology===`machine-exclusive`){let[t]=await e.select().from(a).where(F(I(a.instanceId,n.ownerInstanceId),I(a.machineId,n.machineId))).limit(1);if(o!==void 0&&t!==void 0&&t.incarnation>o.incarnation)return`owner-superseded`}}async function Ya(e,t,n,r){if(n.recoveryGuard===void 0)return;let i=n.providerSessionId===null?void 0:await Q(e,t,{machineId:n.machineId,adapterId:n.adapterId,providerSessionId:n.providerSessionId});return He(n,{status:r.status,adapterId:r.adapterId,runtimeOwner:r.ownerMachineId===null||r.ownerInstanceId===null?void 0:{machineId:r.ownerMachineId,instanceId:r.ownerInstanceId},recoveryAttemptId:r.recoveryAttemptId??void 0,revision:r.revision,currencyFence:r.currencyFence,currency:Da(r)},i===void 0?null:Z(i))}async function Xa(e,t,n,r){if(n.recoveryGuard!==void 0&&(r.outcome===`claimed`||r.outcome===`idempotent`)){if(n.recoveryAttemptId===void 0||n.ownerInstance===void 0)throw Error(`guarded recovery claim requires recoveryAttemptId and ownerInstance`);let[i]=await e.select().from(t.agents).where(I(t.agents.agentId,n.agentId));if(i===void 0)return{outcome:`not-found`,missing:`agent`};let a={status:i.status,adapterId:i.adapterId,...i.ownerMachineId===null||i.ownerInstanceId===null?{}:{binding:{adapterId:i.adapterId,ownerMachineId:i.ownerMachineId,ownerInstanceId:i.ownerInstanceId}},...i.recoveryAttemptId===null?{}:{recoveryAttemptId:i.recoveryAttemptId}};return await e.update(t.agents).set({status:`starting`,adapterId:n.adapterId,ownerMachineId:n.machineId,ownerInstanceId:n.ownerInstance.instanceId,recoveryAttemptId:n.recoveryAttemptId,lastActivityAt:Date.now()}).where(I(t.agents.agentId,n.agentId)),{...r,recovery:{attemptId:n.recoveryAttemptId,preimage:a}}}return r}function Za(e,t){let n=e.recoveryGuard;if(n===void 0)throw Error(`recovery conflict requires a recovery guard`);return{outcome:`recovery-conflict`,status:n.expectedStatus,ownerGeneration:t===void 0?null:Be(Z(t))}}async function Qa(e,t,n,r){let i=n.recoveryGuard?.ownerGeneration;if(i==null)throw Error(`guarded recovery takeover requires an observed owner generation`);let a=await Q(e,t,n),o=a===void 0?null:Be(Z(a));if(a===void 0||!Ve(o,i))return Za(n,a);let s=await Ja(e,t,n,a,n.supersedes?.claimToken===a.claimToken);if(s===void 0)return Za(n,a);let c=await r(a,s);return c===void 0||c.outcome===`already-claimed`?Za(n,c===void 0?void 0:await Q(e,t,n)):c}function $a(e,t){let{agents:n,adapterSessionClaims:r}=e,{target:i}=t,a=z`(${i.currentAdapterSessionId===null?R(n.currentAdapterSessionId):I(n.currentAdapterSessionId,i.currentAdapterSessionId)} and ${I(n.currentAdapterSessionIdState,i.currentAdapterSessionIdState)} and ${I(n.currencyFence,t.fence)})`;return F(I(n.agentId,t.agentId),tn(n.status,`disposed`),I(n.revision,t.expectedRevision),en(n.currencyFence,t.fence),z`exists (select 1 from ${r} where ${F(I(r.claimToken,t.claimToken),I(r.agentId,t.agentId),I(r.sessionId,n.sessionId),I(r.status,`held`),I(r.fence,t.fence))})`,nn(a))}function eo(e,t,n){if(t.status===`disposed`)return{outcome:`agent-disposed`};if(e===void 0||e.agentId!==n.agentId||e.sessionId!==t.sessionId||e.status!==`held`||e.fence!==n.fence)return{outcome:`not-owner`};if(n.fence<t.currencyFence)return{outcome:`superseded`,currentFence:t.currencyFence};let r=Da(t);return r.currentAdapterSessionId===n.target.currentAdapterSessionId&&r.currentAdapterSessionIdState===n.target.currentAdapterSessionIdState&&t.currencyFence===n.fence?{outcome:`idempotent`,revision:t.revision,currency:r,sessionSnapshotUpdated:!1}:{outcome:`currency-changed`,revision:t.revision,currency:r}}async function to(e,t,n){let r=await Va(e,t,n.agentId);return r===void 0?{outcome:`not-found`}:eo(await Ba(e,t,n.claimToken),r,n)}async function no(e,t,n){let{adapterSessionClaims:r}=t;return(await e.update(r).set({updatedAt:r.updatedAt}).where(I(r.claimToken,n)).returning({claimId:r.claimId})).length>0}async function ro(e,t,n){let{agents:r,sessions:i}=t,{target:a}=n,[o]=await e.update(r).set({currentAdapterSessionId:a.currentAdapterSessionId,currentAdapterSessionIdState:a.currentAdapterSessionIdState,currencyFence:n.fence,revision:n.expectedRevision+1,lastActivityAt:Date.now()}).where($a(t,n)).returning();if(o===void 0)return to(e,t,n);let s=await e.update(i).set({...Aa(t,n.agentId)}).where(F(I(i.sessionId,o.sessionId),I(i.leadAgentId,n.agentId))).returning({sessionId:i.sessionId});return{outcome:`settled`,revision:n.expectedRevision+1,currency:{adapterSessionId:o.adapterSessionId??null,...a},sessionSnapshotUpdated:s.length>0}}async function io(e,t){let n=P(e,W);return Ut(e,async e=>await ga(e,n,t.agentId)===void 0?{outcome:`not-found`}:await no(e,n,t.claimToken)?ro(e,n,t):to(e,n,t))}var ao=class extends Error{result;constructor(e){super(`session ownership movement rolled back: ${e.outcome}`),this.name=`MovementRollbackSignal`,this.result=e}};function oo(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=wt(Da(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}async function so(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(F(I(r.machineId,n.machineId),I(r.adapterId,n.adapterId),I(r.providerSessionId,n.providerSessionId),I(r.agentId,n.agentId),I(r.status,`held`),rn(I(r.ownerInstanceId,n.ownerInstanceId),R(r.ownerInstanceId)))).limit(1);return i}async function co(e,t,n,r){if(n.ownerInstanceId!==null)return n;let{adapterSessionClaims:i}=t,[a]=await e.update(i).set({ownerInstanceId:r}).where(F(I(i.claimId,n.claimId),R(i.ownerInstanceId))).returning();if(a===void 0)throw Error(`locked legacy movement generation disappeared before adoption`);return a}async function lo(e,t,n,r){for(let i=0;i<2;i+=1){let i=await Ga(e,t,n,r);if(i!==void 0)return i;let a=await Q(e,t,n);if(a===void 0){let r=await Wa(e,t,n);if(r.kind===`refused`)throw new ao(r.result.outcome===`agent-disposed`?{outcome:`agent-disposed`}:{outcome:`not-found`});continue}let o=await Ja(e,t,n,a,!1);if(o!==void 0){let i=await qa(e,t,n,a,o,r);if(i!==void 0)return i;let s=await Q(e,t,n);if(s===void 0)continue;throw new ao({outcome:`already-claimed`,holder:Z(s)})}throw new ao({outcome:`already-claimed`,holder:Z(a)})}throw Error(`session ownership movement could not acquire the key ${n.machineId}/${n.adapterId}/${n.providerSessionId}: it was taken and freed by a competitor on every attempt`)}async function uo(e,t,n,r){let{adapterSessionClaims:i}=t;return(await e.delete(i).where(F(I(i.agentId,n),I(i.status,`held`),tn(i.claimId,r))).returning({providerSessionId:i.providerSessionId})).map(e=>e.providerSessionId)}function fo(e,t){return e.outcome===`idempotent`?{outcome:`idempotent`,revision:e.revision,currency:e.currency,sessionSnapshotUpdated:!1,claim:Z(t)}:e}function po(e,t){if(t)throw new ao(e);return e}function mo(e,t,n){return{machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:n,sessionId:e.sessionId,agentId:e.agentId,ownerInstanceId:t,topology:e.topology,claimToken:e.movement.claimToken}}async function ho(e,t){let n=P(e,W),r=Date.now(),i=t.ownerInstance;if(i===void 0)throw Error(`session ownership movement requires ownerInstance`);try{return await Ut(e,async a=>{let o=await ya(a,n,{instanceId:i.instanceId,machineId:t.machineId},r),s=await ga(a,n,t.agentId);if(s===void 0||s.sessionId!==t.sessionId)return po({outcome:`not-found`},o.inserted);if(s.status===`disposed`)return po({outcome:`agent-disposed`},o.inserted);let c=oo(t.movement,s);if(c===null)return po({outcome:`idempotent`,revision:s.revision,currency:Da(s),sessionSnapshotUpdated:!1,claim:null},o.inserted);let l=mo(t,i.instanceId,c.providerSessionId);await Bt(e,a,[Ra(l),...await La(a,n,t.agentId)]);let u=await so(a,n,l)??await lo(a,n,l,r),d=t.movement.kind===`confirmed`?await uo(a,n,t.agentId,u.claimId):[],f=await ro(a,n,{agentId:t.agentId,claimToken:u.claimToken,fence:u.fence,expectedRevision:t.expectedRevision,target:c.currency});if(f.outcome!==`settled`)throw new ao(fo(f,u));let p=await co(a,n,u,i.instanceId);return{outcome:`settled`,revision:f.revision,currency:f.currency,sessionSnapshotUpdated:f.sessionSnapshotUpdated,releasedProviderSessionIds:d,claim:Z(p)}})}catch(e){if(e instanceof ao)return e.result;throw e}}async function go(e,t,n){let{sessions:r}=t,[i]=await e.update(r).set({lastActivityAt:r.lastActivityAt}).where(I(r.sessionId,n)).returning({leadAgentId:r.leadAgentId,status:r.status});return i===void 0?void 0:{leadAgentId:i.leadAgentId??null,status:i.status}}function _o(e,t,n,r){let{sessions:i}=e,a=n===null?R(i.leadAgentId):I(i.leadAgentId,n);return r?a:rn(a,I(i.leadAgentId,t.agentId))}async function vo(e,t,n){let{sessions:r}=t,i=await go(e,t,n.sessionId);if(i===void 0)throw new Y({outcome:`not-found`,missing:`session`});if(i.status!==`active`&&(i.status!==`closed`||!xt(n)))throw new Y({outcome:`session-not-active`,status:i.status});let a=i.leadAgentId,o=n.designateLead;if(o===void 0)return{leadDesignated:!1,previousLeadAgentId:a};let s=o.clear===!0,c=s?null:n.agentId,l=s?`any-status`:`live`,u=c!==a;return(await e.update(r).set({leadAgentId:c,...s||!u?{}:Aa(t,n.agentId)}).where(F(I(r.sessionId,n.sessionId),_o(t,n,o.expectedLeadAgentId,s),Oa(t,n.agentId,n.sessionId,l))).returning({leadAgentId:r.leadAgentId})).length===0?yo(e,t,n,a,l):{leadDesignated:u,previousLeadAgentId:a}}async function yo(e,t,n,r,i){let a=await Wa(e,t,n);throw a.kind===`refused`&&!(i===`any-status`&&a.result.outcome===`agent-disposed`)?new Y(a.result):new Y(Na(r))}async function bo(e,t,n,r,i,a){let o=await qa(e,t,n,r,i,a,n.recoveryGuard?.ownerGeneration??void 0);if(o!==void 0)return Pa(`claimed`,o,await vo(e,t,n));let s=await Q(e,t,n);if(s===void 0)return So;if(s.claimToken===r.claimToken){let r=await Wa(e,t,n);if(r.kind===`refused`)return r.result}return{outcome:`already-claimed`,holder:Z(s)}}async function xo(e,t,n,r){if(r.status!==`held`)return{outcome:`already-claimed`,holder:Z(r)};let i=await Wa(e,t,n);return i.kind===`refused`?i.result:Pa(`idempotent`,r,await vo(e,t,n))}const So=Symbol(`retry-acquisition`);async function Co(e,t,n,r){if(n.recoveryGuard?.ownerGeneration)return Qa(e,t,n,async(i,a)=>{let o=await bo(e,t,n,i,a,r);return o===So?void 0:o});let i=await Ga(e,t,n,r);if(i!==void 0)return Pa(`claimed`,i,await vo(e,t,n));let a=await Q(e,t,n);if(n.recoveryGuard!==void 0)return Za(n,a);if(a===void 0){let r=await Wa(e,t,n);return r.kind===`refused`?r.result:So}if(a.claimToken===n.claimToken)return a.agentId===n.agentId&&a.sessionId===n.sessionId?xo(e,t,n,a):{outcome:`already-claimed`,holder:Z(a)};let o=await Ja(e,t,n,a,n.supersedes?.claimToken===a.claimToken);return o===void 0?{outcome:`already-claimed`,holder:Z(a)}:bo(e,t,n,a,o,r)}async function wo(e,t,n,r){return r.sessionId===n.sessionId?r.status===`disposed`&&n.designateLead?.clear!==!0?{outcome:`agent-disposed`}:Pa(`claimed`,null,await vo(e,t,n)):{outcome:`not-found`,missing:`agent`}}async function To(e,t,n){let r=await ga(e,t,n.agentId);if(r!==void 0)return{kind:`ok`,agent:r};let i=await Wa(e,t,n);if(i.kind===`refused`)return{kind:`refused`,result:i.result};let a=await ga(e,t,n.agentId);return a===void 0?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:{kind:`ok`,agent:a}}async function Eo(e,t,n,r,i){let a;if(n.recoveryGuard!==void 0){if(r===void 0)throw Error(`guarded recovery claim requires ownerInstance`);a=await ya(e,t,{instanceId:r.instanceId,machineId:n.machineId},i)}let o=await To(e,t,n);if(o.kind===`refused`){if(a!==void 0)throw new Y(o.result);return o.result}let s=await Ya(e,t,n,o.agent);if(s!==void 0){if(a!==void 0)throw new Y(s);return s}let c=await wo(e,t,n,o.agent);if(a!==void 0&&c.outcome!==`claimed`)throw new Y(c);return Xa(e,t,n,c)}async function Do(e,t){let n=St(t),r=P(e,W),i=Date.now(),a=n.ownerInstance;if(n.providerSessionId!==null&&a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);if(n.recoveryGuard!==void 0&&a===void 0)throw Error(`guarded recovery claim requires ownerInstance`);try{return await Ut(e,async t=>{let{providerSessionId:o}=n;if(o!==null){if(a===void 0)throw Error(`keyed session ownership claim requires ownerInstance`);let s=await ya(t,r,{instanceId:a.instanceId,machineId:n.machineId},i),c=await To(t,r,n);if(c.kind===`refused`){if(s.inserted)throw new Y(c.result);return c.result}let l={...n,providerSessionId:o,ownerInstance:a,ownerInstanceId:a.instanceId};if(await Bt(e,t,[Ra(l)]),n.recoveryGuard!==void 0){let e=await Ya(t,r,n,c.agent);if(e!==void 0){if(s.inserted)throw new Y(e);return e}}for(let e=0;e<2;e+=1){let e=await Co(t,r,l,i);if(e!==So){if(s.inserted&&e.outcome!==`claimed`)throw new Y(e);return Xa(t,r,n,e)}}throw Error(`session ownership claim could not be acquired: the key ${n.machineId}/${n.adapterId}/${o} was taken and freed by a competitor on every attempt`)}return Eo(t,r,n,a,i)})}catch(e){if(e instanceof Y)return e.result;throw e}}async function Oo(e,t){let n=P(e,W),{adapterSessionClaims:r}=n,i=Date.now();return Ut(e,async e=>{await ga(e,n,t.agentId);let a=t.claimToken===void 0?I(r.agentId,t.agentId):F(I(r.agentId,t.agentId),I(r.claimToken,t.claimToken));if(t.disposition===`released`){let n=await e.delete(r).where(a).returning({providerSessionId:r.providerSessionId});return{releasedProviderSessionIds:n.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:t.claimToken!==void 0&&n.length===0}}let o=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();return{releasedProviderSessionIds:[],markedClaims:o.map(Z),claimTokenNotFound:t.claimToken!==void 0&&o.length===0}})}function ko(e,t){let n=[...Ma(e,t),e.on(A.claim,async e=>{e.setResult(await Do(t,e.payload))}),e.on(A.finalizeRecovery,async e=>{e.setResult(await za(t,e.payload))}),e.on(A.settleCurrency,async e=>{e.setResult(await io(t,e.payload))}),e.on(A.settleMovement,async e=>{let n=pt.parse(e.payload);e.setResult(await ho(t,n))}),e.on(A.release,async e=>{e.setResult(await Ua(t,e.payload))}),e.on(A.releaseAgentClaims,async e=>{e.setResult(await Oo(t,e.payload))}),...Ea(e,t)];return()=>{for(let e=n.length-1;e>=0;--e)n[e]?.()}}async function Ao(e,t){if(t.length===0)return new Map;let{agents:n}=P(e,W),r=[...new Set(t)],i=await e.select().from(n).where(L(n.sessionId,r)),a=new Map;for(let e of i){let t=a.get(e.sessionId)??[];t.push(e),a.set(e.sessionId,t)}return a}async function jo(e,t){return Kt(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Mo(e,t){if(t.length===0)return new Map;let{messages:n}=P(e,f),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:Jt()}).from(n).where(L(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function No(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function Po(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=mt.safeParse(t);return n.success?n.data:void 0}catch{return}}function Fo(e,t,n,r){return{sessionId:e.session_id,createdAt:e.created_at,lastActivityAt:e.last_activity_at,status:e.status,title:e.title??void 0,leadAgentId:e.lead_agent_id??void 0,parentSessionId:e.parent_session_id??void 0,rootSessionId:e.root_session_id??void 0,forkPointMessageId:e.fork_point_message_id??void 0,branchKind:e.branch_kind??void 0,generation:e.generation,adapterName:e.adapter_name??void 0,adapterSessionId:e.adapter_session_id??void 0,adapterId:e.adapter_id??void 0,isOrchestrated:e.is_orchestrated===null?void 0:!!e.is_orchestrated,isImported:e.is_imported===null?void 0:!!e.is_imported,summary:e.summary??void 0,summaryUpdatedAt:e.summary_updated_at??void 0,forkTransforms:No(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:Po(e.metadata),machineId:e.machine_id??void 0,agents:t.map(e=>({agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0})),preview:{messageCount:r.get(e.session_id)??0,firstUserMessage:n.get(e.session_id)??null}}}function Io(e,t){let n=Kt(t).fts,r=[];return r.push(e.on(T.search,async e=>{let{query:r,limit:i=20,status:a=`all`,isImported:o}=e.payload,s=r.trim();if(!s){e.setResult({sessions:[],total:0});return}let c={query:s,likePattern:`%${s.toLowerCase()}%`,status:a===`all`?void 0:a,isImported:o},l=await n.searchSessionRows(t,{...c,limit:i});if(l.length===0){e.setResult({sessions:[],total:0});return}let u=await n.countSessionMatches(t,c),d=l.map(e=>e.session_id),f=await Ao(t,d),p=await jo(t,d),m=await Mo(t,d),h=l.map(e=>Fo(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Lo(e,t){return(await Wt(e).all(z`
|
|
75
|
+
WITH RECURSIVE ancestors AS (
|
|
76
|
+
SELECT session_id, parent_session_id
|
|
77
|
+
FROM sessions
|
|
78
|
+
WHERE session_id = ${t}
|
|
79
|
+
|
|
80
|
+
UNION ALL
|
|
81
|
+
|
|
82
|
+
SELECT s.session_id, s.parent_session_id
|
|
83
|
+
FROM sessions s
|
|
84
|
+
JOIN ancestors a ON s.session_id = a.parent_session_id
|
|
85
|
+
)
|
|
86
|
+
SELECT session_id FROM ancestors
|
|
87
|
+
`)).map(e=>e.session_id)}const Ro=new Map;function zo(e,t){let n=(Ro.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return Ro.set(e,r),r.then(()=>{Ro.get(e)===r&&Ro.delete(e)}),n}function Bo(e,t){return`${e}:${t}`}async function Vo(e,t,n){let r=await e.requestOptional(d.getByIds,{sessionId:t,eventIds:[Bo(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function Ho(e,t){return zo(JSON.stringify([t.sessionId,t.turnAnchorId]),()=>Uo(e,t))}async function Uo(e,t){let{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}=t,{turn:u,created:d}=await e.request(C.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(E.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await Vo(e,n,u.turnId)===!1),m&&(p===void 0?console.warn(`[turn-ingest] Turn ${u.turnId} (session ${n}) ingested without messages — skipping session.turn.* emission (getByTurn contract unfulfillable)`):await Wo(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function Wo(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:l}=t,u={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:l},d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:l};await me(e,{type:`turn.started`,sessionId:i,payload:u,eventId:Bo(`turn.started`,n.turnId)}),await me(e,{type:`turn.completed`,sessionId:i,payload:d,eventId:Bo(`turn.completed`,n.turnId)}),await e.emit(j.turn.started,u),await e.emit(j.turn.completed,d)}const Go=tt(`log-import`,{listImporters:{request:D.object({}),response:D.object({importers:D.array(D.object({adapterName:D.string(),clientId:D.string().optional()}))})},importFile:{request:D.object({filePath:D.string(),adapterName:D.string(),ingestionMarker:_t.optional()}),response:D.discriminatedUnion(`status`,[D.object({status:D.literal(`imported`),sessionId:D.string(),messageCount:D.number(),turnCount:D.number()}),D.object({status:D.literal(`skipped`),reason:D.enum([`no-importer`,`file-missing`])})])},importSession:{request:D.object({adapterSessionId:D.string(),adapterName:D.string(),ingestionMarker:_t.optional()}),response:D.object({sessionId:D.string(),messageCount:D.number()})}}).subjects;async function Ko(e,t,n){await e.requestOptional(T.rebindObserved,{externalSessionId:t,source:n,startMode:`compact`})}async function qo(e,t,n){let r=n??await Jo(e,t);if(r===void 0){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] Managed compaction reached no row; ordinal not advanced`,{adapterSessionId:t});return}await e.requestOptional(T.update,{sessionId:r,advanceGeneration:!0})}async function Jo(e,t){let n=await e.requestOptional(T.getByAdapterSessionId,{adapterSessionId:t});if(!(!n.handled||n.data.session===null))return n.data.session.sessionId}const Yo=`observed-session-ingestion-policy`;function Xo(e,t){return e.emit(rt.register,{capabilityId:Yo,provider:t})}function Zo(e,t){return e.emit(rt.unregister,{capabilityId:Yo,providerId:t})}function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function Qo(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.displayName==`string`&&typeof t.decideObservedSessionIngestion==`function`}function $o(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function es(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var ts=class{bus;managedAdapterSessionIds=new Map;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=Et){this.bus=e,this.cleanups.push(this.bus.on(it.runtime.started,async e=>{try{await this.handleRuntimeStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to handle runtime started`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(it.session.started,async e=>{try{await this.handleSessionStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to register observed session`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(it.session.turn.completed,async e=>{try{await this.handleTurnCompleted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to trigger import for observed turn`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(rt.register,e=>{let{provider:t}=e.payload;Qo(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Yo}}),this.bus.on(rt.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Yo}}))}destroy(){for(let e of this.cleanups.splice(0))e()}async handleRuntimeStarted(e){if(!(e.source.layer!==`adapter`||e.adapterSessionId===void 0)){if(this.managedAdapterSessionIds.has(e.adapterSessionId))e.sessionId!==void 0&&this.managedAdapterSessionIds.set(e.adapterSessionId,e.sessionId);else{if(this.managedAdapterSessionIds.size>=1e4){let e=this.managedAdapterSessionIds.keys().next().value;e!==void 0&&this.managedAdapterSessionIds.delete(e)}this.managedAdapterSessionIds.set(e.adapterSessionId,e.sessionId)}await this.reconcileTrackingStub(e.clientId,e.adapterSessionId)}}async reconcileTrackingStub(e,t){let n=await this.resolveImporter(e);if(n===null)return;let r=await this.bus.requestOptional(T.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!es(i))return;let a=await this.bus.requestOptional(lt.getBySession,{sessionId:i.sessionId,limit:1});if(!a.handled){$(`Preserved tracking stub because message storage is unavailable`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}if(a.data.messages.length>0){$(`Preserved tracking stub with imported content (native takeover)`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}(await this.bus.requestOptional(T.delete,{sessionId:i.sessionId})).handled&&$(`Reconciled hook-first tracking stub`,{adapterSessionId:t,source:n.adapterName,deletedSessionId:i.sessionId})}async resolveImporter(e){let t=this.importerByClientId.get(e);if(t!==void 0)return t===null?null:{adapterName:t};let n=await this.bus.requestOptional(Go.listImporters,{});if(!n.handled)return this.debugUnresolved(e,`no log-import service registered`),null;let r=n.data.importers.find(t=>t.clientId===e);return r===void 0?(this.importerByClientId.set(e,null),this.debugUnresolved(e,`no importer registered for client`),null):(this.importerByClientId.set(e,r.adapterName),{adapterName:r.adapterName})}debugUnresolved(e,t){this.unresolvedClientIds.has(e)||(this.unresolvedClientIds.add(e),$(`Skipping observed ingestion for client '${e}': ${t}`))}async handleSessionStarted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0)return;if(this.managedAdapterSessionIds.has(t)){e.startMode===`compact`&&await qo(this.bus,t,this.managedAdapterSessionIds.get(t));return}let n=await this.resolveImporter(e.clientId);if(n===null)return;let r=e.startMode===`resume`||e.startMode===`compact`?e.startMode:void 0,i=r===void 0?await this.registerObservedSession(e,t,n.adapterName):await this.rebindObservedSession(e,t,n.adapterName,r);this.managedAdapterSessionIds.has(t)&&(e.startMode===`compact`&&await qo(this.bus,t,this.managedAdapterSessionIds.get(t)),i&&await this.reconcileTrackingStub(e.clientId,t))}async rebindObservedSession(e,t,n,r){let i=await this.bus.requestOptional(T.rebindObserved,{externalSessionId:t,source:n,startMode:r,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId}});if(!i.handled)return $(`Session storage unavailable; skipped observed-session rebind`,{adapterSessionId:t}),!1;if(i.data.outcome===`not-found`){let i=await this.decideImportStatus(this.policyInput(e,t,n));if(i===`discovered`){let a=await this.registerObservedSession(e,t,n,i);return a&&r===`compact`&&await Ko(this.bus,t,n),a}return $(`Observed continuation of an unknown session; leaving creation to the transcript import`,{adapterSessionId:t,source:n,startMode:r}),!1}try{await this.bus.requestOptional(j.ownership.continuation,{sessionId:i.data.sessionId,startMode:r})}catch(e){$(`Continuation report failed; the rebind stands`,{sessionId:i.data.sessionId,startMode:r,error:e})}return!0}policyInput(e,t,n){return{clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}}async registerObservedSession(e,t,n,r){let i=ns(e.metadata),a=r??await this.decideImportStatus(this.policyInput(e,t,n)),o=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,s=o===void 0?{kind:ut,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:ot,parentAdapterSessionId:o,forkPointMessageId:null};return(await this.bus.requestOptional(T.importUpsert,{...s,externalSessionId:t,source:n,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:a,activation:a===`tracking`?`live`:void 0,...i===void 0?{}:{metadata:i}})).handled?!0:($(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t}),!1)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Go.importFile,{filePath:e.transcriptPath,adapterName:n.adapterName,ingestionMarker:`live`});r.handled?r.data.status===`skipped`&&$(`Targeted import skipped`,{adapterSessionId:t,reason:r.data.reason}):$(`log-import.importFile unhandled; watcher fallback will ingest`,{adapterSessionId:t});return}try{await this.bus.requestOptional(Go.importSession,{adapterSessionId:t,adapterName:n.adapterName,ingestionMarker:`live`})}catch(e){$(`Discovery-based import fallback failed (no stub yet); watcher will ingest`,{adapterSessionId:t,error:e})}}}async decideImportStatus(e){for(let t of this.policyProviders.values())if((await t.decideObservedSessionIngestion(e)).importStatus===`discovered`)return`discovered`;return`tracking`}async shouldImportObservedContent(e){let t=await this.bus.requestOptional(T.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if($o(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function ns(e){if(e===void 0)return;let t=mt.safeParse(e);return t.success?t.data:void 0}const rs=Ht(`import_cursors`,e=>({filePath:e.text(`file_path`).primaryKey(),bytesRead:e.int8(`bytes_read`).notNull(),lastModified:e.text(`last_modified`).notNull(),updatedAt:e.epochMs(`updated_at`).notNull()})),is=rs.sqlite,as=rs.postgres,os=Vt({importCursors:is},{importCursors:as});function ss(e,t){let{importCursors:n}=P(t,os),r=[];return r.push(e.on(sn.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(I(n.filePath,r)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),r.push(e.on(sn.set,async e=>{let{filePath:r,bytesRead:i,lastModified:a}=e.payload;await t.insert(n).values({filePath:r,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:n.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(sn.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(I(n.filePath,r));e.setResult({success:N(i)})})),()=>{r.forEach(e=>e())}}Ft(`embeddings`,{id:Nt(`id`).primaryKey({autoIncrement:!0}),entityType:It(`entity_type`).notNull(),entityId:It(`entity_id`).notNull(),model:It(`model`).notNull(),dimensions:Nt(`dimensions`).notNull(),content:It(`content`),embedding:jt(`embedding`,{mode:`buffer`}).notNull(),createdAt:Nt(`created_at`).notNull()},e=>[Mt(`idx_embeddings_entity`).on(e.entityType,e.entityId),Mt(`idx_embeddings_model`).on(e.model),Lt(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function cs(e){if(e.byteLength%4!=0)throw Error(`Invalid embedding blob: byte length ${e.byteLength} is not a multiple of 4 (IEEE-754 f32 lanes)`);return e instanceof ArrayBuffer?new Float32Array(e):e.byteOffset%4==0?new Float32Array(e.buffer,e.byteOffset,e.byteLength/4):new Float32Array(Uint8Array.from(e).buffer)}var ls=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=Wt(e),this.engine=Gt(this.rawSql.dialect)}slugify(e){return e.replace(/[^a-zA-Z0-9]/g,`_`).toLowerCase()}hashModel(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)>>>0;return t.toString(36)}getTableName(e){return`embeddings_idx_${this.slugify(e)}_${this.hashModel(e)}`}async ensureIndexTable(e,t){let n=this.getTableName(e);if(this.knownTables.has(n))return n;let r=z.identifier(n),i=z.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(z`CREATE TABLE IF NOT EXISTS ${r} (
|
|
88
|
+
entity_type TEXT NOT NULL,
|
|
89
|
+
entity_id TEXT NOT NULL,
|
|
90
|
+
embedding ${i} NOT NULL,
|
|
91
|
+
PRIMARY KEY (entity_type, entity_id)
|
|
92
|
+
)`),this.knownTables.add(n),n}async upsertIndexed(e,t,n,r,i){let a=await this.ensureIndexTable(e,t),o=new Uint8Array(i.buffer,i.byteOffset,i.byteLength),s=z.identifier(a);await this.rawSql.run(z`INSERT INTO ${s} (entity_type, entity_id, embedding)
|
|
93
|
+
VALUES (${n}, ${r}, ${o})
|
|
94
|
+
ON CONFLICT(entity_type, entity_id) DO UPDATE SET
|
|
95
|
+
embedding = excluded.embedding`)}async searchSimilar(e,t,n=10){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return[];this.knownTables.add(r)}let i=z.identifier(r),a=await this.rawSql.all(z`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=cs(e.embedding),r=this.euclideanDistance(t,n);return{entityType:e.entity_type,entityId:e.entity_id,distance:r}}).sort((e,t)=>e.distance-t.distance).slice(0,n)}async deleteByEntity(e,t,n){let r=this.getTableName(e);if(!this.knownTables.has(r)){if(!await this.engine.capabilities.tableExists(this.rawSql,r))return;this.knownTables.add(r)}let i=z.identifier(r);await this.rawSql.run(z`DELETE FROM ${i} WHERE entity_type = ${t} AND entity_id = ${n}`)}euclideanDistance(e,t){let n=0;for(let r=0;r<e.length;r++){let i=e[r]-t[r];n+=i*i}return Math.sqrt(n)}},us=class{sessionId;parentSessionId;status=`active`;_turns=[];_completedTurnIds=new Set;bus;constructor(e){this.sessionId=e.sessionId??crypto.randomUUID(),this.parentSessionId=e.parentSessionId,this.bus=e.bus}get turns(){return this._turns}async startTurn(e){if(this.status!==`active`)throw Error(`Cannot start turn on non-active session`);let t=new jr({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await Le(this.bus,{sessionId:this.sessionId,turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId,ingestionMarker:`live`}),t}getActiveTurn(){for(let e=this._turns.length-1;e>=0;e--){let t=this._turns[e];if(!this._completedTurnIds.has(t.turnId))return t}}async completeTurn(e){if(!e.isComplete())throw Error(`Turn ${e.turnId} is not complete yet`);let t=e.getResult(),n={turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0};await me(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(j.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function ds(e,t){let{sessions:n}=P(t,W);async function r(i,a,o,s=0){if(s>100)throw Error(`Cycle detected in session lineage (depth > 100)`);let c=await t.select({adapterSessionId:n.adapterSessionId,sessionId:n.sessionId,parentSessionId:n.parentSessionId}).from(n).where(F(I(n.parentExternalSessionId,i),I(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(T.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(j.import.completed,async i=>{let{adapterSessionId:a,sessionId:o,source:s}=i.payload,c=await t.select({sessionId:n.sessionId,adapterSessionId:n.adapterSessionId,branchKind:n.branchKind}).from(n).where(F(I(n.parentExternalSessionId,a),I(n.source,s),R(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(T.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(T.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const fs=new Set([`Agent`,`spawn_subagent`]),ps=`[^A-Za-z0-9_-]`;function ms(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function hs(e,t){return t.test(e)}async function gs(e,t){let n=[],r,i=0;do{let a=await e.request(E.getBySession,{sessionId:t,order:`asc`,...r===void 0?{}:{after:r}});if(n.push(...a.messages),r=a.nextCursor??void 0,i+=1,r!==void 0&&i>=1e3)throw Error(`Exceeded 1000 message pages while loading session ${t}`)}while(r!==void 0);return n}function _s(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&fs.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function vs(e,t){let n=new Map;for(let r of e)for(let e of r.blocks)if(e.type===`tool_output`){for(let r of t)if(hs(e.output,r.pattern)){let t=n.get(e.toolCallId)??new Set;t.add(r.id),n.set(e.toolCallId,t)}}let r=new Map;for(let[e,t]of n)if(t.size===1){let[n]=t;r.set(e,n)}return r}function ys(e){let t=new Map,n=new Set;for(let r of e)if(!(r===null||n.has(r.adapterSessionId))){if(t.has(r.adapterSessionId)){t.delete(r.adapterSessionId),n.add(r.adapterSessionId);continue}t.set(r.adapterSessionId,r.sessionId)}return t}function bs(e){return[...e].map(e=>{let t=ms(e);return{id:e,pattern:RegExp(`(^|${ps})${t}($|${ps})`)}})}async function xs(e,t,n){let{children:r}=await e.request(T.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(T.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=bs(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await gs(e,t.sessionId),r=_s(n);if(r.length===0)return null;let i=vs(n,s);if(i.size===0)return null;let a=[...i.entries()].filter(([,e])=>e===o);if(a.length!==1)return null;let[c]=a[0];return r.some(e=>e.toolCallId===c)?{parentSessionId:t.sessionId,toolCallId:c}:null}))).filter(e=>e!==null);c.length===1&&await e.request(T.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function Ss(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(T.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(T.getChildren,{sessionId:s}),l=await Cs(e,c);if(l.size===0)return;let u=await gs(e,a),d=_s(u);if(d.length===0)return;let f=vs(u,bs(new Set(l.keys()))),p=new Map;for(let e of d){let t=f.get(e.toolCallId);t!==void 0&&p.set(t,(p.get(t)??0)+1)}let m=new Map;for(let e of d){let t=f.get(e.toolCallId),n=t===void 0?void 0:l.get(t);n!==void 0&&t!==void 0&&p.get(t)===1&&m.set(n,e.toolCallId)}if(m.size===0)return;let h=[...m].map(async([t,n])=>{try{await e.request(T.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:s,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(h)}async function Cs(e,t){return ys(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(T.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function ws(e){return e.on(j.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(T.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await xs(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await Ss(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Ts(e){return[...e].map(e=>{let t=ms(e);return{id:e,pattern:RegExp(`(^|${ps})${t}($|${ps})`)}})}async function Es(e,t,n){return ys(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(T.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Ds(e){return e.on(j.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(T.getChildren,{sessionId:n}),a=await Es(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await gs(e,n),c=_s(s);if(c.length===0)return;let l=vs(s,Ts(o)),u=new Map;for(let e of c){let t=l.get(e.toolCallId);t!==void 0&&u.set(t,(u.get(t)??0)+1)}let d=new Map;for(let e of c){let t=l.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&u.get(t)===1&&d.set(n,e.toolCallId)}let f=[...d].map(async([t,r])=>{try{let{session:n}=await e.request(T.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(T.update,{sessionId:t,spawningToolCallId:r})}catch(e){console.error(`Failed to persist spawning tool call correlation`,{parentSessionId:n,childSessionId:t,toolCallId:r,error:e})}});await Promise.allSettled(f)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function Os(e){return e.on(O.session.discovered,async t=>{let n=ft.safeParse(t.payload);if(!n.success)throw console.error(`[registerSessionDiscoveredHandler] Invalid adapter.session.discovered payload`,{issues:n.error.issues}),n.error;let{adapterId:r,adapterSessionId:i,adapterName:a,cwd:o,title:s,logFilePath:c,startedAt:l,machineId:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=et({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(T.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...l===void 0?{}:{startedAt:l},...u===void 0?{}:{machineId:u},...m})})}var ks=class{bus;agentStates=new Map;sessionStates=new Map;unsubscribe;staleThresholdMs;constructor(e,t){this.bus=e,this.staleThresholdMs=t?.staleThresholdMs??36e5}start(){this.unsubscribe||=this.bus.on(k.contextWindow.updated,e=>{let{agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s}=e.payload;if(!n)return;let c={agentId:t,sessionId:n,currentTokens:r,maxTokens:i,percentage:a,level:o,cachedTokens:s,updatedAt:Date.now()};this.agentStates.set(t,c),this.recomputeSessionState(n)})}stop(){this.unsubscribe?.(),this.unsubscribe=void 0,this.agentStates.clear(),this.sessionStates.clear()}getSessionState(e){return this.sessionStates.get(e)}clearSession(e){this.sessionStates.delete(e);for(let[t,n]of this.agentStates)n.sessionId===e&&this.agentStates.delete(t)}recomputeSessionState(e){let t=Date.now(),n;for(let[r,i]of this.agentStates){if(t-i.updatedAt>this.staleThresholdMs){this.agentStates.delete(r);continue}i.sessionId===e&&(!n||i.percentage>n.percentage)&&(n=i)}n&&this.sessionStates.set(e,{currentTokens:n.currentTokens,maxTokens:n.maxTokens,percentage:n.percentage,level:n.level,worstAgentId:n.agentId,lastUpdatedAt:n.updatedAt})}};export{$n as $,Di as A,Zr as B,jo as C,Fa as D,ko as E,ii as F,Ur as G,Xr as H,ni as I,mr as J,jr as K,ti as L,K as M,Ci as N,Ia as O,ri as P,cr as Q,ei as R,Mo as S,No as T,Yr as U,Qr as V,qr as W,V as X,ur as Y,lr as Z,Go as _,ds as a,Io as b,ss as c,ts as d,Jn as et,$o as f,Zo as g,Xo as h,ws as i,Ei as j,ha as k,is as l,Yo as m,Os as n,Fn as nt,us as o,es as p,kr as q,Ds as r,Tn as rt,ls as s,ks as t,Ln as tt,rs as u,Ho as v,Fo as w,Ao as x,Lo as y,$r as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e}from"./package-AlsbnlSt.mjs";export{e as resolveExportedPackages};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsonl-transport-
|
|
1
|
+
import{t as e}from"./jsonl-transport-Ct1RWs0h.mjs";import{CorrelationTracker as t,DEFAULT_REQUEST_TIMEOUT_MS as n,handleCorrelationResponse as r,trackMessageCorrelation as i}from"@makaio/framework/bus";var a=class{name;spawnOptions;jsonl=null;handlers=new Set;correlations=new t;handshakeComplete=!1;terminalError=null;localSubscriptions=new Map;readyResolve=null;readyReject=null;onNewReadySession=void 0;onConnected=void 0;onDisconnected=void 0;ready;constructor(e){this.name=e.name??`stdio-server`,this.spawnOptions=e.spawn,this.ready=this.createReadyPromise()}async connect(){if(this.jsonl!==null)throw Error(`StdioServerTransport: already connected`);this.readyResolve===null&&this.readyReject===null&&(this.ready=this.createReadyPromise()),this.handshakeComplete=!1,this.terminalError=null;let t=e(this.spawnOptions);this.jsonl=t,t.onMessage(e=>{this.jsonl===t&&this.handleInbound(e)}),t.onError(e=>{this.jsonl===t&&this.terminateSession(e,!0)}),t.process.once(`exit`,e=>{this.jsonl===t&&this.terminateSession(Error(`Child process exited (code ${e??`signal`}) before subscribe-sync handshake completed`),!1)}),this.localSubscriptions.size>0&&this.sendSubscribeMessage()}async send(e,t){if(this.jsonl===null)throw Error(`StdioServerTransport: not connected`);return this.jsonl.send(e),i(e,this.correlations,t??n)}onReceive(e){return this.handlers.add(e),()=>{this.handlers.delete(e)}}async disconnect(){let e=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=null,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),e?.close()}async subscribe(e,t,n=[],r){let i=r??this.localSubscriptions.get(e)?.deliveryClass??`relayable`;this.localSubscriptions.set(e,{priorities:n,filter:t,deliveryClass:i}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n,i)}async unsubscribe(e){let t=this.localSubscriptions.delete(e);this.jsonl!==null&&t&&this.jsonl.send({type:`unsubscribe`,subjects:{[e]:[]}})}isReady(){return this.jsonl!==null&&this.terminalError===null&&this.handshakeComplete&&this.jsonl.process.exitCode===null}cancelRequest(e,t){this.correlations.cancel(e,t)}createReadyPromise(){let e=new Promise((e,t)=>{this.readyResolve=e,this.readyReject=t});return this.onNewReadySession?.(e),e}terminateSession(e,t){let n=this.jsonl;this.jsonl=null,this.handshakeComplete=!1,this.terminalError=e,this.readyReject?.(e),this.readyResolve=null,this.readyReject=null,this.correlations.cleanup(),t&&n?.close(),this.onDisconnected?.()}async handleInbound(e){if(typeof e!=`object`||!e||typeof e.type!=`string`)return;let t=e;if(t.type!==`heartbeat`){if(t.type===`subscribe-sync-complete`){this.handshakeComplete=!0,this.readyResolve?.(),this.readyResolve=null,this.readyReject=null,this.jsonl?.send({type:`subscribe-sync-complete`}),this.onConnected?.();return}if(!r(t,this.correlations))for(let e of this.handlers)try{await e(t,{transportName:this.name})}catch{}}}sendSubscribeMessage(e,t,n=[],r=`relayable`){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},deliveryClasses:{[e]:r},...t===void 0?{}:{filters:{[e]:t}}});return}let i={},a={},o={},s=!1;for(let[e,t]of this.localSubscriptions)i[e]=t.priorities,a[e]=t.deliveryClass,t.filter!==void 0&&(o[e]=t.filter,s=!0);this.jsonl.send({type:`subscribe`,subjects:i,deliveryClasses:a,...s?{filters:o}:{}})}};export{a as StdioServerTransport};
|
|
@@ -18,4 +18,4 @@ ${r}
|
|
|
18
18
|
<true/>
|
|
19
19
|
</dict>
|
|
20
20
|
</plist>
|
|
21
|
-
`}function b(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}var x=class{id=`macos-auto-launch`;displayName=`macOS Login Item`;capabilityId=`autoLaunch`;appName;appPath;constructor(e){this.appName=e.appName,this.appPath=e.appPath}async enable(e=!0){try{let t=v(p),r=y(p,this.appPath,e);return await n(o.dirname(t),{recursive:!0}),await this.tryBootout(),await a(t,r,`utf-8`),await f(`launchctl`,[`load`,`-w`,t]),{enabled:!0}}catch(e){return{enabled:!1,error:m(e)}}}async disable(){try{let e=v(p);return await this.tryBootout(),await i(e,{force:!0}),{disabled:!0}}catch(e){return{disabled:!1,error:m(e)}}}async getStatus(){try{return{enabled:(await r(v(p),`utf-8`)).includes(b(this.appPath)),supported:!0}}catch(e){return S(e)&&e.code===`ENOENT`?{enabled:!1,supported:!0}:{enabled:!1,supported:!0,error:m(e)}}}async tryBootout(){try{let e=process.getuid?.()??501;await f(`launchctl`,[`bootout`,`gui/${String(e)}/${p}`])}catch{}}};function S(e){return e instanceof Error&&`code`in e}function C(e,t){let n=e.on(l.autoLaunch.enable,async e=>{let n=await t.enable(e.payload.hidden);e.setResult(n)}),r=e.on(l.autoLaunch.disable,async e=>{let n=await t.disable();e.setResult(n)}),i=e.on(l.autoLaunch.getStatus,async e=>{let n=await t.getStatus();e.setResult(n)});return()=>{n(),r(),i()}}function w(e={}){return{name:`platform-macos`,displayName:`Platform: macOS`,version:`0.1.0`,requires:[{type:`host`,id:`darwin`}],create:t=>{let n=e.autoLaunch===!1?void 0:e.autoLaunch??g({env:process.env,execPath:process.execPath}),r=n?new x(n):void 0,i;return{async init(){r&&(i=C(t.bus,r),u(t.bus,r))},destroy(){i?.(),r&&t.bus.emit(c.unregister,{capabilityId:s,providerId:r.id})}}}}}const T=w();export{T as platformMacOSPackage};
|
|
21
|
+
`}function b(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}var x=class{id=`macos-auto-launch`;displayName=`macOS Login Item`;capabilityId=`autoLaunch`;appName;appPath;constructor(e){this.appName=e.appName,this.appPath=e.appPath}async enable(e=!0){try{let t=v(p),r=y(p,this.appPath,e);return await n(o.dirname(t),{recursive:!0}),await this.tryBootout(),await a(t,r,`utf-8`),await f(`launchctl`,[`load`,`-w`,t]),{enabled:!0}}catch(e){return{enabled:!1,error:m(e)}}}async disable(){try{let e=v(p);return await this.tryBootout(),await i(e,{force:!0}),{disabled:!0}}catch(e){return{disabled:!1,error:m(e)}}}async getStatus(){try{return{enabled:(await r(v(p),`utf-8`)).includes(b(this.appPath)),supported:!0}}catch(e){return S(e)&&e.code===`ENOENT`?{enabled:!1,supported:!0}:{enabled:!1,supported:!0,error:m(e)}}}async tryBootout(){try{let e=process.getuid?.()??501;await f(`launchctl`,[`bootout`,`gui/${String(e)}/${p}`])}catch{}}};function S(e){return e instanceof Error&&`code`in e}function C(e,t){let n=e.on(l.autoLaunch.enable,async e=>{let n=await t.enable(e.payload.hidden);e.setResult(n)}),r=e.on(l.autoLaunch.disable,async e=>{let n=await t.disable();e.setResult(n)}),i=e.on(l.autoLaunch.getStatus,async e=>{let n=await t.getStatus();e.setResult(n)});return()=>{n(),r(),i()}}function w(e={}){return{name:`platform-macos`,displayName:`Platform: macOS`,version:`0.1.0`,requires:[{type:`host`,id:`darwin`}],create:t=>{let n=e.autoLaunch===!1?void 0:e.autoLaunch??g({env:process.env,execPath:process.execPath}),r=n?new x(n):void 0,i;return{async init(){r&&(i=C(t.bus,r),u(t.bus,r))},destroy(){i?.(),r&&t.bus.emit(c.unregister,{capabilityId:s,providerId:r.id})}}}}}const T=w();export{w as createPlatformMacOSPackage,T as platformMacOSPackage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-
|
|
1
|
+
import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-BY3sBW2L.mjs";
|
|
2
2
|
export { DatabaseClient, DatabaseClientConfig, PostgresClientOptions, createDatabaseClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,h as t,n}from"../../registry-
|
|
1
|
+
import{a as e,h as t,n}from"../../registry-DtaRGU8i.mjs";async function r(r={}){if(r.url!==void 0){let n=e(r.url);if(n.kind===`missing-engine`)throw Error(t(n.dialect,n.packageName));if(n.kind===`engine`)return n.engine.createClient(r)}return n(`sqlite`).createClient(r)}export{r as createDatabaseClient};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DATABASE_DIALECT, c as getDatabaseDialect, n as DatabaseClientConfig, o as MakaioDatabase, s as StorageDialect, t as DatabaseClient } from "../../client-
|
|
1
|
+
import { a as DATABASE_DIALECT, c as getDatabaseDialect, n as DatabaseClientConfig, o as MakaioDatabase, s as StorageDialect, t as DatabaseClient } from "../../client-BY3sBW2L.mjs";
|
|
2
2
|
import { ExtensionContext } from "@makaio/framework/contracts";
|
|
3
3
|
import { IMakaioBus } from "@makaio/framework/bus";
|
|
4
4
|
import * as _$drizzle_orm_sqlite_core0 from "drizzle-orm/sqlite-core";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../../registry-
|
|
1
|
+
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"../../registry-DtaRGU8i.mjs";import{autoPk as C,bool as w,epochMs as T,float8 as E,jsonCol as D}from"./columns/sqlite.mjs";import{autoPk as O,bool as k,epochMs as A,float8 as j,jsonCol as M}from"./columns/postgres.mjs";import{integer as N,sqliteTable as P,text as F}from"drizzle-orm/sqlite-core";import{bigint as ee,integer as I,pgTable as L,text as R}from"drizzle-orm/pg-core";import{getTableColumns as z,sql as B}from"drizzle-orm";import{createStorageNamespace as V}from"@makaio/framework/storage";const H=[{dialect:`postgres`,enginePackageName:`@makaio/storage-pg`,chainDirName:`drizzle-postgres`,drizzleConfigSpecifier:`drizzle.config.ts`,normalizeScriptSpecifier:`scripts/normalize-migrations.ts`}];function U(e){return H.find(t=>t.dialect===e)}async function W(e,t,n){for(let r of u(e).transactionLocks.lockExpressions(n))await t.select({acquired:r}).from(B.raw(`(SELECT 1) AS transaction_lock_anchor`))}async function G(e,t,n){let r=e.get(t)??Promise.resolve(),i=Promise.withResolvers(),a=r.catch(()=>void 0).then(()=>i.promise);e.set(t,a),await r.catch(()=>void 0);try{return await n()}finally{i.resolve(),e.get(t)===a&&e.delete(t)}}async function K(e,t){return G(J,e,t)}async function q(e,t){return K(e,()=>e.transaction(t))}const J=new WeakMap;function Y(e){return(t,n,r)=>e(t,n,r)}function X(e,t){return{sqlite:e,postgres:t}}function Z(t,n){return n[e(t)]}function Q(e,t){let n=(e,t)=>({sqlite:e,postgres:t,notNull:()=>n(e.notNull(),t.notNull()),default:r=>n(e.default(r),t.default(r)),primaryKey:()=>n(e.primaryKey(),t.primaryKey()),unique:r=>n(e.unique(r),t.unique(r)),$type:()=>n(e,t),references:(r,i)=>n(e.references(()=>r().sqlite,i),t.references(()=>r().postgres,i))});return n(e,t)}const $={text:e=>Q(F(e),R(e)),textEnum:(e,t)=>Q(F(e,t),R(e,t)),epochMs:e=>Q(T(e),A(e)),bool:e=>Q(w(e),k(e)),jsonCol:e=>Q(D(e),M(e)),autoPk:e=>Q(C(e),O(e)),float8:e=>Q(E(e),j(e)),int4:e=>Q(N(e),I(e)),int8:e=>Q(N(e),ee(e,{mode:`number`}))};function te(e,t,n){let r=t($),i={},a={};for(let[e,t]of Object.entries(r))i[e]=t.sqlite,a[e]=t.postgres;let o=P(e,i,n?.sqlite),s=L(e,a,n?.postgres),c=z(o),l=z(s);return{sqlite:o,postgres:s,columnPair(e){return{sqlite:c[e],postgres:l[e]}}}}export{t as DATABASE_DIALECT,H as NON_BASELINE_GENERATION_LEGS,f as STORAGE_ENGINE_URL_HINTS,W as acquireTransactionLocks,i as affectedRowCount,b as brandDatabase,d as buildFirstUserMessagePreviewQuery,V as createStorageNamespace,X as defineDialectSchema,te as defineDualTable,l as describeMissingStorageEngine,x as didAffectRows,q as executeTransaction,U as findGenerationLegForDialect,v as findStorageEngine,e as getDatabaseDialect,S as getRawSqlExecutor,p as getStorageEngine,n as importRuntimeModule,y as isSqliteDuplicateObjectError,o as isSqliteUniqueViolationError,c as quoteSqlIdentifier,s as readErrorCode,Y as registerDrizzleHandlers,g as registerStorageEngine,Z as resolveSchema,u as resolveStorageEngine,r as resolveStorageEngineForUrl,a as sanitizeFtsQuery,G as serializeByKey,K as serializeDatabaseOperation,h as someInCauseChain,_ as sqliteFtsSearchStrategy,m as sqliteStorageEngine};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../../index
|
|
1
|
+
import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../../index--gbsE1W0.mjs";
|
|
2
2
|
export { CrudLifecycleConfig, DrizzleCrudConfig, DrizzleListConfig, buildScopePredicates, createDrizzleCrudHandlers, createDrizzleListHandler };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index
|
|
1
|
+
import { a as DrizzleCrudConfig, i as CrudLifecycleConfig, n as createDrizzleListHandler, o as DrizzleListConfig, r as createDrizzleCrudHandlers, t as buildScopePredicates } from "../../index--gbsE1W0.mjs";
|
|
2
2
|
|
|
3
3
|
//#region storage/handlers/src/utils.d.ts
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as t}from"./services/session/storage/namespace.mjs";import"./session-
|
|
1
|
+
import{a as e}from"./ownership-recovery-guard-C9h8K1jo.mjs";import{SessionStorageSubjects as t}from"./services/session/storage/namespace.mjs";import"./session-CMbztxNO.mjs";import{AgentSubjects as n,ApprovalSubjects as r,HarnessSubjects as i,computeMetaTags as a}from"@makaio/framework/contracts";import{BaseService as o}from"@makaio/framework/service-base";import{extractToolFilePath as s}from"@makaio/framework/tools";const c={"full-access":0,"always-ask":1,reject:2};function l(){return`apr_${crypto.randomUUID()}`}function u(e){switch(e){case`allow`:return`full-access`;case`deny`:return`reject`;case`ask`:return`always-ask`}}function d(e){if(!e?.length)return`neutral`;let t=a(e);return t.includes(`destructive`)?`destructive`:t.includes(`read-only`)?`safe`:`neutral`}function f(e,t){if(e)return t&&e.toolApprovalOverrides?.[t]!==void 0?e.toolApprovalOverrides[t]:e.approvalPolicy}function p(e,t,n,r){let i=r[t];if(!i?.length)return e;let a=e;for(let e of i){let t=n[e];t&&c[t]>c[a]&&(a=t)}return a}function m(e,t,n){return n.handled?n.data.allowedDirectories??void 0:t?[]:void 0}function h(e,t,n){if(!n||!e?.cwd)return{};let r;return(e.personaId||e.profileId)&&t&&(r=m(e.personaId,e.profileId,t)),{cwd:e.cwd,...r&&{allowedDirectories:r}}}function g(e,t,n){if(!(!e&&!t))return!n||!n.handled?{policy:`always-ask`}:{policy:u(n.data.action),...n.data.personaName&&{personaName:n.data.personaName},...n.data.profileName&&{profileName:n.data.profileName}}}function _(e,t){let n=t.harness?.toolCapabilityMap&&e.toolName?t.harness.toolCapabilityMap[e.toolName]:void 0;return{requestId:l(),toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,agentId:e.agentId,sessionId:e.sessionId,adapterName:t.resolvedAdapterName,...t.personaName&&{personaName:t.personaName},...t.profileName&&{profileName:t.profileName},capabilities:n,riskLevel:d(n),reasoning:e.reasoning,createdAt:Date.now()}}var v=class extends o{logger=console;options;constructor(e,t={}){super(e),this.options=t}async onInit(){this.registerHandler(n.toolApprove,async e=>{let t=await this.getAgentMetadata(e.payload.agentId,e.payload.sessionId),n=(t?.personaId||t?.profileId)&&e.payload.toolName?await this.fetchRawEnrichedPolicy(t?.personaId,t?.profileId,e.payload.toolName):void 0,r=h(t,n,this.options.fileAccessRuleProvider),i=await this.checkFileAccessDenyReason(e.payload,r);if(i){e.setResult({action:`deny`,message:i,shouldAbort:!1});return}let a=await this.resolveSessionOverride(e.payload.sessionId);if(a===`full-access`){e.setResult({action:`allow`});return}if(a===`reject`){e.setResult({action:`deny`,message:`Tool use rejected by session approval policy override`,shouldAbort:!1});return}let o=await this.resolvePolicyWithContext({adapterName:e.payload.adapterName,toolName:e.payload.toolName},t,n);switch(a===`always-ask`?`always-ask`:o.policy){case`full-access`:e.setResult({action:`allow`});return;case`reject`:e.setResult({action:`deny`,message:`Tool use rejected by approval policy`,shouldAbort:!1});return;case`always-ask`:await this.dispatchAlwaysAskApproval(e.payload,e.setResult.bind(e),o);return}})}async dispatchAlwaysAskApproval(e,t,i){let a=_(e,i),o=new AbortController,s=this.bus.on(n.session.closed,()=>{o.abort()},{filter:{agentId:a.agentId,...e.adapterSessionId!==void 0&&{adapterSessionId:e.adapterSessionId}}});try{let e=await this.bus.requestOptional(r.request,a,{timeout:0,signal:o.signal});e.handled&&e.data.action===`allow`?t({action:`allow`,...e.data.updatedInput&&{updatedInput:e.data.updatedInput}}):t({action:`deny`,message:e.handled&&e.data.action===`deny`?e.data.message??`User denied tool execution`:`No approval handler available`,shouldAbort:!1})}catch{t({action:`deny`,message:o.signal.aborted?`Approval cancelled — agent session closed`:`Tool approval request failed`,shouldAbort:!1})}finally{s()}}async checkFileAccessDenyReason(e,t){if(!this.options.fileAccessRuleProvider||!t.cwd)return;let n=s(e.toolName,e.args,t.cwd);if(n)try{return(await this.options.fileAccessRuleProvider(t.cwd,t.allowedDirectories)).isDenied(n)?`Access denied: '${n}' is restricted by .makaioignore rules`:void 0}catch{return`Access denied: file access rules could not be evaluated`}}async fetchRawEnrichedPolicy(e,t,n){try{return await this.bus.requestOptional(r.resolveEnrichedPolicy,{toolName:n,personaId:e,profileId:t})}catch(r){return this.logger.error(`[ToolApprovalService] approval.resolveEnrichedPolicy failed; falling back to fail-closed`,{toolName:n,personaId:e,profileId:t,error:r}),{handled:!1}}}async resolvePolicyWithContext(e,t,n){let r=t?.adapterName??e.adapterName,i=g(t?.personaId,t?.profileId,n),a=await this.resolveHarnessPolicy(r,t?.harnessId,t?.clientId),o=f(a,e.toolName),s=i?.policy??o??`always-ask`,c=s;return a?.capabilityOverrides&&a.toolCapabilityMap&&e.toolName&&(c=p(s,e.toolName,a.capabilityOverrides,a.toolCapabilityMap)),{policy:c,harness:a,agent:t,resolvedAdapterName:r,...i?.personaName&&{personaName:i.personaName},...i?.profileName&&{profileName:i.profileName}}}async getAgentMetadata(t,n){try{if(n){let{agents:r}=await this.bus.request(e.listBySession,{sessionId:n});return r.find(e=>e.agentId===t)??null}let r=await this.bus.requestOptional(e.get,{agentId:t});return r.handled?r.data.agent:null}catch{return null}}async resolveSessionOverride(e){if(e)try{let n=await this.bus.requestOptional(t.get,{sessionId:e});return n.handled?n.data.session?.approvalPolicyOverride??void 0:void 0}catch{return}}async resolveHarnessPolicy(e,t,n){try{let r=await this.bus.request(i.resolve,{adapterName:e,...t&&{profileHarnessId:t},...n&&{clientId:n}});return{approvalPolicy:r.approvalPolicy,capabilityOverrides:r.capabilityOverrides,toolCapabilityMap:r.toolCapabilityMap,toolApprovalOverrides:r.toolApprovalOverrides}}catch{return}}};export{v as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as e}from"./framework-packages-
|
|
1
|
+
import{l as e}from"./framework-packages-U4Xhouxe.mjs";import{FILE_ACCESS_RULES_KEY as t,extractToolFilePath as n}from"@makaio/framework/tools";function r(){let t=new Map;return{filter:e=>!!e.tools?.createToolsets,async processActivated(n,r,i){let a=i.getService(e);if(!a)throw Error(`ToolRegistry is not available. Ensure toolRegistryPackage is included in the composition root.`);let o=r.tools.createToolsets(i),s=[];try{for(let e of o)await a.register(e),s.push(()=>a.deregister(e.metadata.name))}catch(e){for(let e=s.length-1;e>=0;--e)try{await s[e]()}catch(e){console.error(`[ToolContributionProcessor] Rollback error for "${n}":`,e)}throw e}t.set(n,s)},async processStopped(e){let n=t.get(e);if(n){for(let t=n.length-1;t>=0;--t)try{await n[t]()}catch(t){console.error(`[ToolContributionProcessor] Deregister error for "${e}":`,t)}t.delete(e)}}}}export{n,r,t};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { x as ArtifactRevision$1 } from "./schemas-
|
|
2
|
-
import { l as JsonValue$1 } from "./json-value-
|
|
1
|
+
import { x as ArtifactRevision$1 } from "./schemas-rMUsvzeJ.mjs";
|
|
2
|
+
import { l as JsonValue$1 } from "./json-value-Bjl8jzom.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as _$_makaio_contracts0 from "@makaio/framework/contracts";
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as LogImportMode, t as LogImporterInfo } from "./index-
|
|
1
|
+
import { r as LogImportMode, t as LogImporterInfo } from "./index-D3peNmHN2.mjs";
|
|
2
2
|
import * as _$_makaio_bus_core0 from "@makaio/framework/bus";
|
|
3
3
|
import { IMakaioBus } from "@makaio/framework/bus";
|
|
4
4
|
import { LogImportOrchestrator, LogImporter } from "@makaio/framework/adapters";
|