@makaio/framework 1.0.0-dev-1788955549564 → 1.0.0-dev-1788966380232
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/{2020-Bl3Yx3In.mjs → 2020-CpDjcHDh.mjs} +1 -1
- package/dist/{account-identity-B0NsOILM.mjs → account-identity-D00LLclm.mjs} +1 -1
- package/dist/{adapter-DYE_oWjj.mjs → adapter-D92pfm_b.mjs} +1 -1
- package/dist/{adapter-auth-runtime-BnPqQChk.mjs → adapter-auth-runtime-46Y9WKcB.mjs} +1 -1
- package/dist/adapter-subsystem/index.d.mts +1 -1
- package/dist/adapter-subsystem/index.mjs +1 -1
- package/dist/adapters/claude/index.d.mts +2 -2
- package/dist/adapters/claude/testing.mjs +1 -1
- package/dist/adapters/config/index.d.mts +2 -2
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +3 -3
- package/dist/adapters/index.mjs +6 -6
- package/dist/adapters/node.d.mts +1 -1
- package/dist/adapters/node.mjs +2 -2
- package/dist/adapters/stream-session/index.d.mts +1 -1
- package/dist/adapters/stream-session/index.mjs +1 -1
- package/dist/artifact-_pN73_7c.mjs +1 -0
- package/dist/{attempt-record-codec-6jpayBMY.mjs → attempt-record-codec-D2Gb_epJ.mjs} +1 -1
- package/dist/{auth-CeH3w2fi.mjs → auth-CB4an9bh.mjs} +1 -1
- package/dist/authority-state-bootstrap-DgoHPc9J.mjs +1 -0
- package/dist/{automation-trigger-CZfH94Fr.mjs → automation-trigger-xNDX0Am_.mjs} +1 -1
- package/dist/bootstrap-start-client-rW55mDI-.mjs +1 -0
- package/dist/bus/index.mjs +1 -1
- package/dist/{caller-owned-adapter-stub-B-Sq7ZvF.mjs → caller-owned-adapter-stub-oM1G1KvC.mjs} +1 -1
- package/dist/{canonical-model-oFNty7hj.mjs → canonical-model-D7Cg0l2R.mjs} +1 -1
- package/dist/{capabilities-BhJ3wzI8.mjs → capabilities-D2ggcMem.mjs} +1 -1
- package/dist/{capability-service-23Ot2J9A.d.mts → capability-service-Cpkonrc0.d.mts} +1 -1
- package/dist/{client-DJMzCHRm.mjs → client-CpUVfDxa.mjs} +1 -1
- package/dist/clients/index.d.mts +2 -2
- package/dist/clients/index.mjs +1 -1
- package/dist/clients/managed-install.d.mts +1 -1
- package/dist/clients/managed-install.mjs +1 -1
- package/dist/code-execution/worker-entry.d.mts +1 -1
- package/dist/code-execution/worker-entry.mjs +1 -1
- package/dist/{code-execution-B9wr0b972.mjs → code-execution-ByLSAlEg2.mjs} +1 -1
- package/dist/{code-execution-BMmUATcc.mjs → code-execution-CMqsHnGg.mjs} +1 -1
- package/dist/{code-execution-DRCzkGzO.mjs → code-execution-xn9-x3VO.mjs} +1 -1
- package/dist/common-CylczUIW.mjs +1 -0
- package/dist/{compression-nZhMDRTA.mjs → compression-Civ-rf-O.mjs} +1 -1
- package/dist/{config-namespace-MjFuIPyL.mjs → config-namespace-CQnsvr77.mjs} +1 -1
- package/dist/contracts/adapter/index.d.mts +2 -2
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +3 -3
- package/dist/contracts/artifact/index.mjs +1 -1
- package/dist/contracts/auth/index.d.mts +2 -2
- package/dist/contracts/auth/index.mjs +1 -1
- package/dist/contracts/automation-trigger/index.d.mts +3 -3
- package/dist/contracts/automation-trigger/index.mjs +1 -1
- package/dist/contracts/canonical-model/index.d.mts +1 -1
- package/dist/contracts/canonical-model/index.mjs +1 -1
- package/dist/contracts/capabilities/index.d.mts +1 -1
- package/dist/contracts/capabilities/index.mjs +1 -1
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/code-execution/index.d.mts +1 -1
- package/dist/contracts/code-execution/index.mjs +1 -1
- package/dist/contracts/common/index.d.mts +2 -2
- package/dist/contracts/common/index.mjs +1 -1
- package/dist/contracts/config/index.d.mts +1 -1
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +5 -5
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +1 -1
- package/dist/contracts/facet/index.mjs +1 -1
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/harness/index.mjs +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/host/index.mjs +1 -1
- package/dist/contracts/index.d.mts +73 -73
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +2 -2
- package/dist/contracts/materialization/index.mjs +1 -1
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/provider/index.mjs +1 -1
- package/dist/contracts/reaction/index.d.mts +1 -1
- package/dist/contracts/reaction/index.mjs +1 -1
- package/dist/contracts/session/index.d.mts +2 -2
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/shared/index.mjs +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/skill/index.mjs +1 -1
- package/dist/contracts/telemetry/index.d.mts +1 -1
- package/dist/contracts/telemetry/index.mjs +1 -1
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/timeout/index.mjs +1 -1
- package/dist/contracts/toast/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/variant/index.mjs +1 -1
- package/dist/contracts/worker/index.d.mts +2 -2
- package/dist/contracts/worker/index.mjs +1 -1
- package/dist/contracts/workflow/index.d.mts +2 -2
- package/dist/contracts/workflow/index.mjs +1 -1
- package/dist/{contribution-B4t0OXKs.d.mts → contribution-BfEEQ8YZ.d.mts} +2 -2
- package/dist/{definition-Bs5hzhsT.d.mts → definition-6d5JBi55.d.mts} +1 -1
- package/dist/{definition-YGj42UeO.mjs → definition-Dqw0YJdi.mjs} +1 -1
- package/dist/{detached-extension-handle-CgJiXaqv.mjs → detached-extension-handle-BJnk3WEh.mjs} +1 -1
- package/dist/{dist-CfANkKSb.mjs → dist-DeI9zYMP.mjs} +1 -1
- package/dist/evidence/git-file/index.d.mts +54 -0
- package/dist/evidence/git-file/index.mjs +4 -0
- package/dist/{execution-attempt-owner-recovery-CdH04iwP.mjs → execution-attempt-owner-recovery-D4APLAvt.mjs} +1 -1
- package/dist/{execution-attempt-repository-CJVlPFMM.d.mts → execution-attempt-repository--RVils5-.d.mts} +273 -189
- package/dist/execution-attempt-repository-CWbgCTwA.mjs +1 -0
- package/dist/{execution-target-B9jZgDQz.mjs → execution-target-_oVNW6Zm.mjs} +1 -1
- package/dist/{extension-B51JzHJu.mjs → extension-CAi7bbyv.mjs} +1 -1
- package/dist/{extension-C1CwxkCN.mjs → extension-CrghVa93.mjs} +1 -1
- package/dist/{filesystem-service-yB8KhUGz.mjs → filesystem-service-hdz3oYti.mjs} +1 -1
- package/dist/{framework-packages-25GUGzJ-.mjs → framework-packages-BOPhhtK7.mjs} +1 -1
- package/dist/git/index.mjs +1 -1
- package/dist/{globby-z2SR0jRo.mjs → globby-Begk3aIP.mjs} +1 -1
- package/dist/{handlers-CBbFzDHc.mjs → handlers-YPTyZDhF.mjs} +1 -1
- package/dist/{harness-GNtHsoh4.mjs → harness-Ds1I4smU.mjs} +1 -1
- package/dist/{hook-responses-chgDiS8D.d.mts → hook-responses-CpEfxEmG.d.mts} +1 -1
- package/dist/hooks/index.d.mts +1 -1
- package/dist/hooks/index.mjs +1 -1
- package/dist/{index-BtPZcp4M2.d.mts → index-09eal6WI2.d.mts} +11 -11
- package/dist/{index-GNRWZONO.d.mts → index-6kg8YFYt.d.mts} +1 -1
- package/dist/{index-B6aoVzdA.d.mts → index-B3G-Hzwn.d.mts} +1 -1
- package/dist/{index-SDXlgq07.d.mts → index-B7wjmaev.d.mts} +24 -14
- package/dist/{index-DzeUtJtE.d.mts → index-BKwYE1Qk.d.mts} +5 -5
- package/dist/{index-CKjFFP6W2.d.mts → index-BM-FPWjs2.d.mts} +1 -1
- package/dist/{index-Bak5iKWv2.d.mts → index-BT5qcsEf2.d.mts} +24 -15
- package/dist/{index-BjELPYLF2.d.mts → index-BfzuauBt2.d.mts} +1 -1
- package/dist/{index-D2sbGoGS.d.mts → index-Bj2JCo9V.d.mts} +2 -2
- package/dist/{index-OXuby-ee.d.mts → index-BkQlL0Pl.d.mts} +13 -13
- package/dist/{index-CuPq_ap8.d.mts → index-BlHq_Ksb.d.mts} +2 -2
- package/dist/{index-D3RZEEE3.d.mts → index-Bn6sN1op.d.mts} +2 -2
- package/dist/{index-ConotXyG.d.mts → index-Bnm0QvJ4.d.mts} +15 -15
- package/dist/{index-Bxs-oIo4.d.mts → index-BpsurXEW.d.mts} +1 -1
- package/dist/{index-C9J8wBLV.d.mts → index-BqR2xDu6.d.mts} +655 -111
- package/dist/{index-DX_2kGSg.d.mts → index-Bxq_zO2E.d.mts} +4 -4
- package/dist/{index-CcgI6r0K.d.mts → index-C742b1FV.d.mts} +2 -2
- package/dist/{index-B6Kq1BtL.d.mts → index-C8oBOTl_.d.mts} +1 -1
- package/dist/{index-CuLDybz3.d.mts → index-CDhbUjUH.d.mts} +2 -2
- package/dist/{index-CDeN0mdC.d.mts → index-CWeWBh-_.d.mts} +1 -1
- package/dist/{index-SIP-fI28.d.mts → index-D4XNkbM4.d.mts} +1 -1
- package/dist/{index-C6eJrtTA.d.mts → index-D7IZQNhD.d.mts} +2 -2
- package/dist/{index-CU_HMaeC.d.mts → index-DCfYa3cF.d.mts} +39 -1
- package/dist/{index-VbqrC9qf.d.mts → index-DO633_D-.d.mts} +40 -40
- package/dist/{index-CVx7li6B2.d.mts → index-DU9Y9tes2.d.mts} +12 -12
- package/dist/{index-99Gz8ezO.d.mts → index-DY_0TRvM.d.mts} +3 -3
- package/dist/{index-DfJNJYPV.d.mts → index-DzlGAEws.d.mts} +4 -4
- package/dist/{index-DOkenapA.d.mts → index-LjLUr3Dm.d.mts} +10 -10
- package/dist/{index-CwJaE0fT.d.mts → index-MtDz_goH.d.mts} +125 -77
- package/dist/{index-CyB6POkH.d.mts → index-nJvYTAbD.d.mts} +1 -1
- package/dist/{index-BrelUXBT.d.mts → index-ud9i9pue.d.mts} +16 -16
- package/dist/{index-OUtnmQ8t2.d.mts → index-v9TbeVee2.d.mts} +5 -5
- package/dist/kernel/cli/index.d.mts +2 -2
- package/dist/kernel/cli/index.mjs +1 -1
- package/dist/kernel/cli/register.d.mts +1 -1
- package/dist/kernel/cli/register.mjs +1 -1
- package/dist/kernel/cli/schemas.mjs +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/{lib-0MqNtDuH.mjs → lib-BmXBuE-w.mjs} +1 -1
- package/dist/{lib-dlyJT26K.mjs → lib-R-c_q77C.mjs} +1 -1
- package/dist/{load-extensions-DM1PgW4a.d.mts → load-extensions-Bu10B5B1.d.mts} +1 -1
- package/dist/{load-extensions-BHTj3d_P.mjs → load-extensions-s4YmICgn.mjs} +1 -1
- package/dist/{materialization-BQuh_gaE.mjs → materialization-BwC7pVg2.mjs} +1 -1
- package/dist/mcp-http-server/index.d.mts +1 -1
- package/dist/mcp-http-server/index.mjs +1 -1
- package/dist/model-Cn1IFEP8.mjs +1 -0
- package/dist/{namespace-c5XPzbf3.d.mts → namespace-BYsKOw-g.d.mts} +2 -2
- package/dist/{namespace-ZAIFBrIy.mjs → namespace-CnRcpgJ8.mjs} +1 -1
- package/dist/namespace-DFc1nkal.mjs +1 -0
- package/dist/{namespace-Cb0XKb4v.d.mts → namespace-KTRWfIPy.d.mts} +2 -2
- package/dist/{namespace-DiTFR4Zt.d.mts → namespace-wuGMWlyz.d.mts} +2 -2
- package/dist/{native-session-supervisor-BlGzmZrH.mjs → native-session-supervisor-B0rziwHI.mjs} +1 -1
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/{orchestrator-shared-5vhs4wvU.mjs → orchestrator-shared-CmS8iU9_.mjs} +1 -1
- package/dist/{orchestrator-shared-BRNZ6it3.d.mts → orchestrator-shared-Cwc6JKkV.d.mts} +1 -1
- package/dist/{ownership-memory-handler-BCu1EjFO.mjs → ownership-memory-handler-DMirNILL.mjs} +1 -1
- package/dist/package-B-xpYKe8.mjs +7 -0
- package/dist/{package-x2wRhcUt.d.mts → package-Bl0mcGb8.d.mts} +13 -3
- package/dist/{package-BiZ6ehWk.mjs → package-Co36_pRw.mjs} +1 -1
- package/dist/{package-BUSXHPOT.mjs → package-D2zvQO7X.mjs} +1 -1
- package/dist/package.json +1 -1
- package/dist/{packages-Dhgmy_LJ.mjs → packages-COqPg5TI.mjs} +1 -1
- package/dist/{packages-BSVxszLf.d.mts → packages-DTz_1dCa.d.mts} +1 -1
- package/dist/{profile-DBDvy9uc.mjs → profile-C9RV7ao-.mjs} +1 -1
- package/dist/{provider-context-CSb0qX1c.mjs → provider-context-BPITm0cn.mjs} +1 -1
- package/dist/{provider-context-CTOrOW54.mjs → provider-context-CyGvwXPz.mjs} +1 -1
- package/dist/providers/index.d.mts +1 -1
- package/dist/{reaction-6e4v007b.mjs → reaction-aQJGWUWl.mjs} +1 -1
- package/dist/repo-context-Dy6eE9cg.mjs +1 -0
- package/dist/{resolved-ONt3rOMh.mjs → resolved-M6PyrgFr.mjs} +1 -1
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/rules/schemas.d.mts +1 -1
- package/dist/runtime-bun/index.mjs +1 -1
- package/dist/runtime-node/code-execution/index.d.mts +2 -2
- package/dist/runtime-node/code-execution/index.mjs +1 -1
- package/dist/runtime-node/extension-discovery.d.mts +1 -1
- package/dist/runtime-node/extension-validation.d.mts +1 -1
- package/dist/runtime-node/extension-validation.mjs +1 -1
- package/dist/runtime-node/index.d.mts +6 -6
- package/dist/runtime-node/index.mjs +4 -4
- 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-B8jinlbH.mjs → schema-DrHrto2J.mjs} +1 -1
- package/dist/{schemas-BFwNBMIj.d.mts → schemas-BYyT43gX.d.mts} +4 -4
- package/dist/{schemas-BIU9Org_.mjs → schemas-CQKfd2Xd.mjs} +1 -1
- package/dist/{schemas-Di_kpQ0C.d.mts → schemas-CvUe_yff.d.mts} +13 -4
- package/dist/{schemas-BZabEyEV.d.mts → schemas-D2HmGmCt.d.mts} +1 -1
- package/dist/schemas-DRho446W.mjs +1 -0
- package/dist/{schemas-I9dZtAkj.d.mts → schemas-DwqibWUL.d.mts} +2 -2
- package/dist/{schemas-abY5VbS4.mjs → schemas-DyZNwquY.mjs} +1 -1
- package/dist/{selection-7SkHsmWs.mjs → selection-BDs7K53w.mjs} +1 -1
- package/dist/{server-lifecycle-hNz8U-QJ.mjs → server-lifecycle-C5Vl58sN.mjs} +1 -1
- 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/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/automation-trigger/index.d.mts +1 -1
- package/dist/services/automation-trigger/index.mjs +1 -1
- package/dist/services/capability/index.d.mts +2 -2
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/code-execution/index.d.mts +1 -1
- package/dist/services/code-execution/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/namespace.mjs +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +1 -1
- package/dist/services/filesystem/index.mjs +1 -1
- package/dist/services/filesystem/namespace.d.mts +6 -6
- package/dist/services/filesystem/schemas.d.mts +3 -3
- package/dist/services/git/namespace.d.mts +2 -2
- package/dist/services/git/namespace.mjs +1 -1
- package/dist/services/git/schemas.d.mts +1 -1
- package/dist/services/git/schemas.mjs +1 -1
- package/dist/services/harness/index.d.mts +4 -4
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/index.d.mts +49 -49
- 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 +3 -3
- package/dist/services/log-import/index.mjs +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/materialization/index.d.mts +1 -1
- package/dist/services/materialization/index.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +9 -9
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/testing/index.mjs +2 -2
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/turns/namespace.mjs +1 -1
- package/dist/services/session-editor/index.d.mts +1 -1
- package/dist/services/session-editor/index.mjs +1 -1
- package/dist/services/settings/index.d.mts +3 -3
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +4 -4
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +3 -3
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +1 -1
- package/dist/services/subagent/index.mjs +1 -1
- package/dist/services/subagent-template/index.d.mts +2 -2
- package/dist/services/subagent-template/namespace.d.mts +1 -1
- package/dist/services/subagent-template/schemas.d.mts +1 -1
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/workflow-transitions/index.d.mts +1 -1
- package/dist/services/workflow-transitions/index.mjs +1 -1
- package/dist/{session-A-h_Dwcs.mjs → session-9C42TPQq.mjs} +1 -1
- package/dist/{session-BDFNAcuY.mjs → session-Cn8z1hxD.mjs} +6 -6
- package/dist/{session-lineage-BzlpfLgC.d.mts → session-lineage-CEyJWg_J.d.mts} +1 -1
- package/dist/{shared-BZf2zoxL.mjs → shared-DqvfJVYk.mjs} +1 -1
- package/dist/{skill-1gU2q1KT.mjs → skill-BmRp8GhW.mjs} +1 -1
- package/dist/{src-Dlpw-Gh5.mjs → src-CmLn6zYj.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +1 -1
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +2 -2
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +1 -1
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/testing/index.d.mts +1 -1
- package/dist/{tool-approval-service-rpV94znP.mjs → tool-approval-service-DchkAdAr.mjs} +1 -1
- package/dist/tools/index.d.mts +1 -1
- package/dist/{tools-oQPsY7v2.mjs → tools-r50UBPJ9.mjs} +1 -1
- package/dist/{transition-BeWq5nKg.d.mts → transition-CgsrmsfE.d.mts} +2 -2
- package/dist/{types-FNVbwd7z2.d.mts → types-Bnc-pdB12.d.mts} +1 -1
- package/dist/{types-D4N56a4O.d.mts → types-Dswhi1L9.d.mts} +1 -1
- package/dist/{types-CIEJ91wm.d.mts → types-ZvPhKp3j.d.mts} +8 -8
- package/dist/ui-kernel/index.d.mts +2 -2
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/{version-3xWJDCeF.mjs → version-sDSWOMn_.mjs} +1 -1
- package/dist/{view-builder-BwGugMWz.d.mts → view-builder-D54kvyf7.d.mts} +10 -10
- package/dist/{visibility-C5sLzqyS.mjs → visibility-syKffo3e.mjs} +1 -1
- package/dist/{worker-qgJToDTN.mjs → worker-DRQGyWAS.mjs} +1 -1
- package/dist/{worker-Csadr_du.mjs → worker-DzbPk2YI.mjs} +1 -1
- package/dist/{workflow-Cb2Pj1h3.mjs → workflow-D-yrAZW8.mjs} +1 -1
- package/dist/workflow-engine/execution-attempt-repository.d.mts +2 -2
- package/dist/workflow-engine/execution-attempt-repository.mjs +1 -1
- package/dist/workflow-engine/index.d.mts +62 -62
- package/dist/workflow-engine/index.mjs +1 -1
- package/dist/workflow-engine/package.d.mts +1 -1
- package/dist/workflow-engine/package.mjs +1 -1
- package/dist/workflow-engine/provider-operation.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.d.mts +1 -1
- package/dist/workflow-engine/testing/conformance.mjs +2 -2
- package/dist/workflow-engine/testing/index.d.mts +3 -1
- package/dist/workflow-engine/testing/index.mjs +1 -1
- package/dist/workflow-engine/testing/sqlite.d.mts +1 -1
- package/dist/workflow-engine/testing/sqlite.mjs +66 -61
- package/dist/workflow-engine/workflow-orchestrator.d.mts +1 -1
- package/dist/workflow-engine/workflow-orchestrator.mjs +1 -1
- package/dist/{workflow-transitions-BI7PbrXv.mjs → workflow-transitions-D5RvMSnf.mjs} +1 -1
- package/dist/workflow-worker-CrnDwpkP.mjs +2 -0
- package/package.json +5 -1
- package/dist/artifact-nArLAotB.mjs +0 -1
- package/dist/authority-state-bootstrap-DnwkMieA.mjs +0 -1
- package/dist/bootstrap-start-client-Bdv-_2Q9.mjs +0 -1
- package/dist/execution-attempt-repository-DXyh1hgz.mjs +0 -1
- package/dist/model-B6t_-_sp.mjs +0 -1
- package/dist/namespace-D4zmxaC4.mjs +0 -1
- package/dist/package-DKfzsJVl.mjs +0 -7
- package/dist/schemas-FiFC_DI6.mjs +0 -1
- package/dist/workflow-worker-Db7EBUgh.mjs +0 -2
- /package/dist/{adapter-binding-BU7STlfd.d.mts → adapter-binding-DhANVB-O.d.mts} +0 -0
- /package/dist/{ajv-Dtk5hCZS.mjs → ajv-IlnfOGAj.mjs} +0 -0
- /package/dist/{attach-error-B-vXQFLQ.mjs → attach-error-DOlUtquX.mjs} +0 -0
- /package/dist/{attempt-fixtures-C-jQE_7B.mjs → attempt-fixtures-CMx-2OlG.mjs} +0 -0
- /package/dist/{base-orchestrator-DXiejwQ3.d.mts → base-orchestrator-tAgnJAKu.d.mts} +0 -0
- /package/dist/{capability-Bw4tsDQu.mjs → capability-BQHyskJB.mjs} +0 -0
- /package/dist/{client-BwFqO0cG.d.mts → client-At2zn3yg.d.mts} +0 -0
- /package/dist/{client-binary-version-verifier-DHBAzg3-.mjs → client-binary-version-verifier-DLziUQhw.mjs} +0 -0
- /package/dist/{client-binary-version-verifier-DySlUy9m.d.mts → client-binary-version-verifier-EOj8xXqm.d.mts} +0 -0
- /package/dist/{clients-namespace-Dh0SNZcQ.d.mts → clients-namespace-CVRwXq8f.d.mts} +0 -0
- /package/dist/{config-namespace-CZqPIAWt.d.mts → config-namespace-D7GbrasR.d.mts} +0 -0
- /package/dist/{create-static-mount-GSdckRQx.mjs → create-static-mount-BIH26VH8.mjs} +0 -0
- /package/dist/{cross-spawn-Bx_VEdpd.mjs → cross-spawn-Bi05YtQQ.mjs} +0 -0
- /package/dist/{cursor-storage-Co4itf44.mjs → cursor-storage-88xtgVAd.mjs} +0 -0
- /package/dist/{definition-D3HjoK-4.d.mts → definition-VK1rERAp.d.mts} +0 -0
- /package/dist/{definitions-CYZTuMdL.mjs → definitions-2T95Q-y6.mjs} +0 -0
- /package/dist/{descriptor-to-package-CZLujoiv.mjs → descriptor-to-package-GVZk9ZGT.mjs} +0 -0
- /package/dist/{drizzle-me-95ICP.mjs → drizzle-BrlzkYoe.mjs} +0 -0
- /package/dist/{esm-DILYVXmW.mjs → esm-B3t30-13.mjs} +0 -0
- /package/dist/{event-DmQPb5MB.mjs → event-DFI0F1Ws.mjs} +0 -0
- /package/dist/{extension-context-Cx8CetW3.d.mts → extension-context-Cpf_n5FH.d.mts} +0 -0
- /package/dist/{extension-discovery-CZkaPQBo.d.mts → extension-discovery-B0ZL076T.d.mts} +0 -0
- /package/dist/{extension-namespace-twXNwE4R.mjs → extension-namespace-CWfV3IiR.mjs} +0 -0
- /package/dist/{extension-package-provenance-BzvG6rDO.mjs → extension-package-provenance-Dr7JXjLS.mjs} +0 -0
- /package/dist/{facet-Cly0VpTI.mjs → facet-6tnSbjXc.mjs} +0 -0
- /package/dist/{filesystem-service-UYYyRL2y.d.mts → filesystem-service-BWoNtujU.d.mts} +0 -0
- /package/dist/{handler-BYQPNm8O.mjs → handler-CFT7_osu.mjs} +0 -0
- /package/dist/{host-CiHn8Yog.mjs → host-D7v3YlDG.mjs} +0 -0
- /package/dist/{identity-BULrIHmo.mjs → identity-CxMRRAXx.mjs} +0 -0
- /package/dist/{index-B5kqAW7h.d.mts → index-8a41yDOl.d.mts} +0 -0
- /package/dist/{index-Dmwnhnio2.d.mts → index-BBkJsViX2.d.mts} +0 -0
- /package/dist/{index-DNp9DP6W.d.mts → index-BL1F1xYB.d.mts} +0 -0
- /package/dist/{index-BCKhrNLC.d.mts → index-BTHdi23O.d.mts} +0 -0
- /package/dist/{index-BU8uFswE.d.mts → index-BcPO9w0j.d.mts} +0 -0
- /package/dist/{index-DcG3r0VL.d.mts → index-Bk0Xjk-B.d.mts} +0 -0
- /package/dist/{index-DGlSbpgS2.d.mts → index-Bn1JTbn_2.d.mts} +0 -0
- /package/dist/{index-CYUhTE552.d.mts → index-C75h1xHF2.d.mts} +0 -0
- /package/dist/{index-DB4Xggtt.d.mts → index-CDA33y5A.d.mts} +0 -0
- /package/dist/{index-B9-1l1oh.d.mts → index-CSJOBx3H.d.mts} +0 -0
- /package/dist/{index-BAL1FiaJ.d.mts → index-CVh7ZP2I.d.mts} +0 -0
- /package/dist/{index-6wmqw_ng.d.mts → index-Ccaqmi0J.d.mts} +0 -0
- /package/dist/{index-zvoiT54b.d.mts → index-CjazerMN.d.mts} +0 -0
- /package/dist/{index-C_R6ifn9.d.mts → index-DXSVC0bM.d.mts} +0 -0
- /package/dist/{index-D3_QOfke.d.mts → index-Du-eXjEN.d.mts} +0 -0
- /package/dist/{index-DbYjMWlj.d.mts → index-DwKPj8jD.d.mts} +0 -0
- /package/dist/{index-LsZNB_gb.d.mts → index-DwY1Mt9a.d.mts} +0 -0
- /package/dist/{index-C-6g2xzN.d.mts → index-DzHc6hsJ.d.mts} +0 -0
- /package/dist/{index-DQbcfjIb2.d.mts → index-krTCFThl2.d.mts} +0 -0
- /package/dist/{json-value-DyMQrwGz.d.mts → json-value-BKUDMT7k.d.mts} +0 -0
- /package/dist/{jsonl-transport-Dfv3RLzi.mjs → jsonl-transport-3yp3clGp.mjs} +0 -0
- /package/dist/{lib-BdfAJKDj.mjs → lib-DF6sgNx_.mjs} +0 -0
- /package/dist/{model-registry-B7ThN_s3.mjs → model-registry-BTjKBCCw.mjs} +0 -0
- /package/dist/{model-registry-DlUErRRt.mjs → model-registry-CAqJYbXg.mjs} +0 -0
- /package/dist/{modes-CyG4sgs_.mjs → modes-Bo9Vv5c9.mjs} +0 -0
- /package/dist/{namespace-ChjzkJIl.mjs → namespace-0TfAY2J7.mjs} +0 -0
- /package/dist/{namespace-JqvomFSV.d.mts → namespace-B1sjokHd.d.mts} +0 -0
- /package/dist/{namespace-De25c2ds.d.mts → namespace-B3MnuAqp.d.mts} +0 -0
- /package/dist/{namespace-BFlSY040.mjs → namespace-BCSJz417.mjs} +0 -0
- /package/dist/{namespace-DAbT1F_n.d.mts → namespace-BHb_9sh4.d.mts} +0 -0
- /package/dist/{namespace-BQ7eiQwr.d.mts → namespace-BNNFD-ul.d.mts} +0 -0
- /package/dist/{namespace-69c5HXtL.d.mts → namespace-BgaVgd00.d.mts} +0 -0
- /package/dist/{namespace-CBf5xG_A.d.mts → namespace-BiEV44Mk.d.mts} +0 -0
- /package/dist/{namespace-B8kUQpwo.mjs → namespace-CDoyzyV4.mjs} +0 -0
- /package/dist/{namespace-B7fMkHmy.d.mts → namespace-CjmNxtr1.d.mts} +0 -0
- /package/dist/{namespace-BoOLmi67.d.mts → namespace-Cy62a3YP.d.mts} +0 -0
- /package/dist/{namespace-CIF_1OWi.d.mts → namespace-Czr38fiF.d.mts} +0 -0
- /package/dist/{namespace-C9d0aoYT.mjs → namespace-DORNUF0_.mjs} +0 -0
- /package/dist/{namespace-QXCaZK3I.mjs → namespace-DX3QsYpv.mjs} +0 -0
- /package/dist/{namespace-ZN49zpqw.mjs → namespace-Dyxpur8_.mjs} +0 -0
- /package/dist/{namespace-CUXZS_Ia.d.mts → namespace-btfJrUf6.d.mts} +0 -0
- /package/dist/{namespace-DAW4OY3-.d.mts → namespace-fEBskugJ.d.mts} +0 -0
- /package/dist/{out-Cn6vBxlH.mjs → out-og8659Ny.mjs} +0 -0
- /package/dist/{ownership-recovery-guard-Ce9-C5Sa.mjs → ownership-recovery-guard-CYA5CsiO.mjs} +0 -0
- /package/dist/{package-D4eLGGv4.mjs → package-BecmlOXC.mjs} +0 -0
- /package/dist/{platform-C-fDsuEl.mjs → platform-BdLHWgVc.mjs} +0 -0
- /package/dist/{providers-DVlsnJaY.mjs → providers-DGTA-lki.mjs} +0 -0
- /package/dist/{providers-namespace-DcPil5uz.d.mts → providers-namespace-Bming6U8.d.mts} +0 -0
- /package/dist/{quick-lru-CVryNCTx.mjs → quick-lru-bVGGo5bq.mjs} +0 -0
- /package/dist/{registry-Q9gCZtxz.mjs → registry-Cu3eD3UY.mjs} +0 -0
- /package/dist/{runtime-inputs-CMjGjK7W.d.mts → runtime-inputs-DeOea-ab.d.mts} +0 -0
- /package/dist/{schema-DIgKUfuF.d.mts → schema-DFCBjTB7.d.mts} +0 -0
- /package/dist/{schema-introspection-CSnLZJpC.mjs → schema-introspection-BsWP1vGC.mjs} +0 -0
- /package/dist/{schema-DIHGEQx3.mjs → schema-mXXJcaQT.mjs} +0 -0
- /package/dist/{schemas-BKnJj2i-.mjs → schemas-7fHmNUQc.mjs} +0 -0
- /package/dist/{schemas-BFgsIiSb.mjs → schemas-BE-gfjGI.mjs} +0 -0
- /package/dist/{schemas-CM3Ejp-n.d.mts → schemas-BLy33xay.d.mts} +0 -0
- /package/dist/{schemas-Ge_bamoP.d.mts → schemas-BkCqhK3X.d.mts} +0 -0
- /package/dist/{schemas-NwKrrrPF.d.mts → schemas-Cz7H2f7S.d.mts} +0 -0
- /package/dist/{schemas-DYeS-mtz.d.mts → schemas-DGKWi7mk.d.mts} +0 -0
- /package/dist/{schemas-Vv0GtBaZ.d.mts → schemas-DTBWnWjN.d.mts} +0 -0
- /package/dist/{schemas-COnD70WD.d.mts → schemas-DYIVJDlx.d.mts} +0 -0
- /package/dist/{schemas-qbaSxHDL.d.mts → schemas-DqWwz4eR.d.mts} +0 -0
- /package/dist/{schemas-DTyZjKQf2.d.mts → schemas-GyKYcV-Z2.d.mts} +0 -0
- /package/dist/{schemas-CnFVygzI.mjs → schemas-HffXbw8C.mjs} +0 -0
- /package/dist/{schemas-CbhvgFQs.mjs → schemas-MIYusvwn.mjs} +0 -0
- /package/dist/{schemas-BapfTRqp.mjs → schemas-NYUz8K9Q.mjs} +0 -0
- /package/dist/{semver-D_D2mA48.mjs → semver-_h8-BJ8k.mjs} +0 -0
- /package/dist/{server-lifecycle-BPAN-b0i.d.mts → server-lifecycle-_m_x1_TC.d.mts} +0 -0
- /package/dist/{shared-schemas-kUho6Kmw.mjs → shared-schemas-CaL1iEk6.mjs} +0 -0
- /package/dist/{src-Du_285FN.mjs → src-DdaPoQOD.mjs} +0 -0
- /package/dist/{storage-namespace-Dtz2G1if.mjs → storage-namespace-DBuKMBth.mjs} +0 -0
- /package/dist/{storage-namespace-definition-BJCbqVWz.mjs → storage-namespace-definition-4UYuij1r.mjs} +0 -0
- /package/dist/{storage-namespace-definition-D6soSjKE.d.mts → storage-namespace-definition-CsaZPU3n.d.mts} +0 -0
- /package/dist/{storage-namespace-C9oFExfb.d.mts → storage-namespace-zRXWqAfO.d.mts} +0 -0
- /package/dist/{supports-color-BNmyqLq0.mjs → supports-color-DG_rcVqJ.mjs} +0 -0
- /package/dist/{telemetry-CUkZrhW6.mjs → telemetry-BLYrkonr.mjs} +0 -0
- /package/dist/{timeout-DeBYTGBR.mjs → timeout-d0dzIY3V.mjs} +0 -0
- /package/dist/{tray-menu-service-TWrmvXSo.mjs → tray-menu-service-BGwXKJYr.mjs} +0 -0
- /package/dist/{types-D9GJ7FyQ.mjs → types-Bh2fQoxM.mjs} +0 -0
- /package/dist/{types-BOsf2SVm.d.mts → types-CccTiXH2.d.mts} +0 -0
- /package/dist/{types-DZvkUmHS.d.mts → types-DXGVwrQn.d.mts} +0 -0
- /package/dist/{types-BZnJ_4e2.d.mts → types-DjxvRcX6.d.mts} +0 -0
- /package/dist/{types-CWgYlxjU.d.mts → types-nor1SQLZ.d.mts} +0 -0
- /package/dist/{ui-config-9hlZAJOS.mjs → ui-config-CsH94fwa.mjs} +0 -0
- /package/dist/{variant-73kFgYBK.mjs → variant-BZ9UcJBi.mjs} +0 -0
- /package/dist/{window-registry-Bvjvpwhn.d.mts → window-registry-DQ7udUzI.d.mts} +0 -0
- /package/dist/{window-registry-CzAwaPKL.mjs → window-registry-DQkv5wM9.mjs} +0 -0
- /package/dist/{zod-json-schema-B1mZz7S4.mjs → zod-json-schema-DGWHUOK0.mjs} +0 -0
package/dist/adapters/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{d as n,h as r,m as i,n as a,p as o,r as s,t as c,v as l}from"../ajv-
|
|
2
|
-
`):void 0}function
|
|
1
|
+
import{o as e,t}from"../chunk-DTipWd-i.mjs";import{d as n,h as r,m as i,n as a,p as o,r as s,t as c,v as l}from"../ajv-IlnfOGAj.mjs";import{i as u,n as d,r as f,t as p}from"../2020-CpDjcHDh.mjs";import{n as m,u as h}from"../adapter-auth-runtime-46Y9WKcB.mjs";import{i as ee,n as g,r as _,t as v}from"../cursor-storage-88xtgVAd.mjs";import{z as y}from"zod";import*as te from"node:fs";import{DeferredPromise as b,resolveTimeouts as ne}from"@makaio/framework/utils";import{AuthenticationError as re,DirectoryNotFoundError as ie,ModelUnavailableError as ae,QuotaExceededError as oe,RateLimitError as se,createBusNamespace as ce}from"@makaio/framework/core";import{AdapterSubjects as x,AgentSubjects as S,AgentToolApproveSchema as le,HarnessSubjects as ue,MCP_CALL_TOOL_NAME as de,McpSubjects as C,ProviderContextSchema as w,RequestCorrelationContextSchema as fe,ResolvedProviderContextSchema as pe,SessionContextSchema as T,SessionSubjects as E,aggregateTeardownEvidence as me,aggregateTeardownResults as he}from"@makaio/framework/contracts";import{MakaioBus as D,NoHandlerError as ge,RequestError as _e}from"@makaio/framework/bus";import{TurnStorageSubjects as ve}from"@makaio/framework/services/turn";import{AuthCredentialRefSchema as ye}from"@makaio/framework/contracts/auth";import{runPostUserMessageHooks as be,runPreUserMessageHooks as xe}from"@makaio/framework/hooks";import{ProviderContextActivationError as O,ProviderContextActivationRollbackError as k,prepareProviderContextActivation as Se,resolveRuntimeProviderContext as Ce}from"@makaio/framework/services/provider-context";import we from"node:os";import{AgentStorageSubjects as A,reserveStartFor as Te}from"@makaio/framework/services/session";import*as Ee from"node:process";function De(e,t,n){let r=ce(e,t,n),i=D.registerNamespace(r);return Object.assign(i,{definition:r})}function Oe(e){let t=[];try{return JSON.stringify(e,function(e,n){if(typeof n==`bigint`)return n.toString();if(typeof n==`object`&&n){for(;t.length>0&&t[t.length-1]!==this;)t.pop();if(t.includes(n))return`[Circular]`;t.push(n)}return n},2)??`[Non-serializable value]`}catch{try{return String(e)}catch{return`[Non-serializable value]`}}}async function ke(e,t,n){let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});try{return await Promise.race([e,i])}finally{r!==void 0&&clearTimeout(r)}}function j(e,t){for(let n of e)try{n()}catch(e){console.warn(`[AIAgent] ${t} cleanup failed:`,e)}}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
|
+
`):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
|
|
|
5
|
-
`):void 0}function
|
|
5
|
+
`):void 0}function Le(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.priority==`number`&&typeof t.renderedContent==`string`}function Re(e){if(!Array.isArray(e))return;let t=e.filter(Le).map(e=>`## ${e.name}\n${e.renderedContent}`);return t.length>0?t.join(`
|
|
6
6
|
|
|
7
|
-
`):void 0}const
|
|
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:Oe(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:Oe(n)})}function He(e){return e.length===0?``:e.map(e=>Me(e.tag,e.content)).join(`
|
|
8
8
|
|
|
9
|
-
`)}function
|
|
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 M(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 N(e){return e?.trim()||void 0}function Je(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,ye.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 Ye(e,t,n,r=[]){let i=e?.providerContext===void 0?Je(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 Xe=`MAKAIO_CONFORMANCE_PROVIDER`,Ze=`MAKAIO_CONFORMANCE_PRIMARY_MODEL`,Qe=`MAKAIO_CONFORMANCE_SECONDARY_MODEL`,P=`MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS`;function $e(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 et(e){let t=N(e);if(!t)return[];let n;try{n=JSON.parse(t)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${P} must contain valid JSON: ${t}`,{cause:e})}if(!Array.isArray(n))throw Error(`${P} must be a JSON array`);for(let[e,t]of n.entries())if(!t||typeof t!=`object`||typeof t.id!=`string`)throw Error(`${P}[${e}] must be a provider object with an id`);return n}function tt(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 $e(a)}function nt(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 rt(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=et(t(P)),o=tt(e.adapterName,e.providerIds,e.providerDefinitions??[],a),s=N(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=nt(e.adapterName,l,`primary`,N(t(r))??l.primaryTestModel??l.fastModel??l.defaultModel,r),d=nt(e.adapterName,l,`secondary`,N(t(i))??l.secondaryTestModel??l.defaultModel,i);return{provider:l,providers:o,providerContext:Je(l),primaryModel:{definitionId:l.id,modelName:u,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0},secondaryModel:{definitionId:l.id,modelName:d,...e.reasoningEffort?{reasoningEffort:e.reasoningEffort}:void 0}}}function it(e){let{adapterName:t,providers:n,adapterProviders:r}=e;return n.map(e=>{let n=r.find(t=>t.definitionId===e.id);if(!n){let n=r.map(e=>e.definitionId).join(`, `);throw Error(`[${t}] Conformance provider '${e.id}' is not declared by the adapter. Declared providers: ${n||`none`}.`)}return{definition:e,...n.protocol!==void 0&&{protocol:n.protocol},...n.auth!==void 0&&{auth:n.auth}}})}async function at(e,t,n,r){let i=n===void 0?await e.requestOptional(ue.getDefault,{adapterName:t,clientId:r}):await e.requestOptional(ue.get,{id:n});return i.handled?i.data.nativeTools.disabled:[]}function ot(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 st(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(ot).join(`
|
|
10
10
|
`)}`}).join(`
|
|
11
|
-
`)}function lt(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function ut(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 lt(e)}}function P(e,t,n,r,i){let a=e??(i?t:void 0);if(!a)throw Error(`[${r}] toGlobalToolApproval: ${n} must come from tool approval context`+(i?` or trusted payload`:``));return a}function dt(e,t,n,r=!1){return P(e,t,`sessionId`,n,r)}function ft(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=dt(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:P(t.agentId,e.agentId,`agentId`,n,i),adapterId:P(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:P(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:P(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const pt={request:de.request.extend({sessionId:y.string().optional()}),response:de.response};function mt(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 ht(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function gt(e){let t=ht(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 F(){return{state:`unresolved`}}function I(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function L(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...ve(e),...t!==void 0&&{closeError:t}}}async function R(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const z=2e3,B=1e4;async function V(e,t=z){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function _t(e){return await V(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${z}ms.`}}function vt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function H(e){return e instanceof Error?e.message:String(e)}function yt(e,t){return`${e} failed (${H(t)})`}async function bt(e,t){try{await t();return}catch(t){return yt(e,t)}}function xt(e,t){if(t.length!==0)return I(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function St(e,t,n){return{evidence:_e([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function U(e){let t=await(e.prepareAuthRuntime??m)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await wt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function W(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?I(`Connector close failed: ${H(t.failed)}`,t.failed):I(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:I(`Client config lease release failed: ${H(n)}`,n)}async function Ct(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await W(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function wt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Tt=class{runtimes=new Set;async create(e){let t=await U(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=W({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Et(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 Dt=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)}},Ot=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 G=`Session closed before queued message could be processed`;async function kt(e,t){let n=t.getCurrentTurn(),r=t.extractContent??jt;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`}),kt(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function At(e,t=G){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function jt(e){return e.message.message}const Mt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Nt(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:Mt.includes(t),statesToEmit:[...n,t]}}var Pt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new b;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new b,this.deferredAcknowledgement=new b,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ft(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 It=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Lt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new ee;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new It;adapterName;systemPrompt;constructor(e){let t=e.cwd??Te.tmpdir();if(!te.existsSync(t))throw new ie(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??ne([]),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=h(e?.env??De.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Nt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Pt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof ue||e instanceof le)&&(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){}},Rt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await V(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation),e.exited?.then(()=>this.unproven.delete(e.generation),()=>void 0)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:St(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},zt=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(G)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Bt=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)}},Vt=class extends Bt{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}},Ht=class extends Lt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(G)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw At(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Ut(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 Wt=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)})}},Gt=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 Kt(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=qt({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 qt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Jt(e,t){return e?.find(e=>e.definition.id===t)?.auth}function Yt(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function Xt(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function Zt(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:Yt(e,t.definitionId),adapterProviderAuth:Jt(e,t.definitionId),compatibleProviderAuths:Xt(e,t.definitionId)}}function Qt(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 $t(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:T.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function en(e){if(e instanceof se||e instanceof re||e instanceof ae||e instanceof oe)return e.code}function tn(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function nn(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??F()}function rn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function an(e){let{config:t,overrides:n}=e,r=nn(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=Zt(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:rn(n,e.currentReasoningEffort),supportedReasoningLevels:tn(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 on(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const sn=[`idle`,`active`];function cn(e,t,n){e.requestOptional(k.updateStatus,{agentId:t,status:n,expectedStatus:[...sn]}).catch(()=>void 0)}function ln(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function un(e,t,n){try{return await e.emit(C.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function dn(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var fn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;callerSettlementPending=!1;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&(this.callerSettlementPending=!0),e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.callerSettlementPending||this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.callerSettlementPending=!1,e!==void 0&&(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0)}async announce(e){let t=await un(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,machineId:this.host.machineId,ownerInstanceId:this.host.ownerInstanceId,sessionId:this.host.sessionId}}};function pn(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 mn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:dn(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?T.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=j(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:ln(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:pn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?T.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=j(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:ln(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:pn(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}:Se({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){xe({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 hn(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(me.tools.updated,e.onMcpToolsChanged),e.globalBus.on(me.tools.enabled,e.onMcpToolsChanged)];return e.sessionId!==void 0&&n.push(e.globalBus.on(E.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var gn=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()}},_n=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)}cn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},vn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},yn=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await Ce(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},K=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},q=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},bn=class{config;constructor(e){this.config=e}async handle(e){let t=ge.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 yn.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=xn(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof K)throw e;if(e instanceof O)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof q?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof D?`credential_activation_failed:${e.code}`:`credential_swap_failed`}}hasProviderMismatch(e){let t=this.config.getProviderContext();return t?.state===`resolved`&&t.providerConfigId!==e}assertGuard(e,t,n){if(!this.config.sequencer.isLatest(e,t))throw new q(`stale_change`);if(n.getProcessingState()!==`idle`)throw new q(`turn_active`)}};function xn(e){return e instanceof q?Error(`Credential change rejected (${e.reason}).`):e instanceof D||e instanceof O?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var Sn=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 Cn(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&J(e.endpointOverrides,t.endpointOverrides)&&J(e.auth,t.auth)&&J(e.capabilities,t.capabilities)}function J(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(!wn(e)||!wn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&J(e[n],t[n]))}function wn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Tn(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 En=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:Dn(e)}}let t;try{a&&i!==void 0&&(t=await yn.prepare(this.config.globalBus,i)),await this.config.swapConnectorUnlocked({model:r,reasoningEffort:this.resolveReasoningEffort(e.reasoningEffort,e.previousReasoningEffort,this.config.resolveSupportedReasoningLevels(r)),...i&&{providerContext:i}},async()=>t?.commit())}catch(e){if(t!==void 0)try{await t.rollbackPending()}catch(e){let t=Error(`Model/provider connector replacement failed.`);throw AggregateError([t,e],`Model/provider replacement and account activation rollback both failed.`,{cause:t})}if(e instanceof O)throw AggregateError([Error(`Model/provider account activation commit failed.`),e],`Model/provider account activation commit and rollback both failed.`);return{success:!1,reason:Dn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof K?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(E.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await Tn({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:!Cn(e,t)}};function Dn(e){return e instanceof D?`model_change_failed: provider_activation_${e.code}`:e instanceof O?`model_change_failed: provider_activation_rollback_failed`:`model_change_failed: connector_replacement_failed`}var 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)}},kn=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 Sn({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new En({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 bn({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof K)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(k.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new K}catch(e){throw e instanceof K?e:new K}}},An=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){A(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){A(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){A(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return U({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await W(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){A(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await W(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},jn=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?.()}}},Mn=class{config;barrier=new jn;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await yn.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await W(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function Nn(e){return new vn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Pn(e){return new gn({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 Fn(e){return new _n({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 In(e){return new mn(e)}function Ln(e){return new kn({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 Rn(e){return new An({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(C.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(S.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function zn(e){return new Mn(e)}var Bn=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`}]}}}}})),Vn=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:`#`}}}}})),Hn=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:`#`}}}})),Un=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:{}}}}})),Wn=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`}}}})),Gn=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}}}})),Kn=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:[]}}}})),qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Bn(),n=Vn(),r=Hn(),i=Un(),a=Wn(),o=Gn(),s=Kn(),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})),Jn=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 c=n(),p=s(),m=u(),h=f(),ee=d(),g=a(),_=qn(),v=`https://json-schema.org/draft/2019-09/schema`;var y=class extends c.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(m.default),p.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(h.default),this.addVocabulary(ee.default),this.opts.discriminator&&this.addKeyword(g.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(_.default.call(this,e),this.refs[`http://json-schema.org/schema`]=v)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(v)?v:void 0)}};e.Ajv2019=y,t.exports=e=y,t.exports.Ajv2019=y,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=y;var te=r();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return te.KeywordCxt}});var b=l();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return b._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return b.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return b.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return b.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return b.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return b.CodeGen}});var ne=i();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return ne.default}});var re=o();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return re.default}})})),Yn=e(c(),1),Xn=e(Jn(),1),Zn=e(p(),1);const Qn=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),$n=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var er=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new Yn.default({allErrors:!0,strict:!1});draft2019Ajv=new Xn.default({allErrors:!0,strict:!1});draft2020Ajv=new Zn.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&&$n.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Qn.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}))}},tr=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:L([...this.unreported,e])}};function nr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return Nn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:dn(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function rr(e){return t=>{e(C.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var ir=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Wt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Gt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new tr;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??x},this.availableModels=e.availableModels,this.adapterSessionTracker=new fn(this.globalBus,this.config),this.payloadEmitter=nr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=rr(t),this.eventBridge=Pn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=zn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=In({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Ln({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>tn(this.availableModels,e)}),this.lifecycleEmitter=Fn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new er({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Rn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await U({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...hn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await Ct({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){cn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return an({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await W(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=mn.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:on({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?en(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}acknowledgeCallerSettledAdapterSession(e){this.adapterSessionTracker.recordCallerSettled(e)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Ut(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},Y=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},ar=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}hasLifecycleWorkInFlight(){return this.teardowns.size>0||this.swapRetirementCounts.size>0}replacementAgentIdsInFlight(){return this.swapRetirementCounts.keys()}admitSwap(e,t){if(this.teardowns.has(e))throw new Y(e,`teardown-in-flight`);if(!t())throw new Y(e,`no-runtime`);let n=new b,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new b,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return or(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),I(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await or(t.closeCurrent())];for(let e of r.unclosed)i.push(await or(t.closeUnclosed(e)));return L(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?B:Math.min(B,Math.max(0,t-Date.now()-z));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function or(e){try{return await e}catch(e){return I(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function sr(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function cr(e){let{serverName:t,originalName:n}=sr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var lr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=cr(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 ur(e){return typeof e.tool==`string`?e.tool:void 0}function dr(e){return e===pe}const fr={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`},pr=he.shape.sessionId.unwrap(),mr=he.extend({llmCallId:pr});function hr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function gr(e){let t=mr.parse(e),n={};for(let[e,r]of Object.entries(fr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function _r(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function vr(e,t){if(e?.deferred!==!0)return t}function X(e){return e?.deferred!==!0}function yr(e){e.deferred=!1}function Z(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function br(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Z(e)}}var xr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;startFlights=new Set;settlementAckFlights=new Map;terminalTeardownReports=new Map;lifecycleState=`open`;globalBus;adapterName;ownerInstanceId;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.ownerInstanceId=e.ownerInstanceId,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Z(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}beginStart(){if(this.lifecycleState!==`open`)return;let e,t=new Promise(t=>{e=t});return this.startFlights.add(t),()=>{e!==void 0&&(e(),e=void 0,this.startFlights.delete(t))}}reopen(){if(this.lifecycleState!==`open`){if(this.lifecycleState!==`closed`||this.arbiter.hasLifecycleWorkInFlight())throw Error(`ActiveAgentRegistry ${this.adapterName} cannot reopen before shutdown fully settles`);this.lifecycleState=`open`}}acknowledgeCallerSettlement(e,t,n=!1){let r=this.entries.get(e);if(r===void 0)return Promise.resolve({acknowledged:!1,reason:`not-hosted`});let i=r.pendingCallerSettlement;if(i===void 0||i.token!==t)return Promise.resolve({acknowledged:!1,reason:`stale-token`});let a=this.settlementAckFlights.get(e);if(a!==void 0)return a.token===t?a.promise:Promise.resolve({acknowledged:!1,reason:`stale-token`});if(this.arbiter.hasTeardownInFlight(e))return Promise.resolve({acknowledged:!1,reason:`teardown-in-flight`});let o,s,c=new Promise((e,t)=>{o=e,s=t});this.settlementAckFlights.set(e,{token:t,promise:c});let l=()=>{this.settlementAckFlights.get(e)?.promise===c&&this.settlementAckFlights.delete(e)};return c.then(l,l),this.finishCallerSettlementAck(e,r,i,n).then(o,s),c}async finishCallerSettlementAck(e,t,n,r){if(!r){let r;try{r=await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`,expectedStatus:[`starting`,`dead`]})}catch(e){throw t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),e}if(!r.handled||!r.data.transitioned)return t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),{acknowledged:!1,reason:`status-refused`}}return this.entries.get(e)!==t||t.pendingCallerSettlement!==n?{acknowledged:!1,reason:`not-hosted`}:(yr(n.publication),t.agent.acknowledgeCallerSettledAdapterSession(n.adapterSessionId),t.pendingCallerSettlement=void 0,t.callerOwnsAgentRow=!1,{acknowledged:!0})}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Z(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,{...t,ownerInstanceId:this.ownerInstanceId,callerOwnsAgentRow:t.callerOwnsAgentRow===!0}),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear(),this.terminalTeardownReports.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){if(this.pendingAgentIdentityClaims.has(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`};if(this.arbiter.hasReplacementInFlight(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`};let t=this.terminalTeardownReports.get(e);return t===void 0?{found:!1,evidence:`released`}:{found:!1,...t}}async teardownFlight(e,t){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);try{let n=!this.arbiter.hasTeardownInFlight(e),r=await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>W(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()});if(!n||this.arbiter.hasReplacementInFlight(e))return r;let i=this.terminalTeardownReports.get(e),a=i===void 0?r:L([i,r]);return this.terminalTeardownReports.set(e,a),a}finally{this.entries.delete(e)}}async evict(e,t={}){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);let r=this.getEntryCallerOwnsAgentRow(e),i=await this.teardownFlight(e,t);if(!r)try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`dead`})}catch(t){if(i.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(i.closeError!==void 0)throw i.closeError;return i}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);if(t.responsibility!==`connector-only`)try{await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){this.lifecycleState=`closing`,await Promise.all([...this.startFlights]);let e=new Set([...this.entries.keys(),...this.arbiter.replacementAgentIdsInFlight()]),t=new Map(this.terminalTeardownReports);await Promise.all([...e].map(async e=>{let n=t.get(e),r=this.hasTeardownSubject(e)?await this.teardownFlight(e,{}):this.reportWithNothingToTearDown(e),i=this.terminalTeardownReports.get(e);t.set(e,i!==void 0&&i!==n?i:n===void 0?r:L([n,r]))}));let n=[...t.values()];return this.clear(),this.lifecycleState=`closed`,n}getEntryCallerOwnsAgentRow(e){return this.entries.get(e)?.callerOwnsAgentRow??!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Sr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(ye.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function Q(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Cr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(k.get,{agentId:t});if(!n.handled||!n.data.agent)return Q(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return Q(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await we(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Sr(e.globalBus,o.sessionId,t)}}catch(e){return Q(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}async function wr(e,t){let n=await Ce(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function Tr(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function Er(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=[Dr(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(Or(n)),AggregateError(r,e.activation.transaction===void 0?e.cleanupFailureMessage:`${e.operation} failed and provider account activation rollback was incomplete.`)}throw e.primaryError instanceof O?AggregateError([Error(`${e.operation} account activation commit failed.`),e.primaryError],`${e.operation} account activation commit and rollback both failed.`):e.primaryError instanceof AggregateError?AggregateError([Dr(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function Dr(e,t){return e instanceof D||e instanceof O?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function Or(e){return e instanceof D||e instanceof O?e:new O}function kr(e){return Object.values(e).some(e=>e!==void 0)}function Ar(e,t,n){return n===!0||e===void 0?void 0:{machineId:e,instanceId:t}}var jr=class{inFlight=new Map;globalBus;ownerInstanceId;machineId;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.ownerInstanceId=e.ownerInstanceId,this.machineId=e.machineId,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{if(e.payload.ownerInstanceId!==void 0&&e.payload.ownerInstanceId!==this.ownerInstanceId)return;let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,...a===!0&&{settlementAckToken:crypto.randomUUID()},publication:_r({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=this.registry.beginStart();if(c===void 0){e.setResult(Q(`Adapter is closing and cannot rehydrate agent ${t}`));return}let l=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,l);let u;try{u=await l}finally{this.inFlight.delete(t),c()}e.setResult(u)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return Q(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Cr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l,callerOwnsAgentRow:a===!0,...t.settlementAckToken!==void 0&&{pendingCallerSettlement:{token:t.settlementAckToken,publication:t.publication,adapterSessionId:f}}},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,adapterSessionId:f,...t.settlementAckToken!==void 0&&{settlementAckToken:t.settlementAckToken}}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!X(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?vr(r.publication,o):void 0,u=Ar(this.machineId,this.ownerInstanceId,c);i===void 0&&a===void 0&&l===void 0&&u===void 0||await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:i,model:a,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return Q(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await wr(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),Q(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await Tr(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>R(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Z(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return Q(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!X(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof Y)return Q(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=vr(n.publication,c),u=Ar(this.machineId,this.ownerInstanceId,n.callerOwnsAgentRow);return kr({cwd:n.cwd,model:n.model,adapterSessionId:l,runtimeOwner:u})&&await this.globalBus.requestOptional(k.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow?n.settlementAckToken!==void 0&&(t.callerOwnsAgentRow=!0,t.pendingCallerSettlement={token:n.settlementAckToken,publication:n.publication,adapterSessionId:t.adapterSessionId}):await this.globalBus.requestOptional(k.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.settlementAckToken!==void 0&&{settlementAckToken:n.settlementAckToken}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(E.get,{sessionId:e});if(!n.handled||!n.data.session)return;let r=await this.globalBus.requestOptional(me.session.resolve,{sessionId:e,projectId:null,profileId:t??null});return r.handled?r.data:void 0}async resolvePersistedSystemPrompt(e,t,n){if(!(!t&&!n))try{let r=await this.globalBus.requestOptional(E.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function Mr(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=Pr(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new er({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await Nr(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 Ir(Fr({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 Nr(e,t,n,r){let i=await wr(e.globalBus,n),a;try{return a=await U({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await Tr(i),a}catch(t){let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>R(W(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function Pr(e,t){let n=e===void 0?F():w.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...Zt(t,n)}}async function Fr(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=j(r),c={...i!==void 0&&{systemPrompt:i},turnContext:ln(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:Lr({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function Ir(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await W(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function Lr(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 Rr(o.structuredOutputValidation.errors);return o.message??``}function Rr(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function zr(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:Qt(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>X(f)},...Kt({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new lr,ephemeral:u,nativeFork:$t(e)})}}function $(e){return e.agentId!==void 0}function Br(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function Vr(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,...s.machineId!==void 0&&{runtimeOwner:{machineId:s.machineId,instanceId:s.ownerInstanceId}},adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function Hr(e,t,n){if(!n){try{await t.globalBus.requestOptional(k.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(k.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function Ur(e,t){let n=Vr({...e,status:`starting`,resolvedCwd:Br(e.payload,t),deps:t});await t.globalBus.request(k.set,{agentId:e.agentId,agent:n})}async function Wr(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=Br(r,i);if(!$(r)){let o=await Hr(Vr({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=vr(a.publication,n);try{await c.emit(E.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(S.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function Gr(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function Kr(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function qr(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Jr(e,t){let n=crypto.randomUUID(),r;try{r=await Ee(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:n})}catch(r){throw await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:n,disposition:`released`}).catch(()=>void 0),r}if(r.outcome!==`reserved`)return r.outcome===`session-not-active`?{kind:`refused`,outcome:r.outcome,sessionStatus:r.status,message:qr(t.resumeProviderSessionId,r.outcome)}:{kind:`refused`,outcome:r.outcome,message:qr(t.resumeProviderSessionId,r.outcome)};let{claim:i,ownerInstanceId:a}=r.reservation;return i===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:a!==t.ownerInstanceId||i.ownerInstanceId!==a?(await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:i.claimToken,disposition:`released`}),{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} reservation named runtime ${a}, claim named ${i.ownerInstanceId??`none`}, and adapter owner is ${t.ownerInstanceId}`}):{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:i.claimToken,ownerInstanceId:a}}}async function Yr(e,t,n,r){try{await e.requestOptional(E.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function Xr(e,t,n){try{if(n){await e.requestOptional(k.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(k.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Zr(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await Yr(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await Xr(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function Qr(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function $r(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function ei(e,t,n,r){return Qr(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function ti(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=Kr(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return Qr(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return ei(e,r,a,o);if($(n))return;let s=Date.now();a.agentRowCreatedAt=s,await Ur({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Jr(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,ownerInstanceId:e.ownerInstanceId,resumeProviderSessionId:o});if(c.kind===`refused`)return Qr(e,r,a,c.message);a.reservation=c.reservation}function ni(e,t,n){return e===void 0?{callerOwnsAgentRow:!1}:{callerOwnsAgentRow:!0,pendingCallerSettlement:{token:e,publication:t,adapterSessionId:n}}}function ri(e,t,n){if(!(!$(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function ii(e,t,n){if(t.initialMessage!==void 0){let r=j(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function ai(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function oi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function si(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function ci(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function li(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(E.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function ui(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await wr(s,i),e.markDispatched(),l=await e.createAgent(t,n,ci(r,i,a,e.publication));let o=await ii(l,r,a);return await Tr(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await Er({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>R(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function di(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=$(t)?crypto.randomUUID():void 0,l=t.providerContext===void 0?F():w.parse(t.providerContext);si(t);let u=await li(t,o),d={...t,providerContext:l},f=await ti(e,{payload:d,agentId:n,sessionId:u,acquisitions:r});if(f!==void 0)return{result:f,messageHandle:void 0};let p=Kr(t),m=t.sessionContext?T.parse(t.sessionContext):void 0,{agent:h,startResult:ee}=await ui({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:u,payload:t,providerContext:l,sessionContext:m,adapterName:i,resumeAdapterSessionId:p,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:g,messageId:_,messageHandle:v}=ee;if(a.set(n,{agent:h,sessionId:u,adapterSessionId:g,usage:ai(),...ni(c,r.publication,g)},p),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await pi(e,{agentId:n,sessionId:u,adapterSessionId:g},d,r);if(t!==void 0)return{result:t,messageHandle:void 0};await fi(h,g,r.publication)}return{result:{success:!0,agentId:n,adapterId:e.adapterId,ownerInstanceId:e.ownerInstanceId,sessionId:u,adapterSessionId:g,..._!==void 0&&{messageId:_},...c!==void 0&&{settlementAckToken:c}},messageHandle:v}}async function fi(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!X(n))}async function pi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await Wr(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await Gr(e.registry,i,e.name,t),t}if(s!==void 0)return $r(e,i,r,s)}function mi(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){if(i.payload.ownerInstanceId!==void 0&&i.payload.ownerInstanceId!==e.ownerInstanceId)return;let a=n.beginStart();if(a===void 0){i.setResult({success:!1,dispatch:`not-dispatched`,message:`Adapter ${t} is closing and cannot start another agent`});return}try{let a=i.payload,o=a.agentId??crypto.randomUUID(),s=ri(a,o,n);if(s!==void 0){i.setResult(s);return}let c=$(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:_r({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await di(e,a,o,l)}catch(e){throw await Zr({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&oi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}finally{a()}}}function hi(e){return async t=>{let n=await e.disposeAgent(t.payload.agentId,{deadline:t.deadline,...t.payload.teardown===`connector-only`&&{responsibility:`connector-only`}});t.setResult({success:n.found,evidence:n.evidence,...n.detail!==void 0&&{detail:n.detail}})}}function gi(e){return t=>{let n=e.get(t.payload.agentId);t.setResult({agent:n===void 0?null:br(n)})}}function _i(e){return async t=>{t.setResult(await e.acknowledgeCallerSettlement(t.payload.agentId,t.payload.settlementAckToken,t.payload.recovery===!0))}}var vi=class{operations;state=`new`;operationTail=Promise.resolve();lastOperation;initFlight;closeFlight;lastCloseReport={evidence:`released`};constructor(e){this.operations=e}init(){if(this.lastOperation===`init`&&this.initFlight!==void 0)return this.initFlight;let e=this.operationTail.then(()=>this.runInitialization());return this.lastOperation=`init`,this.initFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.initFlight===e&&(this.initFlight=void 0,this.lastOperation===`init`&&(this.lastOperation=void 0))}),e}close(){if(this.lastOperation===`close`&&this.closeFlight!==void 0)return this.closeFlight;let e=this.operationTail.then(()=>this.runClose());return this.lastOperation=`close`,this.closeFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.closeFlight===e&&(this.closeFlight=void 0,this.lastOperation===`close`&&(this.lastOperation=void 0))}),e}isInitialized(){return this.state===`initialized`}async runInitialization(){if(this.state===`initialized`)return;this.state===`closing`&&await this.completeShutdown(!1),this.operations.prepareInitialization(),this.state=`initializing`;let e=!1;try{await this.operations.initialize(),e=!0,await bi(this.operations.bus,this.operations.publication),this.state=`initialized`}catch(t){try{await this.completeShutdown(e)}catch(e){throw AggregateError([t,e],`Adapter initialization and rollback failed`)}throw t}}async runClose(){if(this.state===`closed`)return this.lastCloseReport;let e=this.state===`initialized`;return this.completeShutdown(e)}async completeShutdown(e){return this.state=`closing`,this.lastCloseReport=await this.operations.shutdown(e),this.state=`closed`,this.lastCloseReport}};function yi(e,t){if(t===void 0||t.trim()===``)throw Error(`AIAdapter ${e} requires a machine identity before announcing initialization`);return t}async function bi(e,t){await e.emit(S.initialized,t)}async function xi(e,t){await e.emit(S.deinitialized,{adapterId:t.adapterId,adapterName:t.name,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId})}async function Si(e,t){try{await xi(e,t)}catch(e){console.warn(`[AIAdapter] Failed to publish deinitialization for ${t.name}:`,e)}}var Ci=class{adapterId;ownerInstanceId;machineId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new ar;registry;cleanupFns=[];rehydrationManager;lifecycle;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){if(e.ownerInstanceId===void 0)throw Error(`AIAdapter ${e.name} requires an ownership-authority incarnation`);this.adapterId=e.adapterId??crypto.randomUUID(),this.ownerInstanceId=e.ownerInstanceId,this.machineId=yi(e.name,e.machineId),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 xr({globalBus:this.globalBus,adapterName:this.name,ownerInstanceId:this.ownerInstanceId,arbiter:this.teardownArbiter}),this.rehydrationManager=new jr({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this),machineId:this.machineId,ownerInstanceId:this.ownerInstanceId}),this.lifecycle=new vi({bus:this.globalBus,publication:{adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,capabilities:this.capabilities,nativeTools:this.nativeTools},prepareInitialization:()=>this.registry.reopen(),initialize:this.initializeGeneration.bind(this),shutdown:this.runClose.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId}),t=e.withFilter({ownerInstanceId:this.ownerInstanceId}),n=hi({disposeAgent:this.disposeAgent.bind(this)}),r=gi(this.registry),i=_i(this.registry);this.cleanupFns.push(e.on(S.startAgent,mi({adapterId:this.adapterId,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(S.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),t.on(S.acknowledgeCallerSettlement,i),e.on(S.infer,e=>Mr(e,{adapterBus:this.adapterBus,globalBus:this.globalBus,adapterId:this.adapterId,adapterName:this.name,clientId:this.clientId,adapterCapabilities:this.capabilities,definitionProviders:this.definitionProviders,platformDefaults:this.platformDefaults,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime})),e.on(C.session.closed,this.handleSessionClosed),e.on(C.started,this.handleStartedReconcileRegistry),e.on(C.usage,this.handleUsage),this.globalBus.on(E.closed,this.handleSessionClosedByService),e.on(S.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(br)})}),t.on(S.getAgent,r),t.on(S.stopAgent,n),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})};init(){return this.lifecycle.init()}async initializeGeneration(){this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit()}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(zr(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}closeAsync(){return this.lifecycle.close()}async runClose(e){let t={evidence:`released`};try{let e=await this.registry.closeAll(),n=await this.onClose();t=L([...e,...n===void 0?[]:[n]]);let r=e.map(e=>e.closeError).filter(e=>e!==void 0);return r.length>0&&console.warn(`[AIAdapter] ${r.length} agent(s) failed to close:`,r),t}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],e&&await Si(this.globalBus,this)}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:wi(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map(wi)}isInitialized(){return this.lifecycle.isInitialized()}};function wi(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function Ti(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(Ti)),t}var Ei=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 Di(e){let t=new Map,n=[];return n.push(e.on(_.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(_.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(_.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Oi=y.object({sessions:y.record(y.string(),y.object({state:y.enum([`idle`,`active`]),currentTurnId:y.string().optional()}))}).default({sessions:{}});var ki=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 Ai=y.object({eventType:y.literal(`agent_started`),model:y.string().optional()}),ji=y.object({eventType:y.literal(`agent_complete`),message:y.string().optional(),error:y.string().optional()}),Mi=y.object({eventType:y.literal(`error`),message:y.string(),code:y.string().or(y.number()).optional(),type:y.string().optional()}),Ni=y.object({eventType:y.literal(`tool_started`),toolName:y.string(),toolCallId:y.string()}),Pi=y.object({eventType:y.literal(`tool_completed`),toolName:y.string(),toolCallId:y.string(),result:y.string(),success:y.boolean()});export{Ci as AIAdapter,ir as AIAgent,Lt as AIAgentConnector,ji as AgentCompleteEventSchema,gn as AgentEventBridge,_n as AgentLifecycleEmitter,vn as AgentPayloadEmitter,kn as AgentRuntimeMutationManager,Ai as AgentStartedEventSchema,ar as AgentTeardownArbiter,mn as AgentTurnExecutor,zt as BaseConnectorSession,Bt as BaseConnectorTurn,Ei as BaseLogImporter,z as CONNECTOR_EXIT_OBSERVATION_MS,Tt as ConformanceConnectorRuntimeRegistry,Y as ConnectorSwapVetoedError,Mi as ErrorEventSchema,fr as FactoryUsageCorrelationHeaders,Rt as GenerationRetirementLedger,v as ImportCursorPositionSchema,g as ImportCursorStorageNamespace,_ as ImportCursorStorageSubjects,Qe as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,N as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Ze as MAKAIO_CONFORMANCE_PROVIDER_ENV,$e as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Pt as MessageHandle,Wt as MessageLifecycleTracker,Ht as ProceduralAgentConnector,Vt as ProceduralConnectorTurn,G as SESSION_CLOSED_QUEUE_ERROR,B as SWAP_SETTLEMENT_WAIT_MS,pt as ScopedToolApprovalSchema,Dt as SessionLifecycle,lr as SessionToolLedger,Gt as ToolCallTracker,Pi as ToolCompletedEventSchema,Ni as ToolStartedEventSchema,ki as TurnTracker,Oi as TurnTrackerSerializedStateSchema,Ot as UserMessageQueue,L as aggregateTeardownReports,hr as bindProviderRequestCorrelation,gr as buildFactoryUsageCorrelationHeaders,St as capTeardownEvidence,h as cleanEnvForAdapter,Oe as createAdapterNamespace,Et as createNoAuthTestProviderContext,Ye as createTestProviderContext,mt as createToolApprovalHandler,Ge as defineDiscriminatedHandlers,Ke as defineDiscriminatedHandlersSync,H as describeTeardownFailure,V as exitWasObserved,ur as extractMcpCallTarget,Ne as formatContextBlockAsText,Ue as formatContextBlocksAsText,ct as formatMessageHistoryAsTranscript,dr as isMcpCallTool,gt as isTextLikeMimeType,Ft as markCompletedWithFinalResult,ft as mergeScopedToolApproval,M as normalizeEnvValue,j as normalizeMessageInput,ht as normalizeMimeType,We as parseAIAdapterCapabilities,qe as processDiscriminatedItems,Je as processDiscriminatedItemsSync,kt as processQueueMessages,hn as registerAgentBusHandlers,Di as registerMemoryImportCursorStorage,At as rejectQueuedHandles,xt as reportBestEffortStages,_t as reportObservedExit,vt as reportRepeatTeardown,at as resolveConformanceDefinitionProviders,it as resolveConformanceTestPreset,ot as resolveDisabledNativeTools,dt as resolveRequiredSessionId,Xe as resolveTestConfig,R as rethrowTeardownFailure,bt as runBestEffortStage,ke as safeJsonStringify,ut as serializeBlockToText,Ve as serializeTurnContext,yt as stageFailure,Ti as toImportSegment,I as unknownTeardown,Ae as withTimeout};
|
|
11
|
+
`)}function ct(e){throw Error(`Unhandled MessageBlock variant: ${JSON.stringify(e)}`)}function lt(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 ct(e)}}function F(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 ut(e,t,n,r=!1){return F(e,t,`sessionId`,n,r)}function dt(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=ut(t.sessionId,e.sessionId,n,r.allowPayloadSessionFallback??!1);return{...e,agentId:F(t.agentId,e.agentId,`agentId`,n,i),adapterId:F(t.adapterId,e.adapterId,`adapterId`,n,i),adapterName:F(t.adapterName,e.adapterName,`adapterName`,n,i),adapterSessionId:F(t.adapterSessionId,e.adapterSessionId,`adapterSessionId`,n,i),sessionId:a}}const ft={request:le.request.extend({sessionId:y.string().optional()}),response:le.response};function pt(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 mt(e){return e&&e.split(`;`)[0].trim().toLowerCase()||`application/octet-stream`}function ht(e){let t=mt(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 I(){return{state:`unresolved`}}function L(e,t){return{evidence:`unknown`,detail:e,...t!==void 0&&{closeError:t}}}function R(e){let t=e.find(e=>e.closeError!==void 0)?.closeError;return{...he(e),...t!==void 0&&{closeError:t}}}async function z(e){let t=await e;if(t.closeError!==void 0)throw t.closeError}const B=2e3,V=1e4;async function gt(e,t=B){let n,r=new Promise(e=>{n=setTimeout(()=>e(!1),t)});try{return await Promise.race([e.then(()=>!0,()=>!1),r])}finally{n!==void 0&&clearTimeout(n)}}async function _t(e){return await gt(e.exited)?{evidence:`exited`}:{evidence:`detached`,detail:`${e.resource} was signalled but its end was not observed within ${B}ms.`}}function vt(){return{evidence:`detached`,detail:`An earlier teardown closed this connector; this call made no observation of its own.`}}function H(e){return e instanceof Error?e.message:String(e)}function yt(e,t){return`${e} failed (${H(t)})`}async function bt(e,t){try{await t();return}catch(t){return yt(e,t)}}function xt(e,t){if(t.length!==0)return L(`${e} left ${t.length===1?`a stage`:`stages`} unaccounted for: ${t.join(`; `)}.`)}function St(e,t,n){return{evidence:me([e.evidence,t]),detail:e.detail===void 0?n:`${e.detail}; ${n}`}}async function U(e){let t=await(e.prepareAuthRuntime??m)(e.config);try{return{connector:await e.connectorFactory({...t.config,...e.onMessageSent!==void 0&&{onMessageSent:e.onMessageSent},...e.onAdapterSessionMoved!==void 0&&{onAdapterSessionMoved:e.onAdapterSessionMoved}}),...t.lease!==void 0&&{lease:t.lease}}}catch(e){throw await wt(t.lease,e,`Connector creation and client config lease rollback both failed.`),e}}async function W(e){let t;try{t={reported:await e.connector.close()}}catch(e){t={failed:e}}let n;try{await e.lease?.release()}catch(e){n=e}return`failed`in t?n===void 0?L(`Connector close failed: ${H(t.failed)}`,t.failed):L(`Connector close and client config lease release both failed.`,AggregateError([t.failed,n],`Connector close and client config lease release both failed.`,{cause:t.failed})):n===void 0?t.reported:L(`Client config lease release failed: ${H(n)}`,n)}async function Ct(e){let t=[];for(let n of e.handlerCleanups)try{n()}catch(e){t.push(e)}let n=await W(e.runtime);throw n.closeError!==void 0&&t.push(n.closeError),t.length>0?AggregateError([e.primaryError,...t],`AIAgent ${e.agentId} initialization and rollback both failed.`,{cause:e.primaryError}):e.primaryError}async function wt(e,t,n){if(e!==void 0)try{await e.release()}catch(e){throw AggregateError([t,e],n,{cause:t})}}var Tt=class{runtimes=new Set;async create(e){let t=await U(e),n=t.connector.close.bind(t.connector),r,i={connector:t.connector,close:()=>(r??=W({connector:{close:n},...t.lease!==void 0&&{lease:t.lease}}).finally(()=>{this.runtimes.delete(i)}),r)};return Object.defineProperty(t.connector,`close`,{configurable:!0,value:i.close,writable:!0}),this.runtimes.add(i),t.connector}async closeAll(){let e=(await Promise.all([...this.runtimes].map(({close:e})=>e()))).map(e=>e.closeError).filter(e=>e!==void 0);if(e.length===1)throw e[0];if(e.length>1)throw AggregateError(e,`Multiple conformance connector runtimes failed to close.`)}};function Et(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 Dt=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)}},Ot=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 G=`Session closed before queued message could be processed`;async function kt(e,t){let n=t.getCurrentTurn(),r=t.extractContent??jt;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`}),kt(e,t)):(e.dequeue(),await t.startNewTurn(i)!==!1):!1}function At(e,t=G){let n=e.dequeue();for(;n;)n.isProcessed||n.markCompleted({outcome:`error`,error:Error(t)}),n=e.dequeue()}function jt(e){return e.message.message}const Mt=[`active`,`step_finished`,`turn_finished`,`processing_finished`];function Nt(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:Mt.includes(t),statesToEmit:[...n,t]}}var Pt=class{messageId;message;deliveryMode;responseSchema;internalRetry;requestCorrelation;turnId;useNativeResume;deferredCompletion;deferredAcknowledgement;state;isAcknowledged=void 0;completionResult=void 0;completionStarted=!1;completionTransforms=[];completionObservers=[];mergedInto;mergedFrom;supersededBy;deferredAdapterSessionId=new b;_adapterSessionId;_messageHistory;_cacheStrategy;_turnContext;constructor(e,t,n,r,i,a,o=!1,s,c,l,u){this.messageId=e,this.message=t,this.deliveryMode=n,this.responseSchema=a,this.internalRetry=o,this.requestCorrelation=c,this.turnId=l,this.useNativeResume=u,this.deferredCompletion=new b,this.deferredAcknowledgement=new b,this.state=`queued`,this._messageHistory=r,this._cacheStrategy=s,this._turnContext=i}get messageHistory(){return this._messageHistory}set messageHistory(e){this._messageHistory=e}get cacheStrategy(){return this._cacheStrategy}set cacheStrategy(e){this._cacheStrategy=e}get turnContext(){return this._turnContext}set turnContext(e){this._turnContext=e}get adapterSessionId(){return this._adapterSessionId}set adapterSessionId(e){e&&!this._adapterSessionId&&(this._adapterSessionId=e,this.deferredAdapterSessionId.resolve(e))}waitForAdapterSessionId(){return this._adapterSessionId?Promise.resolve(this._adapterSessionId):this.deferredAdapterSessionId.getPromise()}get wasDelivered(){return this.isAcknowledged===!0}get isProcessed(){return this.state===`completed`||this.state===`cancelled`}getState(){return this.state}updateState(e){this.state=e}async cancel(){return this.updateState(`cancelled`),this.completionStarted=!0,this.completionResult={outcome:`cancelled`},this.deferredAcknowledgement.reject(Error(`Message cancelled`)),this.deferredCompletion.resolve(this.completionResult),!0}markAcknowledged(e=!0){this.isAcknowledged===void 0&&(this.isAcknowledged=e,this.updateState(`acknowledged`),this.deferredAcknowledgement.resolve(e))}addCompletionTransform(e){if(this.completionStarted)throw Error(`Cannot add a completion transform after completion has started`);this.completionTransforms.push(e)}addCompletionObserver(e){if(this.completionStarted)throw Error(`Cannot add a completion observer after completion has started`);this.completionObservers.push(e)}markCompleted(e){this.completionStarted?console.warn(`markCompleted called for messageId: ${this.messageId} but already completed.`):(this.completionStarted=!0,this.updateState(`completed`),this.isAcknowledged===void 0&&(this.isAcknowledged=!1,this.deferredAcknowledgement.resolve(!1)),this.resolveCompletion(e))}async resolveCompletion(e){let t=e;try{for(let e of this.completionTransforms)t=await e(t)}catch(e){t={outcome:`error`,error:e instanceof Error?e:String(e)}}this.completionResult=t,this.notifyCompletionObservers(t),this.deferredCompletion.resolve(t)}notifyCompletionObservers(e){for(let t of this.completionObservers)try{t(e)}catch(e){console.warn(`[MessageHandle] completion observer failed for messageId: ${this.messageId}`,e)}}async waitForAcknowledgment(e){if(this.isAcknowledged!==void 0)return this.isAcknowledged;if(e){let t=await Promise.race([this.deferredAcknowledgement.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Acknowledgment timeout`)),e))]);if(t instanceof Error)throw this.markCompleted({outcome:`error`,error:t}),t;return t}return this.deferredAcknowledgement.getPromise()}async waitForCompletion(e){if(this.completionResult)return this.completionResult;if(e){let t=await Promise.race([this.deferredCompletion.getPromise(),new Promise(t=>setTimeout(()=>t(Error(`Completion timeout`)),e))]);if(t instanceof Error)throw t;return t}return this.deferredCompletion.getPromise()}};function Ft(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 It=class{committed=0;staged;stage(e){if(!Number.isInteger(e)||e<1)throw RangeError(`canonical turn number: expected positive integer, got ${e}`);if(e<=this.committed)throw RangeError(`canonical turn number: ${e} ≤ committed (${this.committed})`);if(this.staged!==void 0&&e<this.staged)throw RangeError(`canonical turn number: ${e} < staged (${this.staged})`);this.staged=e}consume(){return this.staged===void 0?this.committed+=1:(this.committed=this.staged,this.staged=void 0),this.committed}get current(){return this.committed}get pending(){return this.staged}},Lt=class{agentId;adapterSessionId;sessionId;pendingMessageHandle;scopedBus;globalBus;filteredBus;errorHandler;deferredInterrupt;emittery=new ee;processingState=`idle`;adapterId;timeouts;lastResult=null;config;model;providerConfigId;cwd;currentReasoningEffort;supportedReasoningLevels;env;turnNumbers=new It;adapterName;systemPrompt;constructor(e){let t=e.cwd??we.tmpdir();if(!te.existsSync(t))throw new ie(t);this.agentId=e.agentId??crypto.randomUUID(),this.scopedBus=e.bus,this.globalBus=e.globalBus??D,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??ne([]),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=h(e?.env??Ee.env)}getProcessingState(){return this.processingState}handlePause(e){this.updateProcessingState(`paused`)}captureSystemPrompt(e){e!==void 0&&(this.systemPrompt=e)}async updateProcessingState(e){let t=Nt(this.processingState,e);if(!t)return;let{statesToEmit:n}=t;this.processingState=e;for(let e of n)await this.emittery.emit(`processingStateChanged`,e)}onProcessingStateChanged(e){return this.emittery.on(`processingStateChanged`,e)}async onceProcessingStateChanged(e){return this.emittery.once(`processingStateChanged`,e)}getConfirmedAdapterSessionId(){return this.adapterSessionId}movesProviderSessionOnSuppressedResume(){return!1}createMessageHandle(e,t){let n=t?.messageId??crypto.randomUUID(),r=new Pt(n,e,t?.deliveryMode??`enqueue`,t?.messageHistory,t?.turnContext,t?.responseSchema,t?.internalRetry??!1,t?.cacheStrategy,t?.requestCorrelation===void 0?void 0:{...t.requestCorrelation,messageId:n},t?.turnId,t?.useNativeResume);return r.adapterSessionId=this.adapterSessionId,t?.internalRetry||this.config.onMessageSent?.(r),r}markToolRefreshPending(){}setCanonicalTurnNumber(e){this.turnNumbers.stage(e)}consumeTurnNumber(){return this.turnNumbers.consume()}get currentTurnNumber(){return this.turnNumbers.current}get pendingTurnNumber(){return this.turnNumbers.pending}async changeModelInPlace(e){return!1}async changeCwdInPlace(e){return!1}async changeReasoningInPlace(e){return!1}handleError(e,t=!1){let n=e instanceof Error?e:Error(String(e));console.warn(`[AIAgentConnector:handleError] pendingMessageHandle=${this.pendingMessageHandle?.messageId}, errorType=${n.name}, terminate=${t}`),this.errorHandler?.(n,t),this.pendingMessageHandle&&(this.pendingMessageHandle.markCompleted({outcome:`error`,error:n}),this.pendingMessageHandle=void 0,this.handlePause(`error`)),t&&this.abort()}handleToolApprovalDenied(e,t){e!==`not_requested`&&queueMicrotask(()=>{this.handleError(Error(`Tool use denied by approval handler: ${t}`),!1)})}getAgentId(){return this.agentId}getAdapterName(){return this.adapterName}getTimeoutMs(e){return this.timeouts.values[e]}requestToolApproval(e,t){return this.scopedBus.request(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId,sessionId:this.sessionId})}async requestToolApprovalWithHandling(e,t){return this.requestToolApproval(e,t).catch(e=>{let t=e;throw(e instanceof _e||e instanceof ge)&&(t=Error(`Tool approval request failed, make sure that there's a handler registered: `+e.message)),this.handleError(t,!1),e})}emit(e,t){return this.scopedBus.emit(e,{...t,adapterName:this.adapterName,agentId:this.agentId,adapterId:this.adapterId,adapterSessionId:this.adapterSessionId})}on(e,t,n){return this.filteredBus.on(e,t,n)}once(e,t){return this.filteredBus.once(e,t)}logLowLevelEvent(e){}},Rt=class{resource;supersededCount=0;unproven=new Set;constructor(e){this.resource=e}supersede(e){this.supersededCount+=1;let t={generation:this.supersededCount,exited:e};return this.unproven.add(t.generation),t}async retire(e){return e.exited===void 0||!await gt(e.exited)?!1:(this.unproven.delete(e.generation),!0)}abandon(e){this.unproven.add(e.generation),e.exited?.then(()=>this.unproven.delete(e.generation),()=>void 0)}capReport(e){let t=this.unretiredDetail();return t===void 0?e:St(e,`detached`,t)}unretiredDetail(){if(this.unproven.size===0)return;let e=[...this.unproven].join(`, `);return`${this.resource} generation ${e} was superseded without its end being observed and may still be running.`}},zt=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(G)}),!0):!1}async abort(){await this.currentTurn?.pause()}async sendMessage(e,t){throw Error(`Use processQueue instead`)}async getAdapterSessionId(){return this.sessionId}},Bt=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)}},Vt=class extends Bt{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}},Ht=class extends Lt{turnEventsWired=!1;turnEventLifecycleClosed=!1;turnEventCleanups=[];activeTurnEventHandlers=new Set;getWireSessionConfig(){}wireSessionEvents(){if(this.turnEventLifecycleClosed||this.turnEventsWired)return;this.turnEventsWired=!0;let e=this.getTurnSubjects(),t=this.getWireSessionConfig(),n=(e,t)=>{this.turnEventCleanups.push(this.on(e,(()=>this.dispatchTurnEvent(t))))};n(e.turn_started,async()=>{try{await t?.onTurnStarted?.()}catch(e){console.error(`[ProceduralAgentConnector] onTurnStarted hook failed:`,e)}this.turnEventLifecycleClosed||await this.updateProcessingState(`turn_started`)}),n(e.step_started,async()=>{await this.updateProcessingState(`step_started`)}),n(e.step_finished,async()=>{if(await this.updateProcessingState(`step_finished`),this.turnEventLifecycleClosed)return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()&&await e.processQueue(t)}),n(e.turn_finished,async()=>{await this.updateProcessingState(`turn_finished`);let e=async()=>{if(this.turnEventLifecycleClosed||(await this.updateProcessingState(`processing_finished`),this.turnEventLifecycleClosed))return;let e=this.getSession(),t=this.getSessionQueue();e&&!t.isEmpty()?await e.processQueue(t):await this.updateProcessingState(`idle`)};t?.onTurnFinished?await t.onTurnFinished(e):await e()})}async dispatchTurnEvent(e){if(this.turnEventLifecycleClosed)return;let t=e();this.activeTurnEventHandlers.add(t);try{await t}finally{this.activeTurnEventHandlers.delete(t)}}unwireSessionEvents(){for(let e of this.turnEventCleanups)e();this.turnEventCleanups=[],this.turnEventsWired=!1}async closeTurnEventLifecycle(){this.turnEventLifecycleClosed=!0,this.unwireSessionEvents(),await Promise.allSettled(this.activeTurnEventHandlers)}get isTurnEventLifecycleClosed(){return this.turnEventLifecycleClosed}async processUserMessages(e){let[t]=e,n;try{n=await this.ensureSession()}catch(e){let n=e instanceof Error?e:Error(String(e));throw t.isProcessed||t.markCompleted({outcome:`error`,error:n}),n}if(this.turnEventLifecycleClosed)throw t.markCompleted({outcome:`error`,error:Error(G)}),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);let r=this.getSessionQueue();if(r.enqueue(t),t.adapterSessionId=this.adapterSessionId,(this.getProcessingState()===`idle`||this.getProcessingState()===`paused`)&&await this.updateProcessingState(`active`),this.turnEventLifecycleClosed)throw At(r),Error(`[${this.config.adapterName}] Cannot send through a closed connector`);return await n.processQueue(r),new Set([t])}async initialize(e){this.getSession()||(this.captureSystemPrompt(e?.systemPrompt),await this.ensureSession())}async start(e,t){this.captureSystemPrompt(t?.systemPrompt);let n=await this.sendMessage(e,t);return{adapterSessionId:await this.getAdapterSessionId(),messageHandle:n,agentId:this.agentId}}async complete(){for(;this.getProcessingState()!==`idle`&&this.getProcessingState()!==`paused`;)await this.onceProcessingStateChanged();return this.lastResult}acceptsImmediate(){return this.getSession()?.getCurrentTurn()?.canAcceptImmediate()??!1}};function Ut(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 Wt=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)})}},Gt=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 Kt(e){let t=e.platformEnv!==void 0||e.env!==void 0?{...e.platformEnv,...e.env}:void 0,n=qt({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 qt(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Jt(e,t){return e?.find(e=>e.definition.id===t)?.auth}function Yt(e,t){return e?.find(e=>e.definition.id===t)?.protocol}function Xt(e,t){return e?.flatMap(e=>e.definition.id!==t&&e.auth!==void 0?[e.auth]:[])??[]}function Zt(e,t){return t.state===`unresolved`?{compatibleProviderAuths:[]}:{providerProtocol:Yt(e,t.definitionId),adapterProviderAuth:Jt(e,t.definitionId),compatibleProviderAuths:Xt(e,t.definitionId)}}function Qt(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 $t(e){if(e.mode!==`fork`)return;let t=e.sessionContext,n=t===void 0?void 0:T.parse(t);if(n?.nativeLocality?.kind===`native`)return n.nativeFork}function en(e){if(e instanceof se||e instanceof re||e instanceof ae||e instanceof oe)return e.code}function tn(e,t){if(t)return e?.find(e=>e.name===t)?.supportedReasoningLevels}function nn(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??I()}function rn(e,t){return e!==void 0&&`reasoningEffort`in e?e.reasoningEffort:t}function an(e){let{config:t,overrides:n}=e,r=nn(t.agentId,t.providerContext,n?.providerContext),{adapterProviderAuth:i,providerProtocol:a,compatibleProviderAuths:o}=Zt(t.definitionProviders,r);return{bus:t.adapterBus,globalBus:t.globalBus,agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,providerContext:r,...a!==void 0&&{providerProtocol:a},...i!==void 0&&{adapterProviderAuth:i},compatibleProviderAuths:o,providerContextRequired:(t.definitionProviders?.length??0)>0,model:n?.model??t.model,cwd:n?.cwd??t.cwd,env:t.env,adapterSessionId:n?.adapterSessionId??t.adapterSessionId,sessionId:t.sessionId,resumeAdapterSessionId:n!==void 0&&`resumeAdapterSessionId`in n?n.resumeAdapterSessionId:t.resumeAdapterSessionId,reasoningEffort:rn(n,e.currentReasoningEffort),supportedReasoningLevels:tn(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 on(e){let{structuredOutputManager:t,getConnector:n,sessionId:r,messageHandle:i,responseSchema:a}=e;return async e=>{if(e.outcome!==`completed`)return e;let o=await t.validateTerminalResult({responseSchema:a,message:e.result?.message,sessionId:r,retryTurn:async({attemptNumber:e,validationErrors:t})=>{let r=n();return r?(await(await r.sendMessage(i.message,{deliveryMode:`enqueue`,internalRetry:!0,messageId:`${i.messageId}:structured-output-retry:${e}`,messageHistory:i.messageHistory,responseSchema:a,requestCorrelation:i.requestCorrelation,turnContext:{...i.turnContext,structuredOutputRetry:{attemptNumber:e,validationErrors:t,instruction:`Previous output did not match the requested JSON schema. Respond only with corrected JSON.`}}})).waitForCompletion()).result?.message??``:``}});return{...e,result:e.result!==null&&e.result!==void 0?{...e.result,message:o.message}:e.result,structuredOutputValidation:o.structuredOutputValidation}}}const sn=[`idle`,`active`];function cn(e,t,n){e.requestOptional(A.updateStatus,{agentId:t,status:n,expectedStatus:[...sn]}).catch(()=>void 0)}function ln(e,t,n){return!t||n.includes(`structuredOutput`)?e:{...e,structuredOutput:`Respond ONLY with valid JSON conforming to this schema:\n${JSON.stringify(t.schema,null,2)}\nDo not include any other text, markdown formatting, or explanation.`}}async function un(e,t,n){try{return await e.emit(S.adapterSession.moved,{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,confirmed:n.confirmed,...t.sessionId!==void 0&&{sessionId:t.sessionId},...n.confirmed&&{adapterSessionId:n.adapterSessionId}}),!0}catch(e){return console.warn(`[adapter-session-movement] Failed to announce provider-session movement for agent ${t.agentId}:`,e),!1}}function dn(e){return e.movesProviderSessionOnSuppressedResume()?void 0:e.getConfirmedAdapterSessionId()}var fn=class{lastKnown;lastAnnounced;undelivered;inheritsResumeTarget;callerSettlementPending=!1;bus;host;constructor(e,t){this.bus=e,this.host=t,this.inheritsResumeTarget=t.resumeAdapterSessionId!==void 0}get lastKnownAdapterSessionId(){return this.lastKnown}async record(e,t=!1){if(t&&(this.callerSettlementPending=!0),e!==void 0){if(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.callerSettlementPending||this.host.isProviderKeyPublishable?.()===!1)return;if(e!==this.lastAnnounced){await this.announce({adapterSessionId:e,confirmed:!0});return}}this.undelivered!==void 0&&await this.announce(this.undelivered)}async recordUnconfirmedMove(){this.host.resumeAdapterSessionId=void 0,await this.announce({confirmed:!1})}adoptResumeTarget(e){this.host.resumeAdapterSessionId=e,this.inheritsResumeTarget=e!==void 0}recordCallerSettled(e){this.callerSettlementPending=!1,e!==void 0&&(this.lastKnown=e,this.inheritsResumeTarget&&(this.host.resumeAdapterSessionId=e),this.lastAnnounced=e,this.undelivered=void 0)}async announce(e){let t=await un(this.bus,this.identity(),e);this.undelivered=t?void 0:e,t&&e.confirmed&&(this.lastAnnounced=e.adapterSessionId)}identity(){return{agentId:this.host.agentId,adapterId:this.host.adapterId,adapterName:this.host.adapterName,machineId:this.host.machineId,ownerInstanceId:this.host.ownerInstanceId,sessionId:this.host.sessionId}}};function pn(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 mn=class e{agentId;adapterId;sessionId;adapterCapabilities;globalBus;getConnector;shouldUseNativeResume;hasResumeTarget;setPendingStartMode;onNativeResumeSuppressed;onMessageHandle;onBeforeDispatch;runDispatch;ephemeral;constructor(e){this.agentId=e.agentId,this.adapterId=e.adapterId,this.sessionId=e.sessionId,this.adapterCapabilities=e.adapterCapabilities??[],this.globalBus=e.globalBus,this.getConnector=e.getConnector,this.shouldUseNativeResume=e.shouldUseNativeResume,this.hasResumeTarget=e.hasResumeTarget,this.setPendingStartMode=e.setPendingStartMode,this.onNativeResumeSuppressed=e.onNativeResumeSuppressed,this.onMessageHandle=e.onMessageHandle,this.onBeforeDispatch=e.onBeforeDispatch,this.runDispatch=e.runDispatch??(async e=>e()),this.ephemeral=e.ephemeral??!1}static deriveStartMode(e,t,n=!1){return e?.nativeFork?`fork`:e?t?`resume`:e.isFirstTurn?`fresh`:`rotation`:n?`resume`:`fresh`}async deriveAndSetPendingStartMode(t){let n=this.shouldUseNativeResume(t),r=e.deriveStartMode(t,n,this.hasResumeTarget());return this.setPendingStartMode(r),this.movesProviderSession(n)&&await this.onNativeResumeSuppressed?.(),n}movesProviderSession(e){return e||!this.hasResumeTarget()?!1:dn(this.getConnector())===void 0}async executeSendMessage(e){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let t=this.getConnector(),n=e.sessionContext?T.parse(e.sessionContext):void 0,r=await this.resolvePreUserMessageTurn({message:e.message,sessionContext:n,cwd:t.cwd,messageId:e.messageId}),i=await this.deriveAndSetPendingStartMode(r.sessionContext),a=M(r.message),o=await t.sendMessage(a,{deliveryMode:e.deliveryMode,messageId:e.messageId,turnId:e.turnId,messageHistory:i?void 0:r.sessionContext?.messageHistory,cacheStrategy:i?void 0:r.sessionContext?.cacheStrategy,useNativeResume:i,turnContext:ln(r.sessionContext?.turnContext,e.responseSchema,this.adapterCapabilities),requestCorrelation:pn(r.sessionContext?.requestCorrelation,{sessionId:this.sessionId,turnId:e.turnId,messageId:e.messageId}),...e.responseSchema!==void 0&&{responseSchema:e.responseSchema}});return this.assertCanonicalMessageId(e.messageId,o,t,`sendMessage`),this.firePostUserMessageHooks(o.messageId),await this.onMessageHandle(o,e.turnId),{messageId:o.messageId}})}async executeStart(e,t,n,r){return this.runDispatch(async()=>{await this.onBeforeDispatch?.();let i=this.getConnector(),a=t?.sessionContext?T.parse(t.sessionContext):void 0,o=await this.resolvePreUserMessageTurn({message:e,sessionContext:a,cwd:i.cwd,messageId:t?.messageId}),s=await this.deriveAndSetPendingStartMode(o.sessionContext),c=M(o.message),l={systemPrompt:n,messageId:t?.messageId,messageHistory:s?void 0:o.sessionContext?.messageHistory,cacheStrategy:s?void 0:o.sessionContext?.cacheStrategy,useNativeResume:s,turnContext:ln(o.sessionContext?.turnContext,r,this.adapterCapabilities),requestCorrelation:pn(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}:xe({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){be({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 hn(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(E.turn.started,t=>{t.payload.agentIds.includes(e.agentId)&&e.onTurnStarted(t.payload.turnNumber)},{filter:{sessionId:e.sessionId}})),n}var gn=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()}},_n=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)}cn(this.config.globalBus,this.config.agentId,`idle`)}catch(e){throw this.completedMessageIds.delete(t.messageId),e}}}emitSessionClosed(e){this.sessionClosedEmitted||(this.sessionClosedEmitted=!0,this.config.emitSessionClosed({reason:e}).catch(e=>{console.warn(`[AIAgent] Failed to emit session.closed for agent ${this.config.agentId}:`,e)}))}},vn=class{config;constructor(e){this.config=e}async resolveConfirmedAdapterSessionId(){let e=this.config.getConnectorAdapterSessionId();if(await this.config.setLastKnownAdapterSessionId(e),this.config.isProviderKeyPublishable?.()!==!1)return e??this.config.getLastKnownAdapterSessionId()}resolveEventMetadata(e,t){if(!t)return{};let n=this.config.getEventMetadataDefaults();return{clientId:e.clientId??n.clientId,providerConfigId:e.providerConfigId??n.providerConfigId,occurredAt:e.occurredAt??n.occurredAt}}async enrichPayload(e,t,n){let r=e,i=t??this.config.getCurrentMessageId(),a=`turnId`in r?r.turnId:this.config.getCurrentTurnId(),o=await this.resolveConfirmedAdapterSessionId(),{clientId:s,providerConfigId:c,occurredAt:l}=this.resolveEventMetadata(r,n?.includeEventMetadata??!0),u=this.config.getAgentContextBase(),d={...e,agentId:u.agentId,adapterId:u.adapterId,adapterName:u.adapterName,...o!==void 0&&{adapterSessionId:o},...i!==void 0&&{messageId:i},...a!==void 0&&{turnId:a},...u.sessionId!==void 0&&{sessionId:u.sessionId},...s!==void 0&&{clientId:s},...c!==void 0&&{providerConfigId:c},...l!==void 0&&{occurredAt:l}};return a===void 0&&`turnId`in d&&delete d.turnId,this.config.isProviderKeyPublishable?.()===!1&&`adapterSessionId`in d&&delete d.adapterSessionId,d}async emitGlobal(e,t,n){let r=await this.enrichPayload(t,t.messageId,n);await this.config.globalBus.emit(e,r)}},yn=class e{transaction;terminal=!1;constructor(e){this.transaction=e}static async prepare(t,n){return new e(await Se(t,n))}async commit(){if(this.transaction!==void 0)try{await this.transaction.commit()}finally{this.terminal=!0}}async rollbackPending(){if(!(this.transaction===void 0||this.terminal))try{await this.transaction.rollback()}finally{this.terminal=!0}}},K=class extends Error{constructor(){super(`Runtime mutation committed, but durable agent-state persistence failed.`),this.name=`AgentRuntimePersistenceError`}},q=class extends Error{reason;constructor(e){super(`Credential change guard rejected (${e}).`),this.reason=e,this.name=`CredentialChangeGuardError`}},bn=class{config;constructor(e){this.config=e}async handle(e){let t=pe.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 yn.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=xn(e);throw AggregateError([n,t],`Credential change and account activation rollback both failed.`,{cause:n})}if(e instanceof K)throw e;if(e instanceof k)throw AggregateError([Error(`Credential activation commit failed.`),e],`Credential activation commit and rollback both failed.`);return e instanceof q?{success:!1,reason:e.reason}:{success:!1,reason:e instanceof 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 q(`stale_change`);if(n.getProcessingState()!==`idle`)throw new q(`turn_active`)}};function xn(e){return e instanceof q?Error(`Credential change rejected (${e.reason}).`):e instanceof O||e instanceof k?Error(`Credential account activation failed.`):Error(`Credential connector replacement failed.`)}var Sn=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 Cn(e,t){return e===t?!0:!e||!t||e.state!==t.state?!1:e.state===`unresolved`||t.state===`unresolved`?e.state===t.state:e.providerConfigId===t.providerConfigId&&e.definitionId===t.definitionId&&J(e.endpointOverrides,t.endpointOverrides)&&J(e.auth,t.auth)&&J(e.capabilities,t.capabilities)}function J(e,t){if(e===t)return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>J(e,t[n]));if(!wn(e)||!wn(t))return!1;let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&J(e[n],t[n]))}function wn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function Tn(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 En=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:Dn(e)}}let t;try{a&&i!==void 0&&(t=await yn.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:Dn(e)}}}try{return await this.finalizeModelSwap(e,s,c)}catch(e){return{success:!1,reason:e instanceof K?`model_change_committed_persistence_failed`:`model_change_committed_postprocess_failed`}}}async finalizeModelSwap(e,t,n){let{currentModel:r,newModel:i,reasoningEffort:a,previousReasoningEffort:o,providerContext:s,isProviderChange:c}=e,l=this.config.getConnector();s!==void 0&&c&&this.config.setProviderContext(s),l.supportedReasoningLevels=this.config.resolveSupportedReasoningLevels(i);let u=l.supportedReasoningLevels,d=this.resolveReasoningEffort(a,o,u);l.currentReasoningEffort=d,this.config.setReasoningEffort(d),d!==void 0&&await l.changeReasoningInPlace(d).catch(()=>void 0);let f=c&&s!==void 0?s.state===`resolved`?s.providerConfigId:null:void 0;return(r!==i||f!==void 0)&&await this.config.persistRuntimeMutation({...r!==i&&{model:i},...f!==void 0&&{providerConfigId:f}}),(r!==i||d!==o)&&await this.config.emitModelChanged({previousModel:r,newModel:i,previousReasoningEffort:o,newReasoningEffort:d}),n&&this.config.sessionId&&await this.config.globalBus.emit(E.connectorSwap.editRequested,{sessionId:this.config.sessionId,agentId:this.config.agentId,previousModel:r,newModel:i}),{success:!0,swapped:!t,model:i,appliedReasoningEffort:d,supportedReasoningLevels:u}}resolveReasoningEffort(e,t,n){if(!n||Object.keys(n).length===0)return;let r=e=>e in n;return e!==void 0&&r(e)?e:t!==void 0&&r(t)?t:r(`medium`)?`medium`:Object.keys(n)[0]}async confirmConnectorSwap(e,t,n){if(e===t)return{proceed:!0,requestEditHistory:!1};let r=await Tn({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:!Cn(e,t)}};function Dn(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)}},kn=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 Sn({getConnector:e.getConnector,swapConnectorUnlocked:e.swapConnectorUnlocked,setMcpSessionContext:e.setMcpSessionContext}),this.modelMutationManager=new En({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 bn({globalBus:e.globalBus,sequencer:this.credentialChangeSequencer,runExclusive:e.runExclusive,getConnector:e.getConnector,getProviderContext:e.getProviderContext,setProviderContext:e.setProviderContext,swapConnectorUnlocked:e.swapConnectorUnlocked,persistProviderConfigId:e=>this.persistRuntimeMutation({providerConfigId:e})})}async handleCwdChange(e){return this.runExclusive(()=>this.handleCwdChangeUnlocked(e))}async handleCwdChangeUnlocked(e){let t=this.getConnector(),{newCwd:n}=e;if(t.cwd===n)return{success:!0};if(t.getProcessingState()!==`idle`)return{success:!1,reason:`turn_active`};let r=t.cwd;try{await t.changeCwdInPlace(n).catch(()=>!1)?t.cwd=n:await this.swapConnectorUnlocked({cwd:n})}catch{return{success:!1,reason:`cwd_change_failed: connector_replacement_failed`}}try{await this.persistRuntimeMutation({cwd:n})}catch(e){if(e instanceof K)return{success:!1,reason:`cwd_change_committed_persistence_failed`};throw e}try{await this.emitCwdChanged({previousCwd:r,newCwd:n})}catch{return{success:!1,reason:`cwd_change_committed_event_failed`}}return{success:!0,previousCwd:r}}async applyStagedMutationsUnlocked(){this.getConnector().getProcessingState()===`idle`&&(await this.modelMutationManager.applyStagedMutation(),await this.mcpServersMutationManager.applyStagedMutation())}runTurnDispatch(e){return this.runExclusive(async()=>(await this.applyStagedMutationsUnlocked(),e()))}async handleMcpServersSet(e){return this.runExclusive(()=>this.mcpServersMutationManager.handleMcpServersSet(e))}async handleModelChange(e){return this.runExclusive(()=>this.modelMutationManager.handle(e))}async handleCredentialChanged(e){return this.credentialChangeManager.handle(e)}async persistRuntimeMutation(e){try{let t=await this.globalBus.requestOptional(A.updateRuntime,{agentId:this.agentId,cwd:e.cwd,model:e.model,providerConfigId:e.providerConfigId});if(!t.handled||!t.data.success)throw new K}catch(e){throw e instanceof K?e:new K}}},An=class{connectorWiringCleanups=[];busHandlerCleanups=[];config;constructor(e){this.config=e}addConnectorWiringCleanup(e){this.connectorWiringCleanups.push(e)}clearConnectorWiring(){j(this.connectorWiringCleanups,`Connector wiring for agent ${this.config.agentId}`),this.connectorWiringCleanups=[]}addBusHandlerCleanups(...e){this.busHandlerCleanups.push(...e)}detachWiring(){let e=this.takeBusHandlerCleanups();return this.clearConnectorWiring(),e}takeBusHandlerCleanups(){let e=this.busHandlerCleanups;return this.busHandlerCleanups=[],e}releaseBusHandlers(){j(this.takeBusHandlerCleanups(),`Bus handler`)}releaseWiring(){j(this.detachWiring(),`Bus handler`)}async wireAllConnectorEvents(e){let t=e.onProcessingStateChanged(e=>{e===`idle`&&this.config.emitIdle().catch(e=>{console.warn(`[AIAgent] Failed to emit idle for agent ${this.config.agentId}:`,e)})});this.addConnectorWiringCleanup(t),await this.config.wireEvents(e)}async swapConnector(e,t,n=!1,r){let i=this.config.getConnectorRuntime(),a=i.connector;if(a.getProcessingState()!==`idle`)throw Error(`Cannot swap connector while processing (state: ${a.getProcessingState()})`);let o=await this.createReplacementRuntime(a,e),s=this.connectorWiringCleanups;this.connectorWiringCleanups=[];let c=await this.initializeReplacement(o,s,t,r);return c!==void 0&&await this.config.setLastKnownAdapterSessionId(c,n),this.config.setConnectorRuntime(o),this.runWiringCleanups(s),await this.closePreviousRuntime(i,r),c}async createReplacementRuntime(e,t){let n=this.config.buildConfigInput({cwd:t?.cwd??e.cwd,model:t?.model??e.model,...t?.providerContext&&{providerContext:t.providerContext},...t?.mcpSessionContext&&{mcpSessionContext:t.mcpSessionContext},...t!==void 0&&`reasoningEffort`in t&&{reasoningEffort:t.reasoningEffort},adapterSessionId:t?.adapterSessionId??crypto.randomUUID(),...t!==void 0&&`resumeAdapterSessionId`in t&&{resumeAdapterSessionId:t.resumeAdapterSessionId}});return U({config:await this.config.configFactory(n),connectorFactory:this.config.connectorFactory,onMessageSent:this.config.createOnMessageSent(),onAdapterSessionMoved:this.config.announceAdapterSessionMoved,prepareAuthRuntime:this.config.prepareAuthRuntime})}async initializeReplacement(e,t,n,r){try{await this.wireAllConnectorEvents(e.connector),await e.connector.initialize({systemPrompt:this.config.getRuntimeSystemPrompt()});let t=e.connector.getConfirmedAdapterSessionId();return await n?.(),t}catch(n){this.clearConnectorWiring(),this.connectorWiringCleanups=t;let i=await W(e);throw r?.(i,e),i.closeError===void 0?n:AggregateError([n,i.closeError],`Connector setup and rollback both failed for agent ${this.config.agentId}.`,{cause:n})}}runWiringCleanups(e){j(e,`Superseded connector wiring for agent ${this.config.agentId}`)}async closePreviousRuntime(e,t){let n=await W(e);if(t?.(n,e),n.closeError===void 0)return;let r={code:`previous-connector-cleanup-failed`,stage:`swap-old-runtime`,agentId:this.config.agentId};try{await this.config.reportCleanupFailure(r)}catch{console.warn(`[AIAgent] ${r.code} for agent ${r.agentId}; cleanup diagnostic delivery also failed.`)}}},jn=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?.()}}},Mn=class{config;barrier=new jn;constructor(e){this.config=e}runExclusive(e){return this.barrier.runExclusive(e)}async swapConnector(e,t,n=!1){await this.runExclusive(async()=>{let r;try{e?.providerContext!==void 0&&(r=await yn.prepare(this.config.globalBus,e.providerContext)),await this.swapConnectorUnlocked(e,async()=>{await t?.(),await r?.commit()},n)}catch(e){if(r!==void 0)try{await r.rollbackPending()}catch(e){let t=Error(`Public connector replacement failed.`);throw AggregateError([t,e],`Connector replacement and account activation rollback both failed.`,{cause:t})}throw e}})}async swapConnectorUnlocked(e,t,n=!1){let r=this.config.arbiter.admitSwap(this.config.agentId,this.config.hasConnectorRuntime),i=[],a=[],o=`rolled-back`;try{let r=await this.config.lifecycleManager.swapConnector(e,t,n,(e,t)=>{a.push(e),e.closeError!==void 0&&i.push(t)});o=`committed`,this.publishRuntimeConfig(e,r)}finally{let e=r.settle({outcome:o,unclosed:i,closeReports:a});try{e.reportsConsumedByWaiter||this.config.recordUnreportedCloseReports(a),e.abandonedByWaiter&&await this.closeRuntimesForAbandonedWaiter(i)}finally{r.retire()}}}publishRuntimeConfig(e,t){e?.providerContext!==void 0&&(this.config.runtimeConfig.providerContext=e.providerContext),e?.mcpSessionContext!==void 0&&(this.config.runtimeConfig.mcpSessionContext=e.mcpSessionContext),e!==void 0&&`resumeAdapterSessionId`in e&&this.config.publishResumeTargetDecision(e.resumeAdapterSessionId===void 0?void 0:t??e.resumeAdapterSessionId)}async closeRuntimesForAbandonedWaiter(e){this.config.lifecycleManager.clearConnectorWiring();let t=this.config.detachConnectorRuntime();for(let n of t===void 0?e:[t,...e]){let e=await W(n);e.closeError!==void 0&&console.warn(`[AIAgent] Agent ${this.config.agentId} connector replacement inherited a teardown's runtimes and could not close one:`,e.closeError)}}};function Nn(e){return new vn({globalBus:e.globalBus,getAgentContextBase:e.getAgentContextBase,getCurrentMessageId:()=>e.lifecycleTracker.getCurrentMessageId(),getCurrentTurnId:()=>e.lifecycleTracker.getCurrentTurnId(),getConnectorAdapterSessionId:e.getConnectorAdapterSessionId,getLastKnownAdapterSessionId:e.getLastKnownAdapterSessionId,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,...e.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:e.isProviderKeyPublishable},getEventMetadataDefaults:e.getEventMetadataDefaults})}function Pn(e){return new gn({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 Fn(e){return new _n({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 In(e){return new mn(e)}function Ln(e){return new kn({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 Rn(e){return new An({agentId:e.agentId,buildConfigInput:e.buildConfigInput,configFactory:e.configFactory,connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime,createOnMessageSent:e.createOnMessageSent,wireEvents:e.wireEvents,emitIdle:async()=>{await e.emitGlobal(S.idle,{})},getConnectorRuntime:e.getConnectorRuntime,setConnectorRuntime:e.setConnectorRuntime,getRuntimeSystemPrompt:e.getRuntimeSystemPrompt,setLastKnownAdapterSessionId:e.setLastKnownAdapterSessionId,announceAdapterSessionMoved:e.announceAdapterSessionMoved,reportCleanupFailure:t=>e.emitGlobal(x.log,{message:`${t.code}:${t.stage}`,timestamp:Date.now(),level:`warn`},{includeEventMetadata:!1})})}function zn(e){return new Mn(e)}var Bn=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`}]}}}}})),Vn=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:`#`}}}}})),Hn=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:`#`}}}})),Un=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:{}}}}})),Wn=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`}}}})),Gn=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}}}})),Kn=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:[]}}}})),qn=t((e=>{Object.defineProperty(e,`__esModule`,{value:!0});let t=Bn(),n=Vn(),r=Hn(),i=Un(),a=Wn(),o=Gn(),s=Kn(),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})),Jn=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 c=n(),p=s(),m=u(),h=f(),ee=d(),g=a(),_=qn(),v=`https://json-schema.org/draft/2019-09/schema`;var y=class extends c.default{constructor(e={}){super({...e,dynamicRef:!0,next:!0,unevaluated:!0})}_addVocabularies(){super._addVocabularies(),this.addVocabulary(m.default),p.default.forEach(e=>this.addVocabulary(e)),this.addVocabulary(h.default),this.addVocabulary(ee.default),this.opts.discriminator&&this.addKeyword(g.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();let{$data:e,meta:t}=this.opts;t&&(_.default.call(this,e),this.refs[`http://json-schema.org/schema`]=v)}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(v)?v:void 0)}};e.Ajv2019=y,t.exports=e=y,t.exports.Ajv2019=y,Object.defineProperty(e,`__esModule`,{value:!0}),e.default=y;var te=r();Object.defineProperty(e,`KeywordCxt`,{enumerable:!0,get:function(){return te.KeywordCxt}});var b=l();Object.defineProperty(e,`_`,{enumerable:!0,get:function(){return b._}}),Object.defineProperty(e,`str`,{enumerable:!0,get:function(){return b.str}}),Object.defineProperty(e,`stringify`,{enumerable:!0,get:function(){return b.stringify}}),Object.defineProperty(e,`nil`,{enumerable:!0,get:function(){return b.nil}}),Object.defineProperty(e,`Name`,{enumerable:!0,get:function(){return b.Name}}),Object.defineProperty(e,`CodeGen`,{enumerable:!0,get:function(){return b.CodeGen}});var ne=i();Object.defineProperty(e,`ValidationError`,{enumerable:!0,get:function(){return ne.default}});var re=o();Object.defineProperty(e,`MissingRefError`,{enumerable:!0,get:function(){return re.default}})})),Yn=e(c(),1),Xn=e(Jn(),1),Zn=e(p(),1);const Qn=new Set([`https://json-schema.org/draft/2019-09/schema`,`https://json-schema.org/draft/2019-09/schema#`]),$n=new Set([`https://json-schema.org/draft/2020-12/schema`,`https://json-schema.org/draft/2020-12/schema#`]);var er=class{bus;agentId;adapterId;adapterCapabilities;draft07Ajv=new Yn.default({allErrors:!0,strict:!1});draft2019Ajv=new Xn.default({allErrors:!0,strict:!1});draft2020Ajv=new Zn.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&&$n.has(n)?{compiler:this.draft2020Ajv,schema:this.withSchemaUri(e,n)}:r!==void 0&&Qn.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}))}},tr=class{unreported=[];record(e){for(let{evidence:t,detail:n}of e)this.unreported.push({evidence:t,...n!==void 0&&{detail:n}})}capReport(e){return this.unreported.length===0?e:R([...this.unreported,e])}};function nr(e){let{host:t,adapterSessionTracker:n,getConnector:r}=e;return Nn({globalBus:e.globalBus,getAgentContextBase:()=>({agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,sessionId:t.sessionId}),lifecycleTracker:e.lifecycleTracker,getConnectorAdapterSessionId:()=>{let e=r();return e===void 0?void 0:dn(e)},getLastKnownAdapterSessionId:()=>n.lastKnownAdapterSessionId,setLastKnownAdapterSessionId:e=>n.record(e),...t.isProviderKeyPublishable!==void 0&&{isProviderKeyPublishable:t.isProviderKeyPublishable},getEventMetadataDefaults:()=>({clientId:t.clientId,providerConfigId:r()?.providerConfigId??(t.providerContext?.state===`resolved`?t.providerContext.providerConfigId:void 0),occurredAt:Date.now()})})}function rr(e){return t=>{e(S.user_message.sent,{messageId:t.messageId,content:t.message,deliveryMode:t.deliveryMode,turnId:t.turnId})}}var ir=class{connector;connectorRuntime;confirmedModel;initialModel;adapterSessionTracker;initialized=!1;runtimeSystemPrompt;lifecycleTracker=new Wt({emitGlobal:this.emitGlobal.bind(this)});toolCallTracker=new Gt;eventBridge;turnExecutor;runtimeMutationManager;connectorLifecycleManager;connectorSwapCoordinator;closeReportLedger=new tr;onMessageSent;payloadEmitter;lifecycleEmitter;structuredOutputManager;latestMessageCompletion;currentBlockIndex=0;pendingStartMode;config;availableModels;constructor(e){this.config={...e,globalBus:e.globalBus??D},this.availableModels=e.availableModels,this.adapterSessionTracker=new fn(this.globalBus,this.config),this.payloadEmitter=nr({globalBus:this.globalBus,host:this.config,lifecycleTracker:this.lifecycleTracker,adapterSessionTracker:this.adapterSessionTracker,getConnector:()=>this.connector});let t=this.payloadEmitter.emitGlobal.bind(this.payloadEmitter);this.onMessageSent=rr(t),this.eventBridge=Pn({emitGlobal:t,toolCallTracker:this.toolCallTracker,lifecycleTracker:this.lifecycleTracker,getBlockIndex:this.getBlockIndex.bind(this),incrementBlockIndex:this.incrementBlockIndex.bind(this),getUsageModel:()=>this.confirmedModel??this.initialModel}),this.connectorLifecycleManager=this.createConnectorLifecycleManager(t),this.connectorSwapCoordinator=zn({agentId:this.agentId,globalBus:this.globalBus,lifecycleManager:this.connectorLifecycleManager,runtimeConfig:this.config,publishResumeTargetDecision:this.adapterSessionTracker.adoptResumeTarget.bind(this.adapterSessionTracker),arbiter:this.config.teardownArbiter,hasConnectorRuntime:()=>this.connectorRuntime!==void 0,detachConnectorRuntime:this.detachConnectorRuntime.bind(this),recordUnreportedCloseReports:this.closeReportLedger.record.bind(this.closeReportLedger)}),this.turnExecutor=In({agentId:this.agentId,adapterId:this.adapterId,sessionId:this.sessionId,adapterCapabilities:this.capabilities,globalBus:this.globalBus,getConnector:()=>this.connector,shouldUseNativeResume:this.shouldUseNativeResume.bind(this),hasResumeTarget:()=>this.config.resumeAdapterSessionId!==void 0,setPendingStartMode:this.setPendingStartMode.bind(this),onNativeResumeSuppressed:()=>this.adapterSessionTracker.recordUnconfirmedMove(),onMessageHandle:this.onMessageHandle.bind(this),runDispatch:e=>this.runtimeMutationManager.runTurnDispatch(e),ephemeral:this.config.ephemeral}),this.runtimeMutationManager=Ln({agentId:this.agentId,sessionId:this.sessionId,globalBus:this.globalBus,getConnector:()=>this.connector,runExclusive:e=>this.connectorSwapCoordinator.runExclusive(e),swapConnectorUnlocked:this.connectorSwapCoordinator.swapConnectorUnlocked.bind(this.connectorSwapCoordinator),emitGlobal:t,getProviderContext:()=>this.config.providerContext,setProviderContext:e=>void(this.config.providerContext=e),setReasoningEffort:e=>void(this.config.reasoningEffort=e),setMcpSessionContext:e=>this.config.mcpSessionContext=e,resolveSupportedReasoningLevels:e=>tn(this.availableModels,e)}),this.lifecycleEmitter=Fn({agentId:this.agentId,globalBus:this.globalBus,emitGlobal:t,onBeforeEmitCompletion:this.onBeforeEmitCompletion.bind(this),clearMessageToolCalls:e=>this.toolCallTracker.clearMessage(e)}),this.structuredOutputManager=new er({bus:this.globalBus,agentId:this.agentId,adapterId:this.adapterId,adapterCapabilities:this.capabilities})}createConnectorLifecycleManager(e){return Rn({agentId:this.agentId,buildConfigInput:this.buildConfigInput.bind(this),configFactory:this.config.configFactory,connectorFactory:this.config.connectorFactory,prepareAuthRuntime:this.config.prepareAuthRuntime,createOnMessageSent:()=>this.onMessageSent,wireEvents:this.wireEvents.bind(this),emitGlobal:e,getConnectorRuntime:()=>{if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector runtime is not initialized.`);return this.connectorRuntime},setConnectorRuntime:e=>{this.connectorRuntime=e,this.connector=e.connector},getRuntimeSystemPrompt:()=>this.runtimeSystemPrompt,setLastKnownAdapterSessionId:this.adapterSessionTracker.record.bind(this.adapterSessionTracker),announceAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove()})}get agentId(){return this.config.agentId}get adapterId(){return this.config.adapterId}get adapterName(){return this.config.adapterName}get capabilities(){return this.config.capabilities}get nativeTools(){return this.config.nativeTools}get sessionId(){return this.config.sessionId}get adapterSessionId(){return this.config.adapterSessionId}get globalBus(){return this.config.globalBus}async init(){if(this.initialized)throw Error(`AIAgent ${this.agentId} already initialized. init() can only be called once.`);let e=this.buildConfigInput(),t=await U({config:await this.config.configFactory(e),connectorFactory:this.config.connectorFactory,onMessageSent:this.onMessageSent,onAdapterSessionMoved:()=>this.adapterSessionTracker.recordUnconfirmedMove(),prepareAuthRuntime:this.config.prepareAuthRuntime});this.connectorRuntime=t,this.connector=t.connector;try{this.config.nativeFork=void 0,this.connectorLifecycleManager.addBusHandlerCleanups(...hn({globalBus:this.globalBus,agentId:this.agentId,sessionId:this.sessionId,onSendMessage:async e=>{await this.sendMessage(e)},onInterrupt:async e=>{await this.handleInterrupt(e)},getCapabilities:()=>({capabilities:this.capabilities,nativeTools:this.nativeTools,model:this.connector?.model??this.confirmedModel??this.initialModel}),onCwdChange:e=>this.runtimeMutationManager.handleCwdChange(e),onModelChange:e=>this.runtimeMutationManager.handleModelChange(e),onMcpServersSet:e=>this.runtimeMutationManager.handleMcpServersSet(e),onCredentialChange:e=>this.runtimeMutationManager.handleCredentialChanged(e),onTurnStarted:e=>this.connector.setCanonicalTurnNumber(e),onMcpToolsChanged:()=>this.connector.markToolRefreshPending()}),...this.structuredOutputManager.registerDefaultHandlers()),await this.connectorLifecycleManager.wireAllConnectorEvents(this.connector),this.initialized=!0}catch(e){let n=this.connectorLifecycleManager.detachWiring();this.connectorRuntime=void 0,await Ct({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){cn(this.globalBus,this.agentId,`active`),this.lifecycleTracker.setCurrentTurnId(e.payload.turnId);try{let t=await this.turnExecutor.executeSendMessage(e.payload);e.setResult(t)}catch(e){throw this.lifecycleTracker.clearCurrentTurnId(),e}}async handleInterrupt(e){try{await this.ensureConnector().interrupt(),e.setResult({success:!0})}catch(t){e.setResult({success:!1,reason:t instanceof Error?t.message:String(t)})}}addConnectorWiringCleanup(e){this.connectorLifecycleManager.addConnectorWiringCleanup(e)}addBusHandlerCleanup(e){this.connectorLifecycleManager.addBusHandlerCleanups(e)}async swapConnector(e,t,n=!1){await this.connectorSwapCoordinator.swapConnector(e,t,n)}buildConfigInput(e){return an({config:this.config,availableModels:this.availableModels,currentReasoningEffort:this.connector?.currentReasoningEffort??this.config.reasoningEffort,clearAllToolCalls:this.toolCallTracker.clearAll.bind(this.toolCallTracker),overrides:e})}subscribeConnector(e,t,n,r){let i=e.on(t,n,r);this.connectorLifecycleManager.addConnectorWiringCleanup(i)}async close(e={}){(e.emitSessionClosed??!0)&&this.emitSessionClosed(`closed`),this.connectorLifecycleManager.releaseWiring();let t=this.detachConnectorRuntime(),n=t===void 0?{evidence:`released`}:await W(t);return this.closeReportLedger.capReport(n)}releaseIdentityWiring(){this.connectorLifecycleManager.releaseBusHandlers()}detachConnectorRuntime(){let e=this.connectorRuntime;return this.connectorRuntime=void 0,e}ensureConnector(){if(this.connectorRuntime===void 0)throw Error(`AIAgent ${this.agentId} connector not initialized. Call init() or start() first.`);return this.connector}shouldUseNativeResume(e){return this.supportsNativeResume()?e?!(e.nativeLocality?.kind!==`native`||e.isFirstTurn||e.hasCompression||e.hasNewTransforms||e.hasConnectorSwap):!0:!1}supportsNativeResume(){return!1}supportsNativeFork(){return!1}async start(e,t){return this.initialized||await this.init(),t?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=t.systemPrompt),this.turnExecutor.executeStart(e,t,this.runtimeSystemPrompt,t?.responseSchema)}async initialize(e){e?.systemPrompt!==void 0&&this.runtimeSystemPrompt===void 0&&(this.runtimeSystemPrompt=e.systemPrompt);let t=this.config.nativeFork;this.initialized||await this.init();let n=e?.sessionContext,r=t&&!n?.nativeFork?{...n,nativeFork:t}:n,i=this.config.resumeAdapterSessionId!==void 0,a=mn.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:on({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?en(r):void 0;this.emitCompletion({message:t.result?.message,messageId:e,...n!==void 0&&{turnId:n},outcome:t.outcome,...i&&{error:i},...a&&{errorCategory:a},...t.structuredOutputValidation===void 0?{}:{structuredOutputValidation:t.structuredOutputValidation}})},r,{turnId:t})}abort(){this.emitSessionClosed(`aborted`),this.ensureConnector().abort()}async getAdapterSessionId(){return this.ensureConnector().getAdapterSessionId()}async recordConfirmedAdapterSession(e,t=!1){await this.adapterSessionTracker.record(e,t)}acknowledgeCallerSettledAdapterSession(e){this.adapterSessionTracker.recordCallerSettled(e)}get currentAdapterSessionId(){return this.adapterSessionTracker.lastKnownAdapterSessionId}async complete(){let e=await this.ensureConnector().complete();return e===null||this.latestMessageCompletion===void 0?e:this.latestMessageCompletion}createConnectorEventMapping(e,t,n,r){let i=Ut(this.globalBus,this.connector,e,r,t,n,this.enrichPayload.bind(this));return this.connectorLifecycleManager.addConnectorWiringCleanup(i),i}},Y=class extends Error{agentId;reason;constructor(e,t){super(t===`teardown-in-flight`?`Connector replacement for agent ${e} refused: a teardown is already in flight.`:`Connector replacement for agent ${e} refused: the agent holds no connector runtime.`),this.agentId=e,this.reason=t,this.name=`ConnectorSwapVetoedError`}},ar=class{teardowns=new Map;swaps=new Map;swapRetirementCounts=new Map;hasTeardownInFlight(e){return this.teardowns.has(e)}hasReplacementInFlight(e){return this.swapRetirementCounts.has(e)}hasLifecycleWorkInFlight(){return this.teardowns.size>0||this.swapRetirementCounts.size>0}replacementAgentIdsInFlight(){return this.swapRetirementCounts.keys()}admitSwap(e,t){if(this.teardowns.has(e))throw new Y(e,`teardown-in-flight`);if(!t())throw new Y(e,`no-runtime`);let n=new b,r={settlement:n.getPromise(),abandonedByWaiter:!1,awaitedByWaiter:!1,handover:void 0,retired:!1};return this.swaps.set(e,r),this.swapRetirementCounts.set(e,(this.swapRetirementCounts.get(e)??0)+1),{settle:t=>{if(r.handover!==void 0)return r.handover;let{abandonedByWaiter:i,awaitedByWaiter:a}=r,o={abandonedByWaiter:i,reportsConsumedByWaiter:a&&!i};return r.handover=o,n.resolve(t),this.swaps.get(e)===r&&this.swaps.delete(e),o},retire:()=>{if(r.handover===void 0||r.retired)return;r.retired=!0;let t=(this.swapRetirementCounts.get(e)??1)-1;t===0?this.swapRetirementCounts.delete(e):this.swapRetirementCounts.set(e,t)}}}runTeardown(e,t){let n=this.teardowns.get(e);if(n!==void 0)return n;let r=new b,i=r.getPromise();return this.teardowns.set(e,i),this.settleFlight(e,t,r),i}async settleFlight(e,t,n){try{n.resolve(await this.flyTeardown(e,t))}catch(e){n.reject(e instanceof Error?e:Error(String(e)))}finally{this.teardowns.delete(e)}}async flyTeardown(e,t){let n=this.swaps.get(e);if(n===void 0)return or(t.closeCurrent());let r=await this.awaitSettlement(n,t.deadline);if(r===void 0)return t.releaseIdentity(),L(`Agent ${e} had an unsettled connector replacement in flight; nothing was closed and the replacement now owns both runtimes.`);let i=[...r.closeReports,await or(t.closeCurrent())];for(let e of r.unclosed)i.push(await or(t.closeUnclosed(e)));return R(i)}async awaitSettlement(e,t){e.awaitedByWaiter=!0;let n=t===void 0?V:Math.min(V,Math.max(0,t-Date.now()-B));if(n<=0){e.abandonedByWaiter=!0;return}let r,i=new Promise(e=>{r=setTimeout(()=>e(void 0),n)});try{let t=await Promise.race([e.settlement,i]);return t===void 0&&(e.abandonedByWaiter=!0),t}finally{r!==void 0&&clearTimeout(r)}}};async function or(e){try{return await e}catch(e){return L(`Teardown threw instead of reporting: ${e instanceof Error?e.message:String(e)}`,e)}}function sr(e){let t=e.indexOf(`__`);return t===-1?{serverName:``,originalName:e}:{serverName:e.slice(0,t),originalName:e.slice(t+2)}}function cr(e){let{serverName:t,originalName:n}=sr(e);return{fullName:e,originalName:n,serverName:t,injected:!1,lastInjectedAtTurn:void 0,discovered:!1,firstDiscoveredAtTurn:void 0,callCount:0,lastCalledAtTurn:void 0}}var lr=class{entries=new Map;upsert(e){let t=this.entries.get(e);return t||(t=cr(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 ur(e){return typeof e.tool==`string`?e.tool:void 0}function dr(e){return e===de}const fr={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`},pr=fe.shape.sessionId.unwrap(),mr=fe.extend({llmCallId:pr});function hr(e,t){return{...e,...t.sessionId===void 0?{}:{sessionId:t.sessionId},messageId:t.messageId,llmCallId:t.llmCallId}}function gr(e){let t=mr.parse(e),n={};for(let[e,r]of Object.entries(fr)){let i=t[e];i!==void 0&&(n[r]=i)}return n}function _r(e){return{deferred:e.callerOwnsAgentRow&&e.ephemeral!==!0}}function vr(e,t){if(e?.deferred!==!0)return t}function X(e){return e?.deferred!==!0}function yr(e){e.deferred=!1}function Z(e){return e.agent.currentAdapterSessionId??e.adapterSessionId}function br(e){return{agentId:e.agent.agentId,sessionId:e.sessionId,adapterSessionId:Z(e)}}var xr=class{entries=new Map;pendingAdapterSessionClaims=new Set;pendingAgentIdentityClaims=new Set;startFlights=new Set;settlementAckFlights=new Map;terminalTeardownReports=new Map;lifecycleState=`open`;globalBus;adapterName;ownerInstanceId;arbiter;constructor(e){this.globalBus=e.globalBus,this.adapterName=e.adapterName,this.ownerInstanceId=e.ownerInstanceId,this.arbiter=e.arbiter}claimAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!1;for(let t of this.entries.values())if(Z(t)===e)return!1;return this.pendingAdapterSessionClaims.add(e),!0}releaseAdapterSessionClaim(e){this.pendingAdapterSessionClaims.delete(e)}claimAgentIdentity(e){return this.pendingAgentIdentityClaims.has(e)||this.entries.has(e)?!1:(this.pendingAgentIdentityClaims.add(e),!0)}releaseAgentIdentityClaim(e){this.pendingAgentIdentityClaims.delete(e)}beginStart(){if(this.lifecycleState!==`open`)return;let e,t=new Promise(t=>{e=t});return this.startFlights.add(t),()=>{e!==void 0&&(e(),e=void 0,this.startFlights.delete(t))}}reopen(){if(this.lifecycleState!==`open`){if(this.lifecycleState!==`closed`||this.arbiter.hasLifecycleWorkInFlight())throw Error(`ActiveAgentRegistry ${this.adapterName} cannot reopen before shutdown fully settles`);this.lifecycleState=`open`}}acknowledgeCallerSettlement(e,t,n=!1){let r=this.entries.get(e);if(r===void 0)return Promise.resolve({acknowledged:!1,reason:`not-hosted`});let i=r.pendingCallerSettlement;if(i===void 0||i.token!==t)return Promise.resolve({acknowledged:!1,reason:`stale-token`});let a=this.settlementAckFlights.get(e);if(a!==void 0)return a.token===t?a.promise:Promise.resolve({acknowledged:!1,reason:`stale-token`});if(this.arbiter.hasTeardownInFlight(e))return Promise.resolve({acknowledged:!1,reason:`teardown-in-flight`});let o,s,c=new Promise((e,t)=>{o=e,s=t});this.settlementAckFlights.set(e,{token:t,promise:c});let l=()=>{this.settlementAckFlights.get(e)?.promise===c&&this.settlementAckFlights.delete(e)};return c.then(l,l),this.finishCallerSettlementAck(e,r,i,n).then(o,s),c}async finishCallerSettlementAck(e,t,n,r){if(!r){let r;try{r=await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`idle`,expectedStatus:[`starting`,`dead`]})}catch(e){throw t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),e}if(!r.handled||!r.data.transitioned)return t.pendingCallerSettlement===n&&(t.pendingCallerSettlement=void 0),{acknowledged:!1,reason:`status-refused`}}return this.entries.get(e)!==t||t.pendingCallerSettlement!==n?{acknowledged:!1,reason:`not-hosted`}:(yr(n.publication),t.agent.acknowledgeCallerSettledAdapterSession(n.adapterSessionId),t.pendingCallerSettlement=void 0,t.callerOwnsAgentRow=!1,{acknowledged:!0})}hasAdapterSession(e){if(this.pendingAdapterSessionClaims.has(e))return!0;for(let t of this.entries.values())if(Z(t)===e)return!0;return!1}set(e,t,n){this.entries.set(e,{...t,ownerInstanceId:this.ownerInstanceId,callerOwnsAgentRow:t.callerOwnsAgentRow===!0}),this.pendingAgentIdentityClaims.delete(e),n!==void 0&&this.pendingAdapterSessionClaims.delete(n)}get(e){return this.entries.get(e)}values(){return this.entries.values()}clear(){this.entries.clear(),this.pendingAdapterSessionClaims.clear(),this.pendingAgentIdentityClaims.clear(),this.terminalTeardownReports.clear()}hasTeardownSubject(e){return this.entries.has(e)||this.arbiter.hasTeardownInFlight(e)}reportWithNothingToTearDown(e){if(this.pendingAgentIdentityClaims.has(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} is being started on this instance and has no runtime to tear down yet.`};if(this.arbiter.hasReplacementInFlight(e))return{found:!1,evidence:`unknown`,detail:`Agent ${e} has an unsettled connector replacement in flight that owns its runtimes; nothing was closed.`};let t=this.terminalTeardownReports.get(e);return t===void 0?{found:!1,evidence:`released`}:{found:!1,...t}}async teardownFlight(e,t){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);try{let n=!this.arbiter.hasTeardownInFlight(e),r=await this.arbiter.runTeardown(e,{deadline:t.deadline,closeCurrent:async()=>{let n=this.entries.get(e);return n===void 0?{evidence:`released`}:n.agent.close({emitSessionClosed:t.emitSessionClosed})},closeUnclosed:e=>W(e),releaseIdentity:()=>this.entries.get(e)?.agent.releaseIdentityWiring()});if(!n||this.arbiter.hasReplacementInFlight(e))return r;let i=this.terminalTeardownReports.get(e),a=i===void 0?r:R([i,r]);return this.terminalTeardownReports.set(e,a),a}finally{this.entries.delete(e)}}async evict(e,t={}){let n=this.settlementAckFlights.get(e);n!==void 0&&await n.promise.catch(()=>void 0);let r=this.getEntryCallerOwnsAgentRow(e),i=await this.teardownFlight(e,t);if(!r)try{await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`dead`})}catch(t){if(i.closeError===void 0)throw t;console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as dead:`,t)}if(i.closeError!==void 0)throw i.closeError;return i}async evictSilently(e,t={}){let n=await this.teardownFlight(e,{...t,emitSessionClosed:!1});return n.closeError!==void 0&&console.warn(`[ActiveAgentRegistry:${this.adapterName}] Agent ${e} close error during silent eviction:`,n.closeError),n}async dispose(e,t={}){if(!this.hasTeardownSubject(e))return this.reportWithNothingToTearDown(e);let n=await this.teardownFlight(e,t);if(t.responsibility!==`connector-only`)try{await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`disposed`})}catch(t){console.warn(`[ActiveAgentRegistry:${this.adapterName}] Failed to mark agent ${e} as disposed:`,t)}return{found:!0,...n}}async closeAll(){this.lifecycleState=`closing`,await Promise.all([...this.startFlights]);let e=new Set([...this.entries.keys(),...this.arbiter.replacementAgentIdsInFlight()]),t=new Map(this.terminalTeardownReports);await Promise.all([...e].map(async e=>{let n=t.get(e),r=this.hasTeardownSubject(e)?await this.teardownFlight(e,{}):this.reportWithNothingToTearDown(e),i=this.terminalTeardownReports.get(e);t.set(e,i!==void 0&&i!==n?i:n===void 0?r:R([n,r]))}));let n=[...t.values()];return this.clear(),this.lifecycleState=`closed`,n}getEntryCallerOwnsAgentRow(e){return this.entries.get(e)?.callerOwnsAgentRow??!1}accumulateUsage(e,t,n){let r=this.entries.get(e);if(r)return r.usage.totalInputTokens+=t.inputTokens,r.usage.totalOutputTokens+=t.outputTokens,r.usage.totalCalls++,n&&n!==r.adapterSessionId&&(r.adapterSessionId=n),r}agentIdsBySession(e){return[...this.entries.entries()].filter(([,t])=>t.sessionId===e).map(([e])=>e)}};async function Sr(e,t,n){let r={totalInputTokens:0,totalOutputTokens:0,totalCalls:0},i=await e.requestOptional(ve.getBySession,{sessionId:t,status:`completed`});if(!i.handled)return r;for(let e of i.data.turns){let t=e.usage?.byAgent?.[n];t&&(r.totalInputTokens+=t.inputTokens,r.totalOutputTokens+=t.outputTokens)}return r}function Q(e){return{success:!1,message:e,dispatch:`not-dispatched`}}async function Cr(e,t,n){let{rpcResumeId:r,cwd:i,model:a}=n;try{let n=await e.globalBus.requestOptional(A.get,{agentId:t});if(!n.handled||!n.data.agent)return Q(`Agent ${t} not found in storage`);let o=n.data.agent;if(o.status===`disposed`)return Q(`Agent ${t} is disposed and cannot be rehydrated`);let s=await e.resolveMcpSessionContext(o.sessionId,o.profileId),c=o.providerConfigId===void 0?void 0:await Ce(e.globalBus,{adapterName:o.adapterName,providerConfigId:o.providerConfigId});return{persisted:o,agentCreationRequest:{model:a??o.model,cwd:i??o.cwd,allowedDirectories:o.allowedDirectories,...r!==void 0&&{adapterSessionId:r,resumeAdapterSessionId:r},...c!==void 0&&{providerContext:c},...s!==void 0&&{mcpSessionContext:s}},restoredUsage:await Sr(e.globalBus,o.sessionId,t)}}catch(e){return Q(`Agent ${t} could not be prepared for rehydration: ${e instanceof Error?e.message:String(e)}`)}}async function wr(e,t){let n=await Se(e,t);return{...n!==void 0&&{transaction:n},terminal:n===void 0}}async function Tr(e){if(e.transaction!==void 0)try{await e.transaction.commit()}finally{e.terminal=!0}}async function Er(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=[Dr(e.primaryError,e.operation)];throw t!==void 0&&r.push(Error(`${e.operation} runtime cleanup failed.`)),n!==void 0&&r.push(Or(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([Dr(e.primaryError,e.operation),Error(`${e.operation} runtime rollback failed.`)],`${e.operation} connector startup and runtime rollback both failed.`):e.primaryError}function Dr(e,t){return e instanceof O||e instanceof k?Error(`${t} account activation failed.`):Error(`${t} connector startup failed.`)}function Or(e){return e instanceof O||e instanceof k?e:new k}function kr(e){return Object.values(e).some(e=>e!==void 0)}function Ar(e,t,n){return n===!0||e===void 0?void 0:{machineId:e,instanceId:t}}var jr=class{inFlight=new Map;globalBus;ownerInstanceId;machineId;registry;createAgentFn;constructor(e){this.globalBus=e.globalBus,this.ownerInstanceId=e.ownerInstanceId,this.machineId=e.machineId,this.registry=e.registry,this.createAgentFn=e.createAgent}handleRehydrateAgent=async e=>{if(e.payload.ownerInstanceId!==void 0&&e.payload.ownerInstanceId!==this.ownerInstanceId)return;let{agentId:t,cwd:n,model:r,resumeAdapterSessionId:i,callerOwnsAgentRow:a}=e.payload,o={rpcResumeId:i,cwd:n,model:r,callerOwnsAgentRow:a,...a===!0&&{settlementAckToken:crypto.randomUUID()},publication:_r({callerOwnsAgentRow:a===!0})},s=this.inFlight.get(t);if(s){e.setResult(await s);return}let c=this.registry.beginStart();if(c===void 0){e.setResult(Q(`Adapter is closing and cannot rehydrate agent ${t}`));return}let l=(async()=>{let e=this.registry.get(t);return e?await this.rehydrateRegisteredAgent(t,e,o):await this.rehydrateFromStorage(t,o)})().catch(e=>{if(e instanceof AggregateError)throw AggregateError(e.errors,`Failed to recover agent ${t}: ${e.message}`);let n=e instanceof Error?e.message:String(e);throw Error(`Failed to recover agent ${t}: ${n}`)});this.inFlight.set(t,l);let u;try{u=await l}finally{this.inFlight.delete(t),c()}e.setResult(u)};preflightDeps(){return{globalBus:this.globalBus,resolveMcpSessionContext:(e,t)=>this.resolveMcpSessionContext(e,t)}}async rehydrateFromStorage(e,t){if(!this.registry.claimAgentIdentity(e))return Q(`Agent ${e} is already claimed by another in-flight start or rehydrate`);try{return await this.rehydrateClaimedFromStorage(e,t)}finally{this.registry.releaseAgentIdentityClaim(e)}}async rehydrateClaimedFromStorage(e,t){let{rpcResumeId:n,cwd:r,model:i,callerOwnsAgentRow:a}=t,o=await Cr(this.preflightDeps(),e,t);if(`success`in o)return o;let{persisted:s,agentCreationRequest:c,restoredUsage:l}=o,u=await this.claimAndCreateAgent(e,s,c,n);if(`success`in u)return u;let{agent:d,adapterSessionId:f}=u;return this.registry.set(e,{agent:d,sessionId:s.sessionId,adapterSessionId:f,usage:l,callerOwnsAgentRow:a===!0,...t.settlementAckToken!==void 0&&{pendingCallerSettlement:{token:t.settlementAckToken,publication:t.publication,adapterSessionId:f}}},n),await this.publishRehydratedRuntime(e,s,d,{cwd:r,model:i,recoveredAdapterSessionId:f,publication:t.publication}),a||await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,adapterSessionId:f,...t.settlementAckToken!==void 0&&{settlementAckToken:t.settlementAckToken}}}async publishRehydratedRuntime(e,t,n,r){let{cwd:i,model:a,recoveredAdapterSessionId:o}=r,s=o!==t.adapterSessionId,c=!X(r.publication);s&&await n.recordConfirmedAdapterSession(o,c);let l=s?vr(r.publication,o):void 0,u=Ar(this.machineId,this.ownerInstanceId,c);i===void 0&&a===void 0&&l===void 0&&u===void 0||await this.globalBus.requestOptional(A.updateRuntime,{agentId:e,cwd:i,model:a,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}})}async claimAndCreateAgent(e,t,n,r){if(r!==void 0&&!this.registry.claimAdapterSession(r))return Q(`Provider session ${r} is already claimed by another in-flight rehydrate or start`);let i;try{i=await wr(this.globalBus,n.providerContext??{state:`unresolved`})}catch(t){return r!==void 0&&this.registry.releaseAdapterSessionClaim(r),Q(`Agent ${e} could not activate its provider account: ${t instanceof Error?t.message:String(t)}`)}let a;try{a=await this.createAgentFn(e,t.sessionId,n);let r=await this.resolvePersistedSystemPrompt(t.sessionId,t.personaId,t.profileId);await a.initialize({...r!==void 0&&{systemPrompt:r}});let o=await a.getAdapterSessionId()||t.adapterSessionId;if(!o)throw Error(`Recovered agent ${e} has no adapterSessionId`);return await Tr(i),{agent:a,adapterSessionId:o}}catch(t){try{let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>z(n.close({emitSessionClosed:!1}))},operation:`Cold rehydrate for agent ${e}`,cleanupFailureMessage:`Cold rehydrate and connector cleanup both failed for agent ${e}.`})}finally{r!==void 0&&this.registry.releaseAdapterSessionClaim(r)}}}async rehydrateRegisteredAgent(e,t,n){let r=Z(t),i=n.rpcResumeId,a=i===r?void 0:i;if(a!==void 0&&!this.registry.claimAdapterSession(a))return Q(`Provider session ${a} is already claimed by another in-flight rehydrate or start`);let o=t.adapterSessionId,s=!X(n.publication);try{await t.agent.swapConnector({cwd:n.cwd,model:n.model,...i!==void 0&&{adapterSessionId:i},resumeAdapterSessionId:i},void 0,s);let e=await t.agent.getAdapterSessionId();e&&(t.adapterSessionId=e)}catch(t){if(t instanceof Y)return Q(`Agent ${e} is being torn down on this adapter instance and cannot be rehydrated in place`);throw t}finally{a!==void 0&&this.registry.releaseAdapterSessionClaim(a)}let c=t.adapterSessionId===o?void 0:t.adapterSessionId,l=vr(n.publication,c),u=Ar(this.machineId,this.ownerInstanceId,n.callerOwnsAgentRow);return kr({cwd:n.cwd,model:n.model,adapterSessionId:l,runtimeOwner:u})&&await this.globalBus.requestOptional(A.updateRuntime,{agentId:e,cwd:n.cwd,model:n.model,...u!==void 0&&{runtimeOwner:u},...l!==void 0&&{adapterSessionId:l}}),n.callerOwnsAgentRow?n.settlementAckToken!==void 0&&(t.callerOwnsAgentRow=!0,t.pendingCallerSettlement={token:n.settlementAckToken,publication:n.publication,adapterSessionId:t.adapterSessionId}):await this.globalBus.requestOptional(A.updateStatus,{agentId:e,status:`idle`}),{success:!0,ownerInstanceId:this.ownerInstanceId,...t.adapterSessionId!==void 0&&{adapterSessionId:t.adapterSessionId},...n.settlementAckToken!==void 0&&{settlementAckToken:n.settlementAckToken}}}async resolveMcpSessionContext(e,t){let n=await this.globalBus.requestOptional(E.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(E.resolveSystemPrompt,{sessionId:e,personaId:t,profileId:n});return r.handled?r.data.systemPrompt:void 0}catch{return}}};async function Mr(e,t){let{prompt:n,model:r,systemPrompt:i,responseSchema:a}=e.payload,o=Pr(e.payload.providerContext,t.definitionProviders),s=crypto.randomUUID(),c=new er({bus:t.globalBus,agentId:s,adapterId:t.adapterId,adapterCapabilities:t.adapterCapabilities}),l=await Nr(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 Ir(Fr({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 Nr(e,t,n,r){let i=await wr(e.globalBus,n),a;try{return a=await U({config:await e.configFactory(t),connectorFactory:e.connectorFactory,prepareAuthRuntime:e.prepareAuthRuntime}),await a.connector.initialize(r),await Tr(i),a}catch(t){let n=a;return await Er({activation:i,primaryError:t,...n!==void 0&&{cleanup:()=>z(W(n))},operation:`Ephemeral inference for ${e.adapterName}`,cleanupFailureMessage:`Ephemeral inference setup and connector cleanup both failed for ${e.adapterName}.`})}}function Pr(e,t){let n=e===void 0?I():w.parse(e);return n.state===`unresolved`?{providerContext:n,compatibleProviderAuths:[]}:{providerContext:n,...Zt(t,n)}}async function Fr(e){let{connector:t,manager:n,prompt:r,systemPrompt:i,responseSchema:a,adapterCapabilities:o}=e,s=M(r),c={...i!==void 0&&{systemPrompt:i},turnContext:ln(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:Lr({connector:t,manager:n,responseSchema:a,startResult:l,text:d})}async function Ir(e,t,n){let r=``,i;try{r=await e}catch(e){i=e}let{closeError:a}=await W(t);if(i!==void 0&&a!==void 0)throw AggregateError([i,a],`Ephemeral inference and connector cleanup both failed for ${n}.`,{cause:i});if(i!==void 0)throw i;if(a!==void 0)throw a;return r}async function Lr(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 Rr(o.structuredOutputValidation.errors);return o.message??``}function Rr(e){return Error(`Structured output validation failed: ${e.map(e=>e.message).join(`; `)}`)}function zr(e,t){let{model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,reasoningEffort:s,mcpSessionContext:c,harnessId:l,ephemeral:u}=e,d=e.resumeAdapterSessionId??(e.mode===`resume`?e.adapterSessionId:void 0),f=e.providerKeyPublication;return{agentId:t.agentId,adapterId:t.adapterId,adapterName:t.adapterName,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId,globalBus:t.globalBus,adapterBus:t.adapterBus,teardownArbiter:t.teardownArbiter,capabilities:t.capabilities,nativeTools:t.nativeTools,availableModels:Qt(t.definitionProviders,n,e.providerContext?.state===`resolved`?e.providerContext.definitionId:void 0),definitionProviders:t.definitionProviders,configFactory:t.configFactory,connectorFactory:t.connectorFactory,...t.prepareAuthRuntime!==void 0&&{prepareAuthRuntime:t.prepareAuthRuntime},sessionId:t.sessionId,...e.providerContext!==void 0&&{providerContext:e.providerContext},...f!==void 0&&{isProviderKeyPublishable:()=>X(f)},...Kt({platformCwd:t.platformDefaults?.cwd,platformEnv:t.platformDefaults?.env,model:n,cwd:r,env:i,allowedTools:a,disallowedTools:o,allowedDirectories:e.allowedDirectories,adapterSessionId:e.adapterSessionId,reasoningEffort:s,adapterConfig:e.adapterConfig,resumeAdapterSessionId:d,harnessId:l,clientId:e.clientId??t.clientId,clientProfileName:e.clientProfileName,mcpSessionContext:c,toolLedger:c===void 0?void 0:new lr,ephemeral:u,nativeFork:$t(e)})}}function $(e){return e.agentId!==void 0}function Br(e,t){return e.cwd??t.getPlatformDefaults()?.cwd}function Vr(e){let{agentId:t,sessionId:n,adapterSessionId:r,status:i,resolvedCwd:a,payload:o,deps:s}=e,c=Date.now(),l=e.createdAt??c,u=o.clientId??s.clientId;return{agentId:t,adapterId:s.adapterId,adapterName:s.name,sessionId:n,...s.machineId!==void 0&&{runtimeOwner:{machineId:s.machineId,instanceId:s.ownerInstanceId}},adapterSessionId:r,model:o.model,cwd:a,allowedDirectories:o.allowedDirectories,role:o.role,status:i,createdAt:l,lastActivityAt:c,...u!==void 0&&{clientId:u},...o.harnessId!==void 0&&{harnessId:o.harnessId},...o.providerContext.state===`resolved`&&{providerConfigId:o.providerContext.providerConfigId}}}async function Hr(e,t,n){if(!n){try{await t.globalBus.requestOptional(A.set,{agentId:e.agentId,agent:e})}catch(n){console.error(`[AIAdapter:${t.name}] Optional agent persistence failed:`,{agentId:e.agentId,adapterId:t.adapterId,sessionId:e.sessionId,error:n})}return}try{return(await t.globalBus.request(A.set,{agentId:e.agentId,agent:e})).success?void 0:`Agent row for ${e.agentId} was refused by storage`}catch(t){return`Agent row for ${e.agentId} could not be written: ${String(t)}`}}async function Ur(e,t){let n=Vr({...e,status:`starting`,resolvedCwd:Br(e.payload,t),deps:t});await t.globalBus.request(A.set,{agentId:e.agentId,agent:n})}async function Wr(e,t,n,r,i,a){let{adapterId:o,name:s,globalBus:c}=i,l=r.role,u=Br(r,i);if(!$(r)){let o=await Hr(Vr({agentId:e,sessionId:t,adapterSessionId:n,status:`idle`,createdAt:a.createdAt,resolvedCwd:u,payload:r,deps:i}),i,a.guarded);if(o!==void 0)return o}let d=vr(a.publication,n);try{await c.emit(E.agent.added,{sessionId:t,agentId:e,adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},role:l,model:r.model,cwd:u})}catch(n){console.error(`[AIAdapter:${s}] session.agent.added consumer failed:`,{agentId:e,sessionId:t,error:n})}c.emit(x.session.created,{adapterId:o,adapterName:s,...d!==void 0&&{adapterSessionId:d},sessionId:t,model:r.model??`unknown`})}async function Gr(e,t,n,r){try{await e.evict(t)}catch(e){throw AggregateError([r,e],`[AIAdapter:${n}] startAgent persistence failed and live agent cleanup also failed.`,{cause:e})}}function Kr(e){if(e.mode===`resume`&&`adapterSessionId`in e)return e.adapterSessionId}function qr(e,t){return`Provider session ${e} was not reserved for this start: ${t}`}async function Jr(e,t){let n=crypto.randomUUID(),r;try{r=await Te(e,{sessionId:t.sessionId,agentId:t.agentId,adapterName:t.adapterName,instance:{adapterId:t.adapterId,ownerInstanceId:t.ownerInstanceId},role:`member`,resumeProviderSessionId:t.resumeProviderSessionId,claimToken:n})}catch(r){throw await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:n,disposition:`released`}).catch(()=>void 0),r}if(r.outcome!==`reserved`)return r.outcome===`session-not-active`?{kind:`refused`,outcome:r.outcome,sessionStatus:r.status,message:qr(t.resumeProviderSessionId,r.outcome)}:{kind:`refused`,outcome:r.outcome,message:qr(t.resumeProviderSessionId,r.outcome)};let{claim:i,ownerInstanceId:a}=r.reservation;return i===null?{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} was reserved without a claim, so this start has no ownership anchor`}:a!==t.ownerInstanceId||i.ownerInstanceId!==a?(await e.requestOptional(E.ownership.release,{agentId:t.agentId,claimToken:i.claimToken,disposition:`released`}),{kind:`refused`,message:`Provider session ${t.resumeProviderSessionId} reservation named runtime ${a}, claim named ${i.ownerInstanceId??`none`}, and adapter owner is ${t.ownerInstanceId}`}):{kind:`reserved`,reservation:{agentId:t.agentId,claimToken:i.claimToken,ownerInstanceId:a}}}async function Yr(e,t,n,r){try{await e.requestOptional(E.ownership.release,{agentId:t,claimToken:n,disposition:r})}catch(e){console.debug(`[adapter.startAgent] release for agent ${t} failed:`,e)}}async function Xr(e,t,n){try{if(n){await e.requestOptional(A.updateStatus,{agentId:t,status:`dead`,expectedStatus:[`starting`]});return}await e.requestOptional(A.delete,{agentId:t})}catch(e){console.debug(`[adapter.startAgent] settling the row of failed start ${t} failed:`,e)}}async function Zr(e){let{globalBus:t,registry:n,agentId:r,reservation:i,dispatched:a}=e;i!==void 0&&await Yr(t,r,i.claimToken,a?`abandoned`:`released`),e.agentRowCreatedAt!==void 0&&await Xr(t,r,a),e.resumeAdapterSessionId!==void 0&&n.releaseAdapterSessionClaim(e.resumeAdapterSessionId),e.claimedIdentity&&n.releaseAgentIdentityClaim(r)}async function Qr(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),{success:!1,dispatch:`not-dispatched`,message:r}}async function $r(e,t,n,r){return await Zr({globalBus:e.globalBus,registry:e.registry,agentId:t,...n}),await e.registry.evictSilently(t),{success:!1,dispatch:`dispatch-uncertain`,message:r}}async function ei(e,t,n,r){return Qr(e,t,n,`An ephemeral start may not resume provider session ${r}: it takes no ownership of it`)}async function ti(e,t){let{payload:n,agentId:r,sessionId:i,acquisitions:a}=t,o=Kr(n);if(o===void 0)return;if(!e.registry.claimAdapterSession(o))return Qr(e,r,a,`Provider session ${o} is already claimed by another in-flight start`);if(a.resumeAdapterSessionId=o,n.ephemeral===!0)return ei(e,r,a,o);if($(n))return;let s=Date.now();a.agentRowCreatedAt=s,await Ur({agentId:r,sessionId:i,adapterSessionId:o,payload:n,createdAt:s},e);let c=await Jr(e.globalBus,{agentId:r,sessionId:i,adapterId:e.adapterId,adapterName:e.name,ownerInstanceId:e.ownerInstanceId,resumeProviderSessionId:o});if(c.kind===`refused`)return Qr(e,r,a,c.message);a.reservation=c.reservation}function ni(e,t,n){return e===void 0?{callerOwnsAgentRow:!1}:{callerOwnsAgentRow:!0,pendingCallerSettlement:{token:e,publication:t,adapterSessionId:n}}}function ri(e,t,n){if(!(!$(e)||n.claimAgentIdentity(t)))return{success:!1,dispatch:`not-dispatched`,message:`Agent ${t} is already registered on this adapter instance`}}async function ii(e,t,n){if(t.initialMessage!==void 0){let r=M(t.initialMessage),i=await e.start(r,{systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema});return{adapterSessionId:i.adapterSessionId,messageId:String(i.messageHandle.messageId),messageHandle:i.messageHandle}}return{adapterSessionId:await e.initialize({systemPrompt:t.systemPrompt,sessionContext:n,responseSchema:t.responseSchema})}}function ai(){return{totalInputTokens:0,totalOutputTokens:0,totalCalls:0}}async function oi(e,t,n,r){try{await r?.waitForCompletion(3e5)}finally{await e.evictSilently(t)}}function si(e){if(e.ephemeral&&e.initialMessage===void 0)throw Error(`ephemeral startAgent requires initialMessage`)}function ci(e,t,n,r){let{sessionContext:i,...a}=e;return{...a,providerContext:t,providerKeyPublication:r,...n===void 0?{}:{sessionContext:n}}}async function li(e,t){if(e.ephemeral)return e.sessionId??crypto.randomUUID();if((e.mode??`create`)===`create`){let n=await t.requestOptional(E.create,{...e.sessionId?{sessionId:e.sessionId}:{}});return n.handled?n.data.sessionId:e.sessionId??crypto.randomUUID()}if(e.sessionId)return e.sessionId;throw Error(`startAgent ${e.mode} mode requires sessionId`)}async function ui(e){let{agentId:t,sessionId:n,payload:r,providerContext:i,sessionContext:a,adapterName:o,globalBus:s}=e,c,l;try{c=await wr(s,i),e.markDispatched(),l=await e.createAgent(t,n,ci(r,i,a,e.publication));let o=await ii(l,r,a);return await Tr(c),{agent:l,startResult:o}}catch(e){if(c===void 0)throw e;let t=l;return await Er({activation:c,primaryError:e,...t!==void 0&&{cleanup:()=>z(t.close({emitSessionClosed:!r.ephemeral}))},operation:`[AIAdapter:${o}] startAgent`,cleanupFailureMessage:`[AIAdapter:${o}] startAgent and connector cleanup both failed.`})}}async function di(e,t,n,r){let{name:i,registry:a,globalBus:o,createAgent:s}=e,c=$(t)?crypto.randomUUID():void 0,l=t.providerContext===void 0?I():w.parse(t.providerContext);si(t);let u=await li(t,o),d={...t,providerContext:l},f=await ti(e,{payload:d,agentId:n,sessionId:u,acquisitions:r});if(f!==void 0)return{result:f,messageHandle:void 0};let p=Kr(t),m=t.sessionContext?T.parse(t.sessionContext):void 0,{agent:h,startResult:ee}=await ui({markDispatched:()=>{r.dispatched=!0},publication:r.publication,agentId:n,sessionId:u,payload:t,providerContext:l,sessionContext:m,adapterName:i,resumeAdapterSessionId:p,registry:a,globalBus:o,createAgent:s}),{adapterSessionId:g,messageId:_,messageHandle:v}=ee;if(a.set(n,{agent:h,sessionId:u,adapterSessionId:g,usage:ai(),...ni(c,r.publication,g)},p),r.claimedIdentity=!1,r.resumeAdapterSessionId=void 0,!t.ephemeral){let t=await pi(e,{agentId:n,sessionId:u,adapterSessionId:g},d,r);if(t!==void 0)return{result:t,messageHandle:void 0};await fi(h,g,r.publication)}return{result:{success:!0,agentId:n,adapterId:e.adapterId,ownerInstanceId:e.ownerInstanceId,sessionId:u,adapterSessionId:g,..._!==void 0&&{messageId:_},...c!==void 0&&{settlementAckToken:c}},messageHandle:v}}async function fi(e,t,n){t!==void 0&&await e.recordConfirmedAdapterSession(t,!X(n))}async function pi(e,t,n,r){let{agentId:i,sessionId:a,adapterSessionId:o}=t,s;try{s=await Wr(i,a,o,n,e,{guarded:r.reservation!==void 0,createdAt:r.agentRowCreatedAt,publication:r.publication})}catch(t){throw await Gr(e.registry,i,e.name,t),t}if(s!==void 0)return $r(e,i,r,s)}function mi(e){let{name:t,registry:n,globalBus:r}=e;return async function(i){if(i.payload.ownerInstanceId!==void 0&&i.payload.ownerInstanceId!==e.ownerInstanceId)return;let a=n.beginStart();if(a===void 0){i.setResult({success:!1,dispatch:`not-dispatched`,message:`Adapter ${t} is closing and cannot start another agent`});return}try{let a=i.payload,o=a.agentId??crypto.randomUUID(),s=ri(a,o,n);if(s!==void 0){i.setResult(s);return}let c=$(a),l={claimedIdentity:c,resumeAdapterSessionId:void 0,reservation:void 0,agentRowCreatedAt:void 0,dispatched:!1,publication:_r({callerOwnsAgentRow:c,...a.ephemeral!==void 0&&{ephemeral:a.ephemeral}})},u;try{u=await di(e,a,o,l)}catch(e){throw await Zr({globalBus:r,registry:n,agentId:o,...l}),e}i.setResult(u.result),a.ephemeral&&u.result.success&&oi(n,o,t,u.messageHandle).catch(e=>{console.warn(`[AIAdapter:${t}] Ephemeral agent cleanup failed:`,e)})}finally{a()}}}function hi(e){return async t=>{let n=await e.disposeAgent(t.payload.agentId,{deadline:t.deadline,...t.payload.teardown===`connector-only`&&{responsibility:`connector-only`}});t.setResult({success:n.found,evidence:n.evidence,...n.detail!==void 0&&{detail:n.detail}})}}function gi(e){return t=>{let n=e.get(t.payload.agentId);t.setResult({agent:n===void 0?null:br(n)})}}function _i(e){return async t=>{t.setResult(await e.acknowledgeCallerSettlement(t.payload.agentId,t.payload.settlementAckToken,t.payload.recovery===!0))}}var vi=class{operations;state=`new`;operationTail=Promise.resolve();lastOperation;initFlight;closeFlight;lastCloseReport={evidence:`released`};constructor(e){this.operations=e}init(){if(this.lastOperation===`init`&&this.initFlight!==void 0)return this.initFlight;let e=this.operationTail.then(()=>this.runInitialization());return this.lastOperation=`init`,this.initFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.initFlight===e&&(this.initFlight=void 0,this.lastOperation===`init`&&(this.lastOperation=void 0))}),e}close(){if(this.lastOperation===`close`&&this.closeFlight!==void 0)return this.closeFlight;let e=this.operationTail.then(()=>this.runClose());return this.lastOperation=`close`,this.closeFlight=e,this.operationTail=e.then(()=>void 0,()=>void 0),e.catch(()=>{this.closeFlight===e&&(this.closeFlight=void 0,this.lastOperation===`close`&&(this.lastOperation=void 0))}),e}isInitialized(){return this.state===`initialized`}async runInitialization(){if(this.state===`initialized`)return;this.state===`closing`&&await this.completeShutdown(!1),this.operations.prepareInitialization(),this.state=`initializing`;let e=!1;try{await this.operations.initialize(),e=!0,await bi(this.operations.bus,this.operations.publication),this.state=`initialized`}catch(t){try{await this.completeShutdown(e)}catch(e){throw AggregateError([t,e],`Adapter initialization and rollback failed`)}throw t}}async runClose(){if(this.state===`closed`)return this.lastCloseReport;let e=this.state===`initialized`;return this.completeShutdown(e)}async completeShutdown(e){return this.state=`closing`,this.lastCloseReport=await this.operations.shutdown(e),this.state=`closed`,this.lastCloseReport}};function yi(e,t){if(t===void 0||t.trim()===``)throw Error(`AIAdapter ${e} requires a machine identity before announcing initialization`);return t}async function bi(e,t){await e.emit(x.initialized,t)}async function xi(e,t){await e.emit(x.deinitialized,{adapterId:t.adapterId,adapterName:t.name,machineId:t.machineId,ownerInstanceId:t.ownerInstanceId})}async function Si(e,t){try{await xi(e,t)}catch(e){console.warn(`[AIAdapter] Failed to publish deinitialization for ${t.name}:`,e)}}var Ci=class{adapterId;ownerInstanceId;machineId;name;capabilities;nativeTools;namespace;globalBus;adapterBus;teardownArbiter=new ar;registry;cleanupFns=[];rehydrationManager;lifecycle;clientId;platformDefaults;definitionProviders;prepareAuthRuntime;agentFactory;configFactory;connectorFactory;constructor(e){if(e.ownerInstanceId===void 0)throw Error(`AIAdapter ${e.name} requires an ownership-authority incarnation`);this.adapterId=e.adapterId??crypto.randomUUID(),this.ownerInstanceId=e.ownerInstanceId,this.machineId=yi(e.name,e.machineId),this.name=e.name,this.capabilities=e.capabilities,this.nativeTools=e.nativeTools??[],this.globalBus=e.globalBus??D,this.adapterBus=e.scopedBus,this.namespace=e.namespace,this.agentFactory=e.agentFactory,this.configFactory=e.configFactory,this.connectorFactory=e.connectorFactory,this.clientId=e.clientId,this.platformDefaults=e.platformDefaults,this.definitionProviders=e.definitionProviders??[],this.prepareAuthRuntime=e.prepareAuthRuntime,this.registry=new xr({globalBus:this.globalBus,adapterName:this.name,ownerInstanceId:this.ownerInstanceId,arbiter:this.teardownArbiter}),this.rehydrationManager=new jr({globalBus:this.globalBus,registry:this.registry,createAgent:this.createAgent.bind(this),machineId:this.machineId,ownerInstanceId:this.ownerInstanceId}),this.lifecycle=new vi({bus:this.globalBus,publication:{adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,capabilities:this.capabilities,nativeTools:this.nativeTools},prepareInitialization:()=>this.registry.reopen(),initialize:this.initializeGeneration.bind(this),shutdown:this.runClose.bind(this)})}setupHandlers(){let e=this.globalBus.withFilter({adapterId:this.adapterId}),t=e.withFilter({ownerInstanceId:this.ownerInstanceId}),n=hi({disposeAgent:this.disposeAgent.bind(this)}),r=gi(this.registry),i=_i(this.registry);this.cleanupFns.push(e.on(x.startAgent,mi({adapterId:this.adapterId,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,name:this.name,clientId:this.clientId,getPlatformDefaults:()=>this.platformDefaults,registry:this.registry,globalBus:this.globalBus,createAgent:this.createAgent.bind(this)})),e.on(x.rehydrateAgent,this.rehydrationManager.handleRehydrateAgent),t.on(x.acknowledgeCallerSettlement,i),e.on(x.infer,e=>Mr(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(E.closed,this.handleSessionClosedByService),e.on(x.listAgents,e=>{e.setResult({agents:Array.from(this.registry.values()).map(br)})}),t.on(x.getAgent,r),t.on(x.stopAgent,n),e.on(x.getCapabilities,e=>{e.setResult({capabilities:this.capabilities,nativeTools:this.nativeTools})}))}handleSessionClosed=e=>{let{agentId:t,adapterSessionId:n,reason:r}=e.payload,i=this.registry.get(t);if(!i){console.warn(`Agent ${t} not found, can't emit AgentSubjects.session.closed`);return}let a=n??i.adapterSessionId??``;this.registry.evict(t).catch(e=>{console.error(`[AIAdapter:${this.name}] Failed to evict agent ${t} after session.closed:`,e)}),this.globalBus.emit(x.session.closed,{adapterId:this.adapterId,adapterName:this.name,agentId:t,sessionId:i.sessionId,adapterSessionId:a,reason:r})};handleSessionClosedByService=async e=>{let{sessionId:t}=e.payload,n=this.registry.agentIdsBySession(t);await Promise.all(n.map(e=>this.registry.evict(e,{emitSessionClosed:!1}).catch(t=>console.error(`[AIAdapter:${this.name}] Failed to evict agent ${e} after session.closed:`,t))))};handleStartedReconcileRegistry=e=>{let{agentId:t,adapterSessionId:n}=e.payload;if(!n)return;let r=this.registry.get(t);r&&!r.adapterSessionId&&(r.adapterSessionId=n)};handleUsage=e=>{let{agentId:t,adapterSessionId:n,inputTokens:r,outputTokens:i}=e.payload,a=this.registry.accumulateUsage(t,{inputTokens:r,outputTokens:i},n);a&&this.globalBus.emit(x.session.usage,{adapterId:this.adapterId,adapterName:this.name,sessionId:a.sessionId,adapterSessionId:a.adapterSessionId,...a.usage})};init(){return this.lifecycle.init()}async initializeGeneration(){this.globalBus.registerNamespaces([this.namespace.definition]),this.adapterBus??=await this.namespace.scopedBus(this.globalBus.getContext()),this.setupHandlers(),await this.onInit()}async onInit(){}async createAgent(e,t,n){if(!this.adapterBus)throw Error(`Adapter bus not initialized. Did you forget to call init()?`);return this.agentFactory(zr(n,{agentId:e,sessionId:t,adapterId:this.adapterId,adapterName:this.name,machineId:this.machineId,ownerInstanceId:this.ownerInstanceId,globalBus:this.globalBus,adapterBus:this.adapterBus,teardownArbiter:this.teardownArbiter,capabilities:this.capabilities,nativeTools:this.nativeTools,definitionProviders:this.definitionProviders,configFactory:this.configFactory,connectorFactory:this.connectorFactory,prepareAuthRuntime:this.prepareAuthRuntime,platformDefaults:this.platformDefaults,clientId:this.clientId}))}closeAsync(){return this.lifecycle.close()}async runClose(e){let t={evidence:`released`};try{let e=await this.registry.closeAll(),n=await this.onClose();t=R([...e,...n===void 0?[]:[n]]);let r=e.map(e=>e.closeError).filter(e=>e!==void 0);return r.length>0&&console.warn(`[AIAdapter] ${r.length} agent(s) failed to close:`,r),t}finally{for(let e of this.cleanupFns)try{e()}catch(e){console.warn(`[AIAdapter] Cleanup function failed:`,e)}this.cleanupFns=[],e&&await Si(this.globalBus,this)}}close(){this.closeAsync()}async onClose(){}getAgent(e){let t=this.registry.get(e);return t===void 0?void 0:wi(t)}async disposeAgent(e,t={}){return this.registry.dispose(e,t)}getActiveAgents(){return Array.from(this.registry.values()).map(wi)}isInitialized(){return this.lifecycle.isInitialized()}};function wi(e){return{agent:e.agent,sessionId:e.sessionId,adapterSessionId:e.adapterSessionId}}function Ti(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(Ti)),t}var Ei=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 Di(e){let t=new Map,n=[];return n.push(e.on(_.get,e=>{let{filePath:n}=e.payload,r=t.get(n)??null;e.setResult({cursor:r})})),n.push(e.on(_.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(_.delete,e=>{let{filePath:n}=e.payload,r=t.delete(n);e.setResult({success:r})})),()=>{n.forEach(e=>e()),t.clear()}}const Oi=y.object({sessions:y.record(y.string(),y.object({state:y.enum([`idle`,`active`]),currentTurnId:y.string().optional()}))}).default({sessions:{}});var ki=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 Ai=y.object({eventType:y.literal(`agent_started`),model:y.string().optional()}),ji=y.object({eventType:y.literal(`agent_complete`),message:y.string().optional(),error:y.string().optional()}),Mi=y.object({eventType:y.literal(`error`),message:y.string(),code:y.string().or(y.number()).optional(),type:y.string().optional()}),Ni=y.object({eventType:y.literal(`tool_started`),toolName:y.string(),toolCallId:y.string()}),Pi=y.object({eventType:y.literal(`tool_completed`),toolName:y.string(),toolCallId:y.string(),result:y.string(),success:y.boolean()});export{Ci as AIAdapter,ir as AIAgent,Lt as AIAgentConnector,ji as AgentCompleteEventSchema,gn as AgentEventBridge,_n as AgentLifecycleEmitter,vn as AgentPayloadEmitter,kn as AgentRuntimeMutationManager,Ai as AgentStartedEventSchema,ar as AgentTeardownArbiter,mn as AgentTurnExecutor,zt as BaseConnectorSession,Bt as BaseConnectorTurn,Ei as BaseLogImporter,B as CONNECTOR_EXIT_OBSERVATION_MS,Tt as ConformanceConnectorRuntimeRegistry,Y as ConnectorSwapVetoedError,Mi as ErrorEventSchema,fr as FactoryUsageCorrelationHeaders,Rt as GenerationRetirementLedger,v as ImportCursorPositionSchema,g as ImportCursorStorageNamespace,_ as ImportCursorStorageSubjects,Ze as MAKAIO_CONFORMANCE_PRIMARY_MODEL_ENV,P as MAKAIO_CONFORMANCE_PROVIDER_DEFINITIONS_ENV,Xe as MAKAIO_CONFORMANCE_PROVIDER_ENV,Qe as MAKAIO_CONFORMANCE_SECONDARY_MODEL_ENV,Pt as MessageHandle,Wt as MessageLifecycleTracker,Ht as ProceduralAgentConnector,Vt as ProceduralConnectorTurn,G as SESSION_CLOSED_QUEUE_ERROR,V as SWAP_SETTLEMENT_WAIT_MS,ft as ScopedToolApprovalSchema,Dt as SessionLifecycle,lr as SessionToolLedger,Gt as ToolCallTracker,Pi as ToolCompletedEventSchema,Ni as ToolStartedEventSchema,ki as TurnTracker,Oi as TurnTrackerSerializedStateSchema,Ot as UserMessageQueue,R as aggregateTeardownReports,hr as bindProviderRequestCorrelation,gr as buildFactoryUsageCorrelationHeaders,St as capTeardownEvidence,h as cleanEnvForAdapter,De as createAdapterNamespace,Et as createNoAuthTestProviderContext,Je as createTestProviderContext,pt as createToolApprovalHandler,We as defineDiscriminatedHandlers,Ge as defineDiscriminatedHandlersSync,H as describeTeardownFailure,gt as exitWasObserved,ur as extractMcpCallTarget,Me as formatContextBlockAsText,He as formatContextBlocksAsText,st as formatMessageHistoryAsTranscript,dr as isMcpCallTool,ht as isTextLikeMimeType,Ft as markCompletedWithFinalResult,dt as mergeScopedToolApproval,N as normalizeEnvValue,M as normalizeMessageInput,mt as normalizeMimeType,Ue as parseAIAdapterCapabilities,Ke as processDiscriminatedItems,qe as processDiscriminatedItemsSync,kt as processQueueMessages,hn as registerAgentBusHandlers,Di as registerMemoryImportCursorStorage,At as rejectQueuedHandles,xt as reportBestEffortStages,_t as reportObservedExit,vt as reportRepeatTeardown,it as resolveConformanceDefinitionProviders,rt as resolveConformanceTestPreset,at as resolveDisabledNativeTools,ut as resolveRequiredSessionId,Ye as resolveTestConfig,z as rethrowTeardownFailure,bt as runBestEffortStage,Oe as safeJsonStringify,lt as serializeBlockToText,Be as serializeTurnContext,yt as stageFailure,Ti as toImportSegment,L as unknownTeardown,ke as withTimeout};
|