@makaio/framework 1.0.0-dev-1787670559522 → 1.0.0-dev-1788258714339
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 +2 -0
- package/dist/.makaio-build.json +2 -2
- package/dist/{account-identity-DGpXd8h_.mjs → account-identity-B3vLwm9O.mjs} +1 -1
- package/dist/adapter-Dz1fX5Wa.mjs +1 -0
- package/dist/adapter-subsystem/index.d.mts +118 -76
- package/dist/adapter-subsystem/index.mjs +1 -1
- package/dist/adapters/claude/index.d.mts +5 -5
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +73 -53
- package/dist/adapters/index.mjs +6 -6
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/adapters/stream-session/index.mjs +1 -1
- package/dist/{artifact-k3veR4Yx.mjs → artifact-Btbuib48.mjs} +1 -1
- package/dist/attach-error-Cb3GbeKe.mjs +1 -0
- package/dist/{auth-A1K_7q-8.mjs → auth-C6tVtaOX.mjs} +1 -1
- package/dist/{authority-state-bootstrap-YwtEImIB.mjs → authority-state-bootstrap-CLYus369.mjs} +1 -1
- package/dist/{automation-trigger-CuSdQwir.mjs → automation-trigger-ByjNlClm.mjs} +1 -1
- package/dist/bus/index.d.mts +22 -4
- package/dist/bus/index.mjs +1 -1
- package/dist/{bus-CqgrphNE.mjs → bus-D6NoBhIV.mjs} +1 -1
- package/dist/bus-UgFdHybD.mjs +1 -0
- package/dist/caller-owned-adapter-stub-C1M7FKrv.mjs +1 -0
- package/dist/{canonical-model-DJASlL4m.mjs → canonical-model-DXOvCaVg.mjs} +1 -1
- package/dist/capabilities-BUwuA7XX.mjs +1 -0
- package/dist/capability-j3NekkIu.mjs +1 -0
- package/dist/{client-BL5__WT0.mjs → client-BkznbdsO.mjs} +1 -1
- package/dist/clients/index.d.mts +1 -1
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +1 -1
- package/dist/clients/managed-install.mjs +1 -1
- package/dist/code-execution/worker-entry.d.mts +21 -0
- package/dist/code-execution/worker-entry.mjs +1 -0
- package/dist/code-execution-Ckmn8OZu.mjs +1 -0
- package/dist/code-execution-CweDSWco.mjs +1 -0
- package/dist/code-execution-DqkQjKa1.mjs +1 -0
- package/dist/{compression-BbttSqm8.mjs → compression-CtgeVLpP.mjs} +1 -1
- package/dist/{config-namespace-CyzeLWSg.mjs → config-namespace-CjWvw8ij.mjs} +1 -1
- package/dist/{context-resolution-ya9TXKg-.d.mts → context-resolution-CW4OtPrS.d.mts} +3 -3
- package/dist/contracts/adapter/index.d.mts +3 -3
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -2
- package/dist/contracts/artifact/index.mjs +1 -1
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/auth/index.mjs +1 -1
- package/dist/contracts/automation-trigger/index.d.mts +3 -3
- package/dist/contracts/automation-trigger/index.mjs +1 -1
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/canonical-model/index.mjs +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/code-execution/index.d.mts +2 -0
- package/dist/contracts/code-execution/index.mjs +1 -0
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +5 -5
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/facet/index.mjs +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/harness/index.mjs +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/host/index.mjs +1 -1
- package/dist/contracts/index.d.mts +57 -47
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +3 -3
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/provider/index.mjs +1 -1
- package/dist/contracts/reaction/index.d.mts +1 -1
- package/dist/contracts/reaction/index.mjs +1 -1
- package/dist/contracts/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +3 -3
- package/dist/contracts/shared/index.mjs +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/skill/index.mjs +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.mjs +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/timeout/index.mjs +1 -1
- package/dist/contracts/toast/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/variant/index.mjs +1 -1
- package/dist/contracts/worker-node/index.d.mts +1 -1
- package/dist/contracts/worker-node/index.mjs +1 -1
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/{contribution-BB5bjx3f.d.mts → contribution-CUHLVLsT.d.mts} +2 -2
- package/dist/core/index.d.mts +25 -2
- package/dist/{definition-CDg-Jq1T.mjs → definition-BH4QLGLI.mjs} +1 -1
- package/dist/{definition-BYgHlmMw.d.mts → definition-DyGImhyi.d.mts} +1 -1
- package/dist/{detached-extension-handle-DKd17UB6.mjs → detached-extension-handle-D0aI0pJA.mjs} +1 -1
- package/dist/drizzle/0034_m_msha1388.sql +41 -0
- package/dist/drizzle/0035_m_mshgj6x7.sql +40 -0
- package/dist/drizzle/0036_m_msivwbgm.sql +1 -0
- package/dist/drizzle/0037_runtime_instance_incarnation_counter.sql +6 -0
- package/dist/drizzle/meta/_journal.json +28 -0
- package/dist/event-B8ELuk6k.mjs +1 -0
- package/dist/{execution-attempt-repository-DFyAnchJ.d.mts → execution-attempt-repository-BJ2W6wwx.d.mts} +1 -1
- package/dist/{execution-target-ByNwZh5-.mjs → execution-target-H0RWV7Py.mjs} +1 -1
- package/dist/{extension-DUmibvMk.mjs → extension-Bfkr2DBs.mjs} +1 -1
- package/dist/{extension-DMdmj9gi.mjs → extension-Cz39YNXy.mjs} +1 -1
- package/dist/{extension-discovery-Fhps4icD.d.mts → extension-discovery-Dhu3WplO.d.mts} +9 -1
- package/dist/{filesystem-service-FAtd9gWH.mjs → filesystem-service-CiUw0YN5.mjs} +1 -1
- package/dist/framework-packages-BHgul8Kl.mjs +1 -0
- package/dist/git/index.mjs +2 -2
- package/dist/{globby-BBLuT_vy.mjs → globby-QBDqstzq.mjs} +1 -1
- package/dist/handlers-BsHAFtye.mjs +57 -0
- package/dist/{harness-KxbWGL4I.mjs → harness-YQ2ewID9.mjs} +1 -1
- package/dist/{hook-responses-uCXAICTU.d.mts → hook-responses-9Ywsqzzq.d.mts} +1 -1
- package/dist/identity-OjRlG6dZ.mjs +1 -0
- package/dist/{index-Bl7KWFod.d.mts → index-4KJ6IDE7.d.mts} +7 -7
- package/dist/{index-CfiCJPP6.d.mts → index-B0VO0rAl.d.mts} +1 -1
- package/dist/{index-DI7-tIL3.d.mts → index-B0yMCJW8.d.mts} +39 -14
- package/dist/{index-BQprJNA_.d.mts → index-B9V3T4EQ.d.mts} +4 -4
- package/dist/{index-CqQYgsbB.d.mts → index-BNzUyVwV.d.mts} +513 -170
- package/dist/{index-CM75k-Ff.d.mts → index-BkbnC65b.d.mts} +189 -17
- package/dist/index-Bqk0pJBQ2.d.mts +138 -0
- package/dist/{index-CER64zYO.d.mts → index-BqlCDBfc.d.mts} +15 -15
- package/dist/{index-C-JzEkqs.d.mts → index-C146Eq_J.d.mts} +535 -1801
- package/dist/{index-e4Txan9i.d.mts → index-C3lu_fy5.d.mts} +76 -76
- package/dist/{index-C__EQfKa.d.mts → index-CIEycZrt.d.mts} +1 -1
- package/dist/{index-DxYDRoDE2.d.mts → index-CMekqu_D.d.mts} +28 -8
- package/dist/{index-nydhGvXa.d.mts → index-CPRQ4dWX.d.mts} +0 -23
- package/dist/{index-BSQ30wYP.d.mts → index-CPi0UpRh.d.mts} +1 -1
- package/dist/{index-BMVZs6pm.d.mts → index-CYjgoYeX.d.mts} +3 -3
- package/dist/{index-CSN_0sCo.d.mts → index-CmwAJ8-5.d.mts} +1 -1
- package/dist/index-Cny5RvjO.d.mts +800 -0
- package/dist/index-DHnSLGP4.d.mts +268 -0
- package/dist/{index-cPqSpWQC.d.mts → index-DJ2KgJDJ2.d.mts} +12 -12
- package/dist/index-DQ8o3JGi.d.mts +132 -0
- package/dist/index-DWBkiiXH.d.mts +18 -0
- package/dist/{index-B0xJgTi-.d.mts → index-DWkFkvRn2.d.mts} +7 -7
- package/dist/{index-1UcQWrZy.d.mts → index-DXqG0r3o.d.mts} +155 -155
- package/dist/index-Dg11JxKZ.d.mts +496 -0
- package/dist/{index-BtdK8HeH.d.mts → index-OG402CBI.d.mts} +43 -168
- package/dist/json-value-BBZ6uGwc.mjs +1 -0
- package/dist/json-value-DPqb-SJ8.d.mts +177 -0
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/index.mjs +1 -1
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/cli/register.mjs +1 -1
- package/dist/kernel/cli/schemas.mjs +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/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/{lib-CnOAtohU.mjs → lib-BpGvHZye.mjs} +2 -2
- package/dist/{lib-B_rJ6r0T.mjs → lib-Cm-uEoC1.mjs} +1 -1
- package/dist/{load-extensions-DUpaMQ7G.d.mts → load-extensions-BQoXaHhR.d.mts} +1 -1
- package/dist/{load-extensions-CW9uzNR5.mjs → load-extensions-DG5LvPyM.mjs} +1 -1
- package/dist/{materialization-CcpCDhXh.mjs → materialization-lVd9_-jr.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/model-DrzPt3ou.mjs +1 -0
- package/dist/{namespace-B7bntOB8.mjs → namespace-BL7lHlmg.mjs} +1 -1
- package/dist/{namespace-BgEiY7r1.d.mts → namespace-BNp7n_gu.d.mts} +3 -3
- package/dist/{namespace-DSlfFhB1.d.mts → namespace-BRuHzhPo.d.mts} +154 -2
- package/dist/{namespace-ChnRTUG4.d.mts → namespace-C06lJSuj.d.mts} +6 -6
- package/dist/{namespace-C6CVEGH8.d.mts → namespace-DknCutQZ.d.mts} +50 -0
- package/dist/namespace-sCPb79-7.mjs +1 -0
- package/dist/{native-session-supervisor-fZYPUk0-.mjs → native-session-supervisor-LKio8XZn.mjs} +1 -1
- 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/npm-package-name-DuTYVICk.mjs +1 -0
- package/dist/orchestrator-shared-BGlN-m-V.mjs +1 -0
- package/dist/{orchestrator-shared-B-KRW1Z0.d.mts → orchestrator-shared-CNHSImNY.d.mts} +9 -10
- package/dist/ownership-memory-handler-BpGdR_uG.mjs +1 -0
- package/dist/ownership-recovery-guard-DyW5vGBr.mjs +1 -0
- package/dist/{package-ypz4rKvn.mjs → package-B01gmu75.mjs} +1 -1
- package/dist/{package-Bf3hyuzs.d.mts → package-BNFTUFLB.d.mts} +2 -2
- package/dist/package-DttKA9wN.mjs +1 -0
- package/dist/{package-CddkNbZI.mjs → package-JtjbO-Oi.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/{profile-BtznZlq3.mjs → profile-N5qGUpF0.mjs} +1 -1
- package/dist/{provider-context-Dh-VOOYF.mjs → provider-context-CG42JlP9.mjs} +1 -1
- package/dist/{provider-context-BrLZYnDW.mjs → provider-context-zTDSH2x9.mjs} +1 -1
- package/dist/{reaction-BS0k4eNN.mjs → reaction-D3TNwPK8.mjs} +1 -1
- package/dist/{registry-BO_bOoky.mjs → registry-Dk12tAfv.mjs} +1 -1
- package/dist/{resolved-DMByz1_2.mjs → resolved-sq8RXNDf.mjs} +1 -1
- 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/rules/schemas.mjs +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/code-execution/index.d.mts +3 -0
- package/dist/runtime-node/code-execution/index.mjs +1 -0
- package/dist/runtime-node/extension-discovery.d.mts +2 -2
- package/dist/runtime-node/extension-discovery.mjs +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +6 -4
- package/dist/runtime-node/index.mjs +24 -24
- package/dist/runtime-node/makaio-config.d.mts +1 -1
- package/dist/runtime-node/makaio-config.mjs +1 -1
- package/dist/runtime-node/workflow-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-DKTzriEY.d.mts → schema-B3Pf7JP7.d.mts} +250 -3
- package/dist/{schema-DBG7Jq5_.mjs → schema-Dq-7si8u.mjs} +1 -1
- package/dist/{schemas-DSkBOdx_.mjs → schemas-BfO5jkrL.mjs} +1 -1
- package/dist/{schemas-B7zo7Zcx.d.mts → schemas-C1mxTfd7.d.mts} +60 -4
- package/dist/schemas-C3kyQWGf.mjs +1 -0
- package/dist/{schemas-B3bfVYcL.d.mts → schemas-CF8QwRqt.d.mts} +2 -0
- package/dist/{schemas-DZH9lpxs.d.mts → schemas-OWvBn7AH.d.mts} +4 -4
- package/dist/{schemas-CsjN7cmM.mjs → schemas-QWDnauKX.mjs} +1 -1
- package/dist/schemas-TK29KWx-.mjs +1 -0
- package/dist/schemas-_2Syo_01.mjs +1 -0
- package/dist/scoped-bus-DoPmCJeM.mjs +1 -0
- package/dist/{selection-7Ku8DBnh.mjs → selection-DL3ric7K.mjs} +1 -1
- package/dist/services/adapter-runtime/index.d.mts +4 -4
- package/dist/services/adapter-runtime/index.mjs +1 -1
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +2 -2
- package/dist/services/adapter-runtime/schemas.mjs +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +3 -3
- package/dist/services/adapter-subsystem/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/automation-trigger/index.mjs +1 -1
- package/dist/services/capability/index.d.mts +3 -2
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/code-execution/index.d.mts +2 -0
- package/dist/services/code-execution/index.mjs +1 -0
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +1 -1
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/execution-target/index.d.mts +3 -3
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/namespace.mjs +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.d.mts +18 -0
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.d.mts +10 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.d.mts +3 -3
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +159 -59
- package/dist/services/index.mjs +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/materialization/index.d.mts +1 -1
- package/dist/services/materialization/index.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/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 +22 -1
- package/dist/services/session/testing/index.mjs +38 -14
- 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/session-editor/index.mjs +1 -1
- package/dist/services/settings/index.d.mts +3 -3
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/index.mjs +1 -1
- package/dist/services/subagent-template/index.d.mts +2 -2
- package/dist/services/subagent-template/namespace.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/workflow-transitions/index.d.mts +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/session-BOpTI79g.mjs +1 -0
- package/dist/session-CXOPk3yg.mjs +95 -0
- package/dist/{shared-BFVuCDPx.mjs → shared-B9AWRm9A.mjs} +1 -1
- package/dist/{skill-C1D51nhh.mjs → skill-DGNtc_ww.mjs} +1 -1
- package/dist/{src-xbmzokNe.mjs → src-BmSQ3rlz.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +41 -2
- 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/tool-approval-service-BFDOFUGC.mjs +1 -0
- package/dist/{tools-DxwHox1a.mjs → tools-DWKWX3eV.mjs} +1 -1
- package/dist/{transition-C_Ka6b0-.d.mts → transition-DXmCUq6w.d.mts} +6 -6
- package/dist/{types-BNjPhj_a.d.mts → types-CtDGkyLx2.d.mts} +1 -1
- package/dist/types-Cwza95hS.mjs +1 -0
- package/dist/{types-CwvN4uN2.d.mts → types-DcxBYlPA.d.mts} +3018 -38
- package/dist/types-DnK6Wa_Y.d.mts +260 -0
- package/dist/{types-ClpEaoAm.d.mts → types-OKJCOjme.d.mts} +24 -4
- package/dist/ui-components/index.d.mts +4 -4
- package/dist/ui-kernel/index.d.mts +1 -1
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/utils/index.d.mts +22 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/utils/project-manifest.mjs +1 -1
- package/dist/{version-BfNnVAGr.mjs → version-BYeVh1pI.mjs} +1 -1
- package/dist/{view-builder-KYsPqV-5.d.mts → view-builder-k82f5KFd.d.mts} +4 -4
- package/dist/{visibility-Dl1o2I01.mjs → visibility-DtDLRBdr.mjs} +1 -1
- package/dist/worker-node-CjuQb9hl.mjs +1 -0
- package/dist/{worker-node-DJ41Tr-F.mjs → worker-node-Dtf9ilsR.mjs} +1 -1
- package/dist/workflow-C4mck_NW.mjs +1 -0
- package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
- package/dist/workflow-engine/index.d.mts +103 -103
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/provider-operation.d.mts +1 -1
- package/dist/workflow-engine/testing/index.d.mts +2 -2
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
- package/dist/workflow-engine/testing/sqlite.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-transitions-DM0fN_eP.mjs → workflow-transitions-c_VQbyV0.mjs} +1 -1
- package/dist/workflow-worker-aNbdgqml.mjs +1 -0
- package/package.json +18 -1
- package/dist/adapter-BkdJaOOG.mjs +0 -1
- package/dist/agent-namespace-D51PODFf.mjs +0 -1
- package/dist/attach-error-BSlc7JfL.mjs +0 -1
- package/dist/bus-BIj0_aG6.mjs +0 -1
- package/dist/capabilities-Bqckjh7G.mjs +0 -1
- package/dist/capability-service-CJHNkjvm.mjs +0 -1
- package/dist/event-DR8U9Efx.mjs +0 -1
- package/dist/framework-packages-D_2hBZ-p.mjs +0 -1
- package/dist/handlers-2yd00VEq.mjs +0 -57
- package/dist/identity-DC3Pk0ps.mjs +0 -1
- package/dist/index-OsbtyMgx2.d.mts +0 -98
- package/dist/json-value-C1RGgS0a.d.mts +0 -72
- package/dist/json-value-D57aJhVn.mjs +0 -1
- package/dist/model-ZH3L1dPW.mjs +0 -1
- package/dist/namespace-CxrOLeeP.mjs +0 -1
- package/dist/orchestrator-shared-CTCZc6Vl.mjs +0 -1
- package/dist/ownership-memory-handler-Bblp93YC.mjs +0 -1
- package/dist/schemas-BqD8LlQw.mjs +0 -1
- package/dist/schemas-CvHFbzdy.mjs +0 -1
- package/dist/schemas-DplrlAyR.mjs +0 -1
- package/dist/scoped-bus-ClwTWqX8.mjs +0 -1
- package/dist/session-BMy2kRpX.mjs +0 -90
- package/dist/session-Cipx34j6.mjs +0 -1
- package/dist/tool-approval-service-BVgN9Q1r.mjs +0 -1
- package/dist/worker-node-BDOYPEpi.mjs +0 -1
- package/dist/workflow-Hzc5jlnV.mjs +0 -1
- package/dist/workflow-worker-DARC7UZl.mjs +0 -1
- /package/dist/{adapter-auth-runtime-D9Lnl7cc.mjs → adapter-auth-runtime-DHHppU4f.mjs} +0 -0
- /package/dist/{adapter-binding-B-FBoCys.d.mts → adapter-binding-CATvmGuz.d.mts} +0 -0
- /package/dist/{ajv-L5fKxaia.mjs → ajv-krzJXh1X.mjs} +0 -0
- /package/dist/{attempt-record-codec-DaFLKR5C.mjs → attempt-record-codec-BYfYkj4M.mjs} +0 -0
- /package/dist/{await-trigger-ph1S0zVI.mjs → await-trigger-Bkg2BQfg.mjs} +0 -0
- /package/dist/{base-orchestrator-D9u4NyiM.d.mts → base-orchestrator-B4YW6z_Q.d.mts} +0 -0
- /package/dist/{index-Ol9RBB0W2.d.mts → capability-service-BW1-teFU.d.mts} +0 -0
- /package/dist/{client-4ihewPUm.d.mts → client-BG0WX5Vz.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-DJajc_Ff.mjs → client-binary-version-verifier-0lCKZOTg.mjs} +0 -0
- /package/dist/{client-binary-version-verifier-jDDZ64Ah.d.mts → client-binary-version-verifier-lcv83Hq3.d.mts} +0 -0
- /package/dist/{clients-namespace-DFWuUawf.d.mts → clients-namespace-DLAjOTTb.d.mts} +0 -0
- /package/dist/{config-namespace-D1kyZj0B.d.mts → config-namespace-CH7sJZ4f.d.mts} +0 -0
- /package/dist/{create-static-mount-9tnGpIeK.mjs → create-static-mount-DxuixuLZ.mjs} +0 -0
- /package/dist/{cross-spawn-BIgueAqr.mjs → cross-spawn-CZygZJMH.mjs} +0 -0
- /package/dist/{cursor-storage-ROWfiTh1.mjs → cursor-storage-bsc9lZKk.mjs} +0 -0
- /package/dist/{definition-DB-kKc0d.d.mts → definition-BrgzUuFk.d.mts} +0 -0
- /package/dist/{definitions-CF6YmEhL.mjs → definitions-CRpdnHYM.mjs} +0 -0
- /package/dist/{descriptor-to-package-BecVCopf.mjs → descriptor-to-package-CcjdoWP4.mjs} +0 -0
- /package/dist/{drizzle-CPv3vdTE.mjs → drizzle-Bzc-OGVI.mjs} +0 -0
- /package/dist/{esm-CBFWM8u_.mjs → esm-i-S5TW72.mjs} +0 -0
- /package/dist/{extension-context-DzB7ydM3.d.mts → extension-context-QmFuHdq5.d.mts} +0 -0
- /package/dist/{extension-namespace-B554RmCp.mjs → extension-namespace-QoTTwKPt.mjs} +0 -0
- /package/dist/{extension-package-provenance-Dh_-Z-tE.mjs → extension-package-provenance-aYrZuS4W.mjs} +0 -0
- /package/dist/{facet-DVsW12iF.mjs → facet-BnMh7Jyc.mjs} +0 -0
- /package/dist/{filesystem-service-Cm2RHKBa.d.mts → filesystem-service-ZJ43SbBi.d.mts} +0 -0
- /package/dist/{handler-Bqlk-6BY.mjs → handler-DF1fVDpf.mjs} +0 -0
- /package/dist/{host-k5yoyKHg.mjs → host-B-_ntOMH.mjs} +0 -0
- /package/dist/{index--atUpi5l2.d.mts → index-8NdPPzUh2.d.mts} +0 -0
- /package/dist/{index-DwLRZscE.d.mts → index-8y4hT9WL.d.mts} +0 -0
- /package/dist/{index-C7HcDpHE.d.mts → index-B-3I98nw.d.mts} +0 -0
- /package/dist/{index-BcvqDfcN.d.mts → index-B2Y1Wvbh.d.mts} +0 -0
- /package/dist/{index-BRCrFirq.d.mts → index-B4svZC6L.d.mts} +0 -0
- /package/dist/{index-CQuRTeRa.d.mts → index-B5dP8rj6.d.mts} +0 -0
- /package/dist/{index-CRmE88hi.d.mts → index-BC-6qNeo.d.mts} +0 -0
- /package/dist/{index-CxSSdIZz.d.mts → index-BFWvT0NG.d.mts} +0 -0
- /package/dist/{index-DP3o_13U.d.mts → index-BM56936c.d.mts} +0 -0
- /package/dist/{index-BVcQcphK.d.mts → index-BMRB9yhF.d.mts} +0 -0
- /package/dist/{index-bIe_57cL.d.mts → index-BTEJfzjE.d.mts} +0 -0
- /package/dist/{index-DgOfgjx3.d.mts → index-BfV8U4XX.d.mts} +0 -0
- /package/dist/{index-DBadVauL.d.mts → index-BmevAPME2.d.mts} +0 -0
- /package/dist/{index-OADt3xlS.d.mts → index-BuMsrli0.d.mts} +0 -0
- /package/dist/{index-BJAB-BW_.d.mts → index-C4V8Pmi4.d.mts} +0 -0
- /package/dist/{index-aoxdnhJ42.d.mts → index-CL0Jo1b92.d.mts} +0 -0
- /package/dist/{index-CvW9_SzR.d.mts → index-CVpaGijY.d.mts} +0 -0
- /package/dist/{index-E4SET1AA.d.mts → index-CmbkCxj-.d.mts} +0 -0
- /package/dist/{index-BgGe9WZz.d.mts → index-CqdMbYmR.d.mts} +0 -0
- /package/dist/{index-BeENojSx2.d.mts → index-DgspOUa72.d.mts} +0 -0
- /package/dist/{index-42UdYStR.d.mts → index-Ek4y8M9J2.d.mts} +0 -0
- /package/dist/{index-Beo_Ik8-.d.mts → index-VzLAV0Yt.d.mts} +0 -0
- /package/dist/{index-BSbGB23v.d.mts → index-jxPncqWZ2.d.mts} +0 -0
- /package/dist/{index-Bqm0ahTQ.d.mts → index-kzIjbrS02.d.mts} +0 -0
- /package/dist/{index-BJMezANn.d.mts → index-l01zsChf.d.mts} +0 -0
- /package/dist/{index-CK3f0bAL.d.mts → index-pvX-BIpr2.d.mts} +0 -0
- /package/dist/{jsonl-transport-Bp_6pB2a.mjs → jsonl-transport-Cyyh5Wje.mjs} +0 -0
- /package/dist/{lib-Bwdd2m81.mjs → lib-BqV8hYtk.mjs} +0 -0
- /package/dist/{model-registry-yURX738J.mjs → model-registry-C9rFu3kV.mjs} +0 -0
- /package/dist/{model-registry-Y854mUml.mjs → model-registry-Cixxx2jv.mjs} +0 -0
- /package/dist/{modes-DmUsjHdV.mjs → modes-DwsJ3yVl.mjs} +0 -0
- /package/dist/{namespace-ByP1Iipi.d.mts → namespace-B0ftHlK3.d.mts} +0 -0
- /package/dist/{namespace-C1D77w7U.d.mts → namespace-BGRHcrmp.d.mts} +0 -0
- /package/dist/{namespace-Bi3CmYQy.d.mts → namespace-BUYDmd0r.d.mts} +0 -0
- /package/dist/{namespace-CkBbNFSU.mjs → namespace-BW3Bfu9h.mjs} +0 -0
- /package/dist/{namespace-DX1Ec15L.d.mts → namespace-BdAK0lD8.d.mts} +0 -0
- /package/dist/{namespace-Dgg0uoe6.d.mts → namespace-CPG6u60N.d.mts} +0 -0
- /package/dist/{namespace-BusZERU8.d.mts → namespace-CVFaZv8x.d.mts} +0 -0
- /package/dist/{namespace-yREpGJgG.d.mts → namespace-DBO1OzYB.d.mts} +0 -0
- /package/dist/{namespace-CrDlawqu.d.mts → namespace-DOezqDti.d.mts} +0 -0
- /package/dist/{namespace-CfIW0hpQ.mjs → namespace-DiwqpB-c.mjs} +0 -0
- /package/dist/{namespace-s2y_NFKf.d.mts → namespace-DqZweTbX.d.mts} +0 -0
- /package/dist/{namespace-CFjdyNXG.mjs → namespace-Du0accdE.mjs} +0 -0
- /package/dist/{namespace-BFqkUTJp.mjs → namespace-NXm_zvL1.mjs} +0 -0
- /package/dist/{namespace-B9FEGuEu.mjs → namespace-jVTsuZHX.mjs} +0 -0
- /package/dist/{namespace-DwZwGXgF.d.mts → namespace-l-HG1rLF.d.mts} +0 -0
- /package/dist/{namespace-DbNWsPFY.mjs → namespace-tjoxekmf.mjs} +0 -0
- /package/dist/{out-DrhwCgqM.mjs → out-8bOYN6EF.mjs} +0 -0
- /package/dist/{package-CBdvjyyZ.mjs → package-EGTn-Ng1.mjs} +0 -0
- /package/dist/{packages-FBv3fAOR.mjs → packages-Bp124-gx.mjs} +0 -0
- /package/dist/{packages-N3-2Kl-Y.d.mts → packages-CxPMEg8D.d.mts} +0 -0
- /package/dist/{platform-BrsMv_S3.mjs → platform-CxyYPrkf.mjs} +0 -0
- /package/dist/{provider-operation-DJ_TLZFf.d.mts → provider-operation-DbdyFwNm.d.mts} +0 -0
- /package/dist/{providers-CCcn4Ndp.mjs → providers-C-eekMxD.mjs} +0 -0
- /package/dist/{providers-namespace-DeJBh6MP.d.mts → providers-namespace-CfZKp-C0.d.mts} +0 -0
- /package/dist/{quick-lru-uwB0hP-y.mjs → quick-lru-CCEnf7y6.mjs} +0 -0
- /package/dist/{schema-jIapW8Kb.mjs → schema-C0opCPww.mjs} +0 -0
- /package/dist/{schema-introspection-C1wvklj9.mjs → schema-introspection-6-r_KEJQ.mjs} +0 -0
- /package/dist/{schemas-CeUI2i5j.d.mts → schemas-B50oWBuj.d.mts} +0 -0
- /package/dist/{schemas-CD0wOQxx.d.mts → schemas-B6Q-qdmn.d.mts} +0 -0
- /package/dist/{schemas-DgwEVUt-.mjs → schemas-B8hKbBwI.mjs} +0 -0
- /package/dist/{schemas-sMoRnBdZ.d.mts → schemas-BGvkTiCx.d.mts} +0 -0
- /package/dist/{schemas-BNdiVBWh.mjs → schemas-BivbWRkG.mjs} +0 -0
- /package/dist/{schemas-Cg-Kwp8c.d.mts → schemas-ChmQldVH.d.mts} +0 -0
- /package/dist/{schemas-VbB1FTxx.d.mts → schemas-D7ScxLrf.d.mts} +0 -0
- /package/dist/{schemas-DvMbcABQ.d.mts → schemas-Dd0po67F.d.mts} +0 -0
- /package/dist/{schemas-Cv3rR9Sz.d.mts → schemas-Pe892GgN.d.mts} +0 -0
- /package/dist/{schemas-qA279_j_.d.mts → schemas-bfZNpl0B.d.mts} +0 -0
- /package/dist/{schemas-mLpOfMoN.mjs → schemas-scyC2tFF.mjs} +0 -0
- /package/dist/{semver-DTXuyLcK.mjs → semver-BI7kTNsY.mjs} +0 -0
- /package/dist/{server-lifecycle-DKx_fWlq.mjs → server-lifecycle-B_OZnoe-.mjs} +0 -0
- /package/dist/{server-lifecycle-C_8iKgat.d.mts → server-lifecycle-L8zja8t8.d.mts} +0 -0
- /package/dist/{session-lineage-D5E142LU.d.mts → session-lineage-bUkd3fqx.d.mts} +0 -0
- /package/dist/{shared-schemas-aahW97QW.mjs → shared-schemas-CQ6blrEW.mjs} +0 -0
- /package/dist/{src-DHqsl5Pg.mjs → src-BacfeiI4.mjs} +0 -0
- /package/dist/{storage-namespace-Dz2jsssp.mjs → storage-namespace-BZce8kkW.mjs} +0 -0
- /package/dist/{storage-namespace-Tf3P5yJ5.d.mts → storage-namespace-YmE8XCCL.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-CDef0E20.mjs → storage-namespace-definition-Cca-zwXU.mjs} +0 -0
- /package/dist/{supports-color-i7OTnKcZ.mjs → supports-color-SV_FgSN2.mjs} +0 -0
- /package/dist/{telemetry-BvCBUjFg.mjs → telemetry-BqoC87F-.mjs} +0 -0
- /package/dist/{timeout-B0nYjLc8.mjs → timeout-DVlN2Zhy.mjs} +0 -0
- /package/dist/{tray-menu-service-Deo6yyP8.mjs → tray-menu-service-eVVxgPLc.mjs} +0 -0
- /package/dist/{types-xCdGghb2.d.mts → types-BlB23n4f.d.mts} +0 -0
- /package/dist/{types-CNS55jvt.d.mts → types-DdpSEmTO.d.mts} +0 -0
- /package/dist/{types-Ce6LL25v.d.mts → types-tyv0B605.d.mts} +0 -0
- /package/dist/{ui-config-BIyGzMNL.mjs → ui-config-B35GloSX.mjs} +0 -0
- /package/dist/{variant-B4uWdxW7.mjs → variant-Dwnge3J_.mjs} +0 -0
- /package/dist/{window-registry-CoBJq3u4.mjs → window-registry-CKiMJjId.mjs} +0 -0
- /package/dist/{window-registry-BLtVx3Iw.d.mts → window-registry-Pcf35cac.d.mts} +0 -0
- /package/dist/{zod-json-schema-BAGAFfCN.mjs → zod-json-schema-Dixc-B1T.mjs} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,t}from"./json-value-D57aJhVn.mjs";import{a as n,s as r}from"./visibility-Dl1o2I01.mjs";import"./model-ZH3L1dPW.mjs";import{c as ee,f as te,i as ne,o as i,p as a,r as re,s as ie}from"./shared-BFVuCDPx.mjs";import{a as ae,f as oe,i as se,n as ce,r as o,t as le,u as ue}from"./compression-BbttSqm8.mjs";import{t as s}from"./provider-context-BrLZYnDW.mjs";import{t as de}from"./schemas-DgwEVUt-.mjs";import{r as fe}from"./profile-BtznZlq3.mjs";import{i as pe}from"./account-identity-DGpXd8h_.mjs";import{t as me}from"./storage-namespace-definition-CDef0E20.mjs";import{SessionLineageSchema as he}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as c}from"zod";import{localSubject as ge,observability as l}from"@makaio/framework/core";const u=c.object({adapterId:c.string(),adapterName:c.string()}),_e=c.object({cwd:c.string().optional(),allowedTools:c.array(c.string()).optional(),disallowedTools:c.array(c.string()).optional(),allowedDirectories:c.array(c.string()).optional(),systemPrompt:te.optional()}),ve={request:c.object({adapterName:c.string().optional(),adapterId:c.string().optional()}).refine(e=>e.adapterName||e.adapterId,{message:`Either adapterName or adapterId must be provided`}),response:c.object({capabilities:c.array(c.string()),nativeTools:c.array(c.string())})},d=c.enum([`lead`,`member`]),f=c.enum([`fork`,`branch`,`subagent`,`compress`,`rewrite`,`coordinator`,`aside`]),p=c.enum([`parent-history`,`none`]),m=c.enum([`inherited`,`moved`,`confirmed`]),h=c.enum([`discovered`,`imported`,`tracking`]),ye=c.object({sessionId:c.string(),title:c.string().nullable(),forkPointMessageId:c.string().nullable(),branchKind:f.nullable(),messageCount:c.number(),hasChildren:c.boolean(),spawningToolCallId:c.string().optional()}),be=c.object({fromMessageId:c.string(),toMessageId:c.string(),policy:c.enum([`verbatim`,`summarize`,`exclude`]),stripReasoning:c.boolean().optional(),stripToolOutputs:c.boolean().optional(),overrides:c.record(c.string(),c.literal(`exclude`)).optional(),summaryText:c.string().optional()}),g=c.object({removedMessageIds:c.array(c.string()).optional(),appliedPipeline:c.array(c.object({actionId:c.string(),options:c.record(c.string(),c.unknown()).optional()})).optional(),segments:c.array(be).optional()}),xe=c.object({parentSessionId:c.string(),childSessionId:c.string(),summary:c.string().optional(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional()}),Se=c.object({success:c.boolean(),handoff:c.string().optional()}),Ce=c.object({parentSessionId:c.string(),childSessionId:c.string(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional()}),we=c.object({success:c.boolean()}),Te=c.object({sessionId:c.string()}),Ee=c.object({children:c.array(ye)}),De=c.object({parentSessionId:c.string(),childSessionId:c.string(),reason:c.string()}),Oe=c.object({parentSessionId:c.string(),childSessionId:c.string(),forkPoint:c.string().optional()}),ke=c.object({parentSessionId:c.string(),childSessionId:c.string()}),Ae=c.object({parentSessionId:c.string(),childSessionId:c.string(),handoff:c.string()}),je=c.object({sessionId:c.string(),parentSessionId:c.string().optional()}),Me=c.object({parentSessionId:c.string(),childSessionId:c.string(),result:c.unknown()}),Ne=c.object({sessionId:c.string(),reason:c.string(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional()}),Pe=c.object({sessionId:c.string(),pipeline:c.array(c.object({actionId:c.string(),options:c.record(c.string(),c.unknown()).optional()}))}),Fe=c.object({eventId:c.string(),contextJson:c.record(c.string(),c.unknown()),tokensBefore:c.number(),tokensAfter:c.number().optional()}),Ie=c.object({sessionId:c.string(),childSessionId:c.string(),parentSessionId:c.string(),kind:f,forkPointMessageId:c.string().optional(),transforms:g.optional()}),Le=c.object({sessionId:c.string(),childSessionId:c.string(),parentSessionId:c.string(),resultJson:c.string().optional(),resultMessageId:c.string().optional()}),Re=c.object({sessionId:c.string(),summaryJson:c.string(),tokensBefore:c.number().optional(),tokensAfter:c.number().optional(),compressedMessageIds:c.array(c.string()).optional()}),ze=c.object({sessionId:c.string(),parentSessionId:c.string().nullable(),branchKind:f.nullable(),createdAt:c.number(),originWindowId:c.string().optional()}),Be=c.object({sessionId:c.string(),changedProperties:c.array(c.string())}),Ve={merge:{request:xe,response:Se},abandon:{request:Ce,response:we},getChildren:{request:Te,response:Ee},forking:De,forked:Oe,merging:ke,merged:Ae,abandoned:je,childCompleted:Me,compressionRequested:Ne,"branch.created":Ie,"branch.merged":Le,squash:Re,created:ze,updated:Be,compress:{request:Pe,response:Fe}},_=c.enum([`adapter-unsupported`,`adapter-mismatch`,`no-adapter-session`,`missing-machine-id`,`machine-mismatch`,`cwd-mismatch`,`transforms-present`,`compression-present`,`connector-swap`,`mid-history-unsupported`,`hybrid-imported-orchestrated`,`native-attempt-failed`,`agent-already-started`,`fork-point-unresolvable`,`adapter-session-moved`]),v=c.discriminatedUnion(`kind`,[c.object({kind:c.literal(`native`)}),c.object({kind:c.literal(`degrade`),reason:_}),c.object({kind:c.literal(`foreign`),machineId:c.string()})]),y=c.object({sourceSessionId:c.string(),sourceAdapterSessionId:c.string(),forkPointMessageId:c.string().optional(),targetWorkingDirectory:c.string().optional()}),b=c.string().regex(/^[\u0020-\u007e]*$/u,`Correlation identifiers must contain only printable ASCII characters`).trim().min(1).max(512),x=c.object({sessionId:b.optional(),turnId:b.optional(),messageId:b.optional(),executionId:b.optional(),frameId:b.optional()}).strict(),He=[`auto`,`systemPrompt`,`fullPrefix`],S=c.object({messageHistory:c.array(ee).optional(),hasNewTransforms:c.boolean().optional(),hasCompression:c.boolean().optional(),extractedContext:c.unknown().optional(),isFirstTurn:c.boolean().optional(),hasConnectorSwap:c.boolean().optional(),cacheStrategy:c.enum(He).optional(),turnContext:c.record(c.string(),e).optional(),requestCorrelation:x.optional(),nativeLocality:v.optional(),nativeFork:y.optional()}),Ue=ne,We=c.enum([`user`,`assistant`]),C=c.enum([`voice`,`text`,`compact`]),Ge=c.object({messageId:c.string(),turnId:c.string().nullable(),sessionId:c.string(),role:We,contentText:c.string(),blocks:c.array(Ue),agentId:c.string().optional(),adapterSessionId:c.string().optional(),adapterMessageId:c.string().optional(),timestamp:c.number(),editOf:c.string().optional(),origin:C.optional()}),Ke=c.enum([`active`,`completed`,`error`]),w=c.object({inputTokens:c.number(),cachedInputTokens:c.number().optional(),outputTokens:c.number(),cost:c.number().optional()}),T=c.object({total:w,byAgent:c.record(c.string(),w).optional()}),E=c.object({source:c.enum([`user`,`extension`,`system`]),sourceId:c.string().optional()}),qe=c.object({turnId:c.string(),sessionId:c.string(),turnNumber:c.number().int().min(1),startedAt:c.number(),completedAt:c.number().optional(),status:Ke,error:c.string().optional(),usage:T.optional(),initiator:E.optional()}),Je=c.enum([`sent`,`acknowledged`,`completed`]),Ye=c.object({messageId:c.string(),agentId:c.string(),status:Je,timestamp:c.number(),error:c.string().optional()}),Xe=c.enum([`starting`,`idle`,`active`,`dead`,`disposed`]),D=c.object({agentId:c.string(),adapterId:c.string(),adapterName:c.string(),sessionId:c.string(),adapterSessionId:c.string().optional(),currentAdapterSessionId:c.string().optional(),currentAdapterSessionIdState:m.optional(),revision:c.number().int().nonnegative().optional(),currencyFence:c.number().int().nonnegative().optional(),model:c.string().optional(),cwd:c.string().optional(),allowedDirectories:c.array(c.string()).optional(),providerConfigId:c.string().optional(),personaId:c.string().optional(),profileId:c.string().optional(),harnessId:c.string().optional(),clientId:c.string().optional(),compressionMode:le.optional(),role:d,status:Xe,createdAt:c.number(),lastActivityAt:c.number()}),O=c.record(c.string(),e),k=c.object({sessionId:c.string(),createdAt:c.number(),lastActivityAt:c.number(),agents:c.array(D),status:c.enum([`active`,`closed`,`archived`,`discovered`]),leadAgentId:c.string().optional(),parentSessionId:c.string().optional(),contextInheritance:p.optional(),rootSessionId:c.string().optional(),forkPointMessageId:c.string().optional(),branchKind:f.optional(),adapterName:c.string().optional(),adapterSessionId:c.string().optional(),currentAdapterSessionId:c.string().optional(),currentAdapterSessionIdState:m.optional(),adapterId:c.string().optional(),clientId:c.string().optional(),clientAccountId:c.string().optional(),lastClientIdentityObservation:pe.optional(),isOrchestrated:c.boolean().optional(),title:c.string().optional(),summary:c.string().optional(),summaryUpdatedAt:c.number().optional(),isImported:c.boolean().optional(),forkTransforms:g.optional(),targetWorkingDirectory:c.string().optional(),executionTargetId:c.string().optional(),spawningToolCallId:c.string().optional(),approvalPolicyOverride:de.nullable().optional(),metadata:O.optional(),source:c.string().optional(),parentExternalSessionId:c.string().optional(),logFilePath:c.string().optional(),discoveredAt:c.number().optional(),importStatus:h.optional(),isSidechain:c.boolean().optional(),machineId:c.string().nullable().optional()}),Ze=c.object({messageCount:c.number(),firstUserMessage:c.string().nullable()}),A=k.extend({preview:Ze.optional()}),j=c.enum([`live`,`backfill`]),M=c.object({sessionId:c.string(),turnId:c.string(),turnNumber:c.number().int().min(1)}),N=M.extend({messageId:c.string()}),P=M.extend({success:c.boolean(),error:c.string().optional(),usage:T.optional(),initiator:E.optional(),ingestionMarker:j.optional()}),Qe=se.safeExtend({kind:c.string().regex(/^(?!(?:adapter|canonical-model)$).+$/)}),F=c.union([o,ce,Qe]),$e=o.extend({providerContext:s.optional()}),et=c.object({sessionId:c.string(),agent:$e,harnessId:c.string().optional(),initialMessage:i.optional(),responseSchema:a.optional(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional(),assertInitialMessageAdmission:c.unknown().optional(),role:c.enum([`lead`,`member`]).optional()}),tt=c.object({agentId:c.string(),adapterSessionId:c.string().optional(),role:c.enum([`lead`,`member`]),messageId:c.string().optional(),turnId:c.string().optional()}),I={sendMessage:{request:c.object({sessionId:c.string(),message:i,agent:F.optional(),agentIds:c.union([c.array(c.string()),c.literal(`all`)]).optional(),deliveryMode:c.enum([`enqueue`]).optional(),turnId:c.string().optional(),sessionContext:S.optional(),responseSchema:a.optional(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional(),originWindowId:c.string().optional(),skipConnectorSwapWarning:c.boolean().optional(),origin:C.optional()}),response:c.object({messageId:c.string(),turnId:c.string(),sessionId:c.string(),deferredAgentIds:c.array(c.string()).optional()})},"agent.attach":{request:c.object({sessionId:c.string(),agent:F,initialMessage:i.optional(),responseSchema:a.optional(),source:c.enum([`extension`,`user`,`system`]).optional(),extensionId:c.string().optional(),role:c.enum([`lead`,`member`]).optional()}),response:c.object({agentId:c.string(),adapterSessionId:c.string().optional(),role:c.enum([`lead`,`member`]),messageId:c.string().optional(),turnId:c.string().optional()})},"agent.attachResolved":ge({request:et,response:tt}),"turn.started":M.extend({messageId:c.string(),agentIds:c.array(c.string()),initiator:E.optional(),ingestionMarker:j.optional()}),"turn.assistantPersistenceSettled":ge(c.object({sessionId:c.string(),turnId:c.string(),messageId:c.string(),agentId:c.string()})),"turn.completed":P,"turn.await":{request:c.object({sessionId:c.string(),turnId:c.string(),timeoutMs:c.number().int().positive()}),response:c.object({completion:P})},"user_message.sent":N.extend({content:i,agentIds:c.array(c.string()),source:c.enum([`extension`,`user`,`system`]).optional(),origin:C.optional()}),"user_message.acknowledged":N.extend({agentId:c.string()}),"user_message.completed":N.extend({agentId:c.string(),outcome:ie,supersededBy:c.string().optional(),mergedInto:c.string().optional(),error:c.string().optional()}),fork:{request:c.object({sourceSessionId:c.string(),fromMessageId:c.string().optional(),name:c.string().optional(),branchKind:c.enum([`fork`,`branch`,`aside`]).optional(),transforms:g.optional(),targetWorkingDirectory:c.string().optional(),metadata:O.optional(),existingSessionId:c.string().optional()}),response:c.object({sessionId:c.string()})}},nt=c.discriminatedUnion(`success`,[c.object({agentId:c.string(),adapterId:c.string(),success:c.literal(!0)}),c.object({agentId:c.string(),adapterId:c.string(),success:c.literal(!1),error:c.string()})]),L=c.object({sessionId:c.string().optional(),parentSessionId:c.string().optional(),contextInheritance:p.optional(),forkPointMessageId:c.string().optional(),branchKind:f.optional(),forkTransforms:g.optional(),title:c.string().optional(),targetWorkingDirectory:c.string().optional(),executionTargetId:c.string().optional(),metadata:O.optional(),spawningToolCallId:c.string().optional(),originWindowId:c.string().optional(),machineId:c.string().nullable().optional()});function rt(e,t){e.spawningToolCallId&&e.branchKind!==`subagent`&&t.addIssue({code:c.ZodIssueCode.custom,path:[`spawningToolCallId`],message:`spawningToolCallId is only valid for subagent sessions`})}const it={list:{request:l.schema(c.object({status:c.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:c.number().int().min(1).optional(),offset:l.hidden(c.number().int().min(0).optional()),includePreview:c.boolean().optional(),executionTargetId:c.string().optional()}),{traceAll:!0}),response:c.object({sessions:c.array(A),total:c.number()})},search:{request:c.object({query:c.string(),limit:c.number().int().min(1).optional(),status:c.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:c.boolean().optional()}),response:c.object({sessions:c.array(A),total:c.number()})},get:{request:c.object({sessionId:c.string()}),response:c.object({session:k.nullable()})},create:{request:L.superRefine(rt),response:c.object({sessionId:c.string()})},close:{request:c.object({sessionId:c.string()}),response:c.object({success:c.boolean()})},resume:{request:c.object({sessionId:c.string()}),response:c.object({success:c.boolean()})},restartAgents:{request:c.object({sessionId:c.string(),machineId:c.string().optional()}),response:c.object({sessionId:c.string(),results:c.array(nt)})},archive:{request:c.object({sessionId:c.string()}),response:c.object({success:c.boolean()})},purge:{request:c.object({sessionId:c.string()}),response:c.object({success:c.boolean(),eventsDeleted:c.number().optional(),error:c.string().optional()})},update:{request:c.object({sessionId:c.string(),executionTargetId:c.string().nullable().optional(),approvalPolicyOverride:de.nullable().optional(),title:c.string().optional(),metadata:O.nullable().optional()}),response:c.object({success:c.boolean()})},getByAdapterSessionId:{request:c.object({adapterSessionId:c.string()}),response:c.object({session:k.nullable()})},getStatusCounts:{request:c.object({}),response:c.object({all:c.number(),active:c.number(),closed:c.number(),archived:c.number(),discovered:c.number()})}},R=c.object({sessionId:c.string(),eventId:c.string(),timestamp:c.number()}),at=c.discriminatedUnion(`type`,[R.extend({type:c.literal(`agent.added`),payload:c.object({sessionId:c.string(),adapterSessionId:c.string().optional(),agentId:c.string(),adapterId:c.string(),adapterName:c.string(),role:c.enum([`lead`,`member`]).optional(),model:c.string().optional(),cwd:c.string().optional()})}),R.extend({type:c.literal(`user_message.sent`),payload:I[`user_message.sent`]}),R.extend({type:c.literal(`user_message.acknowledged`),payload:I[`user_message.acknowledged`]}),R.extend({type:c.literal(`user_message.completed`),payload:I[`user_message.completed`]}),R.extend({type:c.literal(`turn.started`),payload:I[`turn.started`]}),R.extend({type:c.literal(`turn.completed`),payload:I[`turn.completed`]}),R.extend({type:c.literal(`message`),payload:c.object({messageId:c.string(),turnId:c.string().nullable(),role:c.enum([`user`,`assistant`])})}),R.extend({type:c.literal(`branch.created`),payload:c.object({childSessionId:c.string(),parentSessionId:c.string(),kind:f,forkPointMessageId:c.string().optional()})}),R.extend({type:c.literal(`branch.merged`),payload:c.object({childSessionId:c.string(),parentSessionId:c.string(),resultJson:c.string().optional(),resultMessageId:c.string().optional()})}),R.extend({type:c.literal(`squash`),payload:c.object({summaryJson:c.string(),tokensBefore:c.number().optional(),tokensAfter:c.number().optional(),compressedMessageIds:c.array(c.string()).optional()})}),R.extend({type:c.literal(`locality.degraded`),payload:c.discriminatedUnion(`verdictKind`,[c.object({intent:c.enum([`resume`,`fork`]),verdictKind:c.literal(`degrade`),reason:_,agentId:c.string().optional(),adapterId:c.string().optional(),turnId:c.string().optional()}),c.object({intent:c.enum([`resume`,`fork`]),verdictKind:c.literal(`foreign`),foreignMachineId:c.string(),agentId:c.string().optional(),adapterId:c.string().optional(),turnId:c.string().optional()})])})]),ot=[`message`,`agent.added`,`turn.started`,`turn.completed`,`user_message.sent`,`user_message.acknowledged`,`user_message.completed`,`branch.created`,`branch.merged`,`squash`,`locality.degraded`],st=ot,ct=R.extend({type:c.string().refine(e=>!ot.includes(e),{message:`Plugin session event type must not shadow a core event type.`}),payload:c.record(c.string(),c.unknown())}),z=c.union([at,ct]),lt=c.string(),ut=c.object({sessionId:c.string().min(1),clientId:c.string().min(1),previousClientAccountId:c.string().min(1).nullable(),clientAccountId:c.string().min(1),source:c.string().min(1),observedAt:c.number().int().finite().nonnegative(),lastClientIdentityObservation:pe}),dt=c.object({sessionId:c.string(),importStatus:h}),ft={"agent.added":c.object({sessionId:c.string(),adapterSessionId:c.string().optional(),agentId:c.string(),adapterId:c.string(),adapterName:c.string(),role:d.optional(),model:c.string().optional(),cwd:c.string().optional()}),"agent.removed":c.object({sessionId:c.string(),agentId:c.string()}),closed:c.object({sessionId:c.string(),reason:c.string().optional()}),resumed:c.object({sessionId:c.string()}),archived:c.object({sessionId:c.string()}),purged:c.object({sessionId:c.string()}),compressed:c.object({sessionId:c.string(),eventId:c.string()}),"clientAccount.changed":ut,"connectorSwap.editRequested":c.object({sessionId:c.string(),agentId:c.string(),previousCwd:c.string().optional(),newCwd:c.string().optional(),previousModel:c.string().optional(),newModel:c.string().optional()}),"locality.degraded":c.intersection(c.object({sessionId:c.string(),eventId:c.string(),timestamp:c.number()}),c.discriminatedUnion(`verdictKind`,[c.object({intent:c.enum([`resume`,`fork`]),verdictKind:c.literal(`degrade`),reason:_,agentId:c.string().optional(),adapterId:c.string().optional(),turnId:c.string().optional()}),c.object({intent:c.enum([`resume`,`fork`]),verdictKind:c.literal(`foreign`),foreignMachineId:c.string(),agentId:c.string().optional(),adapterId:c.string().optional(),turnId:c.string().optional()})])),getContextWindowState:{request:c.object({sessionId:c.string()}),response:c.object({state:c.object({currentTokens:c.number(),maxTokens:c.number(),percentage:c.number(),level:c.enum([`ok`,`warn`,`critical`]),lastUpdatedAt:c.number()}).nullable()})},importStatusChanged:dt,"import.completed":c.object({sessionId:c.string(),adapterSessionId:c.string(),source:c.string()}),event:z},B=c.object({includeEvents:c.boolean().default(!1),includeToolOutputs:c.boolean().default(!1),includeAncestors:c.boolean().default(!0),includeChildren:c.boolean().default(!1)}),pt=`1.0`,V=c.object({version:c.literal(`1.0`),exportedAt:c.number(),options:B,sessions:c.array(k),agents:c.array(D),messages:c.array(Ge),turns:c.array(qe),events:c.array(z).optional()});function mt(e){return V.parse(e)}function ht(e){let t=V.safeParse(e);return t.success?{success:!0,data:t.data}:{success:!1,error:t.error}}const gt={"snapshot.export":{request:c.object({sessionId:c.string(),options:B.optional()}),response:c.object({snapshot:V})},"snapshot.import":{request:c.object({snapshot:V,onConflict:c.enum([`fail`,`skip`,`overwrite`]).default(`fail`)}),response:c.object({imported:c.array(c.string()),skipped:c.array(c.string()),errors:c.array(c.object({sessionId:c.string(),error:c.string()}))})},"snapshot.validate":{request:c.object({snapshot:c.unknown()}),response:c.object({valid:c.boolean(),errors:c.array(c.string())})}},_t={resolveAgentConfig:{request:c.object({selection:ae,projectId:c.string().optional()}),response:c.object({adapterName:c.string(),model:c.string().optional(),providerConfigId:c.string().optional(),reasoningEffort:n.optional(),supportedReasoningLevels:r.optional(),systemPrompt:te.optional(),allowedTools:c.array(c.string()).optional(),disallowedTools:c.array(c.string()).optional(),allowedDirectories:c.array(c.string()).optional()})}},vt={resolveSystemPrompt:{request:c.object({sessionId:c.string(),personaId:c.string().optional(),profileId:c.string().optional()}),response:c.object({systemPrompt:c.string(),personaName:c.string().optional(),profileName:c.string().optional()})}},yt={enrichContext:{request:c.object({sessionId:c.string()}),response:c.record(c.string(),c.unknown())}};function bt(e,t){let{currentAdapterSessionId:n,currentAdapterSessionIdState:r}=e;r===`confirmed`!=(n!==null)&&t.addIssue({code:c.ZodIssueCode.custom,path:[`currentAdapterSessionId`],message:`currentAdapterSessionId must be a string exactly when currentAdapterSessionIdState is 'confirmed'`})}const xt=c.object({currentAdapterSessionId:c.string().nullable(),currentAdapterSessionIdState:m}).superRefine(bt),H=c.object({adapterSessionId:c.string().nullable(),currentAdapterSessionId:c.string().nullable(),currentAdapterSessionIdState:m}).superRefine(bt);function St(e){switch(e.currentAdapterSessionIdState){case`inherited`:return e.adapterSessionId;case`confirmed`:return e.currentAdapterSessionId;case`moved`:return null}}const U=c.enum([`held`,`releasing`,`abandoned`]),W=c.object({machineId:c.string(),adapterId:c.string(),providerSessionId:c.string()}),G=W.extend({claimId:c.string(),adapterName:c.string(),sessionId:c.string(),agentId:c.string(),claimToken:c.string(),fence:c.number().int().positive(),status:U,claimedAt:c.number().int().nonnegative(),updatedAt:c.number().int().nonnegative()}),Ct=c.object({agentId:c.string(),sessionId:c.string(),currency:H,revision:c.number().int().nonnegative(),currencyFence:c.number().int().nonnegative(),claims:c.array(G)}),wt=W.extend({providerSessionId:c.string().nullable(),adapterName:c.string(),sessionId:c.string(),agentId:c.string(),claimToken:c.string(),supersedes:c.object({claimToken:c.string()}).optional(),designateLead:c.object({expectedLeadAgentId:c.string().nullable(),clear:c.literal(!0).optional()}).optional()}),Tt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`claimed`),claim:G.nullable(),leadDesignated:c.boolean(),previousLeadAgentId:c.string().nullable()}),c.object({outcome:c.literal(`idempotent`),claim:G.nullable(),leadDesignated:c.boolean(),previousLeadAgentId:c.string().nullable()}),c.object({outcome:c.literal(`already-claimed`),holder:G}),c.object({outcome:c.literal(`agent-disposed`)}),c.object({outcome:c.literal(`lead-conflict`),currentLeadAgentId:c.string().nullable()}),c.object({outcome:c.literal(`not-found`),missing:c.enum([`session`,`agent`])})]),Et=c.object({agentId:c.string(),claimToken:c.string(),fence:c.number().int().positive(),expectedRevision:c.number().int().nonnegative(),target:xt}),Dt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`settled`),revision:c.number().int().nonnegative(),currency:H,sessionSnapshotUpdated:c.boolean()}),c.object({outcome:c.literal(`idempotent`),revision:c.number().int().nonnegative(),currency:H,sessionSnapshotUpdated:c.literal(!1)}),c.object({outcome:c.literal(`superseded`),currentFence:c.number().int().nonnegative()}),c.object({outcome:c.literal(`currency-changed`),revision:c.number().int().nonnegative(),currency:H}),c.object({outcome:c.literal(`not-owner`)}),c.object({outcome:c.literal(`agent-disposed`)}),c.object({outcome:c.literal(`not-found`)})]),Ot=c.discriminatedUnion(`kind`,[c.object({kind:c.literal(`confirmed`),providerSessionId:c.string(),claimToken:c.string()}),c.object({kind:c.literal(`demote`),claimToken:c.string()})]),kt=c.object({machineId:c.string(),adapterId:c.string(),adapterName:c.string(),sessionId:c.string(),agentId:c.string(),expectedRevision:c.number().int().nonnegative(),movement:Ot}),K=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`settled`),revision:c.number().int().nonnegative(),currency:H,sessionSnapshotUpdated:c.boolean(),releasedProviderSessionIds:c.array(c.string()),claim:G}),c.object({outcome:c.literal(`idempotent`),revision:c.number().int().nonnegative(),currency:H,sessionSnapshotUpdated:c.literal(!1),claim:G.nullable()}),c.object({outcome:c.literal(`already-claimed`),holder:G}),c.object({outcome:c.literal(`superseded`),currentFence:c.number().int().nonnegative()}),c.object({outcome:c.literal(`currency-changed`),revision:c.number().int().nonnegative(),currency:H}),c.object({outcome:c.literal(`not-owner`)}),c.object({outcome:c.literal(`agent-disposed`)}),c.object({outcome:c.literal(`not-found`)})]),q=c.enum([`released`,`releasing`,`abandoned`]),At=c.object({agentId:c.string(),claimToken:c.string(),disposition:q}),jt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`released`)}),c.object({outcome:c.literal(`marked`),claim:G}),c.object({outcome:c.literal(`not-owner`),holder:G}),c.object({outcome:c.literal(`not-found`)})]),Mt=c.object({agentId:c.string(),claimToken:c.string().optional(),disposition:q}),J=c.object({releasedProviderSessionIds:c.array(c.string()),markedClaims:c.array(G),claimTokenNotFound:c.boolean()}),Nt=c.object({machineId:c.string(),adapterId:c.string().optional(),providerSessionId:c.string().optional(),statuses:c.array(U).nonempty().optional()}),Pt=me(`sessionOwnership`,{schemas:{read:{request:c.object({agentId:c.string()}),response:c.object({ownership:Ct.nullable()})},claim:{request:wt,response:Tt},settleCurrency:{request:Et,response:Dt},settleMovement:{request:kt,response:K},release:{request:At,response:jt},releaseAgentClaims:{request:Mt,response:J},listClaims:{request:Nt,response:c.object({claims:c.array(G)})}}}),Ft=Pt.subjects,It=c.enum([`machine-exclusive`,`shared-machine`]),Y=c.object({sessionId:c.string(),agentId:c.string(),adapterId:c.string(),adapterName:c.string(),machineId:c.string().optional()}),Lt=Y.extend({role:d,resumeProviderSessionId:c.string().nullable(),expectedLeadAgentId:c.string().nullable().optional()}).superRefine((e,t)=>{e.role===`lead`&&e.expectedLeadAgentId===void 0&&t.addIssue({code:c.ZodIssueCode.custom,path:[`expectedLeadAgentId`],message:`expectedLeadAgentId is required when role is 'lead'`})}),Rt=c.object({agentId:c.string(),sessionId:c.string(),machineId:c.string(),adapterId:c.string(),claim:G.nullable(),leadDesignated:c.boolean(),previousLeadAgentId:c.string().nullable()}),zt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`reserved`),reservation:Rt}),c.object({outcome:c.literal(`occupied`),holder:G}),c.object({outcome:c.literal(`lead-conflict`),currentLeadAgentId:c.string().nullable()}),c.object({outcome:c.literal(`agent-disposed`)}),c.object({outcome:c.literal(`not-found`),missing:c.enum([`session`,`agent`])}),c.object({outcome:c.literal(`machine-identity-unavailable`)})]),Bt=c.discriminatedUnion(`confirmed`,[c.object({confirmed:c.literal(!0),providerSessionId:c.string()}),c.object({confirmed:c.literal(!1)})]),Vt=Y.extend({movement:Bt,claimToken:c.string().optional()}),Ht=c.discriminatedUnion(`outcome`,[...K.options,c.object({outcome:c.literal(`machine-identity-unavailable`)})]),Ut=c.object({agentId:c.string(),claimToken:c.string().optional(),disposition:q}),Wt=c.enum([`agent-gone`,`agent-disposed`,`adapter-instance-gone`]),X=c.object({claim:G,verdict:c.enum([`abandoned`,`retained`,`vanished`]),reason:Wt.optional()}),Gt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`reconciled`),machineId:c.string(),claims:c.array(X)}),c.object({outcome:c.literal(`skipped`),reason:c.literal(`machine-identity-unavailable`)})]),Kt=c.object({sessionId:c.string(),startMode:c.enum([`resume`,`compact`])}),qt=c.discriminatedUnion(`outcome`,[c.object({outcome:c.literal(`reopened`),sessionId:c.string()}),c.object({outcome:c.literal(`unchanged`),sessionId:c.string()}),c.object({outcome:c.literal(`not-found`)}),c.object({outcome:c.literal(`unresolved`),sessionId:c.string()})]),Jt={"ownership.reserveStart":{request:Lt,response:zt},"ownership.settleMovement":{request:Vt,response:Ht},"ownership.release":{request:Ut,response:J},"ownership.reconcile":{request:c.object({}),response:Gt},"ownership.continuation":{request:Kt,response:qt}},Yt={...it,...ft,...gt,...Ve,...I,..._t,...vt,...yt,...Jt},Xt=c.enum([`not-dispatched`,`dispatch-uncertain`]),Z=c.object({adapterId:c.string(),agentId:c.string().optional(),harnessId:c.string().optional(),clientId:c.string().optional(),clientProfileName:fe.optional(),initialMessage:i.optional(),responseSchema:a.optional(),model:c.string().optional(),reasoningEffort:n.optional(),adapterConfig:t.optional(),env:c.record(c.string(),c.string()).optional(),role:d,sessionContext:S.optional(),mcpSessionContext:c.union([oe,ue]).optional(),providerContext:s.optional(),ephemeral:c.boolean().optional()}).merge(_e),Zt={request:c.union([Z.extend({mode:c.literal(`fork`),sessionId:c.string(),sourceSessionId:c.string(),sourceAdapterSessionId:c.string(),forkPointMessageId:c.string().optional(),targetWorkingDirectory:c.string().optional()}),Z.extend({mode:c.literal(`resume`),sessionId:c.string(),adapterSessionId:c.string()}),Z.extend({mode:c.literal(`create`).optional(),sessionId:c.string().optional()})]).superRefine((e,t)=>{let n=e.mode??`create`;e.ephemeral&&n!==`create`&&t.addIssue({code:c.ZodIssueCode.custom,path:[`ephemeral`],message:`ephemeral is only supported for create mode`}),e.ephemeral&&e.initialMessage===void 0&&t.addIssue({code:c.ZodIssueCode.custom,path:[`initialMessage`],message:`ephemeral startAgent requires initialMessage`})}),response:c.discriminatedUnion(`success`,[c.object({success:c.literal(!0),agentId:c.string(),adapterId:c.string(),adapterSessionId:c.string().optional(),sessionId:c.string(),messageId:c.string().optional()}),c.object({success:c.literal(!1),message:c.string(),dispatch:Xt})])},Qt={request:c.object({adapterId:c.string(),prompt:c.string(),model:c.string().optional(),systemPrompt:c.string().optional(),responseSchema:a.optional(),providerContext:s.optional()}),response:c.object({text:c.string(),usage:c.object({inputTokens:c.number(),outputTokens:c.number()}).optional()})},$t={request:c.object({adapterId:c.string()}),response:c.object({agents:c.array(c.object({agentId:c.string(),sessionId:c.string(),adapterSessionId:c.string().optional()}))})},en={request:c.object({adapterId:c.string(),agentId:c.string()}),response:c.object({agent:c.object({agentId:c.string(),sessionId:c.string(),adapterSessionId:c.string().optional()}).nullable()})},Q=c.enum([`exited`,`closed`,`released`,`detached`,`unknown`]),$=[`exited`,`closed`,`released`];function tn(e){return $.some(t=>t===e)}const nn=c.object({evidence:Q,detail:c.string().optional()});function rn(e){let t=-1,n=!1;for(let r of e){if(r===`unknown`)return`unknown`;if(r===`detached`){n=!0;continue}let e=$.indexOf(r);e>t&&(t=e)}return n?`detached`:$[t]??`released`}function an(e){let t=rn(e.map(e=>e.evidence)),n=e.filter(e=>!tn(e.evidence)).map(e=>e.detail).filter(e=>e!==void 0);return{evidence:t,...n.length>0&&{detail:n.join(`; `)}}}const on={request:c.object({adapterId:c.string(),agentId:c.string()}),response:c.object({success:c.boolean(),evidence:Q,detail:c.string().optional()})},sn={request:c.object({adapterId:c.string(),agentId:c.string(),cwd:c.string().optional(),model:c.string().optional(),resumeAdapterSessionId:c.string().optional(),callerOwnsAgentRow:c.literal(!0).optional()}),response:c.discriminatedUnion(`success`,[c.object({success:c.literal(!0),adapterSessionId:c.string().optional()}),c.object({success:c.literal(!1),message:c.string(),dispatch:c.literal(`not-dispatched`)})])},cn={request:c.object({adapterName:c.string()}),response:c.object({found:c.boolean(),adapterName:c.string(),jsonSchema:c.record(c.string(),c.unknown()).nullable()})},ln=u.extend({agentId:c.string(),sessionId:c.string(),adapterSessionId:c.string().optional()}),un=u.extend({adapterSessionId:c.string().optional(),sessionId:c.string(),model:c.string()}),dn=u.extend({sessionId:c.string(),adapterSessionId:c.string().optional(),totalInputTokens:c.number(),totalOutputTokens:c.number(),totalCalls:c.number()}),fn=u.extend({agentId:c.string(),sessionId:c.string(),adapterSessionId:c.string(),reason:c.string().optional()}),pn=u.extend({message:c.string(),timestamp:c.number(),level:c.enum([`debug`,`info`,`warn`,`error`]).optional()}),mn=u.extend({error:c.string(),sessionId:c.string().optional(),errorCategory:re.optional()}),hn=u.extend({capabilities:c.array(c.string()),nativeTools:c.array(c.string()).optional()}),gn=u.extend({provider:c.string(),quotaType:c.string(),limit:c.number(),used:c.number(),overage:c.number(),resetDate:c.string()}),_n=c.object({agentId:l.attribute(c.string(),`makaio.agent.id`),adapterId:l.attribute(c.string(),`makaio.adapter.id`),adapterName:l.attribute(c.string(),`makaio.adapter.name`),sessionId:l.attribute(c.string(),`makaio.session.id`).optional(),adapterSessionId:l.attribute(c.string(),`makaio.adapter.session_id`).optional(),messageId:l.attribute(c.string(),`makaio.message.id`).optional(),turnId:l.attribute(c.string(),`makaio.turn.id`).optional(),clientId:l.attribute(c.string(),`makaio.client.id`).optional(),providerConfigId:l.attribute(c.string(),`makaio.provider.config_id`).optional(),occurredAt:l.attribute(c.number(),`event.occurred_at`).optional()}),vn=c.object({model:c.string().nullable(),cwd:c.string().nullable()}),yn=[`fresh`,`resume`,`fork`,`rotation`],bn=c.enum(yn),xn=_n.merge(vn).extend({startMode:bn}),Sn=u.merge(vn).extend({adapterSessionId:c.string(),title:c.string().optional(),logFilePath:c.string().nullable().optional(),startedAt:c.number().finite().optional(),machineId:c.string().nullable().optional()}).and(he);export{At as $,m as $t,qt as A,D as At,Vt as B,T as Bt,$t as C,L as Ct,Yt as D,O as Dt,Zt as E,Ze as Et,Ut as F,We as Ft,U as G,y as Gt,q as H,He as Ht,Rt as I,Ge as It,wt as J,g as Jt,Ct as K,_ as Kt,Lt as L,E as Lt,Wt as M,Je as Mt,Gt as N,Ue as Nt,It as O,A as Ot,X as P,C as Pt,J as Q,ye as Qt,zt as R,qe as Rt,en as S,lt as St,Xt as T,k as Tt,W as U,S as Ut,Ht as V,w as Vt,G as W,x as Wt,Nt as X,ze as Xt,Tt as Y,be as Yt,Mt as Z,Be as Zt,nn as _,mt as _t,_n as a,_e as an,Pt as at,an as b,z as bt,mn as c,xt as ct,dn as d,vt as dt,d as en,jt as et,un as f,_t as ft,on as g,ht as gt,sn as h,B as ht,xn as i,ve as in,K as it,Y as j,Ye as jt,Kt as k,Xe as kt,pn as l,St as lt,cn as m,V as mt,yn as n,h as nn,Dt as nt,gn as o,Ft as ot,ln as p,pt,Ot as q,v as qt,bn as r,p as rn,kt as rt,hn as s,H as st,Sn as t,f as tn,Et as tt,fn as u,yt as ut,Q as v,ut as vt,Qt as w,j as wt,tn as x,st as xt,rn as y,dt as yt,Bt as z,Ke as zt};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./bus-CqgrphNE.mjs";export{e as createScopedBus};
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import{adapterSessionClaims as e,adapterSessionClaimsDual as t,agents as n,agentsDual as r,sessions as i,sessionsDual as a}from"./services/session/storage/schema.mjs";import"./schema-DBG7Jq5_.mjs";import{a as o,n as s,o as c}from"./namespace-B7bntOB8.mjs";import{$ as l,A as u,B as d,D as f,E as p,F as m,G as h,H as g,I as _,J as v,K as y,M as ee,N as te,O as ne,P as b,Q as x,S,U as re,V as C,W as w,_ as T,_t as ie,at as ae,ct as oe,dt as se,ft as ce,g as le,gt as ue,ht as de,it as fe,j as pe,k as me,l as he,mt as ge,nt as _e,q as E,rt as ve,st as ye,tt as be,u as xe,ut as Se,v as Ce,w as we,y as Te,z as Ee}from"./handlers-2yd00VEq.mjs";import{TurnStorageSubjects as D}from"./services/turn/namespace.mjs";import{SessionStorageSubjects as O}from"./services/session/storage/namespace.mjs";import{n as k}from"./agent-namespace-D51PODFf.mjs";import{AdapterRuntimeSubjects as De}from"./services/adapter-runtime/namespace.mjs";import{MessageStorageSubjects as A}from"./services/session/messages/namespace.mjs";import{o as Oe}from"./provider-context-Dh-VOOYF.mjs";import{n as ke}from"./namespace-DbNWsPFY.mjs";import{a as Ae,c as je,i as Me,l as Ne,o as Pe,s as Fe,u as Ie}from"./ownership-memory-handler-Bblp93YC.mjs";import{z as j}from"zod";import{createBusNamespace as Le}from"@makaio/framework/core";import{MakaioBus as Re,NoHandlerError as ze,TimeoutError as Be}from"@makaio/framework/bus";import{AdapterSubjects as Ve,AgentSubjects as M,CanonicalModelSubjects as He,CapabilitySubjects as Ue,ClientSubjects as We,CompressionModeSchema as Ge,FORK_SESSION_LINEAGE_KIND as Ke,ForkTransformsSchema as qe,MessageRoutingSchema as Je,MessageStorageSubjects as Ye,ROOT_SESSION_LINEAGE_KIND as Xe,SessionContextSchema as Ze,SessionDiscoveredSchema as Qe,SessionOwnershipStorageSubjects as N,SessionRecordMetadataSchema as $e,SessionStorageSetRequestSchema as et,SessionStorageUpdateSchema as tt,SessionSubjects as P,TurnIngestionMarkerSchema as nt,compareMessageCursorAsc as rt,compareMessageCursorDesc as it,isCanonicalModelParseError as at,messageToCursor as F,parseCanonicalModel as ot,resolveResumableAdapterSessionId as st}from"@makaio/framework/contracts";import{KernelSubjects as ct}from"@makaio/framework/kernel";import{BaseService as lt}from"@makaio/framework/service-base";import{blob as ut,index as dt,integer as ft,primaryKey as pt,sqliteTable as mt,text as ht,uniqueIndex as gt}from"drizzle-orm/sqlite-core";import{index as _t,primaryKey as vt}from"drizzle-orm/pg-core";import{defineDialectSchema as yt,defineDualTable as bt,didAffectRows as I,executeTransaction as xt,getRawSqlExecutor as St,getStorageEngine as Ct,resolveSchema as L,resolveStorageEngine as wt}from"@makaio/framework/storage/drizzle";import{and as R,asc as z,count as B,desc as Tt,eq as V,gt as Et,gte as Dt,inArray as H,isNull as U,lt as Ot,lte as kt,ne as At,not as jt,or as Mt,sql as W}from"drizzle-orm";import{createStorageNamespaceDefinition as Nt}from"@makaio/framework/storage";import{ClientIdentityObservationSchema as Pt}from"@makaio/framework/contracts/client";import{ImportCursorStorageSubjects as Ft}from"@makaio/framework/adapters";function It(e,t){if(t!==void 0){if(t.outcome===`lead-conflict`){console.debug(`[session.agent.added] lead designation for ${e} lost to ${t.currentLeadAgentId??`no lead`}`);return}t.outcome!==`claimed`&&t.outcome!==`idempotent`&&console.debug(`[session.agent.added] lead designation for ${e} refused: ${t.outcome}`)}}function Lt(e){return e.on(P.agent.added,async t=>{let n=await e.requestOptional(O.get,{sessionId:t.payload.sessionId}),r=n.handled?n.data.session:void 0;if(!r)return;let i=t.payload.role??(r.leadAgentId?`member`:`lead`),a=i===`lead`?await se(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:r.leadAgentId??null}):void 0;i===`lead`&&It(t.payload.agentId,a);let o=a?.outcome===`claimed`||a?.outcome===`idempotent`,s=i===`lead`&&a===void 0;if(!r.adapterName&&(o||s)){let n=o?t.payload.agentId:r.leadAgentId;await Rt(e,t.payload,n);return}await e.requestOptional(O.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()})})}async function Rt(e,t,n){let r=await e.requestOptional(O.update,{sessionId:t.sessionId,lastActivityAt:Date.now(),identity:{adapterName:t.adapterName,adapterId:t.adapterId,adapterSessionId:t.adapterSessionId},expectIdentityOpenForLead:n??null});!r.handled||r.data.success||await e.requestOptional(O.update,{sessionId:t.sessionId,lastActivityAt:Date.now()})}function zt(e){return e.on(P.agent.removed,async t=>{let n=await e.requestOptional(O.get,{sessionId:t.payload.sessionId});n.handled&&n.data.session&&(await e.requestOptional(k.updateStatus,{agentId:t.payload.agentId,status:`disposed`}),await e.requestOptional(P.ownership.release,{agentId:t.payload.agentId,disposition:`released`}),await se(e,{sessionId:t.payload.sessionId,agentId:t.payload.agentId,expectedLeadAgentId:t.payload.agentId,clear:!0}),await e.requestOptional(O.update,{sessionId:t.payload.sessionId,lastActivityAt:Date.now()}))})}function Bt(e){return e.on(M.started,async t=>{let{agentId:n,adapterSessionId:r,adapterName:i,adapterId:a,sessionId:o}=t.payload;if(!r||!o)return;let s=await e.requestOptional(k.get,{agentId:n}),c=s.handled?s.data.agent:null;c&&!c.adapterSessionId&&await e.requestOptional(k.updateRuntime,{agentId:n,adapterSessionId:r});let l=await e.requestOptional(O.get,{sessionId:o}),u=l.handled?l.data.session:null;if(u&&!u.adapterSessionId&&u.leadAgentId===n){if(u.adapterName!==void 0&&(i!==u.adapterName||a!==u.adapterId))return;u.adapterSessionId=r,u.adapterName=i,u.adapterId=a,u.lastActivityAt=Date.now(),await e.requestOptional(O.set,{sessionId:o,session:u})}})}async function Vt(e,t){try{let n=await e.requestOptional(Ve.getCapabilities,{adapterId:t});return n.handled?new Set(n.data.capabilities).has(`session:resume`):!1}catch{return!1}}async function Ht(e,t){if(t!==void 0)return t;let n=await e.requestOptional(De.getMachineId,{});return n.handled?n.data.machineId:void 0}async function Ut(e,t,n,r,i){let a=l(t,n);return _e(ae({intent:`resume`,session:t,localMachineId:i,adapterSupportsNative:await Vt(e,r),targetAdapterName:n.adapterName,currentCwd:n.cwd,targetCwd:n.cwd,resumeIdentity:a}),a.adapterSessionId)}function Wt(e,t){let{agentId:n,storedAdapterId:r}=e;switch(t?.kind){case`rehydrated`:case`joined`:return{agentId:n,adapterId:t.agent.adapterId,success:!0};case`deferred`:return{agentId:n,adapterId:r,success:!0};case`refused`:return{agentId:n,adapterId:r,success:!1,error:`Ownership reservation refused: ${t.message??t.outcome}`};case`lost`:return{agentId:n,adapterId:r,success:!1,error:`Another runtime claimed this agent’s recovery`};default:return{agentId:n,adapterId:r,success:!1,error:`Restart produced no result`}}}async function Gt(e,t,n,r){let{agentId:i,adapterId:a}=n;if(n.status===`disposed`)return{agentId:i,adapterId:a,success:!1,error:`Agent is disposed and can no longer be restarted`};let o=await x(e,{adapterName:n.adapterName,storedAdapterId:a,...r!==void 0&&{machineId:r}});if(o===void 0)return{agentId:i,adapterId:a,success:!0};let s=await Ut(e,t,n,o.adapterId,o.machineId);if(ve(s))return{agentId:i,adapterId:a,success:!0};let c=await g(e,{agent:n,sessionId:n.sessionId,instance:o,resumeProviderSessionId:s.resumeAdapterSessionId,...n.cwd!==void 0&&{cwd:n.cwd},...n.model!==void 0&&{model:n.model}});return Wt({agentId:i,storedAdapterId:a},c)}function Kt(e){let t=e instanceof Error?e.cause:void 0;return t instanceof Error?t.message:e instanceof Error?e.message:String(e)}function qt(e){return e.on(P.restartAgents,async t=>{let{sessionId:n,machineId:r}=t.payload,i=await e.requestOptional(k.listBySession,{sessionId:n}),a=i.handled?i.data.agents:[],o=[],s=await Ht(e,r),c=await e.requestOptional(O.get,{sessionId:n}),l=c.handled?c.data.session:null;for(let t of a){if(l===null){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:`Session row could not be read; agent has no reachable recovery path`});continue}try{o.push(await Gt(e,l,t,s))}catch(e){o.push({agentId:t.agentId,adapterId:t.adapterId,success:!1,error:Kt(e)})}}t.setResult({sessionId:n,results:o})})}function Jt(e){return[Zt(e),Qt(e),$t(e),Yt(e),en(e),qt(e.bus),tn(e),nn(e),rn(e),Lt(e.bus),zt(e.bus),Bt(e.bus),Se({bus:e.bus,machineId:e.machineId,topology:e.topology??`shared-machine`}),oe(e.bus)]}function Yt(e){let{bus:t}=e;return t.on(P.turn.await,async e=>{let{sessionId:n,turnId:r,timeoutMs:i}=e.payload,a=new AbortController,o=t.once(P.turn.completed,{timeoutMs:i,filter:{sessionId:n,turnId:r},signal:a.signal});o.catch(()=>void 0);let s=await Xt(t,n,r);if(s!==void 0){a.abort(),e.setResult({completion:s});return}try{let t=await o;e.setResult({completion:t.payload})}catch(e){throw e instanceof Error&&e.name===`OnceTimeoutError`?new Be(`session.turn.await`,i):e}})}async function Xt(e,t,n){let r=await e.requestOptional(D.get,{turnId:n}),i=r.handled?r.data.turn:null;if(!(i?.sessionId!==t||i.status!==`completed`&&i.status!==`error`))return{sessionId:t,turnId:n,turnNumber:i.turnNumber,success:i.status===`completed`,...i.error!==void 0&&{error:i.error},...i.usage!==void 0&&{usage:i.usage},...i.initiator!==void 0&&{initiator:i.initiator}}}function Zt(e){let{bus:t}=e;return t.on(P.create,async e=>{let{sessionId:n,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,title:c,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,originWindowId:p,machineId:m}=e.payload,h=n??crypto.randomUUID(),g=r===void 0?void 0:(await t.request(P.get,{sessionId:r})).session;if(r!==void 0&&g===null)throw Error(`[session.create] Parent session not found: ${r}`);let _=g?g.rootSessionId??g.sessionId:void 0,v=Date.now(),y={sessionId:h,createdAt:v,lastActivityAt:v,agents:[],status:`active`,title:c,parentSessionId:r,contextInheritance:i,forkPointMessageId:a,branchKind:o,forkTransforms:s,targetWorkingDirectory:l,executionTargetId:u,metadata:d,spawningToolCallId:f,..._!==void 0&&{rootSessionId:_},...m!==void 0&&{machineId:m}},ee=await t.requestOptional(O.set,{sessionId:h,session:y,ifAbsent:!0});if(ee.handled&&!ee.data.success){e.setResult({sessionId:h});return}await t.emit(P.created,{sessionId:h,createdAt:y.createdAt,parentSessionId:r??null,branchKind:o??null,originWindowId:p??`server`}),e.setResult({sessionId:h})})}function Qt(e){let{bus:t}=e;return t.on(P.get,async e=>{let n=await t.requestOptional(O.get,{sessionId:e.payload.sessionId}),r=n.handled?n.data.session:null;e.setResult({session:r})})}function $t(e){let{bus:t}=e;return t.on(P.list,async e=>{let{status:n,limit:r,offset:i,includePreview:a,executionTargetId:o}=e.payload,s=await t.requestOptional(O.list,{status:n??`all`,limit:r,offset:i,includePreview:a,executionTargetId:o}),c=s.handled?s.data.sessions:[],l=s.handled?s.data.total:0;e.setResult({sessions:c,total:l})})}function en(e){let{bus:t}=e;return t.on(P.close,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(O.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(O.set,{sessionId:n,session:i}),await t.emit(P.closed,{sessionId:n}),e.setResult({success:!0})})}function tn(e){let{bus:t}=e;return t.on(P.update,async e=>{let{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}=e.payload,s=await t.requestOptional(O.update,{sessionId:n,executionTargetId:r,approvalPolicyOverride:i,title:a,metadata:o}),c=s.handled?s.data.success:!1;if(c){let e=[];r!==void 0&&e.push(`executionTargetId`),i!==void 0&&e.push(`approvalPolicyOverride`),a!==void 0&&e.push(`title`),o!==void 0&&e.push(`metadata`),e.length>0&&await t.emit(P.updated,{sessionId:n,changedProperties:e})}e.setResult({success:c})})}function nn(e){let{bus:t}=e;return t.on(P.archive,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(O.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(O.set,{sessionId:n,session:i}),await t.emit(P.archived,{sessionId:n}),e.setResult({success:!0})})}function rn(e){let{bus:t}=e;return t.on(P.purge,async e=>{let{sessionId:n}=e.payload,r=await t.requestOptional(O.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(O.list,{status:`all`}),o=a.handled?a.data.sessions:[];for(let e of o)e.parentSessionId===n&&await t.requestOptional(O.set,{sessionId:e.sessionId,session:{...e,parentSessionId:void 0}});let c=await t.requestOptional(s.getEvents,{sessionId:n,options:{limit:1}}),l=c.handled?c.data.totalCount:0;await t.requestOptional(s.deleteBySession,{sessionId:n}),await t.requestOptional(O.delete,{sessionId:n}),await t.emit(P.purged,{sessionId:n}),e.setResult({success:!0,eventsDeleted:l})})}var an=class extends lt{options;constructor(e=Re,t={}){super(e),this.options=t}async onInit(){for(let e of Jt({bus:this.bus,...this.options.machineId!==void 0&&{machineId:this.options.machineId},...this.options.topology!==void 0&&{topology:this.options.topology}}))this.addCleanup(e);this.addCleanup(ie(this.bus)),this.addCleanup(this.scheduleOwnershipReconcile()),await this.reconcileOrphanedTurns()}scheduleOwnershipReconcile(){let e=this.bus.on(ct.phase.coordinatorReady,async t=>{e(),t.setResult({});try{await this.bus.request(P.ownership.reconcile,{})}catch(e){console.error(`[MakaioSessionService] Ownership reconcile failed:`,e)}});return e}async reconcileOrphanedTurns(){let e=await this.bus.requestOptional(D.listActive,{});if(!e.handled)return;let{turns:t}=e.data;for(let e of t)try{let{transitioned:t}=await this.bus.request(D.complete,{turnId:e.turnId,status:`error`,expectedStatus:`active`,error:`process-restart`});if(t){let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:!1,error:`process-restart`,ingestionMarker:`live`};await ge(this.bus,{type:`turn.completed`,sessionId:e.sessionId,payload:t}),await this.bus.emit(P.turn.completed,t)}}catch(t){console.error(`[MakaioSessionService] Failed to reconcile orphaned turn ${e.turnId}:`,t)}}};function on(e,t){let n=t===void 0?``:` machineId="${t}"`;return Error(`No adapter found for adapterName="${e}"${n}. Ensure adapter-runtime identity handlers are registered; adapter startup verifies live availability.`)}function sn(e,t){return JSON.stringify([t??null,e])}var cn=class{bus;registry=new Map;cleanup;constructor(e){this.bus=e,this.cleanup=this.bus.on(Ve.initialized,e=>{this.registry.set(sn(e.payload.adapterName),e.payload.adapterId)})}resolve(e){let t=this.registry.get(sn(e));if(!t)throw on(e);return t}async resolveAvailable(e,t){try{let{adapterId:n}=await this.bus.request(De.resolveId,{adapterName:e,...t!==void 0&&{machineId:t}});return this.registry.set(sn(e,t),n),n}catch{let n=this.registry.get(sn(e,t));if(n)return n;throw on(e,t)}}destroy(){this.cleanup?.(),this.cleanup=void 0,this.registry.clear()}};async function ln(e,t){e.emit(A.stored,{message:structuredClone(t)});try{await e.request(s.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 un(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 dn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.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 ln(t,s)})}function fn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getBySession,async e=>{let{sessionId:t,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=s===`desc`?Tt:z,l=n.select().from(r).where(V(r.sessionId,t)).orderBy(c(r.timestamp),c(r.messageId));if(a){let e=s===`desc`?Mt(Ot(r.timestamp,a.timestamp),R(V(r.timestamp,a.timestamp),o?kt(r.messageId,a.messageId):Ot(r.messageId,a.messageId))):Mt(Et(r.timestamp,a.timestamp),R(V(r.timestamp,a.timestamp),o?Dt(r.messageId,a.messageId):Et(r.messageId,a.messageId)));l=n.select().from(r).where(R(V(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?F(p[p.length-1]):null;e.setResult({messages:p.map(un),nextCursor:m})})}function pn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getByTurn,async e=>{let{turnId:t}=e.payload,i=await n.select().from(r).where(V(r.turnId,t)).orderBy(z(r.timestamp));e.setResult({messages:i.map(un)})})}function mn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.get,async e=>{let{messageId:t}=e.payload,[i]=await n.select().from(r).where(V(r.messageId,t)).limit(1);e.setResult({message:i?un(i):null})})}function hn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c),i=wt(n).fts;return t.on(A.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(un),total:l})})}function gn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c),i=wt(n).fts;return t.on(A.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 _n(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.getByAdapterMessageId,async e=>{let{adapterMessageId:t}=e.payload,[i]=await n.select().from(r).where(V(r.adapterMessageId,t)).limit(1);e.setResult({message:i?un(i):null})})}function vn(e){let{bus:t,db:n}=e,{messages:r}=L(n,c);return t.on(A.upsertByAdapterMessageId,async e=>{let{adapterMessageId:i,sessionId:a,turnId:o,role:s,contentText:c,blocks:l,agentId:u,adapterSessionId:d,timestamp:f,origin:p}=e.payload,[m]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(R(V(r.adapterMessageId,i),V(r.sessionId,a))).limit(1);if(m){m.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(V(r.messageId,m.messageId)),e.setResult({messageId:m.messageId,created:!1});return}let h=crypto.randomUUID();if((await n.insert(r).values({messageId:h,turnId:o,sessionId:a,role:s,contentText:c,blocks:JSON.stringify(l),agentId:u??null,adapterSessionId:d??null,adapterMessageId:i,timestamp:f,editOf:null,origin:p??null}).onConflictDoNothing({target:[r.adapterMessageId,r.sessionId]}).returning({messageId:r.messageId})).length===0){let[t]=await n.select({messageId:r.messageId,turnId:r.turnId}).from(r).where(R(V(r.adapterMessageId,i),V(r.sessionId,a))).limit(1);if(t===void 0)throw Error(`Message upsert conflict winner disappeared before reread completed`);t.turnId===null&&o!==null&&await n.update(r).set({turnId:o}).where(V(r.messageId,t.messageId)),e.setResult({messageId:t.messageId,created:!1});return}e.setResult({messageId:h,created:!0}),await ln(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 yn(e,t){let n={bus:e,db:t},r=[dn(n),fn(n),pn(n),mn(n),hn(n),gn(n),vn(n),_n(n)];return()=>r.forEach(e=>e())}function bn(e,t){return rt(F(e),F(t))}function xn(e,t){return it(F(e),F(t))}function Sn(e,t){let n=e.get(t);if(n!==void 0)return n;let r=new Map;return e.set(t,r),r}function Cn(e,t,n,r){if(r===null)return;let i=e.get(n);if(i===void 0||i.turnId!==null)return;i.turnId=r;let a=t.get(r)??[];a.includes(n)||(a.push(n),t.set(r,a))}function wn(e){let t=new Map,n=new Map,r=new Map,i=new Map,a=Tn(t,n,r,i),o=[En(e,t,a),Dn(e,t,n),On(e,t,r),kn(e,t),An(e,t),jn(e,t,r,i,a),Mn(e,t,n,r,i)];return()=>o.forEach(e=>e())}function Tn(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&&Sn(r,i.sessionId).set(i.adapterMessageId,i.messageId)}}function En(e,t,n){return e.on(A.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 ln(e,o)})}function Dn(e,t,n){return e.on(A.getBySession,async e=>{let{sessionId:r,limit:i,after:a,includeAfter:o=!1,order:s=`asc`}=e.payload,c=n.get(r)??[],l=s===`desc`?xn:bn,u=c.map(e=>t.get(e)).filter(e=>!!e).sort(l);a&&(u=u.filter(e=>{let t=s===`desc`?it(F(e),a):rt(F(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?F(p[p.length-1]):null;e.setResult({messages:p,nextCursor:m})})}function On(e,t,n){return e.on(A.getByTurn,async e=>{let{turnId:r}=e.payload,i=(n.get(r)??[]).map(e=>t.get(e)).filter(e=>!!e).sort(bn);e.setResult({messages:i})})}function kn(e,t){return e.on(A.get,async e=>{e.setResult({message:t.get(e.payload.messageId)??null})})}function An(e,t){return e.on(A.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(bn),e.setResult({messages:c.slice(0,a),total:c.length})})}function jn(e,t,n,r,i){return e.on(A.upsertByAdapterMessageId,async a=>{let{adapterMessageId:o,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f,adapterSessionId:p,timestamp:m,origin:h}=a.payload,g=r.get(s)?.get(o);if(g){Cn(t,n,g,c),a.setResult({messageId:g,created:!1});return}let _=crypto.randomUUID(),v={messageId:_,sessionId:s,turnId:c,role:l,contentText:u,blocks:d,agentId:f??void 0,adapterSessionId:p??void 0,adapterMessageId:o,timestamp:m,editOf:void 0,origin:h??void 0};i(v),a.setResult({messageId:_,created:!0}),await ln(e,v)})}function Mn(e,t,n,r,i){return e.on(O.delete,e=>{let{sessionId:a}=e.payload,o=n.get(a)??[];for(let e of o){let n=t.get(e);if(n){if(t.delete(e),n.turnId){let t=(r.get(n.turnId)??[]).filter(t=>t!==e);t.length===0?r.delete(n.turnId):r.set(n.turnId,t)}if(n.adapterMessageId){let e=i.get(n.sessionId);e?.delete(n.adapterMessageId),e?.size===0&&i.delete(n.sessionId)}}}n.delete(a)})}const Nn=bt(`message_routing`,e=>({messageId:e.text(`message_id`).notNull().references(o,{onDelete:`cascade`}),agentId:e.text(`agent_id`).notNull(),status:e.textEnum(`status`,{enum:[`sent`,`acknowledged`,`completed`]}).notNull(),timestamp:e.epochMs(`timestamp`).notNull(),error:e.text(`error`)}),{sqlite:e=>[pt({columns:[e.messageId,e.agentId,e.status]}),dt(`idx_routing_agent`).on(e.agentId,e.timestamp)],postgres:e=>[vt({columns:[e.messageId,e.agentId,e.status]}),_t(`idx_routing_agent`).on(e.agentId,e.timestamp)]}),Pn=Nn.sqlite,Fn=Nt(`messageRouting`,{schemas:{record:{request:Je,response:j.object({success:j.boolean()})},getByMessage:{request:j.object({messageId:j.string()}),response:j.object({routing:j.array(Je)})},getCompleted:{request:j.object({messageId:j.string()}),response:j.object({agentIds:j.array(j.string())})},isComplete:{request:j.object({messageId:j.string(),targetAgentIds:j.array(j.string())}),response:j.object({complete:j.boolean(),pending:j.array(j.string())})}},extensions:{drizzle:{messageRouting:Pn}}}),G=Fn.subjects,In=Nn.postgres,Ln=yt({messageRouting:Pn},{messageRouting:In});function Rn(e){return{messageId:e.messageId,agentId:e.agentId,status:e.status,timestamp:e.timestamp,error:e.error??void 0}}function zn(e,t){let{messageRouting:n}=L(t,Ln),r=[];return r.push(e.on(G.record,async e=>{let{messageId:r,agentId:i,status:a,timestamp:o,error:s}=e.payload;await t.insert(n).values({messageId:r,agentId:i,status:a,timestamp:o,error:s??null}).onConflictDoUpdate({target:[n.messageId,n.agentId,n.status],set:{timestamp:o,error:s??null}}),e.setResult({success:!0})})),r.push(e.on(G.getByMessage,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(V(n.messageId,r));e.setResult({routing:i.map(Rn)})})),r.push(e.on(G.getCompleted,async e=>{let{messageId:r}=e.payload,i=await t.select().from(n).where(R(V(n.messageId,r),V(n.status,`completed`)));e.setResult({agentIds:i.map(e=>e.agentId)})})),r.push(e.on(G.isComplete,async e=>{let{messageId:r,targetAgentIds:i}=e.payload,a=await t.select().from(n).where(R(V(n.messageId,r),V(n.status,`completed`))),o=new Set(a.map(e=>e.agentId)),s=i.filter(e=>!o.has(e));e.setResult({complete:s.length===0,pending:s})})),()=>r.forEach(e=>e())}const Bn={writesAgentStatus:!0};async function Vn(e,t,n){let r=await v(e,{sessionId:t.sessionId,agentId:n,adapterName:t.adapterName,instance:t.instance,role:`lead`,resumeProviderSessionId:null,expectedLeadAgentId:t.expectedLeadAgentId});return r.outcome===`reserved`?{kind:`reserved`,reservation:r.reservation}:r.outcome===`lead-conflict`?{kind:`lead-conflict`,currentLeadAgentId:r.currentLeadAgentId}:{kind:`refused`,outcome:r.outcome}}async function Hn(e,t,n){let r=u({agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,sessionId:t.sessionId,role:`lead`,runtime:t.startRequest,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId}}),i;try{await e.requestOptional(k.set,{agentId:n,agent:r}),i=await Vn(e,t,n)}catch(t){throw await y(e,n,void 0),t}if(i.kind===`lead-conflict`)return await y(e,n,void 0),{outcome:`lead-conflict`,currentLeadAgentId:i.currentLeadAgentId};if(i.kind===`refused`)throw await y(e,n,void 0),new E(`start-failed`,`[session.start] reservation for agent ${n} was refused: ${i.outcome}`);let{reservation:a}=i,o=new w([a.claim?.claimToken]),s;try{s=await e.request(Ve.startAgent,{...t.startRequest,agentId:n})}catch(t){throw await h(e,n,Bn,o),t}if(!s.success)throw s.dispatch===`not-dispatched`?await y(e,n,a):await h(e,n,Bn,o),new E(`start-failed`,`[session.start] Failed to start agent (sessionId=${t.sessionId}, adapterName=${t.adapterName}): ${s.message}`);let c=ce();return o.add(c),await re(e,{sessionId:t.sessionId,agentId:n,adapterId:t.instance.adapterId,adapterName:t.adapterName,policy:Bn,claimTokens:o,settlementClaimToken:c,...t.providerConfigId!==void 0&&{providerConfigId:t.providerConfigId},machineId:t.instance.machineId},s.adapterSessionId),{outcome:`started`,agent:{...r,status:`idle`,...s.adapterSessionId!==void 0&&{adapterSessionId:s.adapterSessionId}}}}async function Un(e,t){let n=crypto.randomUUID(),r;if(await ye(n,async()=>(r=await Hn(e,t,n),r.outcome===`started`?`connected`:`no-connector`)).settled,r===void 0)throw new E(`start-failed`,`[session.start] start for agent ${n} produced no result`);return r}function Wn(e){return{source:e.source,...e.sourceId!==void 0&&{sourceId:e.sourceId}}}var Gn=class{turnId;sessionId;turnNumber;startedAt;_initiator;_agentIds;_messageIds=[];admittedTargetsByMessageId=new Map;terminalPairs=new Map;pendingMessageAdmissions=new Set;constructor(e){if(!Number.isInteger(e.turnNumber)||e.turnNumber<1)throw Error(`turnNumber must be a positive integer`);this.turnId=e.turnId??crypto.randomUUID(),this.sessionId=e.sessionId,this.turnNumber=e.turnNumber,this.startedAt=e.startedAt??Date.now(),this._initiator=Object.freeze(Wn(e.initiator??{source:`user`})),this._agentIds=Object.freeze([...e.agentIds])}get agentIds(){return this._agentIds}get initiator(){return Wn(this._initiator)}get messageIds(){return this._messageIds}get hasPendingMessageAppends(){return this.pendingMessageAdmissions.size>0}addMessage(e){this.admitMessage(e,this._agentIds),this.commitMessageAdmission(e)}claimMessageAppend(e){this.admitMessage(e,this._agentIds)}releaseMessageAppend(e){this.rollbackMessageAdmission(e)}admitMessage(e,t){if(this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} already admitted message ${e}`);if(t.length===0||new Set(t).size!==t.length)throw Error(`Turn ${this.turnId} requires a non-empty unique target set for message ${e}`);if(t.some(e=>!this.hasAgent(e)))throw Error(`Turn ${this.turnId} cannot admit targets outside its immutable participant set`);this._messageIds.push(e),this.admittedTargetsByMessageId.set(e,new Set(t)),this.pendingMessageAdmissions.add(e)}commitMessageAdmission(e){if(!this.admittedTargetsByMessageId.has(e))throw Error(`Turn ${this.turnId} cannot commit unknown message ${e}`);this.pendingMessageAdmissions.delete(e)}rollbackMessageAdmission(e){let t=this.admittedTargetsByMessageId.get(e);if(!t)return;if([...t].some(t=>this.terminalPairs.has(this.pairKey(e,t))))throw Error(`Turn ${this.turnId} cannot roll back terminal message ${e}`);this.admittedTargetsByMessageId.delete(e),this.pendingMessageAdmissions.delete(e);let n=this._messageIds.indexOf(e);n>=0&&this._messageIds.splice(n,1)}recordPairTerminal(e,t,n,r){if(!this.admittedTargetsByMessageId.get(e)?.has(t))return{accepted:!1,turnComplete:!1};let i=this.pairKey(e,t);return this.terminalPairs.has(i)?{accepted:!1,turnComplete:!1}:(this.terminalPairs.set(i,{outcome:n,...r!==void 0&&{error:r}}),this.isComplete()?{accepted:!0,turnComplete:!0,result:this.getResult()}:{accepted:!0,turnComplete:!1})}hasAdmittedPair(e,t){return this.admittedTargetsByMessageId.get(e)?.has(t)??!1}get admittedPairs(){return[...this.admittedTargetsByMessageId].flatMap(([e,t])=>[...t].map(t=>({messageId:e,agentId:t})))}hasAgent(e){return this._agentIds.includes(e)}isComplete(){if(this.admittedTargetsByMessageId.size===0||this.pendingMessageAdmissions.size>0)return!1;for(let[e,t]of this.admittedTargetsByMessageId)for(let n of t)if(!this.terminalPairs.has(this.pairKey(e,n)))return!1;return!0}getResult(){let e=[...this.terminalPairs.values()].filter(e=>e.outcome===`error`).map(e=>e.error??`Unknown error`);return{success:e.length===0,errors:e}}getContext(){if(this._messageIds.length===0)throw Error(`Turn ${this.turnId} has no messages yet`);return{turnId:this.turnId,messageId:this._messageIds[this._messageIds.length-1]}}getContextForMessage(e){return{turnId:this.turnId,messageId:e}}pairKey(e,t){return JSON.stringify([e,t])}},Kn=class e{byAgent=new Map;coverageByAgent=new Map;ambiguousAgents=new Set;providerCalls=new Set;add(e){if(e.granularity===`latest-request-gauge`||this.ambiguousAgents.has(e.agentId))return;let t=this.coverageByAgent.get(e.agentId);if(t!==void 0&&t!==e.granularity){this.byAgent.delete(e.agentId),this.ambiguousAgents.add(e.agentId);return}if(e.granularity===`provider-call`&&e.llmCallId!==void 0){let t=`${e.agentId}:${e.llmCallId}`;if(this.providerCalls.has(t))return;this.providerCalls.add(t)}this.coverageByAgent.set(e.agentId,e.granularity);let n=this.byAgent.get(e.agentId);n?(n.inputTokens+=e.inputTokens,e.inputCachedTokens>0&&(n.cachedInputTokens=(n.cachedInputTokens??0)+e.inputCachedTokens),n.outputTokens+=e.outputTokens):this.byAgent.set(e.agentId,{inputTokens:e.inputTokens,...e.inputCachedTokens>0&&{cachedInputTokens:e.inputCachedTokens},outputTokens:e.outputTokens})}preview(t){let n=new e;for(let[e,t]of this.byAgent)n.byAgent.set(e,{...t});for(let[e,t]of this.coverageByAgent)n.coverageByAgent.set(e,t);for(let e of this.ambiguousAgents)n.ambiguousAgents.add(e);for(let e of this.providerCalls)n.providerCalls.add(e);for(let e of t)n.add(e);return n.snapshot()}snapshot(){if(this.byAgent.size===0)return;let e=0,t=0,n=0,r={};for(let[i,a]of this.byAgent)e+=a.inputTokens,t+=a.cachedInputTokens??0,n+=a.outputTokens,r[i]={...a};return{total:{inputTokens:e,...t>0&&{cachedInputTokens:t},outputTokens:n},byAgent:r}}flush(){let e=this.snapshot();return this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear(),e}clear(){this.byAgent.clear(),this.coverageByAgent.clear(),this.ambiguousAgents.clear(),this.providerCalls.clear()}};const qn=Symbol(`turnReservation`);var Jn=class{activeTurns=new Map;reservations=new Map;pendingAcquisitions=new Map;pendingPreparations=new Map;preparedTurnIds=new Set;pendingFinalizations=new Map;finalizingTurnIds=new Set;async awaitFinalization(e,t){let n=this.pendingFinalizations.get(e);if(n)return await n;let r=t();this.pendingFinalizations.set(e,r);try{await r}finally{this.pendingFinalizations.get(e)===r&&this.pendingFinalizations.delete(e)}}getActive(e){return this.activeTurns.get(e)}findActiveByTurnId(e){for(let t of this.activeTurns.values())if(t.turnId===e)return t}async acquire(e,t){let n=this.activeTurns.get(e);if(n)return{turn:n,isNew:!1};let r=this.pendingAcquisitions.get(e);if(r)return{turn:await r,isNew:!1};let i=t(this.reserve(e));this.pendingAcquisitions.set(e,i);try{return{turn:await i,isNew:!0}}finally{this.pendingAcquisitions.get(e)===i&&this.pendingAcquisitions.delete(e)}}reserve(e){if(this.activeTurns.has(e)||this.reservations.has(e))throw Error(`Session ${e} already has a routable or pending turn`);let t={sessionId:e,[qn]:!0};return this.reservations.set(e,t),t}release(e){this.reservations.get(e.sessionId)===e&&this.reservations.delete(e.sessionId)}activate(e,t){if(this.reservations.get(e.sessionId)!==e)throw Error(`Turn reservation for session ${e.sessionId} is no longer active`);this.activeTurns.set(e.sessionId,t),this.release(e)}clearActive(e){return this.activeTurns.get(e.sessionId)?.turnId===e.turnId?(this.activeTurns.delete(e.sessionId),this.preparedTurnIds.delete(e.turnId),!0):!1}tryAdmitMessage(e,t,n){if(this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId)return;e.admitMessage(t,n);let r=!1;return{turn:e,messageId:t,agentIds:[...n],commit:()=>{r||(r=!0,e.commitMessageAdmission(t))},rollback:async()=>{r||(r=!0,e.rollbackMessageAdmission(t))}}}beginFinalization(e){return this.finalizingTurnIds.has(e.turnId)||this.activeTurns.get(e.sessionId)?.turnId!==e.turnId?!1:(this.finalizingTurnIds.add(e.turnId),this.clearActive(e),!0)}finishFinalization(e){this.finalizingTurnIds.delete(e.turnId)}beginPreparation(e){if(this.preparedTurnIds.has(e.turnId))return{turn:e,isOwner:!1,ready:Promise.resolve()};let t=this.pendingPreparations.get(e.turnId);if(t)return{turn:e,isOwner:!1,ready:t.ready};let n,r,i=new Promise((e,t)=>{n=e,r=t});return i.catch(()=>{}),this.pendingPreparations.set(e.turnId,{turn:e,ready:i,resolve:n,reject:r}),{turn:e,isOwner:!0,ready:i}}completePreparation(e){if(!e.isOwner)throw Error(`Only the preparation owner can complete turn ${e.turn.turnId}`);let t=this.pendingPreparations.get(e.turn.turnId);if(!t||t.turn!==e.turn)throw Error(`Turn preparation for ${e.turn.turnId} is no longer active`);this.pendingPreparations.delete(e.turn.turnId),this.preparedTurnIds.add(e.turn.turnId),t.resolve()}failPreparation(e,t){if(!e.isOwner)throw Error(`Only the preparation owner can fail turn ${e.turn.turnId}`);let n=this.pendingPreparations.get(e.turn.turnId);!n||n.turn!==e.turn||(this.pendingPreparations.delete(e.turn.turnId),n.reject(t))}clear(){this.activeTurns.clear(),this.reservations.clear(),this.pendingAcquisitions.clear(),this.pendingFinalizations.clear(),this.finalizingTurnIds.clear();for(let e of this.pendingPreparations.values())e.reject(Error(`Turn slot registry was cleared during preparation`));this.pendingPreparations.clear(),this.preparedTurnIds.clear()}},Yn=class{bus;resolveTurn;timeoutMs;settledPairs=new Map;waiters=new Map;cleanup;destroyed=!1;constructor(e,t,n){this.bus=e,this.resolveTurn=t,this.timeoutMs=n,this.cleanup=e.on(P.turn.assistantPersistenceSettled,e=>{if(this.destroyed)return;let{sessionId:t,turnId:n,messageId:r,agentId:i}=e.payload,a=this.resolveTurn(n);if(!a||a.sessionId!==t||!a.hasAdmittedPair(r,i))return;let o=this.settledPairs.get(n)??new Set;o.add(this.pairKey(r,i)),this.settledPairs.set(n,o),this.isSettled(a)&&this.waiters.get(n)?.settle()})}async waitFor(e){if(this.destroyed||e.agentIds.length===0||this.isSettled(e))return;let t=await this.bus.requestOptional(A.getByTurn,{turnId:e.turnId});this.destroyed||!t.handled||await new Promise(t=>{let n=()=>{clearTimeout(r),this.waiters.delete(e.turnId),t()},r=setTimeout(n,this.timeoutMs);this.waiters.set(e.turnId,{settle:n}),this.isSettled(e)&&n()})}clear(e){this.waiters.get(e)?.settle(),this.settledPairs.delete(e)}destroy(){if(!this.destroyed){this.destroyed=!0,this.cleanup();for(let e of[...this.waiters.values()])e.settle();this.waiters.clear(),this.settledPairs.clear()}}isSettled(e){if(e.admittedPairs.length===0)return!0;let t=this.settledPairs.get(e.turnId);return t!==void 0&&e.admittedPairs.every(({messageId:e,agentId:n})=>t.has(this.pairKey(e,n)))}pairKey(e,t){return JSON.stringify([e,t])}};function Xn(e,t,n){return{...e,isPreparationOwner:t.isOwner,commit:()=>{e.commit(),t.isOwner&&n.completePreparation(t)},rollback:async(r=`message-setup-failed:${e.messageId}`)=>{let i=e.rollback();if(t.isOwner){let a={success:!1,errors:[r]};n.beginSetupFailure(e,a),n.failPreparation(t,Error(`Message ${e.messageId} setup failed`)),await i,await n.finalizeSetupFailure(e,a);return}await i,e.turn.isComplete()&&await n.finalizeCompletedLedger(e,e.turn.getResult())}}}function Zn(e){return{status:e.success?`completed`:`error`,error:e.errors.length>0?e.errors.join(`; `):void 0}}function Qn(e,t){if(e===void 0||t===void 0)return e===t;if(e.total.inputTokens!==t.total.inputTokens||e.total.cachedInputTokens!==t.total.cachedInputTokens||e.total.outputTokens!==t.total.outputTokens||e.total.cost!==t.total.cost)return!1;let n=e.byAgent??{},r=t.byAgent??{},i=Object.keys(n).sort(),a=Object.keys(r).sort();return i.length===a.length?i.every((e,t)=>{if(e!==a[t])return!1;let i=n[e],o=r[e];return i?.inputTokens===o?.inputTokens&&i?.cachedInputTokens===o?.cachedInputTokens&&i?.outputTokens===o?.outputTokens&&i?.cost===o?.cost}):!1}async function $n(e,t,n,r,i){let a=Zn(n),o=await e.requestOptional(D.complete,{turnId:t.turnId,status:a.status,...i!==void 0&&{expectedStatus:i},error:a.error,usage:r??null});if(!o.handled)return{handled:!1,transitioned:!0};let s=o.data.turn;if(!(s.status===a.status&&s.error===a.error))return{handled:!0,transitioned:!1};if(Qn(s.usage,r))return{handled:!0,transitioned:!0};if(o.data.transitioned)throw Error(`Turn completion storage returned non-canonical usage for transitioned turn ${t.turnId}`);let c=await e.requestOptional(D.complete,{turnId:t.turnId,status:a.status,error:a.error,usage:r??null});if(!c.handled||!Qn(c.data.turn.usage,r))throw Error(`Turn completion usage reconciliation did not persist the canonical snapshot for ${t.turnId}`);if(c.data.turn.status!==a.status||c.data.turn.error!==a.error)throw Error(`Turn completion usage reconciliation changed terminal metadata for ${t.turnId}`);return{handled:!0,transitioned:!0}}async function er(e){let t=e.turn.turnId,n=e.currentUsage;for(;;){let r=e.bufferedUsage.get(t);if(r===void 0||r.length===0)return n;e.bufferedUsage.delete(t);let i=e.usageAccumulator?e.usageAccumulator.preview(r):n;try{await $n(e.bus,e.turn,e.result,i)}catch(n){let i=e.bufferedUsage.get(t)??[];throw e.bufferedUsage.set(t,[...r,...i]),n}for(let t of r)e.usageAccumulator?.add(t);n=e.usageAccumulator?.snapshot()??i}}function tr(e,t,n){return[e.on(M.usage,e=>{let{agentId:n,turnId:r,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,llmCallId:c}=e.payload;if(!r){console.warn(`[SessionTurnManager] Dropping usage event without turnId (agentId=${n}).`);return}let l=t.resolveUsageTurn(r);if(!l||!l.hasAgent(n))return;let u={agentId:n,inputTokens:i,inputCachedTokens:a,outputTokens:o,granularity:s,...c&&{llmCallId:c}};t.isCompletionInFlight(l.turnId)?t.bufferUsage(l.turnId,u):t.addUsage(l,u)}),e.on(M.complete,async r=>{let{agentId:i,outcome:a,error:o,turnId:s,messageId:c}=r.payload;r.payload._import||!s||await nr(e,t,{agentId:i,messageId:c,outcome:a??`completed`,error:a===`error`?o:void 0,turnId:s,onTurnComplete:n})})]}async function nr(e,t,n){let r=t.resolveCompletionTurn(n.turnId);if(!r?.hasAgent(n.agentId))return;let i=r.recordPairTerminal(n.messageId,n.agentId,n.outcome,n.error);if(!i.accepted){t.canRetry(r.turnId)&&await t.retry(r.turnId);return}i.turnComplete&&t.beginFinalization(r,i.result);let a=e.emit(P.user_message.completed,{sessionId:r.sessionId,turnId:r.turnId,turnNumber:r.turnNumber,messageId:n.messageId,agentId:n.agentId,outcome:n.outcome,...n.error!==void 0&&{error:n.error}}),o=i.turnComplete?n.onTurnComplete(r,i.result):Promise.resolve(),[s,c]=await Promise.allSettled([a,o]);if(s.status===`rejected`&&console.error(`[SessionTurnManager] Failed to emit user-message completion:`,s.reason),c.status===`rejected`)throw c.reason}var rr=class{bus;turnSlots=new Jn;usageAccumulators=new Map;completingTurnIds=new Set;completionPromises=new Map;completingTurns=new Map;closedUsageAdmissions=new Set;pendingTerminalCompletions=new Map;pendingTerminalResults=new Map;setupFinalizingTurnIds=new Set;bufferedUsageDuringCompletion=new Map;syntheticTurnCounters=new Map;assistantPersistenceBarrier;cleanups=[];constructor(e){this.bus=e,this.assistantPersistenceBarrier=new Yn(e,e=>this.findTurnForCompletion(e),1500)}async acquireTurn(e,t,n,r){await this.retryRetainedCompletionsForSession(e);let i=await this.turnSlots.acquire(e,e=>this.createReservedTurn(e,t,n,r));if(t.some(e=>!i.turn.hasAgent(e)))throw Error(`Turn ${i.turn.turnId} cannot route agents outside its immutable participant set (sessionId=${e})`);return i}async reserveTurn(e){return await this.retryRetainedCompletionsForSession(e),this.turnSlots.reserve(e)}releaseTurnReservation(e){this.turnSlots.release(e)}async acquireMessageAdmission(e,t,n,r,i){for(;;){let a=await this.acquireTurn(e,t,r,i),o=this.turnSlots.tryAdmitMessage(a.turn,n,t);if(!o)continue;let s=this.turnSlots.beginPreparation(a.turn);if(!s.isOwner)try{await s.ready}catch{await o.rollback();continue}return this.composeAdmissionWithPreparation(o,s)}}admitReservedMessage(e,t,n){let r=this.turnSlots.tryAdmitMessage(e,t,n);if(!r)throw Error(`Turn ${e.turnId} is no longer routable for message admission`);return this.composeAdmissionWithPreparation(r,this.turnSlots.beginPreparation(e))}async createReservedTurn(e,t,n,r){let{sessionId:i}=e;try{let a=await this.bus.requestOptional(D.create,{sessionId:i,...r!==void 0&&{turnId:r},...n!==void 0&&{initiator:n}}),o,s;if(a.handled)o=a.data.turn.turnId,s=a.data.turn.turnNumber;else{o=r??crypto.randomUUID();let e=(this.syntheticTurnCounters.get(i)??0)+1;this.syntheticTurnCounters.set(i,e),s=e}let c=new Gn({sessionId:i,agentIds:t,turnId:o,turnNumber:s,initiator:n});return this.turnSlots.activate(e,c),this.usageAccumulators.set(c.turnId,new Kn),c}finally{this.releaseTurnReservation(e)}}async createTurn(e,t,n,r){return this.createReservedTurn(await this.reserveTurn(e),t,n,r)}discardActiveTurn(e){this.clearActiveRoutingTurn(e)&&(this.usageAccumulators.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId))}async failActiveTurnBeforeDispatch(e,t){if(this.turnSlots.getActive(e.sessionId)?.turnId!==e.turnId)return;let n={success:!1,errors:[t]};this.beginFinalization(e,n,`setup`),await this.completeTurn(e,n)}async failActiveTurnSetup(e,t){e.messageIds.length>0||e.hasPendingMessageAppends||await this.failActiveTurnBeforeDispatch(e,t)}clearActiveRoutingTurn(e){return this.turnSlots.clearActive(e)}composeAdmissionWithPreparation(e,t){return Xn(e,t,{completePreparation:e=>this.turnSlots.completePreparation(e),failPreparation:(e,t)=>this.turnSlots.failPreparation(e,t),beginSetupFailure:(e,t)=>this.beginFinalization(e.turn,t,`setup`),finalizeSetupFailure:async(e,t)=>this.completeTurn(e.turn,t),finalizeCompletedLedger:async(e,t)=>{this.beginFinalization(e.turn,t,`normal`),await this.completeTurn(e.turn,t)}})}registerCompletionHandlers(e){this.cleanups.push(...tr(this.bus,this.completionEventHooks(),e))}async completeTurn(e,t){let n=this.completionPromises.get(e.turnId);if(n)return await n;let r=this.completeTurnInternal(e,t);this.completionPromises.set(e.turnId,r);try{await r}finally{this.completionPromises.get(e.turnId)===r&&this.completionPromises.delete(e.turnId)}}async completeTurnInternal(e,t){if(this.completingTurnIds.has(e.turnId))return;this.completingTurnIds.add(e.turnId);let n=this.beginFinalization(e,t,`normal`),r=this.usageAccumulators.get(e.turnId),i=r?.snapshot(),a=this.pendingTerminalCompletions.get(e.turnId)??!1;try{if(!this.pendingTerminalCompletions.has(e.turnId)){let t=await $n(this.bus,e,n,i,`active`);if(a=t.handled,!t.transitioned){this.clearActiveRoutingTurn(e),this.clearCompletionState(e,r);return}this.pendingTerminalCompletions.set(e.turnId,a),i=await er({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion})}}catch(t){throw this.completingTurnIds.delete(e.turnId),console.error(`[SessionTurnManager] Failed to persist completion for turn ${e.turnId}:`,t),t}let o=!1;try{a&&!this.setupFinalizingTurnIds.has(e.turnId)&&await this.assistantPersistenceBarrier.waitFor(e),this.closedUsageAdmissions.add(e.turnId),i=await er({bus:this.bus,turn:e,result:n,usageAccumulator:r,currentUsage:i,bufferedUsage:this.bufferedUsageDuringCompletion});let t={sessionId:e.sessionId,turnId:e.turnId,turnNumber:e.turnNumber,success:n.success,error:n.errors.length>0?n.errors.join(`; `):void 0,...i!==void 0&&{usage:i},initiator:e.initiator,ingestionMarker:`live`};await ge(this.bus,{type:`turn.completed`,sessionId:e.sessionId,eventId:`turn.completed:${e.turnId}`,payload:t}),o=!0,await this.bus.emit(P.turn.completed,t)}catch(t){throw o?this.clearCompletionState(e,r):this.completingTurnIds.delete(e.turnId),t}this.clearCompletionState(e,r)}async retryTurnCompletion(e){let t=this.completingTurns.get(e),n=this.pendingTerminalResults.get(e);if(t===void 0||n===void 0)throw Error(`Turn ${e} has no retryable completion`);await this.completeTurn(t,n)}async retryRetainedCompletionsForSession(e){await this.turnSlots.awaitFinalization(e,async()=>{for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.setupFinalizingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:this.completingTurnIds.has(t.turnId)||await this.retryTurnCompletion(t.turnId)}for(let t of[...this.completingTurns.values()].filter(t=>t.sessionId===e&&this.pendingTerminalResults.has(t.turnId)&&!this.completingTurnIds.has(t.turnId))){let e=this.completionPromises.get(t.turnId);e?await e:await this.retryTurnCompletion(t.turnId)}})}clearCompletionState(e,t){t?.clear(),this.usageAccumulators.delete(e.turnId),this.bufferedUsageDuringCompletion.delete(e.turnId),this.assistantPersistenceBarrier.clear(e.turnId),this.completingTurns.delete(e.turnId),this.closedUsageAdmissions.delete(e.turnId),this.completingTurnIds.delete(e.turnId),this.pendingTerminalCompletions.delete(e.turnId),this.pendingTerminalResults.delete(e.turnId),this.setupFinalizingTurnIds.delete(e.turnId),this.turnSlots.finishFinalization(e)}getActiveTurn(e){return this.turnSlots.getActive(e)}findActiveTurnByTurnId(e){return this.turnSlots.findActiveByTurnId(e)}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.turnSlots.clear(),this.usageAccumulators.clear(),this.completingTurnIds.clear(),this.completionPromises.clear(),this.completingTurns.clear(),this.closedUsageAdmissions.clear(),this.pendingTerminalCompletions.clear(),this.pendingTerminalResults.clear(),this.setupFinalizingTurnIds.clear(),this.bufferedUsageDuringCompletion.clear(),this.syntheticTurnCounters.clear(),this.assistantPersistenceBarrier.destroy()}async recordAgentCompletion(e,t,n,r,i,a){await nr(this.bus,this.completionEventHooks(),{agentId:e,messageId:t,outcome:n,...r!==void 0&&{error:r},turnId:a,onTurnComplete:i})}completionEventHooks(){return{resolveUsageTurn:e=>this.findTurnForUsage(e),resolveCompletionTurn:e=>this.findTurnForCompletion(e),isCompletionInFlight:e=>this.completingTurnIds.has(e),addUsage:(e,t)=>this.usageAccumulators.get(e.turnId)?.add(t),bufferUsage:(e,t)=>this.bufferUsageDuringCompletion(e,t),canRetry:e=>this.pendingTerminalResults.has(e)&&!this.completingTurnIds.has(e),retry:async e=>this.retryTurnCompletion(e),beginFinalization:(e,t)=>this.beginFinalization(e,t,`normal`)}}beginFinalization(e,t,n){let r=this.pendingTerminalResults.get(e.turnId)??t;return this.completingTurns.set(e.turnId,e),this.pendingTerminalResults.set(e.turnId,r),n===`setup`&&this.setupFinalizingTurnIds.add(e.turnId),this.turnSlots.beginFinalization(e),r}bufferUsageDuringCompletion(e,t){let n=this.bufferedUsageDuringCompletion.get(e)??[];n.push(t),this.bufferedUsageDuringCompletion.set(e,n)}findTurnForUsage(e){let t=this.findActiveTurnByTurnId(e);if(t!==void 0)return t;if(!this.closedUsageAdmissions.has(e))return this.completingTurns.get(e)}findTurnForCompletion(e){return this.findActiveTurnByTurnId(e)??this.completingTurns.get(e)}};async function ir(e,t,n){let r=T(t.adapterName),i=T(t.adapterId);if(!r&&!i)throw Error(`[SessionOrchestrator.sendMessage] adapterName or adapterId required when session has no agents (sessionId=${n})`);if(i)return Ce(e,i,r,`[SessionOrchestrator.sendMessage] (sessionId=${n}) `);if(r===void 0)throw Error(`[SessionOrchestrator.sendMessage] adapterName could not be resolved (sessionId=${n})`);return r}async function ar(e,t,n,r,i){if(!t)throw Error(`[SessionOrchestrator.sendMessage] agent selection required when session has no agents (sessionId=${n})`);if(t.kind===`adapter`)return t;if(t.kind===`canonical-model`)return await or(e,t,n,r,i);throw Error(`[SessionOrchestrator.sendMessage] agent with kind: 'adapter' or 'canonical-model' required when session has no agents (sessionId=${n})`)}async function or(e,t,n,r,i){let a=ot(t.model);if(at(a))throw Error(`[SessionOrchestrator.sendMessage] Invalid canonical model "${t.model}" (sessionId=${n}): ${a.message}`);if(a.kind===`virtual`)throw Error(`[SessionOrchestrator.sendMessage] Virtual canonical models require a host resolver (sessionId=${n})`);let o=await e.request(He.resolve,{parsed:a,context:{sessionId:n,promptText:ne(r),...i===void 0?{}:{sessionContext:i}}});return{...t,...o,kind:`adapter`,providerConfigId:t.providerConfigId??o.providerConfigId}}async function sr(e,t,n){let{adapterName:r,sessionId:i,machineId:a,registry:o}=n,s={adapterId:T(t.adapterId),machineId:T(t.machineId)},c=le(s,{sessionId:i,errorPrefix:`[SessionOrchestrator.sendMessage] `});if(c!==void 0)throw new E(`start-failed`,c);if(s.adapterId===void 0)return{adapterId:await o.resolveAvailable(r,a),machineId:a};let l=await x(e,{adapterName:r,adapterId:s.adapterId,...s.machineId!==void 0&&{machineId:s.machineId}});if(l?.machineId===void 0)throw new E(`start-failed`,`[SessionOrchestrator.sendMessage] agent instance resolution for ${s.adapterId} produced no machine (sessionId=${i})`);return{adapterId:l.adapterId,machineId:l.machineId}}async function cr(e,t,n){let r=await ir(e,t,n.sessionId),i=t.providerConfigId===void 0?void 0:Oe(e,{adapterName:r,providerConfigId:t.providerConfigId});i?.catch(()=>void 0);let a=await sr(e,t,{...n,adapterName:r}),o=await i;return{adapterName:r,instance:a,providerContext:o,providerConfigId:t.providerConfigId??o?.providerConfigId}}const lr=`[session.sendMessage]`;function ur(e,t){for(let n of t)e.add(n)}const dr={droppedAgentIds:new Set,recoveringAgentIds:new Set,arbitratedAgentIds:new Set};var fr=class{bus;turnManager;adapterRegistry;machineId;cleanups=[];constructor(e=Re,t){this.bus=e,this.machineId=t,this.turnManager=new rr(e),this.adapterRegistry=new cn(e),this.cleanups.push(he(this.bus,this.turnManager,t)),this.registerSendMessageHandler(),this.turnManager.registerCompletionHandlers(this.completeTurn.bind(this))}registerSendMessageHandler(){this.cleanups.push(this.bus.on(P.sendMessage,async e=>{let{sessionId:t,message:n,agentIds:r,deliveryMode:i,agent:a,source:o,origin:s}=e.payload,c=we(o,e.payload.extensionId),l=e.payload.sessionContext?Ze.parse(e.payload.sessionContext):void 0,{sessionId:u,session:h}=await p(this.bus,t,l,e.payload.originWindowId,this.machineId),g=await d(this.bus,h);te(lr,u,h,r);let _=new Set(g.recoveringAgentIds),v=new Set(g.arbitratedAgentIds);if(h.agents.length===0){let e=await this.startLeadAgent(h,u,a,n,l);ur(_,e.recoveringAgentIds),ur(v,e.arbitratedAgentIds)}let y=f(h,r);if(y.length===0)throw Error(`[SessionOrchestrator.sendMessage] No valid target agents found (sessionId=${u})`);let ee=await this.recoverDeadTargets(h,y,_,v),b=ee.deferredAgentIds,x=ee.recoveryContext;if(b.size>0){let e=await this.retargetAfterDeferral({session:h,sessionId:u,targetSpec:r,agentSelection:a,message:n,sessionContext:l},y,b);if(y=e.targetAgents,x=e.recoveryContext??x,e.recovering.size>0){let t=await this.recoverDeadTargets(h,y,e.recovering,e.arbitrated);t.deferredAgentIds.size>0&&m(lr,u,t.deferredAgentIds),x=t.recoveryContext??x}}let S=crypto.randomUUID(),re=me(n),C=await this.turnManager.acquireMessageAdmission(u,y.map(e=>e.agentId),S,c,e.payload.turnId),w=C.turn;try{if(!(await this.bus.requestOptional(A.append,{message:{messageId:S,turnId:w.turnId,sessionId:u,role:`user`,contentText:ne(n),blocks:re,timestamp:Date.now(),...s!==void 0&&{origin:s}}})).handled)throw Error(`Message storage append handler is not registered`);C.isPreparationOwner&&await de(this.bus,{sessionId:u,turnId:w.turnId,turnNumber:w.turnNumber,messageId:S,agentIds:[...w.agentIds],initiator:w.initiator,ingestionMarker:`live`}),await ue(this.bus,{sessionId:u,turnId:w.turnId,turnNumber:w.turnNumber,messageId:S,content:n,agentIds:y.map(e=>e.agentId),...o!==void 0&&{source:o},...s!==void 0&&{origin:s}}),C.commit()}catch(e){try{await C.rollback(`user-message-persistence-failed`)}catch(e){console.error(`[SessionOrchestrator] Failed to finalize rejected message setup:`,e)}throw e}for(let e of y)this.bus.requestOptional(G.record,{messageId:S,agentId:e.agentId,status:`sent`,timestamp:Date.now()}).catch(t=>{console.warn(`[SessionOrchestrator] Failed to record message routing`,{sessionId:u,messageId:S,agentId:e.agentId,error:t instanceof Error?t.message:String(t)})});let T=x?{...l,...x}:l;await xe(this.bus,h,y,n,S,w,i,this.completeTurn.bind(this),this.turnManager,T,e.payload.responseSchema),e.setResult({messageId:S,turnId:w.turnId,sessionId:u,...b.size>0&&{deferredAgentIds:[...b]}})}))}async recoverDeadTargets(e,t,n,r){let i=await Promise.all(t.map(async e=>{if(!(n.has(e.agentId)&&!r.has(e.agentId)))return this.bus.requestOptional(Ve.getAgent,{agentId:e.agentId,adapterId:e.adapterId})})),a=[];for(let[e,n]of t.entries()){let t=i[e];if(t===void 0){a.push(n);continue}let o=t.handled?t.data.agent:void 0;if(r.has(n.agentId)){if(o==null){a.push(n);continue}await C(this.bus,n.agentId);continue}t.handled&&o===null&&a.push(n)}let o=new Set;if(a.length===0)return{recoveryContext:void 0,deferredAgentIds:o};let s=be,c=await Te(this.bus,e,s),l=fe(s)??null;for(let e of a)(await Ee(this.bus,e,{resumeProviderSessionId:l,machineId:this.machineId})).deferred&&o.add(e.agentId);return o.size===a.length?{recoveryContext:void 0,deferredAgentIds:o}:{recoveryContext:c,deferredAgentIds:o}}async retargetAfterDeferral(e,t,n){let{session:r,sessionId:i,targetSpec:a}=e,o=t.filter(e=>n.has(e.agentId)),s=b(r,t,n);if(s.length>0)return{targetAgents:s,recovering:dr.recoveringAgentIds,arbitrated:dr.arbitratedAgentIds};_(a)!==`lead-default`&&m(lr,i,n);let c=await this.startLeadAgent(r,i,e.agentSelection??ee(o[0],this.machineId),e.message,e.sessionContext),l=f(r,a);return l.length===0&&m(lr,i,n),{targetAgents:l,recovering:c.recoveringAgentIds,arbitrated:c.arbitratedAgentIds,recoveryContext:await Te(this.bus,r,be)}}async startLeadAgent(e,t,n,r,i){let a=await ar(this.bus,n,t,r,i),{adapterName:o,instance:s,providerContext:c,providerConfigId:l}=await cr(this.bus,a,{sessionId:t,machineId:this.machineId,registry:this.adapterRegistry}),u=await Un(this.bus,{sessionId:t,instance:s,adapterName:o,expectedLeadAgentId:e.leadAgentId??null,...l!==void 0&&{providerConfigId:l},startRequest:pe(a,{adapterId:s.adapterId,sessionId:t,providerContext:c,sessionContext:i})});if(u.outcome===`started`)return e.agents.push(u.agent),e.leadAgentId=u.agent.agentId,dr;let{session:f}=await this.bus.request(P.get,{sessionId:t});if(!f||f.agents.length===0)throw new E(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${u.currentLeadAgentId??`another start`}, which left no agent behind`);e.agents=f.agents,e.leadAgentId=f.leadAgentId;let p=await d(this.bus,e);if(e.agents.length===0)throw new E(`lead-conflict`,`[SessionOrchestrator.sendMessage] lead designation for session ${t} was won by ${u.currentLeadAgentId??`another start`}, whose agent did not survive its start`);return p}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()}},pr=class{bus;constructor(e){this.bus=e}async getTurnSoFarContext(e){try{let{messages:t}=await this.bus.request(A.getByTurn,{turnId:e});return this.convertSessionMessagesToMessages(t)}catch(e){return e instanceof ze||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 mr(e){let{bus:t}=e;return t.on(P.getStatusCounts,async e=>{e.payload;let{all:n,active:r,closed:i,archived:a,discovered:o}=await t.request(O.getStatusCounts,{});e.setResult({all:n,active:r,closed:i,archived:a,discovered:o})})}function hr(e){let{bus:t}=e;return t.on(P.resume,async e=>{let{sessionId:n}=e.payload,{session:r}=await t.request(O.get,{sessionId:n});if(!r||r.status!==`closed`){e.setResult({success:!1});return}r.status=`active`,r.lastActivityAt=Date.now(),await t.request(O.set,{sessionId:n,session:r}),await t.emit(P.resumed,{sessionId:n}),e.setResult({success:!0})})}function gr(e){return e.on(ke.listActions,e=>{let t=S.getAll().map(e=>({id:e.id,label:e.label,description:e.description,category:e.category}));e.setResult({actions:t})})}const _r=[{actionId:`strip-reasoning`},{actionId:`strip-tool-outputs`}];function vr(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 yr=class{bus;agentToSession=new Map;pendingAssistantResponses=new Map;cleanups=[];constructor(e=Re){this.bus=e,this.registerHandlers()}registerHandlers(){this.registerMappingHandlers(),this.registerTurnTrackingHandlers(),this.registerBlockAccumulationHandlers()}registerMappingHandlers(){this.cleanups.push(this.bus.on(P.agent.added,e=>{this.agentToSession.set(e.payload.agentId,e.payload.sessionId)})),this.cleanups.push(this.bus.on(P.closed,e=>{for(let[t,n]of this.agentToSession)n===e.payload.sessionId&&this.agentToSession.delete(t);for(let[t,n]of this.pendingAssistantResponses)n.sessionId===e.payload.sessionId&&this.pendingAssistantResponses.delete(t)}))}registerTurnTrackingHandlers(){this.cleanups.push(this.bus.on(P.turn.started,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.has(i)||this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(P.user_message.sent,e=>{let{sessionId:t,turnId:n,messageId:r,agentIds:i}=e.payload;for(let e of i){let i=this.pendingKey(n,r,e);this.pendingAssistantResponses.set(i,{sessionId:t,turnId:n,messageId:r,agentId:e,blocks:[]})}})),this.cleanups.push(this.bus.on(P.user_message.acknowledged,e=>{let t=this.pendingKey(e.payload.turnId,e.payload.messageId,e.payload.agentId);this.pendingAssistantResponses.has(t)||this.pendingAssistantResponses.set(t,{sessionId:e.payload.sessionId,turnId:e.payload.turnId,messageId:e.payload.messageId,agentId:e.payload.agentId,blocks:[]})})),this.cleanups.push(this.bus.on(P.turn.assistantPersistenceSettled,e=>{let{turnId:t,messageId:n,agentId:r}=e.payload;this.pendingAssistantResponses.delete(this.pendingKey(t,n,r))})),this.cleanups.push(this.bus.on(P.turn.completed,e=>{let{sessionId:t,turnId:n}=e.payload;for(let[e,r]of this.pendingAssistantResponses)r.sessionId===t&&r.turnId===n&&this.pendingAssistantResponses.delete(e)}))}registerBlockAccumulationHandlers(){this.cleanups.push(this.bus.on(M.message,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`text`,content:e.payload.content})})),this.cleanups.push(this.bus.on(M.reasoning,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`reasoning`,content:e.payload.content})})),this.cleanups.push(this.bus.on(M.tool.use,e=>{let t=this.pendingForProviderEvent(e.payload);t&&t.blocks.push({type:`tool_call`,toolCallId:e.payload.toolCallId,name:e.payload.toolName,args:e.payload.args??{}})})),this.cleanups.push(this.bus.on(M.tool.completed,e=>{let t=this.pendingForProviderEvent(e.payload);if(t){let n=e.payload.result,r=typeof n==`string`?n:JSON.stringify(n);t.blocks.push({type:`tool_output`,toolCallId:e.payload.toolCallId,output:r,isError:e.payload.success===!1})}})),this.cleanups.push(this.bus.on(M.complete,async e=>{if(e.payload._import){let{turnId:t,messageId:n,agentId:r}=e.payload;t&&this.pendingAssistantResponses.delete(this.pendingKey(t,n,r));return}let{agentId:t,adapterSessionId:n,outcome:r,error:i,message:a,structuredOutputValidation:o,turnId:s,messageId:c}=e.payload;if(!s)return;let l=this.pendingKey(s,c,t),u=this.pendingAssistantResponses.get(l);if(u){this.pendingAssistantResponses.delete(l);try{await this.storeAssistantMessage(u,r===`error`?void 0:n,r===`error`?i:void 0,o===void 0?void 0:{content:a})}finally{await this.bus.emit(P.turn.assistantPersistenceSettled,{sessionId:u.sessionId,turnId:u.turnId,agentId:t,messageId:u.messageId})}}}))}async storeAssistantMessage(e,t,n,r){let i=r===void 0?e.blocks:r.content===void 0?[]:[{type:`text`,content:r.content}];if(i.length===0&&!n)return;let a=i.filter(e=>e.type===`text`).map(e=>e.content).join(`
|
|
2
|
-
`),o=crypto.randomUUID();try{if(!(await this.bus.requestOptional(A.append,{message:{messageId:o,turnId:e.turnId,sessionId:e.sessionId,role:`assistant`,contentText:a||(n?`[Error: ${n}]`:``),blocks:i,agentId:e.agentId,adapterSessionId:t,timestamp:Date.now()}})).handled)return;let r=await this.bus.requestOptional(A.getByTurn,{turnId:e.turnId});if(r.handled){let t=r.data.messages.find(t=>t.role===`user`&&t.messageId===e.messageId);t&&await this.bus.requestOptional(G.record,{messageId:t.messageId,agentId:e.agentId,status:`completed`,timestamp:Date.now(),error:n})}}catch(e){console.error(`[SessionBridge] Failed to store assistant message:`,e)}}destroy(){for(let e of this.cleanups)e();this.cleanups.length=0,this.agentToSession.clear(),this.pendingAssistantResponses.clear()}pendingForProviderEvent(e){if(!(!e.turnId||!e.messageId))return this.pendingAssistantResponses.get(this.pendingKey(e.turnId,e.messageId,e.agentId))}pendingKey(e,t,n){return JSON.stringify([e,t,n])}},br=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(P.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(P.fork,{sourceSessionId:this._sessionId,name:e.reason})).sessionId}async merge(e,t){await this.bus.request(P.merge,{parentSessionId:this._sessionId,childSessionId:e,summary:t,source:`extension`,extensionId:this._extensionId})}async abandon(e){await this.bus.request(P.abandon,{parentSessionId:this._sessionId,childSessionId:e,source:`extension`,extensionId:this._extensionId})}async requestCompression(e){await this.bus.emit(P.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(P.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(P.getChildren,{sessionId:this._sessionId})).children.map(e=>e.sessionId)}};function xr(e,t,n,r,i,a){return new br(e,t,n,r,i,a)}const Sr=a.postgres,Cr=r.postgres,wr=t.postgres,K=yt({sessions:i,agents:n,adapterSessionClaims:e},{sessions:Sr,agents:Cr,adapterSessionClaims:wr});function Tr(e,t){let n=e?.clientId??null,r=e?.clientAccountId??null,i=e?.lastClientIdentityObservation??null;return R(n===null?U(t.clientId):V(t.clientId,n),r===null?U(t.clientAccountId):V(t.clientAccountId,r),i===null?U(t.lastClientIdentityObservation):V(t.lastClientIdentityObservation,i))}function Er(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,allowedDirectories:e.allowedDirectories??void 0,providerConfigId:e.providerConfigId??void 0,personaId:e.personaId??void 0,profileId:e.profileId??void 0,harnessId:e.harnessId??void 0,clientId:e.clientId??void 0,compressionMode:e.compressionMode?Ge.parse(e.compressionMode):void 0,currentAdapterSessionId:e.currentAdapterSessionId??void 0,currentAdapterSessionIdState:e.currentAdapterSessionIdState,revision:e.revision,currencyFence:e.currencyFence}}function Dr(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,allowedDirectories:e.allowedDirectories??null,providerConfigId:e.providerConfigId??null,personaId:e.personaId??null,profileId:e.profileId??null,harnessId:e.harnessId??null,clientId:e.clientId??null,compressionMode:e.compressionMode??null}}function Or(e,t){let{adapterSessionId:n,status:r,...i}=e;return{...i,status:W`CASE WHEN ${t.status} = 'disposed' THEN ${t.status} ELSE excluded.status END`}}function kr(e){let t;for(let n=e.length-1;n>=0;--n)try{e[n]?.()}catch(e){t??=e}if(t)throw t}function Ar(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.get,async e=>{let[t]=await n.select().from(r).where(V(r.agentId,e.payload.agentId)).limit(1);e.setResult({agent:t?Er(t):null})})}function jr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.set,async e=>{let{agent:t}=e.payload,i=Dr(t),a=await n.insert(r).values(i).onConflictDoUpdate({target:r.agentId,set:Or(i,r)});e.setResult({success:I(a)})})}function Mr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.delete,async e=>{let t=await n.delete(r).where(V(r.agentId,e.payload.agentId));e.setResult({success:I(t)})})}function Nr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.listByAdapter,async e=>{let{adapterName:t,status:i}=e.payload,a=[V(r.adapterName,t)];i&&i!==`all`&&a.push(V(r.status,i));let o=a.length>1?R(...a):a[0],s=await n.select().from(r).where(o);e.setResult({agents:s.map(Er)})})}function Pr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.listBySession,async e=>{let{sessionId:t}=e.payload,i=await n.select().from(r).where(V(r.sessionId,t));e.setResult({agents:i.map(Er)})})}function Fr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateStatus,async e=>{let{agentId:t,status:i,expectedStatus:a}=e.payload,o=Date.now(),s=[V(r.agentId,t),At(r.status,`disposed`)];if(a&&s.push(H(r.status,a)),I(await n.update(r).set({status:i,lastActivityAt:o}).where(R(...s)))){e.setResult({success:!0,transitioned:!0});return}let[c]=await n.select({agentId:r.agentId}).from(r).where(V(r.agentId,t)).limit(1);e.setResult({success:c!==void 0,transitioned:!1})})}function Ir(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateActivity,async e=>{let{agentId:t,lastActivityAt:i}=e.payload,a=await n.update(r).set({lastActivityAt:i}).where(V(r.agentId,t));e.setResult({success:I(a)})})}function Lr(e){let{bus:t,db:n}=e,{agents:r}=L(n,K);return t.on(k.updateRuntime,async e=>{let{agentId:t,adapterId:i,adapterSessionId:a,cwd:o,model:s,allowedDirectories:c,providerConfigId:l}=e.payload,u={lastActivityAt:Date.now()};i!==void 0&&(u.adapterId=i),a!==void 0&&(u.adapterSessionId=a),o!==void 0&&(u.cwd=o),s!==void 0&&(u.model=s),c!==void 0&&(u.allowedDirectories=c),l!==void 0&&(u.providerConfigId=l);let d=await n.update(r).set(u).where(V(r.agentId,t));e.setResult({success:I(d)})})}function Rr(e,t){let n={bus:e,db:t},r=[Ar(n),jr(n),Mr(n),Nr(n),Pr(n),Fr(n),Ir(n),Lr(n)];return()=>kr(r)}function q(e){return e??void 0}function zr(e){if(e)try{let t=JSON.parse(e),n=Pt.safeParse(t);return n.success?n.data:void 0}catch{return}}function Br(e){if(e)try{let t=JSON.parse(e),n=qe.safeParse(t);return n.success?n.data:void 0}catch{return}}function J(e,t){let n=Br(e.forkTransforms),r=zr(e.lastClientIdentityObservation);return{sessionId:e.sessionId,createdAt:e.createdAt,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),currentAdapterSessionId:q(e.currentAdapterSessionId),currentAdapterSessionIdState:e.currentAdapterSessionIdState,adapterId:q(e.adapterId),clientId:q(e.clientId),clientAccountId:q(e.clientAccountId),lastClientIdentityObservation:r,isOrchestrated:q(e.isOrchestrated),isImported:q(e.isImported),title:q(e.title),summary:q(e.summary),summaryUpdatedAt:q(e.summaryUpdatedAt),forkTransforms:n,targetWorkingDirectory:q(e.targetWorkingDirectory),executionTargetId:q(e.executionTargetId),agents:t.map(Er),approvalPolicyOverride:q(e.approvalPolicyOverride),metadata:q(e.metadata),spawningToolCallId:q(e.spawningToolCallId),source:q(e.source),parentExternalSessionId:q(e.parentExternalSessionId),logFilePath:q(e.logFilePath),discoveredAt:q(e.discoveredAt),importStatus:q(e.importStatus),isSidechain:q(e.isSidechain),machineId:q(e.machineId)}}function Vr(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 Hr(e,t,n){if(!n||t.length===0)return{};let{messages:r}=L(e,c),i=e.select({sessionId:r.sessionId,minTimestamp:W`MIN(${r.timestamp})`.as(`min_timestamp`)}).from(r).where(R(V(r.role,`user`),H(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,R(V(r.sessionId,i.sessionId),V(r.timestamp,i.minTimestamp))).where(V(r.role,`user`)),o=new Map;for(let e of a)o.has(e.sessionId)||o.set(e.sessionId,e.preview);let s=await e.select({sessionId:r.sessionId,count:B()}).from(r).where(H(r.sessionId,t)).groupBy(r.sessionId),l=new Map;for(let e of s)l.set(e.sessionId,e.count);return{previewBySession:o,countBySession:l}}function Ur(e,t){return{sessionId:e.sessionId,clientId:t.clientId??e.clientId,clientAccountId:t.clientAccountId??e.clientAccountId,lastClientIdentityObservation:t.lastClientIdentityObservation??e.lastClientIdentityObservation}}function Wr(e){return e.clientId!==void 0||e.clientAccountId!==void 0||e.lastClientIdentityObservation!==void 0}function Gr(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.getByAdapterSessionId,async e=>{let{adapterSessionId:t,source:a,adapterName:o}=e.payload,s=[V(r.adapterSessionId,t)];a!==void 0&&s.push(V(r.source,a)),o!==void 0&&s.push(V(r.adapterName,o));let c=await n.select().from(r).where(R(...s)).limit(2),l=c[0];if(c.length!==1||l===void 0){e.setResult({session:null});return}let u=await n.select().from(i).where(V(i.sessionId,l.sessionId));e.setResult({session:J(l,u)})})}function Kr(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K),{messages:i}=L(n,c);return t.on(O.getChildren,async e=>{let{sessionId:t}=e.payload,a=await n.select().from(r).where(V(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:B()}).from(i).where(H(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:B()}).from(r).where(H(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(R(V(i.sessionId,t),H(i.adapterMessageId,d)));for(let t of e)t.adapterMessageId&&f.set(t.adapterMessageId,t.messageId)}let p=a.map(e=>{let t=e.forkPointMessageId,n=t?f.get(t)??t:null;return{sessionId:e.sessionId,title:e.title??null,forkPointMessageId:n,branchKind:e.branchKind??null,messageCount:c.get(e.sessionId)??0,hasChildren:u.has(e.sessionId),spawningToolCallId:e.spawningToolCallId??void 0}});e.setResult({children:p})})}function qr(e){return{...e.cwd===void 0?{}:{targetWorkingDirectory:e.cwd},...e.logFilePath===void 0?{}:{logFilePath:e.logFilePath},...e.machineId===void 0?{}:{machineId:e.machineId}}}function Jr(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.rebindObserved,async e=>{let i=e.payload,a=R(V(r.source,i.source),V(r.adapterSessionId,i.externalSessionId)),o=qr(i),s=Object.keys(o),[c]=s.length===0?await n.select({sessionId:r.sessionId}).from(r).where(a).limit(1):await n.update(r).set(o).where(a).returning({sessionId:r.sessionId});if(!c){e.setResult({outcome:`not-found`});return}e.setResult({outcome:`rebound`,sessionId:c.sessionId}),s.length>0&&t.emit(P.updated,{sessionId:c.sessionId,changedProperties:s}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))})}const Yr=Pe();function Xr(e){return e?JSON.stringify(e):null}function Zr(e,t){return W`
|
|
3
|
-
SELECT ${t}.key AS key,
|
|
4
|
-
CASE ${t}.type
|
|
5
|
-
WHEN 'object' THEN ${t}.value
|
|
6
|
-
WHEN 'array' THEN ${t}.value
|
|
7
|
-
WHEN 'true' THEN 'true'
|
|
8
|
-
WHEN 'false' THEN 'false'
|
|
9
|
-
WHEN 'null' THEN 'null'
|
|
10
|
-
WHEN 'text' THEN json_quote(${t}.value)
|
|
11
|
-
ELSE CAST(${t}.value AS TEXT)
|
|
12
|
-
END AS vjson
|
|
13
|
-
FROM json_each(${e}) AS ${t}
|
|
14
|
-
`}function Qr(e,t){let n=t===`postgres`?W`excluded.metadata || ${e.metadata}`:W`(
|
|
15
|
-
SELECT json_group_object(mk.key, json(mk.vjson)) FROM (
|
|
16
|
-
${Zr(W`excluded.metadata`,W`inc`)}
|
|
17
|
-
WHERE inc.key NOT IN (SELECT ex2.key FROM json_each(${e.metadata}) AS ex2)
|
|
18
|
-
UNION ALL
|
|
19
|
-
${Zr(W`${e.metadata}`,W`ex`)}
|
|
20
|
-
) AS mk
|
|
21
|
-
)`;return W`
|
|
22
|
-
CASE
|
|
23
|
-
WHEN ${e.metadata} IS NULL THEN excluded.metadata
|
|
24
|
-
WHEN excluded.metadata IS NULL THEN ${e.metadata}
|
|
25
|
-
ELSE ${n}
|
|
26
|
-
END
|
|
27
|
-
`}function $r(e,t,n){return t===void 0?W`${e}`:W`
|
|
28
|
-
CASE
|
|
29
|
-
WHEN ${n.discoveredAt} IS NULL OR ${e} = ${n.discoveredAt} THEN ${t}
|
|
30
|
-
ELSE ${e}
|
|
31
|
-
END
|
|
32
|
-
`}function ei(e){return W`
|
|
33
|
-
CASE
|
|
34
|
-
WHEN ${e.importStatus} = 'imported' OR excluded.import_status = 'imported' THEN 'imported'
|
|
35
|
-
WHEN ${e.importStatus} = 'tracking' OR excluded.import_status = 'tracking' THEN 'tracking'
|
|
36
|
-
ELSE COALESCE(${e.importStatus}, excluded.import_status, 'discovered')
|
|
37
|
-
END
|
|
38
|
-
`}function ti(e,t){return t===`live`?W`
|
|
39
|
-
CASE
|
|
40
|
-
WHEN ${e.status} = 'discovered' THEN 'active'
|
|
41
|
-
ELSE ${e.status}
|
|
42
|
-
END
|
|
43
|
-
`:W`
|
|
44
|
-
CASE
|
|
45
|
-
WHEN ${e.status} IN ('closed', 'archived') THEN ${e.status}
|
|
46
|
-
WHEN ${e.status} = 'active' AND ${e.isImported} = TRUE THEN ${e.status}
|
|
47
|
-
WHEN ${ei(e)} = 'discovered' THEN excluded.status
|
|
48
|
-
ELSE ${e.status}
|
|
49
|
-
END
|
|
50
|
-
`}function ni(e,t,n,r,i){return{status:ti(e,i),isImported:!0,importStatus:ei(e),adapterName:W`COALESCE(${e.adapterName}, excluded.adapter_name)`,discoveredAt:W`COALESCE(${e.discoveredAt}, excluded.discovered_at)`,source:W`COALESCE(${e.source}, excluded.source)`,logFilePath:W`COALESCE(${e.logFilePath}, excluded.log_file_path)`,targetWorkingDirectory:W`COALESCE(excluded.target_working_directory, ${e.targetWorkingDirectory})`,title:W`COALESCE(excluded.title, ${e.title})`,forkPointMessageId:W`COALESCE(${e.forkPointMessageId}, excluded.fork_point_message_id)`,parentExternalSessionId:W`COALESCE(${e.parentExternalSessionId}, excluded.parent_external_session_id)`,branchKind:W`COALESCE(${e.branchKind}, excluded.branch_kind)`,adapterId:W`COALESCE(excluded.adapter_id, ${e.adapterId})`,clientId:W`COALESCE(excluded.client_id, ${e.clientId})`,isSidechain:W`COALESCE(excluded.is_sidechain, ${e.isSidechain})`,lastClientIdentityObservation:W`COALESCE(excluded.last_client_identity_observation, ${e.lastClientIdentityObservation})`,machineId:r===void 0?W`${e.machineId}`:r===null?W`NULL`:W`COALESCE(${e.machineId}, excluded.machine_id)`,metadata:Qr(e,n),createdAt:$r(e.createdAt,t,e),lastActivityAt:$r(e.lastActivityAt,t,e)}}function ri(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K),{dialect:i}=St(n);return t.on(O.importUpsert,async e=>{let a=e.payload,{externalSessionId:o,source:s,clientId:c,adapterId:l,cwd:u,logFilePath:d,startedAt:f,title:p,kind:m,parentAdapterSessionId:h,forkPointMessageId:g,metadata:_,lastClientIdentityObservation:v,importStatus:y,isSidechain:ee,machineId:te,activation:ne}=a,b=Yr(),x=crypto.randomUUID(),S=f??b,re=Fe(m)??null,C=h??null,[w]=await n.insert(r).values({sessionId:x,status:Ae(a),isImported:!0,importStatus:y??`discovered`,adapterName:s,adapterSessionId:o,source:s??null,clientId:c??null,adapterId:l??null,targetWorkingDirectory:u??null,logFilePath:d??null,forkPointMessageId:g??null,branchKind:re,parentExternalSessionId:C,discoveredAt:b,title:p??null,metadata:_??null,lastClientIdentityObservation:Xr(v),isSidechain:ee??null,machineId:te??null,createdAt:S,lastActivityAt:S}).onConflictDoUpdate({target:[r.source,r.adapterSessionId],set:ni(r,f,i,te,ne)}).returning({sessionId:r.sessionId,discoveredAt:r.discoveredAt,parentExternalSessionId:r.parentExternalSessionId,parentSessionId:r.parentSessionId}),T=w.sessionId===x;await ii(t,n,w,T,re,S,s),e.setResult({sessionId:w.sessionId,created:T})})}async function ii(e,t,n,r,i,a,o){if(r){let r=await ai(t,n.sessionId,n.parentExternalSessionId,o);e.emit(P.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 ai(t,n.sessionId,n.parentExternalSessionId,o),e.emit(P.updated,{sessionId:n.sessionId,changedProperties:[`source`,`targetWorkingDirectory`,`title`]}).catch(e=>console.error(`[SessionStorage] Failed to emit session.updated:`,e))}async function ai(e,t,n,r){let{sessions:i}=L(e,K);if(n===null||r===void 0)return null;let[a]=await e.select({sessionId:i.sessionId,rootSessionId:i.rootSessionId}).from(i).where(R(V(i.adapterSessionId,n),V(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(V(i.sessionId,t)),a.sessionId}function oi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.getByLogFilePath,async e=>{let{logFilePath:t}=e.payload,[a]=await n.select().from(r).where(V(r.logFilePath,t)).limit(1);if(!a){e.setResult({session:null});return}let o=await n.select().from(i).where(V(i.sessionId,a.sessionId));e.setResult({session:J(a,o)})})}function si(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.listImported,async e=>{let{source:t,importStatus:a}=e.payload,o=[V(r.isImported,!0)];t!==void 0&&o.push(V(r.source,t)),a!==void 0&&o.push(V(r.importStatus,a));let s=R(...o),c=await n.select().from(r).where(s).orderBy(Tt(r.createdAt));if(c.length===0){e.setResult({sessions:[]});return}let l=c.map(e=>e.sessionId),u=Vr(await n.select().from(i).where(H(i.sessionId,l)));e.setResult({sessions:c.map(e=>J(e,u.get(e.sessionId)??[]))})})}function ci(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.countBySource,async e=>{let{source:t}=e.payload,i=await n.select({importStatus:r.importStatus,count:W`count(*)`}).from(r).where(R(V(r.isImported,!0),V(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 li(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.updateImportStatus,async e=>{let{sessionId:i,importStatus:a}=e.payload,o=a===`imported`?{status:W`
|
|
51
|
-
CASE
|
|
52
|
-
WHEN ${r.status} = 'discovered' THEN 'active'
|
|
53
|
-
ELSE ${r.status}
|
|
54
|
-
END
|
|
55
|
-
`}:{},[s]=await n.update(r).set({importStatus:a,...o}).where(R(V(r.sessionId,i),Mt(U(r.importStatus),W`${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(P.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(P.import.completed,{sessionId:i,adapterSessionId:s.adapterSessionId,source:e}).catch(e=>console.error(`[SessionStorage] Failed to emit session.import.completed:`,e))}})}function ui(e,t){let n={bus:e,db:t};return[ri(n),Jr(n),oi(n),si(n),ci(n),li(n)]}function Y(e){return e??null}function di(e){return e?JSON.stringify(e):null}function fi(e){return{lastActivityAt:e.lastActivityAt,status:e.status,leadAgentId:Y(e.leadAgentId),parentSessionId:Y(e.parentSessionId),contextInheritance:Y(e.contextInheritance),rootSessionId:Y(e.rootSessionId),forkPointMessageId:Y(e.forkPointMessageId),branchKind:Y(e.branchKind),adapterName:Y(e.adapterName),adapterSessionId:Y(e.adapterSessionId),adapterId:Y(e.adapterId),clientId:Y(e.clientId),clientAccountId:Y(e.clientAccountId),lastClientIdentityObservation:mi(e.lastClientIdentityObservation),isOrchestrated:e.isOrchestrated??!1,isImported:e.isImported??!1,title:Y(e.title),summary:Y(e.summary),summaryUpdatedAt:Y(e.summaryUpdatedAt),forkTransforms:di(e.forkTransforms),targetWorkingDirectory:Y(e.targetWorkingDirectory),executionTargetId:Y(e.executionTargetId),approvalPolicyOverride:Y(e.approvalPolicyOverride),metadata:Y(e.metadata),spawningToolCallId:Y(e.spawningToolCallId),source:Y(e.source),parentExternalSessionId:Y(e.parentExternalSessionId),logFilePath:Y(e.logFilePath),discoveredAt:Y(e.discoveredAt),importStatus:Y(e.importStatus),machineId:Y(e.machineId)}}function pi(e){let{leadAgentId:t,...n}=e;return n}function mi(e){return e?JSON.stringify(e):null}function X(e,t,n){n!==void 0&&(e[t]=n)}function hi(e,t,n){n!==void 0&&(e[t]=n??null)}function gi(e,t){let n={};return X(n,`status`,e.status),X(n,`parentSessionId`,e.parentSessionId),X(n,`contextInheritance`,e.contextInheritance),X(n,`rootSessionId`,e.rootSessionId),X(n,`forkPointMessageId`,e.forkPointMessageId),X(n,`branchKind`,e.branchKind),X(n,`isOrchestrated`,e.isOrchestrated),X(n,`clientId`,e.clientId),X(n,`clientAccountId`,e.clientAccountId),X(n,`title`,e.title),X(n,`targetWorkingDirectory`,e.targetWorkingDirectory),X(n,`createdAt`,e.createdAt),X(n,`lastActivityAt`,e.lastActivityAt),X(n,`machineId`,e.machineId),e.identity!==void 0&&(n.adapterName=e.identity.adapterName,n.adapterId=e.identity.adapterId,X(n,`adapterSessionId`,e.identity.adapterSessionId)),hi(n,`executionTargetId`,e.executionTargetId),hi(n,`approvalPolicyOverride`,e.approvalPolicyOverride),hi(n,`metadata`,e.metadata),e.spawningToolCallId===null?n.spawningToolCallId=null:e.spawningToolCallId!==void 0&&(n.spawningToolCallId=W`coalesce(${t.spawningToolCallId}, ${e.spawningToolCallId})`),e.lastClientIdentityObservation!==void 0&&(n.lastClientIdentityObservation=mi(e.lastClientIdentityObservation)),n}function _i(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.get,async e=>{let[t]=await n.select().from(r).where(V(r.sessionId,e.payload.sessionId)).limit(1);if(!t){e.setResult({session:null});return}let a=await n.select().from(i).where(V(i.sessionId,e.payload.sessionId));e.setResult({session:J(t,a)})})}function vi(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.set,async e=>{let{sessionId:i,session:a,ifAbsent:o}=et.parse(e.payload),s=fi(a);if(o){Ne(null,a);let o=I(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoNothing());e.setResult({success:o,clientAccountChanged:o&&a.clientAccountId!==void 0}),o&&Ie(t,null,a);return}for(let o=0;o<3;o++){let[o]=await n.select().from(r).where(V(r.sessionId,i)).limit(1),c=o?J(o,[]):null;if(Ne(c,a),I(await n.insert(r).values({sessionId:i,createdAt:a.createdAt,...s}).onConflictDoUpdate({target:r.sessionId,set:pi(s),setWhere:Tr(o,r)}))){e.setResult({success:!0,clientAccountChanged:(c?.clientAccountId??null)!==(a.clientAccountId??null)}),Ie(t,c,a);return}}throw Error(`Failed to write session "${i}" with a stable client-account baseline`)})}function yi(e){let{bus:t,db:n}=e,{sessions:r,agents:i,adapterSessionClaims:a}=L(n,K);return t.on(O.delete,async e=>{let{sessionId:t}=e.payload;await xt(n,async e=>{await e.delete(i).where(V(i.sessionId,t)),await e.delete(a).where(V(a.sessionId,t)),await e.delete(r).where(V(r.sessionId,t))}),e.setResult({success:!0})})}function bi(e,t){return e===void 0?void 0:H(t.status,e)}function xi(e,t){if(e!==void 0)return R(U(t.adapterName),U(t.adapterId),e===null?U(t.leadAgentId):V(t.leadAgentId,e))}function Si(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.update,async e=>{let i=tt.request.parse(e.payload),{sessionId:a}=i,o=gi(i,r),s=Wr(i);if(Object.keys(o).length===0){e.setResult({success:!0,clientAccountChanged:!1});return}let c=bi(i.expectedStatus,r),l=xi(i.expectIdentityOpenForLead,r);if(!s){let t=await n.update(r).set(o).where(R(V(r.sessionId,a),c,l));e.setResult({success:I(t),clientAccountChanged:!1});return}for(let s=0;s<3;s++){let[s]=await n.select().from(r).where(V(r.sessionId,a)).limit(1);if(!s){e.setResult({success:!1,clientAccountChanged:!1});return}let u=J(s,[]),d=Ur(u,i);if(Ne(u,d),i.expectedStatus!==void 0&&!i.expectedStatus.includes(u.status)){e.setResult({success:!1,clientAccountChanged:!1});return}if(Me(u,i)){e.setResult({success:!1,clientAccountChanged:!1});return}if(I(await n.update(r).set(o).where(R(V(r.sessionId,a),c,l,Tr(s,r))))){e.setResult({success:!0,clientAccountChanged:(u.clientAccountId??null)!==(d.clientAccountId??null)}),Ie(t,u,d);return}}throw Error(`Failed to update session "${a}" with a stable client-account baseline`)})}function Ci(e,t){let n=[];return e.status!==`all`&&n.push(V(t.status,e.status)),e.executionTargetId!==void 0&&n.push(V(t.executionTargetId,e.executionTargetId)),R(...n)}function wi(e){let{bus:t,db:n}=e,{sessions:r,agents:i}=L(n,K);return t.on(O.list,async e=>{let{status:t=`all`,limit:a,offset:o=0,includePreview:s=!1,executionTargetId:c}=e.payload,l=Ci({status:t,executionTargetId:c},r),u=l?n.select().from(r).where(l):n.select().from(r),d=a===void 0?await u.orderBy(Tt(r.lastActivityAt)):await u.orderBy(Tt(r.lastActivityAt)).limit(a).offset(o),[f]=await(l?n.select({count:B()}).from(r).where(l):n.select({count:B()}).from(r)),p=f?.count??0;if(d.length===0){e.setResult({sessions:[],total:p});return}let m=d.map(e=>e.sessionId),h=Vr(await n.select().from(i).where(H(i.sessionId,m))),{previewBySession:g,countBySession:_}=await Hr(n,m,s),v=d.map(e=>{let t=J(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 Ti(e){let{bus:t,db:n}=e,{sessions:r}=L(n,K);return t.on(O.getStatusCounts,async e=>{e.payload;let t=await n.select({status:r.status,count:B()}).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 Ei(e,t){let n={bus:e,db:t},r=[_i(n),vi(n),yi(n),Si(n),wi(n),Kr(n),Gr(n),Ti(n),...ui(e,t)];return()=>r.forEach(e=>e())}async function Di(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(R(V(r.machineId,n.machineId),V(r.adapterId,n.adapterId),V(r.providerSessionId,n.providerSessionId))).limit(1);return i}async function Oi(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.select().from(r).where(V(r.claimToken,n)).limit(1);return i}async function ki(e,t,n){let{agents:r}=t,[i]=await e.select().from(r).where(V(r.agentId,n)).limit(1);return i}async function Ai(e,t,n){let{sessions:r}=t,[i]=await e.select({leadAgentId:r.leadAgentId}).from(r).where(V(r.sessionId,n)).limit(1);return i===void 0?void 0:i.leadAgentId??null}async function ji(e,t,n){let{agents:r}=t,[i]=await e.update(r).set({currencyFence:r.currencyFence}).where(V(r.agentId,n)).returning();return i}function Z(e){return W`cast(${e} as text)`}function Mi(e){return W`cast(${e} as bigint)`}function Ni(e){return W`cast(${e} as integer)`}function Pi(e,t){return W`(case when ${e} > ${t} then ${e} else ${t} end)`}function Fi(e,t){let{adapterSessionClaims:n}=e;return W`coalesce((select max(${n.fence}) from ${n}
|
|
56
|
-
where ${V(n.agentId,t)}), 0)`}function Ii(e,t){let{agents:n}=e;return W`coalesce((select ${n.currencyFence} from ${n}
|
|
57
|
-
where ${V(n.agentId,t)}), 0)`}function Li(e,t,n){return W`1 + ${Pi(n,Fi(e,t))}`}function Ri(e,t,n){return Li(e,t,Pi(Ni(n),Ii(e,t)))}function Q(e){return{claimId:e.claimId,machineId:e.machineId,adapterId:e.adapterId,adapterName:e.adapterName,providerSessionId:e.providerSessionId,sessionId:e.sessionId,agentId:e.agentId,claimToken:e.claimToken,fence:e.fence,status:e.status,claimedAt:e.claimedAt,updatedAt:e.updatedAt}}function zi(e){return{adapterSessionId:e.adapterSessionId??null,currentAdapterSessionId:e.currentAdapterSessionId??null,currentAdapterSessionIdState:e.currentAdapterSessionIdState}}function Bi(e,t,n,r){let{agents:i}=e;return W`exists (select 1 from ${i} where ${R(V(i.agentId,t),V(i.sessionId,n),...r===`live`?[At(i.status,`disposed`)]:[])})`}function Vi(e,t,n,r){let{agents:i,sessions:a}=e,o={claimId:Z(n),machineId:Z(t.machineId),adapterId:Z(t.adapterId),adapterName:Z(t.adapterName),providerSessionId:Z(t.providerSessionId),sessionId:Z(t.sessionId),agentId:Z(t.agentId),claimToken:Z(t.claimToken),fence:Li(e,t.agentId,W`${i.currencyFence}`),status:Z(`held`),claimedAt:Mi(r),updatedAt:Mi(r)};return W`select ${W.join(Object.values(o),W`, `)} from ${i}
|
|
58
|
-
where ${V(i.agentId,t.agentId)}
|
|
59
|
-
and ${V(i.sessionId,t.sessionId)}
|
|
60
|
-
and ${At(i.status,`disposed`)}
|
|
61
|
-
and exists (select 1 from ${a} where ${V(a.sessionId,t.sessionId)})`}function Hi(e,t){let{agents:n,sessions:r}=e,i=V(n.agentId,t),a=e=>W`(select ${e} from ${n} where ${i})`,o=a(W`${n.currentAdapterSessionIdState}`),s=a(W`${n.currentAdapterSessionId}`),c=a(W`${n.adapterSessionId}`),l=W`${r.adapterSessionId}`,u=W`(${c} = ${l} or (${c} is null and ${l} is null))`;return{currentAdapterSessionId:W`(case
|
|
62
|
-
when ${o} <> 'inherited' then ${s}
|
|
63
|
-
when ${u} then null
|
|
64
|
-
when ${c} is null then null
|
|
65
|
-
else ${c} end)`,currentAdapterSessionIdState:W`(case
|
|
66
|
-
when ${o} <> 'inherited' then ${o}
|
|
67
|
-
when ${u} then ${Z(`inherited`)}
|
|
68
|
-
when ${c} is null then ${Z(`moved`)}
|
|
69
|
-
else ${Z(`confirmed`)} end)`}}function Ui(e,t){let{adapterSessionClaims:n}=e,r=[V(n.machineId,t.machineId)];return t.adapterId!==void 0&&r.push(V(n.adapterId,t.adapterId)),t.providerSessionId!==void 0&&r.push(V(n.providerSessionId,t.providerSessionId)),t.statuses!==void 0&&r.push(H(n.status,t.statuses)),r}function Wi(e,t){let{agents:n,adapterSessionClaims:r}=e,{target:i}=t,a=W`(${i.currentAdapterSessionId===null?U(n.currentAdapterSessionId):V(n.currentAdapterSessionId,i.currentAdapterSessionId)} and ${V(n.currentAdapterSessionIdState,i.currentAdapterSessionIdState)} and ${V(n.currencyFence,t.fence)})`;return R(V(n.agentId,t.agentId),At(n.status,`disposed`),V(n.revision,t.expectedRevision),kt(n.currencyFence,t.fence),W`exists (select 1 from ${r} where ${R(V(r.claimToken,t.claimToken),V(r.agentId,t.agentId),V(r.sessionId,n.sessionId),V(r.status,`held`),V(r.fence,t.fence))})`,jt(a))}function Gi(e,t,n){if(t.status===`disposed`)return{outcome:`agent-disposed`};if(e===void 0||e.agentId!==n.agentId||e.sessionId!==t.sessionId||e.status!==`held`||e.fence!==n.fence)return{outcome:`not-owner`};if(n.fence<t.currencyFence)return{outcome:`superseded`,currentFence:t.currencyFence};let r=zi(t);return r.currentAdapterSessionId===n.target.currentAdapterSessionId&&r.currentAdapterSessionIdState===n.target.currentAdapterSessionIdState&&t.currencyFence===n.fence?{outcome:`idempotent`,revision:t.revision,currency:r,sessionSnapshotUpdated:!1}:{outcome:`currency-changed`,revision:t.revision,currency:r}}async function Ki(e,t,n){let r=await ki(e,t,n.agentId);return r===void 0?{outcome:`not-found`}:Gi(await Oi(e,t,n.claimToken),r,n)}async function qi(e,t,n){let{adapterSessionClaims:r}=t;return(await e.update(r).set({updatedAt:r.updatedAt}).where(V(r.claimToken,n)).returning({claimId:r.claimId})).length>0}async function Ji(e,t,n){let{agents:r,sessions:i}=t,{target:a}=n,[o]=await e.update(r).set({currentAdapterSessionId:a.currentAdapterSessionId,currentAdapterSessionIdState:a.currentAdapterSessionIdState,currencyFence:n.fence,revision:n.expectedRevision+1,lastActivityAt:Date.now()}).where(Wi(t,n)).returning();if(o===void 0)return Ki(e,t,n);let s=await e.update(i).set({...Hi(t,n.agentId)}).where(R(V(i.sessionId,o.sessionId),V(i.leadAgentId,n.agentId))).returning({sessionId:i.sessionId});return{outcome:`settled`,revision:n.expectedRevision+1,currency:{adapterSessionId:o.adapterSessionId??null,...a},sessionSnapshotUpdated:s.length>0}}async function Yi(e,t){let n=L(e,K);return xt(e,async e=>await ji(e,n,t.agentId)===void 0?{outcome:`not-found`}:await qi(e,n,t.claimToken)?Ji(e,n,t):Ki(e,n,t))}async function Xi(e,t,n){if(await Ai(e,t,n.sessionId)===void 0)return{kind:`refused`,result:{outcome:`not-found`,missing:`session`}};let r=await ki(e,t,n.agentId);return r===void 0||r.sessionId!==n.sessionId?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:r.status===`disposed`?{kind:`refused`,result:{outcome:`agent-disposed`}}:{kind:`ok`,agent:r}}async function Zi(e,t,n,r){let{adapterSessionClaims:i}=t,[a]=await e.insert(i).select(Vi(t,n,crypto.randomUUID(),r)).onConflictDoNothing({target:[i.machineId,i.adapterId,i.providerSessionId]}).returning();return a}async function Qi(e,t,n,r,i,a){let{adapterSessionClaims:o,agents:s}=t,c=W`exists (select 1 from ${s} where ${R(V(s.agentId,o.agentId),V(s.status,`disposed`))})`,[l]=await e.update(o).set({claimToken:n.claimToken,fence:Ri(t,n.agentId,r.fence),agentId:n.agentId,sessionId:n.sessionId,adapterName:n.adapterName,status:`held`,claimedAt:a,updatedAt:a}).where(R(V(o.claimId,r.claimId),V(o.claimToken,r.claimToken),Bi(t,n.agentId,n.sessionId,`live`),...i===`incumbent-disposed`?[c]:[])).returning();return l}async function $i(e,t,n){return(await ki(e,t,n.agentId))?.status===`disposed`}var ea=class extends Error{result;constructor(e){super(`session ownership movement rolled back: ${e.outcome}`),this.name=`MovementRollbackSignal`,this.result=e}};function ta(e,t){if(e.kind===`confirmed`)return{providerSessionId:e.providerSessionId,currency:{currentAdapterSessionId:e.providerSessionId,currentAdapterSessionIdState:`confirmed`}};let n=st(zi(t));return n===null?null:{providerSessionId:n,currency:{currentAdapterSessionId:null,currentAdapterSessionIdState:`moved`}}}async function na(e,t,n){let{adapterSessionClaims:r}=t,[i]=await e.update(r).set({updatedAt:r.updatedAt}).where(R(V(r.machineId,n.machineId),V(r.adapterId,n.adapterId),V(r.providerSessionId,n.providerSessionId),V(r.agentId,n.agentId),V(r.status,`held`))).returning();return i}async function ra(e,t,n,r){for(let i=0;i<2;i+=1){let i=await Zi(e,t,n,r);if(i!==void 0)return i;let a=await Di(e,t,n);if(a===void 0){let r=await Xi(e,t,n);if(r.kind===`refused`)throw new ea(r.result.outcome===`agent-disposed`?{outcome:`agent-disposed`}:{outcome:`not-found`});continue}if(await $i(e,t,a)){let i=await Qi(e,t,n,a,`incumbent-disposed`,r);if(i!==void 0)return i;let o=await Di(e,t,n);if(o===void 0)continue;throw new ea({outcome:`already-claimed`,holder:Q(o)})}throw new ea({outcome:`already-claimed`,holder:Q(a)})}throw Error(`session ownership movement could not acquire the key ${n.machineId}/${n.adapterId}/${n.providerSessionId}: it was taken and freed by a competitor on every attempt`)}async function ia(e,t,n,r){let{adapterSessionClaims:i}=t;return(await e.delete(i).where(R(V(i.agentId,n),V(i.status,`held`),At(i.claimId,r))).returning({providerSessionId:i.providerSessionId})).map(e=>e.providerSessionId)}function aa(e,t){return e.outcome===`idempotent`?{outcome:`idempotent`,revision:e.revision,currency:e.currency,sessionSnapshotUpdated:!1,claim:Q(t)}:e}async function oa(e,t){let n=L(e,K),r=Date.now();try{return await xt(e,async e=>{let i=await ji(e,n,t.agentId);if(i===void 0||i.sessionId!==t.sessionId)return{outcome:`not-found`};if(i.status===`disposed`)return{outcome:`agent-disposed`};let a=ta(t.movement,i);if(a===null)return{outcome:`idempotent`,revision:i.revision,currency:zi(i),sessionSnapshotUpdated:!1,claim:null};let o={machineId:t.machineId,adapterId:t.adapterId,adapterName:t.adapterName,providerSessionId:a.providerSessionId,sessionId:t.sessionId,agentId:t.agentId,claimToken:t.movement.claimToken},s=await na(e,n,o)??await ra(e,n,o,r),c=t.movement.kind===`confirmed`?await ia(e,n,t.agentId,s.claimId):[],l=await Ji(e,n,{agentId:t.agentId,claimToken:s.claimToken,fence:s.fence,expectedRevision:t.expectedRevision,target:a.currency});if(l.outcome!==`settled`)throw new ea(aa(l,s));return{outcome:`settled`,revision:l.revision,currency:l.currency,sessionSnapshotUpdated:l.sessionSnapshotUpdated,releasedProviderSessionIds:c,claim:Q(s)}})}catch(e){if(e instanceof ea)return e.result;throw e}}var sa=class extends Error{result;constructor(e){super(`session ownership claim rolled back: ${e.outcome}`),this.name=`ClaimRollbackSignal`,this.result=e}};async function ca(e,t,n){let{sessions:r}=t,[i]=await e.update(r).set({lastActivityAt:r.lastActivityAt}).where(V(r.sessionId,n)).returning({leadAgentId:r.leadAgentId});return i===void 0?void 0:i.leadAgentId??null}function la(e,t,n,r){let{sessions:i}=e,a=n===null?U(i.leadAgentId):V(i.leadAgentId,n);return r?a:Mt(a,V(i.leadAgentId,t.agentId))}async function ua(e,t,n){let{sessions:r}=t,i=await ca(e,t,n.sessionId);if(i===void 0)throw new sa({outcome:`not-found`,missing:`session`});let a=n.designateLead;if(a===void 0)return{leadDesignated:!1,previousLeadAgentId:i};let o=a.clear===!0,s=o?null:n.agentId,c=o?`any-status`:`live`,l=s!==i;return(await e.update(r).set({leadAgentId:s,...o||!l?{}:Hi(t,n.agentId)}).where(R(V(r.sessionId,n.sessionId),la(t,n,a.expectedLeadAgentId,o),Bi(t,n.agentId,n.sessionId,c))).returning({leadAgentId:r.leadAgentId})).length===0?fa(e,t,n,i,c):{leadDesignated:l,previousLeadAgentId:i}}function da(e){return{outcome:`lead-conflict`,currentLeadAgentId:e}}async function fa(e,t,n,r,i){let a=await Xi(e,t,n);throw a.kind===`refused`&&!(i===`any-status`&&a.result.outcome===`agent-disposed`)?new sa(a.result):new sa(da(r))}function pa(e,t,n){return{outcome:e,claim:t===null?null:Q(t),leadDesignated:n.leadDesignated,previousLeadAgentId:n.previousLeadAgentId}}async function ma(e,t,n,r,i,a){let o=await Qi(e,t,n,r,i,a);if(o!==void 0)return pa(`claimed`,o,await ua(e,t,n));let s=await Di(e,t,n);if(s===void 0)return ga;if(s.claimToken===r.claimToken){let r=await Xi(e,t,n);if(r.kind===`refused`)return r.result}return{outcome:`already-claimed`,holder:Q(s)}}async function ha(e,t,n,r){if(r.status!==`held`)return{outcome:`already-claimed`,holder:Q(r)};let i=await Xi(e,t,n);return i.kind===`refused`?i.result:pa(`idempotent`,r,await ua(e,t,n))}const ga=Symbol(`retry-acquisition`);async function _a(e,t,n,r){return n.supersedes?.claimToken===r.claimToken?`named-token`:await $i(e,t,r)?`incumbent-disposed`:void 0}async function va(e,t,n,r){let i=await Zi(e,t,n,r);if(i!==void 0)return pa(`claimed`,i,await ua(e,t,n));let a=await Di(e,t,n);if(a===void 0){let r=await Xi(e,t,n);return r.kind===`refused`?r.result:ga}if(a.claimToken===n.claimToken)return a.agentId===n.agentId&&a.sessionId===n.sessionId?ha(e,t,n,a):{outcome:`already-claimed`,holder:Q(a)};let o=await _a(e,t,n,a);return o===void 0?{outcome:`already-claimed`,holder:Q(a)}:ma(e,t,n,a,o,r)}async function ya(e,t,n,r){return r.sessionId===n.sessionId?r.status===`disposed`&&n.designateLead?.clear!==!0?{outcome:`agent-disposed`}:pa(`claimed`,null,await ua(e,t,n)):{outcome:`not-found`,missing:`agent`}}async function ba(e,t,n){let r=await ji(e,t,n.agentId);if(r!==void 0)return{kind:`ok`,agent:r};let i=await Xi(e,t,n);if(i.kind===`refused`)return{kind:`refused`,result:i.result};let a=await ji(e,t,n.agentId);return a===void 0?{kind:`refused`,result:{outcome:`not-found`,missing:`agent`}}:{kind:`ok`,agent:a}}async function xa(e,t){let n=L(e,K),r=Date.now();try{return await xt(e,async e=>{let i=await ba(e,n,t);if(i.kind===`refused`)return i.result;let{providerSessionId:a}=t;if(a===null)return ya(e,n,t,i.agent);let o={...t,providerSessionId:a};for(let t=0;t<2;t+=1){let t=await va(e,n,o,r);if(t!==ga)return t}throw Error(`session ownership claim could not be acquired: the key ${t.machineId}/${t.adapterId}/${a} was taken and freed by a competitor on every attempt`)})}catch(e){if(e instanceof sa)return e.result;throw e}}async function Sa(e,t){let n=L(e,K),{adapterSessionClaims:r}=n,i=Date.now();return xt(e,async e=>{await ji(e,n,t.agentId);let a=R(V(r.claimToken,t.claimToken),V(r.agentId,t.agentId));if(t.disposition===`released`){if((await e.delete(r).where(a).returning({claimId:r.claimId})).length>0)return{outcome:`released`}}else{let[n]=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();if(n!==void 0)return{outcome:`marked`,claim:Q(n)}}let o=await Oi(e,n,t.claimToken);return o===void 0?{outcome:`not-found`}:{outcome:`not-owner`,holder:Q(o)}})}async function Ca(e,t){let n=L(e,K),{adapterSessionClaims:r}=n,i=Date.now();return xt(e,async e=>{await ji(e,n,t.agentId);let a=t.claimToken===void 0?V(r.agentId,t.agentId):R(V(r.agentId,t.agentId),V(r.claimToken,t.claimToken));if(t.disposition===`released`){let n=await e.delete(r).where(a).returning({providerSessionId:r.providerSessionId});return{releasedProviderSessionIds:n.map(e=>e.providerSessionId),markedClaims:[],claimTokenNotFound:t.claimToken!==void 0&&n.length===0}}let o=await e.update(r).set({status:t.disposition,updatedAt:i}).where(a).returning();return{releasedProviderSessionIds:[],markedClaims:o.map(Q),claimTokenNotFound:t.claimToken!==void 0&&o.length===0}})}function wa(e){let{bus:t,db:n}=e,{agents:r,adapterSessionClaims:i}=L(n,K);return t.on(N.read,async e=>{let{agentId:t}=e.payload,[a]=await n.select().from(r).where(V(r.agentId,t)).limit(1);if(a===void 0){e.setResult({ownership:null});return}let o=await n.select().from(i).where(V(i.agentId,t)).orderBy(z(i.fence),z(i.claimId));e.setResult({ownership:{agentId:a.agentId,sessionId:a.sessionId,currency:zi(a),revision:a.revision,currencyFence:a.currencyFence,claims:o.map(Q)}})})}function Ta(e){let{bus:t,db:n}=e,r=L(n,K),{adapterSessionClaims:i}=r;return t.on(N.listClaims,async e=>{let t=await n.select().from(i).where(R(...Ui(r,e.payload))).orderBy(z(i.claimedAt),z(i.claimId));e.setResult({claims:t.map(Q)})})}function Ea(e,t){let n={bus:e,db:t},r=[wa(n),e.on(N.claim,async e=>{e.setResult(await xa(t,e.payload))}),e.on(N.settleCurrency,async e=>{e.setResult(await Yi(t,e.payload))}),e.on(N.settleMovement,async e=>{e.setResult(await oa(t,e.payload))}),e.on(N.release,async e=>{e.setResult(await Sa(t,e.payload))}),e.on(N.releaseAgentClaims,async e=>{e.setResult(await Ca(t,e.payload))}),Ta(n)];return()=>{for(let e=r.length-1;e>=0;--e)r[e]?.()}}async function Da(e,t){if(t.length===0)return new Map;let{agents:n}=L(e,K),r=[...new Set(t)],i=await e.select().from(n).where(H(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 Oa(e,t){return wt(e).fts.fetchFirstUserMessagePreviews(e,t)}async function ka(e,t){if(t.length===0)return new Map;let{messages:n}=L(e,c),r=[...new Set(t)],i=await e.select({sessionId:n.sessionId,count:B()}).from(n).where(H(n.sessionId,r)).groupBy(n.sessionId),a=new Map;for(let e of i)a.set(e.sessionId,e.count);return a}function Aa(e){if(e)try{let t=JSON.parse(e);return!t||typeof t!=`object`||Array.isArray(t)?void 0:t}catch{return}}function ja(e){if(e!==null)try{let t=typeof e==`string`?JSON.parse(e):e,n=$e.safeParse(t);return n.success?n.data:void 0}catch{return}}function Ma(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:Aa(e.fork_transforms),targetWorkingDirectory:e.target_working_directory??void 0,metadata:ja(e.metadata),machineId:e.machine_id??void 0,agents:t.map(e=>({agentId:e.agentId,adapterId:e.adapterId,adapterName:e.adapterName,sessionId:e.sessionId,role:e.role,status:e.status,createdAt:e.createdAt,lastActivityAt:e.lastActivityAt,model:e.model??void 0,adapterSessionId:e.adapterSessionId??void 0,cwd:e.cwd??void 0})),preview:{messageCount:r.get(e.session_id)??0,firstUserMessage:n.get(e.session_id)??null}}}function Na(e,t){let n=wt(t).fts,r=[];return r.push(e.on(O.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 Da(t,d),p=await Oa(t,d),m=await ka(t,d),h=l.map(e=>Ma(e,f.get(e.session_id)??[],p,m));e.setResult({sessions:h,total:u})})),()=>r.forEach(e=>e())}async function Pa(e,t){return(await St(e).all(W`
|
|
70
|
-
WITH RECURSIVE ancestors AS (
|
|
71
|
-
SELECT session_id, parent_session_id
|
|
72
|
-
FROM sessions
|
|
73
|
-
WHERE session_id = ${t}
|
|
74
|
-
|
|
75
|
-
UNION ALL
|
|
76
|
-
|
|
77
|
-
SELECT s.session_id, s.parent_session_id
|
|
78
|
-
FROM sessions s
|
|
79
|
-
JOIN ancestors a ON s.session_id = a.parent_session_id
|
|
80
|
-
)
|
|
81
|
-
SELECT session_id FROM ancestors
|
|
82
|
-
`)).map(e=>e.session_id)}const Fa=new Map;function Ia(e,t){let n=(Fa.get(e)??Promise.resolve()).then(t),r=n.then(()=>void 0,()=>void 0);return Fa.set(e,r),r.then(()=>{Fa.get(e)===r&&Fa.delete(e)}),n}function La(e,t){return`${e}:${t}`}async function Ra(e,t,n){let r=await e.requestOptional(s.getByIds,{sessionId:t,eventIds:[La(`turn.completed`,n)]});if(r.handled)return r.data.events.length>0}function za(e,t){return Ia(JSON.stringify([t.sessionId,t.turnAnchorId]),()=>Ba(e,t))}async function Ba(e,t){let{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}=t,{turn:u,created:d}=await e.request(D.ingestCompleted,{sessionId:n,turnAnchorId:r,startedAt:i,completedAt:a,status:o,error:s,usage:c,initiator:l}),f,p;for(let r of t.messages){let{messageId:t}=await e.request(A.upsertByAdapterMessageId,{sessionId:n,turnId:u.turnId,adapterMessageId:r.adapterMessageId,role:r.role,contentText:r.contentText,blocks:r.blocks,agentId:r.agentId,adapterSessionId:r.adapterSessionId,timestamp:r.timestamp,origin:r.origin});p??=t,f===void 0&&r.role===`user`&&(f=t)}let m=d;return d||(m=await Ra(e,n,u.turnId)===!1),m&&(p===void 0?console.warn(`[turn-ingest] Turn ${u.turnId} (session ${n}) ingested without messages — skipping session.turn.* emission (getByTurn contract unfulfillable)`):await Va(e,t,u,f??p)),{turnId:u.turnId,turnNumber:u.turnNumber,created:d}}async function Va(e,t,n,r){let{sessionId:i,status:a,error:o,usage:s,initiator:c,ingestionMarker:l}=t,u={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,messageId:r,agentIds:[...new Set(t.messages.flatMap(e=>e.role===`assistant`&&e.agentId?[e.agentId]:[]))],initiator:c,ingestionMarker:l},d={sessionId:i,turnId:n.turnId,turnNumber:n.turnNumber,success:a===`completed`,error:o,usage:s,initiator:c,ingestionMarker:l};await ge(e,{type:`turn.started`,sessionId:i,payload:u,eventId:La(`turn.started`,n.turnId)}),await ge(e,{type:`turn.completed`,sessionId:i,payload:d,eventId:La(`turn.completed`,n.turnId)}),await e.emit(P.turn.started,u),await e.emit(P.turn.completed,d)}const Ha=Le(`log-import`,{listImporters:{request:j.object({}),response:j.object({importers:j.array(j.object({adapterName:j.string(),clientId:j.string().optional()}))})},importFile:{request:j.object({filePath:j.string(),adapterName:j.string(),ingestionMarker:nt.optional()}),response:j.discriminatedUnion(`status`,[j.object({status:j.literal(`imported`),sessionId:j.string(),messageCount:j.number(),turnCount:j.number()}),j.object({status:j.literal(`skipped`),reason:j.enum([`no-importer`,`file-missing`])})])},importSession:{request:j.object({adapterSessionId:j.string(),adapterName:j.string(),ingestionMarker:nt.optional()}),response:j.object({sessionId:j.string(),messageCount:j.number()})}}).subjects,Ua=`observed-session-ingestion-policy`;function Wa(e,t){return e.emit(Ue.register,{capabilityId:Ua,provider:t})}function Ga(e,t){return e.emit(Ue.unregister,{capabilityId:Ua,providerId:t})}function $(e,t){process.env.MAKAIO_DEBUG===`true`&&console.debug(`[ObservedSessionIngestion] ${e}`,t??{})}function Ka(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.id==`string`&&typeof t.displayName==`string`&&typeof t.decideObservedSessionIngestion==`function`}function qa(e){return e.importStatus===`discovered`&&e.clientId!==void 0}function Ja(e){return e.isImported===!0&&e.importStatus===`tracking`&&e.clientId!==void 0}var Ya=class{bus;managedAdapterSessionIds=new Set;importerByClientId=new Map;unresolvedClientIds=new Set;policyProviders=new Map;cleanups=[];constructor(e=Re){this.bus=e,this.cleanups.push(this.bus.on(We.runtime.started,async e=>{try{await this.handleRuntimeStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to handle runtime started`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(We.session.started,async e=>{try{await this.handleSessionStarted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to register observed session`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(We.session.turn.completed,async e=>{try{await this.handleTurnCompleted(e.payload)}catch(t){console.warn(`[ObservedSessionIngestion] Failed to trigger import for observed turn`,{clientId:e.payload.clientId,adapterSessionId:e.payload.adapterSessionId,error:t})}}),this.bus.on(Ue.register,e=>{let{provider:t}=e.payload;Ka(t)&&this.policyProviders.set(t.id,t)},{filter:{capabilityId:Ua}}),this.bus.on(Ue.unregister,e=>{this.policyProviders.delete(e.payload.providerId)},{filter:{capabilityId:Ua}}))}destroy(){for(let e of this.cleanups.splice(0))e()}async handleRuntimeStarted(e){if(!(e.source.layer!==`adapter`||e.adapterSessionId===void 0)){if(!this.managedAdapterSessionIds.has(e.adapterSessionId)){if(this.managedAdapterSessionIds.size>=1e4){let e=this.managedAdapterSessionIds.values().next().value;e!==void 0&&this.managedAdapterSessionIds.delete(e)}this.managedAdapterSessionIds.add(e.adapterSessionId)}await this.reconcileTrackingStub(e.clientId,e.adapterSessionId)}}async reconcileTrackingStub(e,t){let n=await this.resolveImporter(e);if(n===null)return;let r=await this.bus.requestOptional(O.getByAdapterSessionId,{adapterSessionId:t,source:n.adapterName});if(!r.handled||r.data.session===null)return;let i=r.data.session;if(!Ja(i))return;let a=await this.bus.requestOptional(Ye.getBySession,{sessionId:i.sessionId,limit:1});if(!a.handled){$(`Preserved tracking stub because message storage is unavailable`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}if(a.data.messages.length>0){$(`Preserved tracking stub with imported content (native takeover)`,{adapterSessionId:t,source:n.adapterName,sessionId:i.sessionId});return}(await this.bus.requestOptional(O.delete,{sessionId:i.sessionId})).handled&&$(`Reconciled hook-first tracking stub`,{adapterSessionId:t,source:n.adapterName,deletedSessionId:i.sessionId})}async resolveImporter(e){let t=this.importerByClientId.get(e);if(t!==void 0)return t===null?null:{adapterName:t};let n=await this.bus.requestOptional(Ha.listImporters,{});if(!n.handled)return this.debugUnresolved(e,`no log-import service registered`),null;let r=n.data.importers.find(t=>t.clientId===e);return r===void 0?(this.importerByClientId.set(e,null),this.debugUnresolved(e,`no importer registered for client`),null):(this.importerByClientId.set(e,r.adapterName),{adapterName:r.adapterName})}debugUnresolved(e,t){this.unresolvedClientIds.has(e)||(this.unresolvedClientIds.add(e),$(`Skipping observed ingestion for client '${e}': ${t}`))}async handleSessionStarted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n===null)return;let r=e.startMode===`resume`||e.startMode===`compact`?e.startMode:void 0;(r===void 0?await this.registerObservedSession(e,t,n.adapterName):await this.rebindObservedSession(e,t,n.adapterName,r))&&this.managedAdapterSessionIds.has(t)&&await this.reconcileTrackingStub(e.clientId,t)}async rebindObservedSession(e,t,n,r){let i=await this.bus.requestOptional(O.rebindObserved,{externalSessionId:t,source:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId}});if(!i.handled)return $(`Session storage unavailable; skipped observed-session rebind`,{adapterSessionId:t}),!1;if(i.data.outcome===`not-found`){let i=await this.decideImportStatus(this.policyInput(e,t,n));return i===`discovered`?await this.registerObservedSession(e,t,n,i):($(`Observed continuation of an unknown session; leaving creation to the transcript import`,{adapterSessionId:t,source:n,startMode:r}),!1)}try{await this.bus.requestOptional(P.ownership.continuation,{sessionId:i.data.sessionId,startMode:r})}catch(e){$(`Continuation report failed; the rebind stands`,{sessionId:i.data.sessionId,startMode:r,error:e})}return!0}policyInput(e,t,n){return{clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n,...e.cwd===void 0?{}:{cwd:e.cwd},...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}}}async registerObservedSession(e,t,n,r){let i=Xa(e.metadata),a=r??await this.decideImportStatus(this.policyInput(e,t,n)),o=e.startMode===`fork`&&e.parentAdapterSessionId!==void 0&&e.parentAdapterSessionId.length>0?e.parentAdapterSessionId:void 0,s=o===void 0?{kind:Xe,parentAdapterSessionId:null,forkPointMessageId:null}:{kind:Ke,parentAdapterSessionId:o,forkPointMessageId:null};return(await this.bus.requestOptional(O.importUpsert,{...s,externalSessionId:t,source:n,clientId:e.clientId,cwd:e.cwd??null,...e.transcriptPath===void 0?{}:{logFilePath:e.transcriptPath},...e.machineId===void 0?{}:{machineId:e.machineId},startedAt:e.observedAt,importStatus:a,activation:a===`tracking`?`live`:void 0,...i===void 0?{}:{metadata:i}})).handled?!0:($(`Session storage unavailable; skipped observed-session registration`,{adapterSessionId:t}),!1)}async handleTurnCompleted(e){let t=e.adapterSessionId;if(t===void 0||t.length===0||this.managedAdapterSessionIds.has(t))return;let n=await this.resolveImporter(e.clientId);if(n!==null&&await this.shouldImportObservedContent({clientId:e.clientId,source:e.source,adapterSessionId:t,adapterName:n.adapterName,...e.transcriptPath===void 0?{}:{transcriptPath:e.transcriptPath}})){if(e.transcriptPath!==void 0){let r=await this.bus.requestOptional(Ha.importFile,{filePath:e.transcriptPath,adapterName:n.adapterName,ingestionMarker:`live`});r.handled?r.data.status===`skipped`&&$(`Targeted import skipped`,{adapterSessionId:t,reason:r.data.reason}):$(`log-import.importFile unhandled; watcher fallback will ingest`,{adapterSessionId:t});return}try{await this.bus.requestOptional(Ha.importSession,{adapterSessionId:t,adapterName:n.adapterName,ingestionMarker:`live`})}catch(e){$(`Discovery-based import fallback failed (no stub yet); watcher will ingest`,{adapterSessionId:t,error:e})}}}async decideImportStatus(e){for(let t of this.policyProviders.values())if((await t.decideObservedSessionIngestion(e)).importStatus===`discovered`)return`discovered`;return`tracking`}async shouldImportObservedContent(e){let t=await this.bus.requestOptional(O.getByAdapterSessionId,{adapterSessionId:e.adapterSessionId,source:e.adapterName});if(t.handled&&t.data.session!==null){if(qa(t.data.session))return!1;if(t.data.session.importStatus!==`discovered`)return!0}return await this.decideImportStatus(e)===`tracking`}};function Xa(e){if(e===void 0)return;let t=$e.safeParse(e);return t.success?t.data:void 0}const Za=bt(`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()})),Qa=Za.sqlite,$a=Za.postgres,eo=yt({importCursors:Qa},{importCursors:$a});function to(e,t){let{importCursors:n}=L(t,eo),r=[];return r.push(e.on(Ft.get,async e=>{let{filePath:r}=e.payload,i=(await t.select().from(n).where(V(n.filePath,r)).limit(1))[0];if(!i){e.setResult({cursor:null});return}e.setResult({cursor:{filePath:i.filePath,bytesRead:i.bytesRead,lastModified:i.lastModified}})})),r.push(e.on(Ft.set,async e=>{let{filePath:r,bytesRead:i,lastModified:a}=e.payload;await t.insert(n).values({filePath:r,bytesRead:i,lastModified:a,updatedAt:Date.now()}).onConflictDoUpdate({target:n.filePath,set:{bytesRead:i,lastModified:a,updatedAt:Date.now()}}),e.setResult({success:!0})})),r.push(e.on(Ft.delete,async e=>{let{filePath:r}=e.payload,i=await t.delete(n).where(V(n.filePath,r));e.setResult({success:I(i)})})),()=>{r.forEach(e=>e())}}mt(`embeddings`,{id:ft(`id`).primaryKey({autoIncrement:!0}),entityType:ht(`entity_type`).notNull(),entityId:ht(`entity_id`).notNull(),model:ht(`model`).notNull(),dimensions:ft(`dimensions`).notNull(),content:ht(`content`),embedding:ut(`embedding`,{mode:`buffer`}).notNull(),createdAt:ft(`created_at`).notNull()},e=>[dt(`idx_embeddings_entity`).on(e.entityType,e.entityId),dt(`idx_embeddings_model`).on(e.model),gt(`idx_embeddings_unique`).on(e.entityType,e.entityId,e.model)]);function no(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 ro=class{rawSql;engine;knownTables=new Set;constructor(e){this.rawSql=St(e),this.engine=Ct(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=W.identifier(n),i=W.raw(this.engine.capabilities.binaryColumnType);return await this.rawSql.run(W`CREATE TABLE IF NOT EXISTS ${r} (
|
|
83
|
-
entity_type TEXT NOT NULL,
|
|
84
|
-
entity_id TEXT NOT NULL,
|
|
85
|
-
embedding ${i} NOT NULL,
|
|
86
|
-
PRIMARY KEY (entity_type, entity_id)
|
|
87
|
-
)`),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=W.identifier(a);await this.rawSql.run(W`INSERT INTO ${s} (entity_type, entity_id, embedding)
|
|
88
|
-
VALUES (${n}, ${r}, ${o})
|
|
89
|
-
ON CONFLICT(entity_type, entity_id) DO UPDATE SET
|
|
90
|
-
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=W.identifier(r),a=await this.rawSql.all(W`SELECT entity_type, entity_id, embedding FROM ${i}`);return a.length===0?[]:a.map(e=>{let n=no(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=W.identifier(r);await this.rawSql.run(W`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)}},io=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 Gn({sessionId:this.sessionId,agentIds:e.agentIds,turnNumber:e.turnNumber,turnId:e.turnId});return this._turns.push(t),t.addMessage(e.messageId),await de(this.bus,{sessionId:this.sessionId,turnId:t.turnId,turnNumber:t.turnNumber,agentIds:[...t.agentIds],messageId:e.messageId,ingestionMarker:`live`}),t}getActiveTurn(){for(let e=this._turns.length-1;e>=0;e--){let t=this._turns[e];if(!this._completedTurnIds.has(t.turnId))return t}}async completeTurn(e){if(!e.isComplete())throw Error(`Turn ${e.turnId} is not complete yet`);let t=e.getResult(),n={turnId:e.turnId,turnNumber:e.turnNumber,success:t.success,error:t.errors.length>0?t.errors.join(`; `):void 0};await ge(this.bus,{type:`turn.completed`,sessionId:this.sessionId,payload:{sessionId:this.sessionId,...n}}),await this.emit(P.turn.completed,n),this._completedTurnIds.add(e.turnId)}async emit(e,t){await this.bus.emit(e,{...t,sessionId:this.sessionId})}};function ao(e,t){let{sessions:n}=L(t,K);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(R(V(n.parentExternalSessionId,i),V(n.source,a)));for(let t of c)t.parentSessionId!==null&&await e.request(O.update,{sessionId:t.sessionId,rootSessionId:o}),t.adapterSessionId!==null&&await r(t.adapterSessionId,a,o,s+1)}return e.on(P.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(R(V(n.parentExternalSessionId,a),V(n.source,s),U(n.parentSessionId)));if(c.length===0)return;let{session:l}=await e.request(O.get,{sessionId:o}),u=l?.rootSessionId??o;for(let t of c)await e.request(O.update,{sessionId:t.sessionId,parentSessionId:o,rootSessionId:u,...t.branchKind===null?{}:{branchKind:t.branchKind}}),t.adapterSessionId!==null&&await r(t.adapterSessionId,s,u)})}const oo=new Set([`Agent`,`spawn_subagent`]),so=`[^A-Za-z0-9_-]`;function co(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function lo(e,t){return t.test(e)}async function uo(e,t){let n=[],r,i=0;do{let a=await e.request(A.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 fo(e){let t=[];for(let n of e)for(let e of n.blocks)e.type===`tool_call`&&oo.has(e.name)&&t.push({toolCallId:e.toolCallId});return t}function po(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(lo(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 mo(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 ho(e){return[...e].map(e=>{let t=co(e);return{id:e,pattern:RegExp(`(^|${so})${t}($|${so})`)}})}async function go(e,t,n){let{children:r}=await e.request(O.getChildren,{sessionId:n}),i=r.filter(e=>e.branchKind===`compress`);if(i.length===0)return;let{session:a}=await e.request(O.get,{sessionId:t}),o=a?.adapterSessionId;if(!o)return;let s=ho(new Set([o])),c=(await Promise.all(i.map(async t=>{let n=await uo(e,t.sessionId),r=fo(n);if(r.length===0)return null;let i=po(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(O.update,{sessionId:t,parentSessionId:c[0].parentSessionId,spawningToolCallId:c[0].toolCallId})}async function _o(e,t,n){let r=t.parentExternalSessionId,i=t.source??n;if(!r||!i)return;let a=t.sessionId,{session:o}=await e.request(O.getByAdapterSessionId,{adapterSessionId:r,source:i}),s=o?.sessionId;if(!s)return;let{children:c}=await e.request(O.getChildren,{sessionId:s}),l=await vo(e,c);if(l.size===0)return;let u=await uo(e,a),d=fo(u);if(d.length===0)return;let f=po(u,ho(new Set(l.keys()))),p=new Map;for(let e of d){let t=f.get(e.toolCallId);t!==void 0&&p.set(t,(p.get(t)??0)+1)}let m=new Map;for(let e of d){let t=f.get(e.toolCallId),n=t===void 0?void 0:l.get(t);n!==void 0&&t!==void 0&&p.get(t)===1&&m.set(n,e.toolCallId)}if(m.size===0)return;let h=[...m].map(async([t,n])=>{try{await e.request(O.update,{sessionId:t,parentSessionId:a,spawningToolCallId:n})}catch(e){console.error(`[CompressLineageResolver] Failed to re-parent subagent`,{compressChildSessionId:a,parentMakaioSessionId:s,childSessionId:t,toolCallId:n,error:e})}});await Promise.allSettled(h)}async function vo(e,t){return mo(await Promise.all(t.filter(e=>e.branchKind===`subagent`).map(async t=>{let{session:n}=await e.request(O.get,{sessionId:t.sessionId});return n?.adapterSessionId?{sessionId:t.sessionId,adapterSessionId:n.adapterSessionId}:null})))}function yo(e){return e.on(P.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{session:i}=await e.request(O.get,{sessionId:n});if(!i)return;if(i.branchKind===`subagent`&&i.parentSessionId!==void 0){await go(e,n,i.parentSessionId);return}if(i.branchKind!==`compress`)return;await _o(e,i,r)}catch(e){console.error(`[CompressLineageResolver] Failed to resolve compress lineage`,{payload:t.payload,error:e})}})}function bo(e){return[...e].map(e=>{let t=co(e);return{id:e,pattern:RegExp(`(^|${so})${t}($|${so})`)}})}async function xo(e,t,n){return mo(await Promise.all(n.filter(e=>e.branchKind===`subagent`&&e.spawningToolCallId===void 0).map(async n=>{let{session:r}=await e.request(O.get,{sessionId:n.sessionId}),i=r?.source??r?.adapterName;return r?.adapterSessionId&&i===t?{sessionId:n.sessionId,adapterSessionId:r.adapterSessionId}:null})))}function So(e){return e.on(P.import.completed,async t=>{try{let{sessionId:n,source:r}=t.payload,{children:i}=await e.request(O.getChildren,{sessionId:n}),a=await xo(e,r,i),o=new Set(a.keys());if(o.size===0)return;let s=await uo(e,n),c=fo(s);if(c.length===0)return;let l=po(s,bo(o)),u=new Map;for(let e of c){let t=l.get(e.toolCallId);t!==void 0&&u.set(t,(u.get(t)??0)+1)}let d=new Map;for(let e of c){let t=l.get(e.toolCallId),n=t===void 0?void 0:a.get(t);n!==void 0&&t!==void 0&&u.get(t)===1&&d.set(n,e.toolCallId)}let f=[...d].map(async([t,r])=>{try{let{session:n}=await e.request(O.get,{sessionId:t});if(n?.spawningToolCallId!==void 0)return;await e.request(O.update,{sessionId:t,spawningToolCallId:r})}catch(e){console.error(`Failed to persist spawning tool call correlation`,{parentSessionId:n,childSessionId:t,toolCallId:r,error:e})}});await Promise.allSettled(f)}catch(e){console.error(`Failed to backfill spawningToolCallId for imported session`,{payload:t.payload,error:e})}})}function Co(e){return e.on(Ve.session.discovered,async t=>{let n=Qe.safeParse(t.payload);if(!n.success)throw console.error(`[registerSessionDiscoveredHandler] Invalid adapter.session.discovered payload`,{issues:n.error.issues}),n.error;let{adapterId:r,adapterSessionId:i,adapterName:a,cwd:o,title:s,logFilePath:c,startedAt:l,machineId:u,kind:d,parentAdapterSessionId:f,forkPointMessageId:p}=n.data,m=je({kind:d,parentAdapterSessionId:f??null,forkPointMessageId:p??null});await e.request(O.importUpsert,{externalSessionId:i,source:a,adapterId:r,cwd:o??null,...s===void 0?{}:{title:s},...c===void 0?{}:{logFilePath:c},...l===void 0?{}:{startedAt:l},...u===void 0?{}:{machineId:u},...m})})}var wo=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(M.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{an as $,J as A,pr as B,Oa as C,Ei as D,Ea as E,vr as F,zn as G,sr as H,_r as I,Pn as J,Fn as K,gr as L,br as M,xr as N,Hr as O,yr as P,cn as Q,mr as R,ka as S,Aa as T,rr as U,fr as V,Gn as W,wn as X,Nn as Y,yn as Z,Ha as _,ao as a,Na as b,to as c,Ya as d,Jt as et,qa as f,Ga as g,Wa as h,yo as i,Rr as j,Vr as k,Qa as l,Ua as m,Co as n,io as o,Ja as p,G as q,So as r,ro as s,wo as t,Za as u,za as v,Ma as w,Da as x,Pa as y,hr as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{D as e,Dt as t,Et as n,It as r,Nt as ee,Ot as i,Pt as a,Qt as o,Tt as s,bt as c,nn as l,rn as u,tn as d,xt as f}from"./schemas-DplrlAyR.mjs";import"./compression-BbttSqm8.mjs";import{t as p}from"./schemas-DgwEVUt-.mjs";import{i as m}from"./account-identity-DGpXd8h_.mjs";import{t as h}from"./storage-namespace-definition-CDef0E20.mjs";import{CompressSessionLineageSchema as g,ForkSessionLineageSchema as _,RootSessionLineageSchema as v,SubagentSessionLineageSchema as y}from"./contracts/adapter/schemas/session-lineage.mjs";import{z as b}from"zod";import{createBusNamespace as te}from"@makaio/framework/core";const x=te(`session`,e),ne=x.subjects;function re(e){return f.includes(e.type)}const ie=`ui-warnings`,ae=`connector-swap-warning-suppressed`,oe=1440*60*1e3,S={cancel:`cancel`,edit:`edit`,continue:`continue`},C=`CONNECTOR_SWAP_CANCELLED`;var w=class extends Error{code=C;constructor(){super(`Connector swap cancelled by user`),this.name=`ConnectorSwapCancelledError`}};function T(e){return e instanceof w||e instanceof Error&&`code`in e&&e.code===`CONNECTOR_SWAP_CANCELLED`}const E={branch:{label:`branch`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},subagent:{label:`subagent`,staysInView:!0,navigatesToChild:!1,canMergeBack:!0},fork:{label:`fork`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},compress:{label:`compress`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},rewrite:{label:`rewrite`,staysInView:!1,navigatesToChild:!0,canMergeBack:!1},coordinator:{label:`coordinator`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1},aside:{label:`aside`,staysInView:!0,navigatesToChild:!1,canMergeBack:!1}};function D(e){return e!=null&&E[e].staysInView}function O(e){return e==null||E[e].navigatesToChild}function k(e){return e!=null&&E[e].canMergeBack}function A(e){return E[e]}const j=b.object({timestamp:b.number(),messageId:b.string()}),M=h(`message`,{schemas:{append:{request:b.object({message:r.omit({messageId:!0}).extend({messageId:b.string().optional()}),emitEvent:b.boolean().optional()}),response:b.object({message:r})},getBySession:{request:b.object({sessionId:b.string(),limit:b.number().int().min(1).optional(),after:j.optional(),includeAfter:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),response:b.object({messages:b.array(r),nextCursor:j.nullable()})},getByTurn:{request:b.object({turnId:b.string()}),response:b.object({messages:b.array(r)})},get:{request:b.object({messageId:b.string()}),response:b.object({message:r.nullable()})},getByAdapterMessageId:{request:b.object({adapterMessageId:b.string()}),response:b.object({message:r.nullable()})},search:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional()}),response:b.object({messages:b.array(r),total:b.number()})},ftsSearch:{request:b.object({query:b.string(),sessionId:b.string().optional(),limit:b.number().int().min(1).optional().default(20)}),response:b.object({results:b.array(b.object({messageId:b.string(),sessionId:b.string(),score:b.number(),excerpt:b.string()})),total:b.number()})},upsertByAdapterMessageId:{request:b.object({sessionId:b.string(),turnId:b.string().nullable(),adapterMessageId:b.string(),role:b.enum([`user`,`assistant`]),contentText:b.string(),blocks:b.array(ee),agentId:b.string().optional(),adapterSessionId:b.string().optional(),timestamp:b.number(),origin:a.optional()}),response:b.object({messageId:b.string(),created:b.boolean()})},stored:b.object({message:r})}}),N=M.subjects;function P(e,t){return e.timestamp===t.timestamp?e.messageId.localeCompare(t.messageId):e.timestamp-t.timestamp}function F(e,t){return P(t,e)}function I(e){return{timestamp:e.timestamp,messageId:e.messageId}}function L(e){return`${e.timestamp}:${e.messageId}`}const se=b.object({after:b.string().optional(),limit:b.number().int().min(1).optional(),types:b.array(b.string()).optional(),includeReasoning:b.boolean().optional(),order:b.enum([`asc`,`desc`]).optional()}),R=b.object({events:b.array(c),nextCursor:b.string().nullable(),totalCount:b.number().optional()}),z=h(`sessionEvent`,{schemas:{append:{request:b.object({event:c}),response:b.object({success:b.boolean()})},getEvents:{request:b.object({sessionId:b.string(),options:se.optional()}),response:R},getByIds:{request:b.object({sessionId:b.string(),eventIds:b.array(b.string())}),response:b.object({events:b.array(c)})},deleteBySession:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean(),deletedCount:b.number().optional()})},getEventsBySessions:{request:b.object({sessionIds:b.array(b.string()),types:b.array(b.string()),limitPerSession:b.number().int().min(1).optional()}),response:b.object({eventsBySession:b.record(b.string(),b.array(c))})}}}),B=z.subjects,V=s.extend({preview:n});function H(e,t){e.clientAccountId!==void 0&&e.lastClientIdentityObservation===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`lastClientIdentityObservation`],message:`lastClientIdentityObservation is required when clientAccountId is provided`}),e.clientAccountId!==void 0&&e.clientId===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`clientId`],message:`clientId is required when clientAccountId is provided`})}const U=s.superRefine((e,t)=>{H(e,t)}),W=b.object({sessionId:b.string(),session:U,ifAbsent:b.boolean().optional()}).superRefine((e,t)=>{e.sessionId!==e.session.sessionId&&t.addIssue({code:b.ZodIssueCode.custom,path:[`session`,`sessionId`],message:`session.sessionId must match the top-level sessionId`})}),G=b.string().nullable().optional(),K=b.enum([`active`,`closed`,`archived`,`discovered`]),ce=b.object({adapterName:b.string(),adapterId:b.string(),adapterSessionId:b.string().optional()});function le(e,t){e.identity!==void 0&&e.expectIdentityOpenForLead===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`expectIdentityOpenForLead`],message:`expectIdentityOpenForLead is required when identity is provided`}),e.expectIdentityOpenForLead!==void 0&&e.identity===void 0&&t.addIssue({code:b.ZodIssueCode.custom,path:[`identity`],message:`identity is required when expectIdentityOpenForLead is provided`})}const q={request:b.object({sessionId:b.string(),status:K.optional(),expectedStatus:b.array(K).nonempty().optional(),parentSessionId:b.string().optional(),contextInheritance:u.optional(),rootSessionId:b.string().optional(),forkPointMessageId:b.string().optional(),branchKind:d.optional(),isOrchestrated:b.boolean().optional(),clientId:b.string().optional(),clientAccountId:b.string().optional(),lastClientIdentityObservation:m.optional(),executionTargetId:b.string().nullable().optional(),approvalPolicyOverride:p.nullable().optional(),title:b.string().optional(),targetWorkingDirectory:b.string().optional(),createdAt:b.number().finite().optional(),lastActivityAt:b.number().finite().optional(),metadata:t.nullable().optional(),spawningToolCallId:b.string().nullable().optional(),machineId:G,identity:ce.optional(),expectIdentityOpenForLead:b.string().nullable().optional()}).superRefine((e,t)=>{le(e,t)}),response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},ue=b.enum([`live`]),J=b.object({externalSessionId:b.string(),source:b.string(),clientId:b.string().optional(),adapterId:b.string().optional(),cwd:b.string().nullable(),logFilePath:b.string().nullable().optional(),startedAt:b.number().finite().optional(),title:b.string().nullable().optional(),metadata:t.optional(),lastClientIdentityObservation:m.optional(),importStatus:b.enum([`discovered`,`tracking`]).optional(),activation:ue.optional(),isSidechain:b.boolean().optional(),machineId:G}),Y=b.discriminatedUnion(`kind`,[J.merge(v),J.merge(_),J.merge(y),J.merge(g)]),X=b.object({externalSessionId:b.string(),source:b.string(),cwd:b.string().optional(),logFilePath:b.string().optional(),machineId:G}),Z=b.discriminatedUnion(`outcome`,[b.object({outcome:b.literal(`rebound`),sessionId:b.string()}),b.object({outcome:b.literal(`not-found`)})]),Q=h(`session`,{schemas:{get:{request:b.object({sessionId:b.string()}),response:b.object({session:s.nullable()})},set:{request:W,response:b.object({success:b.boolean(),clientAccountChanged:b.boolean().optional()})},delete:{request:b.object({sessionId:b.string()}),response:b.object({success:b.boolean()})},list:{request:b.object({status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),limit:b.number().int().min(1).optional(),offset:b.number().int().min(0).optional(),includePreview:b.boolean().optional(),executionTargetId:b.string().optional()}),response:b.object({sessions:b.array(i),total:b.number()})},getChildren:{request:b.object({sessionId:b.string()}),response:b.object({children:b.array(o)})},search:{request:b.object({query:b.string(),limit:b.number().int().min(1).optional(),status:b.enum([`active`,`closed`,`archived`,`discovered`,`all`]).optional(),isImported:b.boolean().optional()}),response:b.object({sessions:b.array(V),total:b.number()})},update:q,getByAdapterSessionId:{request:b.object({adapterSessionId:b.string(),source:b.string().optional(),adapterName:b.string().optional()}),response:b.object({session:s.nullable()})},getStatusCounts:{request:b.object({}),response:b.object({all:b.number(),active:b.number(),closed:b.number(),archived:b.number(),discovered:b.number()})},importUpsert:{request:Y,response:b.object({sessionId:b.string(),created:b.boolean()})},rebindObserved:{request:X,response:Z},getByLogFilePath:{request:b.object({logFilePath:b.string()}),response:b.object({session:s.nullable()})},listImported:{request:b.object({source:b.string().optional(),importStatus:l.optional()}),response:b.object({sessions:b.array(s)})},countBySource:{request:b.object({source:b.string()}),response:b.object({total:b.number(),imported:b.number(),discovered:b.number(),tracking:b.number()})},updateImportStatus:{request:b.object({sessionId:b.string(),importStatus:l}),response:b.object({success:b.boolean()})}}}),de=Q.subjects,$=`makaio:extraction-excluded`;function fe(e){return e?.[$]===!0}function pe(){return{[$]:!0}}export{oe as A,k as C,T as D,w as E,re as M,x as N,S as O,ne as P,D as S,C as T,I as _,Q as a,N as b,W as c,q as d,z as f,L as g,F as h,Y as i,ie as j,ae as k,U as l,P as m,pe as n,X as o,B as p,fe as r,Z as s,$ as t,de as u,j as v,O as w,A as x,M as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{SessionStorageSubjects as e}from"./services/session/storage/namespace.mjs";import{n as t}from"./agent-namespace-D51PODFf.mjs";import"./session-BMy2kRpX.mjs";import{AgentSubjects as n,ApprovalSubjects as r,HarnessSubjects as i,computeMetaTags as a}from"@makaio/framework/contracts";import{BaseService as o}from"@makaio/framework/service-base";import{extractToolFilePath as s}from"@makaio/framework/tools";const c={"full-access":0,"always-ask":1,reject:2};function l(){return`apr_${crypto.randomUUID()}`}function u(e){switch(e){case`allow`:return`full-access`;case`deny`:return`reject`;case`ask`:return`always-ask`}}function d(e){if(!e?.length)return`neutral`;let t=a(e);return t.includes(`destructive`)?`destructive`:t.includes(`read-only`)?`safe`:`neutral`}function f(e,t){if(e)return t&&e.toolApprovalOverrides?.[t]!==void 0?e.toolApprovalOverrides[t]:e.approvalPolicy}function p(e,t,n,r){let i=r[t];if(!i?.length)return e;let a=e;for(let e of i){let t=n[e];t&&c[t]>c[a]&&(a=t)}return a}function m(e,t,n){return n.handled?n.data.allowedDirectories??void 0:t?[]:void 0}function h(e,t,n){if(!n||!e?.cwd)return{};let r;return(e.personaId||e.profileId)&&t&&(r=m(e.personaId,e.profileId,t)),{cwd:e.cwd,...r&&{allowedDirectories:r}}}function g(e,t,n){if(!(!e&&!t))return!n||!n.handled?{policy:`always-ask`}:{policy:u(n.data.action),...n.data.personaName&&{personaName:n.data.personaName},...n.data.profileName&&{profileName:n.data.profileName}}}function _(e,t){let n=t.harness?.toolCapabilityMap&&e.toolName?t.harness.toolCapabilityMap[e.toolName]:void 0;return{requestId:l(),toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,agentId:e.agentId,sessionId:e.sessionId,adapterName:t.resolvedAdapterName,...t.personaName&&{personaName:t.personaName},...t.profileName&&{profileName:t.profileName},capabilities:n,riskLevel:d(n),reasoning:e.reasoning,createdAt:Date.now()}}var v=class extends o{logger=console;options;constructor(e,t={}){super(e),this.options=t}async onInit(){this.registerHandler(n.toolApprove,async e=>{let t=await this.getAgentMetadata(e.payload.agentId,e.payload.sessionId),n=(t?.personaId||t?.profileId)&&e.payload.toolName?await this.fetchRawEnrichedPolicy(t?.personaId,t?.profileId,e.payload.toolName):void 0,r=h(t,n,this.options.fileAccessRuleProvider),i=await this.checkFileAccessDenyReason(e.payload,r);if(i){e.setResult({action:`deny`,message:i,shouldAbort:!1});return}let a=await this.resolveSessionOverride(e.payload.sessionId);if(a===`full-access`){e.setResult({action:`allow`});return}if(a===`reject`){e.setResult({action:`deny`,message:`Tool use rejected by session approval policy override`,shouldAbort:!1});return}let o=await this.resolvePolicyWithContext({adapterName:e.payload.adapterName,toolName:e.payload.toolName},t,n);switch(a===`always-ask`?`always-ask`:o.policy){case`full-access`:e.setResult({action:`allow`});return;case`reject`:e.setResult({action:`deny`,message:`Tool use rejected by approval policy`,shouldAbort:!1});return;case`always-ask`:await this.dispatchAlwaysAskApproval(e.payload,e.setResult.bind(e),o);return}})}async dispatchAlwaysAskApproval(e,t,i){let a=_(e,i),o=new AbortController,s=this.bus.on(n.session.closed,()=>{o.abort()},{filter:{agentId:a.agentId,...e.adapterSessionId!==void 0&&{adapterSessionId:e.adapterSessionId}}});try{let e=await this.bus.requestOptional(r.request,a,{timeout:0,signal:o.signal});e.handled&&e.data.action===`allow`?t({action:`allow`,...e.data.updatedInput&&{updatedInput:e.data.updatedInput}}):t({action:`deny`,message:e.handled&&e.data.action===`deny`?e.data.message??`User denied tool execution`:`No approval handler available`,shouldAbort:!1})}catch{t({action:`deny`,message:o.signal.aborted?`Approval cancelled — agent session closed`:`Tool approval request failed`,shouldAbort:!1})}finally{s()}}async checkFileAccessDenyReason(e,t){if(!this.options.fileAccessRuleProvider||!t.cwd)return;let n=s(e.toolName,e.args,t.cwd);if(n)try{return(await this.options.fileAccessRuleProvider(t.cwd,t.allowedDirectories)).isDenied(n)?`Access denied: '${n}' is restricted by .makaioignore rules`:void 0}catch{return`Access denied: file access rules could not be evaluated`}}async fetchRawEnrichedPolicy(e,t,n){try{return await this.bus.requestOptional(r.resolveEnrichedPolicy,{toolName:n,personaId:e,profileId:t})}catch(r){return this.logger.error(`[ToolApprovalService] approval.resolveEnrichedPolicy failed; falling back to fail-closed`,{toolName:n,personaId:e,profileId:t,error:r}),{handled:!1}}}async resolvePolicyWithContext(e,t,n){let r=t?.adapterName??e.adapterName,i=g(t?.personaId,t?.profileId,n),a=await this.resolveHarnessPolicy(r,t?.harnessId,t?.clientId),o=f(a,e.toolName),s=i?.policy??o??`always-ask`,c=s;return a?.capabilityOverrides&&a.toolCapabilityMap&&e.toolName&&(c=p(s,e.toolName,a.capabilityOverrides,a.toolCapabilityMap)),{policy:c,harness:a,agent:t,resolvedAdapterName:r,...i?.personaName&&{personaName:i.personaName},...i?.profileName&&{profileName:i.profileName}}}async getAgentMetadata(e,n){try{if(n){let{agents:r}=await this.bus.request(t.listBySession,{sessionId:n});return r.find(t=>t.agentId===e)??null}let r=await this.bus.requestOptional(t.get,{agentId:e});return r.handled?r.data.agent:null}catch{return null}}async resolveSessionOverride(t){if(t)try{let n=await this.bus.requestOptional(e.get,{sessionId:t});return n.handled?n.data.session?.approvalPolicyOverride??void 0:void 0}catch{return}}async resolveHarnessPolicy(e,t,n){try{let r=await this.bus.request(i.resolve,{adapterName:e,...t&&{profileHarnessId:t},...n&&{clientId:n}});return{approvalPolicy:r.approvalPolicy,capabilityOverrides:r.capabilityOverrides,toolCapabilityMap:r.toolCapabilityMap,toolApprovalOverrides:r.toolApprovalOverrides}}catch{return}}};export{v as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./json-value-D57aJhVn.mjs";import{z as t}from"zod";import{createBusNamespace as n}from"@makaio/framework/core";const r=t.object({id:t.string(),displayName:t.string(),providerKey:t.string().optional()}),i=t.object({id:t.string(),valid:t.boolean(),error:t.string().optional()}),a=t.object({capabilityId:t.string(),provider:t.unknown()}),o=t.object({capabilityId:t.string(),providerId:t.string()}),s=n(`capability`,{listProviders:{request:t.object({capabilityId:t.string()}),response:t.object({providers:t.array(r)})},validate:{request:t.object({capabilityId:t.string()}),response:t.object({results:t.array(i)})},register:a,unregister:o}),c=s.subjects,l=t.enum([`wait-in-process`,`exit-and-redispatch`,`exit-and-resume`]),u=`worker-node`,d=`makaio.runtime-node.piscina-local`,f=1,p=t.object({version:t.literal(1),providerId:t.string().min(1),providerData:e}).strict(),m={source:128,code:64,summary:512,observedAt:64},h=t.object({source:t.string().min(1).max(m.source),summary:t.string().min(1).max(m.summary),observedAt:t.iso.datetime({offset:!0}).max(m.observedAt),code:t.string().min(1).max(m.code).optional()}).strict(),g=`exhaustive-search-unavailable`,_=`no-allocation-observed`,v=`ambiguous-allocation-match`,y=`pre-request-rejection`,b=[`unknown`,`provisioning`,`ready`,`running`,`suspended`,`terminal`,`absent`],x=t.enum(b),S=t.object({state:x,allocationRef:p,evidence:e.optional()}),C=[`local-directory`,`workspace-snapshot`],w=t.enum(C),T=t.string().min(1).refine(e=>!e.startsWith(`/`)&&!/^[A-Za-z]:[/\\]/.test(e),{message:`sourcePath must be relative (no leading / or drive letter)`}),E=t.object({kind:t.literal(`local-directory`),workspaceId:t.string().min(1),rootDigest:t.string().min(1),sourcePath:T}).strict(),D=t.object({kind:t.literal(`workspace-snapshot`),snapshotId:t.string().min(1),digest:t.string().min(1),sourcePath:T}).strict(),O=t.discriminatedUnion(`kind`,[E,D]),k=/^sha(?:256|384|512)-[A-Za-z0-9+/]+=*$/,A=t.object({packageName:t.string().min(1),version:t.string().min(1),entrypoint:t.string().min(1).refine(e=>!e.includes(`node_modules`)&&!e.startsWith(`/`)&&!/^[A-Za-z]:[/\\]/.test(e),{message:`entrypoint must be package-relative (no node_modules, no absolute path)`}),integrity:t.string().min(1).refine(e=>k.test(e),{message:`integrity must be a valid SRI hash (sha256-..., sha384-..., or sha512-...)`})}).strict(),j=t.object({maxRuntimeMs:t.number().int().positive().optional(),persistentStorage:t.boolean(),customCapabilities:t.array(t.string().min(1)).default([]),suspensionStrategy:l.default(`wait-in-process`),supportsRecovery:t.boolean().default(!1),materializationModes:t.array(w).min(1).default([`local-directory`])}),M=t.object({maxRuntimeMs:t.number().int().positive().optional(),persistentStorage:t.boolean().optional(),customCapabilities:t.array(t.string().min(1)).default([]),recoverableAllocation:t.boolean().optional(),materializationModes:t.array(w).optional()}),N=[`provisioner-process-bound`,`provider-managed`],P=t.enum(N),F=[`found`,`confirmed-absent`,`unknown`],I=t.discriminatedUnion(`kind`,[t.object({kind:t.literal(`found`),allocationRef:p}).strict(),t.object({kind:t.literal(`confirmed-absent`),evidence:h}).strict(),t.object({kind:t.literal(`unknown`),evidence:h}).strict()]),L=t.enum([`accepted`,`duplicate`,`conflict`,`fenced`]);var R=class extends Error{constructor(e){super(e),this.name=`ProviderAllocationRefError`}};function z(e,t){let n=p.shape.providerId.parse(e);return{build:e=>{let r=t.parse(e);return{version:1,providerId:n,providerData:p.shape.providerData.parse(r)}},parse:e=>{if(e.version!==1)throw new R(`Unsupported allocation ref version ${String(e.version)}, expected 1`);if(e.providerId!==n)throw new R(`Allocation ref provider '${e.providerId}' does not match this provider '${n}'`);let r=t.safeParse(e.providerData);if(!r.success)throw new R(`Invalid provider data in allocation ref: ${r.error.message}`);return r.data}}}function B(e,t){if(e.length<=t)return e;let n=e.slice(0,t-1),r=n.charCodeAt(n.length-1);return`${r>=55296&&r<=56319?n.slice(0,-1):n}…`}function V(e,t,n){let r=m.summary;return h.parse({source:e,summary:B(n,r),observedAt:new Date().toISOString(),...t===void 0?{}:{code:t}})}function H(e,t){return e.emit(c.register,{capabilityId:u,provider:t})}function U(e,t){return e.emit(c.unregister,{capabilityId:u,providerId:t})}export{M as A,m as C,O as D,A as E,l as M,s as N,P as O,c as P,I as S,u as T,L as _,z as a,F as b,S as c,h as d,g as f,_ as g,w as h,R as i,D as j,j as k,x as l,C as m,U as n,b as o,E as p,V as r,v as s,H as t,d as u,y as v,N as w,p as x,f as y};
|