@makaio/framework 1.0.0-dev-1787670071418 → 1.0.0-dev-1787670559522
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 +0 -2
- package/dist/.makaio-build.json +2 -2
- package/dist/{account-identity-B3vLwm9O.mjs → account-identity-DGpXd8h_.mjs} +1 -1
- package/dist/adapter-BkdJaOOG.mjs +1 -0
- package/dist/adapter-subsystem/index.d.mts +76 -118
- 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 +53 -73
- 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/agent-namespace-D51PODFf.mjs +1 -0
- package/dist/{artifact-Btbuib48.mjs → artifact-k3veR4Yx.mjs} +1 -1
- package/dist/attach-error-BSlc7JfL.mjs +1 -0
- package/dist/{auth-C6tVtaOX.mjs → auth-A1K_7q-8.mjs} +1 -1
- package/dist/{authority-state-bootstrap-CLYus369.mjs → authority-state-bootstrap-YwtEImIB.mjs} +1 -1
- package/dist/{automation-trigger-ByjNlClm.mjs → automation-trigger-CuSdQwir.mjs} +1 -1
- package/dist/bus/index.d.mts +4 -22
- package/dist/bus/index.mjs +1 -1
- package/dist/bus-BIj0_aG6.mjs +1 -0
- package/dist/{bus-D6NoBhIV.mjs → bus-CqgrphNE.mjs} +1 -1
- package/dist/{canonical-model-DXOvCaVg.mjs → canonical-model-DJASlL4m.mjs} +1 -1
- package/dist/capabilities-Bqckjh7G.mjs +1 -0
- package/dist/capability-service-CJHNkjvm.mjs +1 -0
- package/dist/{client-BkznbdsO.mjs → client-BL5__WT0.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/{compression-CtgeVLpP.mjs → compression-BbttSqm8.mjs} +1 -1
- package/dist/{config-namespace-CjWvw8ij.mjs → config-namespace-CyzeLWSg.mjs} +1 -1
- package/dist/{context-resolution-841T7jBI.d.mts → context-resolution-ya9TXKg-.d.mts} +1 -1
- 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/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 +47 -57
- 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-CUHLVLsT.d.mts → contribution-BB5bjx3f.d.mts} +2 -2
- package/dist/core/index.d.mts +2 -25
- package/dist/{definition-DyGImhyi.d.mts → definition-BYgHlmMw.d.mts} +1 -1
- package/dist/{definition-BH4QLGLI.mjs → definition-CDg-Jq1T.mjs} +1 -1
- package/dist/{detached-extension-handle-D0aI0pJA.mjs → detached-extension-handle-DKd17UB6.mjs} +1 -1
- package/dist/drizzle/meta/_journal.json +0 -28
- package/dist/event-DR8U9Efx.mjs +1 -0
- package/dist/{execution-attempt-repository-BJ2W6wwx.d.mts → execution-attempt-repository-DFyAnchJ.d.mts} +1 -1
- package/dist/{execution-target-H0RWV7Py.mjs → execution-target-ByNwZh5-.mjs} +1 -1
- package/dist/{extension-Cz39YNXy.mjs → extension-DMdmj9gi.mjs} +1 -1
- package/dist/{extension-Bfkr2DBs.mjs → extension-DUmibvMk.mjs} +1 -1
- package/dist/{extension-discovery-Dhu3WplO.d.mts → extension-discovery-Fhps4icD.d.mts} +1 -9
- package/dist/{filesystem-service-CiUw0YN5.mjs → filesystem-service-FAtd9gWH.mjs} +1 -1
- package/dist/framework-packages-D_2hBZ-p.mjs +1 -0
- package/dist/git/index.mjs +2 -2
- package/dist/{globby-QBDqstzq.mjs → globby-BBLuT_vy.mjs} +1 -1
- package/dist/handlers-2yd00VEq.mjs +57 -0
- package/dist/{harness-YQ2ewID9.mjs → harness-KxbWGL4I.mjs} +1 -1
- package/dist/{hook-responses-9Ywsqzzq.d.mts → hook-responses-uCXAICTU.d.mts} +1 -1
- package/dist/identity-DC3Pk0ps.mjs +1 -0
- package/dist/{index-D-4jv_66.d.mts → index-1UcQWrZy.d.mts} +149 -149
- package/dist/{index-D8D-yibS2.d.mts → index-B0xJgTi-.d.mts} +4 -4
- package/dist/{index-CYjgoYeX.d.mts → index-BMVZs6pm.d.mts} +3 -3
- package/dist/{index-CPi0UpRh.d.mts → index-BSQ30wYP.d.mts} +1 -1
- package/dist/{index-DXtQRehh.d.mts → index-Bl7KWFod.d.mts} +1 -1
- package/dist/{index-D_4K3Tf_.d.mts → index-BtdK8HeH.d.mts} +168 -43
- package/dist/{index-C146Eq_J.d.mts → index-C-JzEkqs.d.mts} +1802 -536
- package/dist/{index-DI2lS7VT.d.mts → index-CER64zYO.d.mts} +15 -15
- package/dist/{index-BkbnC65b.d.mts → index-CM75k-Ff.d.mts} +17 -189
- package/dist/{index-CmwAJ8-5.d.mts → index-CSN_0sCo.d.mts} +1 -1
- package/dist/{index-CIEycZrt.d.mts → index-C__EQfKa.d.mts} +1 -1
- package/dist/{index-B0VO0rAl.d.mts → index-CfiCJPP6.d.mts} +1 -1
- package/dist/{index-BNzUyVwV.d.mts → index-CqQYgsbB.d.mts} +170 -513
- package/dist/{index-B0yMCJW8.d.mts → index-DI7-tIL3.d.mts} +14 -39
- package/dist/{index-CMekqu_D.d.mts → index-DxYDRoDE2.d.mts} +8 -28
- package/dist/index-OsbtyMgx2.d.mts +98 -0
- package/dist/{index-DJ2KgJDJ2.d.mts → index-cPqSpWQC.d.mts} +12 -12
- package/dist/{index-DNI6UF9h.d.mts → index-e4Txan9i.d.mts} +4 -4
- package/dist/{index-CPRQ4dWX.d.mts → index-nydhGvXa.d.mts} +23 -0
- package/dist/json-value-C1RGgS0a.d.mts +72 -0
- package/dist/json-value-D57aJhVn.mjs +1 -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-Cm-uEoC1.mjs → lib-B_rJ6r0T.mjs} +1 -1
- package/dist/{lib-BpGvHZye.mjs → lib-CnOAtohU.mjs} +2 -2
- package/dist/{load-extensions-DG5LvPyM.mjs → load-extensions-CW9uzNR5.mjs} +1 -1
- package/dist/{load-extensions-BQoXaHhR.d.mts → load-extensions-DUpaMQ7G.d.mts} +1 -1
- package/dist/{materialization-lVd9_-jr.mjs → materialization-CcpCDhXh.mjs} +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/model-ZH3L1dPW.mjs +1 -0
- package/dist/{namespace-BL7lHlmg.mjs → namespace-B7bntOB8.mjs} +1 -1
- package/dist/{namespace-BNp7n_gu.d.mts → namespace-BgEiY7r1.d.mts} +3 -3
- package/dist/{namespace-DknCutQZ.d.mts → namespace-C6CVEGH8.d.mts} +0 -50
- package/dist/{namespace-C06lJSuj.d.mts → namespace-ChnRTUG4.d.mts} +6 -6
- package/dist/namespace-CxrOLeeP.mjs +1 -0
- package/dist/{namespace-BRuHzhPo.d.mts → namespace-DSlfFhB1.d.mts} +2 -154
- package/dist/{native-session-supervisor-LKio8XZn.mjs → native-session-supervisor-fZYPUk0-.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/{orchestrator-shared-CNHSImNY.d.mts → orchestrator-shared-B-KRW1Z0.d.mts} +10 -9
- package/dist/orchestrator-shared-CTCZc6Vl.mjs +1 -0
- package/dist/ownership-memory-handler-Bblp93YC.mjs +1 -0
- package/dist/{package-BNFTUFLB.d.mts → package-Bf3hyuzs.d.mts} +2 -2
- package/dist/{package-JtjbO-Oi.mjs → package-CddkNbZI.mjs} +1 -1
- package/dist/{package-B01gmu75.mjs → package-ypz4rKvn.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/{profile-N5qGUpF0.mjs → profile-BtznZlq3.mjs} +1 -1
- package/dist/{provider-context-zTDSH2x9.mjs → provider-context-BrLZYnDW.mjs} +1 -1
- package/dist/{provider-context-CG42JlP9.mjs → provider-context-Dh-VOOYF.mjs} +1 -1
- package/dist/{reaction-D3TNwPK8.mjs → reaction-BS0k4eNN.mjs} +1 -1
- package/dist/{registry-Dk12tAfv.mjs → registry-BO_bOoky.mjs} +1 -1
- package/dist/{resolved-sq8RXNDf.mjs → resolved-DMByz1_2.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/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +2 -2
- package/dist/runtime-node/extension-discovery.mjs +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +4 -6
- package/dist/runtime-node/index.mjs +24 -24
- package/dist/runtime-node/makaio-config.d.mts +1 -1
- package/dist/runtime-node/makaio-config.mjs +1 -1
- package/dist/runtime-node/workflow-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-Dq-7si8u.mjs → schema-DBG7Jq5_.mjs} +1 -1
- package/dist/{schema-B3Pf7JP7.d.mts → schema-DKTzriEY.d.mts} +3 -250
- package/dist/{schemas-C1mxTfd7.d.mts → schemas-B7zo7Zcx.d.mts} +4 -60
- package/dist/schemas-BqD8LlQw.mjs +1 -0
- package/dist/{schemas-QWDnauKX.mjs → schemas-CsjN7cmM.mjs} +1 -1
- package/dist/schemas-CvHFbzdy.mjs +1 -0
- package/dist/{schemas-BfO5jkrL.mjs → schemas-DSkBOdx_.mjs} +1 -1
- package/dist/{schemas-OWvBn7AH.d.mts → schemas-DZH9lpxs.d.mts} +4 -4
- package/dist/schemas-DplrlAyR.mjs +1 -0
- package/dist/{schemas-Dd13TMgU.d.mts → schemas-DvMbcABQ.d.mts} +4 -4
- package/dist/scoped-bus-ClwTWqX8.mjs +1 -0
- package/dist/{selection-DL3ric7K.mjs → selection-7Ku8DBnh.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 +2 -3
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +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 +0 -18
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.d.mts +1 -10
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +61 -161
- 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 +1 -22
- package/dist/services/session/testing/index.mjs +14 -38
- 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.d.mts +4 -4
- 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/extension-configs/namespace.d.mts +3 -3
- 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-BMy2kRpX.mjs +90 -0
- package/dist/session-Cipx34j6.mjs +1 -0
- package/dist/{shared-B9AWRm9A.mjs → shared-BFVuCDPx.mjs} +1 -1
- package/dist/{skill-DGNtc_ww.mjs → skill-C1D51nhh.mjs} +1 -1
- package/dist/{src-BmSQ3rlz.mjs → src-xbmzokNe.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 +2 -41
- 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-BVgN9Q1r.mjs +1 -0
- package/dist/{tools-DWKWX3eV.mjs → tools-DxwHox1a.mjs} +1 -1
- package/dist/{transition-D3zUBTPc.d.mts → transition-C_Ka6b0-.d.mts} +6 -6
- package/dist/{types-CtDGkyLx2.d.mts → types-BNjPhj_a.d.mts} +1 -1
- package/dist/{types-OKJCOjme.d.mts → types-ClpEaoAm.d.mts} +4 -24
- package/dist/{types-DcxBYlPA.d.mts → types-CwvN4uN2.d.mts} +49 -3029
- 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 +1 -22
- package/dist/utils/index.mjs +2 -2
- package/dist/utils/project-manifest.mjs +1 -1
- package/dist/{version-BYeVh1pI.mjs → version-BfNnVAGr.mjs} +1 -1
- package/dist/{view-builder-B0j9p5C0.d.mts → view-builder-KYsPqV-5.d.mts} +4 -4
- package/dist/{visibility-DtDLRBdr.mjs → visibility-Dl1o2I01.mjs} +1 -1
- package/dist/worker-node-BDOYPEpi.mjs +1 -0
- package/dist/{worker-node-Dtf9ilsR.mjs → worker-node-DJ41Tr-F.mjs} +1 -1
- package/dist/workflow-Hzc5jlnV.mjs +1 -0
- package/dist/workflow-engine/execution-attempt-repository.d.mts +1 -1
- package/dist/workflow-engine/index.d.mts +95 -95
- 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-c_VQbyV0.mjs → workflow-transitions-DM0fN_eP.mjs} +1 -1
- package/dist/workflow-worker-DARC7UZl.mjs +1 -0
- package/package.json +1 -18
- package/dist/adapter-Dz1fX5Wa.mjs +0 -1
- package/dist/attach-error-Cb3GbeKe.mjs +0 -1
- package/dist/bus-UgFdHybD.mjs +0 -1
- package/dist/caller-owned-adapter-stub-C1M7FKrv.mjs +0 -1
- package/dist/capabilities-BUwuA7XX.mjs +0 -1
- package/dist/capability-j3NekkIu.mjs +0 -1
- package/dist/code-execution/worker-entry.d.mts +0 -21
- package/dist/code-execution/worker-entry.mjs +0 -1
- package/dist/code-execution-Ckmn8OZu.mjs +0 -1
- package/dist/code-execution-CweDSWco.mjs +0 -1
- package/dist/code-execution-DqkQjKa1.mjs +0 -1
- package/dist/contracts/code-execution/index.d.mts +0 -2
- package/dist/contracts/code-execution/index.mjs +0 -1
- package/dist/drizzle/0034_m_msha1388.sql +0 -41
- package/dist/drizzle/0035_m_mshgj6x7.sql +0 -40
- package/dist/drizzle/0036_m_msivwbgm.sql +0 -1
- package/dist/drizzle/0037_runtime_instance_incarnation_counter.sql +0 -6
- package/dist/event-B8ELuk6k.mjs +0 -1
- package/dist/framework-packages-BHgul8Kl.mjs +0 -1
- package/dist/handlers-BsHAFtye.mjs +0 -57
- package/dist/identity-OjRlG6dZ.mjs +0 -1
- package/dist/index-Bqk0pJBQ2.d.mts +0 -138
- package/dist/index-Cny5RvjO.d.mts +0 -800
- package/dist/index-DHnSLGP4.d.mts +0 -268
- package/dist/index-DQ8o3JGi.d.mts +0 -132
- package/dist/index-DWBkiiXH.d.mts +0 -18
- package/dist/index-Dg11JxKZ.d.mts +0 -496
- package/dist/json-value-BBZ6uGwc.mjs +0 -1
- package/dist/json-value-DPqb-SJ8.d.mts +0 -177
- package/dist/model-DrzPt3ou.mjs +0 -1
- package/dist/namespace-sCPb79-7.mjs +0 -1
- package/dist/npm-package-name-DuTYVICk.mjs +0 -1
- package/dist/orchestrator-shared-BGlN-m-V.mjs +0 -1
- package/dist/ownership-memory-handler-BpGdR_uG.mjs +0 -1
- package/dist/ownership-recovery-guard-DyW5vGBr.mjs +0 -1
- package/dist/package-DttKA9wN.mjs +0 -1
- package/dist/runtime-node/code-execution/index.d.mts +0 -3
- package/dist/runtime-node/code-execution/index.mjs +0 -1
- package/dist/schemas-C3kyQWGf.mjs +0 -1
- package/dist/schemas-TK29KWx-.mjs +0 -1
- package/dist/schemas-_2Syo_01.mjs +0 -1
- package/dist/scoped-bus-DoPmCJeM.mjs +0 -1
- package/dist/services/code-execution/index.d.mts +0 -2
- package/dist/services/code-execution/index.mjs +0 -1
- package/dist/session-BOpTI79g.mjs +0 -1
- package/dist/session-CXOPk3yg.mjs +0 -95
- package/dist/tool-approval-service-BFDOFUGC.mjs +0 -1
- package/dist/types-Cwza95hS.mjs +0 -1
- package/dist/types-DnK6Wa_Y.d.mts +0 -260
- package/dist/worker-node-CjuQb9hl.mjs +0 -1
- package/dist/workflow-C4mck_NW.mjs +0 -1
- package/dist/workflow-worker-aNbdgqml.mjs +0 -1
- /package/dist/{adapter-auth-runtime-DHHppU4f.mjs → adapter-auth-runtime-D9Lnl7cc.mjs} +0 -0
- /package/dist/{adapter-binding-CATvmGuz.d.mts → adapter-binding-B-FBoCys.d.mts} +0 -0
- /package/dist/{ajv-krzJXh1X.mjs → ajv-L5fKxaia.mjs} +0 -0
- /package/dist/{attempt-record-codec-BYfYkj4M.mjs → attempt-record-codec-DaFLKR5C.mjs} +0 -0
- /package/dist/{await-trigger-Bkg2BQfg.mjs → await-trigger-ph1S0zVI.mjs} +0 -0
- /package/dist/{base-orchestrator-B4YW6z_Q.d.mts → base-orchestrator-D9u4NyiM.d.mts} +0 -0
- /package/dist/{client-BG0WX5Vz.d.mts → client-4ihewPUm.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-0lCKZOTg.mjs → client-binary-version-verifier-DJajc_Ff.mjs} +0 -0
- /package/dist/{client-binary-version-verifier-lcv83Hq3.d.mts → client-binary-version-verifier-jDDZ64Ah.d.mts} +0 -0
- /package/dist/{clients-namespace-DLAjOTTb.d.mts → clients-namespace-DFWuUawf.d.mts} +0 -0
- /package/dist/{config-namespace-CH7sJZ4f.d.mts → config-namespace-D1kyZj0B.d.mts} +0 -0
- /package/dist/{create-static-mount-DxuixuLZ.mjs → create-static-mount-9tnGpIeK.mjs} +0 -0
- /package/dist/{cross-spawn-CZygZJMH.mjs → cross-spawn-BIgueAqr.mjs} +0 -0
- /package/dist/{cursor-storage-bsc9lZKk.mjs → cursor-storage-ROWfiTh1.mjs} +0 -0
- /package/dist/{definition-BrgzUuFk.d.mts → definition-DB-kKc0d.d.mts} +0 -0
- /package/dist/{definitions-CRpdnHYM.mjs → definitions-CF6YmEhL.mjs} +0 -0
- /package/dist/{descriptor-to-package-CcjdoWP4.mjs → descriptor-to-package-BecVCopf.mjs} +0 -0
- /package/dist/{drizzle-Bzc-OGVI.mjs → drizzle-CPv3vdTE.mjs} +0 -0
- /package/dist/{esm-i-S5TW72.mjs → esm-CBFWM8u_.mjs} +0 -0
- /package/dist/{extension-context-QmFuHdq5.d.mts → extension-context-DzB7ydM3.d.mts} +0 -0
- /package/dist/{extension-namespace-QoTTwKPt.mjs → extension-namespace-B554RmCp.mjs} +0 -0
- /package/dist/{extension-package-provenance-aYrZuS4W.mjs → extension-package-provenance-Dh_-Z-tE.mjs} +0 -0
- /package/dist/{facet-BnMh7Jyc.mjs → facet-DVsW12iF.mjs} +0 -0
- /package/dist/{filesystem-service-ZJ43SbBi.d.mts → filesystem-service-Cm2RHKBa.d.mts} +0 -0
- /package/dist/{handler-DF1fVDpf.mjs → handler-Bqlk-6BY.mjs} +0 -0
- /package/dist/{host-B-_ntOMH.mjs → host-k5yoyKHg.mjs} +0 -0
- /package/dist/{index-8NdPPzUh2.d.mts → index--atUpi5l2.d.mts} +0 -0
- /package/dist/{index-Ek4y8M9J2.d.mts → index-42UdYStR.d.mts} +0 -0
- /package/dist/{index-C4V8Pmi4.d.mts → index-BJAB-BW_.d.mts} +0 -0
- /package/dist/{index-l01zsChf.d.mts → index-BJMezANn.d.mts} +0 -0
- /package/dist/{index-D037TVsm.d.mts → index-BQprJNA_.d.mts} +0 -0
- /package/dist/{index-B4svZC6L.d.mts → index-BRCrFirq.d.mts} +0 -0
- /package/dist/{index-jxPncqWZ2.d.mts → index-BSbGB23v.d.mts} +0 -0
- /package/dist/{index-BMRB9yhF.d.mts → index-BVcQcphK.d.mts} +0 -0
- /package/dist/{index-B2Y1Wvbh.d.mts → index-BcvqDfcN.d.mts} +0 -0
- /package/dist/{index-DgspOUa72.d.mts → index-BeENojSx2.d.mts} +0 -0
- /package/dist/{index-VzLAV0Yt.d.mts → index-Beo_Ik8-.d.mts} +0 -0
- /package/dist/{index-CqdMbYmR.d.mts → index-BgGe9WZz.d.mts} +0 -0
- /package/dist/{index-kzIjbrS02.d.mts → index-Bqm0ahTQ.d.mts} +0 -0
- /package/dist/{index-B-3I98nw.d.mts → index-C7HcDpHE.d.mts} +0 -0
- /package/dist/{index-pvX-BIpr2.d.mts → index-CK3f0bAL.d.mts} +0 -0
- /package/dist/{index-B5dP8rj6.d.mts → index-CQuRTeRa.d.mts} +0 -0
- /package/dist/{index-BC-6qNeo.d.mts → index-CRmE88hi.d.mts} +0 -0
- /package/dist/{index-CVpaGijY.d.mts → index-CvW9_SzR.d.mts} +0 -0
- /package/dist/{index-BFWvT0NG.d.mts → index-CxSSdIZz.d.mts} +0 -0
- /package/dist/{index-BmevAPME2.d.mts → index-DBadVauL.d.mts} +0 -0
- /package/dist/{index-BM56936c.d.mts → index-DP3o_13U.d.mts} +0 -0
- /package/dist/{index-BfV8U4XX.d.mts → index-DgOfgjx3.d.mts} +0 -0
- /package/dist/{index-8y4hT9WL.d.mts → index-DwLRZscE.d.mts} +0 -0
- /package/dist/{index-CmbkCxj-.d.mts → index-E4SET1AA.d.mts} +0 -0
- /package/dist/{index-BuMsrli0.d.mts → index-OADt3xlS.d.mts} +0 -0
- /package/dist/{capability-service-BW1-teFU.d.mts → index-Ol9RBB0W2.d.mts} +0 -0
- /package/dist/{index-CL0Jo1b92.d.mts → index-aoxdnhJ42.d.mts} +0 -0
- /package/dist/{index-BTEJfzjE.d.mts → index-bIe_57cL.d.mts} +0 -0
- /package/dist/{jsonl-transport-Cyyh5Wje.mjs → jsonl-transport-Bp_6pB2a.mjs} +0 -0
- /package/dist/{lib-BqV8hYtk.mjs → lib-Bwdd2m81.mjs} +0 -0
- /package/dist/{model-registry-Cixxx2jv.mjs → model-registry-Y854mUml.mjs} +0 -0
- /package/dist/{model-registry-C9rFu3kV.mjs → model-registry-yURX738J.mjs} +0 -0
- /package/dist/{modes-DwsJ3yVl.mjs → modes-DmUsjHdV.mjs} +0 -0
- /package/dist/{namespace-jVTsuZHX.mjs → namespace-B9FEGuEu.mjs} +0 -0
- /package/dist/{namespace-NXm_zvL1.mjs → namespace-BFqkUTJp.mjs} +0 -0
- /package/dist/{namespace-BUYDmd0r.d.mts → namespace-Bi3CmYQy.d.mts} +0 -0
- /package/dist/{namespace-CVFaZv8x.d.mts → namespace-BusZERU8.d.mts} +0 -0
- /package/dist/{namespace-B0ftHlK3.d.mts → namespace-ByP1Iipi.d.mts} +0 -0
- /package/dist/{namespace-BGRHcrmp.d.mts → namespace-C1D77w7U.d.mts} +0 -0
- /package/dist/{namespace-Du0accdE.mjs → namespace-CFjdyNXG.mjs} +0 -0
- /package/dist/{namespace-DiwqpB-c.mjs → namespace-CfIW0hpQ.mjs} +0 -0
- /package/dist/{namespace-BW3Bfu9h.mjs → namespace-CkBbNFSU.mjs} +0 -0
- /package/dist/{namespace-DOezqDti.d.mts → namespace-CrDlawqu.d.mts} +0 -0
- /package/dist/{namespace-BdAK0lD8.d.mts → namespace-DX1Ec15L.d.mts} +0 -0
- /package/dist/{namespace-tjoxekmf.mjs → namespace-DbNWsPFY.mjs} +0 -0
- /package/dist/{namespace-CPG6u60N.d.mts → namespace-Dgg0uoe6.d.mts} +0 -0
- /package/dist/{namespace-l-HG1rLF.d.mts → namespace-DwZwGXgF.d.mts} +0 -0
- /package/dist/{namespace-DqZweTbX.d.mts → namespace-s2y_NFKf.d.mts} +0 -0
- /package/dist/{namespace-DBO1OzYB.d.mts → namespace-yREpGJgG.d.mts} +0 -0
- /package/dist/{out-8bOYN6EF.mjs → out-DrhwCgqM.mjs} +0 -0
- /package/dist/{package-EGTn-Ng1.mjs → package-CBdvjyyZ.mjs} +0 -0
- /package/dist/{packages-Bp124-gx.mjs → packages-FBv3fAOR.mjs} +0 -0
- /package/dist/{packages-CxPMEg8D.d.mts → packages-N3-2Kl-Y.d.mts} +0 -0
- /package/dist/{platform-CxyYPrkf.mjs → platform-BrsMv_S3.mjs} +0 -0
- /package/dist/{provider-operation-DbdyFwNm.d.mts → provider-operation-DJ_TLZFf.d.mts} +0 -0
- /package/dist/{providers-C-eekMxD.mjs → providers-CCcn4Ndp.mjs} +0 -0
- /package/dist/{providers-namespace-CfZKp-C0.d.mts → providers-namespace-DeJBh6MP.d.mts} +0 -0
- /package/dist/{quick-lru-CCEnf7y6.mjs → quick-lru-uwB0hP-y.mjs} +0 -0
- /package/dist/{schema-introspection-6-r_KEJQ.mjs → schema-introspection-C1wvklj9.mjs} +0 -0
- /package/dist/{schema-C0opCPww.mjs → schema-jIapW8Kb.mjs} +0 -0
- /package/dist/{schemas-BXc9qOpl.d.mts → schemas-B3bfVYcL.d.mts} +0 -0
- /package/dist/{schemas-BivbWRkG.mjs → schemas-BNdiVBWh.mjs} +0 -0
- /package/dist/{schemas-B6Q-qdmn.d.mts → schemas-CD0wOQxx.d.mts} +0 -0
- /package/dist/{schemas-B50oWBuj.d.mts → schemas-CeUI2i5j.d.mts} +0 -0
- /package/dist/{schemas-ChmQldVH.d.mts → schemas-Cg-Kwp8c.d.mts} +0 -0
- /package/dist/{schemas-Pe892GgN.d.mts → schemas-Cv3rR9Sz.d.mts} +0 -0
- /package/dist/{schemas-B8hKbBwI.mjs → schemas-DgwEVUt-.mjs} +0 -0
- /package/dist/{schemas-D7ScxLrf.d.mts → schemas-VbB1FTxx.d.mts} +0 -0
- /package/dist/{schemas-scyC2tFF.mjs → schemas-mLpOfMoN.mjs} +0 -0
- /package/dist/{schemas-bfZNpl0B.d.mts → schemas-qA279_j_.d.mts} +0 -0
- /package/dist/{schemas-BGvkTiCx.d.mts → schemas-sMoRnBdZ.d.mts} +0 -0
- /package/dist/{semver-BI7kTNsY.mjs → semver-DTXuyLcK.mjs} +0 -0
- /package/dist/{server-lifecycle-L8zja8t8.d.mts → server-lifecycle-C_8iKgat.d.mts} +0 -0
- /package/dist/{server-lifecycle-B_OZnoe-.mjs → server-lifecycle-DKx_fWlq.mjs} +0 -0
- /package/dist/{session-lineage-bUkd3fqx.d.mts → session-lineage-D5E142LU.d.mts} +0 -0
- /package/dist/{shared-schemas-CQ6blrEW.mjs → shared-schemas-aahW97QW.mjs} +0 -0
- /package/dist/{src-BacfeiI4.mjs → src-DHqsl5Pg.mjs} +0 -0
- /package/dist/{storage-namespace-BZce8kkW.mjs → storage-namespace-Dz2jsssp.mjs} +0 -0
- /package/dist/{storage-namespace-YmE8XCCL.d.mts → storage-namespace-Tf3P5yJ5.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-Cca-zwXU.mjs → storage-namespace-definition-CDef0E20.mjs} +0 -0
- /package/dist/{supports-color-SV_FgSN2.mjs → supports-color-i7OTnKcZ.mjs} +0 -0
- /package/dist/{telemetry-BqoC87F-.mjs → telemetry-BvCBUjFg.mjs} +0 -0
- /package/dist/{timeout-DVlN2Zhy.mjs → timeout-B0nYjLc8.mjs} +0 -0
- /package/dist/{tray-menu-service-eVVxgPLc.mjs → tray-menu-service-Deo6yyP8.mjs} +0 -0
- /package/dist/{types-DdpSEmTO.d.mts → types-CNS55jvt.d.mts} +0 -0
- /package/dist/{types-tyv0B605.d.mts → types-Ce6LL25v.d.mts} +0 -0
- /package/dist/{types-BlB23n4f.d.mts → types-xCdGghb2.d.mts} +0 -0
- /package/dist/{ui-config-B35GloSX.mjs → ui-config-BIyGzMNL.mjs} +0 -0
- /package/dist/{variant-Dwnge3J_.mjs → variant-B4uWdxW7.mjs} +0 -0
- /package/dist/{window-registry-Pcf35cac.d.mts → window-registry-BLtVx3Iw.d.mts} +0 -0
- /package/dist/{window-registry-CKiMJjId.mjs → window-registry-CoBJq3u4.mjs} +0 -0
- /package/dist/{zod-json-schema-Dixc-B1T.mjs → zod-json-schema-BAGAFfCN.mjs} +0 -0
package/dist/adapters/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth-runtime-
|
|
2
|
-
`):void 0}function
|
|
1
|
+
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth-runtime-D9Lnl7cc.mjs";import{i,n as a,r as o,t as s}from"../cursor-storage-ROWfiTh1.mjs";import{_ as c,a as l,c as u,d,f,g as p,h as m,i as h,l as g,m as _,n as ee,o as te,p as ne,r as re,s as ie,t as ae,u as oe,v}from"../ajv-L5fKxaia.mjs";import{z as y}from"zod";import*as se from"node:fs";import{DeferredPromise as b,resolveTimeouts as ce}from"@makaio/framework/utils";import{AuthenticationError as le,DirectoryNotFoundError as ue,ModelUnavailableError as de,QuotaExceededError as fe,RateLimitError as pe,createBusNamespace as me}from"@makaio/framework/core";import{MakaioBus as x,NoHandlerError as he,RequestError as ge}from"@makaio/framework/bus";import{AdapterSubjects as S,AgentSubjects as C,AgentToolApproveSchema as _e,HarnessSubjects as ve,MCP_CALL_TOOL_NAME as ye,McpSubjects as be,ProviderContextSchema as w,RequestCorrelationContextSchema as xe,ResolvedProviderContextSchema as Se,SessionContextSchema as T,SessionSubjects as E,aggregateTeardownEvidence as Ce,aggregateTeardownResults as we}from"@makaio/framework/contracts";import{TurnStorageSubjects as Te}from"@makaio/framework/services/turn";import{AuthCredentialRefSchema as Ee}from"@makaio/framework/contracts/auth";import{runPostUserMessageHooks as De,runPreUserMessageHooks as Oe}from"@makaio/framework/hooks";import{ProviderContextActivationError as D,ProviderContextActivationRollbackError as O,prepareProviderContextActivation as ke,resolveRuntimeProviderContext as Ae}from"@makaio/framework/services/provider-context";import je from"node:os";import{AgentStorageSubjects as k,reserveStartFor as Me}from"@makaio/framework/services/session";import*as Ne from"node:process";function Pe(e,t,n){let r=me(e,t,n),i=x.registerNamespace(r);return Object.assign(i,{definition:r})}function Fe(e){let t=[];try{return JSON.stringify(e,function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n==`object`&&n){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n},2)??`[Non-serializable value]`}catch{try{return String(e)}catch{return`[Non-serializable value]`}}}async function Ie(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});try{return await Promise.race([e,i])}finally{r!==void 0&&clearTimeout(r)}}function A(e,t){for(let n of e)try{n()}catch(e){console.warn(`[AIAgent] ${t} cleanup failed:`,e)}}function Le(e){return e.replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`'`,`'`)}function Re(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length===0?`context`:/^[A-Za-z_]/.test(t)?t:`context_${t}`}function ze(e,t){let n=Re(e);return`<${n}>\n${Le(t)}\n</${n}>`}function Be(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.name==`string`&&typeof t.description==`string`&&(t.compatibility===void 0||typeof t.compatibility==`string`)}function Ve(e){if(typeof e!=`object`||!e)return!1;let t=e,n=t.metadata,r=n;return typeof t.name==`string`&&typeof t.content==`string`&&(t.license===void 0||typeof t.license==`string`)&&(t.compatibility===void 0||typeof t.compatibility==`string`)&&(t.allowedTools===void 0||typeof t.allowedTools==`string`)&&(n===void 0||typeof n==`object`&&!!n&&Object.values(r??{}).every(e=>typeof e==`string`))}function He(e){if(!Array.isArray(e))return;let t=e.filter(Be).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>e.compatibility?`- ${e.name}: ${e.description} Compatibility: ${e.compatibility}`:`- ${e.name}: ${e.description}`);return t.length>0?t.join(`
|
|
2
|
+
`):void 0}function Ue(e){if(!Array.isArray(e))return;let t=e.filter(Ve).sort((e,t)=>e.name.localeCompare(t.name)).map(e=>{let t=[`## ${e.name}`];return e.compatibility&&t.push(`Compatibility: ${e.compatibility}`),t.push(e.content),t.join(`
|
|
3
3
|
`)});return t.length>0?t.join(`
|
|
4
4
|
|
|
5
|
-
`):void 0}function
|
|
5
|
+
`):void 0}function We(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.priority==`number`&&typeof t.renderedContent==`string`}function Ge(e){if(!Array.isArray(e))return;let t=e.filter(We).map(e=>`## ${e.name}\n${e.renderedContent}`);return t.length>0?t.join(`
|
|
6
6
|
|
|
7
|
-
`):void 0}const
|
|
7
|
+
`):void 0}const Ke=[`skillCatalog`,`skills`,`contextRules`];function qe(e){if(!e)return[];let t=[],n={skillCatalog:He,skills:Ue,contextRules:Ge};for(let r of Ke)Je(t,r,e[r],n[r]);let r=new Set(Ke),i=Object.keys(e).filter(t=>e[t]==null?!1:!r.has(t)).sort();for(let n of i)t.push({tag:n,content:Fe(e[n])});return t}function Je(e,t,n,r){if(n==null)return;let i=r(n);if(i!==void 0){e.push({tag:t,content:i});return}Array.isArray(n)&&n.length===0||e.push({tag:t,content:Fe(n)})}function Ye(e){return e.length===0?``:e.map(e=>ze(e.tag,e.content)).join(`
|
|
8
8
|
|
|
9
|
-
`)}function
|
|
9
|
+
`)}function Xe(e){let t=new Set(e),n={hasAll:e=>e.every(e=>t.has(e)),hasAny:e=>e.some(e=>t.has(e))};for(let t of e){let e=t.split(`:`).map((e,t)=>t===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join(``);n[e]=!0}return n}function j(e){if(typeof e==`string`)return{role:`user`,blocks:[{type:`text`,content:e}],message:e};let t=Array.isArray(e.blocks)?e.blocks:[e.blocks],n=t.find(e=>e.type===`text`);return{role:e.role??`user`,blocks:t,message:n?.content}}function Ze(e,t){return{discriminator:e,handlers:t}}function Qe(e,t){return{discriminator:e,handlers:t}}async function $e(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];i&&await i(e,n)}}function et(e,t,n){let r=Array.isArray(e)?e:[e];for(let e of r){let r=e[t.discriminator],i=t.handlers[r];if(i&&i(e,n)instanceof Promise)throw Error(`processDiscriminatedItemsSync: Handler for '${r}' returned a Promise. Use processDiscriminatedItems (async) instead, or ensure all handlers are synchronous.`)}}function M(e){return e?.trim()||void 0}function tt(e){if(!e)return{state:`unresolved`};let t=(e.authMethods??[]).find(({mode:e})=>e===`explicit`||e===`none`);if(!t)return{state:`unresolved`};let n={state:`resolved`,providerConfigId:`test-provider-config-id`,definitionId:e.id,...e.endpoints?{endpointOverrides:{...e.endpoints}}:{},...e.capabilities?{capabilities:structuredClone(e.capabilities)}:{}};if(t.mode===`none`)return{...n,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:{...t}}};let r=t.fields.flatMap(e=>{let n=e.sourceHints.find(({kind:e})=>e===`environment`);if(!n&&e.required)throw Error(`Conformance auth method "${t.id}" field "${e.id}" has no environment source hint.`);return n?[[e.id,Ee.parse(`env:${n.variable}`)]]:[]}),i=Object.fromEntries(r);return{...n,auth:{mode:`explicit`,method:{owner:`provider`,providerDefinitionId:e.id,methodId:t.id},definition:structuredClone(t),credentialRefs:i}}}function nt(e,t,n,r=[]){let i=e?.providerContext===void 0?tt(n):w.parse(e.providerContext),a=i.state===`resolved`?r.find(({definitionId:e})=>e===i.definitionId):void 0,o=r.flatMap(e=>e!==a&&e.auth!==void 0?[e.auth]:[]),{providerContext:s,...c}=e??{};return{...c,bus:t,agentId:crypto.randomUUID(),adapterId:crypto.randomUUID(),adapterName:e?.adapterName??`test-adapter`,providerContext:i,...a?.protocol!==void 0&&{providerProtocol:a.protocol},...a?.auth!==void 0&&{adapterProviderAuth:a.auth},compatibleProviderAuths:o}}const rt=`MAKAIO_CONFORMANCE_PROVIDER`,it=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,at=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,N=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function ot(e){let t=[],n=new Set;for(let r of e)n.has(r.id)||(n.add(r.id),t.push(r));return t}function st(e){let t=M(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${N} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${N} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${N}[${e}] must be a provider object with an id`);return n}function ct(e,t,n,r){let i=new Map;for(let e of[...r,...n])i.set(e.id,e);let a=t.map(e=>i.get(e)).filter(e=>!!e),o=t.filter(e=>!i.has(e));if(o.length>0)throw Error(`[${e}] Conformance provider catalog is missing provider definitions: ${o.join(`, `)}. Run through yarn test:conformance so provider contributions are loaded.`);return ot(a)}function lt(e,t,n,r,i){if(r)return r;let a=n===`primary`?`fastModel/defaultModel`:`defaultModel`;throw Error(`[${e}] Provider '${t.id}' cannot be used for conformance tests: missing ${a}. Set ${i} or add a model to the provider definition.`)}function ut(e){let t=e.readEnv??(e=>process.env[e]),n=e.providerEnvVar??`MAKAIO_CONFORMANCE_PROVIDER`,r=e.primaryModelEnvVar??`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,i=e.secondaryModelEnvVar??`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,a=st(t(N)),o=ct(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=M(t(n)),c=s??e.testProviderDefinitionId,l=o.find(e=>e.id===c);if(!l){let t=o.map(e=>e.id).join(`, `);throw Error(`[${e.adapterName}] Unknown conformance provider '${c}' from ${s?n:`testProviderDefinitionId`}. Available providers: ${t}`)}let u=lt(e.adapterName,l,`primary`,M(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=lt(e.adapterName,l,`secondary`,M(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:tt(l),primaryModel:{definitionId:l.id,modelName:u,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0},secondaryModel:{definitionId:l.id,modelName:d,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0}}}function dt(e){let{adapterName:t,providers:n,adapterProviders:r}=e;return n.map(e=>{let n=r.find(t=>t.definitionId===e.id);if(!n){let n=r.map(e=>e.definitionId).join(`, `);throw Error(`[${t}] Conformance provider '${e.id}' is not declared by the adapter. Declared providers: ${n||`none`}.`)}return{definition:e,...n.protocol!==void 0&&{protocol:n.protocol},...n.auth!==void 0&&{auth:n.auth}}})}async function ft(e,t,n,r){let i=n===void 0?await e.requestOptional(ve.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(ve.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function pt(e){switch(e.type){case`text`:return e.content;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName??e.fileName}]`;case`reasoning`:return`[Reasoning]\n${e.content}`;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args,null,2)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`}]\n${e.output}`}}function mt(e){return e.map(e=>{let t=e.role??`user`;return`${t.charAt(0).toUpperCase()+t.slice(1)}: ${(Array.isArray(e.blocks)?e.blocks:[e.blocks]).map(pt).join(`
|
|
10
10
|
`)}`}).join(`
|
|
11
|
-
`)}function gt(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function _t(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return gt(e)}}function N(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function vt(e,t,n,r=!1){return N(e,t,`sessionId`,n,r)}function yt(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=vt(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:N(t.agentId,e.agentId,`agentId`,n,i),adapterId:N(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:N(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:N(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const bt={request:ve.request.extend({sessionId:v.string().optional()}),response:ve.response};function xt(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(S.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function St(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function Ct(e){let t=St(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function P(){return{state:`unresolved`}}function F(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function I(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...Te(e),...t!==void 0&&{closeError:t}}}async function L(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const R=2e3,z=1e4;async function B(e,t=R){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function wt(e){return await B(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${R}ms.`}}function Tt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function V(e){return e instanceof Error?e.message:String(e)}function Et(e,t){return`${e} failed (${V(t)})`}async function Dt(e,t){try{await t();return}catch(t){return Et(e,t)}}function Ot(e,t){if(t.length!==0)return F(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function kt(e,t,n){return{evidence:we([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function H(e){let t=await(e.prepareAuthRuntime??n)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await jt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function U(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?F(`Connector close failed: ${V(t.failed)}`,t.failed):F(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:F(`Client config lease release failed: ${V(n)}`,n)}async function At(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await U(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function jt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Mt=class{runtimes=new Set;async create(e){let t=await H(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=U({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Nt(e=`test-provider-config`,t=`test-provider`){return{state:`resolved`,providerConfigId:e,definitionId:t,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:t,methodId:`none`},definition:{id:`none`,mode:`none`,label:`No authentication`}}}}var Pt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},Ft=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};const W=`Session closed before queued message could be processed`;async function It(e,t){let n=t.getCurrentTurn(),r=t.extractContent??Rt;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c)!==!1}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),It(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function Lt(e,t=W){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function Rt(e){return e.message.message}const zt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Bt(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:zt.includes(t),statesToEmit:[...n,t]}}var Vt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new y;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new y,this.deferredAcknowledgement=new y,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ht(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var Ut=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Wt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new i;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new Ut;adapterName;systemPrompt;constructor(e){let t=e.cwd??Me.tmpdir();if(!ce.existsSync(t))throw new de(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??b,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??le([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=r(e?.env??Pe.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Bt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Vt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof _e||e instanceof ge)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},Gt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await B(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation),e.exited?.then(()=>this.unproven.delete(e.generation),()=>void 0)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:kt(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},Kt=class{config;bus;sessionId;currentTurn;closing=!1;constructor(e){this.config=e,this.bus=e.bus}completeHandleIfClosing(e){return this.closing?(e.isProcessed||e.markCompleted({outcome:`error`,error:Error(W)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},qt=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},Jt=class extends qt{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},Yt=class extends Wt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(W)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw Lt(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Xt(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var Zt=class{currentMessageHandle;pendingTrackedHandles=[];currentTurnId;handleTurnIds=new WeakMap;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageHandle?.messageId}getCurrentMessageHandle(){return this.currentMessageHandle}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentMessageHandle!==void 0&&this.handleTurnIds.has(this.currentMessageHandle)?this.handleTurnIds.get(this.currentMessageHandle):this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageHandle=e,this.removePendingHandle(e),e.wasDelivered||e.markAcknowledged(!0),this.emitGlobal(S.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(S.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageHandle===e?this.currentMessageHandle=this.pendingTrackedHandles.shift():this.removePendingHandle(e),this.currentTurnId===n&&(this.currentTurnId=void 0),e.wasDelivered&&this.emitGlobal(S.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(S.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}removePendingHandle(e){let t=this.pendingTrackedHandles.indexOf(e);t>=0&&this.pendingTrackedHandles.splice(t,1)}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;this.handleTurnIds.set(e,i),e.isProcessed||(this.currentMessageHandle===void 0?this.currentMessageHandle=e:this.pendingTrackedHandles.push(e),n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}})),e.waitForAcknowledgment().then(t=>{t&&this.acknowledge(e,i)},()=>{}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Qt=class{pending=[];register(e,t,n,r){let i=r??crypto.randomUUID();return this.pending.push({messageId:e,correlationId:i,toolName:t,args:n,nativeId:r,registeredAt:Date.now()}),i}resolve(e,t){if(t.nativeId){let n=this.pending.findIndex(n=>n.messageId===e&&n.nativeId===t.nativeId);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(t.toolName){let n=this.pending.findIndex(n=>n.messageId===e&&n.toolName===t.toolName);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!t.nativeId&&!t.toolName){let t=this.pending.findIndex(t=>t.messageId===e);if(t<0)return{correlationId:null,strategy:`none`};let[n]=this.pending.splice(t,1);return{correlationId:n.correlationId,strategy:`oldest`,toolName:n.toolName,args:n.args}}return{correlationId:null,strategy:`none`}}clearAll(){this.pending=[]}clearMessage(e){this.pending=this.pending.filter(t=>t.messageId!==e)}};function $t(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=en({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function en(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function tn(e,t){return e?.find(e=>e.definition.id===t)?.auth}function nn(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function rn(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function an(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:nn(e,t.definitionId),adapterProviderAuth:tn(e,t.definitionId),compatibleProviderAuths:rn(e,t.definitionId)}}function on(e,t,n){if(e.length===0)return;if(n)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function sn(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:w.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function cn(e){if(e instanceof me||e instanceof ue||e instanceof fe||e instanceof pe)return e.code}function ln(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function un(e,t,n){let r=n??t;return r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${e}" — using unresolved provider state.`),r??P()}function dn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function fn(e){let{config:t,overrides:n}=e,r=un(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=an(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:dn(n,e.currentReasoningEffort),supportedReasoningLevels:ln(e.availableModels,n?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:n?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},ephemeral:t.ephemeral,clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(t,n)=>{n&&e.clearAllToolCalls()}}}function pn(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const mn=[`idle`,`active`];function hn(e,t,n){e.requestOptional(O.updateStatus,{agentId:t,status:n,expectedStatus:[...mn]}).catch(()=>void 0)}function G(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function gn(e,t,n){try{return await e.emit(S.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function _n(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var vn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;callerSettlementPending=!1;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&(this.callerSettlementPending=!0),e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.callerSettlementPending||this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.callerSettlementPending=!1,e!==void 0&&(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0)}async announce(e){let t=await gn(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,machineId:this.host.machineId,ownerInstanceId:this.host.ownerInstanceId,sessionId:this.host.sessionId}}};function yn(e,t){let n={...e};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return Object.keys(n).length===0?void 0:n}var bn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:_n(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?w.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=A(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:G(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:yn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?w.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=A(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:G(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:yn(o.sessionContext?.requestCorrelation,{sessionId:this.sessionId}),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.assertCanonicalMessageId(t?.messageId,u.messageHandle,i,`start`),this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u})}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:ke({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){Oe({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}assertCanonicalMessageId(e,t,n,r){if(e===void 0||t.messageId===e)return;let i=Error(`Adapter connector contract violation (${this.adapterId}, ${r}): expected MessageHandle.messageId ${JSON.stringify(e)}, received ${JSON.stringify(t.messageId)}`);throw t.markCompleted({outcome:`error`,error:i}),n.handleError(i,!0),i}};function xn(e){let t=e.globalBus.withFilter({agentId:e.agentId}),n=[t.on(S.sendMessage,e.onSendMessage),t.on(S.interrupt,e.onInterrupt),t.on(S.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(S.cwd.change,async t=>{t.setResult(await e.onCwdChange(t.payload))}),t.on(S.model.change,async t=>{t.setResult(await e.onModelChange(t.payload))}),t.on(S.mcp.servers.set,async t=>{t.setResult(await e.onMcpServersSet(t.payload))}),t.on(S.credential.change,async t=>{t.setResult(await e.onCredentialChange(t.payload))}),e.globalBus.on(xe.tools.updated,e.onMcpToolsChanged),e.globalBus.on(xe.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(T.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var Sn=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;getActiveMessageHandle;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel,this.getActiveMessageHandle=e.getActiveMessageHandle}async trackUsage(e){let t=this.getActiveMessageHandle()?.requestCorrelation,n={...e,model:this.getUsageModel()??`unknown`};n.executionId===void 0&&t?.executionId!==void 0&&(n.executionId=t.executionId),n.frameId===void 0&&t?.frameId!==void 0&&(n.frameId=t.frameId),await this.emitUsagePayload(n)}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n,r){let i=this.toolCallTracker.register(e,t,n,r);return await this.emitToolUsePayload({messageId:e,toolName:t,args:n,toolCallId:i}),i}async emitToolOutput(e,t,n){let{correlationId:r,strategy:i,toolName:a,args:o}=this.toolCallTracker.resolve(e,n);if(!r){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()});let r=crypto.randomUUID();return await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:n.toolName??a}),{toolCallId:r,toolName:n.toolName??a??`unknown`}}return i===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:a,args:o}),{toolCallId:r,toolName:a??`unknown`,args:o}}async emitStepStarted(e,t,n){await this.emitOwnedStepStarted(void 0,e,t,n)}async emitStepStartedForMessage(e,t,n,r){await this.emitOwnedStepStarted(e,t,n,r)}async emitOwnedStepStarted(e,t,n,r){await this.emitStepStartedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),blockData:n,content:r})}async emitStepFinished(e,t){await this.emitOwnedStepFinished(void 0,e,t)}async emitStepFinishedForMessage(e,t,n){await this.emitOwnedStepFinished(e,t,n)}async emitOwnedStepFinished(e,t,n){await this.emitStepFinishedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),content:n}),this.incrementBlockIndex()}},Cn=class e{static COMPLETION_DEDUP_LIMIT=1024;sessionClosedEmitted=!1;completedMessageIds=new Set;completedMessageOrder=[];config;constructor(e){this.config=e}async emitStart(e){await this.config.emitStarted(e)}async emitCompletion(t){if(!this.completedMessageIds.has(t.messageId)){this.completedMessageIds.add(t.messageId);try{if(await this.config.onBeforeEmitCompletion(),this.config.clearMessageToolCalls(t.messageId),await this.config.emitComplete(t),this.completedMessageOrder.push(t.messageId),this.completedMessageOrder.length>e.COMPLETION_DEDUP_LIMIT){let e=this.completedMessageOrder.shift();e!==void 0&&this.completedMessageIds.delete(e)}hn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},wn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},Tn=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await Ae(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},K=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},q=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},En=class{config;constructor(e){this.config=e}async handle(e){let t=Ce.parse(e.providerContext),n=t.providerConfigId;return this.hasProviderMismatch(n)?{success:!1,reason:`provider_mismatch`}:this.config.sequencer.queue(n,e.changeSequence)?this.config.runExclusive(()=>this.applyQueuedChange(t,e.changeSequence)):{success:!1,reason:`stale_change`}}async applyQueuedChange(e,t){let n=e.providerConfigId;if(this.hasProviderMismatch(n))return this.config.sequencer.release(n,t),{success:!1,reason:`provider_mismatch`};if(!this.config.sequencer.isLatest(n,t))return{success:!1,reason:`stale_change`};let r=this.config.getConnector();if(r.getProcessingState()!==`idle`)return this.config.sequencer.release(n,t),{success:!1,reason:`turn_active`};let i;try{return this.assertGuard(n,t,r),i=await Tn.prepare(this.config.globalBus,e),this.assertGuard(n,t,r),await this.config.swapConnectorUnlocked({providerContext:e},async()=>{this.assertGuard(n,t,r),await i?.commit()}),this.config.setProviderContext(e),this.config.sequencer.markApplied(n,t),await this.config.persistProviderConfigId(n),{success:!0,swapped:!0}}catch(e){return this.config.sequencer.release(n,t),this.handleFailure(e,i)}}async handleFailure(e,t){if(t!==void 0)try{await t.rollbackPending()}catch(t){let n=Dn(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof K)throw e;if(e instanceof D)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof q?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof E?`credential_activation_failed:${e.code}`:`credential_swap_failed`}}hasProviderMismatch(e){let t=this.config.getProviderContext();return t?.state===`resolved`&&t.providerConfigId!==e}assertGuard(e,t,n){if(!this.config.sequencer.isLatest(e,t))throw new q(`stale_change`);if(n.getProcessingState()!==`idle`)throw new q(`turn_active`)}};function Dn(e){return e instanceof q?Error(`Credential change rejected (${e.reason}).`):e instanceof E||e instanceof D?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var On=class{getConnector;swapConnectorUnlocked;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{await this.swapConnectorUnlocked({mcpSessionContext:e.mcpSessionContext})}catch{return{success:!1,reason:`mcp_servers_set_failed: connector_replacement_failed`}}try{this.setMcpSessionContext(e.mcpSessionContext)}catch{return{success:!1,reason:`mcp_servers_set_committed_postprocess_failed`}}return{success:!0,swapped:!0}}};function kn(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&J(e.endpointOverrides,t.endpointOverrides)&&J(e.auth,t.auth)&&J(e.capabilities,t.capabilities)}function J(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(!An(e)||!An(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&J(e[n],t[n]))}function An(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function jn(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(S.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var Mn=class{config;stagedModelChange;constructor(e){this.config=e}async applyStagedMutation(){if(this.config.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e===void 0)return;this.stagedModelChange=void 0;let t=await this.handle(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}async handle(e){let t=this.config.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext===void 0?void 0:C.parse(e.providerContext),o=t.model,s=t.currentReasoningEffort,c=this.hasProviderContextChanged(this.config.getProviderContext(),a);if(n===void 0&&r===void 0&&!c)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(n===void 0&&!c)return r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r);let l=n??o;return o===l&&!c?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:l,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:c,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let i=this.resolveReasoningEffort(r,n,e.supportedReasoningLevels),a;try{a=await e.changeReasoningInPlace(r).catch(()=>!1),a||await this.config.swapConnectorUnlocked({model:e.model,reasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_failed: connector_mutation_failed`}}let o=this.config.getConnector();try{o.currentReasoningEffort=i,this.config.setReasoningEffort(i)}catch{return{success:!1,reason:`reasoning_change_committed_postprocess_failed`}}try{await this.config.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_committed_event_failed`}}return{success:!0,swapped:!a,model:t,appliedReasoningEffort:i,supportedReasoningLevels:o.supportedReasoningLevels}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,providerContext:i,isProviderChange:a,skipWarning:o}=e,s=!a&&await t.changeModelInPlace(r).catch(()=>!1),c=!1;if(s)t.model=r;else{try{let e=await this.confirmConnectorSwap(n,r,o);if(!e.proceed)return e.result;c=e.requestEditHistory}catch(e){return{success:!1,reason:Nn(e)}}let t;try{a&&i!==void 0&&(t=await Tn.prepare(this.config.globalBus,i)),await this.config.swapConnectorUnlocked({model:r,reasoningEffort:this.resolveReasoningEffort(e.reasoningEffort,e.previousReasoningEffort,this.config.resolveSupportedReasoningLevels(r)),...i&&{providerContext:i}},async()=>t?.commit())}catch(e){if(t!==void 0)try{await t.rollbackPending()}catch(e){let t=Error(`Model/provider connector replacement failed.`);throw AggregateError([t,e],`Model/provider replacement and account activation rollback both failed.`,{cause:t})}if(e instanceof D)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:Nn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof K?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(T.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await jn({bus:this.config.globalBus,agentId:this.config.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:!kn(e,t)}};function Nn(e){return e instanceof E?`model_change_failed: provider_activation_${e.code}`:e instanceof D?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var Pn=class{queuedSequences=new Map;appliedSequences=new Map;queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}},Fn=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new Pn;constructor(e){this.agentId=e.agentId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.runExclusive=e.runExclusive,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.emitCwdChanged=e.emitCwdChanged,this.mcpServersMutationManager=new On({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new Mn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,emitModelChanged:e.emitModelChanged,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels,persistRuntimeMutation:e=>this.persistRuntimeMutation(e)}),this.credentialChangeManager=new En({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof K)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(O.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new K}catch(e){throw e instanceof K?e:new K}}},In=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){k(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){k(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){k(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return H({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await U(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){k(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await U(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},Ln=class{tail=Promise.resolve();async runExclusive(e){let t=this.tail,n;this.tail=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}},Rn=class{config;barrier=new Ln;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await Tn.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await U(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function zn(e){return new wn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Bn(e){return new Sn({emitUsage:async t=>{await e.emitGlobal(S.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(S.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(S.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(S.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(x.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(S.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(S.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel,getActiveMessageHandle:()=>e.lifecycleTracker.getCurrentMessageHandle()})}function Vn(e){return new Cn({agentId:e.agentId,globalBus:e.globalBus,emitStarted:async t=>{await e.emitGlobal(S.started,t)},emitComplete:async t=>{await e.emitGlobal(S.complete,t)},emitSessionClosed:async t=>{await e.emitGlobal(S.session.closed,t)},onBeforeEmitCompletion:e.onBeforeEmitCompletion,clearMessageToolCalls:e.clearMessageToolCalls})}function Hn(e){return new bn(e)}function Un(e){return new Fn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,runExclusive:e.runExclusive,swapConnectorUnlocked:e.swapConnectorUnlocked,emitCwdChanged:async t=>{await e.emitGlobal(S.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(S.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Wn(e){return new In({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(S.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(x.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function Gn(e){return new Rn(e)}var Kn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=_(),n=p(),r=f(),i=se(),a={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>o(e,e.schema)};function o(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,c=a.errSchemaPath===`#`?a.validateName:s(e);i.if((0,t._)`!${o}`,()=>i.assign(o,c))}e.dynamicAnchor=o;function s(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=a})),qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=_(),n=p(),r=se(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),Jn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Kn(),n=c();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,t.dynamicAnchor)(e,``):(0,n.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),Yn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=qn();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),Xn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Kn(),n=qn(),r=Jn(),i=Yn();e.default=[t.default,n.default,r.default,i.default]})),Zn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ae();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),Qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ae();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),$n=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=c();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:n,it:r}){n.contains===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),er=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Zn(),n=Qn(),r=$n();e.default=[t.default,n.default,r.default]})),tr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=c(),r=p();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,t._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:i,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof t.Name?i.if((0,t._)`${u} !== true`,()=>i.forIn(`key`,o,e=>i.if(f(u,e),()=>d(e)))):u!==!0&&i.forIn(`key`,o,e=>u===void 0?d(e):i.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,t._)`${s} === ${r.default.errors}`);function d(r){if(a===!1){e.setParams({unevaluatedProperty:r}),e.error(),l||i.break();return}if(!(0,n.alwaysValidSchema)(c,a)){let a=i.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:r,dataPropType:n.Type.Str},a),l||i.if((0,t.not)(a),()=>i.break())}}function f(e,n){return(0,t._)`!${e} || !${e}[${n}]`}function p(e,n){let r=[];for(let i in e)e[i]===!0&&r.push((0,t._)`${n} !== ${i}`);return(0,t.and)(...r)}}}})),nr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=_(),n=c();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=r.const(`len`,(0,t._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,t._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,n.alwaysValidSchema)(o,i)){let n=r.var(`valid`,(0,t._)`${c} <= ${s}`);r.if((0,t.not)(n),()=>l(n,s)),e.ok(n)}o.items=!0;function l(i,a){r.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:n.Type.Num},i),o.allErrors||r.if((0,t.not)(i),()=>r.break())})}}}})),rr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=tr(),n=nr();e.default=[t.default,n.default]})),ir=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),ar=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),or=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),sr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),cr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),lr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),ur=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),dr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ir(),n=ar(),r=or(),i=sr(),a=cr(),o=lr(),s=ur(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),fr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let n=d(),r=ie(),i=Xn(),a=er(),o=rr(),s=g(),c=dr(),l=`https://json-schema.org/draft/2019-09/schema`;var u=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(i.default),r.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(a.default),this.addVocabulary(o.default),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(c.default.call(this,e),this.refs[`http://json-schema.org/schema`]=l)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}};e.Ajv2019=u,t.exports=e=u,t.exports.Ajv2019=u,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=u;var f=ee();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var p=_();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return p._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return p.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return p.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return p.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return p.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return p.CodeGen}});var m=h();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return m.default}});var te=re();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return te.default}})})),pr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=te(),n=u(),r=ne(),i=Xn(),a=er(),o=rr(),s=l(),c=m();e.default=[i.default,t.default,n.default,(0,r.default)(!0),s.default,c.metadataVocabulary,c.contentVocabulary,a.default,o.default]})),mr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),hr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),gr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),_r=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),vr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),yr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),br=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),xr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),Sr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=mr(),n=hr(),r=gr(),i=_r(),a=vr(),o=yr(),s=br(),c=xr(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),Cr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=d(),r=pr(),i=g(),a=Sr(),o=`https://json-schema.org/draft/2020-12/schema`;var s=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(a.default.call(this,e),this.refs[`http://json-schema.org/schema`]=o)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}};e.Ajv2020=s,t.exports=e=s,t.exports.Ajv2020=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s;var c=ee();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return c.KeywordCxt}});var l=_();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return l.CodeGen}});var u=h();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return u.default}});var f=re();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),wr=e(oe(),1),Tr=e(fr(),1),Er=e(Cr(),1);const Dr=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),Or=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var kr=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new wr.default({allErrors:!0,strict:!1});draft2019Ajv=new Tr.default({allErrors:!0,strict:!1});draft2020Ajv=new Er.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(S.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(S.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(S.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(S.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&Or.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Dr.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}},Ar=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:I([...this.unreported,e])}};function jr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return zn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:_n(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function Mr(e){return t=>{e(S.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var Nr=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Zt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Qt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new Ar;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??b},this.availableModels=e.availableModels,this.adapterSessionTracker=new vn(this.globalBus,this.config),this.payloadEmitter=jr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=Mr(t),this.eventBridge=Bn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=Gn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=Hn({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Un({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>ln(this.availableModels,e)}),this.lifecycleEmitter=Vn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new kr({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Wn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await H({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...xn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await At({runtime:t,handlerCleanups:n,primaryError:e,agentId:this.agentId})}}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n,r){return this.eventBridge.emitToolUse(e,t,n,r)}async emitToolOutput(e,t,n){return this.eventBridge.emitToolOutput(e,t,n)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){hn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return fn({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await U(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=bn.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:pn({structuredOutputManager:this.structuredOutputManager,getConnector:()=>this.connector,sessionId:this.sessionId,messageHandle:e,responseSchema:n});this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error,i=r instanceof Error?r.message:r,a=r instanceof Error?cn(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}acknowledgeCallerSettledAdapterSession(e){this.adapterSessionTracker.recordCallerSettled(e)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Xt(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},Y=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},Pr=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}hasLifecycleWorkInFlight(){return this.teardowns.size>0||this.swapRetirementCounts.size>0}replacementAgentIdsInFlight(){return this.swapRetirementCounts.keys()}admitSwap(e,t){if(this.teardowns.has(e))throw new Y(e,`teardown-in-flight`);if(!t())throw new Y(e,`no-runtime`);let n=new y,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new y,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return Fr(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),F(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await Fr(t.closeCurrent())];for(let e of r.unclosed)i.push(await Fr(t.closeUnclosed(e)));return I(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?z:Math.min(z,Math.max(0,t-Date.now()-R));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function Fr(e){try{return await e}catch(e){return F(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function Ir(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function Lr(e){let{serverName:t,originalName:n}=Ir(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var Rr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=Lr(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function zr(e){return typeof e.tool==`string`?e.tool:void 0}function Br(e){return e===be}const Vr={sessionId:`x-factory-session-id`,turnId:`x-factory-turn-id`,messageId:`x-factory-message-id`,llmCallId:`x-factory-llm-call-id`,executionId:`x-factory-execution-id`,frameId:`x-factory-frame-id`},Hr=Se.shape.sessionId.unwrap(),Ur=Se.extend({llmCallId:Hr});function Wr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function Gr(e){let t=Ur.parse(e),n={};for(let[e,r]of Object.entries(Vr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function Kr(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function qr(e,t){if(e?.deferred!==!0)return t}function X(e){return e?.deferred!==!0}function Jr(e){e.deferred=!1}function Z(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function Yr(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Z(e)}}var Xr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;startFlights=new Set;settlementAckFlights=new Map;terminalTeardownReports=new Map;lifecycleState=`open`;globalBus;adapterName;ownerInstanceId;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.ownerInstanceId=e.ownerInstanceId,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Z(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}beginStart(){if(this.lifecycleState!==`open`)return;let e,t=new Promise(t=>{e=t});return this.startFlights.add(t),()=>{e!==void 0&&(e(),e=void 0,this.startFlights.delete(t))}}reopen(){if(this.lifecycleState!==`open`){if(this.lifecycleState!==`closed`||this.arbiter.hasLifecycleWorkInFlight())throw Error(`ActiveAgentRegistry ${this.adapterName} cannot reopen before shutdown fully settles`);this.lifecycleState=`open`}}acknowledgeCallerSettlement(e,t,n=!1){let r=this.entries.get(e);if(r===void 0)return Promise.resolve({acknowledged:!1,reason:`not-hosted`});let i=r.pendingCallerSettlement;if(i===void 0||i.token!==t)return Promise.resolve({acknowledged:!1,reason:`stale-token`});let a=this.settlementAckFlights.get(e);if(a!==void 0)return a.token===t?a.promise:Promise.resolve({acknowledged:!1,reason:`stale-token`});if(this.arbiter.hasTeardownInFlight(e))return Promise.resolve({acknowledged:!1,reason:`teardown-in-flight`});let o,s,c=new Promise((e,t)=>{o=e,s=t});this.settlementAckFlights.set(e,{token:t,promise:c});let l=()=>{this.settlementAckFlights.get(e)?.promise===c&&this.settlementAckFlights.delete(e)};return c.then(l,l),this.finishCallerSettlementAck(e,r,i,n).then(o,s),c}async finishCallerSettlementAck(e,t,n,r){if(!r){let r;try{r=await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`,expectedStatus:[`starting`,`dead`]})}catch(e){throw t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),e}if(!r.handled||!r.data.transitioned)return t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),{acknowledged:!1,reason:`status-refused`}}return this.entries.get(e)!==t||t.pendingCallerSettlement!==n?{acknowledged:!1,reason:`not-hosted`}:(Jr(n.publication),t.agent.acknowledgeCallerSettledAdapterSession(n.adapterSessionId),t.pendingCallerSettlement=void 0,t.callerOwnsAgentRow=!1,{acknowledged:!0})}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Z(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,{...t,ownerInstanceId:this.ownerInstanceId,callerOwnsAgentRow:t.callerOwnsAgentRow===!0}),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear(),this.terminalTeardownReports.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){if(this.pendingAgentIdentityClaims.has(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`};if(this.arbiter.hasReplacementInFlight(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`};let t=this.terminalTeardownReports.get(e);return t===void 0?{found:!1,evidence:`released`}:{found:!1,...t}}async teardownFlight(e,t){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);try{let n=!this.arbiter.hasTeardownInFlight(e),r=await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>U(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()});if(!n||this.arbiter.hasReplacementInFlight(e))return r;let i=this.terminalTeardownReports.get(e),a=i===void 0?r:I([i,r]);return this.terminalTeardownReports.set(e,a),a}finally{this.entries.delete(e)}}async evict(e,t={}){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);let r=this.getEntryCallerOwnsAgentRow(e),i=await this.teardownFlight(e,t);if(!r)try{await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`dead`})}catch(t){if(i.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(i.closeError!==void 0)throw i.closeError;return i}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);if(t.responsibility!==`connector-only`)try{await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){this.lifecycleState=`closing`,await Promise.all([...this.startFlights]);let e=new Set([...this.entries.keys(),...this.arbiter.replacementAgentIdsInFlight()]),t=new Map(this.terminalTeardownReports);await Promise.all([...e].map(async e=>{let n=t.get(e),r=this.hasTeardownSubject(e)?await this.teardownFlight(e,{}):this.reportWithNothingToTearDown(e),i=this.terminalTeardownReports.get(e);t.set(e,i!==void 0&&i!==n?i:n===void 0?r:I([n,r]))}));let n=[...t.values()];return this.clear(),this.lifecycleState=`closed`,n}getEntryCallerOwnsAgentRow(e){return this.entries.get(e)?.callerOwnsAgentRow??!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Zr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(Ee.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function Q(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Qr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(O.get,{agentId:t});if(!n.handled||!n.data.agent)return Q(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return Q(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await je(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Zr(e.globalBus,o.sessionId,t)}}catch(e){return Q(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}async function $r(e,t){let n=await Ae(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function ei(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function ti(e){let t;try{await e.cleanup?.()}catch(e){t=e}let n;if(e.activation.transaction!==void 0&&!e.activation.terminal)try{await e.activation.transaction.rollback()}catch(e){n=e}finally{e.activation.terminal=!0}if(t!==void 0||n!==void 0){let r=[ni(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(ri(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof D?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([ni(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function ni(e,t){return e instanceof E||e instanceof D?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function ri(e){return e instanceof E||e instanceof D?e:new D}function ii(e){return Object.values(e).some(e=>e!==void 0)}function ai(e,t,n){return n===!0||e===void 0?void 0:{machineId:e,instanceId:t}}var oi=class{inFlight=new Map;globalBus;ownerInstanceId;machineId;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.ownerInstanceId=e.ownerInstanceId,this.machineId=e.machineId,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{if(e.payload.ownerInstanceId!==void 0&&e.payload.ownerInstanceId!==this.ownerInstanceId)return;let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,...a===!0&&{settlementAckToken:crypto.randomUUID()},publication:Kr({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=this.registry.beginStart();if(c===void 0){e.setResult(Q(`Adapter is closing and cannot rehydrate agent ${t}`));return}let l=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,l);let u;try{u=await l}finally{this.inFlight.delete(t),c()}e.setResult(u)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return Q(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Qr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l,callerOwnsAgentRow:a===!0,...t.settlementAckToken!==void 0&&{pendingCallerSettlement:{token:t.settlementAckToken,publication:t.publication,adapterSessionId:f}}},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,adapterSessionId:f,...t.settlementAckToken!==void 0&&{settlementAckToken:t.settlementAckToken}}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!X(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?qr(r.publication,o):void 0,u=ai(this.machineId,this.ownerInstanceId,c);i===void 0&&a===void 0&&l===void 0&&u===void 0||await this.globalBus.requestOptional(O.updateRuntime,{agentId:e,cwd:i,model:a,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return Q(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await $r(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),Q(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await ei(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await ti({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Z(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return Q(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!X(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof Y)return Q(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=qr(n.publication,c),u=ai(this.machineId,this.ownerInstanceId,n.callerOwnsAgentRow);return ii({cwd:n.cwd,model:n.model,adapterSessionId:l,runtimeOwner:u})&&await this.globalBus.requestOptional(O.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow?n.settlementAckToken!==void 0&&(t.callerOwnsAgentRow=!0,t.pendingCallerSettlement={token:n.settlementAckToken,publication:n.publication,adapterSessionId:t.adapterSessionId}):await this.globalBus.requestOptional(O.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.settlementAckToken!==void 0&&{settlementAckToken:n.settlementAckToken}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(T.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(xe.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(T.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function si(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=li(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new kr({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await ci(t,{bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o.providerContext,...o.providerProtocol!==void 0&&{providerProtocol:o.providerProtocol},...o.adapterProviderAuth!==void 0&&{adapterProviderAuth:o.adapterProviderAuth},compatibleProviderAuths:o.compatibleProviderAuths,providerContextRequired:t.definitionProviders.length>0,...t.clientId!==void 0&&{clientId:t.clientId},ephemeral:!0,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:()=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector failed.`)}},o.providerContext,{...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}}),u=await di(ui({connector:l.connector,manager:c,prompt:n,...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a},adapterCapabilities:t.adapterCapabilities}),l,t.adapterName);e.setResult({text:u})}async function ci(e,t,n,r){let i=await $r(e.globalBus,n),a;try{return a=await H({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await ei(i),a}catch(t){let n=a;return await ti({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(U(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function li(e,t){let n=e===void 0?P():C.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...an(t,n)}}async function ui(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=A(r),c={...i!==void 0&&{systemPrompt:i},turnContext:G(void 0,a,o),...a!==void 0&&{responseSchema:a}},l=await t.start(s,c),u=await l.messageHandle.waitForCompletion(),d=u.result?.message??``;return a===void 0||u.outcome!==`completed`?d:fi({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function di(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await U(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function fi(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,requestCorrelation:i.messageHandle.requestCorrelation,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw pi(o.structuredOutputValidation.errors);return o.message??``}function pi(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function mi(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:on(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>X(f)},...$t({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new Rr,ephemeral:u,nativeFork:sn(e)})}}function $(e){return e.agentId!==void 0}function hi(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function gi(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,...s.machineId!==void 0&&{runtimeOwner:{machineId:s.machineId,instanceId:s.ownerInstanceId}},adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function _i(e,t,n){if(!n){try{await t.globalBus.requestOptional(O.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(O.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function vi(e,t){let n=gi({...e,status:`starting`,resolvedCwd:hi(e.payload,t),deps:t});await t.globalBus.request(O.set,{agentId:e.agentId,agent:n})}async function yi(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=hi(r,i);if(!$(r)){let o=await _i(gi({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=qr(a.publication,n);try{await c.emit(T.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(x.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function bi(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function xi(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function Si(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Ci(e,t){let n=crypto.randomUUID(),r;try{r=await Ne(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:n})}catch(r){throw await e.requestOptional(T.ownership.release,{agentId:t.agentId,claimToken:n,disposition:`released`}).catch(()=>void 0),r}if(r.outcome!==`reserved`)return r.outcome===`session-not-active`?{kind:`refused`,outcome:r.outcome,sessionStatus:r.status,message:Si(t.resumeProviderSessionId,r.outcome)}:{kind:`refused`,outcome:r.outcome,message:Si(t.resumeProviderSessionId,r.outcome)};let{claim:i,ownerInstanceId:a}=r.reservation;return i===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:a!==t.ownerInstanceId||i.ownerInstanceId!==a?(await e.requestOptional(T.ownership.release,{agentId:t.agentId,claimToken:i.claimToken,disposition:`released`}),{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} reservation named runtime ${a}, claim named ${i.ownerInstanceId??`none`}, and adapter owner is ${t.ownerInstanceId}`}):{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:i.claimToken,ownerInstanceId:a}}}async function wi(e,t,n,r){try{await e.requestOptional(T.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function Ti(e,t,n){try{if(n){await e.requestOptional(O.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(O.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Ei(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await wi(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await Ti(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function Di(e,t,n,r){return await Ei({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function Oi(e,t,n,r){return await Ei({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function ki(e,t,n,r){return Di(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function Ai(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=xi(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return Di(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return ki(e,r,a,o);if($(n))return;let s=Date.now();a.agentRowCreatedAt=s,await vi({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Ci(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,ownerInstanceId:e.ownerInstanceId,resumeProviderSessionId:o});if(c.kind===`refused`)return Di(e,r,a,c.message);a.reservation=c.reservation}function ji(e,t,n){return e===void 0?{callerOwnsAgentRow:!1}:{callerOwnsAgentRow:!0,pendingCallerSettlement:{token:e,publication:t,adapterSessionId:n}}}function Mi(e,t,n){if(!(!$(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function Ni(e,t,n){if(t.initialMessage!==void 0){let r=A(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function Pi(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function Fi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function Ii(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Li(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function Ri(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(T.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function zi(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await $r(s,i),e.markDispatched(),l=await e.createAgent(t,n,Li(r,i,a,e.publication));let o=await Ni(l,r,a);return await ei(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await ti({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>L(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function Bi(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=$(t)?crypto.randomUUID():void 0,l=t.providerContext===void 0?P():C.parse(t.providerContext);Ii(t);let u=await Ri(t,o),d={...t,providerContext:l},f=await Ai(e,{payload:d,agentId:n,sessionId:u,acquisitions:r});if(f!==void 0)return{result:f,messageHandle:void 0};let p=xi(t),ee=t.sessionContext?w.parse(t.sessionContext):void 0,{agent:m,startResult:te}=await zi({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:u,payload:t,providerContext:l,sessionContext:ee,adapterName:i,resumeAdapterSessionId:p,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:ne}=te;if(a.set(n,{agent:m,sessionId:u,adapterSessionId:h,usage:Pi(),...ji(c,r.publication,h)},p),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await Hi(e,{agentId:n,sessionId:u,adapterSessionId:h},d,r);if(t!==void 0)return{result:t,messageHandle:void 0};await Vi(m,h,r.publication)}return{result:{success:!0,agentId:n,adapterId:e.adapterId,ownerInstanceId:e.ownerInstanceId,sessionId:u,adapterSessionId:h,...g!==void 0&&{messageId:g},...c!==void 0&&{settlementAckToken:c}},messageHandle:ne}}async function Vi(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!X(n))}async function Hi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await yi(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await bi(e.registry,i,e.name,t),t}if(s!==void 0)return Oi(e,i,r,s)}function Ui(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){if(i.payload.ownerInstanceId!==void 0&&i.payload.ownerInstanceId!==e.ownerInstanceId)return;let a=n.beginStart();if(a===void 0){i.setResult({success:!1,dispatch:`not-dispatched`,message:`Adapter ${t} is closing and cannot start another agent`});return}try{let a=i.payload,o=a.agentId??crypto.randomUUID(),s=Mi(a,o,n);if(s!==void 0){i.setResult(s);return}let c=$(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:Kr({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await Bi(e,a,o,l)}catch(e){throw await Ei({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&Fi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}finally{a()}}}function Wi(e){return async t=>{let n=await e.disposeAgent(t.payload.agentId,{deadline:t.deadline,...t.payload.teardown===`connector-only`&&{responsibility:`connector-only`}});t.setResult({success:n.found,evidence:n.evidence,...n.detail!==void 0&&{detail:n.detail}})}}function Gi(e){return t=>{let n=e.get(t.payload.agentId);t.setResult({agent:n===void 0?null:Yr(n)})}}function Ki(e){return async t=>{t.setResult(await e.acknowledgeCallerSettlement(t.payload.agentId,t.payload.settlementAckToken,t.payload.recovery===!0))}}var qi=class{operations;state=`new`;operationTail=Promise.resolve();lastOperation;initFlight;closeFlight;lastCloseReport={evidence:`released`};constructor(e){this.operations=e}init(){if(this.lastOperation===`init`&&this.initFlight!==void 0)return this.initFlight;let e=this.operationTail.then(()=>this.runInitialization());return this.lastOperation=`init`,this.initFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.initFlight===e&&(this.initFlight=void 0,this.lastOperation===`init`&&(this.lastOperation=void 0))}),e}close(){if(this.lastOperation===`close`&&this.closeFlight!==void 0)return this.closeFlight;let e=this.operationTail.then(()=>this.runClose());return this.lastOperation=`close`,this.closeFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.closeFlight===e&&(this.closeFlight=void 0,this.lastOperation===`close`&&(this.lastOperation=void 0))}),e}isInitialized(){return this.state===`initialized`}async runInitialization(){if(this.state===`initialized`)return;this.state===`closing`&&await this.completeShutdown(!1),this.operations.prepareInitialization(),this.state=`initializing`;let e=!1;try{await this.operations.initialize(),e=!0,await Yi(this.operations.bus,this.operations.publication),this.state=`initialized`}catch(t){try{await this.completeShutdown(e)}catch(e){throw AggregateError([t,e],`Adapter initialization and rollback failed`)}throw t}}async runClose(){if(this.state===`closed`)return this.lastCloseReport;let e=this.state===`initialized`;return this.completeShutdown(e)}async completeShutdown(e){return this.state=`closing`,this.lastCloseReport=await this.operations.shutdown(e),this.state=`closed`,this.lastCloseReport}};function Ji(e,t){if(t===void 0||t.trim()===``)throw Error(`AIAdapter ${e} requires a machine identity before announcing initialization`);return t}async function Yi(e,t){await e.emit(x.initialized,t)}async function Xi(e,t){await e.emit(x.deinitialized,{adapterId:t.adapterId,adapterName:t.name,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId})}async function Zi(e,t){try{await Xi(e,t)}catch(e){console.warn(`[AIAdapter] Failed to publish deinitialization for ${t.name}:`,e)}}var Qi=class{adapterId;ownerInstanceId;machineId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new Pr;registry;cleanupFns=[];rehydrationManager;lifecycle;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){if(e.ownerInstanceId===void 0)throw Error(`AIAdapter ${e.name} requires an ownership-authority incarnation`);this.adapterId=e.adapterId??crypto.randomUUID(),this.ownerInstanceId=e.ownerInstanceId,this.machineId=Ji(e.name,e.machineId),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??b,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.prepareAuthRuntime=e.prepareAuthRuntime,this.registry=new Xr({globalBus:this.globalBus,adapterName:this.name,ownerInstanceId:this.ownerInstanceId,arbiter:this.teardownArbiter}),this.rehydrationManager=new oi({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this),machineId:this.machineId,ownerInstanceId:this.ownerInstanceId}),this.lifecycle=new qi({bus:this.globalBus,publication:{adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,capabilities:this.capabilities,nativeTools:this.nativeTools},prepareInitialization:()=>this.registry.reopen(),initialize:this.initializeGeneration.bind(this),shutdown:this.runClose.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId}),t=e.withFilter({ownerInstanceId:this.ownerInstanceId}),n=Wi({disposeAgent:this.disposeAgent.bind(this)}),r=Gi(this.registry),i=Ki(this.registry);this.cleanupFns.push(e.on(x.startAgent,Ui({adapterId:this.adapterId,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(x.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),t.on(x.acknowledgeCallerSettlement,i),e.on(x.infer,e=>si(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,clientId:this.clientId,adapterCapabilities:this.capabilities,definitionProviders:this.definitionProviders,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime})),e.on(S.session.closed,this.handleSessionClosed),e.on(S.started,this.handleStartedReconcileRegistry),e.on(S.usage,this.handleUsage),this.globalBus.on(T.closed,this.handleSessionClosedByService),e.on(x.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(Yr)})}),t.on(x.getAgent,r),t.on(x.stopAgent,n),e.on(x.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(x.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(x.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};init(){return this.lifecycle.init()}async initializeGeneration(){this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit()}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(mi(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}closeAsync(){return this.lifecycle.close()}async runClose(e){let t={evidence:`released`};try{let e=await this.registry.closeAll(),n=await this.onClose();t=I([...e,...n===void 0?[]:[n]]);let r=e.map(e=>e.closeError).filter(e=>e!==void 0);return r.length>0&&console.warn(`[AIAdapter] ${r.length} agent(s) failed to close:`,r),t}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],e&&await Zi(this.globalBus,this)}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:$i(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map($i)}isInitialized(){return this.lifecycle.isInitialized()}};function $i(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function ea(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(ea)),t}var ta=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function na(e){let t=new Map,n=[];return n.push(e.on(o.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(o.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(o.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const ra=v.object({sessions:v.record(v.string(),v.object({state:v.enum([`idle`,`active`]),currentTurnId:v.string().optional()}))}).default({sessions:{}});var ia=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const aa=v.object({eventType:v.literal(`agent_started`),model:v.string().optional()}),oa=v.object({eventType:v.literal(`agent_complete`),message:v.string().optional(),error:v.string().optional()}),sa=v.object({eventType:v.literal(`error`),message:v.string(),code:v.string().or(v.number()).optional(),type:v.string().optional()}),ca=v.object({eventType:v.literal(`tool_started`),toolName:v.string(),toolCallId:v.string()}),la=v.object({eventType:v.literal(`tool_completed`),toolName:v.string(),toolCallId:v.string(),result:v.string(),success:v.boolean()});export{Qi as AIAdapter,Nr as AIAgent,Wt as AIAgentConnector,oa as AgentCompleteEventSchema,Sn as AgentEventBridge,Cn as AgentLifecycleEmitter,wn as AgentPayloadEmitter,Fn as AgentRuntimeMutationManager,aa as AgentStartedEventSchema,Pr as AgentTeardownArbiter,bn as AgentTurnExecutor,Kt as BaseConnectorSession,qt as BaseConnectorTurn,ta as BaseLogImporter,R as CONNECTOR_EXIT_OBSERVATION_MS,Mt as ConformanceConnectorRuntimeRegistry,Y as ConnectorSwapVetoedError,sa as ErrorEventSchema,Vr as FactoryUsageCorrelationHeaders,Gt as GenerationRetirementLedger,s as ImportCursorPositionSchema,a as ImportCursorStorageNamespace,o as ImportCursorStorageSubjects,at as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,M as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,it as MAKAIO_CONFORMANCE_PROVIDER_ENV,ot as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Vt as MessageHandle,Zt as MessageLifecycleTracker,Yt as ProceduralAgentConnector,Jt as ProceduralConnectorTurn,W as SESSION_CLOSED_QUEUE_ERROR,z as SWAP_SETTLEMENT_WAIT_MS,bt as ScopedToolApprovalSchema,Pt as SessionLifecycle,Rr as SessionToolLedger,Qt as ToolCallTracker,la as ToolCompletedEventSchema,ca as ToolStartedEventSchema,ia as TurnTracker,ra as TurnTrackerSerializedStateSchema,Ft as UserMessageQueue,I as aggregateTeardownReports,Wr as bindProviderRequestCorrelation,Gr as buildFactoryUsageCorrelationHeaders,kt as capTeardownEvidence,r as cleanEnvForAdapter,Fe as createAdapterNamespace,Nt as createNoAuthTestProviderContext,nt as createTestProviderContext,xt as createToolApprovalHandler,Qe as defineDiscriminatedHandlers,$e as defineDiscriminatedHandlersSync,V as describeTeardownFailure,B as exitWasObserved,zr as extractMcpCallTarget,Be as formatContextBlockAsText,Xe as formatContextBlocksAsText,ht as formatMessageHistoryAsTranscript,Br as isMcpCallTool,Ct as isTextLikeMimeType,Ht as markCompletedWithFinalResult,yt as mergeScopedToolApproval,j as normalizeEnvValue,A as normalizeMessageInput,St as normalizeMimeType,Ze as parseAIAdapterCapabilities,et as processDiscriminatedItems,tt as processDiscriminatedItemsSync,It as processQueueMessages,xn as registerAgentBusHandlers,na as registerMemoryImportCursorStorage,Lt as rejectQueuedHandles,Ot as reportBestEffortStages,wt as reportObservedExit,Tt as reportRepeatTeardown,ft as resolveConformanceDefinitionProviders,dt as resolveConformanceTestPreset,pt as resolveDisabledNativeTools,vt as resolveRequiredSessionId,rt as resolveTestConfig,L as rethrowTeardownFailure,Dt as runBestEffortStage,Ie as safeJsonStringify,_t as serializeBlockToText,Je as serializeTurnContext,Et as stageFailure,ea as toImportSegment,F as unknownTeardown,Le as withTimeout};
|
|
11
|
+
`)}function ht(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function gt(e){switch(e.type){case`text`:return e.content;case`reasoning`:return e.content;case`tool_call`:return`[Tool: ${e.name}]\n${JSON.stringify(e.args)}`;case`tool_output`:return`[Tool ${e.isError?`Error`:`Result`} ${e.toolCallId}]\n${e.output}`;case`image`:return`[Image]`;case`document`:return`[Document]`;case`attachment`:return`[Attachment: ${e.displayName?.trim()?e.displayName:e.fileName||`Attachment`}]`;default:return ht(e)}}function P(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function _t(e,t,n,r=!1){return P(e,t,`sessionId`,n,r)}function vt(e,t,n,r={}){let i=r.allowPayloadIdentityFallback??!1;if(i){let e=[t.agentId,t.adapterId,t.adapterName,t.adapterSessionId],r=e.filter(Boolean).length;if(r>0&&r<e.length)throw Error(`[${n}] toGlobalToolApproval: context must supply all four identity fields (agentId, adapterId, adapterName, adapterSessionId) or none — partial context with allowPayloadIdentityFallback creates a mixed-source identity tuple`)}let a=_t(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:P(t.agentId,e.agentId,`agentId`,n,i),adapterId:P(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:P(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:P(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const yt={request:_e.request.extend({sessionId:y.string().optional()}),response:_e.response};function bt(e,t,n){return function(r,i,a){return r.on(e,async e=>{try{let r=typeof i==`function`?await i():i,o=t(e.payload,r),s=await a.request(C.toolApprove,o);e.setResult(n(s))}catch(t){console.error(`[createToolApprovalHandler] Tool approval request failed:`,t);let r=t instanceof Error?`: ${t.message}`:``;e.setResult(n({action:`deny`,message:`Tool approval request failed${r}`,shouldAbort:!0}))}})}}function xt(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function St(e){let t=xt(e);return t.startsWith(`text/`)?!0:[`application/json`,`application/xml`,`application/sql`,`application/graphql`,`application/javascript`,`application/typescript`,`application/x-yaml`,`application/toml`].includes(t)}function Ct(){return{state:`unresolved`}}function F(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function I(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...we(e),...t!==void 0&&{closeError:t}}}async function L(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const R=2e3,z=1e4;async function B(e,t=R){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function wt(e){return await B(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${R}ms.`}}function Tt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function V(e){return e instanceof Error?e.message:String(e)}function Et(e,t){return`${e} failed (${V(t)})`}async function Dt(e,t){try{await t();return}catch(t){return Et(e,t)}}function Ot(e,t){if(t.length!==0)return F(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function kt(e,t,n){return{evidence:Ce([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function H(e){let t=await(e.prepareAuthRuntime??n)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await jt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function U(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?F(`Connector close failed: ${V(t.failed)}`,t.failed):F(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:F(`Client config lease release failed: ${V(n)}`,n)}async function At(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await U(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function jt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Mt=class{runtimes=new Set;async create(e){let t=await H(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=U({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Nt(e=`test-provider-config`,t=`test-provider`){return{state:`resolved`,providerConfigId:e,definitionId:t,auth:{mode:`none`,method:{owner:`provider`,providerDefinitionId:t,methodId:`none`},definition:{id:`none`,mode:`none`,label:`No authentication`}}}}var Pt=class{abortController;terminated=!1;constructor(e){this.abortController=e??new AbortController}get signal(){return this.abortController.signal}get isTerminated(){return this.terminated}abort(e){this.terminated||(this.terminated=!0,this.abortController.abort(),e&&Promise.resolve(e()).catch(e=>{console.error(`Error during session cleanup:`,e)}))}onAbort(e){this.abortController.signal.addEventListener(`abort`,e)}},Ft=class{queue=[];enqueue(e){if(e.deliveryMode===`replace`){for(let t of this.queue)t.state===`queued`&&(t.supersededBy=e.messageId,t.markCompleted({outcome:`superseded`,supersededBy:e.messageId}));this.removeSuperseded()}if(e.internalRetry&&e.deliveryMode===`enqueue`){this.enqueueInternalRetry(e);return}this.queue.push(e)}enqueueInternalRetry(e){let t=this.queue.findIndex(e=>e.deliveryMode!==`immediate`&&!e.internalRetry);if(t===-1){this.queue.push(e);return}this.queue.splice(t,0,e)}removeSuperseded(){for(let e=this.queue.length-1;e>=0;e--)this.queue[e].supersededBy&&this.queue.splice(e,1)}dequeue(){return this.queue.shift()}peek(){return this.queue[0]}isEmpty(){return this.queue.length===0}size(){return this.queue.length}clear(){this.queue.length=0}findImmediate(){return this.queue.find(e=>e.deliveryMode===`immediate`)}removeImmediate(e){let t=this.queue.indexOf(e);t>=0&&this.queue.splice(t,1)}drainEnqueued(){let e=[];for(let t=this.queue.length-1;t>=0;t--)this.queue[t].deliveryMode===`enqueue`&&e.unshift(this.queue.splice(t,1)[0]);return e}};const W=`Session closed before queued message could be processed`;async function It(e,t){let n=t.getCurrentTurn(),r=t.extractContent??Rt;if(n?.canAcceptImmediate()){let i=e.findImmediate();if(i)if(e.removeImmediate(i),(await n.pause()).turnEnded)i.markCompleted({outcome:`rejected`});else{let a=n.getMessageHandle(),o=e.drainEnqueued(),s=[];a&&!a.isProcessed&&(s.push(r(a)),a.supersededBy=i.messageId,a.markCompleted({outcome:`superseded`,supersededBy:i.messageId}));for(let e of o)s.push(r(e)),e.supersededBy=i.messageId,e.markCompleted({outcome:`merged`,mergedInto:i.messageId});let c=t.collectMergeExtra?.(a,o);return await t.onBeforeImmediateTurn?.(),await t.startNewTurn(i,s,c)!==!1}}let i=e.peek();return(!n||n.isCompleted()||i?.internalRetry===!0&&n.getMessageHandle().isProcessed)&&i?i.deliveryMode===`immediate`&&n?.isCompleted()?(e.dequeue(),i.markCompleted({outcome:`rejected`}),It(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function Lt(e,t=W){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function Rt(e){return e.message.message}const zt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Bt(e,t){if(e===t)return null;let n=[];switch(t){case`processing_started`:break;case`turn_started`:([`idle`,`processing_finished`,`paused`].includes(e)||e===`active`)&&n.push(`processing_started`);break;case`step_started`:[`idle`,`processing_finished`,`paused`].includes(e)||e===`active`?n.push(`processing_started`,`turn_started`):[`processing_started`,`turn_finished`].includes(e)&&n.push(`turn_started`);break;case`step_finished`:break;case`turn_finished`:e===`step_started`&&n.push(`step_finished`);break;case`processing_finished`:e===`step_started`?n.push(`step_finished`,`turn_finished`):[`turn_started`,`step_finished`].includes(e)&&n.push(`turn_finished`);break}return{isCompletionState:zt.includes(t),statesToEmit:[...n,t]}}var Vt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new b;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new b,this.deferredAcknowledgement=new b,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ht(e,t,n){let r=n!==void 0&&!e.isProcessed;return e.markCompleted(t),r?e.waitForCompletion().then(async t=>{try{await n(e,t)}catch(t){console.warn(`[MessageHandle] completion notification failed for messageId: ${e.messageId}`,t)}}):Promise.resolve()}var Ut=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Wt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new i;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new Ut;adapterName;systemPrompt;constructor(e){let t=e.cwd??je.tmpdir();if(!se.existsSync(t))throw new ue(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??x,this.filteredBus=e.bus.withFilter({agentId:this.agentId}),this.adapterId=e.adapterId,this.adapterName=e.adapterName,this.adapterSessionId=e.adapterSessionId,this.sessionId=e.sessionId,this.timeouts=e.timeouts??ce([]),this.errorHandler=e.errorHandler,this.model=e.model,this.providerConfigId=e.providerConfigId,this.cwd=t,this.currentReasoningEffort=e.reasoningEffort,this.supportedReasoningLevels=e.supportedReasoningLevels,this.config=e,this.env=r(e?.env??Ne.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Bt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Vt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof ge||e instanceof he)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},Gt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await B(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:kt(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},Kt=class{config;bus;sessionId;currentTurn;closing=!1;constructor(e){this.config=e,this.bus=e.bus}completeHandleIfClosing(e){return this.closing?(e.isProcessed||e.markCompleted({outcome:`error`,error:Error(W)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},qt=class{state;bus;adapterId;adapterName;stateChangedCallback;constructor(e,t,n,r){this.bus=e,this.adapterId=t,this.adapterName=n,this.state=r}onStateChanged(e){this.stateChangedCallback=e}async transitionTo(e){let t=this.state;this.state=e,await this.emitStateChange(t,e),await this.stateChangedCallback?.(t,e)}getState(){return this.state}getMessageHandle(){return this.activeMessageHandle}markAcknowledged(){this.activeMessageHandle.markAcknowledged()}markCompleted(e){this.activeMessageHandle.markCompleted(e)}},Jt=class extends qt{activeMessageHandle;connectorBus;agentId;turnSubjects;aborted=!1;constructor(e,t){super(e.bus,e.adapterId,e.adapterName,t),this.connectorBus=e.bus,this.agentId=e.agentId,this.activeMessageHandle=e.messageHandle,this.turnSubjects=e.turnSubjects}async emitStateChange(e,t){let n={adapterId:this.adapterId,agentId:this.agentId,oldState:e,newState:t,timestamp:Date.now()};switch(await this.connectorBus.emit(this.turnSubjects.state_changed,n),t){case`turn_started`:await this.connectorBus.emit(this.turnSubjects.turn_started,n);break;case`step_started`:await this.connectorBus.emit(this.turnSubjects.step_started,n);break;case`step_finished`:await this.connectorBus.emit(this.turnSubjects.step_finished,n);break;case`turn_finished`:await this.connectorBus.emit(this.turnSubjects.turn_finished,n);break}}async start(){await this.transitionTo(`turn_started`)}async markStepStarted(){(this.state===`turn_started`||this.state===`step_finished`)&&await this.transitionTo(`step_started`)}async markStepFinished(){this.state===`step_started`&&await this.transitionTo(`step_finished`)}async markTurnFinished(){await this.transitionTo(`turn_finished`)}async pause(){if(this.state===`turn_finished`)return{stateBeforePause:this.state,turnEnded:!0};let e=this.state;return this.aborted=!0,{stateBeforePause:e,turnEnded:!1}}async resume(e){throw Error(`${this.adapterName} does not support resume - create new turn with merged content`)}isPaused(){return this.aborted}isCompleted(){return this.state===`turn_finished`}canAcceptImmediate(){return this.state!==`turn_finished`&&!this.aborted}},Yt=class extends Wt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(W)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw Lt(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Xt(e,t,n,r,i,a,o){let s=t=>async(n,r)=>{let i=t,a={...r,agentId:i.agentId,adapterId:i.adapterId,adapterName:i.adapterName,adapterSessionId:i.adapterSessionId,messageId:i.messageId};await e.emit(n,a)};return t.on(n,(async t=>{let n=r?t.payload[r]:t.payload;if(!n||typeof n!=`object`)return;let c=a[n[i]];if(!c)return;let l=await o(n),u=s(l);if(typeof c==`function`)await c(l,u);else{let{sessionId:t,...n}=l;await e.emit(c,n)}}))}var Zt=class{currentMessageHandle;pendingTrackedHandles=[];currentTurnId;handleTurnIds=new WeakMap;emitGlobal;constructor(e){this.emitGlobal=e.emitGlobal}getCurrentMessageId(){return this.currentMessageHandle?.messageId}getCurrentMessageHandle(){return this.currentMessageHandle}setCurrentTurnId(e){this.currentTurnId=e}clearCurrentTurnId(){this.currentTurnId=void 0}getCurrentTurnId(){return this.currentMessageHandle!==void 0&&this.handleTurnIds.has(this.currentMessageHandle)?this.handleTurnIds.get(this.currentMessageHandle):this.currentTurnId}acknowledge(e,t){let{messageId:n,message:r,mergedFrom:i}=e;this.currentMessageHandle=e,this.removePendingHandle(e),e.wasDelivered||e.markAcknowledged(!0),this.emitGlobal(C.user_message.acknowledged,{messageId:n,mergedFrom:i,...t!==void 0&&{turnId:t}}),this.emitGlobal(C.turn.started,{messageId:n,content:r,mergedFrom:i,...t!==void 0&&{turnId:t}})}complete(e,t,n){let{messageId:r}=e;this.currentMessageHandle===e?this.currentMessageHandle=this.pendingTrackedHandles.shift():this.removePendingHandle(e),this.currentTurnId===n&&(this.currentTurnId=void 0),e.wasDelivered&&this.emitGlobal(C.turn.completed,{messageId:r,message:t.result?.message,outcome:t.outcome,error:t.error instanceof Error?t.error.message:typeof t.error==`string`?t.error:void 0,...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation},...n!==void 0&&{turnId:n}}),this.emitGlobal(C.user_message.completed,{messageId:r,outcome:t.outcome,supersededBy:t.supersededBy,mergedInto:t.mergedInto,...n!==void 0&&{turnId:n}})}removePendingHandle(e){let t=this.pendingTrackedHandles.indexOf(e);t>=0&&this.pendingTrackedHandles.splice(t,1)}track(e,t,n,r){let i=r?r.turnId:this.currentTurnId;this.handleTurnIds.set(e,i),e.isProcessed||(this.currentMessageHandle===void 0?this.currentMessageHandle=e:this.pendingTrackedHandles.push(e),n!==void 0&&e.addCompletionTransform(async e=>{try{return await n(e)}catch(t){let n={status:`failed`,errors:[{message:t instanceof Error?t.message:`Structured output validation failed`,instancePath:``,schemaPath:`#`}]};return{...e,structuredOutputValidation:n}}})),e.waitForAcknowledgment().then(t=>{t&&this.acknowledge(e,i)},()=>{}),e.waitForCompletion().then(n=>{this.complete(e,n,i),t&&t(e.messageId,n,i)})}},Qt=class{pending=[];register(e,t,n,r){let i=r??crypto.randomUUID();return this.pending.push({messageId:e,correlationId:i,toolName:t,args:n,nativeId:r,registeredAt:Date.now()}),i}resolve(e,t){if(t.nativeId){let n=this.pending.findIndex(n=>n.messageId===e&&n.nativeId===t.nativeId);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`nativeId`,toolName:e.toolName,args:e.args}}}if(t.toolName){let n=this.pending.findIndex(n=>n.messageId===e&&n.toolName===t.toolName);if(n>=0){let[e]=this.pending.splice(n,1);return{correlationId:e.correlationId,strategy:`toolName`,toolName:e.toolName,args:e.args}}}if(!t.nativeId&&!t.toolName){let t=this.pending.findIndex(t=>t.messageId===e);if(t<0)return{correlationId:null,strategy:`none`};let[n]=this.pending.splice(t,1);return{correlationId:n.correlationId,strategy:`oldest`,toolName:n.toolName,args:n.args}}return{correlationId:null,strategy:`none`}}clearAll(){this.pending=[]}clearMessage(e){this.pending=this.pending.filter(t=>t.messageId!==e)}};function $t(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=en({model:e.model,allowedTools:e.allowedTools,disallowedTools:e.disallowedTools,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,resumeAdapterSessionId:e.resumeAdapterSessionId,reasoningEffort:e.reasoningEffort,adapterConfig:e.adapterConfig,harnessId:e.harnessId,clientId:e.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:e.mcpSessionContext,toolLedger:e.toolLedger,ephemeral:e.ephemeral,nativeFork:e.nativeFork});return{...e.platformCwd!==void 0&&{cwd:e.platformCwd},...t!==void 0&&{env:t},...e.cwd!==void 0&&{cwd:e.cwd},...n}}function en(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function tn(e,t){return e?.find(e=>e.definition.id===t)?.auth}function nn(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function rn(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function an(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:nn(e,t.definitionId),adapterProviderAuth:tn(e,t.definitionId),compatibleProviderAuths:rn(e,t.definitionId)}}function on(e,t,n){if(e.length===0)return;if(n)return e.find(e=>e.definition.id===n)?.definition.availableModels;if(e.length===1)return e[0]?.definition.availableModels;if(!t)return;let r=e.filter(e=>(e.definition.availableModels??[]).some(e=>e.name===t));if(r.length===1)return r[0]?.definition.availableModels}function sn(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:T.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function cn(e){if(e instanceof pe||e instanceof le||e instanceof de||e instanceof fe)return e.code}function ln(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function un(e,t,n){let r=n??t;return r===void 0&&console.warn(`[AIAgent] No providerContext available for agent "${e}" — using unresolved provider state.`),r??Ct()}function dn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function fn(e){let{config:t,overrides:n}=e,r=un(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=an(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:dn(n,e.currentReasoningEffort),supportedReasoningLevels:ln(e.availableModels,n?.model??t.model),allowedTools:t.allowedTools,disallowedTools:t.disallowedTools,allowedDirectories:t.allowedDirectories,providerConfig:t.adapterConfig,mcpSessionContext:n?.mcpSessionContext??t.mcpSessionContext,toolLedger:t.toolLedger,...t.nativeFork!==void 0&&{nativeFork:t.nativeFork},ephemeral:t.ephemeral,clientId:t.clientId,clientProfileName:t.clientProfileName,harnessId:t.harnessId,errorHandler:(t,n)=>{n&&e.clearAllToolCalls()}}}function pn(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const mn=[`idle`,`active`];function hn(e,t,n){e.requestOptional(k.updateStatus,{agentId:t,status:n,expectedStatus:[...mn]}).catch(()=>void 0)}function gn(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function _n(e,t,n){try{return await e.emit(C.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function vn(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var yn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&e!==void 0){this.recordCallerSettled(e);return}if(e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0}async announce(e){let t=await _n(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,sessionId:this.host.sessionId}}};function bn(e,t){let n={...e};for(let[e,r]of Object.entries(t))r!==void 0&&(n[e]=r);return Object.keys(n).length===0?void 0:n}var xn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:vn(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?T.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=j(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:gn(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:bn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?T.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=j(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:gn(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:bn(o.sessionContext?.requestCorrelation,{sessionId:this.sessionId}),...r!==void 0&&{responseSchema:r}},u=await i.start(c,l);return this.assertCanonicalMessageId(t?.messageId,u.messageHandle,i,`start`),this.firePostUserMessageHooks(u.messageHandle.messageId),await this.onMessageHandle(u.messageHandle,void 0),u})}async resolvePreUserMessageTurn(e){return this.ephemeral?{message:e.message,sessionContext:e.sessionContext}:Oe({agentId:this.agentId,adapterId:this.adapterId,message:e.message,sessionId:this.sessionId,cwd:e.cwd,sessionContext:e.sessionContext,messageId:e.messageId},this.globalBus)}firePostUserMessageHooks(e){De({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,messageId:e},this.globalBus).catch(e=>{console.error(`[AIAgent] PostUserMessage hook error:`,e)})}assertCanonicalMessageId(e,t,n,r){if(e===void 0||t.messageId===e)return;let i=Error(`Adapter connector contract violation (${this.adapterId}, ${r}): expected MessageHandle.messageId ${JSON.stringify(e)}, received ${JSON.stringify(t.messageId)}`);throw t.markCompleted({outcome:`error`,error:i}),n.handleError(i,!0),i}};function Sn(e){let t=e.globalBus.withFilter({agentId:e.agentId}),n=[t.on(C.sendMessage,e.onSendMessage),t.on(C.interrupt,e.onInterrupt),t.on(C.getCapabilities,t=>{t.setResult(e.getCapabilities())}),t.on(C.cwd.change,async t=>{t.setResult(await e.onCwdChange(t.payload))}),t.on(C.model.change,async t=>{t.setResult(await e.onModelChange(t.payload))}),t.on(C.mcp.servers.set,async t=>{t.setResult(await e.onMcpServersSet(t.payload))}),t.on(C.credential.change,async t=>{t.setResult(await e.onCredentialChange(t.payload))}),e.globalBus.on(be.tools.updated,e.onMcpToolsChanged),e.globalBus.on(be.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(E.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var Cn=class{emitUsagePayload;emitContextWindowUpdatedPayload;emitToolUsePayload;emitToolOutputPayload;emitAdapterLogPayload;emitStepStartedPayload;emitStepFinishedPayload;toolCallTracker;getBlockIndex;incrementBlockIndex;getUsageModel;getActiveMessageHandle;constructor(e){this.emitUsagePayload=e.emitUsage,this.emitContextWindowUpdatedPayload=e.emitContextWindowUpdated,this.emitToolUsePayload=e.emitToolUse,this.emitToolOutputPayload=e.emitToolOutput,this.emitAdapterLogPayload=e.emitAdapterLog,this.emitStepStartedPayload=e.emitStepStarted,this.emitStepFinishedPayload=e.emitStepFinished,this.toolCallTracker=e.toolCallTracker,this.getBlockIndex=e.getBlockIndex,this.incrementBlockIndex=e.incrementBlockIndex,this.getUsageModel=e.getUsageModel,this.getActiveMessageHandle=e.getActiveMessageHandle}async trackUsage(e){let t=this.getActiveMessageHandle()?.requestCorrelation,n={...e,model:this.getUsageModel()??`unknown`};n.executionId===void 0&&t?.executionId!==void 0&&(n.executionId=t.executionId),n.frameId===void 0&&t?.frameId!==void 0&&(n.frameId=t.frameId),await this.emitUsagePayload(n)}async emitContextWindowUpdate(e){let{currentTokens:t,maxTokens:n,cachedTokens:r}=e,i=n>0&&Number.isFinite(n)&&Number.isFinite(t),a=i?Math.min(100,t/n*100):0,o=i?a>=80?`critical`:a>=60?`warn`:`ok`:`critical`;await this.emitContextWindowUpdatedPayload({currentTokens:t,maxTokens:n,cachedTokens:r,percentage:a,level:o})}async emitToolUse(e,t,n,r){let i=this.toolCallTracker.register(e,t,n,r);return await this.emitToolUsePayload({messageId:e,toolName:t,args:n,toolCallId:i}),i}async emitToolOutput(e,t,n){let{correlationId:r,strategy:i,toolName:a,args:o}=this.toolCallTracker.resolve(e,n);if(!r){await this.emitAdapterLogPayload({level:`warn`,message:`Tool output arrived with no pending tool calls. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()});let r=crypto.randomUUID();return await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:n.toolName??a}),{toolCallId:r,toolName:n.toolName??a??`unknown`}}return i===`oldest`&&await this.emitAdapterLogPayload({level:`warn`,message:`Tool output correlation used fallback. Hints: ${JSON.stringify(n)}`,timestamp:Date.now()}),await this.emitToolOutputPayload({messageId:e,output:t,toolCallId:r,toolName:a,args:o}),{toolCallId:r,toolName:a??`unknown`,args:o}}async emitStepStarted(e,t,n){await this.emitOwnedStepStarted(void 0,e,t,n)}async emitStepStartedForMessage(e,t,n,r){await this.emitOwnedStepStarted(e,t,n,r)}async emitOwnedStepStarted(e,t,n,r){await this.emitStepStartedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),blockData:n,content:r})}async emitStepFinished(e,t){await this.emitOwnedStepFinished(void 0,e,t)}async emitStepFinishedForMessage(e,t,n){await this.emitOwnedStepFinished(e,t,n)}async emitOwnedStepFinished(e,t,n){await this.emitStepFinishedPayload({...e!==void 0&&{messageId:e},stepType:t,blockIndex:this.getBlockIndex(),content:n}),this.incrementBlockIndex()}},wn=class e{static COMPLETION_DEDUP_LIMIT=1024;sessionClosedEmitted=!1;completedMessageIds=new Set;completedMessageOrder=[];config;constructor(e){this.config=e}async emitStart(e){await this.config.emitStarted(e)}async emitCompletion(t){if(!this.completedMessageIds.has(t.messageId)){this.completedMessageIds.add(t.messageId);try{if(await this.config.onBeforeEmitCompletion(),this.config.clearMessageToolCalls(t.messageId),await this.config.emitComplete(t),this.completedMessageOrder.push(t.messageId),this.completedMessageOrder.length>e.COMPLETION_DEDUP_LIMIT){let e=this.completedMessageOrder.shift();e!==void 0&&this.completedMessageIds.delete(e)}hn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},Tn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},En=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await ke(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},G=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},K=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},Dn=class{config;constructor(e){this.config=e}async handle(e){let t=Se.parse(e.providerContext),n=t.providerConfigId;return this.hasProviderMismatch(n)?{success:!1,reason:`provider_mismatch`}:this.config.sequencer.queue(n,e.changeSequence)?this.config.runExclusive(()=>this.applyQueuedChange(t,e.changeSequence)):{success:!1,reason:`stale_change`}}async applyQueuedChange(e,t){let n=e.providerConfigId;if(this.hasProviderMismatch(n))return this.config.sequencer.release(n,t),{success:!1,reason:`provider_mismatch`};if(!this.config.sequencer.isLatest(n,t))return{success:!1,reason:`stale_change`};let r=this.config.getConnector();if(r.getProcessingState()!==`idle`)return this.config.sequencer.release(n,t),{success:!1,reason:`turn_active`};let i;try{return this.assertGuard(n,t,r),i=await En.prepare(this.config.globalBus,e),this.assertGuard(n,t,r),await this.config.swapConnectorUnlocked({providerContext:e},async()=>{this.assertGuard(n,t,r),await i?.commit()}),this.config.setProviderContext(e),this.config.sequencer.markApplied(n,t),await this.config.persistProviderConfigId(n),{success:!0,swapped:!0}}catch(e){return this.config.sequencer.release(n,t),this.handleFailure(e,i)}}async handleFailure(e,t){if(t!==void 0)try{await t.rollbackPending()}catch(t){let n=On(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof G)throw e;if(e instanceof O)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof K?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof D?`credential_activation_failed:${e.code}`:`credential_swap_failed`}}hasProviderMismatch(e){let t=this.config.getProviderContext();return t?.state===`resolved`&&t.providerConfigId!==e}assertGuard(e,t,n){if(!this.config.sequencer.isLatest(e,t))throw new K(`stale_change`);if(n.getProcessingState()!==`idle`)throw new K(`turn_active`)}};function On(e){return e instanceof K?Error(`Credential change rejected (${e.reason}).`):e instanceof D||e instanceof O?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var kn=class{getConnector;swapConnectorUnlocked;setMcpSessionContext;stagedMcpServersSet;constructor(e){this.getConnector=e.getConnector,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.setMcpSessionContext=e.setMcpSessionContext}async applyStagedMutation(){let e=this.stagedMcpServersSet;if(e===void 0)return;this.stagedMcpServersSet=void 0;let t=await this.handleMcpServersSet(e);if(!t.success)throw Error(`Failed to apply staged MCP server replacement: ${t.reason??`unknown error`}`)}async handleMcpServersSet(e){if(this.getConnector().getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedMcpServersSet={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0}):{success:!1,reason:`turn_active`};try{await this.swapConnectorUnlocked({mcpSessionContext:e.mcpSessionContext})}catch{return{success:!1,reason:`mcp_servers_set_failed: connector_replacement_failed`}}try{this.setMcpSessionContext(e.mcpSessionContext)}catch{return{success:!1,reason:`mcp_servers_set_committed_postprocess_failed`}}return{success:!0,swapped:!0}}};function An(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&q(e.endpointOverrides,t.endpointOverrides)&&q(e.auth,t.auth)&&q(e.capabilities,t.capabilities)}function q(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>q(e,t[n]));if(!jn(e)||!jn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&q(e[n],t[n]))}function jn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Mn(e){let{bus:t,agentId:n,currentModel:r,nextModel:i,skipWarning:a}=e;if(a)return{proceed:!0,requestEditHistory:!1};let o=await t.requestOptional(C.validateModelChange,{agentId:n,currentModel:r,nextModel:i});return o.handled?{proceed:o.data.proceed,requestEditHistory:o.data.requestEditHistory??!1}:{proceed:!0,requestEditHistory:!1}}var Nn=class{config;stagedModelChange;constructor(e){this.config=e}async applyStagedMutation(){if(this.config.getConnector().getProcessingState()!==`idle`)return;let e=this.stagedModelChange;if(e===void 0)return;this.stagedModelChange=void 0;let t=await this.handle(e);if(!t.success)throw Error(`Failed to apply staged model change: ${t.reason??`unknown error`}`)}async handle(e){let t=this.config.getConnector(),{newModel:n,reasoningEffort:r,skipWarning:i}=e,a=e.providerContext===void 0?void 0:w.parse(e.providerContext),o=t.model,s=t.currentReasoningEffort,c=this.hasProviderContextChanged(this.config.getProviderContext(),a);if(n===void 0&&r===void 0&&!c)return{success:!0,swapped:!1};if(t.getProcessingState()!==`idle`)return e.turnActiveBehavior===`stageForNextTurn`?(this.stagedModelChange={...e,turnActiveBehavior:`reject`},{success:!0,swapped:!1,staged:!0,...n!==void 0&&{model:n}}):{success:!1,reason:`turn_active`};if(n===void 0&&!c)return r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r);let l=n??o;return o===l&&!c?r===void 0?{success:!0,swapped:!1}:this.handleReasoningOnlyChange(t,o,s,r):this.handleModelSwap({connector:t,currentModel:o,newModel:l,reasoningEffort:r,previousReasoningEffort:s,providerContext:a,isProviderChange:c,skipWarning:i})}async handleReasoningOnlyChange(e,t,n,r){if(e.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let i=this.resolveReasoningEffort(r,n,e.supportedReasoningLevels),a;try{a=await e.changeReasoningInPlace(r).catch(()=>!1),a||await this.config.swapConnectorUnlocked({model:e.model,reasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_failed: connector_mutation_failed`}}let o=this.config.getConnector();try{o.currentReasoningEffort=i,this.config.setReasoningEffort(i)}catch{return{success:!1,reason:`reasoning_change_committed_postprocess_failed`}}try{await this.config.emitModelChanged({previousModel:t,newModel:t,previousReasoningEffort:n,newReasoningEffort:i})}catch{return{success:!1,reason:`reasoning_change_committed_event_failed`}}return{success:!0,swapped:!a,model:t,appliedReasoningEffort:i,supportedReasoningLevels:o.supportedReasoningLevels}}async handleModelSwap(e){let{connector:t,currentModel:n,newModel:r,providerContext:i,isProviderChange:a,skipWarning:o}=e,s=!a&&await t.changeModelInPlace(r).catch(()=>!1),c=!1;if(s)t.model=r;else{try{let e=await this.confirmConnectorSwap(n,r,o);if(!e.proceed)return e.result;c=e.requestEditHistory}catch(e){return{success:!1,reason:Pn(e)}}let t;try{a&&i!==void 0&&(t=await En.prepare(this.config.globalBus,i)),await this.config.swapConnectorUnlocked({model:r,reasoningEffort:this.resolveReasoningEffort(e.reasoningEffort,e.previousReasoningEffort,this.config.resolveSupportedReasoningLevels(r)),...i&&{providerContext:i}},async()=>t?.commit())}catch(e){if(t!==void 0)try{await t.rollbackPending()}catch(e){let t=Error(`Model/provider connector replacement failed.`);throw AggregateError([t,e],`Model/provider replacement and account activation rollback both failed.`,{cause:t})}if(e instanceof O)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:Pn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof G?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(E.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await Mn({bus:this.config.globalBus,agentId:this.config.agentId,currentModel:e,nextModel:t,skipWarning:n});return r.proceed?{proceed:!0,requestEditHistory:r.requestEditHistory}:{proceed:!1,result:{success:!1,reason:`cancelled`}}}hasProviderContextChanged(e,t){return t===void 0?!1:!An(e,t)}};function Pn(e){return e instanceof D?`model_change_failed: provider_activation_${e.code}`:e instanceof O?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var Fn=class{queuedSequences=new Map;appliedSequences=new Map;queue(e,t){if(!Number.isSafeInteger(t)||t<0)return!1;let n=this.appliedSequences.get(e);if(n!==void 0&&t<=n)return!1;let r=this.queuedSequences.get(e);return r!==void 0&&t<=r?!1:(this.queuedSequences.set(e,t),!0)}isLatest(e,t){return this.queuedSequences.get(e)===t}markApplied(e,t){let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.appliedSequences.set(e,t),this.queuedSequences.get(e)===t&&this.queuedSequences.delete(e)}release(e,t){if(this.queuedSequences.get(e)!==t)return;let n=this.appliedSequences.get(e);(n===void 0||t>n)&&this.queuedSequences.delete(e)}clear(e){this.queuedSequences.delete(e),this.appliedSequences.delete(e)}},In=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new Fn;constructor(e){this.agentId=e.agentId,this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.runExclusive=e.runExclusive,this.swapConnectorUnlocked=e.swapConnectorUnlocked,this.emitCwdChanged=e.emitCwdChanged,this.mcpServersMutationManager=new kn({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new Nn({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,emitModelChanged:e.emitModelChanged,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels,persistRuntimeMutation:e=>this.persistRuntimeMutation(e)}),this.credentialChangeManager=new Dn({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof G)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(k.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new G}catch(e){throw e instanceof G?e:new G}}},Ln=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){A(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){A(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){A(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return H({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await U(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){A(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await U(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},Rn=class{tail=Promise.resolve();async runExclusive(e){let t=this.tail,n;this.tail=new Promise(e=>{n=e}),await t;try{return await e()}finally{n?.()}}},zn=class{config;barrier=new Rn;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await En.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await U(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function Bn(e){return new Tn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Vn(e){return new Cn({emitUsage:async t=>{await e.emitGlobal(C.usage,t)},emitContextWindowUpdated:async t=>{await e.emitGlobal(C.contextWindow.updated,t)},emitToolUse:async t=>{await e.emitGlobal(C.tool.use,t)},emitToolOutput:async t=>{await e.emitGlobal(C.tool.output,t)},emitAdapterLog:async t=>{await e.emitGlobal(S.log,t,{includeEventMetadata:!1})},emitStepStarted:async t=>{await e.emitGlobal(C.step.started,t)},emitStepFinished:async t=>{await e.emitGlobal(C.step.finished,t)},toolCallTracker:e.toolCallTracker,getBlockIndex:e.getBlockIndex,incrementBlockIndex:e.incrementBlockIndex,getUsageModel:e.getUsageModel,getActiveMessageHandle:()=>e.lifecycleTracker.getCurrentMessageHandle()})}function Hn(e){return new wn({agentId:e.agentId,globalBus:e.globalBus,emitStarted:async t=>{await e.emitGlobal(C.started,t)},emitComplete:async t=>{await e.emitGlobal(C.complete,t)},emitSessionClosed:async t=>{await e.emitGlobal(C.session.closed,t)},onBeforeEmitCompletion:e.onBeforeEmitCompletion,clearMessageToolCalls:e.clearMessageToolCalls})}function Un(e){return new xn(e)}function Wn(e){return new In({agentId:e.agentId,sessionId:e.sessionId,globalBus:e.globalBus,getConnector:e.getConnector,runExclusive:e.runExclusive,swapConnectorUnlocked:e.swapConnectorUnlocked,emitCwdChanged:async t=>{await e.emitGlobal(C.cwd.changed,t)},emitModelChanged:async t=>{await e.emitGlobal(C.model.changed,t)},getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,setReasoningEffort:e.setReasoningEffort,setMcpSessionContext:e.setMcpSessionContext,resolveSupportedReasoningLevels:e.resolveSupportedReasoningLevels})}function Gn(e){return new Ln({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(C.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(S.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function Kn(e){return new zn(e)}var qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=v(),n=p(),r=f(),i=oe(),a={keyword:`$dynamicAnchor`,schemaType:`string`,code:e=>o(e,e.schema)};function o(e,r){let{gen:i,it:a}=e;a.schemaEnv.root.dynamicAnchors[r]=!0;let o=(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(r)}`,c=a.errSchemaPath===`#`?a.validateName:s(e);i.if((0,t._)`!${o}`,()=>i.assign(o,c))}e.dynamicAnchor=o;function s(e){let{schemaEnv:t,schema:n,self:a}=e.it,{root:o,baseId:s,localRefs:c,meta:l}=t.root,{schemaId:u}=a.opts,d=new r.SchemaEnv({schema:n,schemaId:u,root:o,baseId:s,localRefs:c,meta:l});return r.compileSchema.call(a,d),(0,i.getValidate)(e,d)}e.default=a})),Jn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=v(),n=p(),r=oe(),i={keyword:`$dynamicRef`,schemaType:`string`,code:e=>a(e,e.schema)};function a(e,i){let{gen:a,keyword:o,it:s}=e;if(i[0]!==`#`)throw Error(`"${o}" only supports hash fragment reference`);let c=i.slice(1);if(s.allErrors)l();else{let t=a.let(`valid`,!1);l(t),e.ok(t)}function l(e){if(s.schemaEnv.root.dynamicAnchors[c]){let r=a.let(`_v`,(0,t._)`${n.default.dynamicAnchors}${(0,t.getProperty)(c)}`);a.if(r,u(r,e),u(s.validateName,e))}else u(s.validateName,e)()}function u(t,n){return n?()=>a.block(()=>{(0,r.callRef)(e,t),a.let(n,!0)}):()=>(0,r.callRef)(e,t)}}e.dynamicRef=a,e.default=i})),Yn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=qn(),n=c();e.default={keyword:`$recursiveAnchor`,schemaType:`boolean`,code(e){e.schema?(0,t.dynamicAnchor)(e,``):(0,n.checkStrictMode)(e.it,`$recursiveAnchor: false is ignored`)}}})),Xn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Jn();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),Zn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=qn(),n=Jn(),r=Yn(),i=Xn();e.default=[t.default,n.default,r.default,i.default]})),Qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ie();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),$n=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ie();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),er=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=c();e.default={keyword:[`maxContains`,`minContains`],type:`array`,schemaType:`number`,code({keyword:e,parentSchema:n,it:r}){n.contains===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "contains" is ignored`)}}})),tr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Qn(),n=$n(),r=er();e.default=[t.default,n.default,r.default]})),nr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=v(),n=c(),r=p();e.default={keyword:`unevaluatedProperties`,type:`object`,schemaType:[`boolean`,`object`],trackErrors:!0,error:{message:`must NOT have unevaluated properties`,params:({params:e})=>(0,t._)`{unevaluatedProperty: ${e.unevaluatedProperty}}`},code(e){let{gen:i,schema:a,data:o,errsCount:s,it:c}=e;if(!s)throw Error(`ajv implementation error`);let{allErrors:l,props:u}=c;u instanceof t.Name?i.if((0,t._)`${u} !== true`,()=>i.forIn(`key`,o,e=>i.if(f(u,e),()=>d(e)))):u!==!0&&i.forIn(`key`,o,e=>u===void 0?d(e):i.if(p(u,e),()=>d(e))),c.props=!0,e.ok((0,t._)`${s} === ${r.default.errors}`);function d(r){if(a===!1){e.setParams({unevaluatedProperty:r}),e.error(),l||i.break();return}if(!(0,n.alwaysValidSchema)(c,a)){let a=i.name(`valid`);e.subschema({keyword:`unevaluatedProperties`,dataProp:r,dataPropType:n.Type.Str},a),l||i.if((0,t.not)(a),()=>i.break())}}function f(e,n){return(0,t._)`!${e} || !${e}[${n}]`}function p(e,n){let r=[];for(let i in e)e[i]===!0&&r.push((0,t._)`${n} !== ${i}`);return(0,t.and)(...r)}}}})),rr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=v(),n=c();e.default={keyword:`unevaluatedItems`,type:`array`,schemaType:[`boolean`,`object`],error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e,s=o.items||0;if(s===!0)return;let c=r.const(`len`,(0,t._)`${a}.length`);if(i===!1)e.setParams({len:s}),e.fail((0,t._)`${c} > ${s}`);else if(typeof i==`object`&&!(0,n.alwaysValidSchema)(o,i)){let n=r.var(`valid`,(0,t._)`${c} <= ${s}`);r.if((0,t.not)(n),()=>l(n,s)),e.ok(n)}o.items=!0;function l(i,a){r.forRange(`i`,a,c,a=>{e.subschema({keyword:`unevaluatedItems`,dataProp:a,dataPropType:n.Type.Num},i),o.allErrors||r.if((0,t.not)(i),()=>r.break())})}}}})),ir=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=nr(),n=rr();e.default=[t.default,n.default]})),ar=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/schema`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0,"https://json-schema.org/draft/2019-09/vocab/applicator":!0,"https://json-schema.org/draft/2019-09/vocab/validation":!0,"https://json-schema.org/draft/2019-09/vocab/meta-data":!0,"https://json-schema.org/draft/2019-09/vocab/format":!1,"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format`},{$ref:`meta/content`}],type:[`object`,`boolean`],properties:{definitions:{$comment:`While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.`,type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},dependencies:{$comment:`"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"`,type:`object`,additionalProperties:{anyOf:[{$recursiveRef:`#`},{$ref:`meta/validation#/$defs/stringArray`}]}}}}})),or=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/applicator":!0},$recursiveAnchor:!0,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{additionalItems:{$recursiveRef:`#`},unevaluatedItems:{$recursiveRef:`#`},items:{anyOf:[{$recursiveRef:`#`},{$ref:`#/$defs/schemaArray`}]},contains:{$recursiveRef:`#`},additionalProperties:{$recursiveRef:`#`},unevaluatedProperties:{$recursiveRef:`#`},properties:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$recursiveRef:`#`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$recursiveRef:`#`}},propertyNames:{$recursiveRef:`#`},if:{$recursiveRef:`#`},then:{$recursiveRef:`#`},else:{$recursiveRef:`#`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$recursiveRef:`#`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$recursiveRef:`#`}}}}})),sr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/content`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/content":!0},$recursiveAnchor:!0,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentMediaType:{type:`string`},contentEncoding:{type:`string`},contentSchema:{$recursiveRef:`#`}}}})),cr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/core`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/core":!0},$recursiveAnchor:!0,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{type:`string`,format:`uri-reference`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{type:`string`,format:`uri`},$anchor:{type:`string`,pattern:`^[A-Za-z][-A-Za-z0-9.:_]*$`},$ref:{type:`string`,format:`uri-reference`},$recursiveRef:{type:`string`,format:`uri-reference`},$recursiveAnchor:{type:`boolean`,default:!1},$vocabulary:{type:`object`,propertyNames:{type:`string`,format:`uri`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$recursiveRef:`#`},default:{}}}}})),lr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/format`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/format":!0},$recursiveAnchor:!0,title:`Format vocabulary meta-schema`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),ur=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/meta-data":!0},$recursiveAnchor:!0,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),dr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2019-09/schema`,$id:`https://json-schema.org/draft/2019-09/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2019-09/vocab/validation":!0},$recursiveAnchor:!0,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}},const:!0,enum:{type:`array`,items:!0},type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),fr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=ar(),n=or(),r=sr(),i=cr(),a=lr(),o=ur(),s=dr(),c=[`/properties`];function l(e){return[t,n,r,i,l(this,a),o,l(this,s)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function l(t,n){return e?t.$dataMetaSchema(n,c):n}}e.default=l})),pr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2019=void 0;let n=d(),r=re(),i=Zn(),a=tr(),o=ir(),s=ee(),c=fr(),l=`https://json-schema.org/draft/2019-09/schema`;var u=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(i.default),r.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(a.default),this.addVocabulary(o.default),this.opts.discriminator&&this.addKeyword(s.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(c.default.call(this,e),this.refs[`http://json-schema.org/schema`]=l)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(l)?l:void 0)}};e.Ajv2019=u,t.exports=e=u,t.exports.Ajv2019=u,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=u;var f=m();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return f.KeywordCxt}});var p=v();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return p._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return p.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return p.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return p.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return p.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return p.CodeGen}});var h=_();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return h.default}});var g=ne();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return g.default}})})),mr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=g(),n=u(),r=te(),i=Zn(),a=tr(),o=ir(),s=l(),c=h();e.default=[i.default,t.default,n.default,(0,r.default)(!0),s.default,c.metadataVocabulary,c.contentVocabulary,a.default,o.default]})),hr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/schema`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0,"https://json-schema.org/draft/2020-12/vocab/applicator":!0,"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0,"https://json-schema.org/draft/2020-12/vocab/validation":!0,"https://json-schema.org/draft/2020-12/vocab/meta-data":!0,"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0,"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Core and Validation specifications meta-schema`,allOf:[{$ref:`meta/core`},{$ref:`meta/applicator`},{$ref:`meta/unevaluated`},{$ref:`meta/validation`},{$ref:`meta/meta-data`},{$ref:`meta/format-annotation`},{$ref:`meta/content`}],type:[`object`,`boolean`],$comment:`This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.`,properties:{definitions:{$comment:`"definitions" has been replaced by "$defs".`,type:`object`,additionalProperties:{$dynamicRef:`#meta`},deprecated:!0,default:{}},dependencies:{$comment:`"dependencies" has been split and replaced by "dependentSchemas" and "dependentRequired" in order to serve their differing semantics.`,type:`object`,additionalProperties:{anyOf:[{$dynamicRef:`#meta`},{$ref:`meta/validation#/$defs/stringArray`}]},deprecated:!0,default:{}},$recursiveAnchor:{$comment:`"$recursiveAnchor" has been replaced by "$dynamicAnchor".`,$ref:`meta/core#/$defs/anchorString`,deprecated:!0},$recursiveRef:{$comment:`"$recursiveRef" has been replaced by "$dynamicRef".`,$ref:`meta/core#/$defs/uriReferenceString`,deprecated:!0}}}})),gr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/applicator`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/applicator":!0},$dynamicAnchor:`meta`,title:`Applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{prefixItems:{$ref:`#/$defs/schemaArray`},items:{$dynamicRef:`#meta`},contains:{$dynamicRef:`#meta`},additionalProperties:{$dynamicRef:`#meta`},properties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},patternProperties:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},propertyNames:{format:`regex`},default:{}},dependentSchemas:{type:`object`,additionalProperties:{$dynamicRef:`#meta`},default:{}},propertyNames:{$dynamicRef:`#meta`},if:{$dynamicRef:`#meta`},then:{$dynamicRef:`#meta`},else:{$dynamicRef:`#meta`},allOf:{$ref:`#/$defs/schemaArray`},anyOf:{$ref:`#/$defs/schemaArray`},oneOf:{$ref:`#/$defs/schemaArray`},not:{$dynamicRef:`#meta`}},$defs:{schemaArray:{type:`array`,minItems:1,items:{$dynamicRef:`#meta`}}}}})),_r=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/unevaluated`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/unevaluated":!0},$dynamicAnchor:`meta`,title:`Unevaluated applicator vocabulary meta-schema`,type:[`object`,`boolean`],properties:{unevaluatedItems:{$dynamicRef:`#meta`},unevaluatedProperties:{$dynamicRef:`#meta`}}}})),vr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/content`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/content":!0},$dynamicAnchor:`meta`,title:`Content vocabulary meta-schema`,type:[`object`,`boolean`],properties:{contentEncoding:{type:`string`},contentMediaType:{type:`string`},contentSchema:{$dynamicRef:`#meta`}}}})),yr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/core`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/core":!0},$dynamicAnchor:`meta`,title:`Core vocabulary meta-schema`,type:[`object`,`boolean`],properties:{$id:{$ref:`#/$defs/uriReferenceString`,$comment:`Non-empty fragments not allowed.`,pattern:`^[^#]*#?$`},$schema:{$ref:`#/$defs/uriString`},$ref:{$ref:`#/$defs/uriReferenceString`},$anchor:{$ref:`#/$defs/anchorString`},$dynamicRef:{$ref:`#/$defs/uriReferenceString`},$dynamicAnchor:{$ref:`#/$defs/anchorString`},$vocabulary:{type:`object`,propertyNames:{$ref:`#/$defs/uriString`},additionalProperties:{type:`boolean`}},$comment:{type:`string`},$defs:{type:`object`,additionalProperties:{$dynamicRef:`#meta`}}},$defs:{anchorString:{type:`string`,pattern:`^[A-Za-z_][-A-Za-z0-9._]*$`},uriString:{type:`string`,format:`uri`},uriReferenceString:{type:`string`,format:`uri-reference`}}}})),br=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/format-annotation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/format-annotation":!0},$dynamicAnchor:`meta`,title:`Format vocabulary meta-schema for annotation results`,type:[`object`,`boolean`],properties:{format:{type:`string`}}}})),xr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/meta-data`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/meta-data":!0},$dynamicAnchor:`meta`,title:`Meta-data vocabulary meta-schema`,type:[`object`,`boolean`],properties:{title:{type:`string`},description:{type:`string`},default:!0,deprecated:{type:`boolean`,default:!1},readOnly:{type:`boolean`,default:!1},writeOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0}}}})),Sr=t(((e,t)=>{t.exports={$schema:`https://json-schema.org/draft/2020-12/schema`,$id:`https://json-schema.org/draft/2020-12/meta/validation`,$vocabulary:{"https://json-schema.org/draft/2020-12/vocab/validation":!0},$dynamicAnchor:`meta`,title:`Validation vocabulary meta-schema`,type:[`object`,`boolean`],properties:{type:{anyOf:[{$ref:`#/$defs/simpleTypes`},{type:`array`,items:{$ref:`#/$defs/simpleTypes`},minItems:1,uniqueItems:!0}]},const:!0,enum:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/$defs/nonNegativeInteger`},minLength:{$ref:`#/$defs/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},maxItems:{$ref:`#/$defs/nonNegativeInteger`},minItems:{$ref:`#/$defs/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},maxContains:{$ref:`#/$defs/nonNegativeInteger`},minContains:{$ref:`#/$defs/nonNegativeInteger`,default:1},maxProperties:{$ref:`#/$defs/nonNegativeInteger`},minProperties:{$ref:`#/$defs/nonNegativeIntegerDefault0`},required:{$ref:`#/$defs/stringArray`},dependentRequired:{type:`object`,additionalProperties:{$ref:`#/$defs/stringArray`}}},$defs:{nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{$ref:`#/$defs/nonNegativeInteger`,default:0},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}}}})),Cr=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=hr(),n=gr(),r=_r(),i=vr(),a=yr(),o=br(),s=xr(),c=Sr(),l=[`/properties`];function u(e){return[t,n,r,i,a,u(this,o),s,u(this,c)].forEach(e=>this.addMetaSchema(e,void 0,!1)),this;function u(t,n){return e?t.$dataMetaSchema(n,l):n}}e.default=u})),wr=t(((e,t)=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv2020=void 0;let n=d(),r=mr(),i=ee(),a=Cr(),o=`https://json-schema.org/draft/2020-12/schema`;var s=class extends n.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(a.default.call(this,e),this.refs[`http://json-schema.org/schema`]=o)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(o)?o:void 0)}};e.Ajv2020=s,t.exports=e=s,t.exports.Ajv2020=s,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=s;var c=m();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return c.KeywordCxt}});var l=v();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return l._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return l.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return l.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return l.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return l.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return l.CodeGen}});var u=_();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return u.default}});var f=ne();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),Tr=e(ae(),1),Er=e(pr(),1),Dr=e(wr(),1);const Or=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),kr=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var Ar=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new Tr.default({allErrors:!0,strict:!1});draft2019Ajv=new Er.default({allErrors:!0,strict:!1});draft2020Ajv=new Dr.default({allErrors:!0,strict:!1});validatorCache=new WeakMap;constructor(e){this.bus=e.bus,this.agentId=e.agentId,this.adapterId=e.adapterId,this.adapterCapabilities=e.adapterCapabilities}registerDefaultHandlers(){let e=this.bus.withFilter({agentId:this.agentId});return[e.on(C.structuredOutput.retryPolicy,e=>{e.setResult({maxRetries:0})},{priority:-1e3}),e.on(C.structuredOutput.enforce,e=>{e.setResult({enforced:!1,error:`No enforce handler registered`})},{priority:-1e3})]}async validateTerminalResult(e){let{responseSchema:t,message:n,sessionId:r}=e,i=this.validate(t,n);if(i.valid)return{message:n,structuredOutputValidation:{status:`passed`}};let a=n??``,o=i.errors;if(e.retryTurn){let n=await this.bus.requestOptional(C.structuredOutput.retryPolicy,{agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.adapterCapabilities,responseSchema:t,attemptNumber:1}),r=n.handled?n.data.maxRetries:0;for(let n=1;n<=r;n+=1){a=await e.retryTurn({attemptNumber:n,validationErrors:o});let r=this.validate(t,a);if(r.valid)return{message:a,structuredOutputValidation:{status:`passed`}};o=r.errors}}let s=await this.bus.requestOptional(C.structuredOutput.enforce,{agentId:this.agentId,adapterId:this.adapterId,sessionId:r,responseSchema:t,rawOutput:a,validationErrors:o,adapterHasCapability:this.adapterCapabilities.includes(`structuredOutput`)});if(s.handled&&s.data.enforced===!0&&s.data.output!==void 0){let{valid:e}=this.validate(t,s.data.output);if(e)return{message:s.data.output,structuredOutputValidation:{status:`enforced`}}}return{message:a,structuredOutputValidation:{status:`failed`,errors:o}}}validate(e,t){if(t===void 0||t===``)return{valid:!1,errors:[{message:`Expected JSON output but received empty string`,instancePath:``,schemaPath:`#`}]};let n;try{n=JSON.parse(t)}catch{return{valid:!1,errors:[{message:`Output is not valid JSON: ${t.slice(0,120)}`,instancePath:``,schemaPath:`#`}]}}let r=this.getValidator(e);if(r(n))return{valid:!0,errors:[]};let i=this.normalizeErrors(r.errors??[]);return i.length===0&&i.push({message:`Schema validation failed`,instancePath:``,schemaPath:`#`}),{valid:!1,errors:i}}getValidator(e){let t=this.validatorCache.get(e.schema);if(t!==void 0)return t;let n=this.getValidatorCompileTarget(e.schema),r;try{r=n.compiler.compile(n.schema)}catch(e){r=this.createCompileFailureValidator(e)}return this.validatorCache.set(e.schema,r),r}createCompileFailureValidator(e){let t=[{keyword:`schema`,instancePath:``,schemaPath:`#`,params:{},message:`Failed to compile response schema: ${e instanceof Error?e.message:String(e)}`}],n=this.draft07Ajv.compile({});return Object.assign(e=>!1,{errors:t,schema:n.schema,schemaEnv:n.schemaEnv})}getValidatorCompileTarget(e){let t=this.readSchemaUri(e),n=t===void 0?void 0:this.normalizeDraft202012Uri(t),r=t===void 0?void 0:this.normalizeDraft201909Uri(t);return n!==void 0&&kr.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Or.has(r)?{compiler:this.draft2019Ajv,schema:this.withSchemaUri(e,r)}:{compiler:this.draft07Ajv,schema:this.withoutSchemaUri(e)}}readSchemaUri(e){let t=e.$schema;return typeof t==`string`?t:void 0}normalizeDraft202012Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2020-12\/schema#?$/,e=>e.replace(`http://`,`https://`))}normalizeDraft201909Uri(e){return e.replace(/^http:\/\/json-schema\.org\/draft\/2019-09\/schema#?$/,e=>e.replace(`http://`,`https://`))}withSchemaUri(e,t){return e.$schema===t?e:{...e,$schema:t}}withoutSchemaUri(e){if(e.$schema===void 0)return e;let t={...e};return delete t.$schema,t}normalizeErrors(e){return e.map(e=>({message:e.message??`Validation error`,instancePath:e.instancePath,schemaPath:e.schemaPath}))}},jr=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:I([...this.unreported,e])}};function Mr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return Bn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:vn(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function Nr(e){return t=>{e(C.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var Pr=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Zt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Qt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new jr;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??x},this.availableModels=e.availableModels,this.adapterSessionTracker=new yn(this.globalBus,this.config),this.payloadEmitter=Mr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=Nr(t),this.eventBridge=Vn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=Kn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=Un({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Wn({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>ln(this.availableModels,e)}),this.lifecycleEmitter=Hn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new Ar({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Gn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await H({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...Sn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await At({runtime:t,handlerCleanups:n,primaryError:e,agentId:this.agentId})}}async emitStart(e){let t=this.pendingStartMode??`rotation`;this.pendingStartMode=void 0,this.currentBlockIndex=0,await this.lifecycleEmitter.emitStart({model:this.connector.model,cwd:this.connector.cwd,startMode:t,...e})}setPendingStartMode(e){this.pendingStartMode=e}async emitCompletion(e){await this.lifecycleEmitter.emitCompletion(e)}emitSessionClosed(e){this.lifecycleEmitter.emitSessionClosed(e)}async enrichPayload(e){return this.payloadEmitter.enrichPayload(e)}async emitGlobal(e,t){await this.payloadEmitter.emitGlobal(e,t)}async trackUsage(e){await this.eventBridge.trackUsage(e)}getContextWindowSize(e){let t=e??this.confirmedModel??this.initialModel;if(!(!t||!this.availableModels))return this.availableModels.find(e=>e.name===t)?.contextWindowSize}async emitContextWindowUpdate(e){await this.eventBridge.emitContextWindowUpdate(e)}async emitToolUse(e,t,n,r){return this.eventBridge.emitToolUse(e,t,n,r)}async emitToolOutput(e,t,n){return this.eventBridge.emitToolOutput(e,t,n)}async emitStepStarted(e,t,n){await this.eventBridge.emitStepStarted(e,t,n)}async emitStepFinished(e,t){await this.eventBridge.emitStepFinished(e,t)}getBlockIndex(){return this.currentBlockIndex}incrementBlockIndex(){this.currentBlockIndex++}async sendMessage(e){hn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return fn({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await U(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=xn.deriveStartMode(r,this.shouldUseNativeResume(r),i);this.setPendingStartMode(a);let o=this.ensureConnector();return await o.initialize(e),o.getConfirmedAdapterSessionId()}async onBeforeEmitCompletion(){}async onMessageHandle(e,t){this.latestMessageCompletion=e.waitForCompletion();let n=e.responseSchema,r=n===void 0?void 0:pn({structuredOutputManager:this.structuredOutputManager,getConnector:()=>this.connector,sessionId:this.sessionId,messageHandle:e,responseSchema:n});this.lifecycleTracker.track(e,(e,t,n)=>{let r=t.error,i=r instanceof Error?r.message:r,a=r instanceof Error?cn(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Xt(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},J=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},Fr=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}admitSwap(e,t){if(this.teardowns.has(e))throw new J(e,`teardown-in-flight`);if(!t())throw new J(e,`no-runtime`);let n=new b,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new b,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return Ir(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),F(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await Ir(t.closeCurrent())];for(let e of r.unclosed)i.push(await Ir(t.closeUnclosed(e)));return I(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?z:Math.min(z,Math.max(0,t-Date.now()-R));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function Ir(e){try{return await e}catch(e){return F(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function Lr(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function Rr(e){let{serverName:t,originalName:n}=Lr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var zr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=Rr(e),this.entries.set(e,t)),t}recordInjection(e,t){let n=new Set(e.map(e=>e.name));for(let n of e){let e=this.upsert(n.name);e.injected=!0,e.lastInjectedAtTurn=t}for(let[e,t]of this.entries)t.injected&&!n.has(e)&&(t.injected=!1)}recordDiscovery(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t)}recordCall(e,t){let n=this.upsert(e);n.discovered=!0,n.firstDiscoveredAtTurn===void 0&&(n.firstDiscoveredAtTurn=t),n.callCount+=1,n.lastCalledAtTurn=t}getInjectedTools(){return Array.from(this.entries.values()).filter(e=>e.injected)}getCallCount(e){return this.entries.get(e)?.callCount??0}getEntry(e){return this.entries.get(e)}getAllEntries(){return Array.from(this.entries.values())}async suggestInjectionSet(e,t){return e.directTools.map(e=>({name:e.fullName,description:e.description??``,toolsetName:e.serverName,inputSchema:e.inputSchema}))}};function Br(e){return typeof e.tool==`string`?e.tool:void 0}function Vr(e){return e===ye}const Hr={sessionId:`x-factory-session-id`,turnId:`x-factory-turn-id`,messageId:`x-factory-message-id`,llmCallId:`x-factory-llm-call-id`,executionId:`x-factory-execution-id`,frameId:`x-factory-frame-id`},Ur=xe.shape.sessionId.unwrap(),Wr=xe.extend({llmCallId:Ur});function Gr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function Kr(e){let t=Wr.parse(e),n={};for(let[e,r]of Object.entries(Hr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function Y(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function qr(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Y(e)}}var Jr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;globalBus;adapterName;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Y(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Y(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,t),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){return this.pendingAgentIdentityClaims.has(e)?{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`}:this.arbiter.hasReplacementInFlight(e)?{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`}:{found:!1,evidence:`released`}}async teardownFlight(e,t){try{return await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>U(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()})}finally{this.entries.delete(e)}}async evict(e,t={}){let n=await this.teardownFlight(e,t);try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`dead`})}catch(t){if(n.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(n.closeError!==void 0)throw n.closeError;return n}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){let e=[...this.entries.keys()],t=await Promise.all(e.map(e=>this.teardownFlight(e,{})));return this.clear(),t}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Yr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(Te.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function X(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Xr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(k.get,{agentId:t});if(!n.handled||!n.data.agent)return X(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return X(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await Ae(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Yr(e.globalBus,o.sessionId,t)}}catch(e){return X(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}function Zr(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function Qr(e,t){if(e?.deferred!==!0)return t}function Z(e){return e?.deferred!==!0}function $r(e){e.deferred=!1}async function ei(e,t){let n=await ke(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function ti(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function ni(e){let t;try{await e.cleanup?.()}catch(e){t=e}let n;if(e.activation.transaction!==void 0&&!e.activation.terminal)try{await e.activation.transaction.rollback()}catch(e){n=e}finally{e.activation.terminal=!0}if(t!==void 0||n!==void 0){let r=[ri(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(ii(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof O?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([ri(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function ri(e,t){return e instanceof D||e instanceof O?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function ii(e){return e instanceof D||e instanceof O?e:new O}var ai=class{inFlight=new Map;globalBus;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,publication:Zr({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,c);let l;try{l=await c}finally{this.inFlight.delete(t)}e.setResult(l)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return X(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Xr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,adapterSessionId:f}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!Z(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?Qr(r.publication,o):void 0;i===void 0&&a===void 0&&l===void 0||await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:i,model:a,...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return X(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await ei(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),X(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await ti(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await ni({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Y(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return X(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!Z(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof J)return X(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=Qr(n.publication,c);return(n.cwd!==void 0||n.model!==void 0||l!==void 0)&&await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow||await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(E.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(be.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(E.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function oi(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=ci(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new Ar({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await si(t,{bus:t.adapterBus,globalBus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:o.providerContext,...o.providerProtocol!==void 0&&{providerProtocol:o.providerProtocol},...o.adapterProviderAuth!==void 0&&{adapterProviderAuth:o.adapterProviderAuth},compatibleProviderAuths:o.compatibleProviderAuths,providerContextRequired:t.definitionProviders.length>0,...t.clientId!==void 0&&{clientId:t.clientId},ephemeral:!0,...r!==void 0&&{model:r},...t.platformDefaults?.cwd!==void 0&&{cwd:t.platformDefaults.cwd},...t.platformDefaults?.env!==void 0&&{env:t.platformDefaults.env},errorHandler:()=>{console.warn(`[handleInfer:${t.adapterName}] Ephemeral connector failed.`)}},o.providerContext,{...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a}}),u=await ui(li({connector:l.connector,manager:c,prompt:n,...i!==void 0&&{systemPrompt:i},...a!==void 0&&{responseSchema:a},adapterCapabilities:t.adapterCapabilities}),l,t.adapterName);e.setResult({text:u})}async function si(e,t,n,r){let i=await ei(e.globalBus,n),a;try{return a=await H({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await ti(i),a}catch(t){let n=a;return await ni({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>L(U(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function ci(e,t){let n=e===void 0?Ct():w.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...an(t,n)}}async function li(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=j(r),c={...i!==void 0&&{systemPrompt:i},turnContext:gn(void 0,a,o),...a!==void 0&&{responseSchema:a}},l=await t.start(s,c),u=await l.messageHandle.waitForCompletion(),d=u.result?.message??``;return a===void 0||u.outcome!==`completed`?d:di({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function ui(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await U(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function di(e){let{connector:t,manager:n,responseSchema:r,startResult:i,text:a}=e,o=await n.validateTerminalResult({responseSchema:r,message:a,retryTurn:async({attemptNumber:e,validationErrors:n})=>{let a={deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageHandle.messageId}:structured-output-retry:${e}`,responseSchema:r,requestCorrelation:i.messageHandle.requestCorrelation,turnContext:{...i.messageHandle.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:n,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}};return(await(await t.sendMessage(i.messageHandle.message,a)).waitForCompletion()).result?.message??``}});if(o.structuredOutputValidation.status===`failed`)throw fi(o.structuredOutputValidation.errors);return o.message??``}function fi(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function pi(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:on(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>Z(f)},...$t({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new zr,ephemeral:u,nativeFork:sn(e)})}}function Q(e){return e.agentId!==void 0}function mi(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function hi(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function gi(e,t,n){if(!n){try{await t.globalBus.requestOptional(k.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(k.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function _i(e,t){let n=hi({...e,status:`starting`,resolvedCwd:mi(e.payload,t),deps:t});await t.globalBus.request(k.set,{agentId:e.agentId,agent:n})}async function vi(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=mi(r,i);if(!Q(r)){let o=await gi(hi({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=Qr(a.publication,n);try{await c.emit(E.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(S.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function yi(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function bi(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function xi(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Si(e,t){let n=await Me(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId});if(n.outcome!==`reserved`)return{kind:`refused`,message:xi(t.resumeProviderSessionId,n.outcome)};let{claim:r}=n.reservation;return r===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:r.claimToken}}}async function Ci(e,t,n,r){try{await e.requestOptional(E.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function wi(e,t,n){try{if(n){await e.requestOptional(k.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(k.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Ti(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await Ci(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await wi(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function $(e,t,n,r){return await Ti({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function Ei(e,t,n,r){return await Ti({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function Di(e,t,n,r){return $(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function Oi(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=bi(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return $(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return Di(e,r,a,o);if(Q(n))return;let s=Date.now();a.agentRowCreatedAt=s,await _i({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Si(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,resumeProviderSessionId:o});if(c.kind===`refused`)return $(e,r,a,c.message);a.reservation=c.reservation}function ki(e,t,n){if(!(!Q(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function Ai(e,t,n){if(t.initialMessage!==void 0){let r=j(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function ji(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function Mi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function Ni(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Pi(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function Fi(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(E.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function Ii(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await ei(s,i),e.markDispatched(),l=await e.createAgent(t,n,Pi(r,i,a,e.publication));let o=await Ai(l,r,a);return await ti(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await ni({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>L(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function Li(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=t.providerContext===void 0?Ct():w.parse(t.providerContext);Ni(t);let l=await Fi(t,o),u={...t,providerContext:c},d=await Oi(e,{payload:u,agentId:n,sessionId:l,acquisitions:r});if(d!==void 0)return{result:d,messageHandle:void 0};let f=bi(t),p=t.sessionContext?T.parse(t.sessionContext):void 0,{agent:m,startResult:h}=await Ii({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:l,payload:t,providerContext:c,sessionContext:p,adapterName:i,resumeAdapterSessionId:f,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:g,messageId:_,messageHandle:ee}=h;if(a.set(n,{agent:m,sessionId:l,adapterSessionId:g,usage:ji()},f),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await zi(e,{agentId:n,sessionId:l,adapterSessionId:g},u,r);if(t!==void 0)return{result:t,messageHandle:void 0};await Ri(m,g,r.publication)}return $r(r.publication),{result:{success:!0,agentId:n,adapterId:e.adapterId,sessionId:l,adapterSessionId:g,..._!==void 0&&{messageId:_}},messageHandle:ee}}async function Ri(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!Z(n))}async function zi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await vi(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await yi(e.registry,i,e.name,t),t}if(s!==void 0)return Ei(e,i,r,s)}function Bi(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){let a=i.payload,o=a.agentId??crypto.randomUUID(),s=ki(a,o,n);if(s!==void 0){i.setResult(s);return}let c=Q(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:Zr({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await Li(e,a,o,l)}catch(e){throw await Ti({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&Mi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}}var Vi=class{adapterId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new Fr;registry;cleanupFns=[];rehydrationManager;initialized=!1;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){this.adapterId=e.adapterId??crypto.randomUUID(),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??x,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.prepareAuthRuntime=e.prepareAuthRuntime,this.registry=new Jr({globalBus:this.globalBus,adapterName:this.name,arbiter:this.teardownArbiter}),this.rehydrationManager=new ai({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId});this.cleanupFns.push(e.on(S.startAgent,Bi({adapterId:this.adapterId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(S.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),e.on(S.infer,e=>oi(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,clientId:this.clientId,adapterCapabilities:this.capabilities,definitionProviders:this.definitionProviders,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime})),e.on(C.session.closed,this.handleSessionClosed),e.on(C.started,this.handleStartedReconcileRegistry),e.on(C.usage,this.handleUsage),this.globalBus.on(E.closed,this.handleSessionClosedByService),e.on(S.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(qr)})}),e.on(S.getAgent,e=>{let t=this.registry.get(e.payload.agentId);e.setResult({agent:t?qr(t):null})}),e.on(S.stopAgent,async e=>{let t=await this.disposeAgent(e.payload.agentId,{deadline:e.deadline});e.setResult({success:t.found,evidence:t.evidence,...t.detail!==void 0&&{detail:t.detail}})}),e.on(S.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(S.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(S.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};async init(){this.initialized||(this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit(),this.initialized=!0,await this.globalBus.emit(S.initialized,{adapterId:this.adapterId,adapterName:this.name,capabilities:this.capabilities,nativeTools:this.nativeTools}))}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(pi(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}async closeAsync(){try{let e=await this.registry.closeAll();await this.onClose();let t=e.map(e=>e.closeError).filter(e=>e!==void 0);t.length>0&&console.warn(`[AIAdapter] ${t.length} agent(s) failed to close:`,t)}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],this.initialized=!1}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:Hi(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map(Hi)}isInitialized(){return this.initialized}};function Hi(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function Ui(e){let t={adapterSessionId:e.adapterSessionId,lineage:e.lineage,messages:e.messagePayloads};return e.compactionMetadata&&(t.compaction=e.compactionMetadata),e.turns&&(t.turns=e.turns),e.isSidechain!==void 0&&(t.isSidechain=e.isSidechain),e.compressChildren?.length&&(t.children=e.compressChildren.map(Ui)),t}var Wi=class{processLogFile(e){let t=Array.isArray(e)?e:[e],n=this.extractSessionContext(t),r=this.processRecords(t,n);return{adapterSessionId:n.adapterSessionId,sessionEvent:n.sessionEvent,messageEvents:[n.startedEvent,...r],messagePayloads:[],lineage:{kind:`root`,parentAdapterSessionId:null,forkPointMessageId:null}}}};function Gi(e){let t=new Map,n=[];return n.push(e.on(o.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(o.set,e=>{let{filePath:n,bytesRead:r,lastModified:i}=e.payload;t.set(n,{filePath:n,bytesRead:r,lastModified:i}),e.setResult({success:!0})})),n.push(e.on(o.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Ki=y.object({sessions:y.record(y.string(),y.object({state:y.enum([`idle`,`active`]),currentTurnId:y.string().optional()}))}).default({sessions:{}});var qi=class{options;sessions=new Map;generateTurnId;constructor(e){this.options=e,this.generateTurnId=e.generateTurnId??(()=>crypto.randomUUID())}processRecord(e){let t=this.options.getSessionId(e),n=this.getOrCreateSessionState(t),r=[],i=this.options.detectTurnStart(e),a=this.options.detectTurnComplete(e);if(i){n.state===`active`&&n.currentTurnId&&r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId});let e=this.generateTurnId(t);n.state=`active`,n.currentTurnId=e,r.push({type:`turn.started`,sessionId:t,turnId:e})}else a&&n.state===`active`&&n.currentTurnId&&(r.push({type:`turn.completed`,sessionId:t,turnId:n.currentTurnId}),n.state=`idle`,n.currentTurnId=void 0);return r}getState(e){return this.sessions.get(e)?.state??`idle`}getCurrentTurnId(e){return this.sessions.get(e)?.currentTurnId}hasActiveTurn(e){return this.getState(e)===`active`}resetSession(e){return this.sessions.delete(e)}resetAll(){this.sessions.clear()}serialize(){let e={};for(let[t,n]of this.sessions)e[t]={state:n.state,currentTurnId:n.currentTurnId};return{sessions:e}}restore(e){this.sessions.clear();for(let[t,n]of Object.entries(e.sessions))this.sessions.set(t,{state:n.state,currentTurnId:n.currentTurnId})}getTrackedSessions(){return Array.from(this.sessions.keys())}forceCompleteTurn(e){let t=this.sessions.get(e);if(!t||t.state!==`active`||!t.currentTurnId)return;let n={type:`turn.completed`,sessionId:e,turnId:t.currentTurnId};return t.state=`idle`,t.currentTurnId=void 0,n}getOrCreateSessionState(e){let t=this.sessions.get(e);return t||(t={state:`idle`,currentTurnId:void 0},this.sessions.set(e,t)),t}};const Ji=y.object({eventType:y.literal(`agent_started`),model:y.string().optional()}),Yi=y.object({eventType:y.literal(`agent_complete`),message:y.string().optional(),error:y.string().optional()}),Xi=y.object({eventType:y.literal(`error`),message:y.string(),code:y.string().or(y.number()).optional(),type:y.string().optional()}),Zi=y.object({eventType:y.literal(`tool_started`),toolName:y.string(),toolCallId:y.string()}),Qi=y.object({eventType:y.literal(`tool_completed`),toolName:y.string(),toolCallId:y.string(),result:y.string(),success:y.boolean()});export{Vi as AIAdapter,Pr as AIAgent,Wt as AIAgentConnector,Yi as AgentCompleteEventSchema,Cn as AgentEventBridge,wn as AgentLifecycleEmitter,Tn as AgentPayloadEmitter,In as AgentRuntimeMutationManager,Ji as AgentStartedEventSchema,Fr as AgentTeardownArbiter,xn as AgentTurnExecutor,Kt as BaseConnectorSession,qt as BaseConnectorTurn,Wi as BaseLogImporter,R as CONNECTOR_EXIT_OBSERVATION_MS,Mt as ConformanceConnectorRuntimeRegistry,J as ConnectorSwapVetoedError,Xi as ErrorEventSchema,Hr as FactoryUsageCorrelationHeaders,Gt as GenerationRetirementLedger,s as ImportCursorPositionSchema,a as ImportCursorStorageNamespace,o as ImportCursorStorageSubjects,it as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,N as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,rt as MAKAIO_CONFORMANCE_PROVIDER_ENV,at as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Vt as MessageHandle,Zt as MessageLifecycleTracker,Yt as ProceduralAgentConnector,Jt as ProceduralConnectorTurn,W as SESSION_CLOSED_QUEUE_ERROR,z as SWAP_SETTLEMENT_WAIT_MS,yt as ScopedToolApprovalSchema,Pt as SessionLifecycle,zr as SessionToolLedger,Qt as ToolCallTracker,Qi as ToolCompletedEventSchema,Zi as ToolStartedEventSchema,qi as TurnTracker,Ki as TurnTrackerSerializedStateSchema,Ft as UserMessageQueue,I as aggregateTeardownReports,Gr as bindProviderRequestCorrelation,Kr as buildFactoryUsageCorrelationHeaders,kt as capTeardownEvidence,r as cleanEnvForAdapter,Pe as createAdapterNamespace,Nt as createNoAuthTestProviderContext,tt as createTestProviderContext,bt as createToolApprovalHandler,Ze as defineDiscriminatedHandlers,Qe as defineDiscriminatedHandlersSync,V as describeTeardownFailure,B as exitWasObserved,Br as extractMcpCallTarget,ze as formatContextBlockAsText,Ye as formatContextBlocksAsText,mt as formatMessageHistoryAsTranscript,Vr as isMcpCallTool,St as isTextLikeMimeType,Ht as markCompletedWithFinalResult,vt as mergeScopedToolApproval,M as normalizeEnvValue,j as normalizeMessageInput,xt as normalizeMimeType,Xe as parseAIAdapterCapabilities,$e as processDiscriminatedItems,et as processDiscriminatedItemsSync,It as processQueueMessages,Sn as registerAgentBusHandlers,Gi as registerMemoryImportCursorStorage,Lt as rejectQueuedHandles,Ot as reportBestEffortStages,wt as reportObservedExit,Tt as reportRepeatTeardown,dt as resolveConformanceDefinitionProviders,ut as resolveConformanceTestPreset,ft as resolveDisabledNativeTools,_t as resolveRequiredSessionId,nt as resolveTestConfig,L as rethrowTeardownFailure,Dt as runBestEffortStage,Fe as safeJsonStringify,gt as serializeBlockToText,qe as serializeTurnContext,Et as stageFailure,Ui as toImportSegment,F as unknownTeardown,Ie as withTimeout};
|