@makaio/framework 1.0.0-dev-1783977266352 → 1.0.0-dev-1784144891135
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.makaio-build.json +2 -2
- package/dist/adapters/config/index.d.mts +2 -2
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +2 -2
- package/dist/adapters/index.mjs +3 -3
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +1 -1
- package/dist/{artifact-CGjnoyCC.mjs → artifact-Dnpy5ei_.mjs} +1 -1
- package/dist/{authority-state-bootstrap-CEuKScnL.mjs → authority-state-bootstrap-BlbmQ9A5.mjs} +1 -1
- package/dist/bus/index.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/context-resolution-CE1o3wTv.d.mts +1268 -0
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -1
- package/dist/contracts/artifact/index.mjs +1 -1
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/extension/index.d.mts +3 -3
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/index.d.mts +75 -75
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +4 -4
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/{detached-extension-handle-vDK194QV.mjs → detached-extension-handle-BVM-Ic-4.mjs} +1 -1
- package/dist/{filesystem-service-maY_P3yA.mjs → filesystem-service-qR9Zy5-r.mjs} +1 -1
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-CisClzat.mjs → globby-DE358g5u.mjs} +1 -1
- package/dist/{index-D3Eek6kd.d.mts → index-4WQgnxfO.d.mts} +158 -1044
- package/dist/{index-C6LZOiDv.d.mts → index-B96HlWaM.d.mts} +1 -1
- package/dist/{index-DMQlLz2W.d.mts → index-BB5xeWrm.d.mts} +6 -6
- package/dist/{index-DpZbaS7y.d.mts → index-BB6bmH1n.d.mts} +3 -3
- package/dist/{index-Bbr5LEUc.d.mts → index-BFAc9Mqw.d.mts} +1 -1
- package/dist/{index-Cx8jGKOs.d.mts → index-BMmJJJmZ.d.mts} +7 -7
- package/dist/{index-j2YlW_Fc.d.mts → index-B_KmL_z8.d.mts} +1 -1
- package/dist/{index-CagRgpXI2.d.mts → index-ChB3K_a12.d.mts} +1 -1
- package/dist/{index-BrAp9ntB.d.mts → index-CxxqBc3y.d.mts} +87 -87
- package/dist/{index-BxuiHVFi.d.mts → index-DA5S_dj8.d.mts} +1 -1
- package/dist/{index-BXWTilGs.d.mts → index-DHejCnq8.d.mts} +3 -3
- package/dist/{index-kqxUXYe7.d.mts → index-DL1L6Pvw.d.mts} +6 -6
- package/dist/{index-CHjKP5G0.d.mts → index-DeLkAZZ2.d.mts} +23 -10
- package/dist/{index-Cq6rXKae.d.mts → index-GmoTPQcx.d.mts} +92 -92
- package/dist/{index-D75FnT0B.d.mts → index-TWs1TQ2-.d.mts} +1 -1
- package/dist/index-n9dy5seY.d.mts +817 -0
- package/dist/{index-MTvmxwiu2.d.mts → index-wP-qhIoT2.d.mts} +4 -4
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/{lib-DktBDEoY.mjs → lib-6P8_sBCe.mjs} +1 -1
- package/dist/{lib-DIVnpS8e.mjs → lib-DhbCgfYD.mjs} +1 -1
- package/dist/{load-extensions-nqL5WAKj.mjs → load-extensions-5VckHXuw.mjs} +1 -1
- package/dist/{load-extensions-_EnedkUp.d.mts → load-extensions-jGQgvw6Z.d.mts} +1 -1
- package/dist/materialization-BBxXhthv.mjs +1 -0
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/{namespace-dgNmx9g3.d.mts → namespace-BF1FZKiV.d.mts} +27 -27
- package/dist/{namespace-CukqFYHf2.d.mts → namespace-BQhnjUvN2.d.mts} +1 -1
- package/dist/{namespace-TLkZRkcU.d.mts → namespace-CXoCX9u1.d.mts} +20 -20
- package/dist/{namespace-BoA6u44C.d.mts → namespace-CbQ8hdd8.d.mts} +2 -2
- package/dist/{namespace-rO-C2Dgu2.d.mts → namespace-Cv8zbqwY.d.mts} +2 -2
- 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/{package-CsFFT9iR.mjs → package-Brt4dhRC.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/packages-BBJsifai.d.mts +532 -0
- package/dist/packages-I0D3JP9L.mjs +1 -0
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +3 -3
- package/dist/runtime-node/index.mjs +23 -23
- 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-CxN7d_MU.d.mts → schema-BwJf2zRN.d.mts} +1 -1
- package/dist/schemas-6H-dlMrB.mjs +1 -0
- package/dist/{schemas-OaBqeEUT.d.mts → schemas-D6zcRPQo.d.mts} +2 -2
- package/dist/{schemas-CIO03KSD2.d.mts → schemas-tF70HEfT.d.mts} +17 -17
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- 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 +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +3 -3
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/capability/index.d.mts +1 -1
- 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 +4 -4
- 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/schemas.d.mts +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +12 -12
- package/dist/services/filesystem/schemas.d.mts +6 -6
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +59 -308
- 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 +76 -0
- package/dist/services/materialization/index.mjs +1 -0
- 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-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/index.d.mts +9 -9
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/testing/index.mjs +1 -1
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session-editor/index.d.mts +1 -1
- package/dist/services/settings/index.d.mts +3 -3
- package/dist/services/settings/namespace.d.mts +14 -14
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/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/{src-Bo2eA51B.mjs → src-T5DtFSyU.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +1 -1
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/tools-CWSuNk-M.mjs +1 -0
- package/dist/{transition-DjipYcC3.d.mts → transition-C9UOqw0W.d.mts} +2 -2
- package/dist/{types-B-xY9WW2.d.mts → types-Be7wY1De.d.mts} +1 -1
- package/dist/{types-DQsYUZwa.d.mts → types-he1s7Vd_.d.mts} +37 -37
- 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 +20 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/view-builder-D75mQTa1.d.mts +618 -0
- package/dist/{workflow-DFJYGjq_.mjs → workflow-DPeE6-Ta.mjs} +1 -1
- package/dist/workflow-engine/index.d.mts +68 -68
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-worker-BEFjCccX.mjs → workflow-worker-CPCh68Qf.mjs} +1 -1
- package/package.json +6 -2
- package/dist/definition-D7qCBmtc.d.mts +0 -60
- package/dist/index-CidblQAY.d.mts +0 -355
- package/dist/materialization-BwTORtBr.mjs +0 -1
- package/dist/schemas-DlCdlCEF.d.mts +0 -153
- package/dist/schemas-DlrQ0227.mjs +0 -1
- package/dist/tools-PC_L6g2m.mjs +0 -1
- /package/dist/{adapter-auth-runtime-a4O7cSNP.mjs → adapter-auth-runtime-CotG_6M4.mjs} +0 -0
- /package/dist/{adapter-binding-DDUyv1JK.d.mts → adapter-binding-DQ1HrGcH.d.mts} +0 -0
- /package/dist/{ajv-DfHhgdS5.mjs → ajv-WvFKnw8d.mjs} +0 -0
- /package/dist/{await-trigger-DP-fTQc4.mjs → await-trigger-COHFNyNi.mjs} +0 -0
- /package/dist/{base-orchestrator-BiShpVKL.d.mts → base-orchestrator-p3zIcnaJ.d.mts} +0 -0
- /package/dist/{capability-service-Dg2bU8qc.mjs → capability-service-TCOwWrLi.mjs} +0 -0
- /package/dist/{client-DmJwprw1.d.mts → client-CGEyBWKl.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-BK_vIjIo.mjs → client-binary-version-verifier-CaFlNNjs.mjs} +0 -0
- /package/dist/{client-binary-version-verifier-BwrMTAh2.d.mts → client-binary-version-verifier-WsNRplFB.d.mts} +0 -0
- /package/dist/{clients-namespace-B96QIJOs.d.mts → clients-namespace-ClKm1GLT.d.mts} +0 -0
- /package/dist/{config-namespace-x0fuhEXe.d.mts → config-namespace-DOw8R5eb.d.mts} +0 -0
- /package/dist/{create-static-mount-CBTXRtbN.mjs → create-static-mount-DM9qO98Q.mjs} +0 -0
- /package/dist/{cross-spawn-D9WWFl2a.mjs → cross-spawn-CVfmnMVP.mjs} +0 -0
- /package/dist/{cursor-storage-Bw-7ROzx.mjs → cursor-storage-BoFVjVGq.mjs} +0 -0
- /package/dist/{definition-BsTlOz99.d.mts → definition-BZrouYAq.d.mts} +0 -0
- /package/dist/{definition-Cbl0k6Fc.d.mts → definition-ClKlXenJ.d.mts} +0 -0
- /package/dist/{descriptor-to-package-Rs-OjOQU.mjs → descriptor-to-package-DCwvJoUE.mjs} +0 -0
- /package/dist/{drizzle-DYfaDzlO.mjs → drizzle-BQDvlDL2.mjs} +0 -0
- /package/dist/{esm-C_WW4-pP.mjs → esm-1UzF2r1U.mjs} +0 -0
- /package/dist/{event-DTM0-qWP.mjs → event-Ddxe4yp9.mjs} +0 -0
- /package/dist/{execution-target-Bg2wpfML.mjs → execution-target-D6PoGaO8.mjs} +0 -0
- /package/dist/{extension-discovery-APMf1Tes.d.mts → extension-discovery-Cce4FmRu.d.mts} +0 -0
- /package/dist/{filesystem-service-Bx0bR2Lb.d.mts → filesystem-service-CWBzOEAA.d.mts} +0 -0
- /package/dist/{handler-4pKQi3eo.mjs → handler-Bxs0moLY.mjs} +0 -0
- /package/dist/{identity-2qUT1NME.mjs → identity-D481xSkS.mjs} +0 -0
- /package/dist/{index-FDyqQIt5.d.mts → index-4b-ig5Uf.d.mts} +0 -0
- /package/dist/{index-Bv9lm0Kf.d.mts → index-BOlzcjwS.d.mts} +0 -0
- /package/dist/{index-S-mAqWwq.d.mts → index-BRdPSBFH2.d.mts} +0 -0
- /package/dist/{index-BmsPH78f2.d.mts → index-BcqWLD6J.d.mts} +0 -0
- /package/dist/{index-DmuGKvE2.d.mts → index-BfNfKh4y.d.mts} +0 -0
- /package/dist/{index-CSxfU0tB.d.mts → index-BjgfHTX4.d.mts} +0 -0
- /package/dist/{index-CarbJsC92.d.mts → index-BrvsExEF.d.mts} +0 -0
- /package/dist/{index-D0eUQjTU2.d.mts → index-C2PHX5Em.d.mts} +0 -0
- /package/dist/{index-BZ_DSGnE.d.mts → index-CNS1jyBU.d.mts} +0 -0
- /package/dist/{index-DoLdETfR.d.mts → index-CQco6KNL.d.mts} +0 -0
- /package/dist/{index-C18Pn3zP.d.mts → index-ChsmMZmN.d.mts} +0 -0
- /package/dist/{index-DwDBa2mb.d.mts → index-D3cH5U0n.d.mts} +0 -0
- /package/dist/{index-T96ydgVk.d.mts → index-DAVLhzkq.d.mts} +0 -0
- /package/dist/{index-9dISOTLT.d.mts → index-DIAmg04s.d.mts} +0 -0
- /package/dist/{index-DlAfs3RD.d.mts → index-DKCFz7dL.d.mts} +0 -0
- /package/dist/{index-DvaPrL6C.d.mts → index-DbP0yaRw.d.mts} +0 -0
- /package/dist/{index-2PsDAhPN.d.mts → index-DnPJWaO7.d.mts} +0 -0
- /package/dist/{index-DXBiCH2y.d.mts → index-Dx6P-ajY.d.mts} +0 -0
- /package/dist/{index-Rhcr4YNA.d.mts → index-Jec13bI-2.d.mts} +0 -0
- /package/dist/{index-BkAKfh4d.d.mts → index-M8rNEeH8.d.mts} +0 -0
- /package/dist/{index-DnWZdG6C.d.mts → index-NZ-gfUOw.d.mts} +0 -0
- /package/dist/{index-DfVSWBBp.d.mts → index-RtP5Mi4D.d.mts} +0 -0
- /package/dist/{index-_zsihEmk.d.mts → index-XLGBNeu0.d.mts} +0 -0
- /package/dist/{index-Bd52mmj9.d.mts → index-fFSPF7N0.d.mts} +0 -0
- /package/dist/{index-Ctw617Tj.d.mts → index-p1N3ZuqF.d.mts} +0 -0
- /package/dist/{json-value-C8duSh9X.d.mts → json-value-BsWNQQbr.d.mts} +0 -0
- /package/dist/{jsonl-transport-l5NPcQ_2.mjs → jsonl-transport-B70HQ9l1.mjs} +0 -0
- /package/dist/{lib-ClRTNIuz.mjs → lib-C_apP_9s.mjs} +0 -0
- /package/dist/{model-registry-C8MInDtX.mjs → model-registry-C3NX834K.mjs} +0 -0
- /package/dist/{namespace-HsI0Jbbr.mjs → namespace-B1_egU5J.mjs} +0 -0
- /package/dist/{namespace-Dar3O6iT.d.mts → namespace-BTp6-zD8.d.mts} +0 -0
- /package/dist/{namespace-Bl1UhLnK.d.mts → namespace-BqlDkdht2.d.mts} +0 -0
- /package/dist/{namespace-DoNigVgx.d.mts → namespace-BwAiuQ2_.d.mts} +0 -0
- /package/dist/{namespace-3YVLQ_bM.d.mts → namespace-CU1jSw6E.d.mts} +0 -0
- /package/dist/{namespace-BcDHt-ww.d.mts → namespace-CddQuUvG.d.mts} +0 -0
- /package/dist/{namespace-BsEoWXV_.d.mts → namespace-DNgZ_rfi.d.mts} +0 -0
- /package/dist/{namespace-VmsT_tLJ.d.mts → namespace-Dzbt8LqQ.d.mts} +0 -0
- /package/dist/{namespace-Dvi66QS6.d.mts → namespace-SwgMs4rw.d.mts} +0 -0
- /package/dist/{namespace-BhVlHfoO.d.mts → namespace-UCwUrFRx.d.mts} +0 -0
- /package/dist/{namespace-Xp9-g_r-.mjs → namespace-kIjqar0Y.mjs} +0 -0
- /package/dist/{orchestrator-shared-pxtyNu3W.d.mts → orchestrator-shared-DrEFeZYw.d.mts} +0 -0
- /package/dist/{orchestrator-shared-DAkGOu9H.mjs → orchestrator-shared-jYk9mi5C.mjs} +0 -0
- /package/dist/{out-BB6Kb4Xu.mjs → out-B6fO6go6.mjs} +0 -0
- /package/dist/{package-BYpWkSuQ.mjs → package-3cW8oIkI.mjs} +0 -0
- /package/dist/{package-DG9GSY8M.d.mts → package-BVm1EakP.d.mts} +0 -0
- /package/dist/{providers-namespace-O4de1tgO.d.mts → providers-namespace-Bl3M8Ibo.d.mts} +0 -0
- /package/dist/{quick-lru-BLaSzINB.mjs → quick-lru-Coxb6GVa.mjs} +0 -0
- /package/dist/{registry-TJjQgTgp.mjs → registry-ElIHcMM2.mjs} +0 -0
- /package/dist/{schemas-9QJf1FtS.d.mts → schemas-B3K1ekm7.d.mts} +0 -0
- /package/dist/{schemas-jDRSOXJL.d.mts → schemas-BKgUDm_a2.d.mts} +0 -0
- /package/dist/{schemas-XRhqOgVE.d.mts → schemas-CVbfHPw-.d.mts} +0 -0
- /package/dist/{schemas-CLsbsX1W.d.mts → schemas-CzT0LApM.d.mts} +0 -0
- /package/dist/{schemas-D_9X_CRo.d.mts → schemas-DPosZWw-.d.mts} +0 -0
- /package/dist/{schemas-fRLDhefF.d.mts → schemas-D_H0ztxl.d.mts} +0 -0
- /package/dist/{schemas-qpo1Goit.d.mts → schemas-DfZ85CRF2.d.mts} +0 -0
- /package/dist/{schemas-K3Td_WdR.d.mts → schemas-Dq_g7Giu.d.mts} +0 -0
- /package/dist/{schemas-DwfTUQIa.mjs → schemas-FiDj_kLq.mjs} +0 -0
- /package/dist/{schemas-qt5QTjVc.d.mts → schemas-pl0mzEtO.d.mts} +0 -0
- /package/dist/{server-lifecycle-D-jxVr_0.mjs → server-lifecycle-DLdh0-4H.mjs} +0 -0
- /package/dist/{server-lifecycle-r5Tkk8bU.d.mts → server-lifecycle-DzO3rjKP.d.mts} +0 -0
- /package/dist/{session-lineage-YShrn77v.d.mts → session-lineage-COFDOi7x.d.mts} +0 -0
- /package/dist/{src-Ci_WY9uw.mjs → src-Dqa1n_kI.mjs} +0 -0
- /package/dist/{storage-namespace-BzE2M4Hq.mjs → storage-namespace-B1_x8Ho2.mjs} +0 -0
- /package/dist/{storage-namespace-DWKFqEW-.d.mts → storage-namespace-D4yQ--Sp.d.mts} +0 -0
- /package/dist/{storage-namespace-definition-BZJGSaX3.d.mts → storage-namespace-definition-BzSaRLtZ.d.mts} +0 -0
- /package/dist/{supports-color-Dzp6WuF5.mjs → supports-color-CCdGjFUY.mjs} +0 -0
- /package/dist/{tool-approval-service-Dh0XI21f.mjs → tool-approval-service-BgSn_6NT.mjs} +0 -0
- /package/dist/{tray-menu-service-Bonl2KXf.mjs → tray-menu-service-BJ9r7IY3.mjs} +0 -0
- /package/dist/{types-BCW9kr4L.d.mts → types-B9QOZAZ5.d.mts} +0 -0
- /package/dist/{types-DWNoZ3Sd.d.mts → types-Bgb8eQkd.d.mts} +0 -0
- /package/dist/{types-DvKaEOOn.d.mts → types-C8_OhAFv.d.mts} +0 -0
- /package/dist/{types-CrJ7KEZ0.d.mts → types-Diu9uAnB.d.mts} +0 -0
- /package/dist/{window-registry-WsWu-rcK.d.mts → window-registry-CHv3cgSN.d.mts} +0 -0
package/dist/adapters/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth-runtime-
|
|
1
|
+
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth-runtime-CotG_6M4.mjs";import{i,n as a,r as o,t as s}from"../cursor-storage-BoFVjVGq.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-WvFKnw8d.mjs";import{z as y}from"zod";import*as se from"node:fs";import{AuthenticationError as ce,DirectoryNotFoundError as le,ModelUnavailableError as ue,QuotaExceededError as de,RateLimitError as fe,createBusNamespace as pe}from"@makaio/framework/core";import{MakaioBus as b,NoHandlerError as me,RequestError as he}from"@makaio/framework/bus";import{AdapterSubjects as x,AgentSubjects as S,AgentToolApproveSchema as ge,HarnessSubjects as _e,MCP_CALL_TOOL_NAME as ve,McpSubjects as C,ProviderContextSchema as w,RequestCorrelationContextSchema as T,ResolvedProviderContextSchema as ye,SessionContextSchema as E,SessionSubjects as D}from"@makaio/framework/contracts";import{TurnStorageSubjects as be}from"@makaio/framework/services/turn";import{AuthCredentialRefSchema as xe}from"@makaio/framework/contracts/auth";import{runPostUserMessageHooks as Se,runPreUserMessageHooks as Ce}from"@makaio/framework/hooks";import{ProviderContextActivationError as O,ProviderContextActivationRollbackError as k,prepareProviderContextActivation as we,resolveRuntimeProviderContext as Te}from"@makaio/framework/services/provider-context";import{DeferredPromise as A,resolveTimeouts as Ee}from"@makaio/framework/utils";import De from"node:os";import{AgentStorageSubjects as j}from"@makaio/framework/services/session";import*as Oe from"node:process";function ke(e,t,n){let r=pe(e,t,n),i=b.registerNamespace(r);return Object.assign(i,{definition:r})}function M(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]`}}}function Ae(e){return e.replaceAll(`&`,`&`).replaceAll(`<`,`<`).replaceAll(`>`,`>`).replaceAll(`'`,`'`)}function je(e){let t=e.replace(/[^a-zA-Z0-9_-]/g,`_`);return t.length===0?`context`:/^[A-Za-z_]/.test(t)?t:`context_${t}`}function Me(e,t){let n=je(e);return`<${n}>\n${Ae(t)}\n</${n}>`}function Ne(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 Pe(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 Fe(e){if(!Array.isArray(e))return;let t=e.filter(Ne).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
2
|
`):void 0}function Ie(e){if(!Array.isArray(e))return;let t=e.filter(Pe).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
|
|
|
@@ -6,6 +6,6 @@ import{o as e,t}from"../chunk-DTipWd-i.mjs";import{n,u as r}from"../adapter-auth
|
|
|
6
6
|
|
|
7
7
|
`):void 0}const ze=[`skillCatalog`,`skills`,`contextRules`];function Be(e){if(!e)return[];let t=[],n={skillCatalog:Fe,skills:Ie,contextRules:Re};for(let r of ze)Ve(t,r,e[r],n[r]);let r=new Set(ze),i=Object.keys(e).filter(t=>e[t]==null?!1:!r.has(t)).sort();for(let n of i)t.push({tag:n,content:M(e[n])});return t}function Ve(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:M(n)})}function He(e){return e.length===0?``:e.map(e=>Me(e.tag,e.content)).join(`
|
|
8
8
|
|
|
9
|
-
`)}function Ue(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 N(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 We(e,t){return{discriminator:e,handlers:t}}function Ge(e,t){return{discriminator:e,handlers:t}}async function Ke(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 qe(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 P(e){return e?.trim()||void 0}function F(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,xe.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 Je(e,t,n,r=[]){let i=e?.providerContext===void 0?F(n):
|
|
9
|
+
`)}function Ue(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 N(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 We(e,t){return{discriminator:e,handlers:t}}function Ge(e,t){return{discriminator:e,handlers:t}}async function Ke(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 qe(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 P(e){return e?.trim()||void 0}function F(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,xe.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 Je(e,t,n,r=[]){let i=e?.providerContext===void 0?F(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 Ye=`MAKAIO_CONFORMANCE_PROVIDER`,Xe=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,Ze=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,I=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function Qe(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 $e(e){let t=P(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${I} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${I} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${I}[${e}] must be a provider object with an id`);return n}function et(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 Qe(a)}function tt(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 nt(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=$e(t(I)),o=et(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=P(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=tt(e.adapterName,l,`primary`,P(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=tt(e.adapterName,l,`secondary`,P(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:F(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}}}async function rt(e,t,n,r){let i=n===void 0?await e.requestOptional(_e.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(_e.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function it(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 at(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(it).join(`
|
|
10
10
|
`)}`}).join(`
|
|
11
|
-
`)}function ot(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function st(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 ot(e)}}function L(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 ct(e,t,n,r=!1){return L(e,t,`sessionId`,n,r)}function lt(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=ct(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:L(t.agentId,e.agentId,`agentId`,n,i),adapterId:L(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:L(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:L(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const ut={request:he.request.extend({sessionId:b.string().optional()}),response:he.response};function dt(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 ft(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function pt(e){let t=ft(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 R(){return{state:`unresolved`}}async function z(e){let t=await(e.prepareAuthRuntime??n)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await ht(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function B(e){let t;try{await e.connector.close()}catch(e){t=e}let n;try{await e.lease?.release()}catch(e){n=e}if(t!==void 0&&n!==void 0)throw AggregateError([t,n],`Connector close and client config lease release both failed.`,{cause:t});if(t!==void 0)throw t;if(n!==void 0)throw n}async function mt(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}try{await B(e.runtime)}catch(e){t.push(e)}throw t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function ht(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var gt=class{runtimes=new Set;async create(e){let t=await z(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=B({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.allSettled([...this.runtimes].map(({close:e})=>e()))).filter(e=>e.status===`rejected`).map(({reason:e})=>e);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function _t(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 vt=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)}},yt=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 V=`Session closed before queued message could be processed`;async function H(e,t){let n=t.getCurrentTurn(),r=t.extractContent??xt;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`}),H(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function bt(e,t=V){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function xt(e){return e.message.message}const St=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Ct(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:St.includes(t),statesToEmit:[...n,t]}}var U=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new j;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.deferredCompletion=new j,this.deferredAcknowledgement=new j,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 wt(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 W=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;_currentTurnNumber=0;_pendingCanonicalTurnNumber;adapterName;systemPrompt;constructor(e){let t=e.cwd??Ee.tmpdir();if(!oe.existsSync(t))throw new ce(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??De([]),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??Oe.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Ct(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}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new U(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);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){if(!Number.isInteger(e)||e<1)throw RangeError(`setCanonicalTurnNumber: expected positive integer, got ${e}`);if(e<=this._currentTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} ≤ current (${this._currentTurnNumber})`);if(this._pendingCanonicalTurnNumber!==void 0&&e<this._pendingCanonicalTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} < pending (${this._pendingCanonicalTurnNumber})`);this._pendingCanonicalTurnNumber=e}consumeTurnNumber(){return this._pendingCanonicalTurnNumber===void 0?(this._currentTurnNumber+=1,this._currentTurnNumber):(this._currentTurnNumber=this._pendingCanonicalTurnNumber,this._pendingCanonicalTurnNumber=void 0,this._currentTurnNumber)}get currentTurnNumber(){return this._currentTurnNumber}get pendingTurnNumber(){return this._pendingCanonicalTurnNumber}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 me||e instanceof pe)&&(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){}},Tt=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(V)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Et=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)}},Dt=class extends Et{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}},Ot=class extends W{turnEventsWired=!1;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig();this.on(e.turn_started,(async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}await this.updateProcessingState(`turn_started`)})),this.on(e.step_started,(async()=>{await this.updateProcessingState(`step_started`)})),this.on(e.step_finished,(async()=>{await this.updateProcessingState(`step_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)})),this.on(e.turn_finished,(async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{await this.updateProcessingState(`processing_finished`);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 processUserMessages(e){let[t]=e,n=await this.ensureSession(),r=this.getSessionQueue();return r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),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 kt(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 At=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)})}},jt=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 Mt(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=Nt({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 Nt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Pt(e,t){return e?.find(e=>e.definition.id===t)?.auth}function Ft(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function It(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function Lt(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:Ft(e,t.definitionId),adapterProviderAuth:Pt(e,t.definitionId),compatibleProviderAuths:It(e,t.definitionId)}}function Rt(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 zt(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:E.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function Bt(e){if(e instanceof de||e instanceof se||e instanceof le||e instanceof ue)return e.code}function Vt(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function Ht(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??R()}function Ut(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function Wt(e){let{config:t,overrides:n}=e,r=Ht(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=Lt(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?.resumeAdapterSessionId??t.resumeAdapterSessionId,reasoningEffort:Ut(n,e.currentReasoningEffort),supportedReasoningLevels:Vt(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 Gt(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}}}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.`}}function Kt(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 K=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;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.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`}deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),n}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?E.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=this.deriveAndSetPendingStartMode(r.sessionContext),a=N(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,turnContext:G(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:Kt(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?E.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=this.deriveAndSetPendingStartMode(o.sessionContext),c=N(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,turnContext:G(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:Kt(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}:Ce({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){Se({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 qt(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(w.tools.updated,e.onMcpToolsChanged),e.globalBus.on(w.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(D.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var Jt=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()}},Yt=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)}this.config.globalBus.requestOptional(A.updateStatus,{agentId:this.config.agentId,status:`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)}))}},Xt=class{config;constructor(e){this.config=e}resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId();return e!==void 0&&this.config.setLastKnownAdapterSessionId(e),e}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=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,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},q=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await we(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}}},J=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},Y=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},Zt=class{config;constructor(e){this.config=e}async handle(e){let t=ye.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 q.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=Qt(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof J)throw e;if(e instanceof k)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof Y?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof O?`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 Y(`stale_change`);if(n.getProcessingState()!==`idle`)throw new Y(`turn_active`)}};function Qt(e){return e instanceof Y?Error(`Credential change rejected (${e.reason}).`):e instanceof O||e instanceof k?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var $t=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 en(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&&X(e.endpointOverrides,t.endpointOverrides)&&X(e.auth,t.auth)&&X(e.capabilities,t.capabilities)}function X(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)=>X(e,t[n]));if(!tn(e)||!tn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&X(e[n],t[n]))}function tn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function nn(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 rn=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:T.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:an(e)}}let t;try{a&&i!==void 0&&(t=await q.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 k)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:an(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof J?`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(D.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 nn({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:!en(e,t)}};function an(e){return e instanceof O?`model_change_failed: provider_activation_${e.code}`:e instanceof k?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var on=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)}},sn=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new on;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 $t({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new rn({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 Zt({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 J)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(A.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new J}catch(e){throw e instanceof J?e:new J}}},cn=class{connectorWiringCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){for(let e of this.connectorWiringCleanups)try{e()}catch(e){console.warn(`[AIAgent] Connector wiring cleanup failed for agent ${this.config.agentId}:`,e)}this.connectorWiringCleanups=[]}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){let n=this.config.getConnectorRuntime(),r=n.connector;if(r.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${r.getProcessingState()})`);let i=await this.createReplacementRuntime(r,e),a=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let o=await this.initializeReplacement(i,a,t);this.config.setConnectorRuntime(i),o!==void 0&&this.config.setLastKnownAdapterSessionId(o),this.runWiringCleanups(a),await this.closePreviousRuntime(n)}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?.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return z({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n){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;try{await B(e)}catch(e){throw AggregateError([n,e],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}throw n}}runWiringCleanups(e){for(let t of e)try{t()}catch(e){console.warn(`[AIAgent] Previous connector cleanup failed during swap for agent ${this.config.agentId}:`,e)}}async closePreviousRuntime(e){try{await B(e)}catch{let e={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(e)}catch{console.warn(`[AIAgent] ${e.code} for agent ${e.agentId}; cleanup diagnostic delivery also failed.`)}}}};function ln(e){return new Xt({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function un(e){return new Jt({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 dn(e){return new Yt({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 fn(e){return new K(e)}function pn(e){return new sn({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 mn(e){return new cn({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,reportCleanupFailure:t=>e.emitGlobal(S.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}var hn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicAnchor=void 0;let t=y(),n=p(),r=f(),i=ae(),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})),gn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.dynamicRef=void 0;let t=y(),n=p(),r=ae(),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})),_n=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=hn(),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`)}}})),vn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=gn();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),yn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=hn(),n=gn(),r=_n(),i=vn();e.default=[t.default,n.default,r.default,i.default]})),bn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=re();e.default={keyword:`dependentRequired`,type:`object`,schemaType:`object`,error:t.error,code:e=>(0,t.validatePropertyDeps)(e)}})),xn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=re();e.default={keyword:`dependentSchemas`,type:`object`,schemaType:`object`,code:e=>(0,t.validateSchemaDeps)(e)}})),Sn=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`)}}})),Cn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=bn(),n=xn(),r=Sn();e.default=[t.default,n.default,r.default]})),wn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=y(),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)}}}})),Tn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=y(),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())})}}}})),En=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=wn(),n=Tn();e.default=[t.default,n.default]})),Dn=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`}]}}}}})),On=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:`#`}}}}})),kn=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:`#`}}}})),An=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:{}}}}})),jn=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`}}}})),Mn=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}}}})),Nn=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:[]}}}})),Pn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dn(),n=On(),r=kn(),i=An(),a=jn(),o=Mn(),s=Nn(),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})),Fn=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=ne(),i=yn(),a=Cn(),o=En(),s=v(),c=Pn(),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=y();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=te();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return g.default}})})),In=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=g(),n=u(),r=ee(),i=yn(),a=Cn(),o=En(),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]})),Ln=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}}}})),Rn=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`}}}}})),zn=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`}}}})),Bn=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`}}}})),Vn=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`}}}})),Hn=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`}}}})),Un=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}}}})),Wn=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:[]}}}})),Gn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ln(),n=Rn(),r=zn(),i=Bn(),a=Vn(),o=Hn(),s=Un(),c=Wn(),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})),Kn=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=In(),i=v(),a=Gn(),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=y();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=te();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return f.default}})})),qn=e(ie(),1),Jn=e(Fn(),1),Yn=e(Kn(),1);const Xn=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),Zn=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var Qn=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new qn.default({allErrors:!0,strict:!1});draft2019Ajv=new Jn.default({allErrors:!0,strict:!1});draft2020Ajv=new Yn.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&&Zn.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Xn.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}))}},$n=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?.()}}},er=class{globalBus;lifecycleManager;runtimeConfig;barrier=new $n;constructor(e,t,n){this.globalBus=e,this.lifecycleManager=t,this.runtimeConfig=n}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t){await this.runExclusive(async()=>{let n;try{e?.providerContext!==void 0&&(n=await q.prepare(this.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await n?.commit()})}catch(e){if(n!==void 0)try{await n.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){await this.lifecycleManager.swapConnector(e,t),e?.providerContext!==void 0&&(this.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.runtimeConfig.mcpSessionContext=e.mcpSessionContext)}},tr=class{connector;connectorRuntime;confirmedModel;initialModel;lastKnownAdapterSessionId;busHandlerCleanups=[];initialized=!1;runtimeSystemPrompt;lifecycleTracker=new At({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new jt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??x},this.availableModels=e.availableModels;let t=e=>{this.lastKnownAdapterSessionId=e};this.payloadEmitter=ln({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.getConfirmedAdapterSessionId(),getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:t,getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)});let n=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.eventBridge=un({emitGlobal:n,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(n,t),this.connectorSwapCoordinator=new er(this.globalBus,this.connectorLifecycleManager,this.config),this.turnExecutor=fn({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),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=pn({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:n,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=>Vt(this.availableModels,e)}),this.lifecycleEmitter=dn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:n,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new Qn({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e,t){return mn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:this.createOnMessageSent.bind(this),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:t})}getEventMetadataDefaults(){return{clientId:this.config.clientId,providerConfigId:this.connector?.providerConfigId??(this.config.providerContext?.state===`resolved`?this.config.providerContext.providerConfigId:void 0),occurredAt:Date.now()}}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 z({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.createOnMessageSent(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.busHandlerCleanups.push(...qt({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.busHandlerCleanups;this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring(),this.connectorRuntime=void 0,await mt({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){this.globalBus.requestOptional(A.updateStatus,{agentId:this.agentId,status:`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.busHandlerCleanups.push(e)}async swapConnector(e,t){await this.connectorSwapCoordinator.swapConnector(e,t)}buildConfigInput(e){return Wt({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}createOnMessageSent(){return e=>{this.emitGlobal(C.user_message.sent,{messageId:e.messageId,content:e.message,deliveryMode:e.deliveryMode,turnId:e.turnId})}}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`);for(let e of this.busHandlerCleanups)try{e()}catch(e){console.warn(`[AIAgent] Bus handler cleanup failed:`,e)}this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring();let t=this.connectorRuntime;this.connectorRuntime=void 0,t!==void 0&&await B(t)}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=K.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:Gt({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?Bt(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 complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=kt(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}};function nr(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}=nr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var ir=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 ar(e){return typeof e.tool==`string`?e.tool:void 0}function or(e){return e===_e}const sr={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`},cr=ve.shape.sessionId.unwrap(),lr=ve.extend({llmCallId:cr});function ur(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function dr(e){let t=lr.parse(e),n={};for(let[e,r]of Object.entries(sr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}var fr=class{entries=new Map;pendingAdapterSessionClaims=new Set;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(t.adapterSessionId===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(t.adapterSessionId===e)return!0;return!1}set(e,t){t.adapterSessionId!==void 0&&this.pendingAdapterSessionClaims.delete(t.adapterSessionId),this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear()}async evict(e,t={}){let n=this.entries.get(e);this.entries.delete(e);let r;if(n)try{await n.agent.close({emitSessionClosed:t.emitSessionClosed})}catch(e){r=e}try{await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`dead`})}catch(t){if(r===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(r!==void 0)throw r}async evictSilently(e){let t=this.entries.get(e);if(this.entries.delete(e),t)try{await t.agent.close({emitSessionClosed:!1})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,t)}}dispose(e){let t=this.entries.get(e);return t?(t.agent.close().catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during dispose:`,t)}),this.entries.delete(e),this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`disposed`}).catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}),!0):!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 pr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(be.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}async function Z(e,t){let n=await we(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function Q(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function $(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=[mr(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(hr(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof k?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([mr(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function mr(e,t){return e instanceof O||e instanceof k?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function hr(e){return e instanceof O||e instanceof k?e:new k}function gr(e){let t=e.nativeLocality;if(typeof t==`object`&&t&&`kind`in t){let e=t.kind;if(e===`native`||e===`degrade`||e===`foreign`)return e}}var _r=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,adapterSessionId:i,resumeAdapterSessionId:a}=e.payload,o=this.inFlight.get(t);if(o){await o,e.setResult({});return}let s=(async()=>{let e=this.registry.get(t);if(e){await this.rehydrateRegisteredAgent(t,e,{adapterSessionId:i,cwd:n,model:r});return}await this.rehydrateFromStorage(t,{adapterSessionId:i,rpcResumeId:a,cwd:n,model:r})})().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,s);try{await s}finally{this.inFlight.delete(t)}e.setResult({})};async rehydrateFromStorage(e,t){let{adapterSessionId:n,rpcResumeId:r,cwd:i,model:a}=t,o=await this.globalBus.requestOptional(A.get,{agentId:e});if(!o.handled||!o.data.agent)throw Error(`Agent ${e} not found in storage`);let s=o.data.agent;if(s.status===`disposed`)throw Error(`Agent ${e} is disposed and cannot be rehydrated`);let c=await this.resolveMcpSessionContext(s.sessionId,s.profileId),l=s.providerConfigId===void 0?void 0:await Te(this.globalBus,{adapterName:s.adapterName,providerConfigId:s.providerConfigId}),u=n??s.adapterSessionId,d=r??void 0,f=gr(s),p=d??(d!==void 0||f===`native`?u:void 0),m={model:a??s.model,cwd:i??s.cwd,allowedDirectories:s.allowedDirectories,adapterSessionId:u,...p!==void 0&&{resumeAdapterSessionId:p},...l!==void 0&&{providerContext:l},...c!==void 0&&{mcpSessionContext:c}},h=await pr(this.globalBus,s.sessionId,e),{agent:g,adapterSessionId:_}=await this.claimAndCreateAgent(e,s,m,p);this.registry.set(e,{agent:g,sessionId:s.sessionId,adapterSessionId:_,usage:h}),(i!==void 0||a!==void 0)&&await this.globalBus.requestOptional(A.updateRuntime,{agentId:e,cwd:i,model:a}),await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`idle`})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))throw Error(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i,a;try{i=await Z(this.globalBus,n.providerContext??{state:`unresolved`}),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 Q(i),{agent:a,adapterSessionId:o}}catch(t){try{if(i===void 0)throw t;let n=a;return await $({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>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=n.adapterSessionId??t.adapterSessionId;await t.agent.swapConnector({cwd:n.cwd,model:n.model,adapterSessionId:r,resumeAdapterSessionId:r});let i=await t.agent.getAdapterSessionId();i&&(t.adapterSessionId=i),(n.cwd!==void 0||n.model!==void 0)&&await this.globalBus.requestOptional(A.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model}),await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`idle`})}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(D.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(w.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(D.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function vr(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=br(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new Qn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await yr(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 Sr(xr({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 yr(e,t,n,r){let i=await Z(e.globalBus,n),a;try{return a=await z({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await Q(i),a}catch(t){let n=a;return await $({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>B(n)},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function br(e,t){let n=e===void 0?R():T.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...Lt(t,n)}}async function xr(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=N(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:Cr({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function Sr(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let a;try{await B(t)}catch(e){a=e}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 Cr(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 wr(o.structuredOutputValidation.errors);return o.message??``}function wr(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}async function Tr(e,t,n,r,i){let{adapterId:a,name:o,clientId:s,getPlatformDefaults:c,globalBus:l}=i,u=r.role,d=Date.now(),f=c(),p=r.cwd??f?.cwd,m=r.clientId??s;try{await l.requestOptional(A.set,{agentId:e,agent:{agentId:e,adapterId:a,adapterName:o,sessionId:t,adapterSessionId:n,model:r.model,cwd:p,allowedDirectories:r.allowedDirectories,role:u,status:`idle`,createdAt:d,lastActivityAt:d,...m!==void 0&&{clientId:m},...r.harnessId!==void 0&&{harnessId:r.harnessId},...r.providerContext.state===`resolved`&&{providerConfigId:r.providerContext.providerConfigId}}})}catch(n){console.error(`[AIAdapter:${o}] Optional agent persistence failed:`,{agentId:e,adapterId:a,sessionId:t,error:n})}l.emit(D.agent.added,{sessionId:t,agentId:e,adapterId:a,adapterName:o,adapterSessionId:n,role:u,model:r.model,cwd:p}),l.emit(S.session.created,{adapterId:a,adapterName:o,adapterSessionId:n,sessionId:t,model:r.model??`unknown`})}async function Er(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})}}async function Dr(e,t,n){if(t.initialMessage!==void 0){let r=N(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})}}async function Or(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function kr(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Ar(e,t,n){let{sessionContext:r,...i}=e;return{...i,providerContext:t,...n===void 0?{}:{sessionContext:n}}}async function jr(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(D.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`)}function Mr(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}async function Nr(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,resumeAdapterSessionId:s,registry:c,globalBus:l}=e,u,d;try{u=await Z(l,i),d=await e.createAgent(t,n,Ar(r,i,a));let o=await Dr(d,r,a);return await Q(u),{agent:d,startResult:o}}catch(e){try{if(u===void 0)throw e;let t=d;return await $({activation:u,primaryError:e,...t!==void 0&&{cleanup:()=>t.close({emitSessionClosed:!r.ephemeral})},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}finally{s!==void 0&&c.releaseAdapterSessionClaim(s)}}}function Pr(e){let{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,registry:a,globalBus:o,createAgent:s}=e;return async function(e){let c=e.payload,l=crypto.randomUUID(),u=c.providerContext===void 0?R():T.parse(c.providerContext);kr(c);let d=await jr(c,o),f=Mr(c);if(f!==void 0&&!a.claimAdapterSession(f)){e.setResult({success:!1,message:`Provider session ${f} is already claimed by another in-flight start`});return}let{agent:p,startResult:m}=await Nr({agentId:l,sessionId:d,payload:c,providerContext:u,sessionContext:c.sessionContext?E.parse(c.sessionContext):void 0,adapterName:n,resumeAdapterSessionId:f,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:_}=m;if(a.set(l,{agent:p,sessionId:d,adapterSessionId:h,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await Tr(l,d,h,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await Er(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:h,...g!==void 0&&{messageId:g}}),c.ephemeral&&Or(a,l,n,_).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Fr=class{adapterId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;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 fr({globalBus:this.globalBus,adapterName:this.name}),this.rehydrationManager=new _r({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,Pr({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=>vr(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(D.closed,this.handleSessionClosedByService),e.on(S.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(e=>({agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))})}),e.on(S.getAgent,e=>{let t=this.registry.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agent.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})}),e.on(S.stopAgent,e=>{e.setResult({success:this.disposeAgent(e.payload.agentId)})}),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()?`);let{model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,reasoningEffort:c,mcpSessionContext:l,harnessId:u,ephemeral:d}=n,f=n.clientId??this.clientId,p=n.resumeAdapterSessionId??(n.mode===`resume`?n.adapterSessionId:void 0),m=zt(n),h=Rt(this.definitionProviders,r,n.providerContext?.state===`resolved`?n.providerContext.definitionId:void 0),g=l===void 0?void 0:new ir,_={agentId:e,adapterId:this.adapterId,adapterName:this.name,globalBus:this.globalBus,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:h,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,...this.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:this.prepareAuthRuntime},sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...Mt({platformCwd:this.platformDefaults?.cwd,platformEnv:this.platformDefaults?.env,model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,allowedDirectories:n.allowedDirectories,adapterSessionId:n.adapterSessionId,reasoningEffort:c,adapterConfig:n.adapterConfig,resumeAdapterSessionId:p,harnessId:u,clientId:f,clientProfileName:n.clientProfileName,mcpSessionContext:l,toolLedger:g,ephemeral:d,nativeFork:m})};return this.agentFactory(_)}async closeAsync(){try{let e=await Promise.allSettled([...this.registry.values()].map(e=>e.agent.close()));this.registry.clear(),await this.onClose();let t=e.filter(e=>e.status===`rejected`).map(e=>e.reason instanceof Error?e.reason:Error(String(e.reason)));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);if(t)return Object.assign({},t.agent,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId})}disposeAgent(e){return this.registry.dispose(e)}getActiveAgents(){return Array.from(this.registry.values()).map(e=>Object.assign({},e.agent,{sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))}isInitialized(){return this.initialized}};function Ir(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(Ir)),t}var Lr=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 Rr(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 zr=b.object({sessions:b.record(b.string(),b.object({state:b.enum([`idle`,`active`]),currentTurnId:b.string().optional()}))}).default({sessions:{}});var Br=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 Vr=b.object({eventType:b.literal(`agent_started`),model:b.string().optional()}),Hr=b.object({eventType:b.literal(`agent_complete`),message:b.string().optional(),error:b.string().optional()}),Ur=b.object({eventType:b.literal(`error`),message:b.string(),code:b.string().or(b.number()).optional(),type:b.string().optional()}),Wr=b.object({eventType:b.literal(`tool_started`),toolName:b.string(),toolCallId:b.string()}),Gr=b.object({eventType:b.literal(`tool_completed`),toolName:b.string(),toolCallId:b.string(),result:b.string(),success:b.boolean()});export{Fr as AIAdapter,tr as AIAgent,W as AIAgentConnector,Hr as AgentCompleteEventSchema,cn as AgentConnectorLifecycleManager,Jt as AgentEventBridge,Yt as AgentLifecycleEmitter,Xt as AgentPayloadEmitter,sn as AgentRuntimeMutationManager,Vr as AgentStartedEventSchema,K as AgentTurnExecutor,Tt as BaseConnectorSession,Et as BaseConnectorTurn,Lr as BaseLogImporter,gt as ConformanceConnectorRuntimeRegistry,Ur as ErrorEventSchema,sr as FactoryUsageCorrelationHeaders,s as ImportCursorPositionSchema,a as ImportCursorStorageNamespace,o as ImportCursorStorageSubjects,Xe as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,I as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Ye as MAKAIO_CONFORMANCE_PROVIDER_ENV,Ze as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,U as MessageHandle,At as MessageLifecycleTracker,Ot as ProceduralAgentConnector,Dt as ProceduralConnectorTurn,V as SESSION_CLOSED_QUEUE_ERROR,ut as ScopedToolApprovalSchema,vt as SessionLifecycle,ir as SessionToolLedger,jt as ToolCallTracker,Gr as ToolCompletedEventSchema,Wr as ToolStartedEventSchema,Br as TurnTracker,zr as TurnTrackerSerializedStateSchema,yt as UserMessageQueue,ur as bindProviderRequestCorrelation,dr as buildFactoryUsageCorrelationHeaders,r as cleanEnvForAdapter,ke as createAdapterNamespace,_t as createNoAuthTestProviderContext,F as createTestProviderContext,dt as createToolApprovalHandler,We as defineDiscriminatedHandlers,Ge as defineDiscriminatedHandlersSync,ar as extractMcpCallTarget,Me as formatContextBlockAsText,He as formatContextBlocksAsText,at as formatMessageHistoryAsTranscript,or as isMcpCallTool,pt as isTextLikeMimeType,wt as markCompletedWithFinalResult,lt as mergeScopedToolApproval,P as normalizeEnvValue,N as normalizeMessageInput,ft as normalizeMimeType,Ue as parseAIAdapterCapabilities,Ke as processDiscriminatedItems,qe as processDiscriminatedItemsSync,H as processQueueMessages,qt as registerAgentBusHandlers,Rr as registerMemoryImportCursorStorage,bt as rejectQueuedHandles,nt as resolveConformanceTestPreset,rt as resolveDisabledNativeTools,ct as resolveRequiredSessionId,Je as resolveTestConfig,M as safeJsonStringify,st as serializeBlockToText,Be as serializeTurnContext,Ir as toImportSegment};
|
|
11
|
+
`)}function ot(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function st(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 ot(e)}}function L(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 ct(e,t,n,r=!1){return L(e,t,`sessionId`,n,r)}function lt(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=ct(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:L(t.agentId,e.agentId,`agentId`,n,i),adapterId:L(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:L(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:L(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const ut={request:ge.request.extend({sessionId:y.string().optional()}),response:ge.response};function dt(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 ft(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function pt(e){let t=ft(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 R(){return{state:`unresolved`}}async function z(e){let t=await(e.prepareAuthRuntime??n)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await ht(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function B(e){let t;try{await e.connector.close()}catch(e){t=e}let n;try{await e.lease?.release()}catch(e){n=e}if(t!==void 0&&n!==void 0)throw AggregateError([t,n],`Connector close and client config lease release both failed.`,{cause:t});if(t!==void 0)throw t;if(n!==void 0)throw n}async function mt(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}try{await B(e.runtime)}catch(e){t.push(e)}throw t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function ht(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var gt=class{runtimes=new Set;async create(e){let t=await z(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=B({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.allSettled([...this.runtimes].map(({close:e})=>e()))).filter(e=>e.status===`rejected`).map(({reason:e})=>e);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function _t(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 vt=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)}},yt=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 V=`Session closed before queued message could be processed`;async function H(e,t){let n=t.getCurrentTurn(),r=t.extractContent??xt;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`}),H(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function bt(e,t=V){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function xt(e){return e.message.message}const St=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Ct(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:St.includes(t),statesToEmit:[...n,t]}}var U=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new A;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.deferredCompletion=new A,this.deferredAcknowledgement=new A,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 wt(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 W=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;_currentTurnNumber=0;_pendingCanonicalTurnNumber;adapterName;systemPrompt;constructor(e){let t=e.cwd??De.tmpdir();if(!se.existsSync(t))throw new le(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??Ee([]),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??Oe.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Ct(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}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new U(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);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){if(!Number.isInteger(e)||e<1)throw RangeError(`setCanonicalTurnNumber: expected positive integer, got ${e}`);if(e<=this._currentTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} ≤ current (${this._currentTurnNumber})`);if(this._pendingCanonicalTurnNumber!==void 0&&e<this._pendingCanonicalTurnNumber)throw RangeError(`setCanonicalTurnNumber: ${e} < pending (${this._pendingCanonicalTurnNumber})`);this._pendingCanonicalTurnNumber=e}consumeTurnNumber(){return this._pendingCanonicalTurnNumber===void 0?(this._currentTurnNumber+=1,this._currentTurnNumber):(this._currentTurnNumber=this._pendingCanonicalTurnNumber,this._pendingCanonicalTurnNumber=void 0,this._currentTurnNumber)}get currentTurnNumber(){return this._currentTurnNumber}get pendingTurnNumber(){return this._pendingCanonicalTurnNumber}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 he||e instanceof me)&&(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){}},Tt=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(V)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Et=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)}},Dt=class extends Et{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}},Ot=class extends W{turnEventsWired=!1;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig();this.on(e.turn_started,(async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}await this.updateProcessingState(`turn_started`)})),this.on(e.step_started,(async()=>{await this.updateProcessingState(`step_started`)})),this.on(e.step_finished,(async()=>{await this.updateProcessingState(`step_finished`);let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)})),this.on(e.turn_finished,(async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{await this.updateProcessingState(`processing_finished`);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 processUserMessages(e){let[t]=e,n=await this.ensureSession(),r=this.getSessionQueue();return r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),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 kt(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 At=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)})}},jt=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 Mt(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=Nt({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 Nt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Pt(e,t){return e?.find(e=>e.definition.id===t)?.auth}function Ft(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function It(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function Lt(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:Ft(e,t.definitionId),adapterProviderAuth:Pt(e,t.definitionId),compatibleProviderAuths:It(e,t.definitionId)}}function Rt(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 zt(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:E.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function Bt(e){if(e instanceof fe||e instanceof ce||e instanceof ue||e instanceof de)return e.code}function Vt(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function Ht(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??R()}function Ut(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function Wt(e){let{config:t,overrides:n}=e,r=Ht(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=Lt(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?.resumeAdapterSessionId??t.resumeAdapterSessionId,reasoningEffort:Ut(n,e.currentReasoningEffort),supportedReasoningLevels:Vt(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 Gt(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}}}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.`}}function Kt(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 K=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;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.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`}deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),n}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?E.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=this.deriveAndSetPendingStartMode(r.sessionContext),a=N(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,turnContext:G(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:Kt(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?E.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=this.deriveAndSetPendingStartMode(o.sessionContext),c=N(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,turnContext:G(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:Kt(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}:Ce({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){Se({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 qt(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(C.tools.updated,e.onMcpToolsChanged),e.globalBus.on(C.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(D.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var Jt=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()}},Yt=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)}this.config.globalBus.requestOptional(j.updateStatus,{agentId:this.config.agentId,status:`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)}))}},Xt=class{config;constructor(e){this.config=e}resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId()??this.config.getLastKnownAdapterSessionId();return e!==void 0&&this.config.setLastKnownAdapterSessionId(e),e}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=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,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},q=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await we(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}}},J=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},Y=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},Zt=class{config;constructor(e){this.config=e}async handle(e){let t=ye.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 q.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=Qt(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof J)throw e;if(e instanceof k)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof Y?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof O?`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 Y(`stale_change`);if(n.getProcessingState()!==`idle`)throw new Y(`turn_active`)}};function Qt(e){return e instanceof Y?Error(`Credential change rejected (${e.reason}).`):e instanceof O||e instanceof k?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var $t=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 en(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&&X(e.endpointOverrides,t.endpointOverrides)&&X(e.auth,t.auth)&&X(e.capabilities,t.capabilities)}function X(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)=>X(e,t[n]));if(!tn(e)||!tn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&X(e[n],t[n]))}function tn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function nn(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 rn=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:an(e)}}let t;try{a&&i!==void 0&&(t=await q.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 k)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:an(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof J?`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(D.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 nn({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:!en(e,t)}};function an(e){return e instanceof O?`model_change_failed: provider_activation_${e.code}`:e instanceof k?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var on=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)}},sn=class{agentId;globalBus;getConnector;runExclusive;swapConnectorUnlocked;emitCwdChanged;mcpServersMutationManager;modelMutationManager;credentialChangeManager;credentialChangeSequencer=new on;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 $t({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new rn({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 Zt({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 J)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(j.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new J}catch(e){throw e instanceof J?e:new J}}},cn=class{connectorWiringCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){for(let e of this.connectorWiringCleanups)try{e()}catch(e){console.warn(`[AIAgent] Connector wiring cleanup failed for agent ${this.config.agentId}:`,e)}this.connectorWiringCleanups=[]}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){let n=this.config.getConnectorRuntime(),r=n.connector;if(r.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${r.getProcessingState()})`);let i=await this.createReplacementRuntime(r,e),a=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let o=await this.initializeReplacement(i,a,t);this.config.setConnectorRuntime(i),o!==void 0&&this.config.setLastKnownAdapterSessionId(o),this.runWiringCleanups(a),await this.closePreviousRuntime(n)}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?.resumeAdapterSessionId!==void 0&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return z({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n){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;try{await B(e)}catch(e){throw AggregateError([n,e],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}throw n}}runWiringCleanups(e){for(let t of e)try{t()}catch(e){console.warn(`[AIAgent] Previous connector cleanup failed during swap for agent ${this.config.agentId}:`,e)}}async closePreviousRuntime(e){try{await B(e)}catch{let e={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(e)}catch{console.warn(`[AIAgent] ${e.code} for agent ${e.agentId}; cleanup diagnostic delivery also failed.`)}}}};function ln(e){return new Xt({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,getEventMetadataDefaults:e.getEventMetadataDefaults})}function un(e){return new Jt({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 dn(e){return new Yt({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 fn(e){return new K(e)}function pn(e){return new sn({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 mn(e){return new cn({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,reportCleanupFailure:t=>e.emitGlobal(x.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}var hn=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})),gn=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})),_n=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=hn(),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`)}}})),vn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=gn();e.default={keyword:`$recursiveRef`,schemaType:`string`,code:e=>(0,t.dynamicRef)(e,e.schema)}})),yn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=hn(),n=gn(),r=_n(),i=vn();e.default=[t.default,n.default,r.default,i.default]})),bn=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)}})),xn=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)}})),Sn=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`)}}})),Cn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=bn(),n=xn(),r=Sn();e.default=[t.default,n.default,r.default]})),wn=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)}}}})),Tn=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())})}}}})),En=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=wn(),n=Tn();e.default=[t.default,n.default]})),Dn=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`}]}}}}})),On=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:`#`}}}}})),kn=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:`#`}}}})),An=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:{}}}}})),jn=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`}}}})),Mn=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}}}})),Nn=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:[]}}}})),Pn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Dn(),n=On(),r=kn(),i=An(),a=jn(),o=Mn(),s=Nn(),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})),Fn=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=yn(),a=Cn(),o=En(),s=ee(),c=Pn(),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}})})),In=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=g(),n=u(),r=te(),i=yn(),a=Cn(),o=En(),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]})),Ln=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}}}})),Rn=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`}}}}})),zn=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`}}}})),Bn=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`}}}})),Vn=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`}}}})),Hn=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`}}}})),Un=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}}}})),Wn=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:[]}}}})),Gn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Ln(),n=Rn(),r=zn(),i=Bn(),a=Vn(),o=Hn(),s=Un(),c=Wn(),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})),Kn=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=In(),i=ee(),a=Gn(),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}})})),qn=e(ae(),1),Jn=e(Fn(),1),Yn=e(Kn(),1);const Xn=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),Zn=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var Qn=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new qn.default({allErrors:!0,strict:!1});draft2019Ajv=new Jn.default({allErrors:!0,strict:!1});draft2020Ajv=new Yn.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&&Zn.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Xn.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}))}},$n=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?.()}}},er=class{globalBus;lifecycleManager;runtimeConfig;barrier=new $n;constructor(e,t,n){this.globalBus=e,this.lifecycleManager=t,this.runtimeConfig=n}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t){await this.runExclusive(async()=>{let n;try{e?.providerContext!==void 0&&(n=await q.prepare(this.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await n?.commit()})}catch(e){if(n!==void 0)try{await n.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){await this.lifecycleManager.swapConnector(e,t),e?.providerContext!==void 0&&(this.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.runtimeConfig.mcpSessionContext=e.mcpSessionContext)}},tr=class{connector;connectorRuntime;confirmedModel;initialModel;lastKnownAdapterSessionId;busHandlerCleanups=[];initialized=!1;runtimeSystemPrompt;lifecycleTracker=new At({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new jt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??b},this.availableModels=e.availableModels;let t=e=>{this.lastKnownAdapterSessionId=e};this.payloadEmitter=ln({globalBus:this.globalBus,getAgentContextBase:()=>({agentId:this.agentId,adapterId:this.adapterId,adapterName:this.adapterName,sessionId:this.sessionId}),lifecycleTracker:this.lifecycleTracker,getConnectorAdapterSessionId:()=>this.connector?.getConfirmedAdapterSessionId(),getLastKnownAdapterSessionId:()=>this.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:t,getEventMetadataDefaults:this.getEventMetadataDefaults.bind(this)});let n=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.eventBridge=un({emitGlobal:n,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(n,t),this.connectorSwapCoordinator=new er(this.globalBus,this.connectorLifecycleManager,this.config),this.turnExecutor=fn({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),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=pn({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:n,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=>Vt(this.availableModels,e)}),this.lifecycleEmitter=dn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:n,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new Qn({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e,t){return mn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:this.createOnMessageSent.bind(this),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:t})}getEventMetadataDefaults(){return{clientId:this.config.clientId,providerConfigId:this.connector?.providerConfigId??(this.config.providerContext?.state===`resolved`?this.config.providerContext.providerConfigId:void 0),occurredAt:Date.now()}}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 z({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.createOnMessageSent(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.busHandlerCleanups.push(...qt({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.busHandlerCleanups;this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring(),this.connectorRuntime=void 0,await mt({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){this.globalBus.requestOptional(j.updateStatus,{agentId:this.agentId,status:`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.busHandlerCleanups.push(e)}async swapConnector(e,t){await this.connectorSwapCoordinator.swapConnector(e,t)}buildConfigInput(e){return Wt({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}createOnMessageSent(){return e=>{this.emitGlobal(S.user_message.sent,{messageId:e.messageId,content:e.message,deliveryMode:e.deliveryMode,turnId:e.turnId})}}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`);for(let e of this.busHandlerCleanups)try{e()}catch(e){console.warn(`[AIAgent] Bus handler cleanup failed:`,e)}this.busHandlerCleanups=[],this.connectorLifecycleManager.clearConnectorWiring();let t=this.connectorRuntime;this.connectorRuntime=void 0,t!==void 0&&await B(t)}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=K.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:Gt({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?Bt(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 complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=kt(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}};function nr(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}=nr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var ir=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 ar(e){return typeof e.tool==`string`?e.tool:void 0}function or(e){return e===ve}const sr={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`},cr=T.shape.sessionId.unwrap(),lr=T.extend({llmCallId:cr});function ur(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function dr(e){let t=lr.parse(e),n={};for(let[e,r]of Object.entries(sr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}var fr=class{entries=new Map;pendingAdapterSessionClaims=new Set;globalBus;adapterName;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(t.adapterSessionId===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(t.adapterSessionId===e)return!0;return!1}set(e,t){t.adapterSessionId!==void 0&&this.pendingAdapterSessionClaims.delete(t.adapterSessionId),this.entries.set(e,t)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear()}async evict(e,t={}){let n=this.entries.get(e);this.entries.delete(e);let r;if(n)try{await n.agent.close({emitSessionClosed:t.emitSessionClosed})}catch(e){r=e}try{await this.globalBus.requestOptional(j.updateStatus,{agentId:e,status:`dead`})}catch(t){if(r===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(r!==void 0)throw r}async evictSilently(e){let t=this.entries.get(e);if(this.entries.delete(e),t)try{await t.agent.close({emitSessionClosed:!1})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,t)}}dispose(e){let t=this.entries.get(e);return t?(t.agent.close().catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during dispose:`,t)}),this.entries.delete(e),this.globalBus.requestOptional(j.updateStatus,{agentId:e,status:`disposed`}).catch(t=>{console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}),!0):!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 pr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(be.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}async function Z(e,t){let n=await we(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function Q(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function $(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=[mr(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(hr(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof k?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([mr(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function mr(e,t){return e instanceof O||e instanceof k?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function hr(e){return e instanceof O||e instanceof k?e:new k}function gr(e){let t=e.nativeLocality;if(typeof t==`object`&&t&&`kind`in t){let e=t.kind;if(e===`native`||e===`degrade`||e===`foreign`)return e}}var _r=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,adapterSessionId:i,resumeAdapterSessionId:a}=e.payload,o=this.inFlight.get(t);if(o){await o,e.setResult({});return}let s=(async()=>{let e=this.registry.get(t);if(e){await this.rehydrateRegisteredAgent(t,e,{adapterSessionId:i,cwd:n,model:r});return}await this.rehydrateFromStorage(t,{adapterSessionId:i,rpcResumeId:a,cwd:n,model:r})})().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,s);try{await s}finally{this.inFlight.delete(t)}e.setResult({})};async rehydrateFromStorage(e,t){let{adapterSessionId:n,rpcResumeId:r,cwd:i,model:a}=t,o=await this.globalBus.requestOptional(j.get,{agentId:e});if(!o.handled||!o.data.agent)throw Error(`Agent ${e} not found in storage`);let s=o.data.agent;if(s.status===`disposed`)throw Error(`Agent ${e} is disposed and cannot be rehydrated`);let c=await this.resolveMcpSessionContext(s.sessionId,s.profileId),l=s.providerConfigId===void 0?void 0:await Te(this.globalBus,{adapterName:s.adapterName,providerConfigId:s.providerConfigId}),u=n??s.adapterSessionId,d=r??void 0,f=gr(s),p=d??(d!==void 0||f===`native`?u:void 0),m={model:a??s.model,cwd:i??s.cwd,allowedDirectories:s.allowedDirectories,adapterSessionId:u,...p!==void 0&&{resumeAdapterSessionId:p},...l!==void 0&&{providerContext:l},...c!==void 0&&{mcpSessionContext:c}},h=await pr(this.globalBus,s.sessionId,e),{agent:g,adapterSessionId:_}=await this.claimAndCreateAgent(e,s,m,p);this.registry.set(e,{agent:g,sessionId:s.sessionId,adapterSessionId:_,usage:h}),(i!==void 0||a!==void 0)&&await this.globalBus.requestOptional(j.updateRuntime,{agentId:e,cwd:i,model:a}),await this.globalBus.requestOptional(j.updateStatus,{agentId:e,status:`idle`})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))throw Error(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i,a;try{i=await Z(this.globalBus,n.providerContext??{state:`unresolved`}),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 Q(i),{agent:a,adapterSessionId:o}}catch(t){try{if(i===void 0)throw t;let n=a;return await $({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>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=n.adapterSessionId??t.adapterSessionId;await t.agent.swapConnector({cwd:n.cwd,model:n.model,adapterSessionId:r,resumeAdapterSessionId:r});let i=await t.agent.getAdapterSessionId();i&&(t.adapterSessionId=i),(n.cwd!==void 0||n.model!==void 0)&&await this.globalBus.requestOptional(j.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model}),await this.globalBus.requestOptional(j.updateStatus,{agentId:e,status:`idle`})}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(D.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(C.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(D.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function vr(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=br(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new Qn({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await yr(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 Sr(xr({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 yr(e,t,n,r){let i=await Z(e.globalBus,n),a;try{return a=await z({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await Q(i),a}catch(t){let n=a;return await $({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>B(n)},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function br(e,t){let n=e===void 0?R():w.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...Lt(t,n)}}async function xr(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=N(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:Cr({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function Sr(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let a;try{await B(t)}catch(e){a=e}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 Cr(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 wr(o.structuredOutputValidation.errors);return o.message??``}function wr(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}async function Tr(e,t,n,r,i){let{adapterId:a,name:o,clientId:s,getPlatformDefaults:c,globalBus:l}=i,u=r.role,d=Date.now(),f=c(),p=r.cwd??f?.cwd,m=r.clientId??s;try{await l.requestOptional(j.set,{agentId:e,agent:{agentId:e,adapterId:a,adapterName:o,sessionId:t,adapterSessionId:n,model:r.model,cwd:p,allowedDirectories:r.allowedDirectories,role:u,status:`idle`,createdAt:d,lastActivityAt:d,...m!==void 0&&{clientId:m},...r.harnessId!==void 0&&{harnessId:r.harnessId},...r.providerContext.state===`resolved`&&{providerConfigId:r.providerContext.providerConfigId}}})}catch(n){console.error(`[AIAdapter:${o}] Optional agent persistence failed:`,{agentId:e,adapterId:a,sessionId:t,error:n})}l.emit(D.agent.added,{sessionId:t,agentId:e,adapterId:a,adapterName:o,adapterSessionId:n,role:u,model:r.model,cwd:p}),l.emit(x.session.created,{adapterId:a,adapterName:o,adapterSessionId:n,sessionId:t,model:r.model??`unknown`})}async function Er(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})}}async function Dr(e,t,n){if(t.initialMessage!==void 0){let r=N(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})}}async function Or(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function kr(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function Ar(e,t,n){let{sessionContext:r,...i}=e;return{...i,providerContext:t,...n===void 0?{}:{sessionContext:n}}}async function jr(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(D.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`)}function Mr(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}async function Nr(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,resumeAdapterSessionId:s,registry:c,globalBus:l}=e,u,d;try{u=await Z(l,i),d=await e.createAgent(t,n,Ar(r,i,a));let o=await Dr(d,r,a);return await Q(u),{agent:d,startResult:o}}catch(e){try{if(u===void 0)throw e;let t=d;return await $({activation:u,primaryError:e,...t!==void 0&&{cleanup:()=>t.close({emitSessionClosed:!r.ephemeral})},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}finally{s!==void 0&&c.releaseAdapterSessionClaim(s)}}}function Pr(e){let{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,registry:a,globalBus:o,createAgent:s}=e;return async function(e){let c=e.payload,l=crypto.randomUUID(),u=c.providerContext===void 0?R():w.parse(c.providerContext);kr(c);let d=await jr(c,o),f=Mr(c);if(f!==void 0&&!a.claimAdapterSession(f)){e.setResult({success:!1,message:`Provider session ${f} is already claimed by another in-flight start`});return}let{agent:p,startResult:m}=await Nr({agentId:l,sessionId:d,payload:c,providerContext:u,sessionContext:c.sessionContext?E.parse(c.sessionContext):void 0,adapterName:n,resumeAdapterSessionId:f,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:h,messageId:g,messageHandle:_}=m;if(a.set(l,{agent:p,sessionId:d,adapterSessionId:h,usage:{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}),!c.ephemeral)try{await Tr(l,d,h,{...c,providerContext:u},{adapterId:t,name:n,clientId:r,getPlatformDefaults:i,globalBus:o})}catch(e){throw await Er(a,l,n,e),e}e.setResult({success:!0,agentId:l,adapterId:t,sessionId:d,adapterSessionId:h,...g!==void 0&&{messageId:g}}),c.ephemeral&&Or(a,l,n,_).catch(e=>{console.warn(`[AIAdapter:${n}] Ephemeral agent cleanup failed:`,e)})}}var Fr=class{adapterId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;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??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 fr({globalBus:this.globalBus,adapterName:this.name}),this.rehydrationManager=new _r({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(x.startAgent,Pr({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(x.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),e.on(x.infer,e=>vr(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(D.closed,this.handleSessionClosedByService),e.on(x.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(e=>({agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))})}),e.on(x.getAgent,e=>{let t=this.registry.get(e.payload.agentId);e.setResult({agent:t?{agentId:t.agent.agentId,sessionId:t.sessionId,adapterSessionId:t.adapterSessionId}:null})}),e.on(x.stopAgent,e=>{e.setResult({success:this.disposeAgent(e.payload.agentId)})}),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})};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(x.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()?`);let{model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,reasoningEffort:c,mcpSessionContext:l,harnessId:u,ephemeral:d}=n,f=n.clientId??this.clientId,p=n.resumeAdapterSessionId??(n.mode===`resume`?n.adapterSessionId:void 0),m=zt(n),h=Rt(this.definitionProviders,r,n.providerContext?.state===`resolved`?n.providerContext.definitionId:void 0),g=l===void 0?void 0:new ir,_={agentId:e,adapterId:this.adapterId,adapterName:this.name,globalBus:this.globalBus,adapterBus:this.adapterBus,capabilities:this.capabilities,nativeTools:this.nativeTools,availableModels:h,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,...this.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:this.prepareAuthRuntime},sessionId:t,...n.providerContext!==void 0&&{providerContext:n.providerContext},...Mt({platformCwd:this.platformDefaults?.cwd,platformEnv:this.platformDefaults?.env,model:r,cwd:i,env:a,allowedTools:o,disallowedTools:s,allowedDirectories:n.allowedDirectories,adapterSessionId:n.adapterSessionId,reasoningEffort:c,adapterConfig:n.adapterConfig,resumeAdapterSessionId:p,harnessId:u,clientId:f,clientProfileName:n.clientProfileName,mcpSessionContext:l,toolLedger:g,ephemeral:d,nativeFork:m})};return this.agentFactory(_)}async closeAsync(){try{let e=await Promise.allSettled([...this.registry.values()].map(e=>e.agent.close()));this.registry.clear(),await this.onClose();let t=e.filter(e=>e.status===`rejected`).map(e=>e.reason instanceof Error?e.reason:Error(String(e.reason)));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);if(t)return Object.assign({},t.agent,{sessionId:t.sessionId,adapterSessionId:t.adapterSessionId})}disposeAgent(e){return this.registry.dispose(e)}getActiveAgents(){return Array.from(this.registry.values()).map(e=>Object.assign({},e.agent,{sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}))}isInitialized(){return this.initialized}};function Ir(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(Ir)),t}var Lr=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 Rr(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 zr=y.object({sessions:y.record(y.string(),y.object({state:y.enum([`idle`,`active`]),currentTurnId:y.string().optional()}))}).default({sessions:{}});var Br=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 Vr=y.object({eventType:y.literal(`agent_started`),model:y.string().optional()}),Hr=y.object({eventType:y.literal(`agent_complete`),message:y.string().optional(),error:y.string().optional()}),Ur=y.object({eventType:y.literal(`error`),message:y.string(),code:y.string().or(y.number()).optional(),type:y.string().optional()}),Wr=y.object({eventType:y.literal(`tool_started`),toolName:y.string(),toolCallId:y.string()}),Gr=y.object({eventType:y.literal(`tool_completed`),toolName:y.string(),toolCallId:y.string(),result:y.string(),success:y.boolean()});export{Fr as AIAdapter,tr as AIAgent,W as AIAgentConnector,Hr as AgentCompleteEventSchema,cn as AgentConnectorLifecycleManager,Jt as AgentEventBridge,Yt as AgentLifecycleEmitter,Xt as AgentPayloadEmitter,sn as AgentRuntimeMutationManager,Vr as AgentStartedEventSchema,K as AgentTurnExecutor,Tt as BaseConnectorSession,Et as BaseConnectorTurn,Lr as BaseLogImporter,gt as ConformanceConnectorRuntimeRegistry,Ur as ErrorEventSchema,sr as FactoryUsageCorrelationHeaders,s as ImportCursorPositionSchema,a as ImportCursorStorageNamespace,o as ImportCursorStorageSubjects,Xe as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,I as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Ye as MAKAIO_CONFORMANCE_PROVIDER_ENV,Ze as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,U as MessageHandle,At as MessageLifecycleTracker,Ot as ProceduralAgentConnector,Dt as ProceduralConnectorTurn,V as SESSION_CLOSED_QUEUE_ERROR,ut as ScopedToolApprovalSchema,vt as SessionLifecycle,ir as SessionToolLedger,jt as ToolCallTracker,Gr as ToolCompletedEventSchema,Wr as ToolStartedEventSchema,Br as TurnTracker,zr as TurnTrackerSerializedStateSchema,yt as UserMessageQueue,ur as bindProviderRequestCorrelation,dr as buildFactoryUsageCorrelationHeaders,r as cleanEnvForAdapter,ke as createAdapterNamespace,_t as createNoAuthTestProviderContext,F as createTestProviderContext,dt as createToolApprovalHandler,We as defineDiscriminatedHandlers,Ge as defineDiscriminatedHandlersSync,ar as extractMcpCallTarget,Me as formatContextBlockAsText,He as formatContextBlocksAsText,at as formatMessageHistoryAsTranscript,or as isMcpCallTool,pt as isTextLikeMimeType,wt as markCompletedWithFinalResult,lt as mergeScopedToolApproval,P as normalizeEnvValue,N as normalizeMessageInput,ft as normalizeMimeType,Ue as parseAIAdapterCapabilities,Ke as processDiscriminatedItems,qe as processDiscriminatedItemsSync,H as processQueueMessages,qt as registerAgentBusHandlers,Rr as registerMemoryImportCursorStorage,bt as rejectQueuedHandles,nt as resolveConformanceTestPreset,rt as resolveDisabledNativeTools,ct as resolveRequiredSessionId,Je as resolveTestConfig,M as safeJsonStringify,st as serializeBlockToText,Be as serializeTurnContext,Ir as toImportSegment};
|