@makaio/framework 1.0.0-dev-1781117225170 → 1.0.0-dev-1781260968078
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/README.md +29 -0
- package/dist/.makaio-build.json +2 -2
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +3 -3
- package/dist/adapters/index.mjs +1 -1
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/bus/index.mjs +1 -1
- package/dist/client-BJVDImPV.d.mts +175 -0
- package/dist/clients/index.d.mts +105 -2
- package/dist/clients/index.mjs +2 -2
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +4 -4
- 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 +575 -62
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- 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/session/index.d.mts +2 -2
- package/dist/contracts/shared/index.d.mts +1 -1
- 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/{definition-Cp-5xJp_.d.mts → definition-SiimP25_.d.mts} +1 -1
- package/dist/{detached-extension-handle-oXbjv1tA.mjs → detached-extension-handle-Diiwgm13.mjs} +1 -1
- package/dist/drizzle/0001_messages_content_tsv.na.md +18 -0
- package/dist/drizzle/0012_legal_kate_bishop.sql +3 -0
- package/dist/drizzle/0013_eager_rhodey.sql +56 -0
- package/dist/drizzle/0014_fancy_ultimo.sql +1 -0
- package/dist/drizzle/meta/0012_snapshot.json +2934 -0
- package/dist/drizzle/meta/0013_snapshot.json +2954 -0
- package/dist/drizzle/meta/0014_snapshot.json +2959 -0
- package/dist/drizzle/meta/_journal.json +21 -0
- package/dist/drizzle-wjquQK2m.mjs +1 -0
- package/dist/extension-DfNcE0zm.mjs +1 -0
- package/dist/extension-ZBN4BGre.mjs +1 -0
- package/dist/{filesystem-service-CBJT7A5w.mjs → filesystem-service-BjfrUmGS.mjs} +1 -1
- package/dist/{globby-C0lgTOUl.mjs → globby-BIH65cbN.mjs} +1 -1
- package/dist/handler-DSfSAlxx.mjs +1 -0
- package/dist/handlers-C8EtpSqK.mjs +41 -0
- package/dist/{index-DfUBcVtG.d.mts → index-B2xbnMZe.d.mts} +1 -1
- package/dist/{index-uQl_1wQO.d.mts → index-BAhJKQLX.d.mts} +8 -8
- package/dist/{index-i7o6FtS0.d.mts → index-BDRKAxIV.d.mts} +129 -2
- package/dist/{index-kLBWooVu.d.mts → index-BQiHs8EF.d.mts} +12 -12
- package/dist/{index-SFkbbDxs.d.mts → index-BYkOUd0x.d.mts} +1 -1
- package/dist/{index-C1uZLARQ.d.mts → index-BvSyOgTY.d.mts} +1314 -46
- package/dist/{index-Bw8SkcWG.d.mts → index-Bw_zL7Rs.d.mts} +1 -1
- package/dist/{index-CXfWW8cP.d.mts → index-CARxIllg.d.mts} +7 -7
- package/dist/{index-t9Vt4Jbb.d.mts → index-Cb64d5c5.d.mts} +6 -6
- package/dist/{index-hWzUQtDn.d.mts → index-CgjslA5-.d.mts} +92 -19
- package/dist/{index-ClgVA8Rz.d.mts → index-D5CI1V5d.d.mts} +22 -22
- package/dist/{index-BY-fz0Jy.d.mts → index-DDQkhhRo.d.mts} +149 -141
- package/dist/{index-v2kRZnfw2.d.mts → index-DTdqGAfH2.d.mts} +20 -10
- package/dist/{index-CT-zFurA.d.mts → index-Drz_a7kW.d.mts} +1 -1
- package/dist/{index-BELri1Hy.d.mts → index-IekAD8Gp.d.mts} +8 -8
- package/dist/{index-C_jIVT40.d.mts → index-fVgKVvta.d.mts} +1 -1
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/{lib-zuQKc8ym.mjs → lib-Cq5R6Tx9.mjs} +1 -1
- package/dist/{lib-IkUYa2Qs.mjs → lib-nlcl5kRW.mjs} +1 -1
- package/dist/{load-extensions-DE8qDIqi.d.mts → load-extensions-D9nbDIiW.d.mts} +1 -1
- package/dist/{load-extensions-CwxilDj1.mjs → load-extensions-wELQ4BBN.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/{namespace-CZPu_jvy.d.mts → namespace-7tsuJhQ9.d.mts} +66 -66
- package/dist/{namespace-ffepZB8Y.d.mts → namespace-B73Sxj5L.d.mts} +6 -6
- package/dist/{namespace-Da_dHfdm.d.mts → namespace-Ba4bxtHQ.d.mts} +11 -11
- package/dist/{namespace-DvHoeMUV.d.mts → namespace-DDCjoQUj.d.mts} +3 -3
- package/dist/namespace-DwE2g8Wm.mjs +1 -0
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/{orchestrator-shared-FnWrPS09.mjs → orchestrator-shared-Dt4WDse7.mjs} +1 -1
- package/dist/package-Be2Ez4vv.mjs +1 -0
- package/dist/package.json +1 -1
- package/dist/primitive-runtime-Xrc9xh6p.mjs +1 -0
- package/dist/registry-RG-bkw3c.mjs +146 -0
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +59 -38
- package/dist/runtime-node/index.mjs +26 -53
- 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-CfuF2cXW.d.mts → schema-BNrM9LWb.d.mts} +218 -12
- package/dist/schema-BerZmr2q.mjs +1 -0
- package/dist/schema-BrnYlDwZ.mjs +1 -0
- package/dist/{schemas-SPI-Y87l2.d.mts → schemas-DAFYpgHk2.d.mts} +12 -12
- 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 +2 -2
- 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/capability/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-rules/index.d.mts +4 -4
- 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/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +12 -12
- package/dist/services/filesystem/schemas.d.mts +6 -6
- package/dist/services/git/namespace.d.mts +2 -2
- package/dist/services/git/schemas.d.mts +2 -2
- package/dist/services/harness/index.d.mts +32 -20
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/harness/storage/schema.d.mts +60 -16
- package/dist/services/harness/storage/schema.mjs +1 -1
- package/dist/services/index.d.mts +73 -73
- 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 +7 -12
- package/dist/services/log-import/index.mjs +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/namespace.d.mts +2 -2
- package/dist/services/log-import/schemas.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/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +10 -10
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +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/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +2 -2
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.d.mts +18 -2
- package/dist/services/session/testing/index.mjs +52 -3
- 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/turns/namespace.mjs +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 +12 -12
- 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/session-KnewDVxt.mjs +39 -0
- package/dist/{session-lineage-CxHc3_bm.d.mts → session-lineage-CXzV_hAP.d.mts} +1 -1
- package/dist/{src-DI5TcYUW.mjs → src-CBG3IHUl.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +2 -78
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/columns/postgres.d.mts +88 -0
- package/dist/storage/drizzle/columns/postgres.mjs +1 -0
- package/dist/storage/drizzle/columns/sqlite.d.mts +81 -0
- package/dist/storage/drizzle/columns/sqlite.mjs +1 -0
- package/dist/storage/drizzle/index.d.mts +976 -23
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/testing/drizzle-harness.d.mts +52 -6
- package/dist/testing/drizzle-harness.mjs +1 -1
- package/dist/testing/index.d.mts +34 -2
- package/dist/testing/index.mjs +1 -1
- package/dist/{tool-approval-service-BgNcJvKx.mjs → tool-approval-service-Cb2F1yT6.mjs} +1 -1
- package/dist/tools-D5DVHC-R.mjs +1 -0
- package/dist/{types-C5Uy3WEy.d.mts → types-D5IMwOkJ.d.mts} +1 -1
- package/dist/{types-CZHV05Lu.d.mts → types-DLVitCZP.d.mts} +51 -51
- package/dist/ui-kernel/index.d.mts +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/workflow-engine/index.d.mts +482 -86
- 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/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-worker-hDaQzTBl.mjs → workflow-worker-CK9Sqj7D.mjs} +1 -1
- package/package.json +40 -1
- package/dist/drizzle-DpjZFY_j.mjs +0 -1
- package/dist/extension--5Q190u_.mjs +0 -1
- package/dist/extension-DFIZ3FCJ.mjs +0 -1
- package/dist/handlers-Bev7-xjL.mjs +0 -41
- package/dist/namespace-CDiM5Bcr.mjs +0 -1
- package/dist/namespace-h0HIuqx0.mjs +0 -1
- package/dist/package-C9wOiMK9.mjs +0 -1
- package/dist/primitive-runtime-1Z3JbRUj.mjs +0 -1
- package/dist/schema-DCJyzRHe.mjs +0 -1
- package/dist/schema-DOnJmAPw.mjs +0 -1
- package/dist/session-BnfsJoZi.mjs +0 -134
- package/dist/tools-B8d8Iqqx.mjs +0 -1
- package/dist/types-yTKQTAok.d.mts +0 -31
- /package/dist/{ajv-0JG5NFEd.mjs → ajv-BA2z5ztb.mjs} +0 -0
- /package/dist/{await-trigger-CHuOd5co.mjs → await-trigger-DREnXCEJ.mjs} +0 -0
- /package/dist/{base-orchestrator-D-S9v5VY.d.mts → base-orchestrator-M5mAB5-w.d.mts} +0 -0
- /package/dist/{cleanEnvForAdapter-BlpmyXYk.mjs → cleanEnvForAdapter-vZfPGi0X.mjs} +0 -0
- /package/dist/{clients-namespace-E97p_GKF.d.mts → clients-namespace-SFk7OTop.d.mts} +0 -0
- /package/dist/{config-namespace-R_34Wfps.d.mts → config-namespace-BzAvE2nY.d.mts} +0 -0
- /package/dist/{create-static-mount-B9Szo_7y.mjs → create-static-mount-BB1MIQ9J.mjs} +0 -0
- /package/dist/{cross-spawn-CTptpCy4.mjs → cross-spawn-BL6EvJBv.mjs} +0 -0
- /package/dist/{cursor-storage-YikwAZR5.mjs → cursor-storage-CmKjSvKY.mjs} +0 -0
- /package/dist/{definition-CYzWS2eR.d.mts → definition-BSghHJpQ.d.mts} +0 -0
- /package/dist/{definition-CvOuzWNT.d.mts → definition-q6iLw11H.d.mts} +0 -0
- /package/dist/{descriptor-to-package-9nrAH_D5.mjs → descriptor-to-package-CY8oc2gl.mjs} +0 -0
- /package/dist/{esm-CglYG5aA.mjs → esm-CQVFKEW5.mjs} +0 -0
- /package/dist/{extension-discovery-BD1-oNU_.d.mts → extension-discovery-CkV_VRdJ.d.mts} +0 -0
- /package/dist/{filesystem-service-BcwRp4k1.d.mts → filesystem-service-Ddngll0j.d.mts} +0 -0
- /package/dist/{index-DJQew2k-.d.mts → index-9IDJUJ4X.d.mts} +0 -0
- /package/dist/{index-CNYPKkyH.d.mts → index-BBvcP-P0.d.mts} +0 -0
- /package/dist/{index-BFaeVdsn2.d.mts → index-BKKNWqkP2.d.mts} +0 -0
- /package/dist/{index-Dn9Uum3F.d.mts → index-BMpRB6iE.d.mts} +0 -0
- /package/dist/{index-CdNDnxXR.d.mts → index-BbCjtc3h.d.mts} +0 -0
- /package/dist/{index-B6RGNugn.d.mts → index-BnQSPC6c.d.mts} +0 -0
- /package/dist/{index-DUPZKsd3.d.mts → index-BpXX9WZJ.d.mts} +0 -0
- /package/dist/{index-DUhXk_q6.d.mts → index-BpniJgxu.d.mts} +0 -0
- /package/dist/{index-ChG8ZUNP.d.mts → index-Bsp0O_sI.d.mts} +0 -0
- /package/dist/{index-CmGvjpUG.d.mts → index-BtztOqaF.d.mts} +0 -0
- /package/dist/{index-CF7dnqQj.d.mts → index-Buo9H8RK.d.mts} +0 -0
- /package/dist/{index-9KnLzPYu.d.mts → index-BxFA1XcP.d.mts} +0 -0
- /package/dist/{index-AZ4iLe7O2.d.mts → index-C33Tq1ei2.d.mts} +0 -0
- /package/dist/{index--0CnhN0g.d.mts → index-C6BhKRnH.d.mts} +0 -0
- /package/dist/{index-BV8rSmDZ.d.mts → index-CDU_s69P.d.mts} +0 -0
- /package/dist/{index-BDlpFEsp2.d.mts → index-CGJjA-hR2.d.mts} +0 -0
- /package/dist/{index-Dsu1tPHm.d.mts → index-CZ_TcT6J.d.mts} +0 -0
- /package/dist/{index-DNGUXQGC.d.mts → index-Cz9JMjZK.d.mts} +0 -0
- /package/dist/{index-C-YBGCCG.d.mts → index-D0SUjZmU.d.mts} +0 -0
- /package/dist/{index-yNb7G73-.d.mts → index-D6Iyvz9T.d.mts} +0 -0
- /package/dist/{index-ziQTLYUO.d.mts → index-DOfq0qqv.d.mts} +0 -0
- /package/dist/{index-BYxgW2i0.d.mts → index-DSV1aFgK.d.mts} +0 -0
- /package/dist/{index-Dbwm5Y-Q.d.mts → index-Dsq2zKvu.d.mts} +0 -0
- /package/dist/{jsonl-transport-DBHQgcIm.mjs → jsonl-transport-C21tpVfe.mjs} +0 -0
- /package/dist/{lib-CaOdTS9F.mjs → lib-CNOQJtgs.mjs} +0 -0
- /package/dist/{namespace-DnZ4rS6T2.d.mts → namespace-B60mn8J-2.d.mts} +0 -0
- /package/dist/{namespace-DfYutvMT.d.mts → namespace-BBVtD1gu.d.mts} +0 -0
- /package/dist/{namespace-BaJJxBsI.d.mts → namespace-CHMszppN.d.mts} +0 -0
- /package/dist/{namespace-uGw5nK6d.d.mts → namespace-CqUGzG53.d.mts} +0 -0
- /package/dist/{namespace-Dik_dNeE.d.mts → namespace-D1Iw_d1P.d.mts} +0 -0
- /package/dist/{namespace-13uMtVGj.d.mts → namespace-DRFJN-_z.d.mts} +0 -0
- /package/dist/{namespace-TfZGCy7N.d.mts → namespace-DzVf1hVH.d.mts} +0 -0
- /package/dist/{namespace-QTFnJWHC.d.mts → namespace-XTGCaSXj.d.mts} +0 -0
- /package/dist/{namespace-CTrNKkxY.d.mts → namespace-nlsvvMtD.d.mts} +0 -0
- /package/dist/{namespace-DkDvQJhB.d.mts → namespace-uuR0Fg5r.d.mts} +0 -0
- /package/dist/{orchestrator-shared-BZVeoRfr.d.mts → orchestrator-shared-D91Wk7z-.d.mts} +0 -0
- /package/dist/{out-CiFds_ap.mjs → out-C1JFb2Bp.mjs} +0 -0
- /package/dist/{package-B2HkKyRz.d.mts → package-BSnp1zOR.d.mts} +0 -0
- /package/dist/{providers-namespace-Cc9FQ-Zt.d.mts → providers-namespace-BqWYkydw.d.mts} +0 -0
- /package/dist/{schemas-BD-1NGmS.d.mts → schemas-B5ToLwIs.d.mts} +0 -0
- /package/dist/{schemas-Hy-lsBpg.d.mts → schemas-B77Gi8Xr.d.mts} +0 -0
- /package/dist/{schemas-BzK1I1eX.d.mts → schemas-C792eVAZ.d.mts} +0 -0
- /package/dist/{schemas-CYS6bkht.d.mts → schemas-Chyj6HuZ.d.mts} +0 -0
- /package/dist/{schemas-BiMxSTUx.d.mts → schemas-CkOSG2eJ.d.mts} +0 -0
- /package/dist/{schemas-DL_bGYyZ.d.mts → schemas-DZUaRcYl.d.mts} +0 -0
- /package/dist/{schemas-DdZwjeF0.d.mts → schemas-Dv5FxHDT.d.mts} +0 -0
- /package/dist/{schemas-CsjB6gel.d.mts → schemas-Dyk7JuVl.d.mts} +0 -0
- /package/dist/{schemas-DFWGb4uj.d.mts → schemas-Kq33MTPY.d.mts} +0 -0
- /package/dist/{schemas-BFeP62V4.d.mts → schemas-lqvZ6UpK.d.mts} +0 -0
- /package/dist/{server-lifecycle-DVAbXQzg.d.mts → server-lifecycle-47mygK3E.d.mts} +0 -0
- /package/dist/{server-lifecycle-JTFuSJhg.mjs → server-lifecycle-Cg47L59Q.mjs} +0 -0
- /package/dist/{src-4_2jBceX.mjs → src-DedDL9iv.mjs} +0 -0
- /package/dist/{storage-namespace-I30TaZP7.d.mts → storage-namespace-BXmMUd7a.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-ZNBL3v2h.d.mts → storage-namespace-definition-C3XbpiP8.d.mts} +0 -0
- /package/dist/{types-11QnNmpW.d.mts → types-5Gw3iVpK.d.mts} +0 -0
- /package/dist/{types-BKNpS4Xw.d.mts → types-B0BtvVAq.d.mts} +0 -0
- /package/dist/{types-0u6hpELc.d.mts → types-BMpIa4fx.d.mts} +0 -0
- /package/dist/{types-BtMNh2FS.d.mts → types-D-bP8RRE.d.mts} +0 -0
- /package/dist/{window-registry-QD1rTk_f.d.mts → window-registry-CfEi_Ji4.d.mts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as ProviderStorageSubjects, n as ProviderRecordSchema, r as ProviderStorageNamespace, t as ProviderRecord } from "../../../providers-namespace-
|
|
1
|
+
import { i as ProviderStorageSubjects, n as ProviderRecordSchema, r as ProviderStorageNamespace, t as ProviderRecord } from "../../../providers-namespace-BqWYkydw.mjs";
|
|
2
2
|
export { ProviderRecord, ProviderRecordSchema, ProviderStorageNamespace, ProviderStorageSubjects };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as InternalPendingRequest, c as SubagentServiceToken, d as SpawnDelegationAllowSet, f as isPeerAuthorizedToDelegate, i as InputResolver, l as subagentServicePackage, n as TrackOptions, o as SpawnOptions, r as AwaitResult, s as TrackedSubagent, t as SubagentManager, u as SubagentService } from "../../index-
|
|
1
|
+
import { a as InternalPendingRequest, c as SubagentServiceToken, d as SpawnDelegationAllowSet, f as isPeerAuthorizedToDelegate, i as InputResolver, l as subagentServicePackage, n as TrackOptions, o as SpawnOptions, r as AwaitResult, s as TrackedSubagent, t as SubagentManager, u as SubagentService } from "../../index-BKKNWqkP2.mjs";
|
|
2
2
|
export { AwaitResult, InputResolver, InternalPendingRequest, SpawnDelegationAllowSet, SpawnOptions, SubagentManager, SubagentService, SubagentServiceToken, TrackOptions, TrackedSubagent, isPeerAuthorizedToDelegate, subagentServicePackage };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-
|
|
2
|
-
import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-
|
|
1
|
+
import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-DAFYpgHk2.mjs";
|
|
2
|
+
import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-B60mn8J-2.mjs";
|
|
3
3
|
export { type SubagentTemplate, SubagentTemplateCompletedEventSchema, type SubagentTemplateCreate, SubagentTemplateCreateSchema, type SubagentTemplateInstance, SubagentTemplateInstanceSchema, type SubagentTemplateInstanceStatus, SubagentTemplateInstanceStatusSchema, SubagentTemplateKernelNamespace, SubagentTemplateKernelSchemas, SubagentTemplateSchema, SubagentTemplateSettingsSchemas, type SubagentTemplateSpawnRequest, SubagentTemplateSpawnRequestSchema, SubagentTemplateSpawnedEventSchema, SubagentTemplateSubjects, type SubagentTemplateSummary, SubagentTemplateSummarySchema, type SubagentTemplateUpdate, SubagentTemplateUpdateSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-
|
|
1
|
+
import { n as SubagentTemplateSubjects, t as SubagentTemplateKernelNamespace } from "../../namespace-B60mn8J-2.mjs";
|
|
2
2
|
export { SubagentTemplateKernelNamespace, SubagentTemplateSubjects };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-
|
|
1
|
+
import { _ as SubagentTemplateUpdate, a as SubagentTemplateInstance, c as SubagentTemplateInstanceStatusSchema, d as SubagentTemplateSettingsSchemas, f as SubagentTemplateSpawnRequest, g as SubagentTemplateSummarySchema, h as SubagentTemplateSummary, i as SubagentTemplateCreateSchema, l as SubagentTemplateKernelSchemas, m as SubagentTemplateSpawnedEventSchema, n as SubagentTemplateCompletedEventSchema, o as SubagentTemplateInstanceSchema, p as SubagentTemplateSpawnRequestSchema, r as SubagentTemplateCreate, s as SubagentTemplateInstanceStatus, t as SubagentTemplate, u as SubagentTemplateSchema, v as SubagentTemplateUpdateSchema } from "../../schemas-DAFYpgHk2.mjs";
|
|
2
2
|
export { SubagentTemplate, SubagentTemplateCompletedEventSchema, SubagentTemplateCreate, SubagentTemplateCreateSchema, SubagentTemplateInstance, SubagentTemplateInstanceSchema, SubagentTemplateInstanceStatus, SubagentTemplateInstanceStatusSchema, SubagentTemplateKernelSchemas, SubagentTemplateSchema, SubagentTemplateSettingsSchemas, SubagentTemplateSpawnRequest, SubagentTemplateSpawnRequestSchema, SubagentTemplateSpawnedEventSchema, SubagentTemplateSummary, SubagentTemplateSummarySchema, SubagentTemplateUpdate, SubagentTemplateUpdateSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as ToolApprovalService } from "../../index-
|
|
1
|
+
import { t as ToolApprovalService } from "../../index-Cz9JMjZK.mjs";
|
|
2
2
|
export { ToolApprovalService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../../tool-approval-service-
|
|
1
|
+
import{t as e}from"../../tool-approval-service-Cb2F1yT6.mjs";export{e as ToolApprovalService};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as createToolContributionProcessor, c as ToolRegistryOptions, d as ToolsetPolicy, f as ToolsetPolicyProvider, i as extractToolFilePath, l as ToolsWithToolsetsResult, n as FileAccessRuleProvider, o as ToolRegistry, r as FileAccessRules, s as ListToolsFilter, t as FILE_ACCESS_RULES_KEY, u as ToolsetInfo } from "../../index-
|
|
1
|
+
import { a as createToolContributionProcessor, c as ToolRegistryOptions, d as ToolsetPolicy, f as ToolsetPolicyProvider, i as extractToolFilePath, l as ToolsWithToolsetsResult, n as FileAccessRuleProvider, o as ToolRegistry, r as FileAccessRules, s as ListToolsFilter, t as FILE_ACCESS_RULES_KEY, u as ToolsetInfo } from "../../index-BxFA1XcP.mjs";
|
|
2
2
|
export { FILE_ACCESS_RULES_KEY, FileAccessRuleProvider, FileAccessRules, ListToolsFilter, ToolRegistry, ToolRegistryOptions, ToolsWithToolsetsResult, ToolsetInfo, ToolsetPolicy, ToolsetPolicyProvider, createToolContributionProcessor, extractToolFilePath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,n as t,r as n,t as r}from"../../tools-
|
|
1
|
+
import{B as e,n as t,r as n,t as r}from"../../tools-D5DVHC-R.mjs";export{r as FILE_ACCESS_RULES_KEY,e as ToolRegistry,n as createToolContributionProcessor,t as extractToolFilePath};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as TrayMenuService } from "../../index-
|
|
2
|
-
import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-
|
|
3
|
-
import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-
|
|
1
|
+
import { t as TrayMenuService } from "../../index-BMpRB6iE.mjs";
|
|
2
|
+
import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-lqvZ6UpK.mjs";
|
|
3
|
+
import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-CqUGzG53.mjs";
|
|
4
4
|
export { TrayMenuEntry, TrayMenuEntrySchema, TrayMenuGroup, TrayMenuGroupEntrySchema, TrayMenuGroupSchema, TrayMenuItemClicked, TrayMenuItemClickedSchema, TrayMenuListEntry, TrayMenuListEntrySchema, TrayMenuMetadataSchema, TrayMenuNamespace, TrayMenuSchemas, TrayMenuSectionSchema, TrayMenuService, TrayMenuSubjects };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-
|
|
1
|
+
import { n as TrayMenuSubjects, t as TrayMenuNamespace } from "../../namespace-CqUGzG53.mjs";
|
|
2
2
|
export { TrayMenuNamespace, TrayMenuSubjects };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-
|
|
1
|
+
import { a as TrayMenuGroupSchema, c as TrayMenuListEntry, d as TrayMenuSchemas, f as TrayMenuSectionSchema, i as TrayMenuGroupEntrySchema, l as TrayMenuListEntrySchema, n as TrayMenuEntrySchema, o as TrayMenuItemClicked, r as TrayMenuGroup, s as TrayMenuItemClickedSchema, t as TrayMenuEntry, u as TrayMenuMetadataSchema } from "../../schemas-lqvZ6UpK.mjs";
|
|
2
2
|
export { TrayMenuEntry, TrayMenuEntrySchema, TrayMenuGroup, TrayMenuGroupEntrySchema, TrayMenuGroupSchema, TrayMenuItemClicked, TrayMenuItemClickedSchema, TrayMenuListEntry, TrayMenuListEntrySchema, TrayMenuMetadataSchema, TrayMenuSchemas, TrayMenuSectionSchema };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-
|
|
1
|
+
import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-D1Iw_d1P.mjs";
|
|
2
2
|
export { TurnStorageNamespace, TurnStorageSubjects };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-
|
|
1
|
+
import { n as TurnStorageSubjects, t as TurnStorageNamespace } from "../../namespace-D1Iw_d1P.mjs";
|
|
2
2
|
export { TurnStorageNamespace, TurnStorageSubjects };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import{agents as e,agentsDual as t,sessions as n,sessionsDual as r}from"./services/session/storage/schema.mjs";import"./schema-BerZmr2q.mjs";import{a as i,i as a,n as o,o as s,r as c}from"./namespace-DwE2g8Wm.mjs";import{SessionStorageSubjects as l}from"./services/session/storage/namespace.mjs";import{A as u,D as d,E as f,F as p,O as m,T as h,b as g,d as _,f as v,j as y,k as b,u as ee,v as te}from"./handlers-C8EtpSqK.mjs";import{TurnStorageSubjects as x}from"./services/turn/namespace.mjs";import{AdapterRuntimeSubjects as ne}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as S}from"./services/session/messages/namespace.mjs";import{n as C}from"./namespace-D6X67cUk.mjs";import{z as w}from"zod";import{MakaioBus as T,NoHandlerError as re}from"@makaio/framework/bus";import{AdapterSubjects as E,AgentSubjects as D,CanonicalModelSubjects as ie,CompressionModeSchema as ae,ForkTransformsSchema as oe,MessageRoutingSchema as se,SessionContextSchema as ce,SessionDiscoveredSchema as le,SessionStorageSetRequestSchema as ue,SessionStorageUpdateSchema as de,SessionSubjects as O,compareMessageCursorAsc as fe,compareMessageCursorDesc as pe,isCanonicalModelParseError as me,messageToCursor as k,parseCanonicalModel as he}from"@makaio/framework/contracts";import{BaseService as ge}from"@makaio/framework/service-base";import{blob as _e,index as ve,integer as ye,primaryKey as be,sqliteTable as xe,text as Se,uniqueIndex as Ce}from"drizzle-orm/sqlite-core";import{index as we,primaryKey as Te}from"drizzle-orm/pg-core";import{defineDialectSchema as A,defineDualTable as Ee,didAffectRows as j,getRawSqlExecutor as De,getStorageEngine as Oe,resolveSchema as M,resolveStorageEngine as N}from"@makaio/framework/storage/drizzle";import{and as P,asc as F,count as I,desc as L,eq as R,gt as ke,gte as Ae,inArray as z,isNull as B,lt as je,lte as Me,or as Ne,sql as V}from"drizzle-orm";import{createStorageNamespaceDefinition as Pe}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Fe}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Ie}from"@makaio/framework/adapters";function Le(e){return e.on(O.agent.added,async t=>{let n=await e.requestOptional(l.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(r.adapterSessionId||(r.adapterSessionId=t.payload.adapterSessionId,r.adapterName=t.payload.adapterName,r.adapterId=t.payload.adapterId),(t.payload.role??(r.leadAgentId?`member`:`lead`))===`lead`&&(r.leadAgentId=t.payload.agentId),r.lastActivityAt=Date.now(),await e.request(l.set,{sessionId:t.payload.sessionId,session:r}))})}function Re(e){return e.on(O.agent.removed,async t=>{let n=await e.requestOptional(l.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;r&&(await e.requestOptional(p.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),r.leadAgentId===t.payload.agentId&&(r.leadAgentId=void 0),r.lastActivityAt=Date.now(),await e.request(l.set,{sessionId:t.payload.sessionId,session:r}))})}function ze(e){return[Be(e),Ve(e),He(e),Ue(e),We(e),Ge(e),Ke(e),Le(e.bus),Re(e.bus)]}function Be(e){let{bus:t}=e;return t.on(O.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:u,executionTargetId:d,spawningToolCallId:f,originWindowId:p}=e.payload,m=n??crypto.randomUUID(),h=Date.now(),g={sessionId:m,createdAt:h,lastActivityAt:h,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:u,executionTargetId:d,spawningToolCallId:f},_=await t.requestOptional(l.set,{sessionId:m,session:g,ifAbsent:!0});if(_.handled&&!_.data.success){e.setResult({sessionId:m});return}await t.emit(O.created,{sessionId:m,createdAt:g.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:m})})}function Ve(e){let{bus:t}=e;return t.on(O.get,async e=>{let n=await t.requestOptional(l.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function He(e){let{bus:t}=e;return t.on(O.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(l.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],u=s.handled?s.data.total:0;e.setResult({sessions:c,total:u})})}function Ue(e){let{bus:t}=e;return t.on(O.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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}i.status=`closed`,i.lastActivityAt=Date.now(),await t.requestOptional(l.set,{sessionId:n,session:i}),await t.emit(O.closed,{sessionId:n}),e.setResult({success:!0})})}function We(e){let{bus:t}=e;return t.on(O.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}=e.payload,o=await t.requestOptional(l.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a}),s=o.handled?o.data.success:!1;if(s){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),e.length>0&&await t.emit(O.updated,{sessionId:n,changedProperties:e})}e.setResult({success:s})})}function Ge(e){let{bus:t}=e;return t.on(O.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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}i.status=`archived`,i.lastActivityAt=Date.now(),await t.requestOptional(l.set,{sessionId:n,session:i}),await t.emit(O.archived,{sessionId:n}),e.setResult({success:!0})})}function Ke(e){let{bus:t}=e;return t.on(O.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(l.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(l.list,{status:`all`}),s=a.handled?a.data.sessions:[];for(let e of s)e.parentSessionId===n&&await t.requestOptional(l.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(o.getEvents,{sessionId:n,options:{limit:1}}),u=c.handled?c.data.totalCount:0;await t.requestOptional(o.deleteBySession,{sessionId:n}),await t.requestOptional(l.delete,{sessionId:n}),await t.emit(O.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:u})})}var qe=class extends ge{constructor(e=T){super(e)}async onInit(){for(let e of ze({bus:this.bus}))this.addCleanup(e);await this.reconcileOrphanedTurns()}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(x.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(x.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});t&&await this.bus.emit(O.turn.completed,{sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`})}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function Je(e){return Error(`No adapter found for adapterName="${e}". Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}var Ye=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(E.initialized,e=>{this.registry.set(e.payload.adapterName,e.payload.adapterId)})}resolve(e){let t=this.registry.get(e);if(!t)throw Je(e);return t}async resolveAvailable(e){try{let{adapterId:t}=await this.bus.request(ne.resolveId,{adapterName:e});return this.registry.set(e,t),t}catch{let t=this.registry.get(e);if(t)return t;throw Je(e)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};function Xe(e,t,n,r){return e.on(o.append,e=>{let{event:i}=e.payload,a=t.get(i.sessionId)??[];if(n.has(i.eventId)){e.setResult({success:!0});return}a.push(i),t.set(i.sessionId,a),n.set(i.eventId,r()),e.setResult({success:!0})})}function Ze(e,t,n){return e.on(o.getEvents,e=>{let{sessionId:r,options:i}=e.payload,a=t.get(r)??[],o=i?.order??`asc`,s=o===`desc`?[...a].reverse():a,c=0;if(i?.after&&/^\d+$/.test(i.after)){let t=Number(i.after),r=s.findIndex(e=>{let r=n.get(e.eventId)??-1;return o===`desc`?r<t:r>t});if(r===-1){e.setResult({events:[],nextCursor:null,totalCount:a.length});return}c=r}let l=s.slice(c);if(i?.types&&i.types.length>0){let e=new Set(i.types);l=l.filter(t=>e.has(t.type))}let u=i?.limit??100,d=l.length>u,f=l.slice(0,u),p=null;if(d&&f.length>0){let e=f[f.length-1],t=n.get(e.eventId);t!==void 0&&(p=t.toString())}e.setResult({events:f,nextCursor:p,totalCount:a.length})})}function Qe(e,t){return e.on(o.getByIds,e=>{let{sessionId:n,eventIds:r}=e.payload,i=t.get(n)??[],a=new Set(r),o=i.filter(e=>a.has(e.eventId));e.setResult({events:o})})}function $e(e,t,n){return e.on(o.deleteBySession,e=>{let{sessionId:r}=e.payload,i=t.get(r);if(i)for(let e of i)n.delete(e.eventId);let a=i?.length??0;t.delete(r),e.setResult({success:!0,deletedCount:a})})}function et(e,t){return e.on(o.getEventsBySessions,e=>{let{sessionIds:n,types:r,limitPerSession:i=50}=e.payload;if(n.length===0||r.length===0){e.setResult({eventsBySession:{}});return}let a=new Set(r),o={};for(let e of n){let n=(t.get(e)??[]).filter(e=>a.has(e.type)).reverse().slice(0,i);n.length>0&&(o[e]=n)}e.setResult({eventsBySession:o})})}function tt(e){let t=new Map,n=new Map,r=1,i=[Xe(e,t,n,()=>r++),Ze(e,t,n),Qe(e,t),$e(e,t,n),et(e,t)];return()=>i.forEach(e=>e())}const nt=a.postgres,rt=A({sessionEvents:c},{sessionEvents:nt}),it=[`sessionId`,`agentId`,`adapterId`,`messageId`,`turnId`];function at(e){let t=e.payload,n={};for(let[e,r]of Object.entries(t))it.includes(e)||(n[e]=r);return n}function ot(e){let t=JSON.parse(e.payload),n=e.type===`message`?e.messageId:e.originatingMessageId,r={...t,sessionId:e.sessionId,...e.agentId&&{agentId:e.agentId},...e.adapterId&&{adapterId:e.adapterId},...n&&{messageId:n},...e.type===`message`?{turnId:e.turnId??null}:e.turnId&&{turnId:e.turnId}};return{sessionId:e.sessionId,eventId:e.eventId,timestamp:e.timestamp,type:e.type,payload:r}}function st(e){switch(e.type){case`user_message.sent`:{let t=e.payload.content;return typeof t==`string`?t:(Array.isArray(t.blocks)?t.blocks:[t.blocks]).filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
2
|
+
`)}case`agent.added`:case`user_message.acknowledged`:case`user_message.completed`:case`turn.started`:case`turn.completed`:case`message`:case`branch.created`:case`branch.merged`:case`squash`:return null;default:return ct(e.payload)}}function ct(e){let t=e.contentText;if(typeof t==`string`&&t.length>0)return t;let n=e.summary;return typeof n==`string`&&n.length>0?n:null}function lt({bus:e,db:t,sessionEvents:n}){return e.on(o.append,async e=>{let{event:r}=e.payload,i=`payload`in r&&`agentId`in r.payload?r.payload.agentId:null,a=`payload`in r&&`adapterId`in r.payload?r.payload.adapterId:null,o=`payload`in r&&`turnId`in r.payload?r.payload.turnId:null,s=`payload`in r&&`messageId`in r.payload?r.payload.messageId:null,c=r.type===`message`?s:null,l=r.type===`message`?null:s,u={sessionId:r.sessionId,eventId:r.eventId,timestamp:r.timestamp,type:r.type,agentId:i,adapterId:a,messageId:c,originatingMessageId:l,turnId:o,contentText:st(r),payload:JSON.stringify(at(r))};await t.insert(n).values(u).onConflictDoNothing(),e.setResult({success:!0})})}function ut({bus:e,db:t,sessionEvents:n}){return e.on(o.getEvents,async e=>{let{sessionId:r,options:i}=e.payload,a=[R(n.sessionId,r)],o=i?.order??`asc`;if(i?.after){let e=parseInt(i.after,10);!isNaN(e)&&e>0&&(o===`desc`?a.push(je(n.id,e)):a.push(ke(n.id,e)))}i?.types&&i.types.length>0&&a.push(z(n.type,i.types));let s=i?.limit??100,c=o===`desc`?L:F,l=await t.select().from(n).where(P(...a)).orderBy(c(n.id)).limit(s+1),u=l.length>s,d=u?l.slice(0,s):l,f=d.map(ot),p=u&&d.length>0?d[d.length-1].id.toString():null;e.setResult({events:f,nextCursor:p})})}function dt({bus:e,db:t,sessionEvents:n}){return e.on(o.getByIds,async e=>{let{sessionId:r,eventIds:i}=e.payload,a=(await t.select().from(n).where(P(R(n.sessionId,r),z(n.eventId,i))).orderBy(F(n.timestamp))).map(ot);e.setResult({events:a})})}function ft({bus:e,db:t,sessionEvents:n}){return e.on(o.deleteBySession,async e=>{let{sessionId:r}=e.payload,i=(await t.select().from(n).where(R(n.sessionId,r))).length;await t.delete(n).where(R(n.sessionId,r)),e.setResult({success:!0,deletedCount:i})})}function pt({bus:e,db:t,sessionEvents:n}){return e.on(o.getEventsBySessions,async e=>{let{sessionIds:r,types:i,limitPerSession:a=50}=e.payload;if(r.length===0||i.length===0){e.setResult({eventsBySession:{}});return}let o={};for(let e of r){let r=await t.select().from(n).where(P(R(n.sessionId,e),z(n.type,i))).orderBy(L(n.timestamp)).limit(a);r.length>0&&(o[e]=r.map(ot))}e.setResult({eventsBySession:o})})}function mt(e,t,n){let{sessionEvents:r}=M(t,rt),i={bus:e,db:t,sessionEvents:r},a=[lt(i),ut(i),dt(i),ft(i),pt(i)];return()=>a.forEach(e=>e())}async function H(e,t){e.emit(S.stored,{message:structuredClone(t)});try{await e.request(o.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 U(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 ht(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.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 H(t,s)})}function gt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?L:F,l=n.select().from(r).where(R(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Ne(je(r.timestamp,a.timestamp),P(R(r.timestamp,a.timestamp),o?Me(r.messageId,a.messageId):je(r.messageId,a.messageId))):Ne(ke(r.timestamp,a.timestamp),P(R(r.timestamp,a.timestamp),o?Ae(r.messageId,a.messageId):ke(r.messageId,a.messageId)));l=n.select().from(r).where(P(R(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?k(p[p.length-1]):null;e.setResult({messages:p.map(U),nextCursor:m})})}function _t(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(R(r.turnId,t)).orderBy(F(r.timestamp));e.setResult({messages:i.map(U)})})}function vt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(R(r.messageId,t)).limit(1);e.setResult({message:i?U(i):null})})}function yt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s),i=N(n).fts;return t.on(S.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(U),total:l})})}function bt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s),i=N(n).fts;return t.on(S.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 xt(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(R(r.adapterMessageId,t)).limit(1);e.setResult({message:i?U(i):null})})}function St(e){let{bus:t,db:n}=e,{messages:r}=M(n,s);return t.on(S.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}).from(r).where(R(r.adapterMessageId,i)).limit(1);if(m){e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();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}),e.setResult({messageId:h,created:!0}),await H(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 Ct(e,t,n){let r={bus:e,db:t},i=[ht(r),gt(r),_t(r),vt(r),yt(r),bt(r),St(r),xt(r)];return()=>i.forEach(e=>e())}function wt(e,t){return fe(k(e),k(t))}function Tt(e,t){return pe(k(e),k(t))}function Et(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Dt(t,n,r,i),o=[Ot(e,t,a),kt(e,t,n),At(e,t,r),jt(e,t),Mt(e,t),Nt(e,i,a),Pt(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Dt(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&&r.set(i.adapterMessageId,i.messageId)}}function Ot(e,t,n){return e.on(S.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 H(e,o)})}function kt(e,t,n){return e.on(S.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`?Tt:wt,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?pe(k(e),a):fe(k(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?k(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function At(e,t,n){return e.on(S.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(wt);e.setResult({messages:i})})}function jt(e,t){return e.on(S.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function Mt(e,t){return e.on(S.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(wt),e.setResult({messages:c.slice(0,a),total:c.length})})}function Nt(e,t,n){return e.on(S.upsertByAdapterMessageId,async r=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=r.payload,m=t.get(i);if(m){r.setResult({messageId:m,created:!1});return}let h=crypto.randomUUID(),g={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};n(g),r.setResult({messageId:h,created:!0}),await H(e,g)})}function Pt(e,t,n,r,i){return e.on(l.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)}n.adapterMessageId&&i.delete(n.adapterMessageId)}}n.delete(a)})}const Ft=Ee(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(i,{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=>[be({columns:[e.messageId,e.agentId,e.status]}),ve(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[Te({columns:[e.messageId,e.agentId,e.status]}),we(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),It=Ft.sqlite,Lt=Pe(`messageRouting`,{schemas:{record:{request:se,response:w.object({success:w.boolean()})},getByMessage:{request:w.object({messageId:w.string()}),response:w.object({routing:w.array(se)})},getCompleted:{request:w.object({messageId:w.string()}),response:w.object({agentIds:w.array(w.string())})},isComplete:{request:w.object({messageId:w.string(),targetAgentIds:w.array(w.string())}),response:w.object({complete:w.boolean(),pending:w.array(w.string())})}},extensions:{drizzle:{messageRouting:It}}}),W=Lt.subjects,Rt=Ft.postgres,zt=A({messageRouting:It},{messageRouting:Rt});function Bt(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function Vt(e,t,n){let{messageRouting:r}=M(t,zt),i=[];return i.push(e.on(W.record,async e=>{let{messageId:n,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(r).values({messageId:n,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[r.messageId,r.agentId,r.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),i.push(e.on(W.getByMessage,async e=>{let{messageId:n}=e.payload,i=await t.select().from(r).where(R(r.messageId,n));e.setResult({routing:i.map(Bt)})})),i.push(e.on(W.getCompleted,async e=>{let{messageId:n}=e.payload,i=await t.select().from(r).where(P(R(r.messageId,n),R(r.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),i.push(e.on(W.isComplete,async e=>{let{messageId:n,targetAgentIds:i}=e.payload,a=await t.select().from(r).where(P(R(r.messageId,n),R(r.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})})),()=>i.forEach(e=>e())}var Ht=class{byAgent=new Map;add(e){let t=this.byAgent.get(e.agentId);t?(t.inputTokens+=e.inputTokens,t.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,outputTokens:e.outputTokens})}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n={};for(let[r,i]of this.byAgent)e+=i.inputTokens,t+=i.outputTokens,n[r]={...i};return{total:{inputTokens:e,outputTokens:t},byAgent:n}}flush(){let e=this.snapshot();return this.byAgent.clear(),e}clear(){this.byAgent.clear()}},Ut=class{bus;activeTurns=new Map;usageAccumulators=new Map;completingSessions=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;cleanups=[];constructor(e){this.bus=e}async createTurn(e,t,n,r){let i=await this.bus.requestOptional(x.create,{sessionId:e,...r!==void 0&&{turnId:r}}),a,o;if(i.handled)a=i.data.turn.turnId,o=i.data.turn.turnNumber;else{a=r??crypto.randomUUID();let t=(this.syntheticTurnCounters.get(e)??0)+1;this.syntheticTurnCounters.set(e,t),o=t}let s=new y({sessionId:e,agentIds:t,turnId:a,turnNumber:o,initiator:n});return this.activeTurns.set(e,s),this.usageAccumulators.set(e,new Ht),s}registerCompletionHandlers(e){this.cleanups.push(this.bus.on(D.usage,e=>{let{agentId:t,turnId:n,inputTokens:r,outputTokens:i}=e.payload;if(!n){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${t}).`);return}let a=this.findActiveTurnByTurnId(n);if(!a){console.warn(`[SessionTurnManager] Dropping usage for inactive turn ${n} (agentId=${t}).`);return}if(!a.hasAgent(t)){console.warn(`[SessionTurnManager] Dropping usage for turn ${n}: agent ${t} is not part of the turn.`);return}if(this.completingSessions.has(a.sessionId)){this.bufferUsageDuringCompletion(a.sessionId,{agentId:t,inputTokens:r,outputTokens:i});return}this.usageAccumulators.get(a.sessionId)?.add({agentId:t,inputTokens:r,outputTokens:i})})),this.cleanups.push(this.bus.on(D.complete,async t=>{let{agentId:n,outcome:r,error:i}=t.payload,a=r!==`error`;await this.handleAgentCompletion(n,a,a?void 0:i,e)}))}async completeTurn(e,t){if(this.completingSessions.has(e.sessionId))return;this.completingSessions.add(e.sessionId);let n=this.usageAccumulators.get(e.sessionId),r=n?.snapshot();try{await this.bus.requestOptional(x.complete,{turnId:e.turnId,status:t.success?`completed`:`error`,error:t.errors.length>0?t.errors.join(`; `):void 0,...r!==void 0&&{usage:r}});let i=this.bufferedUsageDuringCompletion.get(e.sessionId)??[];if(i.length>0){for(let e of i)n?.add(e);this.bufferedUsageDuringCompletion.delete(e.sessionId);let r=n?.snapshot();await this.bus.requestOptional(x.complete,{turnId:e.turnId,status:t.success?`completed`:`error`,error:t.errors.length>0?t.errors.join(`; `):void 0,...r!==void 0&&{usage:r}})}}catch(t){throw this.completingSessions.delete(e.sessionId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}n?.clear(),this.activeTurns.delete(e.sessionId),this.usageAccumulators.delete(e.sessionId),this.completingSessions.delete(e.sessionId),await this.bus.emit(O.turn.completed,{sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0,initiator:e.initiator})}getActiveTurn(e){return this.activeTurns.get(e)}getActiveTurnsMap(){return this.activeTurns}findActiveTurnByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.activeTurns.clear(),this.usageAccumulators.clear(),this.completingSessions.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear()}async handleAgentCompletion(e,t,n,r){let i=f(this.activeTurns,e);if(!i)return;let a=t?i.markAgentCompleted(e):i.markAgentErrored(e,n??`Unknown error`);for(let r of i.messageIds)await this.bus.emit(O.user_message.completed,{sessionId:i.sessionId,turnId:i.turnId,turnNumber:i.turnNumber,messageId:r,agentId:e,outcome:t?`completed`:`error`,error:n});a.turnComplete&&await r(i,a.result)}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}},Wt=class{bus;turnManager;adapterRegistry;cleanups=[];constructor(e=T,t){this.bus=e,this.turnManager=new Ut(e),this.adapterRegistry=new Ye(e),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(O.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=h(o,e.payload.extensionId),l=e.payload.sessionContext?ce.parse(e.payload.sessionContext):void 0,{sessionId:f,session:p}=await d(this.bus,t,l,e.payload.originWindowId);if(p.agents.length===0){let e=await this.resolveInitialAdapterSelection(a,f,n,l),t=await this.resolveAdapterName(e,f),r=_(e.adapterId)??await this.adapterRegistry.resolveAvailable(t),i=await this.bus.request(E.startAgent,{adapterId:r,sessionId:f,role:`lead`,...e.model!==void 0&&{model:e.model},...e.reasoningEffort!==void 0&&{reasoningEffort:e.reasoningEffort},...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},...e.env!==void 0&&{env:e.env},...e.mcpSessionContext!==void 0&&{mcpSessionContext:e.mcpSessionContext},...e.allowedDirectories!==void 0&&{allowedDirectories:e.allowedDirectories},...l!==void 0&&{sessionContext:l}});if(!i.success)throw Error(`[SessionOrchestrator.sendMessage] Failed to start agent (sessionId=${f}, adapterName=${t}): ${i.message}`);let o=Date.now();p.agents.push({agentId:i.agentId,adapterId:i.adapterId,adapterName:t,sessionId:f,role:`lead`,status:`idle`,createdAt:o,lastActivityAt:o}),p.leadAgentId=i.agentId}let g=m(p,r);if(g.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${f})`);let v=new Set;for(let e of g){let t=await this.bus.requestOptional(E.getAgent,{agentId:e.agentId,adapterId:e.adapterId});t.handled&&t.data.agent===null&&v.add(e.agentId)}let y;if(v.size>0){y=await te(this.bus,p);for(let e of g)v.has(e.agentId)&&await this.bus.requestOptional(E.rehydrateAgent,{agentId:e.agentId,adapterId:e.adapterId})}let x=this.turnManager.getActiveTurn(f),ne=!x;x||=await this.turnManager.createTurn(f,g.map(e=>e.agentId),c,e.payload.turnId);let C=crypto.randomUUID();x.addMessage(C);let w=u(n);this.bus.requestOptional(S.append,{message:{messageId:C,turnId:x.turnId,sessionId:f,role:`user`,contentText:b(n),blocks:w,timestamp:Date.now(),...s!==void 0&&{origin:s}}}).catch(e=>{console.warn(`[SessionOrchestrator] Failed to store user message`,{sessionId:f,messageId:C,error:e instanceof Error?e.message:String(e)})});for(let e of g)this.bus.requestOptional(W.record,{messageId:C,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:f,messageId:C,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});ne&&await this.bus.emit(O.turn.started,{sessionId:f,turnId:x.turnId,turnNumber:x.turnNumber,messageId:C,agentIds:[...x.agentIds],initiator:x.initiator}),await this.bus.emit(O.user_message.sent,{sessionId:f,turnId:x.turnId,turnNumber:x.turnNumber,messageId:C,content:n,agentIds:g.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}});let T=y?{...l,...y}:l;await ee(this.bus,p,g,n,C,x,i,this.completeTurn.bind(this),T,e.payload.responseSchema),e.setResult({messageId:C,turnId:x.turnId,sessionId:f})}))}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()}async resolveAdapterName(e,t){let n=_(e.adapterName),r=_(e.adapterId);if(!n&&!r)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${t})`);return r?v(this.bus,r,n,`[SessionOrchestrator.sendMessage] (sessionId=${t}) `):n}async resolveInitialAdapterSelection(e,t,n,r){if(!e)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${t})`);if(e.kind===`adapter`)return e;if(e.kind===`canonical-model`)return await this.resolveCanonicalModelSelection(e,t,n,r);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${t})`)}async resolveCanonicalModelSelection(e,t,n,r){let i=he(e.model);if(me(i))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${e.model}" (sessionId=${t}): ${i.message}`);if(i.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${t})`);let a=await this.bus.request(ie.resolve,{parsed:i,context:{sessionId:t,promptText:b(n),...r===void 0?{}:{sessionContext:r}}});return{...e,...a,kind:`adapter`,providerConfigId:e.providerConfigId??a.providerConfigId}}},Gt=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(S.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof re||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 Kt(e){let{bus:t}=e;return t.on(O.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(l.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function qt(e){let{bus:t}=e;return t.on(O.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(l.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(l.set,{sessionId:n,session:r}),await t.emit(O.resumed,{sessionId:n}),e.setResult({success:!0})})}function Jt(e){return e.on(C.listActions,e=>{let t=g.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const Yt=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function Xt(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 Zt=class{bus;agentToSession=new Map;agentContext=new Map;agentBlocks=new Map;cleanups=[];constructor(e=T){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(O.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(O.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&(this.agentToSession.delete(t),this.agentContext.delete(t),this.agentBlocks.delete(t))}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(O.turn.started,e=>{let{sessionId:t,turnId:n,agentIds:r}=e.payload;for(let e of r){let r=this.agentContext.get(e);this.agentContext.set(e,{...r,sessionId:t,turnId:n}),this.agentBlocks.set(e,[])}})),this.cleanups.push(this.bus.on(O.user_message.acknowledged,e=>{let t=this.agentContext.get(e.payload.agentId);this.agentContext.set(e.payload.agentId,{...t,sessionId:e.payload.sessionId,turnId:e.payload.turnId}),this.agentBlocks.has(e.payload.agentId)||this.agentBlocks.set(e.payload.agentId,[])}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(D.message,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(D.reasoning,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(D.tool.use,e=>{let t=this.agentBlocks.get(e.payload.agentId);t&&t.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(D.tool.completed,e=>{let t=this.agentBlocks.get(e.payload.agentId);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(D.complete,async e=>{if(e.payload._import){this.agentBlocks.delete(e.payload.agentId);return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o}=e.payload;await this.storeAssistantMessage(t,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}))}async storeAssistantMessage(e,t,n,r){let i=this.agentContext.get(e);if(!i?.turnId)return;let a=r===void 0?this.agentBlocks.get(e)??[]:r.content===void 0?[]:[{type:`text`,content:r.content}];if(a.length===0&&!n){this.agentBlocks.delete(e);return}let o=a.filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
3
|
+
`),s=crypto.randomUUID();try{if(!(await this.bus.requestOptional(S.append,{message:{messageId:s,turnId:i.turnId,sessionId:i.sessionId,role:`assistant`,contentText:o||(n?`[Error: ${n}]`:``),blocks:a,agentId:e,adapterSessionId:t,timestamp:Date.now()}})).handled){this.agentBlocks.delete(e);return}let r=await this.bus.requestOptional(S.getByTurn,{turnId:i.turnId});if(r.handled){let t=r.data.messages.find(e=>e.role===`user`);t&&await this.bus.requestOptional(W.record,{messageId:t.messageId,agentId:e,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}this.agentBlocks.delete(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.agentContext.clear(),this.agentBlocks.clear()}},Qt=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(O.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(O.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(O.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(O.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(O.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(O.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(O.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function $t(e,t,n,r,i,a){return new Qt(e,t,n,r,i,a)}function en(e,t){let n=e?.clientAccountId??null,r=t.clientAccountId??null;return!r||n===r?null:{previousClientAccountId:n,clientAccountId:r}}function G(e,t){let n=t.lastClientIdentityObservation;if(t.clientAccountId!==void 0&&!n)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without lastClientIdentityObservation`);if(t.clientAccountId!==void 0&&t.clientId===void 0)throw Error(`Session "${t.sessionId}" cannot persist clientAccountId without clientId`);if(n&&t.clientId!==void 0&&t.clientId!==n.clientId)throw Error(`Session "${t.sessionId}" cannot persist clientId "${t.clientId}" because lastClientIdentityObservation belongs to "${n.clientId}"`)}function K(e,t,n){let r=en(t,n);if(!r)return;let i=n.lastClientIdentityObservation;if(!i)return;let a={sessionId:n.sessionId,clientId:i.clientId,previousClientAccountId:r.previousClientAccountId,clientAccountId:r.clientAccountId,source:i.source,observedAt:i.observedAt,lastClientIdentityObservation:structuredClone(i)};queueMicrotask(()=>{Promise.resolve().then(()=>e.emit(O.clientAccount.changed,a)).catch(e=>{console.error(`[SessionStorage] Failed to emit session.clientAccount.changed:`,e)})})}function tn(e){switch(e){case`fork`:return`fork`;case`subagent`:return`subagent`;case`compress`:return`compress`;case`root`:return;default:return}}function nn(e){switch(e.kind){case`root`:return{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null};case`fork`:return{kind:`fork`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:e.forkPointMessageId};case`subagent`:return{kind:`subagent`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};case`compress`:return{kind:`compress`,parentAdapterSessionId:e.parentAdapterSessionId,forkPointMessageId:null};default:return e.kind}}function rn(){let e=0;return()=>{let t=Date.now();return e=t>e?t:e+1,e}}const an=rn();function on(e,t,n){n!==void 0&&(e[t]=n)}function sn(e,t,n){let r=e.startedAt??n;return{sessionId:t,createdAt:r,lastActivityAt:r,agents:[],status:`discovered`,branchKind:tn(e.kind),adapterName:e.source,adapterSessionId:e.externalSessionId,adapterId:e.adapterId,clientId:e.clientId,isOrchestrated:!1,isImported:!0,title:e.title??void 0,targetWorkingDirectory:e.cwd??void 0,source:e.source,parentExternalSessionId:e.parentAdapterSessionId??void 0,logFilePath:e.logFilePath??void 0,discoveredAt:n,importStatus:`discovered`,forkPointMessageId:e.forkPointMessageId??void 0}}function cn(e,t,n){let r=e.importStatus??`discovered`;r===`discovered`&&(e.status=`discovered`),e.isImported=!0,e.importStatus=r,e.adapterName??=t.source,e.adapterSessionId??=t.externalSessionId,e.source??=t.source,e.discoveredAt??=n}function ln(e,t){t.logFilePath!==void 0&&t.logFilePath!==null&&(e.logFilePath??=t.logFilePath),t.cwd!==null&&(e.targetWorkingDirectory=t.cwd),t.title!==void 0&&t.title!==null&&(e.title=t.title),t.forkPointMessageId!==null&&(e.forkPointMessageId=t.forkPointMessageId),t.parentAdapterSessionId!==null&&(e.parentExternalSessionId=t.parentAdapterSessionId);let n=tn(t.kind);n!==void 0&&(e.branchKind=n),on(e,`adapterId`,t.adapterId),on(e,`clientId`,t.clientId)}function un(e,t,n){t.startedAt!==void 0&&((n===void 0||e.createdAt===n)&&(e.createdAt=t.startedAt),(n===void 0||e.lastActivityAt===n)&&(e.lastActivityAt=t.startedAt))}function dn(e,t,n){let r=e.discoveredAt;cn(e,t,n),ln(e,t),un(e,t,r)}function fn(e,t){if(t.parentExternalSessionId===void 0)return;let n=t.source??t.adapterName,r=Array.from(e.values()).find(e=>e.adapterSessionId===t.parentExternalSessionId&&(e.source??e.adapterName)===n);r&&(t.parentSessionId=r.sessionId,t.rootSessionId=r.rootSessionId??r.sessionId)}function pn(e,t,n){if(n){e.emit(O.created,{sessionId:t.sessionId,parentSessionId:t.parentSessionId??null,branchKind:t.branchKind??null,createdAt:t.createdAt}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e));return}e.emit(O.updated,{sessionId:t.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}function mn(e){let t=0,n=0,r=0;for(let i of e)i.importStatus===`imported`&&(t+=1),i.importStatus===`tracking`&&(n+=1),i.importStatus===`discovered`&&(r+=1);return{total:e.length,imported:t,tracking:n,discovered:r}}function hn(e,t,n){e.emit(O.importStatusChanged,{sessionId:t.sessionId,importStatus:n}).catch(e=>console.error(`[SessionStorage] Failed to emit session.importStatusChanged:`,e));let r=t.source??t.adapterName;n!==`imported`||t.adapterSessionId===void 0||r===void 0||e.emit(O.import.completed,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId,source:r}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}function gn(e){let{bus:t,store:n,cloneSession:r,populateAgents:i}=e;return[t.on(l.importUpsert,e=>{let r=e.payload,i=Array.from(n.values()).find(e=>e.adapterSessionId===r.externalSessionId&&e.source===r.source),a=an(),o=i===void 0,s=i??sn(r,crypto.randomUUID(),a);i?(dn(i,r,a),i.parentExternalSessionId!==void 0&&i.parentSessionId===void 0&&fn(n,i)):(n.set(s.sessionId,s),fn(n,s)),pn(t,s,o),e.setResult({sessionId:s.sessionId,created:o})}),t.on(l.getByLogFilePath,async e=>{let a=Array.from(n.values()).find(t=>t.logFilePath===e.payload.logFilePath);if(!a){e.setResult({session:null});return}let o=await i(t,a.sessionId);e.setResult({session:{...r(a),agents:o}})}),t.on(l.listImported,async e=>{let{source:a,importStatus:o}=e.payload,s=Array.from(n.values()).filter(e=>e.isImported===!0).filter(e=>a===void 0||e.source===a).filter(e=>o===void 0||e.importStatus===o).sort((e,t)=>t.createdAt-e.createdAt),c=await Promise.all(s.map(async e=>({...r(e),agents:await i(t,e.sessionId)})));e.setResult({sessions:c})}),t.on(l.countBySource,e=>{let t=Array.from(n.values()).filter(t=>t.isImported===!0&&t.source===e.payload.source);e.setResult(mn(t))}),t.on(l.updateImportStatus,e=>{let r=n.get(e.payload.sessionId),i=e.payload.importStatus;if(!r||r.importStatus===i){e.setResult({success:!1});return}r.importStatus=i,i===`imported`&&r.status===`discovered`&&(r.status=`active`),e.setResult({success:!0}),hn(t,r,i)})]}async function _n(e,t){let n=await e.requestOptional(p.listBySession,{sessionId:t});return n.handled?n.data.agents:[]}function q(e){return structuredClone(e)}function J(e,t,n){n!==void 0&&(e[t]=n)}function vn(e,t,n){n!==void 0&&(e[t]=n??void 0)}function yn(e,t){let n=e;return t.status!==`all`&&(n=n.filter(e=>e.status===t.status)),t.executionTargetId!==void 0&&(n=n.filter(e=>e.executionTargetId===t.executionTargetId)),n}function bn(e,t){J(e,`status`,t.status),J(e,`parentSessionId`,t.parentSessionId),J(e,`contextInheritance`,t.contextInheritance),J(e,`rootSessionId`,t.rootSessionId),J(e,`forkPointMessageId`,t.forkPointMessageId),J(e,`branchKind`,t.branchKind),J(e,`isOrchestrated`,t.isOrchestrated),J(e,`clientId`,t.clientId),J(e,`clientAccountId`,t.clientAccountId),J(e,`lastClientIdentityObservation`,t.lastClientIdentityObservation),J(e,`title`,t.title),J(e,`targetWorkingDirectory`,t.targetWorkingDirectory),J(e,`createdAt`,t.createdAt),J(e,`lastActivityAt`,t.lastActivityAt),vn(e,`executionTargetId`,t.executionTargetId),vn(e,`approvalPolicyOverride`,t.approvalPolicyOverride),t.spawningToolCallId===null?e.spawningToolCallId=void 0:t.spawningToolCallId!==void 0&&e.spawningToolCallId===void 0&&(e.spawningToolCallId=t.spawningToolCallId)}function xn(e,t){return e.on(l.list,async n=>{let{status:r=`all`,limit:i,offset:a=0,includePreview:o=!1,executionTargetId:s}=n.payload,c=yn(Array.from(t.values()),{status:r,executionTargetId:s});c.sort((e,t)=>t.lastActivityAt-e.lastActivityAt);let l=c.length;i!==void 0&&(c=c.slice(a,a+i));let u=await Promise.all(c.map(async t=>({...q(t),agents:await _n(e,t.sessionId)}))),d=o?u.map(e=>({...e,preview:{messageCount:0,firstUserMessage:null}})):u;n.setResult({sessions:d,total:l})})}function Sn(e,t){return e.on(l.update,async n=>{let r=structuredClone(de.request.parse(n.payload)),i=t.get(r.sessionId);if(!i){n.setResult({success:!1,clientAccountChanged:!1});return}let a=q(i);G(a,{sessionId:i.sessionId,clientId:r.clientId??i.clientId,clientAccountId:r.clientAccountId??i.clientAccountId,lastClientIdentityObservation:r.lastClientIdentityObservation??i.lastClientIdentityObservation}),bn(i,r),n.setResult({success:!0,clientAccountChanged:(a.clientAccountId??null)!==(i.clientAccountId??null)}),K(e,a,q(i))})}function Cn(e){let t=new Map,n=[];return n.push(e.on(l.get,async n=>{let r=t.get(n.payload.sessionId);if(!r){n.setResult({session:null});return}let i=await _n(e,n.payload.sessionId);n.setResult({session:{...q(r),agents:i}})})),n.push(e.on(l.set,async n=>{let{sessionId:r,session:i,ifAbsent:a}=ue.parse(n.payload);if(a&&t.has(r)){n.setResult({success:!1,clientAccountChanged:!1});return}let o=structuredClone(i),s=t.get(r)??null,c=s?q(s):null;G(s,o),t.set(r,o),n.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(o.clientAccountId??null)}),K(e,c,q(o))})),n.push(e.on(l.delete,async e=>{t.delete(e.payload.sessionId),e.setResult({success:!0}),await e.next()})),n.push(xn(e,t)),n.push(e.on(l.getChildren,e=>{let{sessionId:n}=e.payload,r=Array.from(t.values()),i=r.filter(e=>e.parentSessionId===n),a=new Set(r.map(e=>e.parentSessionId).filter(e=>!!e)),o=i.map(e=>({sessionId:e.sessionId,title:e.title??null,forkPointMessageId:e.forkPointMessageId??null,branchKind:e.branchKind??null,messageCount:0,hasChildren:a.has(e.sessionId),spawningToolCallId:e.spawningToolCallId}));e.setResult({children:o})})),n.push(e.on(l.getStatusCounts,e=>{e.payload;let n=Array.from(t.values()),r=n.filter(e=>e.status===`active`).length,i=n.filter(e=>e.status===`closed`).length,a=n.filter(e=>e.status===`archived`).length,o=n.filter(e=>e.status===`discovered`).length;e.setResult({all:r+i+a+o,active:r,closed:i,archived:a,discovered:o})})),n.push(Sn(e,t)),n.push(wn(e,t)),n.push(...gn({bus:e,store:t,populateAgents:_n,cloneSession:q})),()=>n.forEach(e=>e())}function wn(e,t){return e.on(l.getByAdapterSessionId,async n=>{let{adapterSessionId:r,source:i}=n.payload,a=Array.from(t.values()).filter(e=>e.adapterSessionId!==void 0&&e.adapterSessionId===r&&(i===void 0||e.source===i)),o=a[0];if(a.length!==1||o===void 0){n.setResult({session:null});return}let s=await e.requestOptional(p.listBySession,{sessionId:o.sessionId}),c=s.handled?s.data.agents:[];n.setResult({session:{...q(o),agents:c}})})}const Tn=r.postgres,En=t.postgres,Y=A({sessions:n,agents:e},{sessions:Tn,agents:En});function Dn(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return P(n===null?B(t.clientId):R(t.clientId,n),r===null?B(t.clientAccountId):R(t.clientAccountId,r),i===null?B(t.lastClientIdentityObservation):R(t.lastClientIdentityObservation,i))}function On(e){return{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,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?ae.parse(e.compressionMode):void 0}}function kn(e){return{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??null,adapterSessionId:e.adapterSessionId??null,cwd:e.cwd??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 An(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function jn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.get,async e=>{let[t]=await n.select().from(r).where(R(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?On(t):null})})}function Mn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.set,async e=>{let{agent:t}=e.payload,i=kn(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:i});e.setResult({success:j(a)})})}function Nn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.delete,async e=>{let t=await n.delete(r).where(R(r.agentId,e.payload.agentId));e.setResult({success:j(t)})})}function Pn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[R(r.adapterName,t)];i&&i!==`all`&&a.push(R(r.status,i));let o=a.length>1?P(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(On)})})}function Fn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(R(r.sessionId,t));e.setResult({agents:i.map(On)})})}function In(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateStatus,async e=>{let{agentId:t,status:i}=e.payload,a=Date.now(),o=await n.update(r).set({status:i,lastActivityAt:a}).where(R(r.agentId,t));e.setResult({success:j(o)})})}function Ln(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(R(r.agentId,t));e.setResult({success:j(a)})})}function Rn(e){let{bus:t,db:n}=e,{agents:r}=M(n,Y);return t.on(p.updateRuntime,async e=>{let{agentId:t,cwd:i,model:a,providerConfigId:o}=e.payload,s={lastActivityAt:Date.now()};i!==void 0&&(s.cwd=i),a!==void 0&&(s.model=a),o!==void 0&&(s.providerConfigId=o);let c=await n.update(r).set(s).where(R(r.agentId,t));e.setResult({success:j(c)})})}function zn(e,t,n){let r={bus:e,db:t},i=[jn(r),Mn(r),Nn(r),Pn(r),Fn(r),In(r),Ln(r),Rn(r)];return()=>An(i)}function X(e){return e??void 0}function Bn(e){if(e)try{let t=JSON.parse(e),n=Fe.safeParse(t);return n.success?n.data:void 0}catch{return}}function Vn(e){if(e)try{let t=JSON.parse(e),n=oe.safeParse(t);return n.success?n.data:void 0}catch{return}}function Z(e,t){let n=Vn(e.forkTransforms),r=Bn(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:X(e.leadAgentId),parentSessionId:X(e.parentSessionId),contextInheritance:X(e.contextInheritance),rootSessionId:X(e.rootSessionId),forkPointMessageId:X(e.forkPointMessageId),branchKind:X(e.branchKind),adapterName:X(e.adapterName),adapterSessionId:X(e.adapterSessionId),adapterId:X(e.adapterId),clientId:X(e.clientId),clientAccountId:X(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:X(e.isOrchestrated),isImported:X(e.isImported),title:X(e.title),summary:X(e.summary),summaryUpdatedAt:X(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:X(e.targetWorkingDirectory),executionTargetId:X(e.executionTargetId),agents:t.map(On),approvalPolicyOverride:X(e.approvalPolicyOverride),spawningToolCallId:X(e.spawningToolCallId),source:X(e.source),parentExternalSessionId:X(e.parentExternalSessionId),logFilePath:X(e.logFilePath),discoveredAt:X(e.discoveredAt),importStatus:X(e.importStatus)}}function Hn(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 Un(e,t,n){if(!n||t.length===0)return{};let{messages:r}=M(e,s),i=e.select({sessionId:r.sessionId,minTimestamp:V`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(P(R(r.role,`user`),z(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,P(R(r.sessionId,i.sessionId),R(r.timestamp,i.minTimestamp))).where(R(r.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let c=await e.select({sessionId:r.sessionId,count:I()}).from(r).where(z(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of c)l.set(e.sessionId,e.count);return{previewBySession:o,countBySession:l}}function Wn(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function Gn(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Kn(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a}=e.payload,o=await n.select().from(r).where(a===void 0?R(r.adapterSessionId,t):P(R(r.adapterSessionId,t),R(r.source,a))).limit(2),s=o[0];if(o.length!==1||s===void 0){e.setResult({session:null});return}let c=await n.select().from(i).where(R(i.sessionId,s.sessionId));e.setResult({session:Z(s,c)})})}function qn(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y),{messages:i}=M(n,s);return t.on(l.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(R(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:I()}).from(i).where(z(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:I()}).from(r).where(z(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(P(R(i.sessionId,t),z(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})})}const Jn=rn();function Yn(e,t,n){return t===void 0?V`${e}`:V`
|
|
4
|
+
CASE
|
|
5
|
+
WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
|
|
6
|
+
ELSE ${e}
|
|
7
|
+
END
|
|
8
|
+
`}function Xn(e,t){return{status:V`
|
|
9
|
+
CASE
|
|
10
|
+
WHEN COALESCE(${e.importStatus}, excluded.import_status) = 'discovered' THEN excluded.status
|
|
11
|
+
ELSE ${e.status}
|
|
12
|
+
END
|
|
13
|
+
`,isImported:!0,importStatus:V`COALESCE(${e.importStatus}, excluded.import_status)`,adapterName:V`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:V`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:V`COALESCE(${e.source}, excluded.source)`,logFilePath:V`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:V`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:V`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:V`COALESCE(excluded.fork_point_message_id, ${e.forkPointMessageId})`,parentExternalSessionId:V`COALESCE(excluded.parent_external_session_id, ${e.parentExternalSessionId})`,branchKind:V`COALESCE(excluded.branch_kind, ${e.branchKind})`,adapterId:V`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:V`COALESCE(excluded.client_id, ${e.clientId})`,createdAt:Yn(e.createdAt,t,e),lastActivityAt:Yn(e.lastActivityAt,t,e)}}function Zn(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.importUpsert,async e=>{let{externalSessionId:i,source:a,clientId:o,adapterId:s,cwd:c,logFilePath:l,startedAt:u,title:d,kind:f,parentAdapterSessionId:p,forkPointMessageId:m}=e.payload,h=Jn(),g=crypto.randomUUID(),_=u??h,v=tn(f)??null,y=p??null,[b]=await n.insert(r).values({sessionId:g,status:`discovered`,isImported:!0,importStatus:`discovered`,adapterName:a,adapterSessionId:i,source:a??null,clientId:o??null,adapterId:s??null,targetWorkingDirectory:c??null,logFilePath:l??null,forkPointMessageId:m??null,branchKind:v,parentExternalSessionId:y,discoveredAt:h,title:d??null,createdAt:_,lastActivityAt:_}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:Xn(r,u)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),ee=b.sessionId===g;await Qn(t,n,b,ee,v,_,a),e.setResult({sessionId:b.sessionId,created:ee})})}async function Qn(e,t,n,r,i,a,o){if(r){let r=await $n(t,n.sessionId,n.parentExternalSessionId,o);e.emit(O.created,{sessionId:n.sessionId,parentSessionId:r,branchKind:i,createdAt:a}).catch(e=>console.error(`[SessionStorage] Failed to emit session.created:`,e))}else n.parentExternalSessionId!==null&&n.parentSessionId===null&&await $n(t,n.sessionId,n.parentExternalSessionId,o),e.emit(O.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function $n(e,t,n,r){let{sessions:i}=M(e,Y);if(n===null)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(P(R(i.adapterSessionId,n),R(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(R(i.sessionId,t)),a.sessionId}function er(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(R(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(R(i.sessionId,a.sessionId));e.setResult({session:Z(a,o)})})}function tr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[R(r.isImported,!0)];t!==void 0&&o.push(R(r.source,t)),a!==void 0&&o.push(R(r.importStatus,a));let s=P(...o),c=await n.select().from(r).where(s).orderBy(L(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Hn(await n.select().from(i).where(z(i.sessionId,l)));e.setResult({sessions:c.map(e=>Z(e,u.get(e.sessionId)??[]))})})}function nr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:V`count(*)`}).from(r).where(P(R(r.isImported,!0),R(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 rr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:V`
|
|
14
|
+
CASE
|
|
15
|
+
WHEN ${r.status} = 'discovered' THEN 'active'
|
|
16
|
+
ELSE ${r.status}
|
|
17
|
+
END
|
|
18
|
+
`}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(P(R(r.sessionId,i),Ne(B(r.importStatus),V`${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(O.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(O.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function ir(e,t){let n={bus:e,db:t};return[Zn(n),er(n),tr(n),nr(n),rr(n)]}function Q(e){return e??null}function ar(e){return e?JSON.stringify(e):null}function or(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:sr(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Q(e.title),summary:Q(e.summary),summaryUpdatedAt:Q(e.summaryUpdatedAt),forkTransforms:ar(e.forkTransforms),targetWorkingDirectory:Q(e.targetWorkingDirectory),executionTargetId:Q(e.executionTargetId),approvalPolicyOverride:Q(e.approvalPolicyOverride),spawningToolCallId:Q(e.spawningToolCallId),source:Q(e.source),parentExternalSessionId:Q(e.parentExternalSessionId),logFilePath:Q(e.logFilePath),discoveredAt:Q(e.discoveredAt),importStatus:Q(e.importStatus)}}function sr(e){return e?JSON.stringify(e):null}function $(e,t,n){n!==void 0&&(e[t]=n)}function cr(e,t,n){n!==void 0&&(e[t]=n??null)}function lr(e,t){let n={};return $(n,`status`,e.status),$(n,`parentSessionId`,e.parentSessionId),$(n,`contextInheritance`,e.contextInheritance),$(n,`rootSessionId`,e.rootSessionId),$(n,`forkPointMessageId`,e.forkPointMessageId),$(n,`branchKind`,e.branchKind),$(n,`isOrchestrated`,e.isOrchestrated),$(n,`clientId`,e.clientId),$(n,`clientAccountId`,e.clientAccountId),$(n,`title`,e.title),$(n,`targetWorkingDirectory`,e.targetWorkingDirectory),$(n,`createdAt`,e.createdAt),$(n,`lastActivityAt`,e.lastActivityAt),cr(n,`executionTargetId`,e.executionTargetId),cr(n,`approvalPolicyOverride`,e.approvalPolicyOverride),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=V`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=sr(e.lastClientIdentityObservation)),n}function ur(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.get,async e=>{let[t]=await n.select().from(r).where(R(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(R(i.sessionId,e.payload.sessionId));e.setResult({session:Z(t,a)})})}function dr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=ue.parse(e.payload),s=or(a);if(o){G(null,a);let o=j(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&K(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(R(r.sessionId,i)).limit(1),c=o?Z(o,[]):null;if(G(c,a),j(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:s,setWhere:Dn(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),K(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function fr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.delete,async e=>{await n.delete(r).where(R(r.sessionId,e.payload.sessionId)),e.setResult({success:!0})})}function pr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.update,async e=>{let i=de.request.parse(e.payload),{sessionId:a}=i,o=lr(i,r),s=Gn(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}if(!s){let t=await n.update(r).set(o).where(R(r.sessionId,a));e.setResult({success:j(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(R(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let c=Z(s,[]),l=Wn(c,i);if(G(c,l),j(await n.update(r).set(o).where(P(R(r.sessionId,a),Dn(s,r))))){e.setResult({success:!0,clientAccountChanged:(c.clientAccountId??null)!==(l.clientAccountId??null)}),K(t,c,l);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function mr(e,t){let n=[];return e.status!==`all`&&n.push(R(t.status,e.status)),e.executionTargetId!==void 0&&n.push(R(t.executionTargetId,e.executionTargetId)),P(...n)}function hr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=M(n,Y);return t.on(l.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=mr({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(L(r.lastActivityAt)):await u.orderBy(L(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:I()}).from(r).where(l):n.select({count:I()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Hn(await n.select().from(i).where(z(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Un(n,m,s),v=d.map(e=>{let t=Z(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 gr(e){let{bus:t,db:n}=e,{sessions:r}=M(n,Y);return t.on(l.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:I()}).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 _r(e,t,n){let r={bus:e,db:t},i=[ur(r),dr(r),fr(r),pr(r),hr(r),qn(r),Kn(r),gr(r),...ir(e,t)];return()=>i.forEach(e=>e())}function vr(e,t,n,r){return t===void 0&&n===void 0&&r===void 0?!1:(t!==void 0&&(e.cwd=t),n!==void 0&&(e.model=n),r!==void 0&&(e.providerConfigId=r),!0)}function yr(e){let t=new Map,n=[];return n.push(e.on(p.get,e=>{let n=t.get(e.payload.agentId)??null;e.setResult({agent:n})})),n.push(e.on(p.set,e=>{t.set(e.payload.agentId,e.payload.agent),e.setResult({success:!0})})),n.push(e.on(p.delete,e=>{let n=t.delete(e.payload.agentId);e.setResult({success:n})})),n.push(e.on(p.listByAdapter,e=>{let{adapterName:n,status:r}=e.payload,i=Array.from(t.values()).filter(e=>e.adapterName===n);r&&r!==`all`&&(i=i.filter(e=>e.status===r)),e.setResult({agents:i})})),n.push(e.on(p.listBySession,e=>{let n=Array.from(t.values()).filter(t=>t.sessionId===e.payload.sessionId);e.setResult({agents:n})})),n.push(e.on(p.updateStatus,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.status=e.payload.status,n.lastActivityAt=Date.now(),e.setResult({success:!0})})),n.push(e.on(p.updateActivity,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}n.lastActivityAt=e.payload.lastActivityAt,e.setResult({success:!0})})),n.push(e.on(p.updateRuntime,e=>{let n=t.get(e.payload.agentId);if(!n){e.setResult({success:!1});return}let{cwd:r,model:i,providerConfigId:a}=e.payload;if(!vr(n,r,i,a)){e.setResult({success:!1});return}n.lastActivityAt=Date.now(),e.setResult({success:!0})})),()=>n.forEach(e=>e())}async function br(e,t){if(t.length===0)return new Map;let{agents:n}=M(e,Y),r=[...new Set(t)],i=await e.select().from(n).where(z(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 xr(e,t){return N(e).fts.fetchFirstUserMessagePreviews(e,t)}async function Sr(e,t){if(t.length===0)return new Map;let{messages:n}=M(e,s),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:I()}).from(n).where(z(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Cr(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function wr(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,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:Cr(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??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 Tr(e,t){let n=N(t).fts,r=[];return r.push(e.on(l.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 br(t,d),p=await xr(t,d),m=await Sr(t,d),h=l.map(e=>wr(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Er(e,t){return(await De(e).all(V`
|
|
19
|
+
WITH RECURSIVE ancestors AS (
|
|
20
|
+
SELECT session_id, parent_session_id
|
|
21
|
+
FROM sessions
|
|
22
|
+
WHERE session_id = ${t}
|
|
23
|
+
|
|
24
|
+
UNION ALL
|
|
25
|
+
|
|
26
|
+
SELECT s.session_id, s.parent_session_id
|
|
27
|
+
FROM sessions s
|
|
28
|
+
JOIN ancestors a ON s.session_id = a.parent_session_id
|
|
29
|
+
)
|
|
30
|
+
SELECT session_id FROM ancestors
|
|
31
|
+
`)).map(e=>e.session_id)}var Dr=class{bus;options;cleanups=[];transform;constructor(e=T,t={}){this.bus=e,this.options=t,this.transform=t.transform??(e=>e),this.registerHandlers()}async emitStorageEvent(e,t,n){let r={sessionId:t,eventId:crypto.randomUUID(),timestamp:Date.now(),type:e,payload:n},i=this.transform(r);i&&await this.bus.request(o.append,{event:i})}registerHandler(e,t){this.cleanups.push(this.bus.on(e,(async e=>{try{await this.emitStorageEvent(t,e.payload.sessionId,e.payload)}catch(e){console.error(`[SessionLogger] Failed to emit ${t} to storage:`,e)}})))}registerHandlers(){this.registerHandler(O.agent.added,`agent.added`),this.registerHandler(O.turn.started,`turn.started`),this.registerHandler(O.turn.completed,`turn.completed`),this.registerHandler(O.branch.created,`branch.created`)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0}};const Or=Ee(`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()})),kr=Or.sqlite,Ar=Or.postgres,jr=A({importCursors:kr},{importCursors:Ar});function Mr(e,t,n){let{importCursors:r}=M(t,jr),i=[];return i.push(e.on(Ie.get,async e=>{let{filePath:n}=e.payload,i=(await t.select().from(r).where(R(r.filePath,n)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),i.push(e.on(Ie.set,async e=>{let{filePath:n,bytesRead:i,lastModified:a}=e.payload;await t.insert(r).values({filePath:n,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:r.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),i.push(e.on(Ie.delete,async e=>{let{filePath:n}=e.payload,i=await t.delete(r).where(R(r.filePath,n));e.setResult({success:j(i)})})),()=>{i.forEach(e=>e())}}xe(`embeddings`,{id:ye(`id`).primaryKey({autoIncrement:!0}),entityType:Se(`entity_type`).notNull(),entityId:Se(`entity_id`).notNull(),model:Se(`model`).notNull(),dimensions:ye(`dimensions`).notNull(),content:Se(`content`),embedding:_e(`embedding`,{mode:`buffer`}).notNull(),createdAt:ye(`created_at`).notNull()},e=>[ve(`idx_embeddings_entity`).on(e.entityType,e.entityId),ve(`idx_embeddings_model`).on(e.model),Ce(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function Nr(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 Pr=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=De(e),this.engine=Oe(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=V.identifier(n),i=V.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(V`CREATE TABLE IF NOT EXISTS ${r} (
|
|
32
|
+
entity_type TEXT NOT NULL,
|
|
33
|
+
entity_id TEXT NOT NULL,
|
|
34
|
+
embedding ${i} NOT NULL,
|
|
35
|
+
PRIMARY KEY (entity_type, entity_id)
|
|
36
|
+
)`),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=V.identifier(a);await this.rawSql.run(V`INSERT INTO ${s} (entity_type, entity_id, embedding)
|
|
37
|
+
VALUES (${n}, ${r}, ${o})
|
|
38
|
+
ON CONFLICT(entity_type, entity_id) DO UPDATE SET
|
|
39
|
+
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=V.identifier(r),a=await this.rawSql.all(V`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=Nr(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=V.identifier(r);await this.rawSql.run(V`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)}},Fr=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 y({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await this.emit(O.turn.started,{turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId}),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`);this._completedTurnIds.add(e.turnId);let t=e.getResult();await this.emit(O.turn.completed,{turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0})}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function Ir(e,t){let{sessions:n}=M(t,Y);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(P(R(n.parentExternalSessionId,i),R(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(l.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(O.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(P(R(n.parentExternalSessionId,a),R(n.source,s),B(n.parentSessionId)));if(c.length===0)return;let{session:u}=await e.request(l.get,{sessionId:o}),d=u?.rootSessionId??o;for(let t of c)await e.request(l.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:d,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,d)})}const Lr=new Set([`Agent`,`spawn_subagent`]),Rr=`[^A-Za-z0-9_-]`;function zr(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Br(e,t){return t.test(e)}async function Vr(e,t){let n=[],r,i=0;do{let a=await e.request(S.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 Hr(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&Lr.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function Ur(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(Br(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 Wr(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 Gr(e){return[...e].map(e=>{let t=zr(e);return{id:e,pattern:RegExp(`(^|${Rr})${t}($|${Rr})`)}})}async function Kr(e,t,n){let{children:r}=await e.request(l.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(l.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=Gr(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await Vr(e,t.sessionId),r=Hr(n);if(r.length===0)return null;let i=Ur(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(l.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function qr(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(l.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(l.getChildren,{sessionId:s}),u=await Jr(e,c);if(u.size===0)return;let d=await Vr(e,a),f=Hr(d);if(f.length===0)return;let p=Ur(d,Gr(new Set(u.keys()))),m=new Map;for(let e of f){let t=p.get(e.toolCallId);t!==void 0&&m.set(t,(m.get(t)??0)+1)}let h=new Map;for(let e of f){let t=p.get(e.toolCallId),n=t===void 0?void 0:u.get(t);n!==void 0&&t!==void 0&&m.get(t)===1&&h.set(n,e.toolCallId)}if(h.size===0)return;let g=[...h].map(async([t,n])=>{try{await e.request(l.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(g)}async function Jr(e,t){return Wr(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(l.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function Yr(e){return e.on(O.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(l.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await Kr(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await qr(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function Xr(e){return[...e].map(e=>{let t=zr(e);return{id:e,pattern:RegExp(`(^|${Rr})${t}($|${Rr})`)}})}async function Zr(e,t,n){return Wr(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(l.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function Qr(e){return e.on(O.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(l.getChildren,{sessionId:n}),a=await Zr(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await Vr(e,n),c=Hr(s);if(c.length===0)return;let u=Ur(s,Xr(o)),d=new Map;for(let e of c){let t=u.get(e.toolCallId);t!==void 0&&d.set(t,(d.get(t)??0)+1)}let f=new Map;for(let e of c){let t=u.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&d.get(t)===1&&f.set(n,e.toolCallId)}let p=[...f].map(async([t,r])=>{try{let{session:n}=await e.request(l.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(l.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(p)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function $r(e){return e.on(E.session.discovered,async t=>{let n=le.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:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=nn({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(l.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...u===void 0?{}:{startedAt:u},...m})})}var ei=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(D.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{Zt as A,Lt as B,Z as C,nn as D,tn as E,qt as F,Ct as G,It as H,Gt as I,Ye as J,mt as K,Wt as L,Yt as M,Jt as N,Qt as O,Kt as P,Ut as R,Hn as S,Cn as T,Ft as U,W as V,Et as W,ze as X,qe as Y,wr as _,Ir as a,_r as b,Mr as c,Dr as d,Er as f,xr as g,Sr as h,Yr as i,Xt as j,$t as k,kr as l,br as m,$r as n,Fr as o,Tr as p,tt as q,Qr as r,Pr as s,ei as t,Or as u,Cr as v,zn as w,Un as x,yr as y,Vt as z};
|
|
@@ -13,8 +13,8 @@ declare const SUBAGENT_SESSION_LINEAGE_KIND: "subagent";
|
|
|
13
13
|
declare const COMPRESS_SESSION_LINEAGE_KIND: "compress";
|
|
14
14
|
/** Discriminates the relationship of a session to its parent. */
|
|
15
15
|
declare const SessionLineageKindSchema: z.ZodEnum<{
|
|
16
|
-
fork: "fork";
|
|
17
16
|
root: "root";
|
|
17
|
+
fork: "fork";
|
|
18
18
|
subagent: "subagent";
|
|
19
19
|
compress: "compress";
|
|
20
20
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsonl-transport-
|
|
1
|
+
import{t as e}from"./jsonl-transport-C21tpVfe.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=[]){this.localSubscriptions.set(e,{priorities:n,filter:t}),this.jsonl!==null&&this.sendSubscribeMessage(e,t,n)}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=[]){if(this.jsonl===null)return;if(e!==void 0){this.jsonl.send({type:`subscribe`,subjects:{[e]:n},...t===void 0?{}:{filters:{[e]:t}}});return}let r={},i={},a=!1;for(let[e,t]of this.localSubscriptions)r[e]=t.priorities,t.filter!==void 0&&(i[e]=t.filter,a=!0);this.jsonl.send({type:`subscribe`,subjects:r,...a?{filters:i}:{}})}};export{a as StdioServerTransport};
|
|
@@ -1,78 +1,2 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
|
|
3
|
-
//#region storage/drizzle/src/client.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* Configuration options for the database client.
|
|
6
|
-
*/
|
|
7
|
-
interface DatabaseClientConfig {
|
|
8
|
-
/**
|
|
9
|
-
* Database URL.
|
|
10
|
-
* Supports libSQL / SQLite connection strings:
|
|
11
|
-
* - `file:./path/to/db.db` for local SQLite files
|
|
12
|
-
* - `libsql://host` for remote libSQL/Turso
|
|
13
|
-
* - `http://localhost:8080` for local libSQL server
|
|
14
|
-
* - `:memory:` for an in-process in-memory database
|
|
15
|
-
*
|
|
16
|
-
* Defaults to `'file:./makaio.db'`.
|
|
17
|
-
*/
|
|
18
|
-
url?: string;
|
|
19
|
-
/**
|
|
20
|
-
* Authentication token for remote databases (Turso).
|
|
21
|
-
* Not required for local file-based or in-memory databases.
|
|
22
|
-
*/
|
|
23
|
-
authToken?: string;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Result of creating a database client.
|
|
27
|
-
*/
|
|
28
|
-
interface DatabaseClient {
|
|
29
|
-
/** The drizzle ORM instance */
|
|
30
|
-
db: MakaioDatabase;
|
|
31
|
-
/** Close the database connection. Safe to call multiple times. */
|
|
32
|
-
close(): void;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Creates a drizzle ORM instance backed by the appropriate SQLite driver for
|
|
36
|
-
* the current runtime.
|
|
37
|
-
*
|
|
38
|
-
* **Driver selection (runtime-conditional):**
|
|
39
|
-
* - **Bun + local URL** (`file:` or `:memory:`) — uses the built-in `bun:sqlite`
|
|
40
|
-
* driver via `drizzle-orm/bun-sqlite`. The module is loaded dynamically so
|
|
41
|
-
* this file is safe to import under Node.js.
|
|
42
|
-
* - **Bun + remote URL** (`libsql:`, `http:`, `https:`, …) — stays on
|
|
43
|
-
* `@libsql/client` via `drizzle-orm/libsql`; `bun:sqlite` cannot handle
|
|
44
|
-
* remote connections.
|
|
45
|
-
* - **Node.js** — always uses `@libsql/client` via `drizzle-orm/libsql`.
|
|
46
|
-
*
|
|
47
|
-
* For local databases, automatically enables:
|
|
48
|
-
* - `file:` URLs: WAL journal mode, 5-second busy timeout, and foreign key enforcement
|
|
49
|
-
* - `:memory:`: foreign key enforcement only
|
|
50
|
-
*
|
|
51
|
-
* SEAM: This factory allows swapping the database backend by providing
|
|
52
|
-
* different connection URLs (local file, Turso, libSQL server).
|
|
53
|
-
* @param config - Database configuration options
|
|
54
|
-
* @returns Database client with drizzle ORM instance and close method
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* import { createDatabaseClient } from '@makaio/framework/storage/drizzle/client';
|
|
58
|
-
*
|
|
59
|
-
* // Local development with file-based SQLite
|
|
60
|
-
* const { db, close } = await createDatabaseClient();
|
|
61
|
-
*
|
|
62
|
-
* // Production with Turso
|
|
63
|
-
* const { db, close } = await createDatabaseClient({
|
|
64
|
-
* url: process.env.TURSO_DATABASE_URL,
|
|
65
|
-
* authToken: process.env.TURSO_AUTH_TOKEN,
|
|
66
|
-
* });
|
|
67
|
-
*
|
|
68
|
-
* // Use with storage handlers
|
|
69
|
-
* import { registerDrizzleSessionStorage } from '@makaio/framework/services/session';
|
|
70
|
-
* registerDrizzleSessionStorage(bus, db, ctx);
|
|
71
|
-
*
|
|
72
|
-
* // Close when done
|
|
73
|
-
* close();
|
|
74
|
-
* ```
|
|
75
|
-
*/
|
|
76
|
-
declare function createDatabaseClient(config?: DatabaseClientConfig): Promise<DatabaseClient>;
|
|
77
|
-
//#endregion
|
|
78
|
-
export { DatabaseClient, DatabaseClientConfig, createDatabaseClient };
|
|
1
|
+
import { i as createDatabaseClient, n as DatabaseClientConfig, r as PostgresClientOptions, t as DatabaseClient } from "../../client-BJVDImPV.mjs";
|
|
2
|
+
export { DatabaseClient, DatabaseClientConfig, PostgresClientOptions, createDatabaseClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{a as e,h as t,n}from"../../registry-RG-bkw3c.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};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as _$drizzle_orm_pg_core0 from "drizzle-orm/pg-core";
|
|
2
|
+
import * as _$drizzle_orm0 from "drizzle-orm";
|
|
3
|
+
|
|
4
|
+
//#region storage/drizzle/src/columns/postgres.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Postgres column bundle for the storage dialect design.
|
|
7
|
+
*
|
|
8
|
+
* These helpers encode the fixed SQLite→Postgres column mapping table so that
|
|
9
|
+
* twin schema files stay mechanically in sync with their canonical counterparts:
|
|
10
|
+
*
|
|
11
|
+
* | Bundle | SQL type (Postgres) |
|
|
12
|
+
* |----------------------|----------------------------------------------------------|
|
|
13
|
+
* | `epochMs` | `bigint` ('number' mode, int53-safe) |
|
|
14
|
+
* | `bool` | `boolean` |
|
|
15
|
+
* | `jsonCol` | `jsonb` |
|
|
16
|
+
* | `autoPk` | `bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY` |
|
|
17
|
+
* | `float8` | `double precision` |
|
|
18
|
+
*
|
|
19
|
+
* **Accepted divergences (jsonCol → jsonb):** jsonb silently rejects `\u0000`
|
|
20
|
+
* escapes, normalizes key order, and drops duplicate keys. Plain `text` columns
|
|
21
|
+
* holding hand-stringified JSON stay `text` on both dialects — this bundle is
|
|
22
|
+
* for structured JSON that drizzle serializes and deserializes.
|
|
23
|
+
*
|
|
24
|
+
* **Partial-index predicate rewrites:** boolean partial indexes use `= 1` on
|
|
25
|
+
* SQLite and `= true` on Postgres. Postgres twin schema files must rewrite such
|
|
26
|
+
* predicates to `= true` in their `.where()` clauses — drizzle-kit emits DDL
|
|
27
|
+
* mechanically from the twin source, and `= 1` against a native boolean column
|
|
28
|
+
* is a type error on Postgres.
|
|
29
|
+
*
|
|
30
|
+
* **`autoPk` monotonicity caveat:** identity values are strictly increasing per
|
|
31
|
+
* single writer. Cursor pagination over this key assumes a single writer
|
|
32
|
+
* process.
|
|
33
|
+
*
|
|
34
|
+
* **`epochMs` precision:** stored as `bigint` in JavaScript `'number'` mode
|
|
35
|
+
* (int53-safe). No SQL date arithmetic is performed in the framework; the
|
|
36
|
+
* column holds raw millisecond offsets.
|
|
37
|
+
*
|
|
38
|
+
* **`float8` vs `real`:** Postgres `real` is 4-byte and would silently narrow
|
|
39
|
+
* values that are 8-byte in SQLite. `double precision` preserves the range.
|
|
40
|
+
* @packageDocumentation
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* Unix-epoch-milliseconds timestamp column.
|
|
44
|
+
* SQLite: `integer`. Postgres twin: `bigint` in `'number'` mode (int53-safe;
|
|
45
|
+
* no SQL date arithmetic exists in the framework).
|
|
46
|
+
* @param name - SQL column name.
|
|
47
|
+
* @returns Chainable Postgres `bigint` ('number' mode) column builder.
|
|
48
|
+
*/
|
|
49
|
+
declare const epochMs: (name: string) => _$drizzle_orm_pg_core0.PgBigInt53BuilderInitial<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Boolean flag column.
|
|
52
|
+
* SQLite: `integer` in `'boolean'` mode. Postgres twin: native `boolean`.
|
|
53
|
+
* Partial-index predicates over these columns are `= 1` on SQLite and
|
|
54
|
+
* `= true` on Postgres.
|
|
55
|
+
* @param name - SQL column name.
|
|
56
|
+
* @returns Chainable Postgres `boolean` column builder.
|
|
57
|
+
*/
|
|
58
|
+
declare const bool: (name: string) => _$drizzle_orm_pg_core0.PgBooleanBuilderInitial<string>;
|
|
59
|
+
/**
|
|
60
|
+
* Structured JSON column (drizzle serializes/deserializes).
|
|
61
|
+
* SQLite: `text` in `'json'` mode. Postgres twin: `jsonb` (accepted divergence:
|
|
62
|
+
* jsonb rejects `\u0000` escapes, normalizes key order, drops duplicate keys).
|
|
63
|
+
* NOT for hand-stringified JSON held in plain `text` columns — those stay `text`.
|
|
64
|
+
* @param name - SQL column name.
|
|
65
|
+
* @typeParam T - Deserialized value type pinned via `$type`.
|
|
66
|
+
* @returns Chainable Postgres `jsonb` column builder typed as `T`.
|
|
67
|
+
*/
|
|
68
|
+
declare const jsonCol: <T>(name: string) => _$drizzle_orm0.$Type<_$drizzle_orm_pg_core0.PgJsonbBuilderInitial<string>, T>;
|
|
69
|
+
/**
|
|
70
|
+
* Auto-generated integer primary key.
|
|
71
|
+
* SQLite: `integer ... PRIMARY KEY AUTOINCREMENT`. Postgres twin:
|
|
72
|
+
* `bigint GENERATED ALWAYS AS IDENTITY PRIMARY KEY` (`'number'` mode).
|
|
73
|
+
* Monotonicity note: identity values are strictly increasing per single
|
|
74
|
+
* writer; cursor pagination over this key assumes a single writer process.
|
|
75
|
+
* @param name - SQL column name.
|
|
76
|
+
* @returns Chainable Postgres identity `bigint` primary-key column builder.
|
|
77
|
+
*/
|
|
78
|
+
declare const autoPk: (name: string) => _$drizzle_orm0.IsPrimaryKey<_$drizzle_orm0.NotNull<_$drizzle_orm0.IsIdentity<_$drizzle_orm_pg_core0.PgBigInt53BuilderInitial<string>, "always">>>;
|
|
79
|
+
/**
|
|
80
|
+
* Eight-byte floating-point column.
|
|
81
|
+
* SQLite: `real` (always 8-byte). Postgres twin: `double precision` —
|
|
82
|
+
* Postgres `real` is 4-byte and would silently narrow.
|
|
83
|
+
* @param name - SQL column name.
|
|
84
|
+
* @returns Chainable Postgres `double precision` column builder.
|
|
85
|
+
*/
|
|
86
|
+
declare const float8: (name: string) => _$drizzle_orm_pg_core0.PgDoublePrecisionBuilderInitial<string>;
|
|
87
|
+
//#endregion
|
|
88
|
+
export { autoPk, bool, epochMs, float8, jsonCol };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{bigint as e,boolean as t,doublePrecision as n,jsonb as r}from"drizzle-orm/pg-core";const i=t=>e(t,{mode:`number`}),a=e=>t(e),o=e=>r(e).$type(),s=t=>e(t,{mode:`number`}).generatedAlwaysAsIdentity().primaryKey(),c=e=>n(e);export{s as autoPk,a as bool,i as epochMs,c as float8,o as jsonCol};
|